Oh, the 'ei', 'si', 'mi', etc. notation I used stands for experimental
index, spin index, magnetic field strength index, etc.  That is why I
used NE, NS, NM, etc. for the total numbers, as these stand for number
of experiments, number of spins, number of magnetic field strength
index, etc.  So ei is the index, and NE is the sum.  To avoid
confusion with the various indices, maybe your self.ei could be
replaced with self.NE, self.ne, self.num_exp, or some other name.

Regards,

Edward



On 11 June 2014 09:16, Edward d'Auvergne <[email protected]> wrote:
> Hi Troels,
>
> If you construct the dw_mask structure here, you will need to include
> the ei index, replacing:
>
>                         self.dw_mask[si, :, si, mi] = self.frqs[ei][si][mi]
>
> with:
>
>                         self.dw_mask[si, ei, si, mi] = self.frqs[ei][si][mi]
>
> It also seems strange to use a list for the numpy.zeros() function,
> but it seems to work anyway.  For safety though, in case older or
> future versions do not support a list argument, maybe you could use
> the Python tuple() function to convert to the correct argument form.
> One last suggestion, as I made in my second code example at
> http://thread.gmane.org/gmane.science.nmr.relax.devel/6135/focus=6157,
> is that self.dw_temp can be created instead as:
>
>             self.dw_temp = zeros(self.numpy_array_shape, float64)
>
> Then it doesn't use the [si] index in the target function.  This makes
> this temporary storage smaller.
>
> Cheers,
>
> Edward
>
>
>
> On 11 June 2014 08:28,  <[email protected]> wrote:
>> Author: tlinnet
>> Date: Wed Jun 11 08:28:25 2014
>> New Revision: 23813
>>
>> URL: http://svn.gna.org/viewcvs/relax?rev=23813&view=rev
>> Log:
>> Made iinitialisation structures for dw.
>>
>> 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=23813&r1=23812&r2=23813&view=diff
>> ==============================================================================
>> --- branches/disp_spin_speed/target_functions/relax_disp.py     (original)
>> +++ branches/disp_spin_speed/target_functions/relax_disp.py     Wed Jun 11 
>> 08:28:25 2014
>> @@ -408,6 +408,13 @@
>>              # Define the shape of all the numpy arrays.
>>              self.numpy_array_shape = back_calc_shape + 
>> [self.max_num_disp_points]
>>
>> +            # Set the dimensions to paramater.
>> +            self.ei = self.numpy_array_shape[0]
>> +            self.si = self.numpy_array_shape[1]
>> +            self.mi = self.numpy_array_shape[2]
>> +            self.oi = self.numpy_array_shape[3]
>> +            self.di = self.numpy_array_shape[4]
>> +
>>              # Create zero and one numpy structure.
>>              zeros_a = zeros(self.numpy_array_shape, float64)
>>              ones_a = ones(self.numpy_array_shape, float64)
>> @@ -427,12 +434,25 @@
>>              self.disp_struct = deepcopy(zeros_a)
>>              self.has_missing = False
>>
>> +            # Create special numpy structures.
>> +            # Structure of dw.
>> +            self.dw_struct = deepcopy(zeros_a)
>> +
>> +            # Temporary storage to avoid memory allocations and garbage 
>> collection.
>> +            self.dw_temp = zeros([self.si] + self.numpy_array_shape, 
>> float64)
>> +
>> +            # The structure for multiplication with dw to piecewise build 
>> up the full dw structure.
>> +            self.dw_mask = deepcopy(self.dw_temp)
>> +
>>              # Loop over the experiment types.
>>              for ei in range(self.num_exp):
>>                  # Loop over the spins.
>>                  for si in range(self.num_spins):
>>                      # Loop over the spectrometer frequencies.
>>                      for mi in range(self.num_frq):
>> +                        # Fill dw_mask with frequencies.
>> +                        self.dw_mask[si, :, si, mi] = self.frqs[ei][si][mi]
>> +
>>                          # Loop over the offsets.
>>                          for oi in range(self.num_offsets[ei][si][mi]):
>>                              # Extract number of dispersion 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

Reply via email to