Hi, These really should all be numpy.complex128 - the double precision complex floats. Setting this to numpy.complex64 drops the accuracy to single precision which may introduce truncation artefacts. Note though that if all data structures in a dispersion model can be converted from double to single precision, that the speed of that model should be significantly faster.
Regards, Edward On 20 June 2014 12:00, <[email protected]> wrote: > Author: tlinnet > Date: Fri Jun 20 12:00:15 2014 > New Revision: 24200 > > URL: http://svn.gna.org/viewcvs/relax?rev=24200&view=rev > Log: > Force complex64 in ns_mmq_2site_mq. > > This solves all systemtests. > > Forcing to be complex64, does not seems like a long standing solution, since > complex128 is possible. > > Task #7807 (https://gna.org/task/index.php?7807): Speed-up of dispersion > models for Clustered analysis. > > Modified: > branches/disp_spin_speed/lib/dispersion/ns_mmq_2site.py > > Modified: branches/disp_spin_speed/lib/dispersion/ns_mmq_2site.py > URL: > http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/lib/dispersion/ns_mmq_2site.py?rev=24200&r1=24199&r2=24200&view=diff > ============================================================================== > --- branches/disp_spin_speed/lib/dispersion/ns_mmq_2site.py (original) > +++ branches/disp_spin_speed/lib/dispersion/ns_mmq_2site.py Fri Jun 20 > 12:00:15 2014 > @@ -213,9 +213,9 @@ > > # Populate the m1 and m2 matrices (only once per function call for > speed). > # D+ matrix component. > - m1_mat = populate_matrix_rankN(R20A=R20A, R20B=R20B, dw=-dw - dwH, > k_AB=k_AB, k_BA=k_BA, tcp=tcp) > + m1_mat = populate_matrix_rankN(R20A=R20A, R20B=R20B, dw=-dw - dwH, > k_AB=k_AB, k_BA=k_BA, tcp=tcp).astype(complex64) > # Z- matrix component. > - m2_mat = populate_matrix_rankN(R20A=R20A, R20B=R20B, dw=dw - dwH, > k_AB=k_AB, k_BA=k_BA, tcp=tcp) > + m2_mat = populate_matrix_rankN(R20A=R20A, R20B=R20B, dw=dw - dwH, > k_AB=k_AB, k_BA=k_BA, tcp=tcp).astype(complex64) > > # The M1 and M2 matrices. > # Equivalent to D+. > @@ -239,24 +239,17 @@ > > # Loop over the time points, back calculating the R2eff > values. > for i in range(num_points_i): > - m1_mat_i = m1_mat[si, mi, oi, i] > - m2_mat_i = m2_mat[si, mi, oi, i] > - > # The M1 and M2 matrices. > # Equivalent to D+. > - #M1_i = M1_mat[si, mi, oi, i] > - M1_i = matrix_exponential(m1_mat_i) # Equivalent to > D+. > + M1_i = M1_mat[si, mi, oi, i] > # Equivalent to Z-. > - #M2_i = M1_mat[si, mi, oi, i] > - M2_i = matrix_exponential(m2_mat_i) # Equivalent to > Z-. > + M2_i = M1_mat[si, mi, oi, i] > > # The complex conjugates M1* and M2* > # Equivalent to D+*. > - #M1_star_i = M1_mat_star[si, mi, oi, i] > - M1_star_i = conj(M1_i) # Equivalent to D+*. > + M1_star_i = M1_mat_star[si, mi, oi, i] > # Equivalent to Z-*. > - #M2_star_i = M2_mat_star[si, mi, oi, i] > - M2_star_i = conj(M2_i) # Equivalent to Z-*. > + M2_star_i = M2_mat_star[si, mi, oi, i] > > # Repetitive dot products (minimised for speed). > M1_M2 = dot(M1_i, M2_i) > > > _______________________________________________ > 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

