Permutation of the indices of a tensor_type
tensor_type on which to perform permutation
permutation according to which the re-indexing of the indices is to be done
Important: The tensor package has been deprecated. Use the superseding command DifferentialGeometry[Tensor][RearrangeIndices].
This procedure allows you to change the way a given tensor_type is indexed. Given any permutation of the indices of a tensor_type and a tensor, the routine will re-index the tensor according to the given permutation.
T must be of rank 2 or more.
permutation is a list of indices (integers ranging from 1 to rank(T)) with no duplications and size equal to the rank of T. It is used to specify the re-indexing of the tensor in the following way: The `nth' index of the original tensor is moved to the position of `n' in the permutation. For example, a permutation list of 3,1,2 specifies that the third index of the original tensor will be the first index of the re-indexed tensor, the first index of the original tensor will be the second index of the re-indexed tensor, and the second index of the original tensor will be the third index of the re-indexed tensor (that is, i,j,k --> k,i,j).
This function is occasionally useful because of the rigidity in default indexing of the other utility routines, like prod, contract, and cov_diff, of the tensor package. Since you can have a preferred indexing different from the default, and switching back and forth between the two conventions could be confusing during a substantial computation, it is advised that you perform a re-ordering of indices of any computed tensor_type to comply with your indexing convention, whenever the default indexing is different from the one with which you are comfortable.
Note that any symmetrical properties of the indices of the input are not preserved in the re-indexed indices of the result.
This function is part of the tensor package, and so can be used in the form permute_indices(..) only after performing the command with(tensor) or with(tensor, permute_indices). The function can always be accessed in the long form tensor[permute_indices](..).
Find the transpose of a rank 2 tensor.
A_compts ≔ array⁡1..3,1..3:
forito3doforjto3doA_comptsi,j ≔ cat⁡'a',i,jend doend do:A ≔ create⁡1,−1,op⁡A_compts
A_transpose ≔ permute_indices⁡A,2,1
Perform a cyclic permutation on a rank 3 tensor.
B_compts ≔ array⁡1..3,1..3,1..3:
forito3doforjto3doforkto3doB_comptsi,j,k ≔ cat⁡'b',i,j,kend doend doend do:B ≔ create⁡1,−1,1,op⁡B_compts
C ≔ permute_indices⁡B,3,1,2
Download Help Document
What kind of issue would you like to report? (Optional)