Author: tlinnet Date: Fri Jun 20 08:29:42 2014 New Revision: 24183 URL: http://svn.gna.org/viewcvs/relax?rev=24183&view=rev Log: Moved the costly matrix_exponential of cR2 out of for loops. 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_cpmg_2site_star.py Modified: branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_star.py URL: http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_star.py?rev=24183&r1=24182&r2=24183&view=diff ============================================================================== --- branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_star.py (original) +++ branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_star.py Fri Jun 20 08:29:42 2014 @@ -142,6 +142,7 @@ R_mat, cR2_mat, Rr_mat, Rex_mat, RCS_mat = rcpmg_star_rankN(R2A=r20a, R2B=r20b, pA=pA, pB=pB, dw=dw, k_AB=k_AB, k_BA=k_BA, tcp=tcp) eR_mat = matrix_exponential_rankN(R_mat) + ecR2_mat = matrix_exponential_rankN(cR2_mat) # Loop over the spins for si in range(NS): @@ -203,7 +204,7 @@ print asd eR_tcp = eR_mat[0, si, mi, 0, di] - ecR2_tcp = matrix_exponential(cR2_mat_i) + ecR2_tcp = ecR2_mat[0, si, mi, 0, di] # This is the propagator for an element of [delay tcp; 180 deg pulse; 2 times delay tcp; 180 deg pulse; delay tau], i.e. for 2 times tau-180-tau. prop_2 = dot(dot(eR_tcp, ecR2_tcp), eR_tcp)