mailr24181 - /branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_star.py


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by tlinnet on June 20, 2014 - 08:19:
Author: tlinnet
Date: Fri Jun 20 08:19:17 2014
New Revision: 24181

URL: http://svn.gna.org/viewcvs/relax?rev=24181&view=rev
Log:
Moved the costly finding of matrix exponential out of for loops for eR_tcp.

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=24181&r1=24180&r2=24181&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:19:17 2014
@@ -63,7 +63,7 @@
 # relax module imports.
 from lib.float import isNaN
 from lib.dispersion.ns_matrices import rcpmg_star_rankN
-from lib.linear_algebra.matrix_exponential import matrix_exponential
+from lib.linear_algebra.matrix_exponential import matrix_exponential, 
matrix_exponential_rankN
 from lib.linear_algebra.matrix_power import square_matrix_power
 
 
@@ -141,6 +141,8 @@
     # The matrix R that contains all the contributions to the evolution, 
i.e. relaxation, exchange and chemical shift evolution.
     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)
+
     # Loop over the spins
     for si in range(NS):
         # Loop over the spectrometer frequencies.
@@ -200,7 +202,7 @@
                     print tcp_si_mi_di - tcp[0, si, mi, 0, di]
                     print asd
 
-                eR_tcp = matrix_exponential(R_mat_i)
+                eR_tcp = eR_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, matrix_exponential(cR2_mat_i)), 
eR_tcp)




Related Messages


Powered by MHonArc, Updated Fri Jun 20 08:20:03 2014