Hi Ed.

I wont change anymore.

This development line is way overdue.

Best
Troels

2014-06-27 18:03 GMT+02:00 Edward d'Auvergne <edw...@nmr-relax.com>:
> Here is one more point.  For the DPL94 model, the denominator is
> "kex**2 + spin_lock_fields**2".  This can only be zero when kex is
> zero, and then there should be no exchange.  Therefore we can add a
> kex == 0 check at the start to return R1_R2 and then delete the
> mask_denom_zero logic.  This should slightly speed things up by
> removing one 'if' statement.  Also, kex**2 is not a repetitive
> operation.
>
> Cheers,
>
> Edward
>
>
> On 27 June 2014 17:33, Edward d'Auvergne <edw...@nmr-relax.com> wrote:
>> There are also a number of double spacing issues.  You can find these
>> by running:
>>
>> $ ./devel_scripts/code_validator lib/dispersion/b14.py
>> $ ./devel_scripts/code_validator lib/dispersion/cr72.py
>>
>> Etc.  Some things can be ignored, like the capitals in the function
>> name and double spacing or trailing spacing for equations in
>> docstrings.  This script will identify most formatting problems
>> remaining.
>>
>> Cheers,
>>
>> Edward
>>
>>
>>
>> On 27 June 2014 17:28, Edward d'Auvergne <edw...@nmr-relax.com> wrote:
>>> Also the documentation in the get_back_calc() method of the target
>>> function needs a little polish - it is not a float that is returned.
>>> So, the running list:
>>>
>>> - Some modules have "=" operators outside of functions that need
>>> spaces around them.
>>>
>>> - Trailing whitespace, most of it is in the trunk, but there are some
>>> new ones.  Just run:  grep " $" lib/dispersion/* | grep -v "\\\\ "
>>>
>>> - There are some empty lines straight after a 'for' loop in many places.
>>>
>>> - Your copyright in the tsmfk01.py file needs to be extended to 2014.
>>>
>>> - There are some FIXME comments in the lib.dispersion package.
>>>
>>> - In some places, comment lines require empty lines before them (in
>>> target_functions.relax_disp and lib.dispersion).
>>>
>>> - Not very important, but the target function calc_ns_mmq_3site_chi2()
>>> can have the "Once off parameter conversions" shifted into the
>>> lib.dispersion module to simplify this.
>>>
>>> - The newline spacing between target function methods needs some fixes.
>>>
>>> - The 'chi2_sum' initialisation in func_ns_mmq_2site() should go.
>>>
>>> - The get_back_calc() method of the target function needs a little
>>> polish - it is not a float that is returned.
>>>
>>> Cheers,
>>>
>>> Edward
>>>
>>>
>>>
>>> On 27 June 2014 17:26, Edward d'Auvergne <edw...@nmr-relax.com> wrote:
>>>> To add to the list of trivialities to fix:
>>>>
>>>> - The 'chi2_sum' initialisation in func_ns_mmq_2site() should go.
>>>>
>>>> Cheers,
>>>>
>>>> Edward
>>>>
>>>>
>>>>
>>>> On 27 June 2014 17:23, Edward d'Auvergne <edw...@nmr-relax.com> wrote:
>>>>> Let me see.  You've covered most of the running list, there's just one
>>>>> or two things left.  I'll add a few more trivial things as well.
>>>>>
>>>>> - Some modules have "=" operators outside of functions that need
>>>>> spaces around them.
>>>>>
>>>>> - Trailing whitespace, most of it is in the trunk, but there are some
>>>>> new ones.  Just run:  grep " $" lib/dispersion/* | grep -v "\\\\ "
>>>>>
>>>>> - There are some empty lines straight after a 'for' loop in many places.
>>>>>
>>>>> - Your copyright in the tsmfk01.py file needs to be extended to 2014.
>>>>>
>>>>> - There are some FIXME comments in the lib.dispersion package.
>>>>>
>>>>> - In some places, comment lines require empty lines before them (in
>>>>> target_functions.relax_disp and lib.dispersion).
>>>>>
>>>>> - Not very important, but the target function calc_ns_mmq_3site_chi2()
>>>>> can have the "Once off parameter conversions" shifted into the
>>>>> lib.dispersion module to simplify this.
>>>>>
>>>>> - The newline spacing between target function methods needs some fixes.
>>>>>
>>>>>
>>>>> I'll keep looking.  I'm guessing you will not be tackling the numeric
>>>>> models to speed them up to match 'NS CPMG 2-site expanded' model via
>>>>> the ultimate solution of brute-force expansion
>>>>> (http://www.mail-archive.com/relax-users@gna.org/msg01641.html) any
>>>>> time soon.  This will have a similar effect as the ultimate speed up
>>>>> at http://www.mail-archive.com/relax-devel%40gna.org/msg05691.html
>>>>> which you have so successfully achieved in this branch.  Can you
>>>>> remember if there were any other changes required?  I will create a
>>>>> new timings file just before tagging the relax release.
>>>>>
>>>>> Cheers,
>>>>>
>>>>> Edward
>>>>>
>>>>> On 27 June 2014 16:53, Troels Emtekær Linnet <tlin...@nmr-relax.com> 
>>>>> wrote:
>>>>>> This sounds good.
>>>>>>
>>>>>> What is needed to be done, to merge disp_spin_speed in trunk now?
>>>>>>
>>>>>> Best
>>>>>> Troels
>>>>>>
>>>>>> 2014-06-27 15:53 GMT+02:00 Edward d'Auvergne <edw...@nmr-relax.com>:
>>>>>>> Hmmm:
>>>>>>>
>>>>>>> $ grep -c "out=\|einsum" lib/dispersion/*
>>>>>>> lib/dispersion/b14.py:0
>>>>>>> lib/dispersion/cr72.py:2
>>>>>>> lib/dispersion/dpl94.py:0
>>>>>>> lib/dispersion/__init__.py:0
>>>>>>> lib/dispersion/it99.py:0
>>>>>>> lib/dispersion/lm63_3site.py:0
>>>>>>> lib/dispersion/lm63.py:0
>>>>>>> lib/dispersion/m61b.py:0
>>>>>>> lib/dispersion/m61.py:0
>>>>>>> lib/dispersion/matrix_exponential.py:5
>>>>>>> lib/dispersion/matrix_power.py:0
>>>>>>> lib/dispersion/mmq_cr72.py:0
>>>>>>> lib/dispersion/mp05.py:0
>>>>>>> lib/dispersion/ns_cpmg_2site_3d.py:6
>>>>>>> lib/dispersion/ns_cpmg_2site_expanded.py:0
>>>>>>> lib/dispersion/ns_cpmg_2site_star.py:3
>>>>>>> lib/dispersion/ns_matrices.py:0
>>>>>>> lib/dispersion/ns_mmq_2site.py:12
>>>>>>> lib/dispersion/ns_mmq_3site.py:12
>>>>>>> lib/dispersion/ns_r1rho_2site.py:3
>>>>>>> lib/dispersion/ns_r1rho_3site.py:3
>>>>>>> lib/dispersion/tap03.py:0
>>>>>>> lib/dispersion/tp02.py:0
>>>>>>> lib/dispersion/tsmfk01.py:0
>>>>>>> lib/dispersion/two_point.py:0
>>>>>>>
>>>>>>>
>>>>>>> What do you think of the idea of making this a hard dependency:
>>>>>>>
>>>>>>> """
>>>>>>> Index: dep_check.py
>>>>>>> ===================================================================
>>>>>>> --- dep_check.py        (revision 24343)
>>>>>>> +++ dep_check.py        (working copy)
>>>>>>> @@ -37,6 +37,9 @@
>>>>>>>  # numpy.
>>>>>>>  try:
>>>>>>>      import numpy
>>>>>>> +    if float(numpy.version.version[:3]) < 1.6:
>>>>>>> +        sys.stderr.write("Version %s of the 'numpy' dependency is not
>>>>>>> supported, numpy >= 1.6 is required.\n" % numpy.version.version)
>>>>>>> +        sys.exit()
>>>>>>>  except ImportError:
>>>>>>>      sys.stderr.write("The dependency 'numpy' has not been 
>>>>>>> installed.\n")
>>>>>>>      sys.exit()
>>>>>>> """
>>>>>>>
>>>>>>> This might be the easiest way, just forcing users to upgrade.  I've
>>>>>>> used the out argument a lot with the frame order analysis as well and
>>>>>>> plan to use it more often, so maybe we just have to put our foot down
>>>>>>> and make this a hard dependency.  That will make everyone's life
>>>>>>> easier, and simplify what we as developers have to do to handle this.
>>>>>>> I can apply this to the trunk and release relax 3.2.3 with all the
>>>>>>> current fixes and this hard numpy version dependency, and then in a
>>>>>>> few weeks when you are ready, merge the disp_spin_speed branch and
>>>>>>> release relax 3.2.4.  What do you think?
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> Edward
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 27 June 2014 14:40, Troels Emtekær Linnet <tlin...@nmr-relax.com> 
>>>>>>> wrote:
>>>>>>>> Hi Ed.
>>>>>>>>
>>>>>>>> You can just grep for "out" or "einsum" in lib/dispersion.
>>>>>>>>
>>>>>>>> Best
>>>>>>>> Troels
>>>>>>>>
>>>>>>>> 2014-06-27 14:15 GMT+02:00 Edward d'Auvergne <edw...@nmr-relax.com>:
>>>>>>>>> Hi Troels,
>>>>>>>>>
>>>>>>>>> I think if would be better if we caught this earlier, specifically the
>>>>>>>>> select_model() method of the specific_analyses.relax_disp.uf module if
>>>>>>>>> the user chooses a model which is not supported by their numpy
>>>>>>>>> version.  Such a check with a RelaxError would only be two lines of
>>>>>>>>> code, plus a comment (which could include the current version in
>>>>>>>>> numpy.version.version).  It would be very useful to add the models to
>>>>>>>>> a list variable in specific_analyses.relax_disp.variables so that I
>>>>>>>>> can replicate the checks in the GUI.  Even better would be to add the
>>>>>>>>> 2 line check to a function in specific_analyses.relax_disp.checks to
>>>>>>>>> allow for consistent checking in all user interfaces.  There could
>>>>>>>>> even be two separate tests, one for the numpy.einsum and one for the
>>>>>>>>> numpy out argument, each with their own model lists, if you wish.
>>>>>>>>>
>>>>>>>>> Cheers,
>>>>>>>>>
>>>>>>>>> Edward
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 27 June 2014 12:58,  <tlin...@nmr-relax.com> wrote:
>>>>>>>>>> Author: tlinnet
>>>>>>>>>> Date: Fri Jun 27 12:58:22 2014
>>>>>>>>>> New Revision: 24336
>>>>>>>>>>
>>>>>>>>>> URL: http://svn.gna.org/viewcvs/relax?rev=24336&view=rev
>>>>>>>>>> Log:
>>>>>>>>>> Added to target function that experiment_type_setup() should not be 
>>>>>>>>>> initiated, if numpy.einsum is missing.
>>>>>>>>>>
>>>>>>>>>> Task #7807 (https://gna.org/task/index.php?7807): Speed-up of 
>>>>>>>>>> dispersion models for Clustered analysis.
>>>>>>>>>>
>>>>>>>>>> Modified:
>>>>>>>>>>     branches/disp_spin_speed/target_functions/relax_disp.py
>>>>>>>>>>
>>>>>>>>>> Modified: branches/disp_spin_speed/target_functions/relax_disp.py
>>>>>>>>>> URL: 
>>>>>>>>>> http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/target_functions/relax_disp.py?rev=24336&r1=24335&r2=24336&view=diff
>>>>>>>>>> ==============================================================================
>>>>>>>>>> --- branches/disp_spin_speed/target_functions/relax_disp.py     
>>>>>>>>>> (original)
>>>>>>>>>> +++ branches/disp_spin_speed/target_functions/relax_disp.py     Fri 
>>>>>>>>>> Jun 27 12:58:22 2014
>>>>>>>>>> @@ -365,8 +365,10 @@
>>>>>>>>>>          # This is to make sure, that the chi2 values is not 
>>>>>>>>>> affected by missing values.
>>>>>>>>>>          self.mask_replace_blank = masked_equal(self.missing, 1.0)
>>>>>>>>>>
>>>>>>>>>> -        # Check the experiment types, simplifying the data 
>>>>>>>>>> structures as needed.
>>>>>>>>>> -        self.experiment_type_setup()
>>>>>>>>>> +        # Check if eisum is available for numerical models.
>>>>>>>>>> +        if dep_check.einsum_module:
>>>>>>>>>> +            # Check the experiment types, simplifying the data 
>>>>>>>>>> structures as needed.
>>>>>>>>>> +            self.experiment_type_setup()
>>>>>>>>>>
>>>>>>>>>>          # Scaling initialisation.
>>>>>>>>>>          self.scaling_flag = False
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> relax (http://www.nmr-relax.com)
>>>>>>>>>>
>>>>>>>>>> This is the relax-commits mailing list
>>>>>>>>>> relax-comm...@gna.org
>>>>>>>>>>
>>>>>>>>>> To unsubscribe from this list, get a password
>>>>>>>>>> reminder, or change your subscription options,
>>>>>>>>>> visit the list information page at
>>>>>>>>>> https://mail.gna.org/listinfo/relax-commits
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> relax (http://www.nmr-relax.com)
>>>>>>>>>
>>>>>>>>> This is the relax-devel mailing list
>>>>>>>>> relax-devel@gna.org
>>>>>>>>>
>>>>>>>>> To unsubscribe from this list, get a password
>>>>>>>>> reminder, or change your subscription options,
>>>>>>>>> visit the list information page at
>>>>>>>>> https://mail.gna.org/listinfo/relax-devel

_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-devel mailing list
relax-devel@gna.org

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel

Reply via email to