All Gaussian elimination operations in Meataxe64 are based on the following definitions.
\left(\begin{array}{cc} M & 0\\ K & 1\end{array}\right) \rho A \gamma = \left(\begin{array}{cc} -1 & R \\ 0 & 0\end{array}\right)
where A is the input matrix, and M, K, ρ, γ and R correspond to various components of the output. Specifically
is an invertible matrix called the multiplier
is a matrix called the cleaner
is the matrix corresponding to the row select bitstring (left multiplication by this matrix shuffles the pivot rows to the top, preserving the order within the sets of pivot and non-pivot rows)
is the matrix corresponding to the column select bitstring (right multiplication by this matrix shuffles the pivot columns to the left, preserving the order within the sets of pivot and non-pivot columns)
Is a matrix called the remnant
Not all of these are necessarily always computed.
‣ MTX64_Echelize ( mat ) | ( function ) |
Returns: a record with components cleaner
, colSelect
, multiplier
, rank
, remnant
and rowSelect
containing appropriate parts of the results. This uses the recursive single-threaded "slab" implementation in the C code of MeatAxe64
‣ MTX64_GAPEchelize ( mat, optrec ) | ( function ) |
Returns: a record with some or all of the components cleaner
, colSelect
, multiplier
, rank
, remnant
and rowSelect
optrec may have components multNeeded
, cleanerNeeded
, remnantNeeded
(all default to true
. Setting any of these to false means the corresponding part of the output may not be computed, which can save time. An additional optional component failIfSingular
will cause the algorithm to return fail
as soon as it detects that mat is singular.
This uses a GAP implementation of the recursive echelonisation, but still falls back to the C code for multiplication and in the base case.
Based on MTX64_Echelize
(2.1-1) and MTX64_GAPEchelize
(2.1-2) methods are installed for a number of standard GAP operations for Meataxe64 matrices. These include RankMat
(Reference: RankMat), InverseMutable
(Reference: InverseMutable), NullspaceMat
(Reference: NullspaceMat), SemiEchelonMat
(Reference: SemiEchelonMat) (including its destructive variants and variants computing transforming matrices), SolutionMat
(Reference: SolutionMat), TriangulizedMat
(Reference: TriangulizedMat), BaseMat
(Reference: BaseMat) (and destructive variant) and SumIntersectionMat
(Reference: SumIntersectionMat).
generated by GAPDoc2HTML