GF2::LUDecompose
Overview
A GF2::LUDecompose object computes the LU decomposition for a square bit-matrix \(A\).
Declaration
The GF2::LUDecompose class is defined in the header <GF2/LUDecompose.h> as follows:
namespace GF2 {
template<
std::unsigned_integral Block = uint64_t,
Allocator = std::allocator<Block>
> class LUDecompose;
}
See the documentation for GF2::Vector and GF2::Matrix for more information on the two template parameters.
Class Types
Type |
Definition |
|---|---|
|
An alias for |
|
An alias for |
Methods
Construction |
|
|---|---|
Create a |
|
Queries |
|
Various queries about the state of the system. |
|
The Decomposition |
|
Read access to some of the components of the LU decomposition of the square bit-matrix \(A\). If the decomposition is written as \(P \cdot A = L \cdot U\) then \(L\) is unit-lower-triangular, \(U\) is upper-triangular, and \(P\) is a permutation matrix that is stored in a compact form. \(L\) and \(U\) are actually compactly packed together in the single bit-matrix called \(LU\). |
|
Read access to the row permutations used in the LU decomposition. These are alternative compact forms for the permutation matrix \(P\). The first is more practically useful but the second is commonly referenced in the literature. |
|
Apply the row permutations from the LU decomposition to another bit-vector or bit-matrix. |
|
Use the decomposition to quickly solve a system \(A \cdot x = b\) or multiple systems \(A \cdot x = B\) for each column of \(B\). |
|
Use the decomposition to invert the matrix \(A\) |
|