You are Correct !!!

The final version is:
pA_arr = pA*self.spins_a

The "trick" was to make a numpy multi dimensional spin array in the
__init__ function of the class.

That is filled with 1.0 where there are dispersion points.

This array essential replace the spin looping!

Best
Troels




2014-06-10 11:56 GMT+02:00 Edward d'Auvergne <[email protected]>:
> Hi Troels,
>
> From the dispersion equations, to me it looks like that you can keep
> pA as a single value.  Why have you converted it to an array
> structure?  You will have no problems as you can multiply any numpy
> array with a single float.  This should be the same for all model
> parameters, excluding dw and R20.  If you can use single values, that
> should be much quicker for the target functions.
>
> Regards,
>
> Edward
>
>
>
> On 8 June 2014 19:48,  <[email protected]> wrote:
>> Author: tlinnet
>> Date: Sun Jun  8 19:48:31 2014
>> New Revision: 23735
>>
>> URL: http://svn.gna.org/viewcvs/relax?rev=23735&view=rev
>> Log:
>> Important fix for the creation of the multi dimensional pA numpy array.
>>
>> It should be created as numpy.zeros([ei][si][mi][oi]) instead of 
>> numpy.ones([ei][si][mi][oi]).
>>
>> This allows for rapid testing of all dimensions with np.allclose(pA, 
>> numpy.ones(dw.shape)).
>> pA can have missing filled out values, when the number of dispersion points 
>> are different
>> per spectrometer frequency.
>>
>> 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=23735&r1=23734&r2=23735&view=diff
>> ==============================================================================
>> --- branches/disp_spin_speed/target_functions/relax_disp.py     (original)
>> +++ branches/disp_spin_speed/target_functions/relax_disp.py     Sun Jun  8 
>> 19:48:31 2014
>> @@ -411,7 +411,7 @@
>>              # The number of disp point can change per spectrometer, so we 
>> make the maximum size.
>>              self.R20A_a = np.ones(back_calc_shape + 
>> [self.max_num_disp_points])
>>              self.R20B_a = np.ones(back_calc_shape + 
>> [self.max_num_disp_points])
>> -            self.pA_a = np.ones(back_calc_shape + 
>> [self.max_num_disp_points])
>> +            self.pA_a = np.zeros(back_calc_shape + 
>> [self.max_num_disp_points])
>>              self.dw_frq_a = np.ones(back_calc_shape + 
>> [self.max_num_disp_points])
>>              self.kex_a = np.ones(back_calc_shape + 
>> [self.max_num_disp_points])
>>              self.cpmg_frqs_a = np.ones(back_calc_shape + 
>> [self.max_num_disp_points])
>>
>>
>> _______________________________________________
>> 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