Permutations¶
Permutation vectors¶
In order to represent arbitrary permutations, Elemental recently switched from LAPACK-style pivot sequence representations to general permutation vectors, where entry i of the permutation vector p contains the column index of the nonzero entry in row i of the corresponding permutation matrix.
PermuteCols¶
-
void
PermuteCols
(DistMatrix<T, U, V> &A, const DistMatrix<int, UPerm, STAR> &perm)¶
-
void
PermuteCols
(DistMatrix<T, U, V> &A, const DistMatrix<int, UPerm, STAR> &perm, const DistMatrix<int, UPerm, STAR> &invPerm)¶ Provide the inverse permutations so that they do not need to be internally computed and discarded.
PermuteRows¶
-
void
PermuteRows
(DistMatrix<T, U, V> &A, const DistMatrix<int, UPerm, STAR> &perm)¶
-
void
PermuteRows
(DistMatrix<T, U, V> &A, const DistMatrix<int, UPerm, STAR> &perm, const DistMatrix<int, UPerm, STAR> &invPerm)¶ Provide the inverse permutations so that they do not need to be internally computed and discarded.
InversePermuteCols¶
-
void
InversePermuteCols
(DistMatrix<T, U, V> &A, const DistMatrix<int, UPerm, STAR> &perm)¶
InversePermuteRows¶
-
void
InversePermuteRows
(DistMatrix<T, U, V> &A, const DistMatrix<int, UPerm, STAR> &perm)¶
InvertPermutation¶
ExplicitPermutation¶
-
void
ExplicitPermutation
(const DistMatrix<int, UPerm, STAR> &perm, DistMatrix<int, U, V> &P)¶ Return the full permutation matrix, P, represented by the permutation vector perm.
PermutationParity¶
PermutationMeta¶
-
type
PermutationMeta
¶ -
int
align
¶
-
std::vector<int>
sendCounts
¶
-
std::vector<int>
sendDispls
¶
-
std::vector<int>
sendIdx
¶
-
std::vector<int>
sendRanks
¶
-
std::vector<int>
recvCounts
¶
-
std::vector<int>
recvDispls
¶
-
std::vector<int>
recvIdx
¶
-
std::vector<int>
recvRanks
¶
-
int
TotalSend
() const¶
-
int
TotalRecv
() const¶
-
void
ScaleUp
(int length)¶
-
void
ScaleDown
(int length)¶
-
int
Pivot sequences¶
These routines make use of LAPACK-style pivot sequence vectors, where the pivot sequence vector p implies the sequence of swaps \((0,p_0)\), \((1,p_1)\), …, \((n-1,p_{n-1})\). Elemental used to follow this convention when returning permutations from factorizations, but clearly this representation is somewhat restrictive, as routines which perform multiple swaps for each pivot (e.g., some variants of Bunch-Kaufman) cannot be handled.
ApplyColPivots¶
-
void
ApplyColPivots
(DistMatrix<T, U1, V1> &A, const DistMatrix<int, U2, V2> &pivots)¶
ApplyInverseColPivots¶
-
void
ApplyInverseColPivots
(DistMatrix<T, U1, V1> &A, const DistMatrix<int, U2, V2> &pivots)¶
ApplyRowPivots¶
-
void
ApplyRowPivots
(DistMatrix<T, U1, V1> &A, const DistMatrix<int, U2, V2> &pivots)¶
ApplyInverseRowPivots¶
-
void
ApplyInverseRowPivots
(DistMatrix<T, U1, V1> &A, const DistMatrix<int, U2, V2> &pivots)¶
ApplySymmetricPivots¶
-
void
ApplySymmetricPivots
(UpperOrLower uplo, Matrix<T> &A, const Matrix<int> &pivots, bool conjugate = false)¶
-
void
ApplySymmetricPivots
(UpperOrLower uplo, DistMatrix<T> &A, const DistMatrix<int, UPerm, STAR> &pivots, bool conjugate = false)¶
ApplyInverseSymmetricPivots¶
-
void
ApplyInverseSymmetricPivots
(UpperOrLower uplo, Matrix<T> &A, const Matrix<int> &pivots, bool conjugate = false)¶
-
void
ApplyInverseSymmetricPivots
(UpperOrLower uplo, DistMatrix<T> &A, const DistMatrix<int, UPerm, STAR> &pivots, bool conjugate = false)¶