principia_materia.mathematics.tensor_utils module
- principia_materia.mathematics.tensor_utils.find_linearly_independent_vectors(vectors, tol=1e-06, return_vectors=False)
- Use Gram-Schmidt to find a set of linearly independent vectors. - Parameters:
- vectors (array of numbers, shape(n, m)) – The set of vectors to be orthonormalized, in row convention. 
- tol (float, optional, default to 1.0E-6) – Error tolerance. 
- return_vectors (bool, optional, default to False) – Whether to return the orthonormalized vectors. 
 
- Returns:
- liv_indices (array of int, shape(rank(vectors), )) – The indicies of the linearly independent vectors. 
- vectors (array of numbers, shape(n, m)) – (if return_vectors == True) The orthonormalized vectors. 
 
 
- principia_materia.mathematics.tensor_utils.find_most_linearly_independent_rows(vectors, tol=1e-06, return_vectors=False)
- principia_materia.mathematics.tensor_utils.rotate_tensor(rotation_matricies, tensor, rank)
- Rotate a tensor. \[T^{\prime}_{i^{\prime} j^{\prime} k^{\prime} l^{\prime} \cdots} = % \sum_{i j k l} % a_{i i^{\prime}} b_{j j^{\prime}} c_{i k^{\prime}} d_{i l^{\prime}} % \cdots T_{i j k l \cdots}\]- Parameters:
- rotation_matricies (list of arrays of float/complex, length of rank) – (Each array must be a square matrix of same shape of i-th index of tensor) Rotation matrices to rotate the tensor. 
- tensor (array of float/complex, shape(n_1, ..., n_{rank}) of shape(n_1, ..., n_{rank + 1})) – The tensor to rotate. 
- rank (int) – The rank of the tensor.