#include <gauss.h>
Inheritance diagram for GaussDomain:
Several versions allow for adjustment of the pivoting strategy and for choosing in-place elimination or for not modifying the input matrix. Also an LU interface is offered.
Public Member Functions | |
GaussDomain (const Field &F) | |
The field parameter is the domain over which to perform computations. | |
const Field & | field () |
template<class Matrix> unsigned long & | rankinLinearPivoting (unsigned long &rank, Matrix &A, unsigned long Ni, unsigned long Nj, bool storrows=false) |
Sparse in place Gaussian elimination with reordering to reduce fill-in. pivots are chosen in sparsest column of sparsest row. This runs in linear overhead. It is similar in spirit but different from Markovitz' approach. | |
template<class Matrix> unsigned long & | rankinNoReordering (unsigned long &rank, Matrix &LigneA, unsigned long Ni, unsigned long Nj) |
Sparse Gaussian elimination without reordering. | |
template<class Matrix> unsigned long & | LUin (unsigned long &rank, Matrix &A) |
Dense in place LU factorization without reordering. | |
template<class Matrix> unsigned long & | upperin (unsigned long &rank, Matrix &A) |
Dense in place Gaussian elimination without reordering. | |
rank | |
Callers of the different rank routines\ -/ The "in" suffix indicates in place computation\ -/ Without Ni, Nj, the Matrix parameter must be a vector of sparse row vectors, NOT storing any zero.\ -/ Calls rankinLinearPivoting (by default) or rankinNoReordering | |
template<class Matrix> unsigned long & | rankin (unsigned long &rank, Matrix &A, SparseEliminationTraits::PivotStrategy reord=SparseEliminationTraits::PIVOT_LINEAR, bool storrows=false) |
template<class Matrix> unsigned long & | rankin (unsigned long &rank, Matrix &A, unsigned long Ni, unsigned long Nj, SparseEliminationTraits::PivotStrategy reord=SparseEliminationTraits::PIVOT_LINEAR, bool storrows=false) |
template<class Matrix> unsigned long & | rank (unsigned long &rank, const Matrix &A, SparseEliminationTraits::PivotStrategy reord=SparseEliminationTraits::PIVOT_LINEAR, bool storrows=false) |
template<class Matrix> unsigned long & | rank (unsigned long &rank, const Matrix &A, unsigned long Ni, unsigned long Nj, SparseEliminationTraits::PivotStrategy reord=SparseEliminationTraits::PIVOT_LINEAR, bool storrows=false) |
|
accessor for the field of computation |
|
Sparse in place Gaussian elimination with reordering to reduce fill-in. pivots are chosen in sparsest column of sparsest row. This runs in linear overhead. It is similar in spirit but different from Markovitz' approach.
|
|
Sparse Gaussian elimination without reordering. Gaussian elimination is done on a copy of the matrix. Using : SparseFindPivot eliminate Requirements : SLA is an array of sparse rows WARNING : NOT IN PLACE, THERE IS A COPY. Without reordering (Pivot is first non-zero in row) |
|
Dense in place LU factorization without reordering. Using : FindPivot and LU |
|
Dense in place Gaussian elimination without reordering. Using : FindPivot and LU |