linbox
Static Protected Member Functions
SmithFormIliopoulos Class Reference

This is Iliopoulos' algorithm to diagonalize. More...

#include <smith-form-iliopoulos.h>

Static Protected Member Functions

template<class Matrix , class Ring >
static MatrixeliminationRow (Matrix &A, const Ring &r)
 eliminationRow will make the first row (*, 0, ..., 0) by col operations. More...
 
template<class Matrix , class Ring >
static MatrixeliminationCol (Matrix &A, const Ring &r)
 eliminationCol will make the first col (*, 0, ..., 0) by elementary row operation. More...
 
template<class Matrix , class Ring >
static MatrixdiagonalizationIn (Matrix &A, const Ring &r)
 Diagonalize the matrix A.
 

Detailed Description

This is Iliopoulos' algorithm to diagonalize.

Compute Smith Form by elimination modulo m, for m = S(n), the last invariant factor. The elimination method is originally described in

Bibliography:
Worst Case Complexity Bounds on Algorithms for computing the Canonical Structure of Finite Abelian Groups and the Hermite and Smith Normal Forms of an Integer Matrix, by Costas Iliopoulos.

Member Function Documentation

◆ eliminationRow()

static Matrix& eliminationRow ( Matrix A,
const Ring &  r 
)
inlinestaticprotected

eliminationRow will make the first row (*, 0, ..., 0) by col operations.

It is the implementation of Iliopoulos algorithm. A Ring has basic ring functions plus gcd, xgcd, isDivisor, isUnit, normalIn

◆ eliminationCol()

static Matrix& eliminationCol ( Matrix A,
const Ring &  r 
)
inlinestaticprotected

eliminationCol will make the first col (*, 0, ..., 0) by elementary row operation.

It is the implementation of Iliopoulos algorithm


The documentation for this class was generated from the following file: