From d66a0a09b16c0a1249a8dc621c0000606e7e697b Mon Sep 17 00:00:00 2001 From: Eric Lindgren Date: Thu, 27 Mar 2025 17:22:33 +0100 Subject: [PATCH 01/14] add first example of experimental weighting --- examples/joint-refinement_weighting.py | 102 +++++++++++++++++++ src/easydiffraction/analysis/minimization.py | 6 +- 2 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 examples/joint-refinement_weighting.py diff --git a/examples/joint-refinement_weighting.py b/examples/joint-refinement_weighting.py new file mode 100644 index 00000000..ff46ddcd --- /dev/null +++ b/examples/joint-refinement_weighting.py @@ -0,0 +1,102 @@ + +""" +Joint Refinement Example (Advanced API) + +This example demonstrates a more flexible and advanced usage of the EasyDiffraction +library by explicitly creating and configuring some objects. It is more suitable for +users comfortable with Python programming and those interested in custom workflows. +""" + +from easydiffraction import ( + Project, + SampleModel, + Experiment +) + +# Create and configure sample model + +model = SampleModel("pbso4") +model.space_group.name.value = "P n m a" +model.cell.length_a.value = 8.5 +model.cell.length_b.value = 5.35 +model.cell.length_c.value = 6.9 +model.atom_sites.add("Pb", "Pb", 0.1876, 0.25, 0.167, b_iso=1.37) +model.atom_sites.add("S", "S", 0.0654, 0.25, 0.684, b_iso=0.3777) +model.atom_sites.add("O1", "O", 0.9082, 0.25, 0.5954, b_iso=1.9764) +model.atom_sites.add("O2", "O", 0.1935, 0.25, 0.5432, b_iso=1.4456) +model.atom_sites.add("O3", "O", 0.0811, 0.0272, 0.8086, b_iso=1.2822) + +# Create and configure experiments + +# Experiment 1: Neutron powder diffraction +expt1 = Experiment(id="npd", radiation_probe="neutron", data_path="examples/data/pbso4_powder_neutron_cw.dat") +expt1.instr_setup.wavelength = 1.91 +expt1.instr_calib.twotheta_offset = -0.1406 +expt1.peak_broad.gauss_u = 0.139 +expt1.peak_broad.gauss_v = -0.412 +expt1.peak_broad.gauss_w = 0.386 +expt1.peak_broad.lorentz_x = 0 +expt1.peak_broad.lorentz_y = 0.088 +expt1.linked_phases.add("pbso4", scale=1.0) +for x, y in [ + (11.0, 206.1624), + (15.0, 194.75), + (20.0, 194.505), + (30.0, 188.4375), + (50.0, 207.7633), + (70.0, 201.7002), + (120.0, 244.4525), + (153.0, 226.0595), +]: + expt1.background.add(x, y) + +# Experiment 2: X-ray powder diffraction +expt2 = Experiment(id="xrd", radiation_probe="xray", data_path="examples/data/pbso4_powder_xray.dat") +expt2.instr_setup.wavelength = 1.540567 +expt2.instr_calib.twotheta_offset = -0.05181 +expt2.peak_broad.gauss_u = 0.304138 +expt2.peak_broad.gauss_v = -0.112622 +expt2.peak_broad.gauss_w = 0.021272 +expt2.peak_broad.lorentz_x = 0 +expt2.peak_broad.lorentz_y = 0.057691 +expt2.linked_phases.add("pbso4", scale=0.005) +for x, y in [ + (11.0, 141.8516), + (13.0, 102.8838), + (16.0, 78.0551), + (20.0, 124.0121), + (30.0, 123.7123), + (50.0, 120.8266), + (90.0, 113.7473), + (110.0, 132.4643), +]: + expt2.background.add(x, y) + +# Create project and add sample model and experiments +project = Project() +project.sample_models.add(model) +project.experiments.add(expt1) +project.experiments.add(expt2) + +# Weight the experiments +expt1.weight = 0.4 +expt2.weight = 0.6 + +# Set calculator, minimizer and refinement strategy +project.analysis.current_calculator = "cryspy" +project.analysis.current_minimizer = "lmfit (leastsq)" +project.analysis.refinement_strategy = 'combined' + +# Define free parameters +model.cell.length_a.free = True +model.cell.length_b.free = True +model.cell.length_c.free = True +expt1.linked_phases["pbso4"].scale.free = True +expt2.linked_phases["pbso4"].scale.free = True + +# Run refinement +project.analysis.fit() + +project.analysis.show_meas_vs_calc_chart(expt_id="npd", x_min=62, x_max=66, show_residual=True) +project.analysis.show_meas_vs_calc_chart(expt_id="xrd", x_min=26, x_max=28, show_residual=True) + diff --git a/src/easydiffraction/analysis/minimization.py b/src/easydiffraction/analysis/minimization.py index 495e103f..08c71725 100644 --- a/src/easydiffraction/analysis/minimization.py +++ b/src/easydiffraction/analysis/minimization.py @@ -58,12 +58,16 @@ def _residual_function(self, engine_params, parameters, sample_models, experimen # Sync parameters back to objects self.minimizer._sync_result_to_parameters(parameters, engine_params) + weights = np.array([getattr(experiment, 'weight', 1.0) for experiment in experiments._items.values()], dtype=np.float64) + weights /= np.sum(weights) # Normalize weights so they sum to 1 + residuals = [] - for expt_id, experiment in experiments._items.items(): + for (expt_id, experiment), weight in zip(experiments._items.items(), weights): y_calc = calculator.calculate_pattern(sample_models, experiment) y_meas = experiment.datastore.pattern.meas y_meas_su = experiment.datastore.pattern.meas_su diff = (y_meas - y_calc) / y_meas_su + diff *= weight residuals.extend(diff) residuals = np.array(residuals) From c1fd60d98c83a88d7b5341d07a94293533b86976 Mon Sep 17 00:00:00 2001 From: Eric Lindgren Date: Fri, 28 Mar 2025 14:58:01 +0100 Subject: [PATCH 02/14] scale expected chi squared by a factor of 4, since default weighting impacts chi squared --- tests/functional_test/fitting/test_fitting.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/functional_test/fitting/test_fitting.py b/tests/functional_test/fitting/test_fitting.py index a2d15c93..43496187 100644 --- a/tests/functional_test/fitting/test_fitting.py +++ b/tests/functional_test/fitting/test_fitting.py @@ -88,7 +88,7 @@ def test_joint_fit_neutron_xray_pd_cwl_pbso4() -> None: project.analysis.fit() # Assert results - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, 21.1, decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, 5.32, decimal=1) if __name__ == '__main__': From 58b7120db120cb631ab020e139c872b0ce54b7af Mon Sep 17 00:00:00 2001 From: Eric Lindgren Date: Wed, 2 Apr 2025 16:58:39 +0200 Subject: [PATCH 03/14] play around with joint_fit api; currently using ID of experiment as key for weights --- examples/joint-refinement_weighting.py | 58 +++++++++----------- src/easydiffraction/analysis/analysis.py | 6 +- src/easydiffraction/analysis/minimization.py | 9 ++- 3 files changed, 35 insertions(+), 38 deletions(-) diff --git a/examples/joint-refinement_weighting.py b/examples/joint-refinement_weighting.py index ff46ddcd..0178a54b 100644 --- a/examples/joint-refinement_weighting.py +++ b/examples/joint-refinement_weighting.py @@ -1,4 +1,3 @@ - """ Joint Refinement Example (Advanced API) @@ -30,14 +29,15 @@ # Experiment 1: Neutron powder diffraction expt1 = Experiment(id="npd", radiation_probe="neutron", data_path="examples/data/pbso4_powder_neutron_cw.dat") -expt1.instr_setup.wavelength = 1.91 -expt1.instr_calib.twotheta_offset = -0.1406 -expt1.peak_broad.gauss_u = 0.139 -expt1.peak_broad.gauss_v = -0.412 -expt1.peak_broad.gauss_w = 0.386 -expt1.peak_broad.lorentz_x = 0 -expt1.peak_broad.lorentz_y = 0.088 +expt1.instrument.setup_wavelength = 1.91 +expt1.instrument.calib_twotheta_offset = -0.1406 +expt1.peak.broad_gauss_u = 0.139 +expt1.peak.broad_gauss_v = -0.412 +expt1.peak.broad_gauss_w = 0.386 +expt1.peak.broad_lorentz_x = 0 +expt1.peak.broad_lorentz_y = 0.088 expt1.linked_phases.add("pbso4", scale=1.0) +expt1.background_type = "line-segment" for x, y in [ (11.0, 206.1624), (15.0, 194.75), @@ -52,23 +52,22 @@ # Experiment 2: X-ray powder diffraction expt2 = Experiment(id="xrd", radiation_probe="xray", data_path="examples/data/pbso4_powder_xray.dat") -expt2.instr_setup.wavelength = 1.540567 -expt2.instr_calib.twotheta_offset = -0.05181 -expt2.peak_broad.gauss_u = 0.304138 -expt2.peak_broad.gauss_v = -0.112622 -expt2.peak_broad.gauss_w = 0.021272 -expt2.peak_broad.lorentz_x = 0 -expt2.peak_broad.lorentz_y = 0.057691 +expt2.instrument.setup_wavelength = 1.540567 +expt2.instrument.calib_twotheta_offset = -0.05181 +expt2.peak.broad_gauss_u = 0.304138 +expt2.peak.broad_gauss_v = -0.112622 +expt2.peak.broad_gauss_w = 0.021272 +expt2.peak.broad_lorentz_x = 0 +expt2.peak.broad_lorentz_y = 0.057691 expt2.linked_phases.add("pbso4", scale=0.005) +expt2.background_type = "chebyshev polynomial" for x, y in [ - (11.0, 141.8516), - (13.0, 102.8838), - (16.0, 78.0551), - (20.0, 124.0121), - (30.0, 123.7123), - (50.0, 120.8266), - (90.0, 113.7473), - (110.0, 132.4643), + (0, 119.195), + (1, 6.221), + (2, -45.725), + (3, 8.119), + (4, 54.552), + (5, -20.661), ]: expt2.background.add(x, y) @@ -78,14 +77,14 @@ project.experiments.add(expt1) project.experiments.add(expt2) -# Weight the experiments -expt1.weight = 0.4 -expt2.weight = 0.6 - # Set calculator, minimizer and refinement strategy project.analysis.current_calculator = "cryspy" project.analysis.current_minimizer = "lmfit (leastsq)" -project.analysis.refinement_strategy = 'combined' +project.analysis.fit_mode = 'joint' +# project.analysis.joint_fit.add("expt1", weight=0.4) # Default weight could be 0.5 +# project.analysis.joint_fit.add("expt2", weight=0.6) # Default weight could be 0.5 +project.analysis.joint_fit.setdefault("xrd",0.4) # Default weight could be 0.5 +project.analysis.joint_fit.setdefault("npd",0.6) # Default weight could be 0.5 # Define free parameters model.cell.length_a.free = True @@ -97,6 +96,3 @@ # Run refinement project.analysis.fit() -project.analysis.show_meas_vs_calc_chart(expt_id="npd", x_min=62, x_max=66, show_residual=True) -project.analysis.show_meas_vs_calc_chart(expt_id="xrd", x_min=26, x_max=28, show_residual=True) - diff --git a/src/easydiffraction/analysis/analysis.py b/src/easydiffraction/analysis/analysis.py index 71c5d4be..0e86185f 100644 --- a/src/easydiffraction/analysis/analysis.py +++ b/src/easydiffraction/analysis/analysis.py @@ -117,6 +117,8 @@ def fit_mode(self, strategy): if strategy not in ['single', 'joint']: raise ValueError("Fit mode must be either 'single' or 'joint'") self._fit_mode = strategy + if strategy == 'joint': + self.joint_fit = {} print(paragraph("Current ffit mode changed to")) print(self._fit_mode) @@ -215,7 +217,7 @@ def fit(self): if self.fit_mode == 'joint': print(paragraph(f"Using all experiments 🔬 {experiment_ids} for '{self.fit_mode}' fitting")) - self.fitter.fit(sample_models, experiments, calculator) + self.fitter.fit(sample_models, experiments, calculator, weights=self.joint_fit) elif self.fit_mode == 'single': for expt_id in list(experiments._items.keys()): print(paragraph(f"Using experiment 🔬 '{expt_id}' for '{self.fit_mode}' fitting")) @@ -248,4 +250,4 @@ def show_as_cif(self): print(paragraph(f"Analysis 🧮 info as cif")) print(top) print("\n".join(padded_lines)) - print(bottom) \ No newline at end of file + print(bottom) diff --git a/src/easydiffraction/analysis/minimization.py b/src/easydiffraction/analysis/minimization.py index 08c71725..d39158c9 100644 --- a/src/easydiffraction/analysis/minimization.py +++ b/src/easydiffraction/analysis/minimization.py @@ -14,7 +14,7 @@ def __init__(self, selection: str = 'lmfit (leastsq)'): self.minimizer = MinimizerFactory.create_minimizer(selection) self.results = None - def fit(self, sample_models, experiments, calculator): + def fit(self, sample_models, experiments, calculator, weights=None): """ Run the fitting process. """ @@ -27,7 +27,7 @@ def fit(self, sample_models, experiments, calculator): for parameter in parameters: parameter.start_value = parameter.value - objective_function = lambda engine_params: self._residual_function(engine_params, parameters, sample_models, experiments, calculator) + objective_function = lambda engine_params: self._residual_function(engine_params, parameters, sample_models, experiments, calculator, weights) # Perform fitting self.results = self.minimizer.fit(parameters, objective_function) @@ -50,15 +50,14 @@ def _process_fit_results(self, sample_models, experiments, calculator): def _collect_free_parameters(self, sample_models, experiments): return sample_models.get_free_params() + experiments.get_free_params() - def _residual_function(self, engine_params, parameters, sample_models, experiments, calculator): + def _residual_function(self, engine_params, parameters, sample_models, experiments, calculator, weights=None): """ Residual function computes the difference between measured and calculated patterns. It updates the parameter values according to the optimizer-provided engine_params. """ # Sync parameters back to objects self.minimizer._sync_result_to_parameters(parameters, engine_params) - - weights = np.array([getattr(experiment, 'weight', 1.0) for experiment in experiments._items.values()], dtype=np.float64) + weights = np.ones(len(experiments)) if weights is None else np.array([getattr(weights, experiment_name, 1.0) for experiment_name in experiments._items.keys()], dtype=np.float64) weights /= np.sum(weights) # Normalize weights so they sum to 1 residuals = [] From 54184b31fd644d045d72a0d34899e01d3142c003 Mon Sep 17 00:00:00 2001 From: Eric Lindgren Date: Thu, 3 Apr 2025 10:34:45 +0200 Subject: [PATCH 04/14] take the square root of weights so that they enter linearly into reduced chi-squared --- src/easydiffraction/analysis/minimization.py | 9 ++++++--- tests/functional_test/fitting/test_fitting.py | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/easydiffraction/analysis/minimization.py b/src/easydiffraction/analysis/minimization.py index d39158c9..6cc49926 100644 --- a/src/easydiffraction/analysis/minimization.py +++ b/src/easydiffraction/analysis/minimization.py @@ -57,8 +57,11 @@ def _residual_function(self, engine_params, parameters, sample_models, experimen """ # Sync parameters back to objects self.minimizer._sync_result_to_parameters(parameters, engine_params) - weights = np.ones(len(experiments)) if weights is None else np.array([getattr(weights, experiment_name, 1.0) for experiment_name in experiments._items.keys()], dtype=np.float64) - weights /= np.sum(weights) # Normalize weights so they sum to 1 + + # Prepare weights for joint fitting + N_experiments = len(experiments._items.keys()) + weights = np.ones(N_experiments) if weights is None else np.array([getattr(weights, experiment_name, 1.0) for experiment_name in experiments._items.keys()], dtype=np.float64) + weights *= N_experiments / np.sum(weights) # Normalize weights so they sum to N, where N is the number of experiments residuals = [] for (expt_id, experiment), weight in zip(experiments._items.items(), weights): @@ -66,7 +69,7 @@ def _residual_function(self, engine_params, parameters, sample_models, experimen y_meas = experiment.datastore.pattern.meas y_meas_su = experiment.datastore.pattern.meas_su diff = (y_meas - y_calc) / y_meas_su - diff *= weight + diff *= np.sqrt(weight) # Residuls are squared before going into reduced chi-squared residuals.extend(diff) residuals = np.array(residuals) diff --git a/tests/functional_test/fitting/test_fitting.py b/tests/functional_test/fitting/test_fitting.py index 43496187..a2d15c93 100644 --- a/tests/functional_test/fitting/test_fitting.py +++ b/tests/functional_test/fitting/test_fitting.py @@ -88,7 +88,7 @@ def test_joint_fit_neutron_xray_pd_cwl_pbso4() -> None: project.analysis.fit() # Assert results - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, 5.32, decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, 21.1, decimal=1) if __name__ == '__main__': From 95828c63a517243b75fd6f59512b479bf867c859 Mon Sep 17 00:00:00 2001 From: Eric Lindgren Date: Thu, 3 Apr 2025 10:50:57 +0200 Subject: [PATCH 05/14] automatically create the joint fit object, with 0.5 as default weight --- src/easydiffraction/analysis/analysis.py | 4 ++-- src/easydiffraction/analysis/minimization.py | 4 ++-- src/easydiffraction/experiments/experiments.py | 4 ++++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/easydiffraction/analysis/analysis.py b/src/easydiffraction/analysis/analysis.py index 0e86185f..0ccfd13a 100644 --- a/src/easydiffraction/analysis/analysis.py +++ b/src/easydiffraction/analysis/analysis.py @@ -118,8 +118,8 @@ def fit_mode(self, strategy): raise ValueError("Fit mode must be either 'single' or 'joint'") self._fit_mode = strategy if strategy == 'joint': - self.joint_fit = {} - print(paragraph("Current ffit mode changed to")) + self.joint_fit = { id: 0.5 for id in self.project.experiments.ids } # Pre-populate with all experiments + print(paragraph("Current fit mode changed to")) print(self._fit_mode) def show_available_fit_modes(self): diff --git a/src/easydiffraction/analysis/minimization.py b/src/easydiffraction/analysis/minimization.py index 6cc49926..e96dd211 100644 --- a/src/easydiffraction/analysis/minimization.py +++ b/src/easydiffraction/analysis/minimization.py @@ -59,8 +59,8 @@ def _residual_function(self, engine_params, parameters, sample_models, experimen self.minimizer._sync_result_to_parameters(parameters, engine_params) # Prepare weights for joint fitting - N_experiments = len(experiments._items.keys()) - weights = np.ones(N_experiments) if weights is None else np.array([getattr(weights, experiment_name, 1.0) for experiment_name in experiments._items.keys()], dtype=np.float64) + N_experiments = len(experiments.ids) + weights = np.ones(N_experiments) if weights is None else np.array([getattr(weights, id, 1.0) for id in experiments.ids], dtype=np.float64) weights *= N_experiments / np.sum(weights) # Normalize weights so they sum to N, where N is the number of experiments residuals = [] diff --git a/src/easydiffraction/experiments/experiments.py b/src/easydiffraction/experiments/experiments.py index 14b7bf86..38a5358d 100644 --- a/src/easydiffraction/experiments/experiments.py +++ b/src/easydiffraction/experiments/experiments.py @@ -90,6 +90,10 @@ def show_ids(self): print(paragraph("Defined experiments" + " 🔬")) print(list(self._experiments.keys())) + @property + def ids(self): + return list(self._experiments.keys()) + def show_params(self): for exp in self._experiments.values(): print(exp) From 753a612c36bc3753da9220bb76466b5dc70b6e4a Mon Sep 17 00:00:00 2001 From: Eric Lindgren Date: Thu, 3 Apr 2025 11:03:25 +0200 Subject: [PATCH 06/14] use a sum of weights to 1 instead of N --- src/easydiffraction/analysis/minimization.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/easydiffraction/analysis/minimization.py b/src/easydiffraction/analysis/minimization.py index e96dd211..e3536042 100644 --- a/src/easydiffraction/analysis/minimization.py +++ b/src/easydiffraction/analysis/minimization.py @@ -61,7 +61,7 @@ def _residual_function(self, engine_params, parameters, sample_models, experimen # Prepare weights for joint fitting N_experiments = len(experiments.ids) weights = np.ones(N_experiments) if weights is None else np.array([getattr(weights, id, 1.0) for id in experiments.ids], dtype=np.float64) - weights *= N_experiments / np.sum(weights) # Normalize weights so they sum to N, where N is the number of experiments + weights /= np.sum(weights) # Normalize weights so they sum to 1 residuals = [] for (expt_id, experiment), weight in zip(experiments._items.items(), weights): From 521070e0eb753839dcb0ee407861bf3e562d919c Mon Sep 17 00:00:00 2001 From: Eric Lindgren Date: Thu, 3 Apr 2025 14:03:50 +0200 Subject: [PATCH 07/14] update test to actually set the joint_fit object --- src/easydiffraction/analysis/analysis.py | 1 + src/easydiffraction/analysis/minimization.py | 8 ++++---- tests/functional_test/fitting/test_fitting.py | 4 +++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/easydiffraction/analysis/analysis.py b/src/easydiffraction/analysis/analysis.py index 0ccfd13a..89833955 100644 --- a/src/easydiffraction/analysis/analysis.py +++ b/src/easydiffraction/analysis/analysis.py @@ -217,6 +217,7 @@ def fit(self): if self.fit_mode == 'joint': print(paragraph(f"Using all experiments 🔬 {experiment_ids} for '{self.fit_mode}' fitting")) + print(self.joint_fit) self.fitter.fit(sample_models, experiments, calculator, weights=self.joint_fit) elif self.fit_mode == 'single': for expt_id in list(experiments._items.keys()): diff --git a/src/easydiffraction/analysis/minimization.py b/src/easydiffraction/analysis/minimization.py index e3536042..be2d4b4b 100644 --- a/src/easydiffraction/analysis/minimization.py +++ b/src/easydiffraction/analysis/minimization.py @@ -60,11 +60,11 @@ def _residual_function(self, engine_params, parameters, sample_models, experimen # Prepare weights for joint fitting N_experiments = len(experiments.ids) - weights = np.ones(N_experiments) if weights is None else np.array([getattr(weights, id, 1.0) for id in experiments.ids], dtype=np.float64) - weights /= np.sum(weights) # Normalize weights so they sum to 1 - + _weights = np.ones(N_experiments) if weights is None else np.array([weights.get(id, 1.0) for id in experiments.ids], dtype=np.float64) + _weights /= np.sum(_weights) # Normalize weights so they sum to 1 residuals = [] - for (expt_id, experiment), weight in zip(experiments._items.items(), weights): + + for (expt_id, experiment), weight in zip(experiments._items.items(), _weights): y_calc = calculator.calculate_pattern(sample_models, experiment) y_meas = experiment.datastore.pattern.meas y_meas_su = experiment.datastore.pattern.meas_su diff --git a/tests/functional_test/fitting/test_fitting.py b/tests/functional_test/fitting/test_fitting.py index a2d15c93..121be94c 100644 --- a/tests/functional_test/fitting/test_fitting.py +++ b/tests/functional_test/fitting/test_fitting.py @@ -76,6 +76,8 @@ def test_joint_fit_neutron_xray_pd_cwl_pbso4() -> None: project.analysis.current_calculator = "cryspy" project.analysis.current_minimizer = "lmfit (leastsq)" project.analysis.fit_mode = 'joint' + project.analysis.joint_fit['xrd'] = 0.3 + project.analysis.joint_fit['npd'] = 0.7 # Define free parameters model.cell.length_a.free = True @@ -88,7 +90,7 @@ def test_joint_fit_neutron_xray_pd_cwl_pbso4() -> None: project.analysis.fit() # Assert results - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, 21.1, decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, 7.2, decimal=1) if __name__ == '__main__': From de4331029b4aa6e07822c685f87fa6aca770f78a Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 7 Apr 2025 10:22:11 +0200 Subject: [PATCH 08/14] Adds two new examples to show expected GOF in joint fit --- .../pbso4_powder_neutron_cw_first-half.dat | 1800 ++++++++++ .../data/pbso4_powder_neutron_cw_full.dat | 2910 +++++++++++++++++ .../pbso4_powder_neutron_cw_second-half.dat | 1110 +++++++ examples/joint-fit_single-dataset.py | 77 + examples/joint-fit_split-single-dataset.py | 104 + 5 files changed, 6001 insertions(+) create mode 100644 examples/data/pbso4_powder_neutron_cw_first-half.dat create mode 100644 examples/data/pbso4_powder_neutron_cw_full.dat create mode 100644 examples/data/pbso4_powder_neutron_cw_second-half.dat create mode 100644 examples/joint-fit_single-dataset.py create mode 100644 examples/joint-fit_split-single-dataset.py diff --git a/examples/data/pbso4_powder_neutron_cw_first-half.dat b/examples/data/pbso4_powder_neutron_cw_first-half.dat new file mode 100644 index 00000000..00310507 --- /dev/null +++ b/examples/data/pbso4_powder_neutron_cw_first-half.dat @@ -0,0 +1,1800 @@ +10 220 14.8324 +10.05 214 14.6287 +10.1 219 14.7986 +10.15 224 14.9666 +10.2 198 14.0712 +10.25 229 15.1327 +10.3 224 14.9666 +10.35 216 14.6969 +10.4 202 14.2127 +10.45 229 15.1327 +10.5 202 14.2127 +10.55 215 14.6629 +10.6 215 14.6629 +10.65 196 14 +10.7 235 15.3297 +10.75 207 14.3875 +10.8 205 14.3178 +10.85 238 15.4272 +10.9 202 14.2127 +10.95 213 14.5945 +11 226 15.0333 +11.05 198 14.0712 +11.1 222 14.8997 +11.15 186 13.6382 +11.2 216 14.6969 +11.25 218 14.7648 +11.3 225 15 +11.35 200 14.1421 +11.4 196 14 +11.45 224 14.9666 +11.5 199 14.1067 +11.55 204 14.2829 +11.6 189 13.7477 +11.65 211 14.5258 +11.7 190 13.784 +11.75 184 13.5647 +11.8 204 14.2829 +11.85 204 14.2829 +11.9 219 14.7986 +11.95 207 14.3875 +12 227 15.0665 +12.05 211 10.2713 +12.1 193 9.8234 +12.15 206 10.1489 +12.2 208 10.198 +12.25 191 9.7724 +12.3 194 9.8489 +12.35 185 9.6177 +12.4 200 10 +12.45 203 10.0747 +12.5 197 9.9247 +12.55 203 10.0747 +12.6 200 10 +12.65 200 10 +12.7 205 10.1242 +12.75 208 10.198 +12.8 205 10.1242 +12.85 201 10.025 +12.9 221 10.5119 +12.95 218 10.4403 +13 218 10.4403 +13.05 216 10.3923 +13.1 202 10.0499 +13.15 206 10.1489 +13.2 197 9.9247 +13.25 210 10.247 +13.3 199 9.975 +13.35 219 10.4642 +13.4 192 9.798 +13.45 211 10.2713 +13.5 199 9.975 +13.55 196 9.8995 +13.6 195 9.8742 +13.65 203 10.0747 +13.7 202 10.0499 +13.75 200 10 +13.8 199 9.975 +13.85 191 9.7724 +13.9 204 10.0995 +13.95 191 9.7724 +14 200 10 +14.05 199 9.975 +14.1 197 9.9247 +14.15 202 10.0499 +14.2 210 10.247 +14.25 202 10.0499 +14.3 198 9.9499 +14.35 191 9.7724 +14.4 194 9.8489 +14.45 198 9.9499 +14.5 194 9.8489 +14.55 193 9.8234 +14.6 212 10.2956 +14.65 214 10.3441 +14.7 197 9.9247 +14.75 195 9.8742 +14.8 205 10.1242 +14.85 209 10.2225 +14.9 203 10.0747 +14.95 197 9.9247 +15 191 9.7724 +15.05 192 9.798 +15.1 215 10.3682 +15.15 194 9.8489 +15.2 189 9.7211 +15.25 188 9.6954 +15.3 202 10.0499 +15.35 201 10.025 +15.4 198 9.9499 +15.45 208 10.198 +15.5 197 9.9247 +15.55 187 9.6695 +15.6 187 9.6695 +15.65 190 9.7468 +15.7 197 9.9247 +15.75 200 10 +15.8 193 9.8234 +15.85 180 9.4868 +15.9 194 9.8489 +15.95 206 10.1489 +16 195 9.8742 +16.05 193 9.8234 +16.1 205 10.1242 +16.15 194 9.8489 +16.2 196 9.8995 +16.25 194 9.8489 +16.3 199 9.975 +16.35 207 10.1735 +16.4 188 9.6954 +16.45 203 10.0747 +16.5 188 9.6954 +16.55 180 9.4868 +16.6 198 9.9499 +16.65 200 10 +16.7 201 10.025 +16.75 210 10.247 +16.8 206 10.1489 +16.85 189 9.7211 +16.9 194 9.8489 +16.95 187 9.6695 +17 195 9.8742 +17.05 201 10.025 +17.1 197 9.9247 +17.15 206 10.1489 +17.2 208 10.198 +17.25 199 9.975 +17.3 192 9.798 +17.35 193 9.8234 +17.4 204 10.0995 +17.45 201 10.025 +17.5 200 10 +17.55 177 9.4074 +17.6 193 9.8234 +17.65 199 9.975 +17.7 201 10.025 +17.75 194 9.8489 +17.8 184 9.5917 +17.85 192 9.798 +17.9 199 9.975 +17.95 190 9.7468 +18 183 9.5656 +18.05 189 7.9373 +18.1 196 8.0829 +18.15 196 8.0829 +18.2 198 8.124 +18.25 210 8.3666 +18.3 212 8.4063 +18.35 219 8.544 +18.4 198 8.124 +18.45 195 8.0623 +18.5 198 8.124 +18.55 191 7.9791 +18.6 193 8.0208 +18.65 197 8.1035 +18.7 194 8.0416 +18.75 187 7.8951 +18.8 209 8.3467 +18.85 187 7.8951 +18.9 198 8.124 +18.95 206 8.2865 +19 197 8.1035 +19.05 191 7.9791 +19.1 200 8.165 +19.15 207 8.3066 +19.2 205 8.2664 +19.25 198 8.124 +19.3 196 8.0829 +19.35 209 8.3467 +19.4 211 8.3865 +19.45 203 8.226 +19.5 200 8.165 +19.55 192 8 +19.6 208 8.3267 +19.65 213 8.4261 +19.7 221 8.5829 +19.75 216 8.4853 +19.8 226 8.6795 +19.85 228 8.7178 +19.9 228 8.7178 +19.95 215 8.4656 +20 224 8.641 +20.05 226 8.6795 +20.1 213 8.4261 +20.15 239 8.9256 +20.2 250 9.1287 +20.25 247 9.0738 +20.3 240 8.9443 +20.35 231 8.775 +20.4 236 8.8694 +20.45 223 8.6217 +20.5 231 8.775 +20.55 226 8.6795 +20.6 214 8.4459 +20.65 208 8.3267 +20.7 214 8.4459 +20.75 196 8.0829 +20.8 204 8.2462 +20.85 199 8.1445 +20.9 186 7.874 +20.95 192 8 +21 199 8.1445 +21.05 200 8.165 +21.1 184 7.8316 +21.15 184 7.8316 +21.2 189 7.9373 +21.25 182 7.7889 +21.3 184 7.8316 +21.35 185 7.8528 +21.4 195 8.0623 +21.45 190 7.9582 +21.5 194 8.0416 +21.55 185 7.8528 +21.6 183 7.8102 +21.65 193 8.0208 +21.7 194 8.0416 +21.75 193 8.0208 +21.8 188 7.9162 +21.85 191 7.9791 +21.9 189 7.9373 +21.95 188 7.9162 +22 201 8.1854 +22.05 195 8.0623 +22.1 205 8.2664 +22.15 200 8.165 +22.2 200 8.165 +22.25 192 8 +22.3 197 8.1035 +22.35 204 8.2462 +22.4 207 8.3066 +22.45 192 8 +22.5 201 8.1854 +22.55 190 7.9582 +22.6 195 8.0623 +22.65 194 8.0416 +22.7 182 7.7889 +22.75 189 7.9373 +22.8 196 8.0829 +22.85 196 8.0829 +22.9 200 8.165 +22.95 190 7.9582 +23 183 7.8102 +23.05 199 8.1445 +23.1 187 7.8951 +23.15 196 8.0829 +23.2 191 7.9791 +23.25 191 7.9791 +23.3 195 8.0623 +23.35 194 8.0416 +23.4 192 8 +23.45 182 7.7889 +23.5 188 7.9162 +23.55 203 8.226 +23.6 187 7.8951 +23.65 192 8 +23.7 206 8.2865 +23.75 201 8.1854 +23.8 184 7.8316 +23.85 192 8 +23.9 205 8.2664 +23.95 196 8.0829 +24 193 8.0208 +24.05 194 6.9642 +24.1 195 6.9821 +24.15 194 6.9642 +24.2 201 7.0887 +24.25 193 6.9462 +24.3 176 6.6332 +24.35 187 6.8374 +24.4 188 6.8557 +24.45 196 7 +24.5 192 6.9282 +24.55 185 6.8007 +24.6 195 6.9821 +24.65 198 7.0356 +24.7 205 7.1589 +24.75 200 7.0711 +24.8 208 7.2111 +24.85 195 6.9821 +24.9 187 6.8374 +24.95 193 6.9462 +25 197 7.0178 +25.05 202 7.1063 +25.1 193 6.9462 +25.15 196 7 +25.2 202 7.1063 +25.25 201 7.0887 +25.3 197 7.0178 +25.35 204 7.1414 +25.4 208 7.2111 +25.45 206 7.1764 +25.5 212 7.2801 +25.55 207 7.1937 +25.6 207 7.1937 +25.65 212 7.2801 +25.7 216 7.3485 +25.75 218 7.3824 +25.8 221 7.433 +25.85 218 7.3824 +25.9 207 7.1937 +25.95 203 7.1239 +26 204 7.1414 +26.05 202 7.1063 +26.1 206 7.1764 +26.15 202 7.1063 +26.2 202 7.1063 +26.25 181 6.7268 +26.3 193 6.9462 +26.35 205 7.1589 +26.4 198 7.0356 +26.45 196 7 +26.5 197 7.0178 +26.55 195 6.9821 +26.6 201 7.0887 +26.65 205 7.1589 +26.7 195 6.9821 +26.75 196 7 +26.8 196 7 +26.85 205 7.1589 +26.9 198 7.0356 +26.95 200 7.0711 +27 199 7.0534 +27.05 180 6.7082 +27.1 187 6.8374 +27.15 193 6.9462 +27.2 197 7.0178 +27.25 197 7.0178 +27.3 196 7 +27.35 194 6.9642 +27.4 197 7.0178 +27.45 204 7.1414 +27.5 201 7.0887 +27.55 187 6.8374 +27.6 191 6.9101 +27.65 205 7.1589 +27.7 200 7.0711 +27.75 198 7.0356 +27.8 200 7.0711 +27.85 204 7.1414 +27.9 196 7 +27.95 195 6.9821 +28 194 6.9642 +28.05 200 7.0711 +28.1 198 7.0356 +28.15 201 7.0887 +28.2 208 7.2111 +28.25 205 7.1589 +28.3 211 7.2629 +28.35 211 7.2629 +28.4 220 7.4162 +28.45 220 7.4162 +28.5 212 7.2801 +28.55 208 7.2111 +28.6 214 7.3144 +28.65 226 7.5166 +28.7 235 7.6649 +28.75 233 7.6322 +28.8 237 7.6974 +28.85 242 7.7782 +28.9 242 7.7782 +28.95 245 7.8262 +29 239 7.7298 +29.05 226 7.5166 +29.1 232 7.6158 +29.15 238 7.7136 +29.2 226 7.5166 +29.25 218 7.3824 +29.3 218 7.3824 +29.35 214 7.3144 +29.4 205 7.1589 +29.45 200 7.0711 +29.5 193 6.9462 +29.55 195 6.9821 +29.6 196 7 +29.65 195 6.9821 +29.7 207 7.1937 +29.75 215 7.3314 +29.8 207 7.1937 +29.85 218 7.3824 +29.9 218 7.3824 +29.95 220 7.4162 +30 220 7.4162 +30.05 229 6.7676 +30.1 236 6.8702 +30.15 254 7.1274 +30.2 264 7.2664 +30.25 280 7.4833 +30.3 289 7.6026 +30.35 289 7.6026 +30.4 303 7.7846 +30.45 302 7.7717 +30.5 297 7.7071 +30.55 281 7.4967 +30.6 278 7.4565 +30.65 280 7.4833 +30.7 265 7.2801 +30.75 258 7.1833 +30.8 243 6.9714 +30.85 240 6.9282 +30.9 232 6.8118 +30.95 231 6.7971 +31 233 6.8264 +31.05 246 7.0143 +31.1 248 7.0427 +31.15 249 7.0569 +31.2 256 7.1554 +31.25 272 7.3756 +31.3 289 7.6026 +31.35 311 7.8867 +31.4 340 8.2462 +31.45 363 8.5206 +31.5 393 8.8657 +31.55 440 9.3808 +31.6 474 9.7365 +31.65 482 9.8183 +31.7 492 9.9197 +31.75 508 10.0797 +31.8 494 9.9398 +31.85 475 9.7468 +31.9 439 9.3702 +31.95 413 9.0885 +32 368 8.579 +32.05 331 8.1363 +32.1 299 7.733 +32.15 286 7.5631 +32.2 262 7.2388 +32.25 241 6.9426 +32.3 238 6.8993 +32.35 252 7.0993 +32.4 267 7.3075 +32.45 276 7.4297 +32.5 278 7.4565 +32.55 300 7.746 +32.6 325 8.0623 +32.65 336 8.1976 +32.7 359 8.4735 +32.75 405 9 +32.8 458 9.5708 +32.85 501 10.01 +32.9 564 10.6207 +32.95 640 11.3137 +33 719 11.9917 +33.05 783 12.514 +33.1 837 12.9383 +33.15 851 13.0461 +33.2 866 13.1605 +33.25 828 12.8686 +33.3 763 12.3531 +33.35 697 11.8068 +33.4 634 11.2606 +33.45 541 10.4019 +33.5 465 9.6437 +33.55 391 8.8431 +33.6 351 8.3785 +33.65 301 7.7589 +33.7 284 7.5366 +33.75 260 7.2111 +33.8 248 7.0427 +33.85 257 7.1694 +33.9 242 6.957 +33.95 246 7.0143 +34 263 7.2526 +34.05 271 7.3621 +34.1 281 7.4967 +34.15 302 7.7717 +34.2 309 7.8613 +34.25 335 8.1854 +34.3 342 8.2704 +34.35 345 8.3066 +34.4 356 8.438 +34.45 351 8.3785 +34.5 341 8.2583 +34.55 334 8.1731 +34.6 321 8.0125 +34.65 286 7.5631 +34.7 268 7.3212 +34.75 256 7.1554 +34.8 238 6.8993 +34.85 229 6.7676 +34.9 218 6.603 +34.95 223 6.6783 +35 216 6.5727 +35.05 203 6.3718 +35.1 203 6.3718 +35.15 194 6.229 +35.2 205 6.4031 +35.25 196 6.261 +35.3 193 6.2129 +35.35 206 6.4187 +35.4 201 6.3403 +35.45 201 6.3403 +35.5 201 6.3403 +35.55 200 6.3246 +35.6 194 6.229 +35.65 196 6.261 +35.7 203 6.3718 +35.75 195 6.245 +35.8 196 6.261 +35.85 211 6.4962 +35.9 216 6.5727 +35.95 207 6.4343 +36 215 6.5574 +36.05 221 6.6483 +36.1 237 6.2849 +36.15 248 6.4291 +36.2 261 6.5955 +36.25 279 6.8191 +36.3 319 7.2915 +36.35 337 7.4944 +36.4 364 7.7889 +36.45 423 8.3964 +36.5 489 9.0277 +36.55 557 9.635 +36.6 630 10.247 +36.65 729 11.0227 +36.7 822 11.7047 +36.75 943 12.5366 +36.8 1059 13.2853 +36.85 1196 14.1185 +36.9 1235 14.3469 +36.95 1220 14.2595 +37 1209 14.1951 +37.05 1128 13.7113 +37.1 1001 12.9164 +37.15 864 12 +37.2 729 11.0227 +37.25 601 10.0083 +37.3 496 9.0921 +37.35 418 8.3467 +37.4 355 7.692 +37.45 313 7.2226 +37.5 263 6.6207 +37.55 246 6.4031 +37.6 226 6.1373 +37.65 214 5.9722 +37.7 222 6.0828 +37.75 222 6.0828 +37.8 211 5.9301 +37.85 211 5.9301 +37.9 202 5.8023 +37.95 198 5.7446 +38 192 5.6569 +38.05 193 5.6716 +38.1 196 5.7155 +38.15 201 5.7879 +38.2 203 5.8166 +38.25 203 5.8166 +38.3 201 5.7879 +38.35 198 5.7446 +38.4 196 5.7155 +38.45 206 5.8595 +38.5 210 5.9161 +38.55 197 5.73 +38.6 204 5.831 +38.65 200 5.7735 +38.7 205 5.8452 +38.75 196 5.7155 +38.8 195 5.7009 +38.85 205 5.8452 +38.9 204 5.831 +38.95 200 5.7735 +39 203 5.8166 +39.05 208 5.8878 +39.1 207 5.8737 +39.15 202 5.8023 +39.2 203 5.8166 +39.25 198 5.7446 +39.3 204 5.831 +39.35 210 5.9161 +39.4 216 6 +39.45 210 5.9161 +39.5 229 6.1779 +39.55 239 6.3114 +39.6 247 6.4161 +39.65 278 6.8069 +39.7 302 7.0946 +39.75 324 7.3485 +39.8 371 7.8634 +39.85 420 8.3666 +39.9 465 8.8034 +39.95 538 9.4692 +40 630 10.247 +40.05 739 11.098 +40.1 851 11.9094 +40.15 976 12.7541 +40.2 1076 13.3915 +40.25 1161 13.9104 +40.3 1222 14.2712 +40.35 1227 14.3003 +40.4 1187 14.0653 +40.45 1096 13.5154 +40.5 964 12.6754 +40.55 833 11.7828 +40.6 708 10.8628 +40.65 587 9.8911 +40.7 512 9.2376 +40.75 436 8.5245 +40.8 391 8.0726 +40.85 384 8 +40.9 370 7.8528 +40.95 391 8.0726 +41 419 8.3566 +41.05 448 8.641 +41.1 490 9.037 +41.15 567 9.7211 +41.2 626 10.2144 +41.25 687 10.7005 +41.3 735 11.068 +41.35 780 11.4018 +41.4 782 11.4164 +41.45 745 11.143 +41.5 721 10.9621 +41.55 662 10.504 +41.6 595 9.9582 +41.65 527 9.3719 +41.7 446 8.6217 +41.75 393 8.0932 +41.8 335 7.4722 +41.85 301 7.0828 +41.9 276 6.7823 +41.95 251 5.9881 +42 242 5.8797 +42.05 229 5.7196 +42.1 209 5.4642 +42.15 215 5.542 +42.2 218 5.5806 +42.25 214 5.5291 +42.3 209 5.4642 +42.35 208 5.4511 +42.4 212 5.5032 +42.45 210 5.4772 +42.5 209 5.4642 +42.55 210 5.4772 +42.6 205 5.4116 +42.65 209 5.4642 +42.7 211 5.4903 +42.75 211 5.4903 +42.8 216 5.5549 +42.85 205 5.4116 +42.9 204 5.3984 +42.95 202 5.3719 +43 201 5.3586 +43.05 200 5.3452 +43.1 207 5.438 +43.15 205 5.4116 +43.2 202 5.3719 +43.25 209 5.4642 +43.3 202 5.3719 +43.35 203 5.3852 +43.4 206 5.4248 +43.45 206 5.4248 +43.5 200 5.3452 +43.55 194 5.2644 +43.6 199 5.3318 +43.65 204 5.3984 +43.7 205 5.4116 +43.75 210 5.4772 +43.8 207 5.438 +43.85 205 5.4116 +43.9 210 5.4772 +43.95 204 5.3984 +44 203 5.3852 +44.05 202 5.3719 +44.1 205 5.4116 +44.15 201 5.3586 +44.2 201 5.3586 +44.25 207 5.438 +44.3 197 5.305 +44.35 198 5.3184 +44.4 203 5.3852 +44.45 209 5.4642 +44.5 209 5.4642 +44.55 208 5.4511 +44.6 204 5.3984 +44.65 209 5.4642 +44.7 199 5.3318 +44.75 204 5.3984 +44.8 206 5.4248 +44.85 201 5.3586 +44.9 205 5.4116 +44.95 202 5.3719 +45 204 5.3984 +45.05 198 5.3184 +45.1 198 5.3184 +45.15 213 5.5162 +45.2 210 5.4772 +45.25 212 5.5032 +45.3 214 5.5291 +45.35 215 5.542 +45.4 217 5.5678 +45.45 210 5.4772 +45.5 214 5.5291 +45.55 215 5.542 +45.6 215 5.542 +45.65 215 5.542 +45.7 217 5.5678 +45.75 222 5.6315 +45.8 231 5.7446 +45.85 247 5.9402 +45.9 252 6 +45.95 273 6.245 +46 304 6.59 +46.05 332 6.8868 +46.1 366 7.2309 +46.15 408 7.6345 +46.2 463 8.1328 +46.25 532 8.7178 +46.3 619 9.4036 +46.35 734 10.24 +46.4 828 10.8759 +46.45 944 11.6128 +46.5 1003 11.9702 +46.55 1055 12.2766 +46.6 1070 12.3635 +46.65 1018 12.0594 +46.7 944 11.6128 +46.75 833 10.9087 +46.8 725 10.177 +46.85 633 9.5094 +46.9 507 8.5105 +46.95 445 7.9732 +47 379 7.3582 +47.05 347 7.0407 +47.1 316 6.7188 +47.15 282 6.3471 +47.2 267 6.176 +47.25 269 6.1991 +47.3 281 6.3358 +47.35 288 6.4143 +47.4 300 6.5465 +47.45 327 6.8348 +47.5 346 7.0305 +47.55 380 7.3679 +47.6 400 7.5593 +47.65 430 7.8376 +47.7 453 8.0445 +47.75 459 8.0976 +47.8 451 8.0267 +47.85 427 7.8102 +47.9 402 7.5782 +47.95 375 7.3193 +48 344 7.0102 +48.05 309 6.644 +48.1 277 6.2906 +48.15 265 5.7554 +48.2 246 5.5453 +48.25 246 5.5453 +48.3 230 5.3619 +48.35 223 5.2797 +48.4 227 5.3268 +48.45 225 5.3033 +48.5 217 5.2082 +48.55 217 5.2082 +48.6 223 5.2797 +48.65 223 5.2797 +48.7 220 5.244 +48.75 223 5.2797 +48.8 226 5.3151 +48.85 248 5.5678 +48.9 258 5.6789 +48.95 274 5.8523 +49 297 6.093 +49.05 324 6.364 +49.1 355 6.6615 +49.15 393 7.0089 +49.2 458 7.5664 +49.25 528 8.124 +49.3 589 8.5805 +49.35 688 9.2736 +49.4 781 9.8805 +49.45 840 10.247 +49.5 876 10.4642 +49.55 874 10.4523 +49.6 832 10.198 +49.65 765 9.7788 +49.7 682 9.2331 +49.75 613 8.7536 +49.8 524 8.0932 +49.85 455 7.5416 +49.9 408 7.1414 +49.95 384 6.9282 +50 366 6.7639 +50.05 375 6.8465 +50.1 392 7 +50.15 426 7.2973 +50.2 470 7.6649 +50.25 519 8.0545 +50.3 588 8.5732 +50.35 639 8.9373 +50.4 681 9.2263 +50.45 704 9.3808 +50.5 693 9.3073 +50.55 650 9.0139 +50.6 600 8.6603 +50.65 540 8.2158 +50.7 478 7.7298 +50.75 412 7.1764 +50.8 376 6.8557 +50.85 345 6.567 +50.9 330 6.4226 +50.95 337 6.4904 +51 350 6.6144 +51.05 383 6.9192 +51.1 426 7.2973 +51.15 493 7.8502 +51.2 571 8.4484 +51.25 676 9.1924 +51.3 803 10.0187 +51.35 920 10.7238 +51.4 1071 11.5704 +51.45 1183 12.1604 +51.5 1247 12.485 +51.55 1255 12.525 +51.6 1251 12.505 +51.65 1183 12.1604 +51.7 1068 11.5542 +51.75 945 10.8685 +51.8 861 10.3742 +51.85 811 10.0685 +51.9 813 10.0809 +51.95 872 10.4403 +52 969 11.0057 +52.05 1120 11.8322 +52.1 1309 12.7916 +52.15 1527 13.8158 +52.2 1706 14.6031 +52.25 1856 15.2315 +52.3 1888 15.3623 +52.35 1837 15.1534 +52.4 1713 14.633 +52.45 1500 13.6931 +52.5 1289 12.6935 +52.55 1103 11.742 +52.6 904 10.6301 +52.65 749 9.676 +52.7 627 8.853 +52.75 568 8.4261 +52.8 551 8.2991 +52.85 560 8.3666 +52.9 586 8.5586 +52.95 634 8.9022 +53 691 9.2938 +53.05 751 9.6889 +53.1 799 9.9937 +53.15 792 9.9499 +53.2 820 10.1242 +53.25 774 9.8362 +53.3 736 9.5917 +53.35 680 9.2195 +53.4 627 8.853 +53.45 562 8.3815 +53.5 514 8.0156 +53.55 459 7.5746 +53.6 424 7.2801 +53.65 362 6.7268 +53.7 333 6.4517 +53.75 318 6.3048 +53.8 300 6.1237 +53.85 287 5.9896 +53.9 265 5.7554 +53.95 266 5.7663 +54 262 5.7228 +54.05 263 5.4058 +54.1 255 5.3229 +54.15 270 5.4772 +54.2 278 5.5578 +54.25 289 5.6667 +54.3 317 5.9348 +54.35 343 6.1734 +54.4 400 6.6667 +54.45 468 7.2111 +54.5 561 7.8951 +54.55 695 8.7876 +54.6 873 9.8489 +54.65 1100 11.0554 +54.7 1372 12.3468 +54.75 1660 13.581 +54.8 1954 14.7347 +54.85 2224 15.7198 +54.9 2400 16.3299 +54.95 2459 16.5294 +55 2435 16.4486 +55.05 2245 15.7938 +55.1 1986 14.8549 +55.15 1671 13.626 +55.2 1358 12.2837 +55.25 1086 10.9848 +55.3 868 9.8206 +55.35 682 8.705 +55.4 578 8.0139 +55.45 521 7.6085 +55.5 512 7.5425 +55.55 537 7.7244 +55.6 600 8.165 +55.65 704 8.8443 +55.7 855 9.7468 +55.75 1032 10.7083 +55.8 1232 11.7 +55.85 1466 12.7628 +55.9 1693 13.7154 +55.95 1866 14.3991 +56 1966 14.7799 +56.05 2024 14.9963 +56.1 2016 14.9666 +56.15 1846 14.3217 +56.2 1667 13.6096 +56.25 1429 12.6007 +56.3 1179 11.4455 +56.35 950 10.274 +56.4 763 9.2075 +56.45 599 8.1582 +56.5 484 7.3333 +56.55 404 6.6999 +56.6 351 6.245 +56.65 304 5.8119 +56.7 284 5.6174 +56.75 273 5.5076 +56.8 259 5.3645 +56.85 251 5.281 +56.9 251 5.281 +56.95 252 5.2915 +57 245 5.2175 +57.05 259 5.3645 +57.1 250 5.2705 +57.15 253 5.302 +57.2 256 5.3333 +57.25 264 5.416 +57.3 285 5.6273 +57.35 301 5.7831 +57.4 346 6.2004 +57.45 390 6.5828 +57.5 458 7.1336 +57.55 528 7.6594 +57.6 624 8.3267 +57.65 733 9.0247 +57.7 829 9.5975 +57.75 916 10.0885 +57.8 988 10.4775 +57.85 994 10.5093 +57.9 929 10.1598 +57.95 843 9.6782 +58 742 9.0799 +58.05 638 8.4196 +58.1 527 7.6522 +58.15 434 6.9442 +58.2 377 6.4722 +58.25 320 5.9628 +58.3 282 5.5976 +58.35 273 5.5076 +58.4 256 5.3333 +58.45 243 5.1962 +58.5 240 5.164 +58.55 240 5.164 +58.6 230 5.0553 +58.65 220 4.9441 +58.7 230 5.0553 +58.75 227 5.0222 +58.8 224 4.9889 +58.85 219 4.9329 +58.9 227 5.0222 +58.95 227 5.0222 +59 224 4.9889 +59.05 222 4.9666 +59.1 223 4.9777 +59.15 217 4.9103 +59.2 213 4.8648 +59.25 216 4.899 +59.3 219 4.9329 +59.35 219 4.9329 +59.4 218 4.9216 +59.45 220 4.9441 +59.5 220 4.9441 +59.55 220 4.9441 +59.6 223 4.9777 +59.65 233 5.0881 +59.7 237 5.1316 +59.75 249 5.2599 +59.8 258 5.3541 +59.85 261 5.3852 +59.9 283 5.6075 +59.95 304 5.8119 +60 324 5.6921 +60.05 347 5.8907 +60.1 353 5.9414 +60.15 359 5.9917 +60.2 363 6.0249 +60.25 352 5.933 +60.3 341 5.8395 +60.35 330 5.7446 +60.4 308 5.5498 +60.45 291 5.3944 +60.5 271 5.2058 +60.55 254 5.0398 +60.6 245 4.9497 +60.65 245 4.9497 +60.7 239 4.8888 +60.75 228 4.7749 +60.8 217 4.6583 +60.85 217 4.6583 +60.9 218 4.669 +60.95 223 4.7223 +61 207 4.5497 +61.05 218 4.669 +61.1 222 4.7117 +61.15 215 4.6368 +61.2 210 4.5826 +61.25 216 4.6476 +61.3 213 4.6152 +61.35 212 4.6043 +61.4 215 4.6368 +61.45 212 4.6043 +61.5 214 4.626 +61.55 211 4.5935 +61.6 214 4.626 +61.65 217 4.6583 +61.7 205 4.5277 +61.75 207 4.5497 +61.8 213 4.6152 +61.85 208 4.5607 +61.9 211 4.5935 +61.95 205 4.5277 +62 214 4.626 +62.05 213 4.6152 +62.1 212 4.6043 +62.15 212 4.6043 +62.2 213 4.6152 +62.25 207 4.5497 +62.3 203 4.5056 +62.35 211 4.5935 +62.4 211 4.5935 +62.45 214 4.626 +62.5 214 4.626 +62.55 207 4.5497 +62.6 203 4.5056 +62.65 212 4.6043 +62.7 212 4.6043 +62.75 214 4.626 +62.8 213 4.6152 +62.85 202 4.4944 +62.9 210 4.5826 +62.95 211 4.5935 +63 211 4.5935 +63.05 214 4.626 +63.1 221 4.7011 +63.15 217 4.6583 +63.2 212 4.6043 +63.25 214 4.626 +63.3 219 4.6797 +63.35 223 4.7223 +63.4 225 4.7434 +63.45 227 4.7645 +63.5 235 4.8477 +63.55 240 4.899 +63.6 243 4.9295 +63.65 252 5.02 +63.7 249 4.99 +63.75 249 4.99 +63.8 255 5.0498 +63.85 262 5.1186 +63.9 282 5.3104 +63.95 308 5.5498 +64 351 5.9245 +64.05 398 6.3087 +64.1 470 6.8557 +64.15 525 7.2457 +64.2 596 7.7201 +64.25 646 8.0374 +64.3 681 8.2523 +64.35 665 8.1548 +64.4 615 7.8422 +64.45 563 7.5033 +64.5 484 6.957 +64.55 421 6.4885 +64.6 364 6.0332 +64.65 317 5.6303 +64.7 289 5.3759 +64.75 261 5.1088 +64.8 245 4.9497 +64.85 233 4.827 +64.9 228 4.7749 +64.95 219 4.6797 +65 219 4.6797 +65.05 217 4.6583 +65.1 216 4.6476 +65.15 221 4.7011 +65.2 215 4.6368 +65.25 215 4.6368 +65.3 210 4.5826 +65.35 212 4.6043 +65.4 212 4.6043 +65.45 204 4.5166 +65.5 209 4.5717 +65.55 206 4.5387 +65.6 216 4.6476 +65.65 207 4.5497 +65.7 214 4.626 +65.75 207 4.5497 +65.8 209 4.5717 +65.85 218 4.669 +65.9 215 4.6368 +65.95 222 4.7117 +66 226 4.7539 +66.05 230 4.7958 +66.1 239 4.8888 +66.15 249 4.99 +66.2 263 5.1284 +66.25 275 5.244 +66.3 292 5.4037 +66.35 317 5.6303 +66.4 323 5.6833 +66.45 341 5.8395 +66.5 350 5.9161 +66.55 330 5.7446 +66.6 320 5.6569 +66.65 307 5.5408 +66.7 284 5.3292 +66.75 275 5.244 +66.8 265 5.1478 +66.85 269 5.1865 +66.9 275 5.244 +66.95 292 5.4037 +67 311 5.5767 +67.05 338 5.8138 +67.1 387 6.2209 +67.15 413 6.4265 +67.2 463 6.8044 +67.25 510 7.1414 +67.3 534 7.3075 +67.35 559 7.4766 +67.4 539 7.3417 +67.45 533 7.3007 +67.5 500 7.0711 +67.55 471 6.8629 +67.6 455 6.7454 +67.65 410 6.4031 +67.7 373 6.1074 +67.75 342 5.8481 +67.8 307 5.5408 +67.85 288 5.3666 +67.9 286 5.3479 +67.95 281 5.3009 +68 292 5.4037 +68.05 291 5.3944 +68.1 312 5.5857 +68.15 326 5.7096 +68.2 336 5.7966 +68.25 346 5.8822 +68.3 341 5.8395 +68.35 327 5.7184 +68.4 305 5.5227 +68.45 277 5.2631 +68.5 267 5.1672 +68.55 249 4.99 +68.6 229 4.7854 +68.65 221 4.7011 +68.7 220 4.6904 +68.75 217 4.6583 +68.8 211 4.5935 +68.85 204 4.5166 +68.9 203 4.5056 +68.95 220 4.6904 +69 217 4.6583 +69.05 217 4.6583 +69.1 214 4.626 +69.15 205 4.5277 +69.2 205 4.5277 +69.25 211 4.5935 +69.3 206 4.5387 +69.35 208 4.5607 +69.4 201 4.4833 +69.45 208 4.5607 +69.5 214 4.626 +69.55 212 4.6043 +69.6 206 4.5387 +69.65 216 4.6476 +69.7 219 4.6797 +69.75 215 4.6368 +69.8 217 4.6583 +69.85 211 4.5935 +69.9 214 4.626 +69.95 215 4.6368 +70 224 4.7329 +70.05 217 4.6583 +70.1 215 4.6368 +70.15 218 4.669 +70.2 218 4.669 +70.25 228 4.7749 +70.3 227 4.7645 +70.35 228 4.7749 +70.4 225 4.7434 +70.45 219 4.6797 +70.5 216 4.6476 +70.55 219 4.6797 +70.6 218 4.669 +70.65 214 4.626 +70.7 212 4.6043 +70.75 221 4.7011 +70.8 214 4.626 +70.85 208 4.5607 +70.9 204 4.5166 +70.95 209 4.5717 +71 209 4.5717 +71.05 208 4.5607 +71.1 212 4.6043 +71.15 213 4.6152 +71.2 218 4.669 +71.25 212 4.6043 +71.3 205 4.5277 +71.35 207 4.5497 +71.4 204 4.5166 +71.45 206 4.5387 +71.5 211 4.5935 +71.55 216 4.6476 +71.6 214 4.626 +71.65 210 4.5826 +71.7 219 4.6797 +71.75 222 4.7117 +71.8 224 4.7329 +71.85 231 4.8062 +71.9 227 4.7645 +71.95 237 4.8683 +72 235 4.8477 +72.05 238 4.8785 +72.1 245 4.9497 +72.15 242 4.9193 +72.2 248 4.98 +72.25 246 4.9598 +72.3 243 4.9295 +72.35 253 5.0299 +72.4 259 5.0892 +72.45 278 5.2726 +72.5 281 5.3009 +72.55 297 5.4498 +72.6 310 5.5678 +72.65 324 5.6921 +72.7 322 5.6745 +72.75 311 5.5767 +72.8 295 5.4314 +72.85 281 5.3009 +72.9 259 5.0892 +72.95 250 5 +73 239 4.8888 +73.05 233 4.827 +73.1 227 4.7645 +73.15 226 4.7539 +73.2 223 4.7223 +73.25 211 4.5935 +73.3 209 4.5717 +73.35 217 4.6583 +73.4 214 4.626 +73.45 213 4.6152 +73.5 217 4.6583 +73.55 220 4.6904 +73.6 210 4.5826 +73.65 209 4.5717 +73.7 215 4.6368 +73.75 218 4.669 +73.8 215 4.6368 +73.85 217 4.6583 +73.9 221 4.7011 +73.95 217 4.6583 +74 219 4.6797 +74.05 220 4.6904 +74.1 228 4.7749 +74.15 229 4.7854 +74.2 230 4.7958 +74.25 234 4.8374 +74.3 251 5.01 +74.35 261 5.1088 +74.4 288 5.3666 +74.45 313 5.5946 +74.5 362 6.0166 +74.55 424 6.5115 +74.6 524 7.2388 +74.65 646 8.0374 +74.7 781 8.8374 +74.75 920 9.5917 +74.8 1024 10.1193 +74.85 1120 10.583 +74.9 1187 10.895 +74.95 1187 10.895 +75 1166 10.7981 +75.05 1114 10.5546 +75.1 1044 10.2176 +75.15 991 9.9549 +75.2 927 9.6281 +75.25 823 9.0719 +75.3 717 8.4676 +75.35 619 7.8677 +75.4 520 7.2111 +75.45 421 6.4885 +75.5 353 5.9414 +75.55 308 5.5498 +75.6 273 5.2249 +75.65 256 5.0596 +75.7 245 4.9497 +75.75 234 4.8374 +75.8 230 4.7958 +75.85 224 4.7329 +75.9 232 4.8166 +75.95 226 4.7539 +76 222 4.7117 +76.05 222 4.7117 +76.1 227 4.7645 +76.15 225 4.7434 +76.2 226 4.7539 +76.25 227 4.7645 +76.3 229 4.7854 +76.35 235 4.8477 +76.4 233 4.827 +76.45 243 4.9295 +76.5 238 4.8785 +76.55 237 4.8683 +76.6 236 4.858 +76.65 232 4.8166 +76.7 231 4.8062 +76.75 227 4.7645 +76.8 225 4.7434 +76.85 220 4.6904 +76.9 218 4.669 +76.95 215 4.6368 +77 219 4.6797 +77.05 224 4.7329 +77.1 225 4.7434 +77.15 222 4.7117 +77.2 231 4.8062 +77.25 243 4.9295 +77.3 250 5 +77.35 269 5.1865 +77.4 286 5.3479 +77.45 310 5.5678 +77.5 325 5.7009 +77.55 332 5.7619 +77.6 337 5.8052 +77.65 329 5.7359 +77.7 303 5.5045 +77.75 278 5.2726 +77.8 268 5.1769 +77.85 252 5.02 +77.9 236 4.858 +77.95 228 4.7749 +78 219 4.6797 +78.05 225 4.7434 +78.1 222 4.7117 +78.15 214 4.626 +78.2 228 4.7749 +78.25 221 4.7011 +78.3 217 4.6583 +78.35 221 4.7011 +78.4 222 4.7117 +78.45 226 4.7539 +78.5 237 4.8683 +78.55 246 4.9598 +78.6 255 5.0498 +78.65 269 5.1865 +78.7 284 5.3292 +78.75 302 5.4955 +78.8 313 5.5946 +78.85 327 5.7184 +78.9 321 5.6657 +78.95 333 5.7706 +79 331 5.7533 +79.05 332 5.7619 +79.1 358 5.9833 +79.15 402 6.3403 +79.2 460 6.7823 +79.25 557 7.4632 +79.3 660 8.124 +79.35 769 8.7693 +79.4 859 9.2682 +79.45 934 9.6644 +79.5 955 9.7724 +79.55 921 9.5969 +79.6 824 9.0774 +79.65 694 8.3307 +79.7 578 7.6026 +79.75 474 6.8848 +79.8 402 6.3403 +79.85 344 5.8652 +79.9 306 5.5317 +79.95 300 5.4772 +80 292 5.4037 +80.05 292 5.4037 +80.1 302 5.4955 +80.15 304 5.5136 +80.2 306 5.5317 +80.25 305 5.5227 +80.3 303 5.5045 +80.35 299 5.4681 +80.4 278 5.2726 +80.45 259 5.0892 +80.5 257 5.0695 +80.55 245 4.9497 +80.6 237 4.8683 +80.65 240 4.899 +80.7 233 4.827 +80.75 232 4.8166 +80.8 235 4.8477 +80.85 241 4.9092 +80.9 257 5.0695 +80.95 274 5.2345 +81 292 5.4037 +81.05 309 5.5588 +81.1 333 5.7706 +81.15 360 6 +81.2 381 6.1725 +81.25 387 6.2209 +81.3 387 6.2209 +81.35 386 6.2129 +81.4 382 6.1806 +81.45 368 6.0663 +81.5 363 6.0249 +81.55 352 5.933 +81.6 337 5.8052 +81.65 321 5.6657 +81.7 297 5.4498 +81.75 281 5.3009 +81.8 265 5.1478 +81.85 255 5.0498 +81.9 251 5.01 +81.95 237 4.8683 +82 238 4.8785 +82.05 237 4.8683 +82.1 228 4.7749 +82.15 240 4.899 +82.2 234 4.8374 +82.25 226 4.7539 +82.3 229 4.7854 +82.35 228 4.7749 +82.4 233 4.827 +82.45 243 4.9295 +82.5 241 4.9092 +82.55 257 5.0695 +82.6 279 5.282 +82.65 305 5.5227 +82.7 345 5.8737 +82.75 410 6.4031 +82.8 455 6.7454 +82.85 545 7.3824 +82.9 622 7.8867 +82.95 673 8.2037 +83 725 8.5147 +83.05 717 8.4676 +83.1 661 8.1302 +83.15 592 7.6942 +83.2 518 7.1972 +83.25 443 6.6558 +83.3 371 6.091 +83.35 336 5.7966 +83.4 290 5.3852 +83.45 265 5.1478 +83.5 252 5.02 +83.55 250 5 +83.6 244 4.9396 +83.65 242 4.9193 +83.7 241 4.9092 +83.75 243 4.9295 +83.8 248 4.98 +83.85 253 5.0299 +83.9 252 5.02 +83.95 264 5.1381 +84 266 5.1575 +84.05 282 5.3104 +84.1 291 5.3944 +84.15 313 5.5946 +84.2 346 5.8822 +84.25 374 6.1156 +84.3 415 6.442 +84.35 430 6.5574 +84.4 433 6.5803 +84.45 430 6.5574 +84.5 406 6.3718 +84.55 384 6.1968 +84.6 349 5.9076 +84.65 318 5.6391 +84.7 307 5.5408 +84.75 298 5.4589 +84.8 296 5.4406 +84.85 304 5.5136 +84.9 313 5.5946 +84.95 328 5.7271 +85 346 5.8822 +85.05 341 5.8395 +85.1 335 5.7879 +85.15 324 5.6921 +85.2 336 5.7966 +85.25 341 5.8395 +85.3 341 5.8395 +85.35 370 6.0828 +85.4 414 6.4343 +85.45 442 6.6483 +85.5 490 7 +85.55 520 7.2111 +85.6 532 7.2938 +85.65 548 7.4027 +85.7 561 7.49 +85.75 567 7.5299 +85.8 585 7.6485 +85.85 584 7.642 +85.9 558 7.4699 +85.95 527 7.2595 +86 481 6.9354 +86.05 424 6.5115 +86.1 370 6.0828 +86.15 333 5.7706 +86.2 312 5.5857 +86.25 301 5.4863 +86.3 307 5.5408 +86.35 314 5.6036 +86.4 340 5.831 +86.45 379 6.1563 +86.5 427 6.5345 +86.55 467 6.8337 +86.6 535 7.3144 +86.65 584 7.642 +86.7 602 7.7589 +86.75 580 7.6158 +86.8 532 7.2938 +86.85 481 6.9354 +86.9 426 6.5269 +86.95 379 6.1563 +87 329 5.7359 +87.05 303 5.5045 +87.1 288 5.3666 +87.15 271 5.2058 +87.2 269 5.1865 +87.25 267 5.1672 +87.3 263 5.1284 +87.35 267 5.1672 +87.4 260 5.099 +87.45 260 5.099 +87.5 263 5.1284 +87.55 263 5.1284 +87.6 270 5.1962 +87.65 278 5.2726 +87.7 293 5.4129 +87.75 318 5.6391 +87.8 364 6.0332 +87.85 424 6.5115 +87.9 512 7.1554 +87.95 643 8.0187 +88 817 9.0388 +88.05 982 9.9096 +88.1 1163 10.7842 +88.15 1289 11.3534 +88.2 1373 11.7175 +88.25 1393 11.8025 +88.3 1348 11.6103 +88.35 1244 11.1535 +88.4 1157 10.7564 +88.45 1077 10.3779 +88.5 1020 10.0995 +88.55 965 9.8234 +88.6 907 9.5237 +88.65 858 9.2628 +88.7 771 8.7807 +88.75 647 8.0436 +88.8 555 7.4498 +88.85 468 6.8411 +88.9 405 6.364 +88.95 348 5.8992 +89 316 5.6214 +89.05 291 5.3944 +89.1 277 5.2631 +89.15 278 5.2726 +89.2 270 5.1962 +89.25 262 5.1186 +89.3 268 5.1769 +89.35 270 5.1962 +89.4 279 5.282 +89.45 287 5.3572 +89.5 300 5.4772 +89.55 319 5.648 +89.6 347 5.8907 +89.65 378 6.1482 +89.7 420 6.4807 +89.75 469 6.8484 +89.8 536 7.3212 +89.85 645 8.0312 +89.9 773 8.792 +89.95 925 9.6177 +90 1115 10.5594 +90.05 1254 11.1982 +90.1 1367 11.6919 +90.15 1400 11.8322 +90.2 1327 11.5195 +90.25 1188 10.8995 +90.3 1038 10.1882 +90.35 879 9.3755 +90.4 738 8.5907 +90.45 644 8.025 +90.5 594 7.7071 +90.55 601 7.7524 +90.6 643 8.0187 +90.65 697 8.3487 +90.7 786 8.8657 +90.75 842 9.1761 +90.8 847 9.2033 +90.85 791 8.8938 +90.9 702 8.3785 +90.95 592 7.6942 +91 508 7.1274 +91.05 418 6.4653 +91.1 362 6.0166 +91.15 328 5.7271 +91.2 299 5.4681 +91.25 279 5.282 +91.3 270 5.1962 +91.35 257 5.0695 +91.4 253 5.0299 +91.45 258 5.0794 +91.5 257 5.0695 +91.55 249 4.99 +91.6 245 4.9497 +91.65 257 5.0695 +91.7 260 5.099 +91.75 284 5.3292 +91.8 296 5.4406 +91.85 322 5.6745 +91.9 343 5.8566 +91.95 382 6.1806 +92 405 6.364 +92.05 411 6.4109 +92.1 416 6.4498 +92.15 406 6.3718 +92.2 372 6.0992 +92.25 353 5.9414 +92.3 330 5.7446 +92.35 317 5.6303 +92.4 313 5.5946 +92.45 312 5.5857 +92.5 309 5.5588 +92.55 303 5.5045 +92.6 288 5.3666 +92.65 276 5.2536 +92.7 264 5.1381 +92.75 246 4.9598 +92.8 249 4.99 +92.85 241 4.9092 +92.9 251 5.01 +92.95 243 4.9295 +93 246 4.9598 +93.05 246 4.9598 +93.1 249 4.99 +93.15 244 4.9396 +93.2 252 5.02 +93.25 252 5.02 +93.3 258 5.0794 +93.35 265 5.1478 +93.4 263 5.1284 +93.45 284 5.3292 +93.5 299 5.4681 +93.55 320 5.6569 +93.6 344 5.8652 +93.65 363 6.0249 +93.7 372 6.0992 +93.75 358 5.9833 +93.8 351 5.9245 +93.85 354 5.9498 +93.9 330 5.7446 +93.95 322 5.6745 +94 334 5.7793 +94.05 339 5.8224 +94.1 345 5.8737 +94.15 357 5.9749 +94.2 360 6 +94.25 358 5.9833 +94.3 372 6.0992 +94.35 425 6.5192 +94.4 511 7.1484 +94.45 626 7.912 +94.5 770 8.775 +94.55 946 9.7263 +94.6 1118 10.5736 +94.65 1205 10.9772 +94.7 1227 11.077 +94.75 1157 10.7564 +94.8 1041 10.2029 +94.85 873 9.3434 +94.9 715 8.4558 +94.95 562 7.4967 +95 446 6.6783 +95.05 377 6.14 +95.1 332 5.7619 +95.15 297 5.4498 +95.2 282 5.3104 +95.25 276 5.2536 +95.3 264 5.1381 +95.35 261 5.1088 +95.4 266 5.1575 +95.45 261 5.1088 +95.5 253 5.0299 +95.55 258 5.0794 +95.6 262 5.1186 +95.65 260 5.099 +95.7 283 5.3198 +95.75 307 5.5408 +95.8 344 5.8652 +95.85 402 6.3403 +95.9 453 6.7305 +95.95 529 7.2732 +96 604 7.7717 +96.05 661 8.1302 +96.1 672 8.1976 +96.15 629 7.931 +96.2 588 7.6681 +96.25 510 7.1414 +96.3 440 6.6332 +96.35 377 6.14 +96.4 330 5.7446 +96.45 301 5.4863 +96.5 280 5.2915 +96.55 269 5.1865 +96.6 258 5.0794 +96.65 252 5.02 +96.7 251 5.01 +96.75 252 5.02 +96.8 256 5.0596 +96.85 253 5.0299 +96.9 253 5.0299 +96.95 253 5.0299 +97 262 5.1186 +97.05 265 5.1478 +97.1 284 5.3292 +97.15 291 5.3944 +97.2 323 5.6833 +97.25 374 6.1156 +97.3 431 6.5651 +97.35 511 7.1484 +97.4 602 7.7589 +97.45 678 8.2341 +97.5 743 8.6197 +97.55 756 8.6948 +97.6 717 8.4676 +97.65 657 8.1056 +97.7 581 7.6223 +97.75 490 7 +97.8 418 6.4653 +97.85 364 6.0332 +97.9 335 5.7879 +97.95 306 5.5317 +98 290 5.3852 +98.05 286 5.3479 +98.1 283 5.3198 +98.15 283 5.3198 +98.2 274 5.2345 +98.25 262 5.1186 +98.3 266 5.1575 +98.35 261 5.1088 +98.4 261 5.1088 +98.45 264 5.1381 +98.5 269 5.1865 +98.55 278 5.2726 +98.6 288 5.3666 +98.65 306 5.5317 +98.7 319 5.648 +98.75 330 5.7446 +98.8 343 5.8566 +98.85 341 5.8395 +98.9 325 5.7009 +98.95 318 5.6391 +99 298 5.4589 +99.05 299 5.4681 +99.1 288 5.3666 +99.15 309 5.5588 +99.2 344 5.8652 +99.25 382 6.1806 +99.3 422 6.4962 +99.35 470 6.8557 +99.4 512 7.1554 +99.45 514 7.1694 +99.5 515 7.1764 +99.55 488 6.9857 +99.6 440 6.6332 +99.65 396 6.2929 +99.7 366 6.0498 +99.75 332 5.7619 +99.8 311 5.5767 +99.85 305 5.5227 +99.9 300 5.4772 +99.95 293 5.4129 diff --git a/examples/data/pbso4_powder_neutron_cw_full.dat b/examples/data/pbso4_powder_neutron_cw_full.dat new file mode 100644 index 00000000..b775a9cc --- /dev/null +++ b/examples/data/pbso4_powder_neutron_cw_full.dat @@ -0,0 +1,2910 @@ +10 220 14.8324 +10.05 214 14.6287 +10.1 219 14.7986 +10.15 224 14.9666 +10.2 198 14.0712 +10.25 229 15.1327 +10.3 224 14.9666 +10.35 216 14.6969 +10.4 202 14.2127 +10.45 229 15.1327 +10.5 202 14.2127 +10.55 215 14.6629 +10.6 215 14.6629 +10.65 196 14 +10.7 235 15.3297 +10.75 207 14.3875 +10.8 205 14.3178 +10.85 238 15.4272 +10.9 202 14.2127 +10.95 213 14.5945 +11 226 15.0333 +11.05 198 14.0712 +11.1 222 14.8997 +11.15 186 13.6382 +11.2 216 14.6969 +11.25 218 14.7648 +11.3 225 15 +11.35 200 14.1421 +11.4 196 14 +11.45 224 14.9666 +11.5 199 14.1067 +11.55 204 14.2829 +11.6 189 13.7477 +11.65 211 14.5258 +11.7 190 13.784 +11.75 184 13.5647 +11.8 204 14.2829 +11.85 204 14.2829 +11.9 219 14.7986 +11.95 207 14.3875 +12 227 15.0665 +12.05 211 10.2713 +12.1 193 9.8234 +12.15 206 10.1489 +12.2 208 10.198 +12.25 191 9.7724 +12.3 194 9.8489 +12.35 185 9.6177 +12.4 200 10 +12.45 203 10.0747 +12.5 197 9.9247 +12.55 203 10.0747 +12.6 200 10 +12.65 200 10 +12.7 205 10.1242 +12.75 208 10.198 +12.8 205 10.1242 +12.85 201 10.025 +12.9 221 10.5119 +12.95 218 10.4403 +13 218 10.4403 +13.05 216 10.3923 +13.1 202 10.0499 +13.15 206 10.1489 +13.2 197 9.9247 +13.25 210 10.247 +13.3 199 9.975 +13.35 219 10.4642 +13.4 192 9.798 +13.45 211 10.2713 +13.5 199 9.975 +13.55 196 9.8995 +13.6 195 9.8742 +13.65 203 10.0747 +13.7 202 10.0499 +13.75 200 10 +13.8 199 9.975 +13.85 191 9.7724 +13.9 204 10.0995 +13.95 191 9.7724 +14 200 10 +14.05 199 9.975 +14.1 197 9.9247 +14.15 202 10.0499 +14.2 210 10.247 +14.25 202 10.0499 +14.3 198 9.9499 +14.35 191 9.7724 +14.4 194 9.8489 +14.45 198 9.9499 +14.5 194 9.8489 +14.55 193 9.8234 +14.6 212 10.2956 +14.65 214 10.3441 +14.7 197 9.9247 +14.75 195 9.8742 +14.8 205 10.1242 +14.85 209 10.2225 +14.9 203 10.0747 +14.95 197 9.9247 +15 191 9.7724 +15.05 192 9.798 +15.1 215 10.3682 +15.15 194 9.8489 +15.2 189 9.7211 +15.25 188 9.6954 +15.3 202 10.0499 +15.35 201 10.025 +15.4 198 9.9499 +15.45 208 10.198 +15.5 197 9.9247 +15.55 187 9.6695 +15.6 187 9.6695 +15.65 190 9.7468 +15.7 197 9.9247 +15.75 200 10 +15.8 193 9.8234 +15.85 180 9.4868 +15.9 194 9.8489 +15.95 206 10.1489 +16 195 9.8742 +16.05 193 9.8234 +16.1 205 10.1242 +16.15 194 9.8489 +16.2 196 9.8995 +16.25 194 9.8489 +16.3 199 9.975 +16.35 207 10.1735 +16.4 188 9.6954 +16.45 203 10.0747 +16.5 188 9.6954 +16.55 180 9.4868 +16.6 198 9.9499 +16.65 200 10 +16.7 201 10.025 +16.75 210 10.247 +16.8 206 10.1489 +16.85 189 9.7211 +16.9 194 9.8489 +16.95 187 9.6695 +17 195 9.8742 +17.05 201 10.025 +17.1 197 9.9247 +17.15 206 10.1489 +17.2 208 10.198 +17.25 199 9.975 +17.3 192 9.798 +17.35 193 9.8234 +17.4 204 10.0995 +17.45 201 10.025 +17.5 200 10 +17.55 177 9.4074 +17.6 193 9.8234 +17.65 199 9.975 +17.7 201 10.025 +17.75 194 9.8489 +17.8 184 9.5917 +17.85 192 9.798 +17.9 199 9.975 +17.95 190 9.7468 +18 183 9.5656 +18.05 189 7.9373 +18.1 196 8.0829 +18.15 196 8.0829 +18.2 198 8.124 +18.25 210 8.3666 +18.3 212 8.4063 +18.35 219 8.544 +18.4 198 8.124 +18.45 195 8.0623 +18.5 198 8.124 +18.55 191 7.9791 +18.6 193 8.0208 +18.65 197 8.1035 +18.7 194 8.0416 +18.75 187 7.8951 +18.8 209 8.3467 +18.85 187 7.8951 +18.9 198 8.124 +18.95 206 8.2865 +19 197 8.1035 +19.05 191 7.9791 +19.1 200 8.165 +19.15 207 8.3066 +19.2 205 8.2664 +19.25 198 8.124 +19.3 196 8.0829 +19.35 209 8.3467 +19.4 211 8.3865 +19.45 203 8.226 +19.5 200 8.165 +19.55 192 8 +19.6 208 8.3267 +19.65 213 8.4261 +19.7 221 8.5829 +19.75 216 8.4853 +19.8 226 8.6795 +19.85 228 8.7178 +19.9 228 8.7178 +19.95 215 8.4656 +20 224 8.641 +20.05 226 8.6795 +20.1 213 8.4261 +20.15 239 8.9256 +20.2 250 9.1287 +20.25 247 9.0738 +20.3 240 8.9443 +20.35 231 8.775 +20.4 236 8.8694 +20.45 223 8.6217 +20.5 231 8.775 +20.55 226 8.6795 +20.6 214 8.4459 +20.65 208 8.3267 +20.7 214 8.4459 +20.75 196 8.0829 +20.8 204 8.2462 +20.85 199 8.1445 +20.9 186 7.874 +20.95 192 8 +21 199 8.1445 +21.05 200 8.165 +21.1 184 7.8316 +21.15 184 7.8316 +21.2 189 7.9373 +21.25 182 7.7889 +21.3 184 7.8316 +21.35 185 7.8528 +21.4 195 8.0623 +21.45 190 7.9582 +21.5 194 8.0416 +21.55 185 7.8528 +21.6 183 7.8102 +21.65 193 8.0208 +21.7 194 8.0416 +21.75 193 8.0208 +21.8 188 7.9162 +21.85 191 7.9791 +21.9 189 7.9373 +21.95 188 7.9162 +22 201 8.1854 +22.05 195 8.0623 +22.1 205 8.2664 +22.15 200 8.165 +22.2 200 8.165 +22.25 192 8 +22.3 197 8.1035 +22.35 204 8.2462 +22.4 207 8.3066 +22.45 192 8 +22.5 201 8.1854 +22.55 190 7.9582 +22.6 195 8.0623 +22.65 194 8.0416 +22.7 182 7.7889 +22.75 189 7.9373 +22.8 196 8.0829 +22.85 196 8.0829 +22.9 200 8.165 +22.95 190 7.9582 +23 183 7.8102 +23.05 199 8.1445 +23.1 187 7.8951 +23.15 196 8.0829 +23.2 191 7.9791 +23.25 191 7.9791 +23.3 195 8.0623 +23.35 194 8.0416 +23.4 192 8 +23.45 182 7.7889 +23.5 188 7.9162 +23.55 203 8.226 +23.6 187 7.8951 +23.65 192 8 +23.7 206 8.2865 +23.75 201 8.1854 +23.8 184 7.8316 +23.85 192 8 +23.9 205 8.2664 +23.95 196 8.0829 +24 193 8.0208 +24.05 194 6.9642 +24.1 195 6.9821 +24.15 194 6.9642 +24.2 201 7.0887 +24.25 193 6.9462 +24.3 176 6.6332 +24.35 187 6.8374 +24.4 188 6.8557 +24.45 196 7 +24.5 192 6.9282 +24.55 185 6.8007 +24.6 195 6.9821 +24.65 198 7.0356 +24.7 205 7.1589 +24.75 200 7.0711 +24.8 208 7.2111 +24.85 195 6.9821 +24.9 187 6.8374 +24.95 193 6.9462 +25 197 7.0178 +25.05 202 7.1063 +25.1 193 6.9462 +25.15 196 7 +25.2 202 7.1063 +25.25 201 7.0887 +25.3 197 7.0178 +25.35 204 7.1414 +25.4 208 7.2111 +25.45 206 7.1764 +25.5 212 7.2801 +25.55 207 7.1937 +25.6 207 7.1937 +25.65 212 7.2801 +25.7 216 7.3485 +25.75 218 7.3824 +25.8 221 7.433 +25.85 218 7.3824 +25.9 207 7.1937 +25.95 203 7.1239 +26 204 7.1414 +26.05 202 7.1063 +26.1 206 7.1764 +26.15 202 7.1063 +26.2 202 7.1063 +26.25 181 6.7268 +26.3 193 6.9462 +26.35 205 7.1589 +26.4 198 7.0356 +26.45 196 7 +26.5 197 7.0178 +26.55 195 6.9821 +26.6 201 7.0887 +26.65 205 7.1589 +26.7 195 6.9821 +26.75 196 7 +26.8 196 7 +26.85 205 7.1589 +26.9 198 7.0356 +26.95 200 7.0711 +27 199 7.0534 +27.05 180 6.7082 +27.1 187 6.8374 +27.15 193 6.9462 +27.2 197 7.0178 +27.25 197 7.0178 +27.3 196 7 +27.35 194 6.9642 +27.4 197 7.0178 +27.45 204 7.1414 +27.5 201 7.0887 +27.55 187 6.8374 +27.6 191 6.9101 +27.65 205 7.1589 +27.7 200 7.0711 +27.75 198 7.0356 +27.8 200 7.0711 +27.85 204 7.1414 +27.9 196 7 +27.95 195 6.9821 +28 194 6.9642 +28.05 200 7.0711 +28.1 198 7.0356 +28.15 201 7.0887 +28.2 208 7.2111 +28.25 205 7.1589 +28.3 211 7.2629 +28.35 211 7.2629 +28.4 220 7.4162 +28.45 220 7.4162 +28.5 212 7.2801 +28.55 208 7.2111 +28.6 214 7.3144 +28.65 226 7.5166 +28.7 235 7.6649 +28.75 233 7.6322 +28.8 237 7.6974 +28.85 242 7.7782 +28.9 242 7.7782 +28.95 245 7.8262 +29 239 7.7298 +29.05 226 7.5166 +29.1 232 7.6158 +29.15 238 7.7136 +29.2 226 7.5166 +29.25 218 7.3824 +29.3 218 7.3824 +29.35 214 7.3144 +29.4 205 7.1589 +29.45 200 7.0711 +29.5 193 6.9462 +29.55 195 6.9821 +29.6 196 7 +29.65 195 6.9821 +29.7 207 7.1937 +29.75 215 7.3314 +29.8 207 7.1937 +29.85 218 7.3824 +29.9 218 7.3824 +29.95 220 7.4162 +30 220 7.4162 +30.05 229 6.7676 +30.1 236 6.8702 +30.15 254 7.1274 +30.2 264 7.2664 +30.25 280 7.4833 +30.3 289 7.6026 +30.35 289 7.6026 +30.4 303 7.7846 +30.45 302 7.7717 +30.5 297 7.7071 +30.55 281 7.4967 +30.6 278 7.4565 +30.65 280 7.4833 +30.7 265 7.2801 +30.75 258 7.1833 +30.8 243 6.9714 +30.85 240 6.9282 +30.9 232 6.8118 +30.95 231 6.7971 +31 233 6.8264 +31.05 246 7.0143 +31.1 248 7.0427 +31.15 249 7.0569 +31.2 256 7.1554 +31.25 272 7.3756 +31.3 289 7.6026 +31.35 311 7.8867 +31.4 340 8.2462 +31.45 363 8.5206 +31.5 393 8.8657 +31.55 440 9.3808 +31.6 474 9.7365 +31.65 482 9.8183 +31.7 492 9.9197 +31.75 508 10.0797 +31.8 494 9.9398 +31.85 475 9.7468 +31.9 439 9.3702 +31.95 413 9.0885 +32 368 8.579 +32.05 331 8.1363 +32.1 299 7.733 +32.15 286 7.5631 +32.2 262 7.2388 +32.25 241 6.9426 +32.3 238 6.8993 +32.35 252 7.0993 +32.4 267 7.3075 +32.45 276 7.4297 +32.5 278 7.4565 +32.55 300 7.746 +32.6 325 8.0623 +32.65 336 8.1976 +32.7 359 8.4735 +32.75 405 9 +32.8 458 9.5708 +32.85 501 10.01 +32.9 564 10.6207 +32.95 640 11.3137 +33 719 11.9917 +33.05 783 12.514 +33.1 837 12.9383 +33.15 851 13.0461 +33.2 866 13.1605 +33.25 828 12.8686 +33.3 763 12.3531 +33.35 697 11.8068 +33.4 634 11.2606 +33.45 541 10.4019 +33.5 465 9.6437 +33.55 391 8.8431 +33.6 351 8.3785 +33.65 301 7.7589 +33.7 284 7.5366 +33.75 260 7.2111 +33.8 248 7.0427 +33.85 257 7.1694 +33.9 242 6.957 +33.95 246 7.0143 +34 263 7.2526 +34.05 271 7.3621 +34.1 281 7.4967 +34.15 302 7.7717 +34.2 309 7.8613 +34.25 335 8.1854 +34.3 342 8.2704 +34.35 345 8.3066 +34.4 356 8.438 +34.45 351 8.3785 +34.5 341 8.2583 +34.55 334 8.1731 +34.6 321 8.0125 +34.65 286 7.5631 +34.7 268 7.3212 +34.75 256 7.1554 +34.8 238 6.8993 +34.85 229 6.7676 +34.9 218 6.603 +34.95 223 6.6783 +35 216 6.5727 +35.05 203 6.3718 +35.1 203 6.3718 +35.15 194 6.229 +35.2 205 6.4031 +35.25 196 6.261 +35.3 193 6.2129 +35.35 206 6.4187 +35.4 201 6.3403 +35.45 201 6.3403 +35.5 201 6.3403 +35.55 200 6.3246 +35.6 194 6.229 +35.65 196 6.261 +35.7 203 6.3718 +35.75 195 6.245 +35.8 196 6.261 +35.85 211 6.4962 +35.9 216 6.5727 +35.95 207 6.4343 +36 215 6.5574 +36.05 221 6.6483 +36.1 237 6.2849 +36.15 248 6.4291 +36.2 261 6.5955 +36.25 279 6.8191 +36.3 319 7.2915 +36.35 337 7.4944 +36.4 364 7.7889 +36.45 423 8.3964 +36.5 489 9.0277 +36.55 557 9.635 +36.6 630 10.247 +36.65 729 11.0227 +36.7 822 11.7047 +36.75 943 12.5366 +36.8 1059 13.2853 +36.85 1196 14.1185 +36.9 1235 14.3469 +36.95 1220 14.2595 +37 1209 14.1951 +37.05 1128 13.7113 +37.1 1001 12.9164 +37.15 864 12 +37.2 729 11.0227 +37.25 601 10.0083 +37.3 496 9.0921 +37.35 418 8.3467 +37.4 355 7.692 +37.45 313 7.2226 +37.5 263 6.6207 +37.55 246 6.4031 +37.6 226 6.1373 +37.65 214 5.9722 +37.7 222 6.0828 +37.75 222 6.0828 +37.8 211 5.9301 +37.85 211 5.9301 +37.9 202 5.8023 +37.95 198 5.7446 +38 192 5.6569 +38.05 193 5.6716 +38.1 196 5.7155 +38.15 201 5.7879 +38.2 203 5.8166 +38.25 203 5.8166 +38.3 201 5.7879 +38.35 198 5.7446 +38.4 196 5.7155 +38.45 206 5.8595 +38.5 210 5.9161 +38.55 197 5.73 +38.6 204 5.831 +38.65 200 5.7735 +38.7 205 5.8452 +38.75 196 5.7155 +38.8 195 5.7009 +38.85 205 5.8452 +38.9 204 5.831 +38.95 200 5.7735 +39 203 5.8166 +39.05 208 5.8878 +39.1 207 5.8737 +39.15 202 5.8023 +39.2 203 5.8166 +39.25 198 5.7446 +39.3 204 5.831 +39.35 210 5.9161 +39.4 216 6 +39.45 210 5.9161 +39.5 229 6.1779 +39.55 239 6.3114 +39.6 247 6.4161 +39.65 278 6.8069 +39.7 302 7.0946 +39.75 324 7.3485 +39.8 371 7.8634 +39.85 420 8.3666 +39.9 465 8.8034 +39.95 538 9.4692 +40 630 10.247 +40.05 739 11.098 +40.1 851 11.9094 +40.15 976 12.7541 +40.2 1076 13.3915 +40.25 1161 13.9104 +40.3 1222 14.2712 +40.35 1227 14.3003 +40.4 1187 14.0653 +40.45 1096 13.5154 +40.5 964 12.6754 +40.55 833 11.7828 +40.6 708 10.8628 +40.65 587 9.8911 +40.7 512 9.2376 +40.75 436 8.5245 +40.8 391 8.0726 +40.85 384 8 +40.9 370 7.8528 +40.95 391 8.0726 +41 419 8.3566 +41.05 448 8.641 +41.1 490 9.037 +41.15 567 9.7211 +41.2 626 10.2144 +41.25 687 10.7005 +41.3 735 11.068 +41.35 780 11.4018 +41.4 782 11.4164 +41.45 745 11.143 +41.5 721 10.9621 +41.55 662 10.504 +41.6 595 9.9582 +41.65 527 9.3719 +41.7 446 8.6217 +41.75 393 8.0932 +41.8 335 7.4722 +41.85 301 7.0828 +41.9 276 6.7823 +41.95 251 5.9881 +42 242 5.8797 +42.05 229 5.7196 +42.1 209 5.4642 +42.15 215 5.542 +42.2 218 5.5806 +42.25 214 5.5291 +42.3 209 5.4642 +42.35 208 5.4511 +42.4 212 5.5032 +42.45 210 5.4772 +42.5 209 5.4642 +42.55 210 5.4772 +42.6 205 5.4116 +42.65 209 5.4642 +42.7 211 5.4903 +42.75 211 5.4903 +42.8 216 5.5549 +42.85 205 5.4116 +42.9 204 5.3984 +42.95 202 5.3719 +43 201 5.3586 +43.05 200 5.3452 +43.1 207 5.438 +43.15 205 5.4116 +43.2 202 5.3719 +43.25 209 5.4642 +43.3 202 5.3719 +43.35 203 5.3852 +43.4 206 5.4248 +43.45 206 5.4248 +43.5 200 5.3452 +43.55 194 5.2644 +43.6 199 5.3318 +43.65 204 5.3984 +43.7 205 5.4116 +43.75 210 5.4772 +43.8 207 5.438 +43.85 205 5.4116 +43.9 210 5.4772 +43.95 204 5.3984 +44 203 5.3852 +44.05 202 5.3719 +44.1 205 5.4116 +44.15 201 5.3586 +44.2 201 5.3586 +44.25 207 5.438 +44.3 197 5.305 +44.35 198 5.3184 +44.4 203 5.3852 +44.45 209 5.4642 +44.5 209 5.4642 +44.55 208 5.4511 +44.6 204 5.3984 +44.65 209 5.4642 +44.7 199 5.3318 +44.75 204 5.3984 +44.8 206 5.4248 +44.85 201 5.3586 +44.9 205 5.4116 +44.95 202 5.3719 +45 204 5.3984 +45.05 198 5.3184 +45.1 198 5.3184 +45.15 213 5.5162 +45.2 210 5.4772 +45.25 212 5.5032 +45.3 214 5.5291 +45.35 215 5.542 +45.4 217 5.5678 +45.45 210 5.4772 +45.5 214 5.5291 +45.55 215 5.542 +45.6 215 5.542 +45.65 215 5.542 +45.7 217 5.5678 +45.75 222 5.6315 +45.8 231 5.7446 +45.85 247 5.9402 +45.9 252 6 +45.95 273 6.245 +46 304 6.59 +46.05 332 6.8868 +46.1 366 7.2309 +46.15 408 7.6345 +46.2 463 8.1328 +46.25 532 8.7178 +46.3 619 9.4036 +46.35 734 10.24 +46.4 828 10.8759 +46.45 944 11.6128 +46.5 1003 11.9702 +46.55 1055 12.2766 +46.6 1070 12.3635 +46.65 1018 12.0594 +46.7 944 11.6128 +46.75 833 10.9087 +46.8 725 10.177 +46.85 633 9.5094 +46.9 507 8.5105 +46.95 445 7.9732 +47 379 7.3582 +47.05 347 7.0407 +47.1 316 6.7188 +47.15 282 6.3471 +47.2 267 6.176 +47.25 269 6.1991 +47.3 281 6.3358 +47.35 288 6.4143 +47.4 300 6.5465 +47.45 327 6.8348 +47.5 346 7.0305 +47.55 380 7.3679 +47.6 400 7.5593 +47.65 430 7.8376 +47.7 453 8.0445 +47.75 459 8.0976 +47.8 451 8.0267 +47.85 427 7.8102 +47.9 402 7.5782 +47.95 375 7.3193 +48 344 7.0102 +48.05 309 6.644 +48.1 277 6.2906 +48.15 265 5.7554 +48.2 246 5.5453 +48.25 246 5.5453 +48.3 230 5.3619 +48.35 223 5.2797 +48.4 227 5.3268 +48.45 225 5.3033 +48.5 217 5.2082 +48.55 217 5.2082 +48.6 223 5.2797 +48.65 223 5.2797 +48.7 220 5.244 +48.75 223 5.2797 +48.8 226 5.3151 +48.85 248 5.5678 +48.9 258 5.6789 +48.95 274 5.8523 +49 297 6.093 +49.05 324 6.364 +49.1 355 6.6615 +49.15 393 7.0089 +49.2 458 7.5664 +49.25 528 8.124 +49.3 589 8.5805 +49.35 688 9.2736 +49.4 781 9.8805 +49.45 840 10.247 +49.5 876 10.4642 +49.55 874 10.4523 +49.6 832 10.198 +49.65 765 9.7788 +49.7 682 9.2331 +49.75 613 8.7536 +49.8 524 8.0932 +49.85 455 7.5416 +49.9 408 7.1414 +49.95 384 6.9282 +50 366 6.7639 +50.05 375 6.8465 +50.1 392 7 +50.15 426 7.2973 +50.2 470 7.6649 +50.25 519 8.0545 +50.3 588 8.5732 +50.35 639 8.9373 +50.4 681 9.2263 +50.45 704 9.3808 +50.5 693 9.3073 +50.55 650 9.0139 +50.6 600 8.6603 +50.65 540 8.2158 +50.7 478 7.7298 +50.75 412 7.1764 +50.8 376 6.8557 +50.85 345 6.567 +50.9 330 6.4226 +50.95 337 6.4904 +51 350 6.6144 +51.05 383 6.9192 +51.1 426 7.2973 +51.15 493 7.8502 +51.2 571 8.4484 +51.25 676 9.1924 +51.3 803 10.0187 +51.35 920 10.7238 +51.4 1071 11.5704 +51.45 1183 12.1604 +51.5 1247 12.485 +51.55 1255 12.525 +51.6 1251 12.505 +51.65 1183 12.1604 +51.7 1068 11.5542 +51.75 945 10.8685 +51.8 861 10.3742 +51.85 811 10.0685 +51.9 813 10.0809 +51.95 872 10.4403 +52 969 11.0057 +52.05 1120 11.8322 +52.1 1309 12.7916 +52.15 1527 13.8158 +52.2 1706 14.6031 +52.25 1856 15.2315 +52.3 1888 15.3623 +52.35 1837 15.1534 +52.4 1713 14.633 +52.45 1500 13.6931 +52.5 1289 12.6935 +52.55 1103 11.742 +52.6 904 10.6301 +52.65 749 9.676 +52.7 627 8.853 +52.75 568 8.4261 +52.8 551 8.2991 +52.85 560 8.3666 +52.9 586 8.5586 +52.95 634 8.9022 +53 691 9.2938 +53.05 751 9.6889 +53.1 799 9.9937 +53.15 792 9.9499 +53.2 820 10.1242 +53.25 774 9.8362 +53.3 736 9.5917 +53.35 680 9.2195 +53.4 627 8.853 +53.45 562 8.3815 +53.5 514 8.0156 +53.55 459 7.5746 +53.6 424 7.2801 +53.65 362 6.7268 +53.7 333 6.4517 +53.75 318 6.3048 +53.8 300 6.1237 +53.85 287 5.9896 +53.9 265 5.7554 +53.95 266 5.7663 +54 262 5.7228 +54.05 263 5.4058 +54.1 255 5.3229 +54.15 270 5.4772 +54.2 278 5.5578 +54.25 289 5.6667 +54.3 317 5.9348 +54.35 343 6.1734 +54.4 400 6.6667 +54.45 468 7.2111 +54.5 561 7.8951 +54.55 695 8.7876 +54.6 873 9.8489 +54.65 1100 11.0554 +54.7 1372 12.3468 +54.75 1660 13.581 +54.8 1954 14.7347 +54.85 2224 15.7198 +54.9 2400 16.3299 +54.95 2459 16.5294 +55 2435 16.4486 +55.05 2245 15.7938 +55.1 1986 14.8549 +55.15 1671 13.626 +55.2 1358 12.2837 +55.25 1086 10.9848 +55.3 868 9.8206 +55.35 682 8.705 +55.4 578 8.0139 +55.45 521 7.6085 +55.5 512 7.5425 +55.55 537 7.7244 +55.6 600 8.165 +55.65 704 8.8443 +55.7 855 9.7468 +55.75 1032 10.7083 +55.8 1232 11.7 +55.85 1466 12.7628 +55.9 1693 13.7154 +55.95 1866 14.3991 +56 1966 14.7799 +56.05 2024 14.9963 +56.1 2016 14.9666 +56.15 1846 14.3217 +56.2 1667 13.6096 +56.25 1429 12.6007 +56.3 1179 11.4455 +56.35 950 10.274 +56.4 763 9.2075 +56.45 599 8.1582 +56.5 484 7.3333 +56.55 404 6.6999 +56.6 351 6.245 +56.65 304 5.8119 +56.7 284 5.6174 +56.75 273 5.5076 +56.8 259 5.3645 +56.85 251 5.281 +56.9 251 5.281 +56.95 252 5.2915 +57 245 5.2175 +57.05 259 5.3645 +57.1 250 5.2705 +57.15 253 5.302 +57.2 256 5.3333 +57.25 264 5.416 +57.3 285 5.6273 +57.35 301 5.7831 +57.4 346 6.2004 +57.45 390 6.5828 +57.5 458 7.1336 +57.55 528 7.6594 +57.6 624 8.3267 +57.65 733 9.0247 +57.7 829 9.5975 +57.75 916 10.0885 +57.8 988 10.4775 +57.85 994 10.5093 +57.9 929 10.1598 +57.95 843 9.6782 +58 742 9.0799 +58.05 638 8.4196 +58.1 527 7.6522 +58.15 434 6.9442 +58.2 377 6.4722 +58.25 320 5.9628 +58.3 282 5.5976 +58.35 273 5.5076 +58.4 256 5.3333 +58.45 243 5.1962 +58.5 240 5.164 +58.55 240 5.164 +58.6 230 5.0553 +58.65 220 4.9441 +58.7 230 5.0553 +58.75 227 5.0222 +58.8 224 4.9889 +58.85 219 4.9329 +58.9 227 5.0222 +58.95 227 5.0222 +59 224 4.9889 +59.05 222 4.9666 +59.1 223 4.9777 +59.15 217 4.9103 +59.2 213 4.8648 +59.25 216 4.899 +59.3 219 4.9329 +59.35 219 4.9329 +59.4 218 4.9216 +59.45 220 4.9441 +59.5 220 4.9441 +59.55 220 4.9441 +59.6 223 4.9777 +59.65 233 5.0881 +59.7 237 5.1316 +59.75 249 5.2599 +59.8 258 5.3541 +59.85 261 5.3852 +59.9 283 5.6075 +59.95 304 5.8119 +60 324 5.6921 +60.05 347 5.8907 +60.1 353 5.9414 +60.15 359 5.9917 +60.2 363 6.0249 +60.25 352 5.933 +60.3 341 5.8395 +60.35 330 5.7446 +60.4 308 5.5498 +60.45 291 5.3944 +60.5 271 5.2058 +60.55 254 5.0398 +60.6 245 4.9497 +60.65 245 4.9497 +60.7 239 4.8888 +60.75 228 4.7749 +60.8 217 4.6583 +60.85 217 4.6583 +60.9 218 4.669 +60.95 223 4.7223 +61 207 4.5497 +61.05 218 4.669 +61.1 222 4.7117 +61.15 215 4.6368 +61.2 210 4.5826 +61.25 216 4.6476 +61.3 213 4.6152 +61.35 212 4.6043 +61.4 215 4.6368 +61.45 212 4.6043 +61.5 214 4.626 +61.55 211 4.5935 +61.6 214 4.626 +61.65 217 4.6583 +61.7 205 4.5277 +61.75 207 4.5497 +61.8 213 4.6152 +61.85 208 4.5607 +61.9 211 4.5935 +61.95 205 4.5277 +62 214 4.626 +62.05 213 4.6152 +62.1 212 4.6043 +62.15 212 4.6043 +62.2 213 4.6152 +62.25 207 4.5497 +62.3 203 4.5056 +62.35 211 4.5935 +62.4 211 4.5935 +62.45 214 4.626 +62.5 214 4.626 +62.55 207 4.5497 +62.6 203 4.5056 +62.65 212 4.6043 +62.7 212 4.6043 +62.75 214 4.626 +62.8 213 4.6152 +62.85 202 4.4944 +62.9 210 4.5826 +62.95 211 4.5935 +63 211 4.5935 +63.05 214 4.626 +63.1 221 4.7011 +63.15 217 4.6583 +63.2 212 4.6043 +63.25 214 4.626 +63.3 219 4.6797 +63.35 223 4.7223 +63.4 225 4.7434 +63.45 227 4.7645 +63.5 235 4.8477 +63.55 240 4.899 +63.6 243 4.9295 +63.65 252 5.02 +63.7 249 4.99 +63.75 249 4.99 +63.8 255 5.0498 +63.85 262 5.1186 +63.9 282 5.3104 +63.95 308 5.5498 +64 351 5.9245 +64.05 398 6.3087 +64.1 470 6.8557 +64.15 525 7.2457 +64.2 596 7.7201 +64.25 646 8.0374 +64.3 681 8.2523 +64.35 665 8.1548 +64.4 615 7.8422 +64.45 563 7.5033 +64.5 484 6.957 +64.55 421 6.4885 +64.6 364 6.0332 +64.65 317 5.6303 +64.7 289 5.3759 +64.75 261 5.1088 +64.8 245 4.9497 +64.85 233 4.827 +64.9 228 4.7749 +64.95 219 4.6797 +65 219 4.6797 +65.05 217 4.6583 +65.1 216 4.6476 +65.15 221 4.7011 +65.2 215 4.6368 +65.25 215 4.6368 +65.3 210 4.5826 +65.35 212 4.6043 +65.4 212 4.6043 +65.45 204 4.5166 +65.5 209 4.5717 +65.55 206 4.5387 +65.6 216 4.6476 +65.65 207 4.5497 +65.7 214 4.626 +65.75 207 4.5497 +65.8 209 4.5717 +65.85 218 4.669 +65.9 215 4.6368 +65.95 222 4.7117 +66 226 4.7539 +66.05 230 4.7958 +66.1 239 4.8888 +66.15 249 4.99 +66.2 263 5.1284 +66.25 275 5.244 +66.3 292 5.4037 +66.35 317 5.6303 +66.4 323 5.6833 +66.45 341 5.8395 +66.5 350 5.9161 +66.55 330 5.7446 +66.6 320 5.6569 +66.65 307 5.5408 +66.7 284 5.3292 +66.75 275 5.244 +66.8 265 5.1478 +66.85 269 5.1865 +66.9 275 5.244 +66.95 292 5.4037 +67 311 5.5767 +67.05 338 5.8138 +67.1 387 6.2209 +67.15 413 6.4265 +67.2 463 6.8044 +67.25 510 7.1414 +67.3 534 7.3075 +67.35 559 7.4766 +67.4 539 7.3417 +67.45 533 7.3007 +67.5 500 7.0711 +67.55 471 6.8629 +67.6 455 6.7454 +67.65 410 6.4031 +67.7 373 6.1074 +67.75 342 5.8481 +67.8 307 5.5408 +67.85 288 5.3666 +67.9 286 5.3479 +67.95 281 5.3009 +68 292 5.4037 +68.05 291 5.3944 +68.1 312 5.5857 +68.15 326 5.7096 +68.2 336 5.7966 +68.25 346 5.8822 +68.3 341 5.8395 +68.35 327 5.7184 +68.4 305 5.5227 +68.45 277 5.2631 +68.5 267 5.1672 +68.55 249 4.99 +68.6 229 4.7854 +68.65 221 4.7011 +68.7 220 4.6904 +68.75 217 4.6583 +68.8 211 4.5935 +68.85 204 4.5166 +68.9 203 4.5056 +68.95 220 4.6904 +69 217 4.6583 +69.05 217 4.6583 +69.1 214 4.626 +69.15 205 4.5277 +69.2 205 4.5277 +69.25 211 4.5935 +69.3 206 4.5387 +69.35 208 4.5607 +69.4 201 4.4833 +69.45 208 4.5607 +69.5 214 4.626 +69.55 212 4.6043 +69.6 206 4.5387 +69.65 216 4.6476 +69.7 219 4.6797 +69.75 215 4.6368 +69.8 217 4.6583 +69.85 211 4.5935 +69.9 214 4.626 +69.95 215 4.6368 +70 224 4.7329 +70.05 217 4.6583 +70.1 215 4.6368 +70.15 218 4.669 +70.2 218 4.669 +70.25 228 4.7749 +70.3 227 4.7645 +70.35 228 4.7749 +70.4 225 4.7434 +70.45 219 4.6797 +70.5 216 4.6476 +70.55 219 4.6797 +70.6 218 4.669 +70.65 214 4.626 +70.7 212 4.6043 +70.75 221 4.7011 +70.8 214 4.626 +70.85 208 4.5607 +70.9 204 4.5166 +70.95 209 4.5717 +71 209 4.5717 +71.05 208 4.5607 +71.1 212 4.6043 +71.15 213 4.6152 +71.2 218 4.669 +71.25 212 4.6043 +71.3 205 4.5277 +71.35 207 4.5497 +71.4 204 4.5166 +71.45 206 4.5387 +71.5 211 4.5935 +71.55 216 4.6476 +71.6 214 4.626 +71.65 210 4.5826 +71.7 219 4.6797 +71.75 222 4.7117 +71.8 224 4.7329 +71.85 231 4.8062 +71.9 227 4.7645 +71.95 237 4.8683 +72 235 4.8477 +72.05 238 4.8785 +72.1 245 4.9497 +72.15 242 4.9193 +72.2 248 4.98 +72.25 246 4.9598 +72.3 243 4.9295 +72.35 253 5.0299 +72.4 259 5.0892 +72.45 278 5.2726 +72.5 281 5.3009 +72.55 297 5.4498 +72.6 310 5.5678 +72.65 324 5.6921 +72.7 322 5.6745 +72.75 311 5.5767 +72.8 295 5.4314 +72.85 281 5.3009 +72.9 259 5.0892 +72.95 250 5 +73 239 4.8888 +73.05 233 4.827 +73.1 227 4.7645 +73.15 226 4.7539 +73.2 223 4.7223 +73.25 211 4.5935 +73.3 209 4.5717 +73.35 217 4.6583 +73.4 214 4.626 +73.45 213 4.6152 +73.5 217 4.6583 +73.55 220 4.6904 +73.6 210 4.5826 +73.65 209 4.5717 +73.7 215 4.6368 +73.75 218 4.669 +73.8 215 4.6368 +73.85 217 4.6583 +73.9 221 4.7011 +73.95 217 4.6583 +74 219 4.6797 +74.05 220 4.6904 +74.1 228 4.7749 +74.15 229 4.7854 +74.2 230 4.7958 +74.25 234 4.8374 +74.3 251 5.01 +74.35 261 5.1088 +74.4 288 5.3666 +74.45 313 5.5946 +74.5 362 6.0166 +74.55 424 6.5115 +74.6 524 7.2388 +74.65 646 8.0374 +74.7 781 8.8374 +74.75 920 9.5917 +74.8 1024 10.1193 +74.85 1120 10.583 +74.9 1187 10.895 +74.95 1187 10.895 +75 1166 10.7981 +75.05 1114 10.5546 +75.1 1044 10.2176 +75.15 991 9.9549 +75.2 927 9.6281 +75.25 823 9.0719 +75.3 717 8.4676 +75.35 619 7.8677 +75.4 520 7.2111 +75.45 421 6.4885 +75.5 353 5.9414 +75.55 308 5.5498 +75.6 273 5.2249 +75.65 256 5.0596 +75.7 245 4.9497 +75.75 234 4.8374 +75.8 230 4.7958 +75.85 224 4.7329 +75.9 232 4.8166 +75.95 226 4.7539 +76 222 4.7117 +76.05 222 4.7117 +76.1 227 4.7645 +76.15 225 4.7434 +76.2 226 4.7539 +76.25 227 4.7645 +76.3 229 4.7854 +76.35 235 4.8477 +76.4 233 4.827 +76.45 243 4.9295 +76.5 238 4.8785 +76.55 237 4.8683 +76.6 236 4.858 +76.65 232 4.8166 +76.7 231 4.8062 +76.75 227 4.7645 +76.8 225 4.7434 +76.85 220 4.6904 +76.9 218 4.669 +76.95 215 4.6368 +77 219 4.6797 +77.05 224 4.7329 +77.1 225 4.7434 +77.15 222 4.7117 +77.2 231 4.8062 +77.25 243 4.9295 +77.3 250 5 +77.35 269 5.1865 +77.4 286 5.3479 +77.45 310 5.5678 +77.5 325 5.7009 +77.55 332 5.7619 +77.6 337 5.8052 +77.65 329 5.7359 +77.7 303 5.5045 +77.75 278 5.2726 +77.8 268 5.1769 +77.85 252 5.02 +77.9 236 4.858 +77.95 228 4.7749 +78 219 4.6797 +78.05 225 4.7434 +78.1 222 4.7117 +78.15 214 4.626 +78.2 228 4.7749 +78.25 221 4.7011 +78.3 217 4.6583 +78.35 221 4.7011 +78.4 222 4.7117 +78.45 226 4.7539 +78.5 237 4.8683 +78.55 246 4.9598 +78.6 255 5.0498 +78.65 269 5.1865 +78.7 284 5.3292 +78.75 302 5.4955 +78.8 313 5.5946 +78.85 327 5.7184 +78.9 321 5.6657 +78.95 333 5.7706 +79 331 5.7533 +79.05 332 5.7619 +79.1 358 5.9833 +79.15 402 6.3403 +79.2 460 6.7823 +79.25 557 7.4632 +79.3 660 8.124 +79.35 769 8.7693 +79.4 859 9.2682 +79.45 934 9.6644 +79.5 955 9.7724 +79.55 921 9.5969 +79.6 824 9.0774 +79.65 694 8.3307 +79.7 578 7.6026 +79.75 474 6.8848 +79.8 402 6.3403 +79.85 344 5.8652 +79.9 306 5.5317 +79.95 300 5.4772 +80 292 5.4037 +80.05 292 5.4037 +80.1 302 5.4955 +80.15 304 5.5136 +80.2 306 5.5317 +80.25 305 5.5227 +80.3 303 5.5045 +80.35 299 5.4681 +80.4 278 5.2726 +80.45 259 5.0892 +80.5 257 5.0695 +80.55 245 4.9497 +80.6 237 4.8683 +80.65 240 4.899 +80.7 233 4.827 +80.75 232 4.8166 +80.8 235 4.8477 +80.85 241 4.9092 +80.9 257 5.0695 +80.95 274 5.2345 +81 292 5.4037 +81.05 309 5.5588 +81.1 333 5.7706 +81.15 360 6 +81.2 381 6.1725 +81.25 387 6.2209 +81.3 387 6.2209 +81.35 386 6.2129 +81.4 382 6.1806 +81.45 368 6.0663 +81.5 363 6.0249 +81.55 352 5.933 +81.6 337 5.8052 +81.65 321 5.6657 +81.7 297 5.4498 +81.75 281 5.3009 +81.8 265 5.1478 +81.85 255 5.0498 +81.9 251 5.01 +81.95 237 4.8683 +82 238 4.8785 +82.05 237 4.8683 +82.1 228 4.7749 +82.15 240 4.899 +82.2 234 4.8374 +82.25 226 4.7539 +82.3 229 4.7854 +82.35 228 4.7749 +82.4 233 4.827 +82.45 243 4.9295 +82.5 241 4.9092 +82.55 257 5.0695 +82.6 279 5.282 +82.65 305 5.5227 +82.7 345 5.8737 +82.75 410 6.4031 +82.8 455 6.7454 +82.85 545 7.3824 +82.9 622 7.8867 +82.95 673 8.2037 +83 725 8.5147 +83.05 717 8.4676 +83.1 661 8.1302 +83.15 592 7.6942 +83.2 518 7.1972 +83.25 443 6.6558 +83.3 371 6.091 +83.35 336 5.7966 +83.4 290 5.3852 +83.45 265 5.1478 +83.5 252 5.02 +83.55 250 5 +83.6 244 4.9396 +83.65 242 4.9193 +83.7 241 4.9092 +83.75 243 4.9295 +83.8 248 4.98 +83.85 253 5.0299 +83.9 252 5.02 +83.95 264 5.1381 +84 266 5.1575 +84.05 282 5.3104 +84.1 291 5.3944 +84.15 313 5.5946 +84.2 346 5.8822 +84.25 374 6.1156 +84.3 415 6.442 +84.35 430 6.5574 +84.4 433 6.5803 +84.45 430 6.5574 +84.5 406 6.3718 +84.55 384 6.1968 +84.6 349 5.9076 +84.65 318 5.6391 +84.7 307 5.5408 +84.75 298 5.4589 +84.8 296 5.4406 +84.85 304 5.5136 +84.9 313 5.5946 +84.95 328 5.7271 +85 346 5.8822 +85.05 341 5.8395 +85.1 335 5.7879 +85.15 324 5.6921 +85.2 336 5.7966 +85.25 341 5.8395 +85.3 341 5.8395 +85.35 370 6.0828 +85.4 414 6.4343 +85.45 442 6.6483 +85.5 490 7 +85.55 520 7.2111 +85.6 532 7.2938 +85.65 548 7.4027 +85.7 561 7.49 +85.75 567 7.5299 +85.8 585 7.6485 +85.85 584 7.642 +85.9 558 7.4699 +85.95 527 7.2595 +86 481 6.9354 +86.05 424 6.5115 +86.1 370 6.0828 +86.15 333 5.7706 +86.2 312 5.5857 +86.25 301 5.4863 +86.3 307 5.5408 +86.35 314 5.6036 +86.4 340 5.831 +86.45 379 6.1563 +86.5 427 6.5345 +86.55 467 6.8337 +86.6 535 7.3144 +86.65 584 7.642 +86.7 602 7.7589 +86.75 580 7.6158 +86.8 532 7.2938 +86.85 481 6.9354 +86.9 426 6.5269 +86.95 379 6.1563 +87 329 5.7359 +87.05 303 5.5045 +87.1 288 5.3666 +87.15 271 5.2058 +87.2 269 5.1865 +87.25 267 5.1672 +87.3 263 5.1284 +87.35 267 5.1672 +87.4 260 5.099 +87.45 260 5.099 +87.5 263 5.1284 +87.55 263 5.1284 +87.6 270 5.1962 +87.65 278 5.2726 +87.7 293 5.4129 +87.75 318 5.6391 +87.8 364 6.0332 +87.85 424 6.5115 +87.9 512 7.1554 +87.95 643 8.0187 +88 817 9.0388 +88.05 982 9.9096 +88.1 1163 10.7842 +88.15 1289 11.3534 +88.2 1373 11.7175 +88.25 1393 11.8025 +88.3 1348 11.6103 +88.35 1244 11.1535 +88.4 1157 10.7564 +88.45 1077 10.3779 +88.5 1020 10.0995 +88.55 965 9.8234 +88.6 907 9.5237 +88.65 858 9.2628 +88.7 771 8.7807 +88.75 647 8.0436 +88.8 555 7.4498 +88.85 468 6.8411 +88.9 405 6.364 +88.95 348 5.8992 +89 316 5.6214 +89.05 291 5.3944 +89.1 277 5.2631 +89.15 278 5.2726 +89.2 270 5.1962 +89.25 262 5.1186 +89.3 268 5.1769 +89.35 270 5.1962 +89.4 279 5.282 +89.45 287 5.3572 +89.5 300 5.4772 +89.55 319 5.648 +89.6 347 5.8907 +89.65 378 6.1482 +89.7 420 6.4807 +89.75 469 6.8484 +89.8 536 7.3212 +89.85 645 8.0312 +89.9 773 8.792 +89.95 925 9.6177 +90 1115 10.5594 +90.05 1254 11.1982 +90.1 1367 11.6919 +90.15 1400 11.8322 +90.2 1327 11.5195 +90.25 1188 10.8995 +90.3 1038 10.1882 +90.35 879 9.3755 +90.4 738 8.5907 +90.45 644 8.025 +90.5 594 7.7071 +90.55 601 7.7524 +90.6 643 8.0187 +90.65 697 8.3487 +90.7 786 8.8657 +90.75 842 9.1761 +90.8 847 9.2033 +90.85 791 8.8938 +90.9 702 8.3785 +90.95 592 7.6942 +91 508 7.1274 +91.05 418 6.4653 +91.1 362 6.0166 +91.15 328 5.7271 +91.2 299 5.4681 +91.25 279 5.282 +91.3 270 5.1962 +91.35 257 5.0695 +91.4 253 5.0299 +91.45 258 5.0794 +91.5 257 5.0695 +91.55 249 4.99 +91.6 245 4.9497 +91.65 257 5.0695 +91.7 260 5.099 +91.75 284 5.3292 +91.8 296 5.4406 +91.85 322 5.6745 +91.9 343 5.8566 +91.95 382 6.1806 +92 405 6.364 +92.05 411 6.4109 +92.1 416 6.4498 +92.15 406 6.3718 +92.2 372 6.0992 +92.25 353 5.9414 +92.3 330 5.7446 +92.35 317 5.6303 +92.4 313 5.5946 +92.45 312 5.5857 +92.5 309 5.5588 +92.55 303 5.5045 +92.6 288 5.3666 +92.65 276 5.2536 +92.7 264 5.1381 +92.75 246 4.9598 +92.8 249 4.99 +92.85 241 4.9092 +92.9 251 5.01 +92.95 243 4.9295 +93 246 4.9598 +93.05 246 4.9598 +93.1 249 4.99 +93.15 244 4.9396 +93.2 252 5.02 +93.25 252 5.02 +93.3 258 5.0794 +93.35 265 5.1478 +93.4 263 5.1284 +93.45 284 5.3292 +93.5 299 5.4681 +93.55 320 5.6569 +93.6 344 5.8652 +93.65 363 6.0249 +93.7 372 6.0992 +93.75 358 5.9833 +93.8 351 5.9245 +93.85 354 5.9498 +93.9 330 5.7446 +93.95 322 5.6745 +94 334 5.7793 +94.05 339 5.8224 +94.1 345 5.8737 +94.15 357 5.9749 +94.2 360 6 +94.25 358 5.9833 +94.3 372 6.0992 +94.35 425 6.5192 +94.4 511 7.1484 +94.45 626 7.912 +94.5 770 8.775 +94.55 946 9.7263 +94.6 1118 10.5736 +94.65 1205 10.9772 +94.7 1227 11.077 +94.75 1157 10.7564 +94.8 1041 10.2029 +94.85 873 9.3434 +94.9 715 8.4558 +94.95 562 7.4967 +95 446 6.6783 +95.05 377 6.14 +95.1 332 5.7619 +95.15 297 5.4498 +95.2 282 5.3104 +95.25 276 5.2536 +95.3 264 5.1381 +95.35 261 5.1088 +95.4 266 5.1575 +95.45 261 5.1088 +95.5 253 5.0299 +95.55 258 5.0794 +95.6 262 5.1186 +95.65 260 5.099 +95.7 283 5.3198 +95.75 307 5.5408 +95.8 344 5.8652 +95.85 402 6.3403 +95.9 453 6.7305 +95.95 529 7.2732 +96 604 7.7717 +96.05 661 8.1302 +96.1 672 8.1976 +96.15 629 7.931 +96.2 588 7.6681 +96.25 510 7.1414 +96.3 440 6.6332 +96.35 377 6.14 +96.4 330 5.7446 +96.45 301 5.4863 +96.5 280 5.2915 +96.55 269 5.1865 +96.6 258 5.0794 +96.65 252 5.02 +96.7 251 5.01 +96.75 252 5.02 +96.8 256 5.0596 +96.85 253 5.0299 +96.9 253 5.0299 +96.95 253 5.0299 +97 262 5.1186 +97.05 265 5.1478 +97.1 284 5.3292 +97.15 291 5.3944 +97.2 323 5.6833 +97.25 374 6.1156 +97.3 431 6.5651 +97.35 511 7.1484 +97.4 602 7.7589 +97.45 678 8.2341 +97.5 743 8.6197 +97.55 756 8.6948 +97.6 717 8.4676 +97.65 657 8.1056 +97.7 581 7.6223 +97.75 490 7 +97.8 418 6.4653 +97.85 364 6.0332 +97.9 335 5.7879 +97.95 306 5.5317 +98 290 5.3852 +98.05 286 5.3479 +98.1 283 5.3198 +98.15 283 5.3198 +98.2 274 5.2345 +98.25 262 5.1186 +98.3 266 5.1575 +98.35 261 5.1088 +98.4 261 5.1088 +98.45 264 5.1381 +98.5 269 5.1865 +98.55 278 5.2726 +98.6 288 5.3666 +98.65 306 5.5317 +98.7 319 5.648 +98.75 330 5.7446 +98.8 343 5.8566 +98.85 341 5.8395 +98.9 325 5.7009 +98.95 318 5.6391 +99 298 5.4589 +99.05 299 5.4681 +99.1 288 5.3666 +99.15 309 5.5588 +99.2 344 5.8652 +99.25 382 6.1806 +99.3 422 6.4962 +99.35 470 6.8557 +99.4 512 7.1554 +99.45 514 7.1694 +99.5 515 7.1764 +99.55 488 6.9857 +99.6 440 6.6332 +99.65 396 6.2929 +99.7 366 6.0498 +99.75 332 5.7619 +99.8 311 5.5767 +99.85 305 5.5227 +99.9 300 5.4772 +99.95 293 5.4129 +100 286 5.3479 +100.05 306 5.5317 +100.1 313 5.5946 +100.15 317 5.6303 +100.2 327 5.7184 +100.25 343 5.8566 +100.3 330 5.7446 +100.35 320 5.6569 +100.4 307 5.5408 +100.45 298 5.4589 +100.5 282 5.3104 +100.55 274 5.2345 +100.6 266 5.1575 +100.65 274 5.2345 +100.7 271 5.2058 +100.75 274 5.2345 +100.8 290 5.3852 +100.85 302 5.4955 +100.9 321 5.6657 +100.95 350 5.9161 +101 367 6.0581 +101.05 386 6.2129 +101.1 394 6.2769 +101.15 370 6.0828 +101.2 356 5.9666 +101.25 332 5.7619 +101.3 310 5.5678 +101.35 288 5.3666 +101.4 279 5.282 +101.45 281 5.3009 +101.5 274 5.2345 +101.55 284 5.3292 +101.6 280 5.2915 +101.65 270 5.1962 +101.7 278 5.2726 +101.75 269 5.1865 +101.8 273 5.2249 +101.85 268 5.1769 +101.9 267 5.1672 +101.95 265 5.1478 +102 257 5.3437 +102.05 258 5.3541 +102.1 267 5.4467 +102.15 267 5.4467 +102.2 277 5.5478 +102.25 287 5.647 +102.3 302 5.7927 +102.35 332 6.0736 +102.4 360 6.3246 +102.45 411 6.7577 +102.5 457 7.1259 +102.55 524 7.6303 +102.6 608 8.2192 +102.65 699 8.8129 +102.7 861 9.7809 +102.75 1096 11.0353 +102.8 1377 12.3693 +102.85 1685 13.6829 +102.9 1901 14.5335 +102.95 2069 15.1621 +103 2016 14.9666 +103.05 1800 14.1421 +103.1 1500 12.9099 +103.15 1181 11.4552 +103.2 937 10.2035 +103.25 728 8.9938 +103.3 629 8.36 +103.35 576 8 +103.4 556 7.8599 +103.45 535 7.71 +103.5 519 7.5939 +103.55 486 7.3485 +103.6 465 7.188 +103.65 429 6.9041 +103.7 385 6.5405 +103.75 361 6.3333 +103.8 342 6.1644 +103.85 312 5.8878 +103.9 293 5.7057 +103.95 279 5.5678 +104 277 5.5478 +104.05 265 5.4263 +104.1 257 5.3437 +104.15 256 5.3333 +104.2 250 5.2705 +104.25 260 5.3748 +104.3 261 5.3852 +104.35 258 5.3541 +104.4 263 5.4058 +104.45 268 5.4569 +104.5 284 5.6174 +104.55 306 5.831 +104.6 325 6.0093 +104.65 337 6.1192 +104.7 337 6.1192 +104.75 344 6.1824 +104.8 340 6.1464 +104.85 337 6.1192 +104.9 328 6.0369 +104.95 321 5.9722 +105 306 5.831 +105.05 295 5.7252 +105.1 289 5.6667 +105.15 281 5.5877 +105.2 267 5.4467 +105.25 266 5.4365 +105.3 270 5.4772 +105.35 263 5.4058 +105.4 256 5.3333 +105.45 266 5.4365 +105.5 264 5.416 +105.55 259 5.3645 +105.6 261 5.3852 +105.65 261 5.3852 +105.7 258 5.3541 +105.75 253 5.302 +105.8 248 5.2493 +105.85 244 5.2068 +105.9 249 5.2599 +105.95 251 5.281 +106 245 5.2175 +106.05 245 5.2175 +106.1 247 5.2387 +106.15 247 5.2387 +106.2 254 5.3125 +106.25 259 5.3645 +106.3 250 5.2705 +106.35 251 5.281 +106.4 258 5.3541 +106.45 252 5.2915 +106.5 255 5.3229 +106.55 259 5.3645 +106.6 256 5.3333 +106.65 264 5.416 +106.7 268 5.4569 +106.75 281 5.5877 +106.8 303 5.8023 +106.85 331 6.0645 +106.9 371 6.4205 +106.95 420 6.8313 +107 484 7.3333 +107.05 532 7.6884 +107.1 576 8 +107.15 582 8.0416 +107.2 563 7.9092 +107.25 527 7.6522 +107.3 490 7.3786 +107.35 465 7.188 +107.4 467 7.2034 +107.45 449 7.0632 +107.5 416 6.7987 +107.55 393 6.6081 +107.6 366 6.377 +107.65 331 6.0645 +107.7 316 5.9255 +107.75 297 5.7446 +107.8 294 5.7155 +107.85 292 5.696 +107.9 286 5.6372 +107.95 295 5.7252 +108 306 6.1847 +108.05 315 6.275 +108.1 334 6.4614 +108.15 373 6.8282 +108.2 406 7.1239 +108.25 447 7.475 +108.3 499 7.8978 +108.35 507 7.9608 +108.4 506 7.953 +108.45 488 7.8102 +108.5 432 7.3485 +108.55 391 6.9911 +108.6 342 6.5383 +108.65 315 6.275 +108.7 292 6.0415 +108.75 275 5.863 +108.8 274 5.8523 +108.85 259 5.6899 +108.9 250 5.5902 +108.95 258 5.6789 +109 252 5.6125 +109.05 255 5.6458 +109.1 254 5.6347 +109.15 253 5.6236 +109.2 254 5.6347 +109.25 252 5.6125 +109.3 257 5.6679 +109.35 250 5.5902 +109.4 255 5.6458 +109.45 251 5.6013 +109.5 254 5.6347 +109.55 260 5.7009 +109.6 249 5.579 +109.65 253 5.6236 +109.7 254 5.6347 +109.75 259 5.6899 +109.8 268 5.7879 +109.85 270 5.8095 +109.9 284 5.9582 +109.95 305 6.1745 +110 322 6.3443 +110.05 364 6.7454 +110.1 417 7.2198 +110.15 470 7.6649 +110.2 573 8.4632 +110.25 678 9.206 +110.3 771 9.8171 +110.35 847 10.2896 +110.4 854 10.332 +110.45 794 9.9624 +110.5 720 9.4868 +110.55 611 8.7393 +110.6 520 8.0623 +110.65 463 7.6076 +110.7 412 7.1764 +110.75 399 7.0622 +110.8 416 7.2111 +110.85 428 7.3144 +110.9 432 7.3485 +110.95 420 7.2457 +111 402 7.0887 +111.05 364 6.7454 +111.1 348 6.5955 +111.15 334 6.4614 +111.2 321 6.3344 +111.25 330 6.4226 +111.3 342 6.5383 +111.35 380 6.892 +111.4 385 6.9372 +111.45 420 7.2457 +111.5 441 7.4246 +111.55 465 7.624 +111.6 444 7.4498 +111.65 406 7.1239 +111.7 383 6.9192 +111.75 345 6.567 +111.8 332 6.442 +111.85 321 6.3344 +111.9 308 6.2048 +111.95 292 6.0415 +112 303 6.1543 +112.05 314 6.265 +112.1 333 6.4517 +112.15 379 6.8829 +112.2 438 7.3993 +112.25 505 7.9451 +112.3 594 8.6168 +112.35 659 9.0761 +112.4 717 9.467 +112.45 738 9.6047 +112.5 710 9.4207 +112.55 642 8.9582 +112.6 547 8.2689 +112.65 492 7.8422 +112.7 421 7.2543 +112.75 386 6.9462 +112.8 344 6.5574 +112.85 337 6.4904 +112.9 350 6.6144 +112.95 364 6.7454 +113 415 7.2024 +113.05 506 7.953 +113.1 586 8.5586 +113.15 674 9.1788 +113.2 750 9.6825 +113.25 787 9.9184 +113.3 753 9.7018 +113.35 682 9.2331 +113.4 597 8.6386 +113.45 499 7.8978 +113.5 417 7.2198 +113.55 362 6.7268 +113.6 340 6.5192 +113.65 302 6.1441 +113.7 286 5.9791 +113.75 280 5.9161 +113.8 283 5.9477 +113.85 276 5.8737 +113.9 282 5.9372 +113.95 284 5.9582 +114 295 6.4918 +114.05 310 6.6548 +114.1 319 6.7507 +114.15 321 6.7718 +114.2 304 6.59 +114.25 298 6.5247 +114.3 293 6.4697 +114.35 283 6.3583 +114.4 277 6.2906 +114.45 269 6.1991 +114.5 265 6.1528 +114.55 277 6.2906 +114.6 283 6.3583 +114.65 283 6.3583 +114.7 293 6.4697 +114.75 303 6.5792 +114.8 320 6.7612 +114.85 316 6.7188 +114.9 331 6.8765 +114.95 346 7.0305 +115 327 6.8348 +115.05 328 6.8452 +115.1 306 6.6117 +115.15 291 6.4476 +115.2 286 6.392 +115.25 278 6.3019 +115.3 273 6.245 +115.35 267 6.176 +115.4 272 6.2335 +115.45 257 6.0592 +115.5 260 6.0945 +115.55 265 6.1528 +115.6 264 6.1412 +115.65 272 6.2335 +115.7 270 6.2106 +115.75 268 6.1875 +115.8 269 6.1991 +115.85 287 6.4031 +115.9 292 6.4587 +115.95 295 6.4918 +116 317 6.7295 +116.05 335 6.9179 +116.1 364 7.2111 +116.15 410 7.6532 +116.2 477 8.2549 +116.25 556 8.9123 +116.3 642 9.5768 +116.35 755 10.3854 +116.4 864 11.1098 +116.45 946 11.6251 +116.5 970 11.7716 +116.55 941 11.5943 +116.6 870 11.1484 +116.65 759 10.4129 +116.7 647 9.614 +116.75 540 8.7831 +116.8 468 8.1766 +116.85 418 7.7275 +116.9 379 7.3582 +116.95 381 7.3776 +117 405 7.6064 +117.05 446 7.9821 +117.1 476 8.2462 +117.15 523 8.6437 +117.2 561 8.9523 +117.25 555 8.9043 +117.3 529 8.6932 +117.35 485 8.3238 +117.4 436 7.8921 +117.45 398 7.5404 +117.5 355 7.1214 +117.55 322 6.7823 +117.6 304 6.59 +117.65 285 6.3808 +117.7 270 6.2106 +117.75 278 6.3019 +117.8 260 6.0945 +117.85 268 6.1875 +117.9 264 6.1412 +117.95 265 6.1528 +118 263 6.1296 +118.05 267 6.176 +118.1 286 6.392 +118.15 293 6.4697 +118.2 291 6.4476 +118.25 319 6.7507 +118.3 366 7.2309 +118.35 411 7.6625 +118.4 461 8.1152 +118.45 489 8.3581 +118.5 521 8.6272 +118.55 555 8.9043 +118.6 550 8.8641 +118.65 511 8.544 +118.7 486 8.3324 +118.75 436 7.8921 +118.8 392 7.4833 +118.85 368 7.2506 +118.9 330 6.8661 +118.95 328 6.8452 +119 343 7 +119.05 371 7.2801 +119.1 394 7.5024 +119.15 441 7.9373 +119.2 468 8.1766 +119.25 469 8.1854 +119.3 456 8.0711 +119.35 416 7.709 +119.4 394 7.5024 +119.45 361 7.1813 +119.5 330 6.8661 +119.55 312 6.6762 +119.6 293 6.4697 +119.65 285 6.3808 +119.7 286 6.392 +119.75 275 6.2678 +119.8 274 6.2564 +119.85 281 6.3358 +119.9 279 6.3133 +119.95 298 6.5247 +120 312 7.2111 +120.05 331 7.4274 +120.1 375 7.9057 +120.15 406 8.226 +120.2 452 8.6795 +120.25 506 9.1833 +120.3 546 9.5394 +120.35 568 9.7297 +120.4 589 9.9079 +120.45 588 9.8995 +120.5 537 9.4604 +120.55 498 9.1104 +120.6 463 8.7845 +120.65 402 8.1854 +120.7 386 8.0208 +120.75 361 7.7567 +120.8 350 7.6376 +120.85 330 7.4162 +120.9 338 7.5056 +120.95 359 7.7352 +121 364 7.7889 +121.05 385 8.0104 +121.1 436 8.5245 +121.15 474 8.8882 +121.2 544 9.5219 +121.25 647 10.3843 +121.3 695 10.7626 +121.35 763 11.2768 +121.4 802 11.5614 +121.45 812 11.6333 +121.5 756 11.225 +121.55 669 10.5594 +121.6 606 10.0499 +121.65 527 9.3719 +121.7 452 8.6795 +121.75 409 8.2563 +121.8 376 7.9162 +121.85 368 7.8316 +121.9 391 8.0726 +121.95 400 8.165 +122 444 8.6023 +122.05 481 8.9536 +122.1 518 9.2916 +122.15 556 9.6264 +122.2 577 9.8065 +122.25 575 9.7895 +122.3 557 9.635 +122.35 552 9.5917 +122.4 562 9.6782 +122.45 592 9.9331 +122.5 596 9.9666 +122.55 583 9.8573 +122.6 552 9.5917 +122.65 512 9.2376 +122.7 482 8.9629 +122.75 439 8.5538 +122.8 385 8.0104 +122.85 342 7.5498 +122.9 316 7.2572 +122.95 300 7.0711 +123 287 6.9162 +123.05 279 6.8191 +123.1 267 6.6708 +123.15 269 6.6958 +123.2 269 6.6958 +123.25 271 6.7206 +123.3 261 6.5955 +123.35 261 6.5955 +123.4 265 6.6458 +123.45 252 6.4807 +123.5 260 6.5828 +123.55 263 6.6207 +123.6 265 6.6458 +123.65 260 6.5828 +123.7 274 6.7577 +123.75 267 6.6708 +123.8 271 6.7206 +123.85 274 6.7577 +123.9 269 6.6958 +123.95 264 6.6332 +124 277 6.7946 +124.05 272 6.733 +124.1 277 6.7946 +124.15 282 6.8557 +124.2 290 6.9522 +124.25 293 6.9881 +124.3 294 7 +124.35 300 7.0711 +124.4 325 7.3598 +124.45 348 7.6158 +124.5 382 7.9791 +124.55 412 8.2865 +124.6 466 8.8129 +124.65 513 9.2466 +124.7 562 9.6782 +124.75 585 9.8742 +124.8 608 10.0664 +124.85 619 10.1571 +124.9 594 9.9499 +124.95 567 9.7211 +125 526 9.363 +125.05 518 9.2916 +125.1 501 9.1378 +125.15 480 8.9443 +125.2 470 8.8506 +125.25 465 8.8034 +125.3 469 8.8412 +125.35 458 8.7369 +125.4 438 8.544 +125.45 448 8.641 +125.5 470 8.8506 +125.55 470 8.8506 +125.6 500 9.1287 +125.65 505 9.1742 +125.7 519 9.3005 +125.75 517 9.2826 +125.8 517 9.2826 +125.85 502 9.1469 +125.9 460 8.7559 +125.95 410 8.2664 +126 375 8.6603 +126.05 347 8.3307 +126.1 347 8.3307 +126.15 318 7.975 +126.2 310 7.874 +126.25 302 7.7717 +126.3 311 7.8867 +126.35 326 8.0747 +126.4 320 8 +126.45 334 8.1731 +126.5 374 8.6487 +126.55 444 9.4234 +126.6 484 9.8387 +126.65 561 10.5925 +126.7 647 11.3754 +126.75 699 11.8237 +126.8 747 12.2229 +126.85 767 12.3855 +126.9 749 12.2393 +126.95 723 12.025 +127 664 11.5239 +127.05 619 11.1265 +127.1 578 10.7517 +127.15 553 10.5167 +127.2 541 10.4019 +127.25 530 10.2956 +127.3 530 10.2956 +127.35 525 10.247 +127.4 517 10.1686 +127.45 493 9.9298 +127.5 482 9.8183 +127.55 456 9.5499 +127.6 423 9.1978 +127.65 383 8.7521 +127.7 380 8.7178 +127.75 343 8.2825 +127.8 326 8.0747 +127.85 314 7.9246 +127.9 302 7.7717 +127.95 303 7.7846 +128 290 7.6158 +128.05 290 7.6158 +128.1 293 7.6551 +128.15 277 7.4431 +128.2 286 7.5631 +128.25 309 7.8613 +128.3 327 8.087 +128.35 357 8.4499 +128.4 396 8.8994 +128.45 468 9.6747 +128.5 529 10.2859 +128.55 590 10.8628 +128.6 649 11.393 +128.65 699 11.8237 +128.7 720 12 +128.75 705 11.8743 +128.8 672 11.5931 +128.85 635 11.2694 +128.9 604 10.9909 +128.95 564 10.6207 +129 548 10.469 +129.05 537 10.3634 +129.1 564 10.6207 +129.15 588 10.8444 +129.2 611 11.0544 +129.25 636 11.2783 +129.3 636 11.2783 +129.35 606 11.0091 +129.4 600 10.9545 +129.45 560 10.583 +129.5 512 10.1193 +129.55 473 9.7263 +129.6 453 9.5184 +129.65 428 9.252 +129.7 390 8.8318 +129.75 393 8.8657 +129.8 401 8.9554 +129.85 395 8.8882 +129.9 440 9.3808 +129.95 479 9.7877 +130 549 10.4785 +130.05 618 11.1176 +130.1 675 11.6189 +130.15 746 12.2147 +130.2 803 12.6728 +130.25 805 12.6886 +130.3 788 12.5539 +130.35 748 12.2311 +130.4 671 11.5845 +130.45 621 11.1445 +130.5 544 10.4307 +130.55 460 9.5917 +130.6 421 9.1761 +130.65 384 8.7636 +130.7 343 8.2825 +130.75 321 8.0125 +130.8 298 7.7201 +130.85 278 7.4565 +130.9 287 7.5763 +130.95 280 7.4833 +131 268 7.3212 +131.05 281 7.4967 +131.1 272 7.3756 +131.15 287 7.5763 +131.2 282 7.51 +131.25 284 7.5366 +131.3 300 7.746 +131.35 303 7.7846 +131.4 309 7.8613 +131.45 322 8.025 +131.5 340 8.2462 +131.55 347 8.3307 +131.6 370 8.6023 +131.65 401 8.9554 +131.7 420 9.1652 +131.75 451 9.4974 +131.8 491 9.9096 +131.85 508 10.0797 +131.9 530 10.2956 +131.95 531 10.3053 +132 522 10.2176 +132.05 484 11 +132.1 468 10.8167 +132.15 427 10.332 +132.2 379 9.734 +132.25 365 9.5525 +132.3 344 9.2736 +132.35 321 8.9582 +132.4 294 8.5732 +132.45 291 8.5294 +132.5 284 8.4261 +132.55 264 8.124 +132.6 281 8.3815 +132.65 261 8.0777 +132.7 256 8 +132.75 261 8.0777 +132.8 266 8.1548 +132.85 264 8.124 +132.9 258 8.0312 +132.95 262 8.0932 +133 250 7.9057 +133.05 261 8.0777 +133.1 257 8.0156 +133.15 253 7.953 +133.2 247 7.8581 +133.25 259 8.0467 +133.3 259 8.0467 +133.35 256 8 +133.4 253 7.953 +133.45 256 8 +133.5 257 8.0156 +133.55 261 8.0777 +133.6 246 7.8422 +133.65 247 7.8581 +133.7 250 7.9057 +133.75 270 8.2158 +133.8 254 7.9687 +133.85 245 7.8262 +133.9 254 7.9687 +133.95 274 8.2765 +134 272 8.2462 +134.05 253 7.953 +134.1 260 8.0623 +134.15 272 8.2462 +134.2 265 8.1394 +134.25 267 8.1701 +134.3 276 8.3066 +134.35 280 8.3666 +134.4 289 8.5 +134.45 318 8.9163 +134.5 331 9.0967 +134.55 366 9.5656 +134.6 386 9.8234 +134.65 426 10.3199 +134.7 461 10.7355 +134.75 495 11.1243 +134.8 532 11.5326 +134.85 591 12.1552 +134.9 627 12.52 +134.95 616 12.4097 +135 634 12.5897 +135.05 668 12.9228 +135.1 645 12.6984 +135.15 620 12.4499 +135.2 607 12.3187 +135.25 560 11.8322 +135.3 518 11.3798 +135.35 470 10.8397 +135.4 445 10.5475 +135.45 398 9.975 +135.5 376 9.6954 +135.55 336 9.1652 +135.6 325 9.0139 +135.65 301 8.6747 +135.7 303 8.7034 +135.75 275 8.2916 +135.8 273 8.2614 +135.85 288 8.4853 +135.9 278 8.3367 +135.95 274 8.2765 +136 273 8.2614 +136.05 260 8.0623 +136.1 268 8.1854 +136.15 276 8.3066 +136.2 276 8.3066 +136.25 294 8.5732 +136.3 293 8.5586 +136.35 277 8.3217 +136.4 292 8.544 +136.45 284 8.4261 +136.5 273 8.2614 +136.55 291 8.5294 +136.6 287 8.4705 +136.65 303 8.7034 +136.7 306 8.7464 +136.75 315 8.8741 +136.8 333 9.1241 +136.85 367 9.5786 +136.9 387 9.8362 +136.95 404 10.0499 +137 440 10.4881 +137.05 480 10.9545 +137.1 533 11.5434 +137.15 601 12.2577 +137.2 620 12.4499 +137.25 647 12.7181 +137.3 663 12.8744 +137.35 652 12.7671 +137.4 665 12.8938 +137.45 630 12.5499 +137.5 628 12.53 +137.55 577 12.0104 +137.6 520 11.4018 +137.65 472 10.8628 +137.7 453 10.6419 +137.75 413 10.1612 +137.8 412 10.1489 +137.85 396 9.9499 +137.9 361 10.9697 +137.95 370 11.1056 +138 402 11.5758 +138.05 389 11.3871 +138.1 423 11.8743 +138.15 452 12.2746 +138.2 469 12.5033 +138.25 498 12.8841 +138.3 535 13.3541 +138.35 538 13.3915 +138.4 564 13.7113 +138.45 572 13.8082 +138.5 585 13.9642 +138.55 574 13.8323 +138.6 543 13.4536 +138.65 495 12.8452 +138.7 484 12.7017 +138.75 460 12.3828 +138.8 428 11.9443 +138.85 375 11.1803 +138.9 341 10.6615 +138.95 340 10.6458 +139 312 10.198 +139.05 309 10.1489 +139.1 288 9.798 +139.15 271 9.5044 +139.2 273 9.5394 +139.25 267 9.434 +139.3 255 9.2195 +139.35 266 9.4163 +139.4 261 9.3274 +139.45 269 9.4692 +139.5 257 9.2556 +139.55 249 9.1104 +139.6 245 9.037 +139.65 259 9.2916 +139.7 258 9.2736 +139.75 259 9.2916 +139.8 268 9.4516 +139.85 279 9.6437 +139.9 256 9.2376 +139.95 259 9.2916 +140 287 9.7809 +140.05 269 9.4692 +140.1 281 9.6782 +140.15 268 9.4516 +140.2 277 9.609 +140.25 278 9.6264 +140.3 287 9.7809 +140.35 277 9.609 +140.4 285 9.7468 +140.45 284 9.7297 +140.5 278 9.6264 +140.55 288 9.798 +140.6 279 9.6437 +140.65 287 9.7809 +140.7 289 9.815 +140.75 308 10.1325 +140.8 308 10.1325 +140.85 288 9.798 +140.9 302 10.0333 +140.95 295 9.9163 +141 301 10.0167 +141.05 303 10.0499 +141.1 294 9.8995 +141.15 287 9.7809 +141.2 279 9.6437 +141.25 279 9.6437 +141.3 276 9.5917 +141.35 275 9.5743 +141.4 264 9.3808 +141.45 274 9.5568 +141.5 269 9.4692 +141.55 269 9.4692 +141.6 268 9.4516 +141.65 261 9.3274 +141.7 256 9.2376 +141.75 284 9.7297 +141.8 279 9.6437 +141.85 280 9.6609 +141.9 296 9.9331 +141.95 297 9.9499 +142 296 9.9331 +142.05 308 10.1325 +142.1 301 10.0167 +142.15 300 10 +142.2 297 9.9499 +142.25 300 10 +142.3 289 9.815 +142.35 290 9.8319 +142.4 274 9.5568 +142.45 275 9.5743 +142.5 264 9.3808 +142.55 262 9.3452 +142.6 249 9.1104 +142.65 251 9.1469 +142.7 248 9.0921 +142.75 252 9.1652 +142.8 249 9.1104 +142.85 249 9.1104 +142.9 262 9.3452 +142.95 251 9.1469 +143 239 8.9256 +143.05 263 9.363 +143.1 265 9.3986 +143.15 240 8.9443 +143.2 236 8.8694 +143.25 250 9.1287 +143.3 248 9.0921 +143.35 248 9.0921 +143.4 254 9.2014 +143.45 262 9.3452 +143.5 252 9.1652 +143.55 246 9.0554 +143.6 250 9.1287 +143.65 251 9.1469 +143.7 247 9.0738 +143.75 248 9.0921 +143.8 254 9.2014 +143.85 236 8.8694 +143.9 251 9.1469 +143.95 247 9.0738 +144 254 9.2014 +144.05 248 9.0921 +144.1 259 11.3798 +144.15 259 11.3798 +144.2 274 11.7047 +144.25 263 11.4673 +144.3 287 11.9791 +144.35 283 11.8954 +144.4 281 11.8533 +144.45 296 12.1655 +144.5 292 12.083 +144.55 323 12.7083 +144.6 330 12.8452 +144.65 339 13.0192 +144.7 358 13.3791 +144.75 349 13.2098 +144.8 365 13.5093 +144.85 399 14.1244 +144.9 406 14.2478 +144.95 428 14.6287 +145 413 14.3701 +145.05 439 14.8155 +145.1 418 14.4568 +145.15 425 14.5774 +145.2 411 14.3353 +145.25 417 14.4395 +145.3 391 13.9821 +145.35 393 14.0178 +145.4 386 13.8924 +145.45 359 13.3978 +145.5 381 13.8022 +145.55 363 13.4722 +145.6 364 13.4907 +145.65 375 13.6931 +145.7 379 13.7659 +145.75 392 14 +145.8 402 14.1774 +145.85 436 14.7648 +145.9 451 15.0167 +145.95 463 15.2151 +146 452 15.0333 +146.05 449 14.9833 +146.1 479 15.4758 +146.15 485 15.5724 +146.2 484 15.5563 +146.25 472 15.3623 +146.3 508 15.9374 +146.35 518 16.0935 +146.4 523 16.171 +146.45 561 16.7481 +146.5 559 16.7183 +146.55 573 16.9263 +146.6 545 16.5076 +146.65 561 16.7481 +146.7 568 16.8523 +146.75 573 16.9263 +146.8 562 16.7631 +146.85 573 16.9263 +146.9 565 16.8077 +146.95 499 15.7956 +147 496 15.748 +147.05 488 15.6205 +147.1 449 14.9833 +147.15 442 14.8661 +147.2 391 13.9821 +147.25 387 13.9104 +147.3 390 13.9642 +147.35 359 13.3978 +147.4 338 13 +147.45 321 12.6689 +147.5 322 12.6886 +147.55 327 12.7867 +147.6 338 13 +147.65 306 12.3693 +147.7 290 12.0416 +147.75 320 12.6491 +147.8 308 12.4097 +147.85 300 12.2474 +147.9 307 12.3895 +147.95 306 12.3693 +148 314 12.53 +148.05 318 12.6095 +148.1 298 12.2066 +148.15 313 12.51 +148.2 303 12.3085 +148.25 302 12.2882 +148.3 333 12.9035 +148.35 285 11.9373 +148.4 312 12.49 +148.45 312 12.49 +148.5 285 11.9373 +148.55 290 12.0416 +148.6 288 12 +148.65 294 12.1244 +148.7 314 12.53 +148.75 300 12.2474 +148.8 306 12.3693 +148.85 293 12.1037 +148.9 299 12.227 +148.95 328 12.8062 +149 325 12.7475 +149.05 328 12.8062 +149.1 317 12.5897 +149.15 292 12.083 +149.2 321 12.6689 +149.25 291 12.0623 +149.3 302 12.2882 +149.35 291 12.0623 +149.4 297 12.1861 +149.45 301 12.2678 +149.5 270 11.6189 +149.55 262 11.4455 +149.6 277 11.7686 +149.65 258 11.3578 +149.7 258 11.3578 +149.75 243 11.0227 +149.8 269 11.5974 +149.85 257 11.3358 +149.9 257 11.3358 +149.95 240 10.9545 +150 282 16.7929 +150.05 245 15.6525 +150.1 243 15.5885 +150.15 260 16.1245 +150.2 255 15.9687 +150.25 275 16.5831 +150.3 255 15.9687 +150.35 270 16.4317 +150.4 286 16.9115 +150.45 271 16.4621 +150.5 258 16.0624 +150.55 309 17.5784 +150.6 299 17.2916 +150.65 297 17.2337 +150.7 304 17.4356 +150.75 319 17.8606 +150.8 314 17.72 +150.85 290 17.0294 +150.9 338 18.3848 +150.95 316 17.7764 +151 341 18.4662 +151.05 384 19.5959 +151.1 360 18.9737 +151.15 367 19.1572 +151.2 383 19.5704 +151.25 366 19.1311 +151.3 369 19.2094 +151.35 363 19.0526 +151.4 332 18.2209 +151.45 325 18.0278 +151.5 334 18.2757 +151.55 373 19.3132 +151.6 336 18.3303 +151.65 313 17.6918 +151.7 339 18.412 +151.75 325 18.0278 +151.8 307 17.5214 +151.85 277 16.6433 +151.9 286 16.9115 +151.95 305 17.4642 +152 277 16.6433 +152.05 262 16.1864 +152.1 262 16.1864 +152.15 241 15.5242 +152.2 251 15.843 +152.25 260 16.1245 +152.3 245 15.6525 +152.35 249 15.7797 +152.4 260 16.1245 +152.45 256 16 +152.5 242 15.5563 +152.55 258 16.0624 +152.6 248 15.748 +152.65 235 15.3297 +152.7 245 15.6525 +152.75 248 15.748 +152.8 281 16.7631 +152.85 228 15.0997 +152.9 230 15.1658 +152.95 212 14.5602 +153 237 15.3948 +153.05 244 15.6205 +153.1 231 15.1987 +153.15 266 16.3095 +153.2 231 15.1987 +153.25 234 15.2971 +153.3 247 15.7162 +153.35 264 16.2481 +153.4 247 15.7162 +153.45 261 16.1555 +153.5 223 14.9332 +153.55 242 15.5563 +153.6 271 16.4621 +153.65 247 15.7162 +153.7 249 15.7797 +153.75 251 15.843 +153.8 232 15.2315 +153.85 225 15 +153.9 255 15.9687 +153.95 209 14.4568 +154 266 16.3095 +154.05 255 15.9687 +154.1 273 16.5227 +154.15 250 15.8114 +154.2 234 15.2971 +154.25 257 16.0312 +154.3 250 15.8114 +154.35 270 16.4317 +154.4 262 16.1864 +154.45 281 16.7631 +154.5 257 16.0312 +154.55 260 16.1245 +154.6 257 16.0312 +154.65 242 15.5563 +154.7 255 15.9687 +154.75 250 15.8114 +154.8 274 16.5529 +154.85 288 16.9706 +154.9 275 16.5831 +154.95 277 16.6433 +155 278 16.6733 +155.05 264 16.2481 +155.1 298 17.2627 +155.15 312 17.6635 +155.2 282 16.7929 +155.25 314 17.72 +155.3 341 18.4662 +155.35 314 17.72 +155.4 295 17.1756 +155.45 326 18.0555 diff --git a/examples/data/pbso4_powder_neutron_cw_second-half.dat b/examples/data/pbso4_powder_neutron_cw_second-half.dat new file mode 100644 index 00000000..c5308303 --- /dev/null +++ b/examples/data/pbso4_powder_neutron_cw_second-half.dat @@ -0,0 +1,1110 @@ +100 286 5.3479 +100.05 306 5.5317 +100.1 313 5.5946 +100.15 317 5.6303 +100.2 327 5.7184 +100.25 343 5.8566 +100.3 330 5.7446 +100.35 320 5.6569 +100.4 307 5.5408 +100.45 298 5.4589 +100.5 282 5.3104 +100.55 274 5.2345 +100.6 266 5.1575 +100.65 274 5.2345 +100.7 271 5.2058 +100.75 274 5.2345 +100.8 290 5.3852 +100.85 302 5.4955 +100.9 321 5.6657 +100.95 350 5.9161 +101 367 6.0581 +101.05 386 6.2129 +101.1 394 6.2769 +101.15 370 6.0828 +101.2 356 5.9666 +101.25 332 5.7619 +101.3 310 5.5678 +101.35 288 5.3666 +101.4 279 5.282 +101.45 281 5.3009 +101.5 274 5.2345 +101.55 284 5.3292 +101.6 280 5.2915 +101.65 270 5.1962 +101.7 278 5.2726 +101.75 269 5.1865 +101.8 273 5.2249 +101.85 268 5.1769 +101.9 267 5.1672 +101.95 265 5.1478 +102 257 5.3437 +102.05 258 5.3541 +102.1 267 5.4467 +102.15 267 5.4467 +102.2 277 5.5478 +102.25 287 5.647 +102.3 302 5.7927 +102.35 332 6.0736 +102.4 360 6.3246 +102.45 411 6.7577 +102.5 457 7.1259 +102.55 524 7.6303 +102.6 608 8.2192 +102.65 699 8.8129 +102.7 861 9.7809 +102.75 1096 11.0353 +102.8 1377 12.3693 +102.85 1685 13.6829 +102.9 1901 14.5335 +102.95 2069 15.1621 +103 2016 14.9666 +103.05 1800 14.1421 +103.1 1500 12.9099 +103.15 1181 11.4552 +103.2 937 10.2035 +103.25 728 8.9938 +103.3 629 8.36 +103.35 576 8 +103.4 556 7.8599 +103.45 535 7.71 +103.5 519 7.5939 +103.55 486 7.3485 +103.6 465 7.188 +103.65 429 6.9041 +103.7 385 6.5405 +103.75 361 6.3333 +103.8 342 6.1644 +103.85 312 5.8878 +103.9 293 5.7057 +103.95 279 5.5678 +104 277 5.5478 +104.05 265 5.4263 +104.1 257 5.3437 +104.15 256 5.3333 +104.2 250 5.2705 +104.25 260 5.3748 +104.3 261 5.3852 +104.35 258 5.3541 +104.4 263 5.4058 +104.45 268 5.4569 +104.5 284 5.6174 +104.55 306 5.831 +104.6 325 6.0093 +104.65 337 6.1192 +104.7 337 6.1192 +104.75 344 6.1824 +104.8 340 6.1464 +104.85 337 6.1192 +104.9 328 6.0369 +104.95 321 5.9722 +105 306 5.831 +105.05 295 5.7252 +105.1 289 5.6667 +105.15 281 5.5877 +105.2 267 5.4467 +105.25 266 5.4365 +105.3 270 5.4772 +105.35 263 5.4058 +105.4 256 5.3333 +105.45 266 5.4365 +105.5 264 5.416 +105.55 259 5.3645 +105.6 261 5.3852 +105.65 261 5.3852 +105.7 258 5.3541 +105.75 253 5.302 +105.8 248 5.2493 +105.85 244 5.2068 +105.9 249 5.2599 +105.95 251 5.281 +106 245 5.2175 +106.05 245 5.2175 +106.1 247 5.2387 +106.15 247 5.2387 +106.2 254 5.3125 +106.25 259 5.3645 +106.3 250 5.2705 +106.35 251 5.281 +106.4 258 5.3541 +106.45 252 5.2915 +106.5 255 5.3229 +106.55 259 5.3645 +106.6 256 5.3333 +106.65 264 5.416 +106.7 268 5.4569 +106.75 281 5.5877 +106.8 303 5.8023 +106.85 331 6.0645 +106.9 371 6.4205 +106.95 420 6.8313 +107 484 7.3333 +107.05 532 7.6884 +107.1 576 8 +107.15 582 8.0416 +107.2 563 7.9092 +107.25 527 7.6522 +107.3 490 7.3786 +107.35 465 7.188 +107.4 467 7.2034 +107.45 449 7.0632 +107.5 416 6.7987 +107.55 393 6.6081 +107.6 366 6.377 +107.65 331 6.0645 +107.7 316 5.9255 +107.75 297 5.7446 +107.8 294 5.7155 +107.85 292 5.696 +107.9 286 5.6372 +107.95 295 5.7252 +108 306 6.1847 +108.05 315 6.275 +108.1 334 6.4614 +108.15 373 6.8282 +108.2 406 7.1239 +108.25 447 7.475 +108.3 499 7.8978 +108.35 507 7.9608 +108.4 506 7.953 +108.45 488 7.8102 +108.5 432 7.3485 +108.55 391 6.9911 +108.6 342 6.5383 +108.65 315 6.275 +108.7 292 6.0415 +108.75 275 5.863 +108.8 274 5.8523 +108.85 259 5.6899 +108.9 250 5.5902 +108.95 258 5.6789 +109 252 5.6125 +109.05 255 5.6458 +109.1 254 5.6347 +109.15 253 5.6236 +109.2 254 5.6347 +109.25 252 5.6125 +109.3 257 5.6679 +109.35 250 5.5902 +109.4 255 5.6458 +109.45 251 5.6013 +109.5 254 5.6347 +109.55 260 5.7009 +109.6 249 5.579 +109.65 253 5.6236 +109.7 254 5.6347 +109.75 259 5.6899 +109.8 268 5.7879 +109.85 270 5.8095 +109.9 284 5.9582 +109.95 305 6.1745 +110 322 6.3443 +110.05 364 6.7454 +110.1 417 7.2198 +110.15 470 7.6649 +110.2 573 8.4632 +110.25 678 9.206 +110.3 771 9.8171 +110.35 847 10.2896 +110.4 854 10.332 +110.45 794 9.9624 +110.5 720 9.4868 +110.55 611 8.7393 +110.6 520 8.0623 +110.65 463 7.6076 +110.7 412 7.1764 +110.75 399 7.0622 +110.8 416 7.2111 +110.85 428 7.3144 +110.9 432 7.3485 +110.95 420 7.2457 +111 402 7.0887 +111.05 364 6.7454 +111.1 348 6.5955 +111.15 334 6.4614 +111.2 321 6.3344 +111.25 330 6.4226 +111.3 342 6.5383 +111.35 380 6.892 +111.4 385 6.9372 +111.45 420 7.2457 +111.5 441 7.4246 +111.55 465 7.624 +111.6 444 7.4498 +111.65 406 7.1239 +111.7 383 6.9192 +111.75 345 6.567 +111.8 332 6.442 +111.85 321 6.3344 +111.9 308 6.2048 +111.95 292 6.0415 +112 303 6.1543 +112.05 314 6.265 +112.1 333 6.4517 +112.15 379 6.8829 +112.2 438 7.3993 +112.25 505 7.9451 +112.3 594 8.6168 +112.35 659 9.0761 +112.4 717 9.467 +112.45 738 9.6047 +112.5 710 9.4207 +112.55 642 8.9582 +112.6 547 8.2689 +112.65 492 7.8422 +112.7 421 7.2543 +112.75 386 6.9462 +112.8 344 6.5574 +112.85 337 6.4904 +112.9 350 6.6144 +112.95 364 6.7454 +113 415 7.2024 +113.05 506 7.953 +113.1 586 8.5586 +113.15 674 9.1788 +113.2 750 9.6825 +113.25 787 9.9184 +113.3 753 9.7018 +113.35 682 9.2331 +113.4 597 8.6386 +113.45 499 7.8978 +113.5 417 7.2198 +113.55 362 6.7268 +113.6 340 6.5192 +113.65 302 6.1441 +113.7 286 5.9791 +113.75 280 5.9161 +113.8 283 5.9477 +113.85 276 5.8737 +113.9 282 5.9372 +113.95 284 5.9582 +114 295 6.4918 +114.05 310 6.6548 +114.1 319 6.7507 +114.15 321 6.7718 +114.2 304 6.59 +114.25 298 6.5247 +114.3 293 6.4697 +114.35 283 6.3583 +114.4 277 6.2906 +114.45 269 6.1991 +114.5 265 6.1528 +114.55 277 6.2906 +114.6 283 6.3583 +114.65 283 6.3583 +114.7 293 6.4697 +114.75 303 6.5792 +114.8 320 6.7612 +114.85 316 6.7188 +114.9 331 6.8765 +114.95 346 7.0305 +115 327 6.8348 +115.05 328 6.8452 +115.1 306 6.6117 +115.15 291 6.4476 +115.2 286 6.392 +115.25 278 6.3019 +115.3 273 6.245 +115.35 267 6.176 +115.4 272 6.2335 +115.45 257 6.0592 +115.5 260 6.0945 +115.55 265 6.1528 +115.6 264 6.1412 +115.65 272 6.2335 +115.7 270 6.2106 +115.75 268 6.1875 +115.8 269 6.1991 +115.85 287 6.4031 +115.9 292 6.4587 +115.95 295 6.4918 +116 317 6.7295 +116.05 335 6.9179 +116.1 364 7.2111 +116.15 410 7.6532 +116.2 477 8.2549 +116.25 556 8.9123 +116.3 642 9.5768 +116.35 755 10.3854 +116.4 864 11.1098 +116.45 946 11.6251 +116.5 970 11.7716 +116.55 941 11.5943 +116.6 870 11.1484 +116.65 759 10.4129 +116.7 647 9.614 +116.75 540 8.7831 +116.8 468 8.1766 +116.85 418 7.7275 +116.9 379 7.3582 +116.95 381 7.3776 +117 405 7.6064 +117.05 446 7.9821 +117.1 476 8.2462 +117.15 523 8.6437 +117.2 561 8.9523 +117.25 555 8.9043 +117.3 529 8.6932 +117.35 485 8.3238 +117.4 436 7.8921 +117.45 398 7.5404 +117.5 355 7.1214 +117.55 322 6.7823 +117.6 304 6.59 +117.65 285 6.3808 +117.7 270 6.2106 +117.75 278 6.3019 +117.8 260 6.0945 +117.85 268 6.1875 +117.9 264 6.1412 +117.95 265 6.1528 +118 263 6.1296 +118.05 267 6.176 +118.1 286 6.392 +118.15 293 6.4697 +118.2 291 6.4476 +118.25 319 6.7507 +118.3 366 7.2309 +118.35 411 7.6625 +118.4 461 8.1152 +118.45 489 8.3581 +118.5 521 8.6272 +118.55 555 8.9043 +118.6 550 8.8641 +118.65 511 8.544 +118.7 486 8.3324 +118.75 436 7.8921 +118.8 392 7.4833 +118.85 368 7.2506 +118.9 330 6.8661 +118.95 328 6.8452 +119 343 7 +119.05 371 7.2801 +119.1 394 7.5024 +119.15 441 7.9373 +119.2 468 8.1766 +119.25 469 8.1854 +119.3 456 8.0711 +119.35 416 7.709 +119.4 394 7.5024 +119.45 361 7.1813 +119.5 330 6.8661 +119.55 312 6.6762 +119.6 293 6.4697 +119.65 285 6.3808 +119.7 286 6.392 +119.75 275 6.2678 +119.8 274 6.2564 +119.85 281 6.3358 +119.9 279 6.3133 +119.95 298 6.5247 +120 312 7.2111 +120.05 331 7.4274 +120.1 375 7.9057 +120.15 406 8.226 +120.2 452 8.6795 +120.25 506 9.1833 +120.3 546 9.5394 +120.35 568 9.7297 +120.4 589 9.9079 +120.45 588 9.8995 +120.5 537 9.4604 +120.55 498 9.1104 +120.6 463 8.7845 +120.65 402 8.1854 +120.7 386 8.0208 +120.75 361 7.7567 +120.8 350 7.6376 +120.85 330 7.4162 +120.9 338 7.5056 +120.95 359 7.7352 +121 364 7.7889 +121.05 385 8.0104 +121.1 436 8.5245 +121.15 474 8.8882 +121.2 544 9.5219 +121.25 647 10.3843 +121.3 695 10.7626 +121.35 763 11.2768 +121.4 802 11.5614 +121.45 812 11.6333 +121.5 756 11.225 +121.55 669 10.5594 +121.6 606 10.0499 +121.65 527 9.3719 +121.7 452 8.6795 +121.75 409 8.2563 +121.8 376 7.9162 +121.85 368 7.8316 +121.9 391 8.0726 +121.95 400 8.165 +122 444 8.6023 +122.05 481 8.9536 +122.1 518 9.2916 +122.15 556 9.6264 +122.2 577 9.8065 +122.25 575 9.7895 +122.3 557 9.635 +122.35 552 9.5917 +122.4 562 9.6782 +122.45 592 9.9331 +122.5 596 9.9666 +122.55 583 9.8573 +122.6 552 9.5917 +122.65 512 9.2376 +122.7 482 8.9629 +122.75 439 8.5538 +122.8 385 8.0104 +122.85 342 7.5498 +122.9 316 7.2572 +122.95 300 7.0711 +123 287 6.9162 +123.05 279 6.8191 +123.1 267 6.6708 +123.15 269 6.6958 +123.2 269 6.6958 +123.25 271 6.7206 +123.3 261 6.5955 +123.35 261 6.5955 +123.4 265 6.6458 +123.45 252 6.4807 +123.5 260 6.5828 +123.55 263 6.6207 +123.6 265 6.6458 +123.65 260 6.5828 +123.7 274 6.7577 +123.75 267 6.6708 +123.8 271 6.7206 +123.85 274 6.7577 +123.9 269 6.6958 +123.95 264 6.6332 +124 277 6.7946 +124.05 272 6.733 +124.1 277 6.7946 +124.15 282 6.8557 +124.2 290 6.9522 +124.25 293 6.9881 +124.3 294 7 +124.35 300 7.0711 +124.4 325 7.3598 +124.45 348 7.6158 +124.5 382 7.9791 +124.55 412 8.2865 +124.6 466 8.8129 +124.65 513 9.2466 +124.7 562 9.6782 +124.75 585 9.8742 +124.8 608 10.0664 +124.85 619 10.1571 +124.9 594 9.9499 +124.95 567 9.7211 +125 526 9.363 +125.05 518 9.2916 +125.1 501 9.1378 +125.15 480 8.9443 +125.2 470 8.8506 +125.25 465 8.8034 +125.3 469 8.8412 +125.35 458 8.7369 +125.4 438 8.544 +125.45 448 8.641 +125.5 470 8.8506 +125.55 470 8.8506 +125.6 500 9.1287 +125.65 505 9.1742 +125.7 519 9.3005 +125.75 517 9.2826 +125.8 517 9.2826 +125.85 502 9.1469 +125.9 460 8.7559 +125.95 410 8.2664 +126 375 8.6603 +126.05 347 8.3307 +126.1 347 8.3307 +126.15 318 7.975 +126.2 310 7.874 +126.25 302 7.7717 +126.3 311 7.8867 +126.35 326 8.0747 +126.4 320 8 +126.45 334 8.1731 +126.5 374 8.6487 +126.55 444 9.4234 +126.6 484 9.8387 +126.65 561 10.5925 +126.7 647 11.3754 +126.75 699 11.8237 +126.8 747 12.2229 +126.85 767 12.3855 +126.9 749 12.2393 +126.95 723 12.025 +127 664 11.5239 +127.05 619 11.1265 +127.1 578 10.7517 +127.15 553 10.5167 +127.2 541 10.4019 +127.25 530 10.2956 +127.3 530 10.2956 +127.35 525 10.247 +127.4 517 10.1686 +127.45 493 9.9298 +127.5 482 9.8183 +127.55 456 9.5499 +127.6 423 9.1978 +127.65 383 8.7521 +127.7 380 8.7178 +127.75 343 8.2825 +127.8 326 8.0747 +127.85 314 7.9246 +127.9 302 7.7717 +127.95 303 7.7846 +128 290 7.6158 +128.05 290 7.6158 +128.1 293 7.6551 +128.15 277 7.4431 +128.2 286 7.5631 +128.25 309 7.8613 +128.3 327 8.087 +128.35 357 8.4499 +128.4 396 8.8994 +128.45 468 9.6747 +128.5 529 10.2859 +128.55 590 10.8628 +128.6 649 11.393 +128.65 699 11.8237 +128.7 720 12 +128.75 705 11.8743 +128.8 672 11.5931 +128.85 635 11.2694 +128.9 604 10.9909 +128.95 564 10.6207 +129 548 10.469 +129.05 537 10.3634 +129.1 564 10.6207 +129.15 588 10.8444 +129.2 611 11.0544 +129.25 636 11.2783 +129.3 636 11.2783 +129.35 606 11.0091 +129.4 600 10.9545 +129.45 560 10.583 +129.5 512 10.1193 +129.55 473 9.7263 +129.6 453 9.5184 +129.65 428 9.252 +129.7 390 8.8318 +129.75 393 8.8657 +129.8 401 8.9554 +129.85 395 8.8882 +129.9 440 9.3808 +129.95 479 9.7877 +130 549 10.4785 +130.05 618 11.1176 +130.1 675 11.6189 +130.15 746 12.2147 +130.2 803 12.6728 +130.25 805 12.6886 +130.3 788 12.5539 +130.35 748 12.2311 +130.4 671 11.5845 +130.45 621 11.1445 +130.5 544 10.4307 +130.55 460 9.5917 +130.6 421 9.1761 +130.65 384 8.7636 +130.7 343 8.2825 +130.75 321 8.0125 +130.8 298 7.7201 +130.85 278 7.4565 +130.9 287 7.5763 +130.95 280 7.4833 +131 268 7.3212 +131.05 281 7.4967 +131.1 272 7.3756 +131.15 287 7.5763 +131.2 282 7.51 +131.25 284 7.5366 +131.3 300 7.746 +131.35 303 7.7846 +131.4 309 7.8613 +131.45 322 8.025 +131.5 340 8.2462 +131.55 347 8.3307 +131.6 370 8.6023 +131.65 401 8.9554 +131.7 420 9.1652 +131.75 451 9.4974 +131.8 491 9.9096 +131.85 508 10.0797 +131.9 530 10.2956 +131.95 531 10.3053 +132 522 10.2176 +132.05 484 11 +132.1 468 10.8167 +132.15 427 10.332 +132.2 379 9.734 +132.25 365 9.5525 +132.3 344 9.2736 +132.35 321 8.9582 +132.4 294 8.5732 +132.45 291 8.5294 +132.5 284 8.4261 +132.55 264 8.124 +132.6 281 8.3815 +132.65 261 8.0777 +132.7 256 8 +132.75 261 8.0777 +132.8 266 8.1548 +132.85 264 8.124 +132.9 258 8.0312 +132.95 262 8.0932 +133 250 7.9057 +133.05 261 8.0777 +133.1 257 8.0156 +133.15 253 7.953 +133.2 247 7.8581 +133.25 259 8.0467 +133.3 259 8.0467 +133.35 256 8 +133.4 253 7.953 +133.45 256 8 +133.5 257 8.0156 +133.55 261 8.0777 +133.6 246 7.8422 +133.65 247 7.8581 +133.7 250 7.9057 +133.75 270 8.2158 +133.8 254 7.9687 +133.85 245 7.8262 +133.9 254 7.9687 +133.95 274 8.2765 +134 272 8.2462 +134.05 253 7.953 +134.1 260 8.0623 +134.15 272 8.2462 +134.2 265 8.1394 +134.25 267 8.1701 +134.3 276 8.3066 +134.35 280 8.3666 +134.4 289 8.5 +134.45 318 8.9163 +134.5 331 9.0967 +134.55 366 9.5656 +134.6 386 9.8234 +134.65 426 10.3199 +134.7 461 10.7355 +134.75 495 11.1243 +134.8 532 11.5326 +134.85 591 12.1552 +134.9 627 12.52 +134.95 616 12.4097 +135 634 12.5897 +135.05 668 12.9228 +135.1 645 12.6984 +135.15 620 12.4499 +135.2 607 12.3187 +135.25 560 11.8322 +135.3 518 11.3798 +135.35 470 10.8397 +135.4 445 10.5475 +135.45 398 9.975 +135.5 376 9.6954 +135.55 336 9.1652 +135.6 325 9.0139 +135.65 301 8.6747 +135.7 303 8.7034 +135.75 275 8.2916 +135.8 273 8.2614 +135.85 288 8.4853 +135.9 278 8.3367 +135.95 274 8.2765 +136 273 8.2614 +136.05 260 8.0623 +136.1 268 8.1854 +136.15 276 8.3066 +136.2 276 8.3066 +136.25 294 8.5732 +136.3 293 8.5586 +136.35 277 8.3217 +136.4 292 8.544 +136.45 284 8.4261 +136.5 273 8.2614 +136.55 291 8.5294 +136.6 287 8.4705 +136.65 303 8.7034 +136.7 306 8.7464 +136.75 315 8.8741 +136.8 333 9.1241 +136.85 367 9.5786 +136.9 387 9.8362 +136.95 404 10.0499 +137 440 10.4881 +137.05 480 10.9545 +137.1 533 11.5434 +137.15 601 12.2577 +137.2 620 12.4499 +137.25 647 12.7181 +137.3 663 12.8744 +137.35 652 12.7671 +137.4 665 12.8938 +137.45 630 12.5499 +137.5 628 12.53 +137.55 577 12.0104 +137.6 520 11.4018 +137.65 472 10.8628 +137.7 453 10.6419 +137.75 413 10.1612 +137.8 412 10.1489 +137.85 396 9.9499 +137.9 361 10.9697 +137.95 370 11.1056 +138 402 11.5758 +138.05 389 11.3871 +138.1 423 11.8743 +138.15 452 12.2746 +138.2 469 12.5033 +138.25 498 12.8841 +138.3 535 13.3541 +138.35 538 13.3915 +138.4 564 13.7113 +138.45 572 13.8082 +138.5 585 13.9642 +138.55 574 13.8323 +138.6 543 13.4536 +138.65 495 12.8452 +138.7 484 12.7017 +138.75 460 12.3828 +138.8 428 11.9443 +138.85 375 11.1803 +138.9 341 10.6615 +138.95 340 10.6458 +139 312 10.198 +139.05 309 10.1489 +139.1 288 9.798 +139.15 271 9.5044 +139.2 273 9.5394 +139.25 267 9.434 +139.3 255 9.2195 +139.35 266 9.4163 +139.4 261 9.3274 +139.45 269 9.4692 +139.5 257 9.2556 +139.55 249 9.1104 +139.6 245 9.037 +139.65 259 9.2916 +139.7 258 9.2736 +139.75 259 9.2916 +139.8 268 9.4516 +139.85 279 9.6437 +139.9 256 9.2376 +139.95 259 9.2916 +140 287 9.7809 +140.05 269 9.4692 +140.1 281 9.6782 +140.15 268 9.4516 +140.2 277 9.609 +140.25 278 9.6264 +140.3 287 9.7809 +140.35 277 9.609 +140.4 285 9.7468 +140.45 284 9.7297 +140.5 278 9.6264 +140.55 288 9.798 +140.6 279 9.6437 +140.65 287 9.7809 +140.7 289 9.815 +140.75 308 10.1325 +140.8 308 10.1325 +140.85 288 9.798 +140.9 302 10.0333 +140.95 295 9.9163 +141 301 10.0167 +141.05 303 10.0499 +141.1 294 9.8995 +141.15 287 9.7809 +141.2 279 9.6437 +141.25 279 9.6437 +141.3 276 9.5917 +141.35 275 9.5743 +141.4 264 9.3808 +141.45 274 9.5568 +141.5 269 9.4692 +141.55 269 9.4692 +141.6 268 9.4516 +141.65 261 9.3274 +141.7 256 9.2376 +141.75 284 9.7297 +141.8 279 9.6437 +141.85 280 9.6609 +141.9 296 9.9331 +141.95 297 9.9499 +142 296 9.9331 +142.05 308 10.1325 +142.1 301 10.0167 +142.15 300 10 +142.2 297 9.9499 +142.25 300 10 +142.3 289 9.815 +142.35 290 9.8319 +142.4 274 9.5568 +142.45 275 9.5743 +142.5 264 9.3808 +142.55 262 9.3452 +142.6 249 9.1104 +142.65 251 9.1469 +142.7 248 9.0921 +142.75 252 9.1652 +142.8 249 9.1104 +142.85 249 9.1104 +142.9 262 9.3452 +142.95 251 9.1469 +143 239 8.9256 +143.05 263 9.363 +143.1 265 9.3986 +143.15 240 8.9443 +143.2 236 8.8694 +143.25 250 9.1287 +143.3 248 9.0921 +143.35 248 9.0921 +143.4 254 9.2014 +143.45 262 9.3452 +143.5 252 9.1652 +143.55 246 9.0554 +143.6 250 9.1287 +143.65 251 9.1469 +143.7 247 9.0738 +143.75 248 9.0921 +143.8 254 9.2014 +143.85 236 8.8694 +143.9 251 9.1469 +143.95 247 9.0738 +144 254 9.2014 +144.05 248 9.0921 +144.1 259 11.3798 +144.15 259 11.3798 +144.2 274 11.7047 +144.25 263 11.4673 +144.3 287 11.9791 +144.35 283 11.8954 +144.4 281 11.8533 +144.45 296 12.1655 +144.5 292 12.083 +144.55 323 12.7083 +144.6 330 12.8452 +144.65 339 13.0192 +144.7 358 13.3791 +144.75 349 13.2098 +144.8 365 13.5093 +144.85 399 14.1244 +144.9 406 14.2478 +144.95 428 14.6287 +145 413 14.3701 +145.05 439 14.8155 +145.1 418 14.4568 +145.15 425 14.5774 +145.2 411 14.3353 +145.25 417 14.4395 +145.3 391 13.9821 +145.35 393 14.0178 +145.4 386 13.8924 +145.45 359 13.3978 +145.5 381 13.8022 +145.55 363 13.4722 +145.6 364 13.4907 +145.65 375 13.6931 +145.7 379 13.7659 +145.75 392 14 +145.8 402 14.1774 +145.85 436 14.7648 +145.9 451 15.0167 +145.95 463 15.2151 +146 452 15.0333 +146.05 449 14.9833 +146.1 479 15.4758 +146.15 485 15.5724 +146.2 484 15.5563 +146.25 472 15.3623 +146.3 508 15.9374 +146.35 518 16.0935 +146.4 523 16.171 +146.45 561 16.7481 +146.5 559 16.7183 +146.55 573 16.9263 +146.6 545 16.5076 +146.65 561 16.7481 +146.7 568 16.8523 +146.75 573 16.9263 +146.8 562 16.7631 +146.85 573 16.9263 +146.9 565 16.8077 +146.95 499 15.7956 +147 496 15.748 +147.05 488 15.6205 +147.1 449 14.9833 +147.15 442 14.8661 +147.2 391 13.9821 +147.25 387 13.9104 +147.3 390 13.9642 +147.35 359 13.3978 +147.4 338 13 +147.45 321 12.6689 +147.5 322 12.6886 +147.55 327 12.7867 +147.6 338 13 +147.65 306 12.3693 +147.7 290 12.0416 +147.75 320 12.6491 +147.8 308 12.4097 +147.85 300 12.2474 +147.9 307 12.3895 +147.95 306 12.3693 +148 314 12.53 +148.05 318 12.6095 +148.1 298 12.2066 +148.15 313 12.51 +148.2 303 12.3085 +148.25 302 12.2882 +148.3 333 12.9035 +148.35 285 11.9373 +148.4 312 12.49 +148.45 312 12.49 +148.5 285 11.9373 +148.55 290 12.0416 +148.6 288 12 +148.65 294 12.1244 +148.7 314 12.53 +148.75 300 12.2474 +148.8 306 12.3693 +148.85 293 12.1037 +148.9 299 12.227 +148.95 328 12.8062 +149 325 12.7475 +149.05 328 12.8062 +149.1 317 12.5897 +149.15 292 12.083 +149.2 321 12.6689 +149.25 291 12.0623 +149.3 302 12.2882 +149.35 291 12.0623 +149.4 297 12.1861 +149.45 301 12.2678 +149.5 270 11.6189 +149.55 262 11.4455 +149.6 277 11.7686 +149.65 258 11.3578 +149.7 258 11.3578 +149.75 243 11.0227 +149.8 269 11.5974 +149.85 257 11.3358 +149.9 257 11.3358 +149.95 240 10.9545 +150 282 16.7929 +150.05 245 15.6525 +150.1 243 15.5885 +150.15 260 16.1245 +150.2 255 15.9687 +150.25 275 16.5831 +150.3 255 15.9687 +150.35 270 16.4317 +150.4 286 16.9115 +150.45 271 16.4621 +150.5 258 16.0624 +150.55 309 17.5784 +150.6 299 17.2916 +150.65 297 17.2337 +150.7 304 17.4356 +150.75 319 17.8606 +150.8 314 17.72 +150.85 290 17.0294 +150.9 338 18.3848 +150.95 316 17.7764 +151 341 18.4662 +151.05 384 19.5959 +151.1 360 18.9737 +151.15 367 19.1572 +151.2 383 19.5704 +151.25 366 19.1311 +151.3 369 19.2094 +151.35 363 19.0526 +151.4 332 18.2209 +151.45 325 18.0278 +151.5 334 18.2757 +151.55 373 19.3132 +151.6 336 18.3303 +151.65 313 17.6918 +151.7 339 18.412 +151.75 325 18.0278 +151.8 307 17.5214 +151.85 277 16.6433 +151.9 286 16.9115 +151.95 305 17.4642 +152 277 16.6433 +152.05 262 16.1864 +152.1 262 16.1864 +152.15 241 15.5242 +152.2 251 15.843 +152.25 260 16.1245 +152.3 245 15.6525 +152.35 249 15.7797 +152.4 260 16.1245 +152.45 256 16 +152.5 242 15.5563 +152.55 258 16.0624 +152.6 248 15.748 +152.65 235 15.3297 +152.7 245 15.6525 +152.75 248 15.748 +152.8 281 16.7631 +152.85 228 15.0997 +152.9 230 15.1658 +152.95 212 14.5602 +153 237 15.3948 +153.05 244 15.6205 +153.1 231 15.1987 +153.15 266 16.3095 +153.2 231 15.1987 +153.25 234 15.2971 +153.3 247 15.7162 +153.35 264 16.2481 +153.4 247 15.7162 +153.45 261 16.1555 +153.5 223 14.9332 +153.55 242 15.5563 +153.6 271 16.4621 +153.65 247 15.7162 +153.7 249 15.7797 +153.75 251 15.843 +153.8 232 15.2315 +153.85 225 15 +153.9 255 15.9687 +153.95 209 14.4568 +154 266 16.3095 +154.05 255 15.9687 +154.1 273 16.5227 +154.15 250 15.8114 +154.2 234 15.2971 +154.25 257 16.0312 +154.3 250 15.8114 +154.35 270 16.4317 +154.4 262 16.1864 +154.45 281 16.7631 +154.5 257 16.0312 +154.55 260 16.1245 +154.6 257 16.0312 +154.65 242 15.5563 +154.7 255 15.9687 +154.75 250 15.8114 +154.8 274 16.5529 +154.85 288 16.9706 +154.9 275 16.5831 +154.95 277 16.6433 +155 278 16.6733 +155.05 264 16.2481 +155.1 298 17.2627 +155.15 312 17.6635 +155.2 282 16.7929 +155.25 314 17.72 +155.3 341 18.4662 +155.35 314 17.72 +155.4 295 17.1756 +155.45 326 18.0555 diff --git a/examples/joint-fit_single-dataset.py b/examples/joint-fit_single-dataset.py new file mode 100644 index 00000000..7eef5041 --- /dev/null +++ b/examples/joint-fit_single-dataset.py @@ -0,0 +1,77 @@ +""" +Joint Refinement Example (Advanced API) + +This example demonstrates a more flexible and advanced usage of the EasyDiffraction +library by explicitly creating and configuring some objects. It is more suitable for +users comfortable with Python programming and those interested in custom workflows. +""" +from numpy.testing import assert_almost_equal + +from easydiffraction import ( + Project, + SampleModel, + Experiment +) + +# Create and configure sample model + +model = SampleModel("pbso4") +model.space_group.name.value = "P n m a" +model.cell.length_a.value = 8.4693 +model.cell.length_b.value = 5.3910 +model.cell.length_c.value = 6.9506 +model.atom_sites.add("Pb", "Pb", 0.1876, 0.25, 0.167, b_iso=1.37) +model.atom_sites.add("S", "S", 0.0654, 0.25, 0.684, b_iso=0.3777) +model.atom_sites.add("O1", "O", 0.9082, 0.25, 0.5954, b_iso=1.9764) +model.atom_sites.add("O2", "O", 0.1935, 0.25, 0.5432, b_iso=1.4456) +model.atom_sites.add("O3", "O", 0.0811, 0.0272, 0.8086, b_iso=1.2822) + +# Create and configure experiments + +# Experiment: Neutron powder diffraction (full dataset) +expt = Experiment(id="npd", radiation_probe="neutron", data_path="examples/data/pbso4_powder_neutron_cw_full.dat") +expt.instrument.setup_wavelength = 1.91 +expt.instrument.calib_twotheta_offset = -0.1406 +expt.peak.broad_gauss_u = 0.139 +expt.peak.broad_gauss_v = -0.4124 +expt.peak.broad_gauss_w = 0.386 +expt.peak.broad_lorentz_x = 0 +expt.peak.broad_lorentz_y = 0.0878 +expt.linked_phases.add("pbso4", scale=1.46) +expt.background_type = "line-segment" +for x, y in [ + (11.0, 206.1624), + (15.0, 194.75), + (20.0, 194.505), + (30.0, 188.4375), + (50.0, 207.7633), + (70.0, 201.7002), + (120.0, 244.4525), + (153.0, 226.0595), +]: + expt.background.add(x, y) + +# Create project and add sample model and experiments +project = Project() +project.sample_models.add(model) +project.experiments.add(expt) + +# Set calculator, minimizer and refinement strategy +project.analysis.current_calculator = "cryspy" +project.analysis.current_minimizer = "lmfit (leastsq)" +project.analysis.fit_mode = 'joint' +# project.analysis.joint_fit.add("expt1", weight=0.4) # Default weight could be 0.5 +# project.analysis.joint_fit.add("expt2", weight=0.6) # Default weight could be 0.5 +project.analysis.joint_fit.setdefault("npd1", 0.5) # Default weight could be 0.5 +project.analysis.joint_fit.setdefault("npd2", 0.5) # Default weight could be 0.5 + +# Define free parameters +model.cell.length_a.free = True +model.cell.length_b.free = True +model.cell.length_c.free = True + +# Run refinement +project.analysis.fit() + +# Assert results +assert_almost_equal(project.analysis.fit_results.reduced_chi_square, 4.66, decimal=1) diff --git a/examples/joint-fit_split-single-dataset.py b/examples/joint-fit_split-single-dataset.py new file mode 100644 index 00000000..89799a37 --- /dev/null +++ b/examples/joint-fit_split-single-dataset.py @@ -0,0 +1,104 @@ +""" +Joint Refinement Example (Advanced API) + +This example demonstrates a more flexible and advanced usage of the EasyDiffraction +library by explicitly creating and configuring some objects. It is more suitable for +users comfortable with Python programming and those interested in custom workflows. +""" +from numpy.testing import assert_almost_equal + +from easydiffraction import ( + Project, + SampleModel, + Experiment +) + +# Create and configure sample model + +model = SampleModel("pbso4") +model.space_group.name.value = "P n m a" +model.cell.length_a.value = 8.4693 +model.cell.length_b.value = 5.3910 +model.cell.length_c.value = 6.9506 +model.atom_sites.add("Pb", "Pb", 0.1876, 0.25, 0.167, b_iso=1.37) +model.atom_sites.add("S", "S", 0.0654, 0.25, 0.684, b_iso=0.3777) +model.atom_sites.add("O1", "O", 0.9082, 0.25, 0.5954, b_iso=1.9764) +model.atom_sites.add("O2", "O", 0.1935, 0.25, 0.5432, b_iso=1.4456) +model.atom_sites.add("O3", "O", 0.0811, 0.0272, 0.8086, b_iso=1.2822) + +# Create and configure experiments + +# Experiment 1: Neutron powder diffraction (first half of the dataset) +expt1 = Experiment(id="npd1", radiation_probe="neutron", data_path="examples/data/pbso4_powder_neutron_cw_first-half.dat") +expt1.instrument.setup_wavelength = 1.91 +expt1.instrument.calib_twotheta_offset = -0.1406 +expt1.peak.broad_gauss_u = 0.139 +expt1.peak.broad_gauss_v = -0.4124 +expt1.peak.broad_gauss_w = 0.386 +expt1.peak.broad_lorentz_x = 0 +expt1.peak.broad_lorentz_y = 0.0878 +expt1.linked_phases.add("pbso4", scale=1.46) +expt1.background_type = "line-segment" +for x, y in [ + (11.0, 206.1624), + (15.0, 194.75), + (20.0, 194.505), + (30.0, 188.4375), + (50.0, 207.7633), + (70.0, 201.7002), + (120.0, 244.4525), + (153.0, 226.0595), +]: + expt1.background.add(x, y) + +# Experiment 2: Neutron powder diffraction (second half of the dataset) +expt2 = Experiment(id="npd2", radiation_probe="neutron", data_path="examples/data/pbso4_powder_neutron_cw_second-half.dat") +expt2.instrument.setup_wavelength = 1.91 +expt2.instrument.calib_twotheta_offset = -0.1406 +expt2.peak.broad_gauss_u = 0.139 +expt2.peak.broad_gauss_v = -0.4124 +expt2.peak.broad_gauss_w = 0.386 +expt2.peak.broad_lorentz_x = 0 +expt2.peak.broad_lorentz_y = 0.0878 +expt2.linked_phases.add("pbso4", scale=1.46) +expt2.background_type = "line-segment" +for x, y in [ + (11.0, 206.1624), + (15.0, 194.75), + (20.0, 194.505), + (30.0, 188.4375), + (50.0, 207.7633), + (70.0, 201.7002), + (120.0, 244.4525), + (153.0, 226.0595), +]: + expt2.background.add(x, y) + +# Create project and add sample model and experiments +project = Project() +project.sample_models.add(model) +project.experiments.add(expt1) +project.experiments.add(expt2) + +# Set calculator, minimizer and refinement strategy +project.analysis.current_calculator = "cryspy" +project.analysis.current_minimizer = "lmfit (leastsq)" +project.analysis.fit_mode = 'joint' +# project.analysis.joint_fit.add("expt1", weight=0.4) # Default weight could be 0.5 +# project.analysis.joint_fit.add("expt2", weight=0.6) # Default weight could be 0.5 +project.analysis.joint_fit.setdefault("npd1", 0.5) # Default weight could be 0.5 +project.analysis.joint_fit.setdefault("npd2", 0.5) # Default weight could be 0.5 + +# Define free parameters +model.cell.length_a.free = True +model.cell.length_b.free = True +model.cell.length_c.free = True +#expt1.linked_phases["pbso4"].scale.free = True +#expt2.linked_phases["pbso4"].scale.free = True + +# Run refinement +project.analysis.fit() + +# Assert results +assert_almost_equal(project.analysis.fit_results.reduced_chi_square, 4.66, decimal=1) + From cf13aaf208232bb33dcf6ec25d8dc07b3abaa7c7 Mon Sep 17 00:00:00 2001 From: Eric Lindgren Date: Mon, 7 Apr 2025 11:53:29 +0200 Subject: [PATCH 09/14] increase expected chi_squred to expected value when fitting multiple experiments --- src/easydiffraction/analysis/analysis.py | 1 - src/easydiffraction/analysis/minimization.py | 6 +++++- tests/functional_test/fitting/test_fitting.py | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/easydiffraction/analysis/analysis.py b/src/easydiffraction/analysis/analysis.py index 89833955..0ccfd13a 100644 --- a/src/easydiffraction/analysis/analysis.py +++ b/src/easydiffraction/analysis/analysis.py @@ -217,7 +217,6 @@ def fit(self): if self.fit_mode == 'joint': print(paragraph(f"Using all experiments 🔬 {experiment_ids} for '{self.fit_mode}' fitting")) - print(self.joint_fit) self.fitter.fit(sample_models, experiments, calculator, weights=self.joint_fit) elif self.fit_mode == 'single': for expt_id in list(experiments._items.keys()): diff --git a/src/easydiffraction/analysis/minimization.py b/src/easydiffraction/analysis/minimization.py index be2d4b4b..b3ee34e0 100644 --- a/src/easydiffraction/analysis/minimization.py +++ b/src/easydiffraction/analysis/minimization.py @@ -61,7 +61,11 @@ def _residual_function(self, engine_params, parameters, sample_models, experimen # Prepare weights for joint fitting N_experiments = len(experiments.ids) _weights = np.ones(N_experiments) if weights is None else np.array([weights.get(id, 1.0) for id in experiments.ids], dtype=np.float64) - _weights /= np.sum(_weights) # Normalize weights so they sum to 1 + # Normalize weights so they sum to N_experiments + # We should obtain the same reduced chi_squared when a single dataset is split into + # two parts and fit together. If weights sum to one, then reduced chi_squared + # will be half as large as expected. + _weights *= N_experiments / np.sum(_weights) residuals = [] for (expt_id, experiment), weight in zip(experiments._items.items(), _weights): diff --git a/tests/functional_test/fitting/test_fitting.py b/tests/functional_test/fitting/test_fitting.py index 121be94c..ee8d8719 100644 --- a/tests/functional_test/fitting/test_fitting.py +++ b/tests/functional_test/fitting/test_fitting.py @@ -90,7 +90,7 @@ def test_joint_fit_neutron_xray_pd_cwl_pbso4() -> None: project.analysis.fit() # Assert results - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, 7.2, decimal=1) + assert_almost_equal(project.analysis.fit_results.reduced_chi_square, 14.4, decimal=1) if __name__ == '__main__': From aa8393248fd1165a783b0b9ac3562ae6645ef4d0 Mon Sep 17 00:00:00 2001 From: Eric Lindgren Date: Mon, 7 Apr 2025 14:17:36 +0200 Subject: [PATCH 10/14] make better use of ids property --- src/easydiffraction/analysis/analysis.py | 5 +++-- src/easydiffraction/experiments/experiments.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/easydiffraction/analysis/analysis.py b/src/easydiffraction/analysis/analysis.py index f7a54236..e8ed732e 100644 --- a/src/easydiffraction/analysis/analysis.py +++ b/src/easydiffraction/analysis/analysis.py @@ -119,7 +119,8 @@ def fit_mode(self, strategy): raise ValueError("Fit mode must be either 'single' or 'joint'") self._fit_mode = strategy if strategy == 'joint': - self.joint_fit = { id: 0.5 for id in self.project.experiments.ids } # Pre-populate with all experiments + if self.joint_fit is None: + self.joint_fit = { id: 0.5 for id in self.project.experiments.ids } # Pre-populate with all experiments print(paragraph("Current fit mode changed to")) print(self._fit_mode) @@ -214,7 +215,7 @@ def fit(self): return # Run the fitting process - experiment_ids = list(experiments._items.keys()) + experiment_ids = experiments.ids if self.fit_mode == 'joint': print(paragraph(f"Using all experiments 🔬 {experiment_ids} for '{self.fit_mode}' fitting")) diff --git a/src/easydiffraction/experiments/experiments.py b/src/easydiffraction/experiments/experiments.py index 38a5358d..8d7aba2a 100644 --- a/src/easydiffraction/experiments/experiments.py +++ b/src/easydiffraction/experiments/experiments.py @@ -88,7 +88,7 @@ def remove(self, experiment_id): def show_ids(self): print(paragraph("Defined experiments" + " 🔬")) - print(list(self._experiments.keys())) + print(self.ids) @property def ids(self): From 60755810599467d218c43cf505bde25af972cd2f Mon Sep 17 00:00:00 2001 From: Eric Lindgren Date: Mon, 7 Apr 2025 15:06:52 +0200 Subject: [PATCH 11/14] use hasattr to check for existance of ids --- src/easydiffraction/analysis/analysis.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/easydiffraction/analysis/analysis.py b/src/easydiffraction/analysis/analysis.py index e8ed732e..2f429f88 100644 --- a/src/easydiffraction/analysis/analysis.py +++ b/src/easydiffraction/analysis/analysis.py @@ -119,7 +119,7 @@ def fit_mode(self, strategy): raise ValueError("Fit mode must be either 'single' or 'joint'") self._fit_mode = strategy if strategy == 'joint': - if self.joint_fit is None: + if not hasattr(self, 'joint_fit'): self.joint_fit = { id: 0.5 for id in self.project.experiments.ids } # Pre-populate with all experiments print(paragraph("Current fit mode changed to")) print(self._fit_mode) From 1ebc89337a7a7e34912b107ca8ce13b7619036e1 Mon Sep 17 00:00:00 2001 From: Andrew Sazonov Date: Mon, 7 Apr 2025 16:09:15 +0200 Subject: [PATCH 12/14] Updates data paths --- examples/joint-refinement_weighting.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/joint-refinement_weighting.py b/examples/joint-refinement_weighting.py index 0178a54b..15c76cf1 100644 --- a/examples/joint-refinement_weighting.py +++ b/examples/joint-refinement_weighting.py @@ -28,7 +28,7 @@ # Create and configure experiments # Experiment 1: Neutron powder diffraction -expt1 = Experiment(id="npd", radiation_probe="neutron", data_path="examples/data/pbso4_powder_neutron_cw.dat") +expt1 = Experiment(id="npd", radiation_probe="neutron", data_path="examples/data/d1a_pbso4.dat") expt1.instrument.setup_wavelength = 1.91 expt1.instrument.calib_twotheta_offset = -0.1406 expt1.peak.broad_gauss_u = 0.139 @@ -51,7 +51,7 @@ expt1.background.add(x, y) # Experiment 2: X-ray powder diffraction -expt2 = Experiment(id="xrd", radiation_probe="xray", data_path="examples/data/pbso4_powder_xray.dat") +expt2 = Experiment(id="xrd", radiation_probe="xray", data_path="examples/data/lab_pbso4.dat") expt2.instrument.setup_wavelength = 1.540567 expt2.instrument.calib_twotheta_offset = -0.05181 expt2.peak.broad_gauss_u = 0.304138 From 7962ca76ecb0191c717cda726aa35cdb523d40db Mon Sep 17 00:00:00 2001 From: Eric Lindgren Date: Tue, 8 Apr 2025 15:47:06 +0200 Subject: [PATCH 13/14] fix issue where joint_fit was not updated because of setdefault --- examples/joint-fit_split-single-dataset.py | 4 ++-- src/easydiffraction/analysis/analysis.py | 1 + src/easydiffraction/analysis/minimization.py | 2 +- tests/functional_tests/fitting/test_joint-fit.py | 10 +++++++++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/examples/joint-fit_split-single-dataset.py b/examples/joint-fit_split-single-dataset.py index 89799a37..18485f71 100644 --- a/examples/joint-fit_split-single-dataset.py +++ b/examples/joint-fit_split-single-dataset.py @@ -86,8 +86,8 @@ project.analysis.fit_mode = 'joint' # project.analysis.joint_fit.add("expt1", weight=0.4) # Default weight could be 0.5 # project.analysis.joint_fit.add("expt2", weight=0.6) # Default weight could be 0.5 -project.analysis.joint_fit.setdefault("npd1", 0.5) # Default weight could be 0.5 -project.analysis.joint_fit.setdefault("npd2", 0.5) # Default weight could be 0.5 +project.analysis.joint_fit["npd1"] = 0.5 # Default weight could be 0.5 +project.analysis.joint_fit["npd2"] = 0.5 # Default weight could be 0.5 # Define free parameters model.cell.length_a.free = True diff --git a/src/easydiffraction/analysis/analysis.py b/src/easydiffraction/analysis/analysis.py index 2f429f88..2e396d9a 100644 --- a/src/easydiffraction/analysis/analysis.py +++ b/src/easydiffraction/analysis/analysis.py @@ -120,6 +120,7 @@ def fit_mode(self, strategy): self._fit_mode = strategy if strategy == 'joint': if not hasattr(self, 'joint_fit'): + print("resetting joint_fit") self.joint_fit = { id: 0.5 for id in self.project.experiments.ids } # Pre-populate with all experiments print(paragraph("Current fit mode changed to")) print(self._fit_mode) diff --git a/src/easydiffraction/analysis/minimization.py b/src/easydiffraction/analysis/minimization.py index b8d44998..6dadde99 100644 --- a/src/easydiffraction/analysis/minimization.py +++ b/src/easydiffraction/analysis/minimization.py @@ -57,7 +57,7 @@ def _residual_function(self, engine_params, parameters, sample_models, experimen """ # Sync parameters back to objects self.minimizer._sync_result_to_parameters(parameters, engine_params) - + # Prepare weights for joint fitting N_experiments = len(experiments.ids) _weights = np.ones(N_experiments) if weights is None else np.array([weights.get(id, 1.0) for id in experiments.ids], dtype=np.float64) diff --git a/tests/functional_tests/fitting/test_joint-fit.py b/tests/functional_tests/fitting/test_joint-fit.py index 81f2f265..2e7b6f54 100644 --- a/tests/functional_tests/fitting/test_joint-fit.py +++ b/tests/functional_tests/fitting/test_joint-fit.py @@ -1,4 +1,5 @@ from numpy.testing import assert_almost_equal +from numpy import isclose from easydiffraction import ( Project, @@ -92,8 +93,15 @@ def test_joint_fit_neutron_xray_pd_cwl_pbso4() -> None: project.analysis.show_meas_vs_calc_chart(expt_id="xrd", x_min=26, x_max=28, show_residual=True) # Compare fit quality - assert_almost_equal(project.analysis.fit_results.reduced_chi_square, 14.4, decimal=1) + chi_squared = project.analysis.fit_results.reduced_chi_square + assert_almost_equal(chi_squared, 14.4, decimal=1) + # Results should be different if weights are changed + project.analysis.joint_fit['xrd'] = 0.9 + project.analysis.joint_fit['npd'] = 0.1 + project.analysis.fit() + assert not isclose(chi_squared, 14.4) + if __name__ == '__main__': test_joint_fit_neutron_xray_pd_cwl_pbso4() From 67025514b7214d66d2e0074e970fe7211b4a19f1 Mon Sep 17 00:00:00 2001 From: Eric Lindgren Date: Tue, 8 Apr 2025 16:23:36 +0200 Subject: [PATCH 14/14] implement JointFitExperiments as a container for experiments and associated weights --- examples/joint-fit_split-single-dataset.py | 5 ++-- src/easydiffraction/analysis/analysis.py | 11 ++++--- .../analysis/joint_fit_experiments.py | 29 +++++++++++++++++++ src/easydiffraction/analysis/minimization.py | 2 +- .../fitting/test_joint-fit.py | 8 ++--- 5 files changed, 44 insertions(+), 11 deletions(-) create mode 100644 src/easydiffraction/analysis/joint_fit_experiments.py diff --git a/examples/joint-fit_split-single-dataset.py b/examples/joint-fit_split-single-dataset.py index 18485f71..57eda27d 100644 --- a/examples/joint-fit_split-single-dataset.py +++ b/examples/joint-fit_split-single-dataset.py @@ -86,8 +86,9 @@ project.analysis.fit_mode = 'joint' # project.analysis.joint_fit.add("expt1", weight=0.4) # Default weight could be 0.5 # project.analysis.joint_fit.add("expt2", weight=0.6) # Default weight could be 0.5 -project.analysis.joint_fit["npd1"] = 0.5 # Default weight could be 0.5 -project.analysis.joint_fit["npd2"] = 0.5 # Default weight could be 0.5 +print(project.analysis.joint_fit_experiments["npd1"]) +project.analysis.joint_fit_experiments["npd1"] = 0.5 # Default weight could be 0.5 +project.analysis.joint_fit_experiments["npd2"] = 0.5 # Default weight could be 0.5 # Define free parameters model.cell.length_a.free = True diff --git a/src/easydiffraction/analysis/analysis.py b/src/easydiffraction/analysis/analysis.py index 2e396d9a..99f38e18 100644 --- a/src/easydiffraction/analysis/analysis.py +++ b/src/easydiffraction/analysis/analysis.py @@ -8,6 +8,7 @@ from .calculators.calculator_factory import CalculatorFactory from .minimization import DiffractionMinimizer from .minimizers.minimizer_factory import MinimizerFactory +from .joint_fit_experiments import JointFitExperiments class Analysis: @@ -119,9 +120,11 @@ def fit_mode(self, strategy): raise ValueError("Fit mode must be either 'single' or 'joint'") self._fit_mode = strategy if strategy == 'joint': - if not hasattr(self, 'joint_fit'): - print("resetting joint_fit") - self.joint_fit = { id: 0.5 for id in self.project.experiments.ids } # Pre-populate with all experiments + if not hasattr(self, 'joint_fit_experiments'): + # Pre-populate all experiments with weight 0.5 + self.joint_fit_experiments = JointFitExperiments() + for id in self.project.experiments.ids: + self.joint_fit_experiments.add(id, weight=0.5) print(paragraph("Current fit mode changed to")) print(self._fit_mode) @@ -220,7 +223,7 @@ def fit(self): if self.fit_mode == 'joint': print(paragraph(f"Using all experiments 🔬 {experiment_ids} for '{self.fit_mode}' fitting")) - self.fitter.fit(sample_models, experiments, calculator, weights=self.joint_fit) + self.fitter.fit(sample_models, experiments, calculator, weights=self.joint_fit_experiments) elif self.fit_mode == 'single': for expt_id in list(experiments._items.keys()): print(paragraph(f"Using experiment 🔬 '{expt_id}' for '{self.fit_mode}' fitting")) diff --git a/src/easydiffraction/analysis/joint_fit_experiments.py b/src/easydiffraction/analysis/joint_fit_experiments.py new file mode 100644 index 00000000..06a3a1c0 --- /dev/null +++ b/src/easydiffraction/analysis/joint_fit_experiments.py @@ -0,0 +1,29 @@ +from easydiffraction.core.collection import Collection +from easydiffraction.core.parameter import Descriptor + +class JointFitExperiments(Collection): + """ + Collection manager for experiments that are fitted together + in a `joint` fit. + """ + def __init__(self): + super().__init__() + + def add(self, id: str, weight: float): + """Add an experiment with it's associated weight""" + # Save both id and weight as immutable Descriptors + self.id = Descriptor( + value=id, + cif_name="id" + ) + self.weight = Descriptor( + value=weight, + cif_name="weight" + ) + self._items[id] = weight + + def __getitem__(self, key): + return self._items[key] + + def __setitem__(self, key, value): + self._items[key] = value diff --git a/src/easydiffraction/analysis/minimization.py b/src/easydiffraction/analysis/minimization.py index 6dadde99..90fabc01 100644 --- a/src/easydiffraction/analysis/minimization.py +++ b/src/easydiffraction/analysis/minimization.py @@ -60,7 +60,7 @@ def _residual_function(self, engine_params, parameters, sample_models, experimen # Prepare weights for joint fitting N_experiments = len(experiments.ids) - _weights = np.ones(N_experiments) if weights is None else np.array([weights.get(id, 1.0) for id in experiments.ids], dtype=np.float64) + _weights = np.ones(N_experiments) if weights is None else np.array([weights._items.get(id, 1.0) for id in experiments.ids], dtype=np.float64) # Normalize weights so they sum to N_experiments # We should obtain the same reduced chi_squared when a single dataset is split into # two parts and fit together. If weights sum to one, then reduced chi_squared diff --git a/tests/functional_tests/fitting/test_joint-fit.py b/tests/functional_tests/fitting/test_joint-fit.py index 2e7b6f54..67248177 100644 --- a/tests/functional_tests/fitting/test_joint-fit.py +++ b/tests/functional_tests/fitting/test_joint-fit.py @@ -77,8 +77,8 @@ def test_joint_fit_neutron_xray_pd_cwl_pbso4() -> None: project.analysis.current_calculator = "cryspy" project.analysis.current_minimizer = "lmfit (leastsq)" project.analysis.fit_mode = 'joint' - project.analysis.joint_fit['xrd'] = 0.3 - project.analysis.joint_fit['npd'] = 0.7 + project.analysis.joint_fit_experiments['xrd'] = 0.3 + project.analysis.joint_fit_experiments['npd'] = 0.7 # Define free parameters model.cell.length_a.free = True @@ -97,8 +97,8 @@ def test_joint_fit_neutron_xray_pd_cwl_pbso4() -> None: assert_almost_equal(chi_squared, 14.4, decimal=1) # Results should be different if weights are changed - project.analysis.joint_fit['xrd'] = 0.9 - project.analysis.joint_fit['npd'] = 0.1 + project.analysis.joint_fit_experiments['xrd'] = 0.9 + project.analysis.joint_fit_experiments['npd'] = 0.1 project.analysis.fit() assert not isclose(chi_squared, 14.4)