* Created a file selection wildcard for use in the GUI for selecting peak lists. This is used in the four user functions which read peak lists.
* Changed all *.* GUI file selection wildcards to *.
* Huge speedup for model [[CR72]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. The system test Relax_disp.test_cpmg_synthetic_cr72_full_noise_cluster changes from 7 seconds to 4.5 seconds. This is won by not checking single values in the R<sub>2eff</sub> array for math domain errors, but calculating all steps, and in one single round check for finite values. If just one non-finite value is found, the whole array is returned with a large penalty of 1e<sup>100</sup>. This makes all calculations be the fastest numpy array way.* Fix for system test test_cpmg_synthetic_dx_map_points. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}.* Critical fixes for system test Relax_disp.test_hansen_cpmg_data_missing_auto_analysis. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. It is suspected that when relax have touched boundary values which made math domain errors, the error catching have created local minima or interfered with the simplex search algorithm.* Speedup of model [[TSMFK01]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is won by not checking single values in the R<sub>2eff</sub> array for math domain errors, but calculating all steps, and in one single round check for finite values. If just one non-finite value is found, the whole array is returned with a large penalty of 1e<sup>100</sup>. This makes all calculations be the fastest numpy array way.* Huge speedup of model [[B14]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. Time test for system tests: test_baldwin_synthetic 2.626s -> 1.990s, test_baldwin_synthetic_full 18.326s -> 13.742s. This is won by not checking single values in the R<sub>2eff</sub> array for math domain errors, but calculating all steps, and in one single round check for finite values. If just one non-finite value is found, the whole array is returned with a large penalty of 1e<sup>100</sup>. This makes all calculations be the fastest numpy array way.* Speedup of model [[TP02]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. The change for running system test is: test_curve_type_r1rho_fixed_time 0.057s -> 0.049s, test_tp02_data_to_ns_r1rho_2site 10.539s -> 10.456s, test_tp02_data_to_tp02 8.608s -> 5.727s. This is won by not checking single values in the R<sub>1ρ</sub> array for math domain errors, but calculating all steps, and in one single round check for finite values. If just one non-finite value is found, the whole array is returned with a large penalty of 1e<sup>100</sup>. This makes all calculations be the fastest numpy array way.* Huge speedup for model [[TAP03]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. The change for running system test is: test_tp02_data_to_tap03 13.869s -> 7.263s. This is won by not checking single values in the R<sub>1ρ</sub> array for math domain errors, but calculating all steps, and in one single round check for finite values. If just one non-finite value is found, the whole array is returned with a large penalty of 1e<sup>100</sup>. This makes all calculations be the fastest numpy array way.* Speedup of model [[MP05]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. The change in system test is: test_tp02_data_to_mp05 10.750s -> 6.644s.* Speedup of model [[MMQ CR72]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. Change in system test: test_sprangers_data_to_mmq_CR72 9.892s -> 4.121s.* Speedup for model [[M61]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. Change in speed is: test_m61_data_to_m61 6.692s -> 3.480s.* Speedup of model [[LM63]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. Change in system test was: test_hansen_cpmg_data_auto_analysis 13.731s -> 9.971s, test_hansen_cpmg_data_auto_analysis_r2eff 13.370s -> 9.510s, test_hansen_cpmg_data_to_lm63 3.254s -> 2.080s.* Speedup of model [[IT99]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. Change in speed is: test_hansen_cpmg_data_auto_analysis 9.74s -> 8.330s, test_hansen_cpmg_data_to_it99 4.928s -> 3.138s.* Speedup of model [[DPL94]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. Change in speed is: test_dpl94_data_to_dpl94 19.412s -> 4.427s.* Math-domain catching for model [[B14]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model [[CR72]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model: [[NS CPMG 2-site expanded]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model [[CR72]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. The skipping of test when num_points > 0, is a bad implementation. If such a case should show, it is best to catch the wrong input for the calculations. This is best done with a check before running the calculations.* Math-domain catching for model [[TSMFK01]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model [[TP02]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model [[TAP03]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model [[DPL94]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.
* Math-domain catching for model [[TAP03]]. Another check for division with 0 inserted.
* Math-domain catching for model [[MP05]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model [[IT99]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Removed class object "back_calc" being updated per time point for model [[LM63]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model [[M61]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Math-domain catching for model [[MMQ CR72]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.* Align math-domain catching for model [[CR72]] with trunk implementation. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Align math-domain catching for model [[DPL94]] with trunk implementation. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Align math-domain catching for model [[IT99]] with trunk implementation. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Align math-domain catching for model [[LM63]] with trunk implementation. [https://{{gna.org/task/?task link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Align math-domain catching for model [[M61]] with trunk implementation. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Align math-domain catching for model [[MP05]] with trunk implementation. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Align math-domain catching for model [[TAP03]] with trunk implementation. [https://gna.org/task/?{{gna task link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Align math-domain catching for model [[TP02]] with trunk implementation. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Align math-domain catching for model [[TSMFK01]] with trunk implementation. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Removing unnecessary math-domain catching for model [[IT99]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. The denominator is always positive.* Align math-domain catching for model [[NS CPMG 2-site expanded]] with trunk implementation. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. The catching of errors have to be more careful.* Modified unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model [[NS CPMG 2-site expanded]]. This is to align with the current return of data in the disp_speed branch. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; p<sub>A</sub> = 1.0; k<sub>ex</sub> = 0.0; Δω = 0.0 and p<sub>A</sub> = 1.0; Δω = 0.0 and k<sub>ex</sub> = 0.0; p<sub>A</sub> = 1.0 and k<sub>ex</sub> = 0.0; Δω = 0.0, p<sub>A</sub> = 1.0, and k<sub>ex</sub> = 0.0.* Added 7 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model [[DPL94]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; p<sub>A</sub> = 1.0; k<sub>ex</sub> = 0.0; Δω = 0.0 and p<sub>A</sub> = 1.0; Δω = 0.0 and k<sub>ex</sub> = 0.0; p<sub>A</sub> = 1.0 and k<sub>ex</sub> = 0.0; Δω = 0.0, p<sub>A</sub> = 1.0, and k<sub>ex</sub> = 0.0.
* Unit test _lib/test_ns_cpmg_2site_expanded.py copied to _/test_lm63.py. They are both of CPMG type.
* Added 7 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model [[LM63]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; p<sub>A</sub> = 1.0; k<sub>ex</sub> = 0.0; Δω = 0.0 and p<sub>A</sub> = 1.0; Δω = 0.0 and k<sub>ex</sub> = 0.0; p<sub>A</sub> = 1.0 and k<sub>ex</sub> = 0.0; Δω = 0.0, p<sub>A</sub> = 1.0, and k<sub>ex</sub> = 0.0.
* Unit test _lib/_dispersion/test_ns_cpmg_2site_expanded.py copied to _lib/_dispersion/b14.py. They are both of CPMG type, and can be re-used.
* Added 7 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model [[B14]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; p<sub>A</sub> = 1.0; k<sub>ex</sub> = 0.0; Δω = 0.0 and p<sub>A</sub> = 1.0; Δω = 0.0 and k<sub>ex</sub> = 0.0; p<sub>A</sub> = 1.0 and k<sub>ex</sub> = 0.0; Δω = 0.0, p<sub>A</sub> = 1.0, and k<sub>ex</sub> = 0.0.
* Removed unnecessary math domain checking in model [[B14]]. They are slowing down the code. There is now protection for edge cases, and a last final check, before returning values. That should be sufficient.
* Unit test _lib/_dispersion/test_b14.py copied to _lib/_dispersion/test_CR72.py. They are both of CPMG type, and can be re-used.
* Copied unit test _lib/_dispersion/* to be reused for other models.
* Added 8 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model [[CR72]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; p<sub>A</sub> = 1.0; k<sub>ex</sub> = 0.0; Δω = 0.0 and p<sub>A</sub> = 1.0; Δω = 0.0 and k<sub>ex</sub> = 0.0; p<sub>A</sub> = 1.0 and k<sub>ex</sub> = 0.0; Δω = 0.0, p<sub>A</sub> = 1.0, and k<sub>ex</sub> = 0.0; k<sub>ex</sub> = 1e<sup>5</sup>.* Added the 8th unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model [[B14]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; p<sub>A</sub> = 1.0; k<sub>ex</sub> = 0.0; Δω = 0.0 and p<sub>A</sub> = 1.0; Δω = 0.0 and k<sub>ex</sub> = 0.0; p<sub>A</sub> = 1.0 and k<sub>ex</sub> = 0.0; Δω = 0.0, p<sub>A</sub> = 1.0, and k<sub>ex</sub> = 0.0; k<sub>ex</sub> = 1e<sup>5</sup>.* Added the 8th unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model [[LM63]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; p<sub>A</sub> = 1.0; k<sub>ex</sub> = 0.0; Δω = 0.0 and p<sub>A</sub> = 1.0; Δω = 0.0 and k<sub>ex</sub> = 0.0; p<sub>A</sub> = 1.0 and k<sub>ex</sub> = 0.0; Δω = 0.0, p<sub>A</sub> = 1.0, and k<sub>ex</sub> = 0.0; k<sub>ex</sub> = 1e<sup>20</sup>.
* Small fix for 8 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model 'ns cpmg_2site_expanded'. The comparison of R<sub>2eff</sub> is now divided into a special case for k<sub>ex</sub> having large values.
* Deleted unit test case for lm63 3site.
* Added 8 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model [[M61]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; p<sub>A</sub> = 1.0; k<sub>ex</sub> = 0.0; Δω = 0.0 and p<sub>A</sub> = 1.0; Δω = 0.0 and k<sub>ex</sub> = 0.0; p<sub>A</sub> = 1.0 and k<sub>ex</sub> = 0.0; Δω = 0.0, p<sub>A</sub> = 1.0, and k<sub>ex</sub> = 0.0; k<sub>ex</sub> = 1e<sup>20</sup>.* Added the 8th unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model [[DPL94]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange:* Added 8 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model [[M61b]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; p<sub>A</sub> = 1.0; k<sub>ex</sub> = 0.0; Δω = 0.0 and p<sub>A</sub> = 1.0; Δω = 0.0 and k<sub>ex</sub> = 0.0; p<sub>A</sub> = 1.0 and k<sub>ex</sub> = 0.0; Δω = 0.0, p<sub>A</sub> = 1.0, and k<sub>ex</sub> = 0.0; k<sub>ex</sub> = 1e<sup>20</sup>.* Math-domain catching for model [[M61b]]. [https://{{gna.org/task/?link|7793 |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These can be found via the --numpy-raise function to the system tests. To make the code look clean, the class object "back_calc" is no longer being updated per time point, but is updated in the relax_disp target function in one go.
* Modified script to be able to run system test Relax_disp.xxx_test_m61b_data_to_m61b.
* Added 8 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model [[IT99]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; p<sub>A</sub> = 1.0; k<sub>ex</sub> = 0.0; Δω = 0.0 and p<sub>A</sub> = 1.0; Δω = 0.0 and k<sub>ex</sub> = 0.0; p<sub>A</sub> = 1.0 and k<sub>ex</sub> = 0.0; Δω = 0.0, p<sub>A</sub> = 1.0, and k<sub>ex</sub> = 0.0; k<sub>ex</sub> = 1e<sup>19</sup>.* Added 9 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model [[MMQ CR72]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; p<sub>A</sub> = 1.0; k<sub>ex</sub> = 0.0; Δω = 0.0 and p<sub>A</sub> = 1.0; Δω = 0.0 and k<sub>ex</sub> = 0.0; p<sub>A</sub> = 1.0 and k<sub>ex</sub> = 0.0; Δω = 0.0, p<sub>A</sub> = 1.0, and k<sub>ex</sub> = 0.0; k<sub>ex</sub> = 1e<sup>5</sup>; ΔωH = 0.0.* Added 8 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model [[MP05]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?task link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; p<sub>A</sub> = 1.0; k<sub>ex</sub> = 0.0; Δω = 0.0 and p<sub>A</sub> = 1.0; Δω = 0.0 and k<sub>ex</sub> = 0.0; p<sub>A</sub> = 1.0 and k<sub>ex</sub> = 0.0; Δω = 0.0, p<sub>A</sub> = 1.0, and k<sub>ex</sub> = 0.0; k<sub>ex</sub> = 1e<sup>20</sup>.* Added 8 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model [[TAP03]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; p<sub>A</sub> = 1.0; k<sub>ex</sub> = 0.0; Δω = 0.0 and p<sub>A</sub> = 1.0; Δω = 0.0 and k<sub>ex</sub> = 0.0; p<sub>A</sub> = 1.0 and k<sub>ex</sub> = 0.0; Δω = 0.0, p<sub>A</sub> = 1.0, and k<sub>ex</sub> = 0.0; k<sub>ex</sub> = 1e<sup>20</sup>.* Added 8 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model [[TP02]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; p<sub>A</sub> = 1.0; k<sub>ex</sub> = 0.0; Δω = 0.0 and p<sub>A</sub> = 1.0; Δω = 0.0 and k<sub>ex</sub> = 0.0; p<sub>A</sub> = 1.0 and k<sub>ex</sub> = 0.0; Δω = 0.0, p<sub>A</sub> = 1.0, and k<sub>ex</sub> = 0.0; k<sub>ex</sub> = 1e<sup>20</sup>.* Added 7 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model [[TSMFK01]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; p<sub>A</sub> = 1.0; k<sub>ex</sub> = 0.0; Δω = 0.0 and p<sub>A</sub> = 1.0; Δω = 0.0 and k<sub>ex</sub> = 0.0; p<sub>A</sub> = 1.0 and k<sub>ex</sub> = 0.0; Δω = 0.0, p<sub>A</sub> = 1.0, and k<sub>ex</sub> = 0.0.
* Copied unit test test_b14.py to test_ns_cpmg_2site_3d.py.
* Added 8 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures of the model [[NS CPMG 2-site 3D]]. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; p<sub>A</sub> = 1.0; k<sub>ex</sub> = 0.0; Δω = 0.0 and p<sub>A</sub> = 1.0; Δω = 0.0 and k<sub>ex</sub> = 0.0; p<sub>A</sub> = 1.0 and k<sub>ex</sub> = 0.0; Δω = 0.0, p<sub>A</sub> = 1.0, and k<sub>ex</sub> = 0.0; k<sub>ex</sub> = 1e<sup>7</sup>.* Modified unit tests demonstrating edge cases 'no R<sub>ex</sub>' failures of the model [[TP02]]. The catching of errors for off-resonance R<sub>1ρ</sub> models was implemented wrong. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This was pointed out in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5938. This is to implement catching of math domain errors, before they occur. These tests cover all parameter value combinations which result in no exchange: Δω = 0.0; p<sub>A</sub> = 1.0; k<sub>ex</sub> = 0.0; Δω = 0.0 and p<sub>A</sub> = 1.0; Δω = 0.0 and k<sub>ex</sub> = 0.0; p<sub>A</sub> = 1.0 and k<sub>ex</sub> = 0.0; Δω = 0.0, p<sub>A</sub> = 1.0, and k<sub>ex</sub> = 0.0; k<sub>ex</sub> = 1e<sup>5</sup>.
* Critical fix for the math domain catching of model [[TP02]]. The catching of errors for off-resonance R<sub>1ρ</sub> models was implemented wrong. This was pointed out in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5938.
* Modified unit tests demonstrating edge cases 'no R<sub>ex</sub>' failures of the model [[DPL94]]. This was pointed out in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5938.
* Modified unit tests demonstrating edge cases 'no R<sub>ex</sub>' failures of the model [[MP05]]. The catching of errors for off-resonance R<sub>1ρ</sub> models was implemented wrong. This was pointed out in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5938. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur.
* Critical fix for the math domain catching of model [[MP05]]. The catching of errors for off-resonance R<sub>1ρ</sub> models was implemented wrong. This was pointed out in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5938.
* Modified unit tests demonstrating edge cases 'no R<sub>ex</sub>' failures of the model [[TAP03]]. The catching of errors for off-resonance R<sub>1ρ</sub> models was implemented wrong. This was pointed out in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5938. And post http://article.gmane.org/gmane.science.nmr.relax.devel/5944. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}.
* Critical fix for the math domain catching of model [[TAP03]]. The catching of errors for off-resonance R<sub>1ρ</sub> models was implemented wrong. This was pointed out in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5938. And post http://article.gmane.org/gmane.science.nmr.relax.devel/5944.
* Modified unit tests demonstrating edge cases 'no R<sub>ex</sub>' failures of the model [[MMQ CR72]]. This was pointed out in post http://article.gmane.org/gmane.science.nmr.relax.devel/5940. And in post http://article.gmane.org/gmane.science.nmr.relax.devel/5946. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}.
* Small fix for the math domain catching of model [[MMQ CR72]]. This was pointed out in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5940. And in post http://article.gmane.org/gmane.science.nmr.relax.devel/5946.
* Various spacing fixes in unit test files _lib/_dispersion. This is the preparation for merging back disp_speed branch into trunk. This follows post http://article.gmane.org/gmane.science.nmr.relax.devel/5948. Usin the code validator script './devel_scripts/code_validator'.
* Modified that unit tests having different r20a and r20b values is checking if the correct one is returned. This is the preparation for merging back disp_speed branch into trunk. This follows post http://article.gmane.org/gmane.science.nmr.relax.devel/5948.
* Modified unit test to have standard population of p<sub>A</sub> = 0.95, and a correctly calculation of Δω in ppm to rad/s. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}.
* Small fix in parameter calculation in unit test _dispersion/test_ns_cpmg_2site_expanded.
* Increased max k<sub>ex</sub> to value 1e<sup>18</sup> for unit test of lin/ns_cpmg_2site_expanded.py.
* Increased max k<sub>ex</sub> to value 1e<sup>20</sup> for unit test of lib/ns_cpmg_2site_3d.py.
* Fix for looking for negative values, when all values where converted to positive in matrix in ns_cpmg_2site_3d.py. This is to implement catching of math domain errors, before they occur. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}.
* Removed nested looping of returning back_calc in lib/ns_cpmg_2site_3d.
* Removed the 8th unit test for model [[NS CPMG 2-site 3D]]. This was the catching of errors when k<sub>ex</sub> = 1e<sup>20</sup>. The model cannot handle this situations, and we need to let it fail.
* Removed the 8th unit test for model [[NS CPMG 2-site expanded]]. This was the catching of errors when k<sub>ex</sub> has high values. The model cannot handle this situations, and we need to let it fail.
* Fix for differences in system tests which are different from trunk. These were found with the command: diff -bur disp_speed/test_suite/ relax_trunk/test_suite/ | grep -v "Binary files" > diff.txt.
* Converting back to having back_calc as a function argument to model [[B14]]. This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}.* Converting back to having back_calc as a function argument to model [[CR72]]: This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}.* Converting back to having back_calc as a function argument to model [[DPL94]]: This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}.* Converting back to having back_calc as a function argument to model [[IT99]]: This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}.* Converting back to having back_calc as a function argument to model [[LM63]]: This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}.* Converting back to having back_calc as a function argument to model [[M61]]: This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}.* Converting back to having back_calc as a function argument to model [[M61b]]: This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}.* Converting back to having back_calc as a function argument to model [[MMQ CR72]]: This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}.* Converting back to having back_calc as a function argument to model [[MP05]]: This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}.* Converting back to having back_calc as a function argument to model [[NS CPMG 2-site expanded]]. This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}.* Converting back to having back_calc as a function argument to model [[TAP03]]. This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}.* Converting back to having back_calc as a function argument to model [[TP02]]. This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}.* Converting back to having back_calc as a function argument to model [[TSMFK01]]. This is to clean up the API. There can be bo no partial measures/implementations in the relax trunk. The problem is, that many numerical models can't be optimised further, since they evolve the spin-magnetisation in a matrix. That spin evolution can't be put into a larger numpy array. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}.
* Created the lib.compat.norm() compatibility function for numpy.linalg.norm(). For numpy 1.8 and higher, the numpy.linalg.norm() function has introduced the 'axis' argument. This is an incredibly fast way of determining the norm of an array of vectors. This is used by the frame order analysis. However for older numpy versions, this causes the frame order analysis, and many corresponding system and GUI tests to fail. Therefore this new lib.compat.norm() function has been designed to default to numpy.linalg.norm() if the axis argument is supported, or to switch to the much slower numpy.apply_along_axis(numpy.linalg.norm, axis, x) call which is supported by older numpy.
* The frame order analysis now uses the lib.compat.norm() replacement for numpy.linalg.norm(). This is to allow for the axis argument on numpy versions before version 1.8, though these older versions will result in slower optimisation of the frame order models.
* Bug fix for the lib.arg_check.is_float_object() function. The dim argument can sometimes be an integer rather than a tuple, but this was not handled by the function. Now integer dim arguments are pre-converted to lists before performing all the checks.
* Fix for [https://gna.org/bugs/?22105 bug #22105, the failure spectrum.read_intensities GUI user function whereby a file name is turned into lists of characters]. A few changes were made to allow the Selector_file_multiple GUI element to operate correctly.
* Critical fix for the math domain catching of model [[LM63]]. This was discovered with the added 7 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur.* Critical fix for the math domain catching of model [[B14]]. This was discovered with the added 7 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur.* Critical fix for the math domain catching of model [[CR72]]. This was discovered with the added 8 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. When k<sub>ex</sub> is large, e.g. k<sub>ex</sub> = 1e<sup>5</sup>, the values of etapos = eta_scale * sqrt(Psi + sqrt_psi2_zeta2) / cpmg_frqs will exceed possible numerical representation. The catching of these occurrences needed to be re-written.* Critical fix for the math domain catching of model [[B14]]. This was discovered with the added 8 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. When k<sub>ex</sub> is large, e.g. k<sub>ex</sub> = 1e<sup>5</sup>, "nan" values where produced, which were replaced with 1e<sup>100</sup>. The catching of these occurrences needed to be re-written.
* Critical fix for the math domain catching of model [[CR72]]. Removed the test for k<sub>ex</sub> ≥ 1e<sup>5</sup>. This catching should rather be performed on the math functions instead.
* Critical fix for the math domain catching of model [[B14]]. Removed the test for k<sub>ex</sub> ≥ 1e<sup>5</sup>. This catching should rather be performed on the math functions instead. In this case, it is the catching of sinh(), not evaluating values above 710.
* Critical fix for the math domain catching of model [[MMQ CR72]]. This was discovered with the added 9 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur.* Critical fix for the math domain catching of model [[IT99]]. This was discovered with the added 8 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. The catching of these occurrences needed to be re-written.* Critical fix for the math domain catching of model [[TAP03]]. This was discovered with the added 8 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur.* Critical fix for the math domain catching of model [[TP02]]. This was discovered with the added 8 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur.* Critical fix for the math domain catching of model [[TSMFK01]]. This was discovered with the added 8 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur. The catching of these occurrences needed to be re-written.* Critical fix for the math domain catching of model [[NS CPMG 2-site 3D]]. This was discovered with the added 8 unit tests demonstrating edge case 'no R<sub>ex</sub>' failures. This follows from the ideas in the post http://article.gmane.org/gmane.science.nmr.relax.devel/5858. This is related to [https://{{gna.org/task/?link|7793 task |Task #7793 Speedup of dispersion models]}}. This is to implement catching of math domain errors, before they occur.
* Fix for [http://gna.org/bugs/?22112 bug #22112, the GUI failure when setting list values via the sequence windows, launched from user function windows fails on Mac OS X]. The problem was two fold. First the Sequence and Sequence_2D windows from wx.Dialog should not be terminated via the Destroy() method, as wx.Dialog.Destroy() appears to be horribly broken on Macs.
* Another fix for [http://gna.org/bugs/?22112 bug #22112, the GUI failure when setting list values via the sequence windows, launched from user function windows fails on Mac OS X]. This change is for the multiple file selection window and matches the previous change by replacing the Mac OS X fatal wx.Dialog.Destroy() call with wx.Dialog.Close().