Package lib :: Package dispersion :: Module matrix_exponential
[hide private]
[frames] | no frames]

Module matrix_exponential

source code

Module for the calculation of the matrix exponential, for higher dimensional data.

Functions [hide private]
numpy int array of rank [NE][NS][NM][NO][ND][5] or [NS][NM][NO][ND][4].
create_index(NE=None, NS=None, NM=None, NO=None, ND=None)
Method to create the helper index numpy array, to help figuring out the indices to store in the exchange data matrix.
source code
numpy array of rank [NE*NS*NM*NO*ND][Col] or [NS*NM*NO*ND][Col].
data_view_via_striding_array_col(data_array=None)
Method to stride through the data matrix, extracting the outer array with nr of elements as Column length.
source code
numpy array of rank [NE*NS*NM*NO*ND][Col] or [NS*NM*NO*ND][Col].
data_view_via_striding_array_row_col(data_array=None)
Method to stride through the data matrix, extracting the outer matrix with nr of elements as Row X Column length.
source code
numpy float array of rank [NE][NS][NM][NO][ND][X][X]
matrix_exponential(A, dtype=None)
Calculate the exact matrix exponential using the eigenvalue decomposition approach, for higher dimensional data.
source code
numpy float array of rank [NS][NM][NO][ND][2][2]
matrix_exponential_rank_NS_NM_NO_ND_2_2(A, dtype=None)
Calculate the exact matrix exponential using the closed form in terms of the matrix elements., for higher dimensional data.
source code
Variables [hide private]
  __package__ = 'lib.dispersion'

Imports: array, any, complex128, dot, einsum, eye, exp, iscomplex, int16, newaxis, multiply, tile, sqrt, version, zeros, as_strided, eig, inv


Function Details [hide private]

create_index(NE=None, NS=None, NM=None, NO=None, ND=None)

source code 

Method to create the helper index numpy array, to help figuring out the indices to store in the exchange data matrix.

Parameters:
  • NE (None or int) - The total number of experiment types.
  • NS (int) - The total number of spins of the spin cluster.
  • NM (int) - The total number of magnetic field strengths.
  • NO (int) - The total number of spin-lock offsets.
  • ND (int) - The total number of dispersion points (either the spin-lock field strength or the nu_CPMG frequency).
Returns: numpy int array of rank [NE][NS][NM][NO][ND][5] or [NS][NM][NO][ND][4].
The numpy array for containing index indices for storing in the strided exchange data matrix.

data_view_via_striding_array_col(data_array=None)

source code 

Method to stride through the data matrix, extracting the outer array with nr of elements as Column length.

Parameters:
  • data (numpy array of rank [NE][NS][NM][NO][ND][Col] or [NS][NM][NO][ND][Col].) - The numpy data array to stride through.
Returns: numpy array of rank [NE*NS*NM*NO*ND][Col] or [NS*NM*NO*ND][Col].
The data view of the full numpy array, returned as a numpy array with number of small numpy arrays corresponding to Nr_mat=NE*NS*NM*NO*ND or Nr_mat=NS*NM*NO*ND, where each small array has size Col.

data_view_via_striding_array_row_col(data_array=None)

source code 

Method to stride through the data matrix, extracting the outer matrix with nr of elements as Row X Column length. Row and Col should have same size.

Parameters:
  • data (numpy array of rank [NE][NS][NM][NO][ND][Row][Col] or [NS][NM][NO][ND][Row][Col].) - The numpy data array to stride through.
Returns: numpy array of rank [NE*NS*NM*NO*ND][Col] or [NS*NM*NO*ND][Col].
The data view of the full numpy array, returned as a numpy array with number of small numpy arrays corresponding to Nr_mat=NE*NS*NM*NO*ND or Nr_mat=NS*NM*NO*ND, where each small array has size Col.

matrix_exponential(A, dtype=None)

source code 

Calculate the exact matrix exponential using the eigenvalue decomposition approach, for higher dimensional data. This of dimension [NE][NS][NM][NO][ND][X][X] or [NS][NM][NO][ND][X][X].

Here X is the Row and Column length, of the outer square matrix.

Parameters:
  • A (numpy float array of rank [NE][NS][NM][NO][ND][X][X]) - The square matrix to calculate the matrix exponential of.
  • dtype (data-type, optional) - If provided, forces the calculation to use the data type specified.
Returns: numpy float array of rank [NE][NS][NM][NO][ND][X][X]
The matrix exponential. This will have the same dimensionality as the A matrix.

matrix_exponential_rank_NS_NM_NO_ND_2_2(A, dtype=None)

source code 

Calculate the exact matrix exponential using the closed form in terms of the matrix elements., for higher dimensional data. This is of dimension [NS][NM][NO][ND][2][2].

Here X is the Row and Column length, of the outer square matrix.

Parameters:
  • A (numpy float array of rank [NS][NM][NO][ND][2][2]) - The square matrix to calculate the matrix exponential of.
  • dtype (data-type, optional) - If provided, forces the calculation to use the data type specified.
Returns: numpy float array of rank [NS][NM][NO][ND][2][2]
The matrix exponential. This will have the same dimensionality as the A matrix.