If I can work out how to eliminate all looping in the numeric models,
you might have to revert this ;)

Regards,

Edward

On 20 June 2014 08:37,  <[email protected]> wrote:
> Author: tlinnet
> Date: Fri Jun 20 08:37:29 2014
> New Revision: 24186
>
> URL: http://svn.gna.org/viewcvs/relax?rev=24186&view=rev
> Log:
> Simplified model CPMG 2site 3D.
>
> The expansion of matrixes to higher dimensionality is not neccessary.
>
> 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_3d.py
>
> Modified: branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_3d.py
> URL: 
> http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_3d.py?rev=24186&r1=24185&r2=24186&view=diff
> ==============================================================================
> --- branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_3d.py (original)
> +++ branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_3d.py Fri Jun 20 
> 08:37:29 2014
> @@ -134,16 +134,11 @@
>      # This matrix is a propagator that will evolve the magnetization with 
> the matrix R for a delay tcp.
>      Rexpo_mat = matrix_exponential_rankN(R_mat)
>
> -    # Initial magnetisation.
> -    # Expand axis, and tile up to dimensions.
> -    Mint_mat =  tile(M0[newaxis, newaxis, newaxis, newaxis, newaxis, :, 
> newaxis], (NE, NS, NM, NO, ND, 1, 1) )
> -    r180x_mat = tile(r180x[newaxis, newaxis, newaxis, newaxis, newaxis, 
> ...], (NE, NS, NM, NO, ND, 1, 1) )
> -
>      # The the essential evolution matrix.
> -    # This is a dot product of the outer [7][7] matrix of the Rexpo_mat and 
> r180x_mat matrixes, which
> -    # have the shape [NE][NS][NM][NO][ND][7][7].
> +    # This is a dot product of the outer [7][7] matrix of the Rexpo_mat and 
> r180x matrixes, which
> +    # have the shape [NE][NS][NM][NO][ND][7][7] and [7][7].
>      # This can be achieved by using numpy einsum, and where ellipsis 
> notation will use the last axis.
> -    evolution_matrix_mat = einsum('...ij,...jk', Rexpo_mat, r180x_mat)
> +    evolution_matrix_mat = einsum('...ij,...jk', Rexpo_mat, r180x)
>      evolution_matrix_mat = einsum('...ij,...jk', evolution_matrix_mat, 
> Rexpo_mat)
>      evolution_matrix_mat = einsum('...ij,...jk', evolution_matrix_mat, 
> evolution_matrix_mat)
>
> @@ -162,7 +157,7 @@
>                  r20a_si_mi_di = r20a[0, si, mi, 0, di]
>
>                  # Initial magnetisation.
> -                Mint_i = Mint_mat[0, si, mi, 0, di]
> +                Mint_i = M0
>
>                  # This matrix is a propagator that will evolve the 
> magnetization with the matrix R for a delay tcp.
>                  evolution_matrix_i = evolution_matrix_mat[0, si, mi, 0, di]
> @@ -172,7 +167,7 @@
>                      Mint_i = dot(evolution_matrix_i, Mint_i)
>
>                  # The next lines calculate the R2eff using a two-point 
> approximation, i.e. assuming that the decay is mono-exponential.
> -                Mx = Mint_i[1][0] / pA
> +                Mx = Mint_i[1] / pA
>                  if Mx <= 0.0 or isNaN(Mx):
>                      back_calc[0, si, mi, 0, di] = r20a_si_mi_di
>                  else:
>
>
> _______________________________________________
> 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

Reply via email to