mailRe: r24200 - /branches/disp_spin_speed/lib/dispersion/ns_mmq_2site.py


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

Header


Content

Posted by Edward d'Auvergne on June 23, 2014 - 11:55:
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,  <tlinnet@xxxxxxxxxxxxx> 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
relax-commits@xxxxxxx

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



Related Messages


Powered by MHonArc, Updated Mon Jun 23 12:20:15 2014