* Removed the slow allclose() function to test if R<sub>2A</sub><sup>0</sup> and R<sub>2B</sub><sup>0</sup> is equal.  It is MUCH faster to just subtract and check sum is not 0.0.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Replaced the temporary variable R<sub>2eff</sub> with back_calc, and used numpy subtract to speed up.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Made the lib function into a pure numpy array calculation.  This requires, that r20aR<sub>2A</sub><sup>0</sup>, r20b R<sub>2B</sub><sup>0</sup> and δω has same dimension as the dispersion points.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Changes too unit tests, so data is sent to target function in numpy array format.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Removed the creation of an unnecessary structure by using numpy multiply.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Replaced target function for model [[LM63]], to use higher dimensional numpy array structures.  That makes the model much faster.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Fix for replacement of values with mask, when φ<sub>ex</sub> is zero.  This can be spin specific.  System test: Relax_disp.test_hansen_cpmg_data_to_lm63 starts to fail:  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Fix for sending in r20 R<sub>2</sub><sup>0</sup> and φ<sub>ex</sub> as numpy array in unit tests of [[LM63]].  This is after using masks as replacement.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* 1 digit decrease in parameter check in system test: Relax_disp.test_hansen_cpmg_data_to_lm63.  It is unknown, why this has occurred.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Methods to replace math domain errors in model IT99, has been replaced with numpy masks.  Number of points has been removed, as the masks utility replaces this.  p<sub>B</sub> is now moved to be calculated inside.  This makes the lib function simpler.  Documentation is also fixed.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Fix for sending in r20 R<sub>2</sub><sup>0</sup> and δω as numpy array in unit tests of IT99.  This is after using masks as replacement.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Replaced target function for model IT99, to use higher dimensional numpy array structures.  That makes the model much faster.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Methods to replace math domain errors in model ns_cpmg_2site_expanded, has been replaced with numpy masks.  Number of points has been removed, as the masks utility replaces this.  p<sub>B</sub> is now moved to be calculated inside.  This makes the lib function simpler.  k<sub>AB</sub> and k<sub>BA</sub> is also now calculated here.  Documentation is also fixed.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Fix for sending in r20 R<sub>2</sub><sup>0</sup> and δω as numpy array in unit tests of ns_cpmg_2site_expanded.  This is after using masks as replacement.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Replaced target function for model ns_cpmg_2site_expanded, to use higher dimensional numpy array structures.  That makes the model much faster.  I cannot get system test: Relax_disp.test_cpmg_synthetic_dx_map_points to pass.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Fix for system test Relax_disp.test_cpmg_synthetic_dx_map_points.  By just copying self.back_calc_a to self.back_calc, problem was solved.  In specific_analysis.relax_disp.optimisation in function back_calc_r2eff(), the function gets the last values stores in the class function.  This is in "class Disp_result_command(Result_command)" with self.back_calc = back_calc.  And back_calc_r2eff() have return model.back_calc.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Changed the unit test of [[NS CPMG 2-site 3D]], after the input to the function has changed.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Changed the target function for [[NS CPMG 2-site 3D]].  This reflects the new API layout.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Changed the lib function of [[NS CPMG 2-site star]], to get input of δω and r20aR<sub>2A</sub><sup>0</sup>+r20b R<sub>2B</sub><sup>0</sup> of higher dimensional type.  This is to move the main operations from the target function to the lib function, and make the API code clean and consistent.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Changed the target function of [[NS CPMG 2-site star]], to reflect the input to the function.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Made the dot evolution structure faster for [[NS CPMG 2-site 3D]].  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Added the [[NS CPMG 2-site 3D]] model to the dispersion super profiling script.  To handle the fact that this script has nr_iter set to 100 rather than 1000 (as otherwise it is too slow), a list of scaling factors has been created to scale all timing numbers to equivalent values.
* Added [[DPL94]] profiling script.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Modified profiling script for [[TSMFK01]], to use correct parameters k<sub>AB</sub> and r20aR<sub>2A</sub><sup>0</sup>.  Or else, the lib functions is just calculating with zero?  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.* Changes to profiling script of [[NS CPMG 2-site expanded]].  The model does not have r20a R<sub>2A</sub><sup>0</sup> and r20bR<sub>2B</sub><sup>0</sup>, but only r2.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Made changes to the profiling script of [[NS CPMG 2-site 3D]].  Need to use the full model, when r2a and r2b is specified.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Changes to profiling script of [[NS CPMG 2-site expanded]].  The unpacking can be removed.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Added the system information printout to the dispersion model profiling master script output.  This is for the log files comparing one version of relax to the previous version.
* Added profiling script for model [[MMQ CR72]],  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Fix for the replacement value for invalid values in model [[MMQ CR72]].  The value was set to use r20R<sub>2</sub><sup>0</sup>, but should instead be 1e100.  [https://gna.org/task/?7807 Task #7807]: Speed-up of dispersion models for clustered analysis.
* Copied profiling script from [[MMQ CR72]], to [[NS MMQ 2-site]] and [[NS MMQ 3-site|3-site]].
* Copied profiling script to [[NS MMQ 3-site linear]].