mailrelax version 3.2.2.


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Edward d'Auvergne on June 05, 2014 - 16:09:
This is a major feature and bugfix release.  It includes a large speed
up of all analytic relaxation dispersion models, the correct handling
of edge case failures in all models of the dispersion analysis, a
number of fixes for the handling of list-type data in the GUI user
function windows including the fatal GUI crashes on Mac OS X systems,
and many other bug fixes.  Please see below for a full list of
features, changes and bugfixes.  All users of the dispersion analysis,
the relax GUI, or Mac OS X systems are recommended to upgrade to this
newest version.

The new relax versions can be downloaded from
http://www.nmr-relax.com/download.html.  If binary distributions are
not yet available for your platform and you manage to compile the
binary modules, please consider contributing these to the relax
project (described in section 3.6 of the relax manual,
http://www.nmr-relax.com/manual/relax_distribution_archives.html).

The full list of changes is:

    Features:
        * Large speedups of all analytical relaxation dispersion
models by converting the R2eff calculations and value error checking
from single values to numpy arrays.
        * Edge cases where function failures occur are now properly
handled for all analytical relaxation dispersion models.
        * Completion of the frame_order.pdb_model user function
backend for the frame order PDB representation.
        * relax will now detect when files with *.gz or *.bz2 file
extensions are being created and automatically gzip or bzip compress
the file.


    Changes:
        * Small speed up for all the isotropic cone and
pseudo-elliptic cone frame order models.  The vector length
calculation for the numeric PCS integration has been simplified and
shifted outside of a loop to take advantage of the speed of numpy.
        * All three file arguments for the pymol.frame_order user
function are now optional.
        * Updated all the API documentation links in the dispersion
chapter of the manual.  These were pointing to
http://www.nmr-relax.com/api/3.1/ whereas they should now be point to
http://www.nmr-relax.com/api/3.2/.
        * Modified a printout in the 'devel_scripts/code_validator'
script.  This is to clarify that the first method of a class does not
need two preceding empty lines.
        * Shifted some functions from lib.structure.geometric into
their own modules.  The angles_regular() and angles_uniform()
functions are now in the lib.structure.angles module, and the
get_proton_names in lib.structure.conversion.
        * Deletion of the
pipe_control.structure.main.create_cone_pdb() function.  This is only
used in the frame order analysis, but has been made redundant by the
lib.structure.represent.cone.cone() function.
        * Completed the frame_order.pdb_model user function backend
for the frame order PDB representation.  Most of this backend,
including the axes and cone representations, had been broken for quite
a while and were being skipped with an early return statement.  This
has now been made functional and a few fixes have been made.  For the
'rotor' and 'free rotor' model, the neg_cone argument is now ignored
so that only one model is produced in the final frame order PDB
representation file.  For all other models, the rotor representation
is no longer centred to the point on axis closest to the centre of
mass, as the pivot is unambiguously defined.  The rotor representation
has also been made larger in these models so that it is outside of the
cone, and the propeller blades are now staggered.
        * Modified py_type from "list" to "float_array" in uf_object
type in user function dx.map.  Bug #22035:
(https://gna.org/bugs/?22035) The dx.map user function is broken in
the GUI.
        * Added py_type "list_val_or_list_of_list_val" to be handled
in GUI uf_objects.  Bug #22035: (https://gna.org/bugs/?22035) The
dx.map user function is broken in the GUI.
        * Modified the frame order constraints so that cone_theta_x <=
cone_theta_y.  The linear_constraints() function docstring has been
updated to include this constraint.
        * Set dim=4 when setting chi surface level in user function dx.map.
        * Fix for the n_state_model.cone_pdb user function for the
recent internal structural object changes.  The cone arguments should
now be called cone_obj.
        * Renamed the relax_disp.set_grid_r20_from_min_r2eff user
function to relax_disp.r20_from_min_r2eff.  This follows from the
proposal at http://thread.gmane.org/gmane.science.nmr.relax.devel/5957.
        * Modification to the Sequence_2D GUI element used for some
user function windows.  The selection_win_show() method has been
redefined, as the parent method from the Sequence element is specific
for the 1D sequence module.  The open_dialog() method has also been
modified to use the new selection_win_show(), as well as the parent
Sequence class selection_win_data() method.
        * Created the User_functions.test_structure_rotate GUI tests.
This is to catch bug #22100 (https://gna.org/bugs/?22100), the
rotation argument for the structure.rotate user function cannot be
changed in the GUI, as an AttributeError is raised.
        * Moved py_type "list_val_or_list_of_list_val" to 2D sequence types.
        * Added dim dimensions to match the {x, y, z} positions for
GUI input in user function dx.map.
        * Modified the User_functions.test_structure_rotate GUI test
to change and check the rotation matrix.
        * Some more fixes for the User_functions.test_structure_rotate
GUI test.  The open_dialog() method cannot be used, as it deletes the
window at the end.  Instead the selection_win_show() and
selection_win_data() method combination is used.
        * Expanded the User_functions.test_structure_rotate GUI test.
This is to more extensively check the 'float_matrix' user function
argument type in the GUI.
        * Modified the dim dimensions to (None, 3) to allow the user
to change number of points in the GUI.  This is for the user function
dx.map.
        * Simplified the User_functions GUI tests.  The
exec_uf_pipe_create() method has been created to simplify the data
pipe creation in the tests.
        * Expanded the User_functions.test_structure_rotate GUI test.
The rotation matrix argument checks for the Sequence_2D GUI element
have been expanded to check that setting nothing (blank element)
returns nothing (None).  The other checks have also been slightly
modified.
        * Expanded the User_functions.test_structure_rotate GUI test
to catch more problems.  Now the rotation matrix value in the user
function window is set to a series of invalid values to test if the
Sequence_2D GUI element will handle the rubbish input.  This is to
mimic user errors.
        * Created the is_list() and is_list_of_lists() functions for
the lib.check_types module.
        * Clean up of the User_functions.test_structure_rotate GUI
test.  The invalid value check is simpler and the Sequence_2D GUI
object return value is now checked to be None.
        * Expanded the User_functions.test_structure_rotate GUI once
more.  This time the setting of invalid values in the Sequence_2D
element itself is now checked.  For example for the rotation matrix of
the structure.rotate user function, if a matrix element is set to a
string, a NameError is raised.
        * Created the User_functions.test_dx_map GUI test.  This
extensively checks the 'point' argument for the dx.map user function
GUI window.  This is to catch bug #22102
(https://gna.org/bugs/?22102), the point argument of the dx.map user
function being incorrect in the GUI.
        * Modified the User_functions.test_dx_map GUI test to catch
another problem with the Sequence_2D element.
        * Fixes for the frame order PDB presentation in the
frame_order.pdb_model user function backend.
        * Expanded the User_functions.test_dx_map GUI test once again.
 The new test is to set 2 valid points in the wizard, open and close
the Sequence_2D window (twice), and check that the points come back.
        * Increased the width of the first column of the Sequence_2D
GUI element for variable lists.  This is so the column title "Number"
will fit.
        * Added list titles for the dx.map user function point
argument.  This is so that the Sequence_2D GUI element will have
column titles of 'X coordinate', 'Y coordinate', and 'Z coordinate'.
        * The self.variable_length flag is now used throughout the
Sequence GUI element.
        * The self.variable_length flag is used in one more spot in
the Sequence_2D GUI element.
        * Created the User_functions.test_structure_add_atom GUI test.
 This is used to check the operation of the Sequence GUI element via
the 'pos' argument of the structure.add_atom user function.  This is a
list fixed to 3 elements.
        * Titles are now handled and set in the Sequence GUI element.
The titles will replace the numbering of 1 onwards in the first column
of the GUI element.
        * Small fix for switched indices in the new
User_functions.test_structure_add_atom GUI test.
        * Modified the 'pos' argument of the structure.add_atom user
function.  The argument is now a list of fixed length of 3, and it has
the titles 'X coordinate', 'Y coordinate', and 'Z coordinate' which
are shown in the GUI.
        * Created the User_functions.test_spectrum_read_intensities
GUI test to catch bug #22105.  This is reported at
https://gna.org/bugs/?22105.  The problem is that a single file name
is split up into many files when the file selection button is clicked,
one for each character of the file name.
        * Fix for the User_functions.test_spectrum_read_intensities
GUI test.  A valid value was being checked as invalid.
        * Shifted all wildcards used in GUI file selection dialogs
into the new user_functions.wildcard module.  These have now all been
standardised, and expanded to include more capitalisation combinations
and to include more *.* options.
        * 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.  Task #7793:
(https://gna.org/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 R2eff 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 1e100.  This makes all calculations be the fastest numpy
array way.
        * Fix for system test test_cpmg_synthetic_dx_map_points.  Task
#7793: (https://gna.org/task/?7793) Speedup of dispersion models.
        * Critical fixes for system test
Relax_disp.test_hansen_cpmg_data_missing_auto_analysis.  Task #7793:
(https://gna.org/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.  Task #7793:
(https://gna.org/task/?7793) Speedup of dispersion models.  This is
won by not checking single values in the R2eff 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 1e100.  This makes all
calculations be the fastest numpy array way.
        * Huge speedup of model B14.  Task #7793:
(https://gna.org/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 R2eff 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 1e100.  This makes all calculations
be the fastest numpy array way.
        * Speedup of model TP02.  Task #7793:
(https://gna.org/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 R1rho 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 1e100.  This makes all calculations
be the fastest numpy array way.
        * Huge speedup for model TAP03.  Task #7793:
(https://gna.org/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 R1rho 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 1e100.  This makes all
calculations be the fastest numpy array way.
        * Speedup of model MP05.  Task #7793:
(https://gna.org/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.  Task #7793:
(https://gna.org/task/?7793) Speedup of dispersion models.  Change in
system test: test_sprangers_data_to_mmq_cr72 9.892s -> 4.121s.
        * Speedup for model M61.  Task #7793:
(https://gna.org/task/?7793) Speedup of dispersion models.  Change in
speed is: test_m61_data_to_m61 6.692s -> 3.480s.
        * Speedup of model LM63.  Task #7793:
(https://gna.org/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.  Task #7793:
(https://gna.org/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.  Task #7793:
(https://gna.org/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.  Task #7793:
(https://gna.org/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.  Task #7793:
(https://gna.org/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'.
Task #7793: (https://gna.org/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.  Task #7793:
(https://gna.org/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.  Task #7793:
(https://gna.org/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.  Task #7793:
(https://gna.org/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.  Task #7793:
(https://gna.org/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.  Task #7793:
(https://gna.org/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.  Task #7793:
(https://gna.org/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.  Task #7793:
(https://gna.org/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.  Task #7793: (https://gna.org/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.  Task #7793:
(https://gna.org/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.  Task #7793:
(https://gna.org/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.  Task #7793: (https://gna.org/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.  Task #7793: (https://gna.org/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.  Task #7793: (https://gna.org/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.  Task #7793: (https://gna.org/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.  Task #7793: (https://gna.org/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.  Task #7793: (https://gna.org/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.  Task #7793: (https://gna.org/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.  Task #7793: (https://gna.org/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.  Task #7793: (https://gna.org/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.
Task #7793: (https://gna.org/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.  Task #7793: (https://gna.org/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 Rex'
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 task #7793: (https://gna.org/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: dw = 0.0; pA = 1.0; kex =
0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex =
0.0; dw = 0.0, pA = 1.0, and kex = 0.0.
        * Added 7 unit tests demonstrating edge case 'no Rex' 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 task #7793: (https://gna.org/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: dw = 0.0; pA = 1.0; kex =
0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex =
0.0; dw = 0.0, pA = 1.0, and kex = 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 Rex' 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 task #7793: (https://gna.org/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: dw = 0.0; pA = 1.0; kex =
0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex =
0.0; dw = 0.0, pA = 1.0, and kex = 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 Rex' 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 task #7793: (https://gna.org/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: dw = 0.0; pA = 1.0; kex =
0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex =
0.0; dw = 0.0, pA = 1.0, and kex = 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 Rex' 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 task #7793: (https://gna.org/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: dw = 0.0; pA = 1.0; kex =
0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex =
0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e5.
        * Added the 8th unit tests demonstrating edge case 'no Rex'
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 task #7793: (https://gna.org/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: dw = 0.0; pA = 1.0; kex =
0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex =
0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e5.
        * Added the 8th unit tests demonstrating edge case 'no Rex'
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 task #7793: (https://gna.org/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: dw = 0.0; pA = 1.0; kex =
0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex =
0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e20.
        * Small fix for 8 unit tests demonstrating edge case 'no Rex'
failures of the model 'ns cpmg_2site_expanded'.  The comparison of
R2eff is now divided into a special case for kex having large values.
        * Deleted unit test case for lm63 3site.
        * Added 8 unit tests demonstrating edge case 'no Rex' 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 task #7793: (https://gna.org/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: dw = 0.0; pA = 1.0; kex =
0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex =
0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e20.
        * Added the 8th unit tests demonstrating edge case 'no Rex'
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 task #7793: (https://gna.org/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 Rex' 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 task #7793: (https://gna.org/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: dw = 0.0; pA = 1.0; kex =
0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex =
0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e20.
        * Math-domain catching for model M61b.  Task #7793:
(https://gna.org/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 Rex' 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 task #7793: (https://gna.org/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: dw = 0.0; pA = 1.0; kex =
0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex =
0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e19.
        * Added 9 unit tests demonstrating edge case 'no Rex' 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 task #7793: (https://gna.org/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: dw = 0.0; pA = 1.0; kex =
0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex =
0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e5; dwH = 0.0.
        * Added 8 unit tests demonstrating edge case 'no Rex' 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 task #7793: (https://gna.org/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: dw = 0.0; pA = 1.0; kex =
0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex =
0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e20.
        * Added 8 unit tests demonstrating edge case 'no Rex' 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 task #7793: (https://gna.org/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: dw = 0.0; pA = 1.0; kex =
0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex =
0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e20.
        * Added 8 unit tests demonstrating edge case 'no Rex' 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 task #7793: (https://gna.org/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: dw = 0.0; pA = 1.0; kex =
0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex =
0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e20.
        * Added 7 unit tests demonstrating edge case 'no Rex' 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 task #7793: (https://gna.org/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: dw = 0.0; pA = 1.0; kex =
0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex =
0.0; dw = 0.0, pA = 1.0, and kex = 0.0.
        * Copied unit test test_b14.py to test_ns_cpmg_2site_3d.py
        * Added 8 unit tests demonstrating edge case 'no Rex' failures
of the model 'NS CPMG 2site 3D'.  This follows from the ideas in the
post http://article.gmane.org/gmane.science.nmr.relax.devel/5858.
This is related to task #7793: (https://gna.org/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: dw = 0.0; pA = 1.0; kex =
0.0; dw = 0.0 and pA = 1.0; dw = 0.0 and kex = 0.0; pA = 1.0 and kex =
0.0; dw = 0.0, pA = 1.0, and kex = 0.0; kex = 1e7.
        * Modified unit tests demonstrating edge cases 'no Rex'
failures of the model 'TP02'.  The catching of errors for
off-resonance R1rho 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 task #7793: (https://gna.org/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: dw = 0.0; pA = 1.0; kex = 0.0; dw = 0.0 and pA = 1.0; dw =
0.0 and kex = 0.0; pA = 1.0 and kex = 0.0; dw = 0.0, pA = 1.0, and kex
= 0.0; kex = 1e5.
        * Critical fix for the math domain catching of model TP02.
The catching of errors for off-resonance R1rho 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 Rex'
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 Rex'
failures of the model 'MP05'.  The catching of errors for
off-resonance R1rho 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 task #7793: (https://gna.org/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 R1rho 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 Rex'
failures of the model 'TAP03'.  The catching of errors for
off-resonance R1rho 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 task #7793: (https://gna.org/task/?7793) Speedup of
dispersion models.
        * Critical fix for the math domain catching of model TAP03.
The catching of errors for off-resonance R1rho 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 Rex'
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 task #7793: (https://gna.org/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 pA = 0.95,
and a correctly calculation of dw in ppm to rad/s.  This is related to
task #7793: (https://gna.org/task/?7793) Speedup of dispersion models.
        * Small fix in parameter calculation in unit test
_dispersion/test_ns_cpmg_2site_expanded.
        * Increased max kex to value 1e18 for unit test of
lin/ns_cpmg_2site_expanded.py.
        * Increased max kex to value 1e20 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 task #7793: (https://gna.org/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 2site 3D.  This
was the catching of errors when kex = 1e20.  The model cannot handle
this situations, and we need to let it fail.
        * Removed the 8th unit test for model NS CPMG 2site extended.
This was the catching of errors when kex 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 task #7793:
(https://gna.org/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 task #7793:
(https://gna.org/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 task #7793:
(https://gna.org/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 task #7793:
(https://gna.org/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 task #7793:
(https://gna.org/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 task #7793:
(https://gna.org/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 task #7793:
(https://gna.org/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 task #7793:
(https://gna.org/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 task #7793:
(https://gna.org/task/?7793) Speedup of dispersion models.
        * Converting back to having back_calc as a function argument
to model NS CPMG 2site 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
task #7793: (https://gna.org/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 task #7793:
(https://gna.org/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 task #7793:
(https://gna.org/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 task #7793:
(https://gna.org/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.
        * The built in Python range() function is no longer being
replaced by xrange().  Replacing builtin.range() with builtin.xrange()
on Python 2 was causing problems with Python site-packages which were
not Python 3 compliant.  This includes old numpy versions.  The
original overwriting of range() with xrange() was for both speed and
memory conservation.  However profiling the system tests, the time for
all tests did not change significantly.  This change may cause
problems in certain places in relax on memory constrained computer
systems, so it may need to be reverted in the future.
        * The lib.io.open_write_file() function now automatically
determines the compression type.  This is used by many user functions
which create files.  The end result for a user is that if they supply
a '.gz' or '.bz2' file extension, a gzipped or bzipped file will be
produced.
        * Removal of the docstring text wrapping in the lib.io module.
        * Expanded and improved the docstring for the
relax_disp.r20_from_min_r2eff user function.  This follows from
http://thread.gmane.org/gmane.science.nmr.relax.devel/5957.  The
documentation now covers a number of the uses for this user function.
The text has also been lightly edited.  To fit all the text into the
GUI user function window, the size of the dialog and the text high
settings have been changed.
        * Large improvements for the detection of cross-compilation on
Mac OS X systems.  The tests for different architecture support now
follows the ideas discussed in the post
http://thread.gmane.org/gmane.science.nmr.relax.devel/5785/focus=5820.
 In summary, for each architecture a simple C file is created,
compiled with 'gcc -arch xyz', and the resultant binary file tested.
To support 64-bit compilation on 32-bit systems, all previously
successful architectures are also included in the gcc command.  The
change allows the 'ppc64' architecture to be reintroduced.
        * Fixed the docstring for the det_arch() method of the
sconstruct script.  This is for the true cross-compilation detection
on Mac OS X.


    Bugfixes:
        * Fix for the lib.geometry.lines.closest_point_ax() function
for when the two points are the same.  If the point on the line and
point in the 3D space are the same, then this function used to return
an array of NaN values.  This situation is now caught and the point in
the 3D space is returned.
        * Fix for the heterogen section of the internal structural
object write_pdb() method.  A number of checks were performed to see
if the PDB heterogen records were the same for all structures, but
this is meaningless as the structures can of course be different.
        * Fixes for the lib.structure.represent.cone module.  The
function arguments named 'cone' have been renamed to 'cone_obj' so
that they do not clash with the cone() function in the module
namespace.
        * Fix for the
lib.structure.geometric.generate_vector_residues() function.  The atom
numbers are no longer read from the internal structural object, as
these are not reliable.  If another geometric representation exists in
the object, then the atom numbers could be None.  Or loading
structures from multiple PDB files can cause the numbering to be
repeated or out of order.
        * Fix for the frame_order.pdb_model user function for the
rotor models.  The rotor axis is no longer defined by spherical angles
and therefore needs to be recreated using the
create_rotor_axis_alpha() rather than create_rotor_axis_spherical()
function from lib.frame_order.rotor_axis.
        * Partial fix for bug #22100.  This is the bug report at
https://gna.org/bugs/?22100, the rotation argument for the
structure.rotate user function cannot be changed in the GUI, as an
AttributeError is raised.  The append_row() method call has been
replaced by the correct add_element() call.
        * Bug fix for the Sequence_2D GUI element.  This is used for
the user function windows in the GUI for setting lists of lists or
matrices.  The GUI element GetValue() method will now return None if
nothing is set.  This prevents a list of lists of None being added to
the main user function window.
        * Fixes for the Sequence and Sequence_2D GUI elements for
handling invalid input data.  These elements used by the user function
windows previously raised all sorts of errors if the data was not what
they expected (lists or lists of lists respectively).  These
situations are now caught and the input data is ignored, so blank
Sequence and Sequence_2D elements are presented to the user.
        * Bug fix for the Sequence_2D GUI element.  This is used for
handling list of lists user function arguments in the user function
GUI windows.  The setting of invalid values directly in the
Sequence_2D GUI element is now detected.  These values are now
replaced with None.
        * Fix for bug #22102, the point argument of the dx.map user
function failing in the GUI.  This is reported at
https://gna.org/bugs/?22102.  The Sequence_2D GUI element used for all
list of lists arguments in the user function GUI windows now correctly
handles variable length lists.  The first column which shows a count
of the elements is now properly taken into account in the SetValue(),
GetValue() and add_item() methods, via a new self.offset variable.
The self.variable_length variable has also been fixed so it is not
overwritten by the parent Sequence GUI element.
        * Bug fixes for the Sequence GUI element used for lists in the
user function windows.  Invalid values input into the Sequence GUI
window are now ignored rather than raising different types of error.
And invalid input lists for fixed dimension arguments are also
ignored.  This allows the User_functions.test_structure_add_atom GUI
test to pass.
        * 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 bug #22105 (https://gna.org/bugs/?22105).  This is
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 Rex' failures.  This follows from the ideas in the post
http://article.gmane.org/gmane.science.nmr.relax.devel/5858.  This is
related to task #7793: (https://gna.org/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 Rex' failures.  This follows from the ideas in the post
http://article.gmane.org/gmane.science.nmr.relax.devel/5858.  This is
related to task #7793: (https://gna.org/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 Rex' failures.  This follows from the ideas in the post
http://article.gmane.org/gmane.science.nmr.relax.devel/5858.  This is
related to task #7793: (https://gna.org/task/?7793) Speedup of
dispersion models.  This is to implement catching of math domain
errors, before they occur.  When kex is large, e.g. kex = 1e5, 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 Rex' failures.  This follows from the ideas in the post
http://article.gmane.org/gmane.science.nmr.relax.devel/5858.  This is
related to task #7793: (https://gna.org/task/?7793) Speedup of
dispersion models.  This is to implement catching of math domain
errors, before they occur.  When kex is large, e.g. kex = 1e5, "nan"
values where produced, which were replaced with 1e100.  The catching
of these occurrences needed to be re-written.
        * Critical fix for the math domain catching of model CR72.
Removed the test for kex >= 1.e5.  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 kex >= 1.e5.  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 Rex' failures.  This follows from the ideas in the post
http://article.gmane.org/gmane.science.nmr.relax.devel/5858.  This is
related to task #7793: (https://gna.org/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 Rex' failures.  This follows from the ideas in the post
http://article.gmane.org/gmane.science.nmr.relax.devel/5858.  This is
related to task #7793: (https://gna.org/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 Rex' failures.  This follows from the ideas in the post
http://article.gmane.org/gmane.science.nmr.relax.devel/5858.  This is
related to task #7793: (https://gna.org/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 Rex' failures.  This follows from the ideas in the post
http://article.gmane.org/gmane.science.nmr.relax.devel/5858.  This is
related to task #7793: (https://gna.org/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 Rex' failures.  This follows from the ideas in the post
http://article.gmane.org/gmane.science.nmr.relax.devel/5858.  This is
related to task #7793: (https://gna.org/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
2site 3D.  This was discovered with the added 8 unit tests
demonstrating edge case 'no Rex' failures.  This follows from the
ideas in the post
http://article.gmane.org/gmane.science.nmr.relax.devel/5858.  This is
related to task #7793: (https://gna.org/task/?7793) Speedup of
dispersion models.  This is to implement catching of math domain
errors, before they occur.
        * Fix for bug #22112 (http://gna.org/bugs/?22112).  This is
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 bug #22112 (http://gna.org/bugs/?22112).
This is 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().
        * Fix for the relax start up detection of missing Python
packages.  The dep_check module is now imported first, as it used to
be.  This is required to check if all required modules are installed
and to present understandable messages to the user rather than cryptic
ImportError messages with tracebacks.
        * Fix for bug #22033, the inability to use other optimisation
algorithms in the dispersion analysis.  This is reported at
https://gna.org/bugs/?22033.  As mentioned in comment #2, the solution
is to raise a RelaxError explaining that only 'simplex' optimisation
is possible for the dispersion analysis as the gradients are not
derived and implemented in relax.



Related Messages


Powered by MHonArc, Updated Fri Jun 06 01:00:04 2014