Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

GaussDomain Class Template Reference

#include <gauss.h>

Inheritance diagram for GaussDomain:

PowerGaussDomain List of all members.

Detailed Description

template<class _Field>
class LinBox::GaussDomain< _Field >

Repository of functions for rank by elimination on sparse matrices.

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)


Member Function Documentation

const Field& field  )  [inline]
 

accessor for the field of computation

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.

Using : SparseFindPivot(..., density) for sparsest column, and eliminate (..., density)

The Matrix parameter must meet the LinBox sparse matrix interface. [check details]. The storrows indicates whether the algorithm must keep already computed rows.

[Jean-Guillaume Dumas and Gilles Villard, Computing the rank of sparse matrices over finite fields. In Ganzha et~al. CASC'2002, pages 47--62.]

unsigned long& rankinNoReordering unsigned long &  rank,
Matrix &  LigneA,
unsigned long  Ni,
unsigned long  Nj
 

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)

unsigned long& LUin unsigned long &  rank,
Matrix &  A
 

Dense in place LU factorization without reordering.

Using : FindPivot and LU

unsigned long& upperin unsigned long &  rank,
Matrix &  A
 

Dense in place Gaussian elimination without reordering.

Using : FindPivot and LU


The documentation for this class was generated from the following file:
Generated on Thu Feb 8 22:32:57 2007 for linbox by doxygen 1.3.4