Hi,

I've just seen all the commits replacing np.X() with X().  You've had
quite a busy few last days!  As for the chi2 function, a new one
could, and probably should, be created.  Maybe chi2_ND for a
multi-dimensional solution.  You will notice that there is also a
c_chi2.c file, so a multi-dimensional function matching yours in
chi2.py might be added to the C module in the future to match.  The
problem is not with the current chi2() function itself, but its
dchi2() gradient and d2chi2() Hessian equivalents.  The way a
multi-dimensional structure is handled for the gradients and Hessians
will be different.  Therefore for ND arrays, a different set of
functions should be added.  Though you don't need to worry about
gradients and Hessians, as these are not used in the dispersion
analysis.

Cheers,

Edward



On 10 June 2014 14:35, Troels Emtekær Linnet <[email protected]> wrote:
> Hi Edward.
>
> In the latest step, I convert all np.X to it correct version.
> Keeping np. is just for speed coding, while i progress.
>
> I think we can use chi2 function.
>
> But I need to remove the axis=1 keyword.
>
> It will not influence other results.
> But I wanted to mess as little as possible with other functions.
>
> 2014-06-10 14:23 GMT+02:00 Edward d'Auvergne <[email protected]>:
>> For a proper solution which is portable to all analysis types, the
>> chi-squared value should be calculated using the target_functions.chi2
>> module.  All other analyses use this module, and the relaxation
>> dispersion analysis should too.  Maybe a new function is required in
>> this module which implements this in the numpy way (i.e. numpy.sum()).
>>
>> You should also import the functions directly from numpy rather than
>> importing numpy as np.  I make sure that the math module and numpy
>> module function name clashes do not occur in relax, so 'import numpy
>> as np' is not used in relax.
>>
>> Regards,
>>
>> Edward
>>
>>
>>
>> On 8 June 2014 23:56,  <[email protected]> wrote:
>>> Author: tlinnet
>>> Date: Sun Jun  8 23:56:36 2014
>>> New Revision: 23748
>>>
>>> URL: http://svn.gna.org/viewcvs/relax?rev=23748&view=rev
>>> Log:
>>> Just a tiny little more speed, by removing temporary storage of chi2 
>>> calculation.
>>>
>>> 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=23748&r1=23747&r2=23748&view=diff
>>> ==============================================================================
>>> --- branches/disp_spin_speed/target_functions/relax_disp.py     (original)
>>> +++ branches/disp_spin_speed/target_functions/relax_disp.py     Sun Jun  8 
>>> 23:56:36 2014
>>> @@ -553,7 +553,6 @@
>>>          ## Back calculate the R2eff values.
>>>          r2eff_CR72(r20a=self.R20A_a, r20b=self.R20B_a, pA=self.pA_a, 
>>> dw=self.dw_frq_a, kex=self.kex_a, cpmg_frqs=self.cpmg_frqs_a, 
>>> back_calc=self.back_calc_a, num_points=self.num_disp_points_a)
>>>
>>> -
>>>          ## For all missing data points, set the back-calculated value to 
>>> the measured values so that it has no effect on the chi-squared value.
>>>          if self.has_missing:
>>>              # Loop over the spins.
>>> @@ -566,14 +565,8 @@
>>>                              #self.back_calc[0][si][mi][0][di] = 
>>> self.values[0][si][mi][0][di]
>>>                              self.back_calc_a[0][si][mi][0][di] = 
>>> self.values[0][si][mi][0][di]
>>>
>>> -                    ## Calculate and return the chi-squared value.
>>> -                    #chi2_sum += chi2(self.values[0][si][mi][0], 
>>> self.back_calc[0][si][mi][0], self.errors[0][si][mi][0])
>>> -
>>>          ## Calculate the chi-squared statistic.
>>> -        chi2_sum = np.sum((1.0 / self.errors_a * (self.values_a - 
>>> self.back_calc_a))**2)
>>> -
>>> -        # Return the total chi-squared value.
>>> -        return chi2_sum
>>> +        return chi2_sum = np.sum((1.0 / self.errors_a * (self.values_a - 
>>> self.back_calc_a))**2)
>>>
>>>
>>>      def calc_ns_cpmg_2site_3D_chi2(self, R20A=None, R20B=None, dw=None, 
>>> pA=None, kex=None):
>>>
>>>
>>> _______________________________________________
>>> relax (http://www.nmr-relax.com)
>>>
>>> This is the relax-commits mailing list
>>> [email protected]
>>>
>>> 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
>> [email protected]
>>
>> 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
[email protected]

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