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)