tensor[permute_indices] - Permutation of the indices of a tensor_type
|
Calling Sequence
|
|
permute_indices(T, permutation)
|
|
Parameters
|
|
T
|
-
|
tensor_type on which to perform permutation
|
permutation
|
-
|
permutation according to which the re-indexing of the indices is to be done
|
|
|
|
|
Description
|
|
•
|
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 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](..).
|
|
|
Examples
|
|
>
|
|
Find the transpose of a rank 2 tensor.
>
|
|
>
|
![for i to 3 do for j to 3 do A_compts[i, j] := cat('a', i, j) end do end do](/support/helpjp/helpview.aspx?si=5529/file04540/math108.png)
|
| (1) |
>
|
|
| (2) |
Perform a cyclic permutation on a rank 3 tensor.
>
|
|
>
|
![for i to 3 do for j to 3 do for k to 3 do B_compts[i, j, k] := cat('b', i, j, k) end do end do end do](/support/helpjp/helpview.aspx?si=5529/file04540/math129.png)
|

| (3) |
>
|
|

| (4) |
|
|