CAPD DynSys Library 5.2.0
capd::matrixAlgorithms Namespace Reference

Matrix algorithms: Gauss elimination, orthonormalization, QR decomposition etc. More...

Classes

struct  _CreateSmithForm_
 
struct  _CreateSmithForm_< Matrix< Scalar, 0, 0 > >
 
struct  CAPDIntMatrixAlgorithms
 
class  CAPDSmithForm
 
class  Gershgorin
 
class  Gershgorin< MatrixType, false >
 Specialization for non-rigorous types. More...
 
class  Gershgorin< MatrixType, true >
 Specialization for rigorous (interval) types. More...
 
struct  GetExpRemainder
 
struct  GetExpRemainder< T, false >
 
struct  GetExpRemainder< T, true >
 
struct  GetPARISmithFormTraits
 
struct  IInvert
 
struct  IntMatrixAlgorithmsFactory
 
class  Invert
 
class  PARIInterface
 
struct  PARIIntMatrixAlgorithms
 
class  PARISmithForm
 
class  QuotientBaseMatrix
 
class  SmithForm
 
class  SmithFormFactory
 
struct  SmithFormTraits
 
class  SolveLinearEquation
 

Typedefs

typedef CAPDIntMatrixAlgorithms DefaultIntMatrixAlgorithms
 
typedef long long llong
 

Functions

template<typename MatrixType , typename ResultType >
void gauss (MatrixType a, ResultType b, ResultType &result)
 
template<typename MatrixType , typename VectorType >
VectorType gauss (const MatrixType &A, const VectorType &b)
 Gauss elimination. More...
 
template<typename MatrixType >
void orthonormalize (MatrixType &Q)
 
template<typename MatrixType >
void orthonormalize (MatrixType &Q, const typename MatrixType::RowVectorType &v)
 
template<typename MatrixType >
void orthonormalize (MatrixType &Q, const MatrixType &R)
 
template<typename MatrixType >
void QR_decompose (const MatrixType &A, MatrixType &Q, MatrixType &R)
 
template<typename MatrixType >
int symMatrixDiagonalize (const MatrixType &A, MatrixType &D, typename MatrixType::ScalarType diagonalizingRelTolerance=capd::TypeTraits< typename MatrixType::ScalarType >::epsilon())
 
template<typename MatrixType >
MatrixType::ScalarType spectralRadiusOfSymMatrix (const MatrixType &A, typename MatrixType::ScalarType diagonalizingRelTolerance=capd::TypeTraits< typename MatrixType::ScalarType >::epsilon())
 this function computes bound for spectral radius of a symmetric matrix first it computes matrix which has the same eigenvalues and which is close to diagonal, next bound is computed from Gerschgorin theorem More...
 
template<typename MatrixType >
MatrixType::ScalarType maxEigenValueOfSymMatrix (const MatrixType &A, typename MatrixType::ScalarType diagonalizingRelTolerance=capd::TypeTraits< typename MatrixType::ScalarType >::epsilon())
 this function computes bound for maximal eigenvalue of a symmetric matrix first it computes matrix which has the same eigenvalues and which is close to diagonal, next bound is computed from Gerschgorin theorem More...
 
template<typename MatrixType >
MatrixType matrixExp (const MatrixType &M, typename MatrixType::ScalarType tolerance=capd::TypeTraits< typename MatrixType::ScalarType >::epsilon())
 
template<typename MatrixType >
void croutDecomposition (const MatrixType &A, MatrixType &D, MatrixType &G)
 Crout Decomposition of a matrix As a result matrix D is a lower triangle and G is an upper triangle with 1 on diagonal. More...
 
template<typename MatrixType >
MatrixType invLowerTriangleMatrix (const MatrixType &A)
 
template<typename MatrixType >
MatrixType invUpperTriangleMatrix (const MatrixType &A)
 
template<typename MatrixType >
MatrixType inverseMatrix (const MatrixType &A)
 
template<typename MatrixType >
MatrixType gaussInverseMatrix (const MatrixType &A)
 
template<typename MatrixType >
MatrixType::ScalarType det (MatrixType A)
 Computes determinant of a matrix A by LU decomposition. More...
 
template<typename MatrixType , typename VectorType , typename IntVectorType >
void computeSortingPermutation (const MatrixType &Q, const VectorType &v, IntVectorType &permutation)
 computes sorting permutation according to sizes of the set in the direction of the base vectors More...
 
template<typename MatrixType , typename IntVectorType >
void QRdecomposeWithPivoting (const MatrixType &A, const typename MatrixType::RowVectorType &v, MatrixType &Q, MatrixType &R, typename MatrixType::RowVectorType &sizes, IntVectorType &p)
 
template<class matrix >
void kernelImage (matrix &B, matrix &kernel, matrix &image)
 
template<class matrix , class sqMatrix1 , class sqMatrix2 >
void smithForm (matrix &B, sqMatrix1 &Q, sqMatrix1 &Qinv, sqMatrix2 &R, sqMatrix2 &Rinv, int &s, int &t)
 
template<class matrix , class vector , class colVector >
bool solveLinearEquation (const matrix &A, const colVector &b, vector &x)
 
template<class matrix >
bool invert (const matrix &A, matrix &Ainv)
 
template<class matrix , class IntVector >
void quotientBaseMatrix (const matrix &A_W, const matrix &A_V, matrix &A_U, IntVector &A_orders)
 
template<class matrix >
void copy (const matrix &A, matrix &result, int row, int col)
 
template<class matrix >
void spaceIntersection (const matrix &A, const matrix &B, matrix &C)
 
template<typename intType >
bool isDivisible (intType a, intType b)
 
bool isDivisible (double, double)
 
template<typename intType >
bool isInvertible (intType a)
 
template<typename intType >
intType inverse (intType a)
 
template<typename matrix >
capd::vectalg::Matrix< typename matrix::ScalarType, 0, 0 > emptyMatrix ()
 
template<class matrix >
void rowExchange (matrix &A, int i, int j)
 
template<class matrix >
void rowMultiply (matrix &A, int i, typename matrix::ScalarType s)
 
template<class matrix >
void rowAdd (matrix &A, int i, int j, typename matrix::ScalarType s)
 
template<class matrix >
void columnExchange (matrix &A, int i, int j)
 
template<class matrix >
void columnMultiply (matrix &A, int j, typename matrix::ScalarType s)
 
template<class matrix >
void columnAdd (matrix &A, int i, int j, typename matrix::ScalarType s)
 
template<class matrix , class sqMatrix >
void rowAdd (matrix &B, sqMatrix &Q, int i, int j, typename matrix::ScalarType q)
 
template<class matrix , class sqMatrix >
void columnExchange (matrix &B, sqMatrix &R, int i, int j)
 
template<class matrix , class sqMatrix >
void columnMultiply (matrix &B, sqMatrix &R, int i, typename matrix::ScalarType q)
 
template<class matrix , class sqMatrix >
void columnAdd (matrix &B, sqMatrix &R, int i, int j, typename matrix::ScalarType q)
 
template<class matrix , class sqMatrix >
void rowExchange (matrix &B, sqMatrix &Q, sqMatrix &Qinv, int i, int j)
 
template<class matrix , class sqMatrix >
void rowMultiply (matrix &B, sqMatrix &Q, sqMatrix &Qinv, int i, typename matrix::ScalarType q)
 
template<class matrix , class sqMatrix >
void rowAdd (matrix &B, sqMatrix &Q, sqMatrix &Qinv, int i, int j, typename matrix::ScalarType q)
 
template<class matrix , class sqMatrix >
void columnExchange (matrix &B, sqMatrix &R, sqMatrix &Rinv, int i, int j)
 
template<class matrix , class sqMatrix >
void columnMultiply (matrix &B, sqMatrix &R, sqMatrix &Rinv, int i, typename matrix::ScalarType q)
 
template<class matrix , class sqMatrix >
void columnAdd (matrix &B, sqMatrix &R, sqMatrix &Rinv, int i, int j, typename matrix::ScalarType q)
 
template<class matrix , class sqMatrix >
void partRowReduce (matrix &B, sqMatrix &Q, sqMatrix &Qinv, int k, int l)
 
template<class matrix , class sqMatrix >
void partColumnReduce (matrix &B, sqMatrix &R, sqMatrix &Rinv, int k, int l)
 
template<class matrix >
void smallestNonZero (const matrix &A, typename matrix::ScalarType &s, int &iOpt, int &jOpt)
 
template<class matrix >
bool nonZero (const matrix &A)
 
template<class matrix , class sqMatrix >
void rowPrepare (matrix &B, sqMatrix &Q, sqMatrix &Qinv, int k, int l)
 
template<class matrix , class sqMatrix >
void rowReduce (matrix &B, sqMatrix &Q, sqMatrix &Qinv, int k, int l)
 
template<class matrix , class sqMatrix >
void rowEchelon (matrix &B, sqMatrix &Q, sqMatrix &Qinv, int &k)
 
template<class matrix , class sqMatrix >
void columnPrepare (matrix &B, sqMatrix &R, sqMatrix &Rinv, int k, int l)
 
template<class matrix , class sqMatrix >
void columnReduce (matrix &B, sqMatrix &R, sqMatrix &Rinv, int k, int l)
 
template<class matrix , class sqMatrix >
void columnEchelon (matrix &B, sqMatrix &R, sqMatrix &Rinv, int &l)
 
template<class MatrixType >
void krawczykCorrection (const MatrixType &A, MatrixType &invA)
 
template<class MatrixType >
MatrixType krawczykInverse (const MatrixType &A)
 
template void rowExchange< capd::vectalg::Matrix< int, 0, 0 > > (capd::vectalg::Matrix< int, 0, 0 > &A, int i, int j)
 
template void rowMultiply< capd::vectalg::Matrix< int, 0, 0 > > (capd::vectalg::Matrix< int, 0, 0 > &A, int i, capd::vectalg::Matrix< int, 0, 0 >::ScalarType s)
 
template void rowAdd< capd::vectalg::Matrix< int, 0, 0 > > (capd::vectalg::Matrix< int, 0, 0 > &A, int i, int j, capd::vectalg::Matrix< int, 0, 0 >::ScalarType s)
 
template void columnExchange< capd::vectalg::Matrix< int, 0, 0 > > (capd::vectalg::Matrix< int, 0, 0 > &A, int i, int j)
 
template void columnMultiply< capd::vectalg::Matrix< int, 0, 0 > > (capd::vectalg::Matrix< int, 0, 0 > &A, int j, capd::vectalg::Matrix< int, 0, 0 >::ScalarType s)
 
template void columnAdd< capd::vectalg::Matrix< int, 0, 0 > > (capd::vectalg::Matrix< int, 0, 0 > &A, int i, int j, capd::vectalg::Matrix< int, 0, 0 >::ScalarType s)
 
template void smallestNonZero< capd::vectalg::Matrix< int, 0, 0 > > (const capd::vectalg::Matrix< int, 0, 0 > &A, capd::vectalg::Matrix< int, 0, 0 >::ScalarType &s, int &iOpt, int &jOpt)
 
template bool nonZero< capd::vectalg::Matrix< int, 0, 0 > > (const capd::vectalg::Matrix< int, 0, 0 > &A)
 
 PARI_SMITH_FORM (short)
 
 PARI_SMITH_FORM (int)
 
 PARI_SMITH_FORM (long)
 
 PARI_SMITH_FORM (llong)
 
 INSTANCE_DEF (short)
 
 INSTANCE_DEF (int)
 
 INSTANCE_DEF (long)
 
 INSTANCE_DEF (llong)
 
 INSTANCE_DEF (Zp)
 
 INSTANCE_DEF (Z2)
 
 CREATE_SMITH_FORM (short)
 
 CREATE_SMITH_FORM (int)
 
 CREATE_SMITH_FORM (long)
 
 CREATE_SMITH_FORM (llong)
 
template vectalg::Matrix< capd::DInterval, CAPD_DEFAULT_DIMENSION, CAPD_DEFAULT_DIMENSIONkrawczykInverse< vectalg::Matrix< capd::DInterval, CAPD_DEFAULT_DIMENSION, CAPD_DEFAULT_DIMENSION > > (const vectalg::Matrix< capd::DInterval, CAPD_DEFAULT_DIMENSION, CAPD_DEFAULT_DIMENSION > &)
 
 PARI_SMITH_FORM (MpInt)
 
 INSTANCE_DEF (MpInt)
 

Detailed Description

Matrix algorithms: Gauss elimination, orthonormalization, QR decomposition etc.

Typedef Documentation

◆ DefaultIntMatrixAlgorithms

◆ llong

typedef long long capd::matrixAlgorithms::llong

Function Documentation

◆ columnAdd() [1/3]

template<class matrix >
void capd::matrixAlgorithms::columnAdd ( matrix &  A,
int  i,
int  j,
typename matrix::ScalarType  s 
)

◆ columnAdd() [2/3]

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::columnAdd ( matrix &  B,
sqMatrix &  R,
int  i,
int  j,
typename matrix::ScalarType  q 
)

◆ columnAdd() [3/3]

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::columnAdd ( matrix &  B,
sqMatrix &  R,
sqMatrix &  Rinv,
int  i,
int  j,
typename matrix::ScalarType  q 
)

◆ columnAdd< capd::vectalg::Matrix< int, 0, 0 > >()

template void capd::matrixAlgorithms::columnAdd< capd::vectalg::Matrix< int, 0, 0 > > ( capd::vectalg::Matrix< int, 0, 0 > &  A,
int  i,
int  j,
capd::vectalg::Matrix< int, 0, 0 >::ScalarType  s 
)

◆ columnEchelon()

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::columnEchelon ( matrix &  B,
sqMatrix &  R,
sqMatrix &  Rinv,
int l 
)

◆ columnExchange() [1/3]

template<class matrix >
void capd::matrixAlgorithms::columnExchange ( matrix &  A,
int  i,
int  j 
)

◆ columnExchange() [2/3]

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::columnExchange ( matrix &  B,
sqMatrix &  R,
int  i,
int  j 
)

◆ columnExchange() [3/3]

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::columnExchange ( matrix &  B,
sqMatrix &  R,
sqMatrix &  Rinv,
int  i,
int  j 
)

◆ columnExchange< capd::vectalg::Matrix< int, 0, 0 > >()

template void capd::matrixAlgorithms::columnExchange< capd::vectalg::Matrix< int, 0, 0 > > ( capd::vectalg::Matrix< int, 0, 0 > &  A,
int  i,
int  j 
)

◆ columnMultiply() [1/3]

template<class matrix >
void capd::matrixAlgorithms::columnMultiply ( matrix &  A,
int  j,
typename matrix::ScalarType  s 
)

◆ columnMultiply() [2/3]

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::columnMultiply ( matrix &  B,
sqMatrix &  R,
int  i,
typename matrix::ScalarType  q 
)

◆ columnMultiply() [3/3]

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::columnMultiply ( matrix &  B,
sqMatrix &  R,
sqMatrix &  Rinv,
int  i,
typename matrix::ScalarType  q 
)

◆ columnMultiply< capd::vectalg::Matrix< int, 0, 0 > >()

template void capd::matrixAlgorithms::columnMultiply< capd::vectalg::Matrix< int, 0, 0 > > ( capd::vectalg::Matrix< int, 0, 0 > &  A,
int  j,
capd::vectalg::Matrix< int, 0, 0 >::ScalarType  s 
)

◆ columnPrepare()

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::columnPrepare ( matrix &  B,
sqMatrix &  R,
sqMatrix &  Rinv,
int  k,
int  l 
)

◆ columnReduce()

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::columnReduce ( matrix &  B,
sqMatrix &  R,
sqMatrix &  Rinv,
int  k,
int  l 
)

◆ computeSortingPermutation()

template<typename MatrixType , typename VectorType , typename IntVectorType >
void capd::matrixAlgorithms::computeSortingPermutation ( const MatrixType &  Q,
const VectorType &  v,
IntVectorType &  permutation 
)

computes sorting permutation according to sizes of the set in the direction of the base vectors

Parameters
Q
Qmatrix of base vectors (in columns)
v
vset in given coordinates
permutation
[out]permutation

◆ copy()

template<class matrix >
void capd::matrixAlgorithms::copy ( const matrix &  A,
matrix &  result,
int  row,
int  col 
)

◆ CREATE_SMITH_FORM() [1/4]

capd::matrixAlgorithms::CREATE_SMITH_FORM ( int  )

◆ CREATE_SMITH_FORM() [2/4]

capd::matrixAlgorithms::CREATE_SMITH_FORM ( llong  )

◆ CREATE_SMITH_FORM() [3/4]

capd::matrixAlgorithms::CREATE_SMITH_FORM ( long  )

◆ CREATE_SMITH_FORM() [4/4]

capd::matrixAlgorithms::CREATE_SMITH_FORM ( short  )

◆ croutDecomposition()

template<typename MatrixType >
void capd::matrixAlgorithms::croutDecomposition ( const MatrixType &  A,
MatrixType &  D,
MatrixType &  G 
)

Crout Decomposition of a matrix As a result matrix D is a lower triangle and G is an upper triangle with 1 on diagonal.

Crout Decomposition of a positive definite matrix As a result matrix D is a lower triangle and G is an upper triangle with 1 on diagonal.

◆ det()

template<typename MatrixType >
MatrixType::ScalarType capd::matrixAlgorithms::det ( MatrixType  A)

Computes determinant of a matrix A by LU decomposition.

Remarks
Singular matrix case is not fully implemented.
Parameters
Agiven matrix
Returns
determinant of A

◆ emptyMatrix()

template<typename matrix >
capd::vectalg::Matrix< typename matrix::ScalarType, 0, 0 > capd::matrixAlgorithms::emptyMatrix ( )

◆ gauss() [1/2]

template<typename MatrixType , typename VectorType >
VectorType capd::matrixAlgorithms::gauss ( const MatrixType &  A,
const VectorType &  b 
)

Gauss elimination.

this function solves equaiton A*x=b for x where A is nonsingular matrix

◆ gauss() [2/2]

template<typename MatrixType , typename ResultType >
void capd::matrixAlgorithms::gauss ( MatrixType  a,
ResultType  b,
ResultType &  result 
)

◆ gaussInverseMatrix()

template<typename MatrixType >
MatrixType capd::matrixAlgorithms::gaussInverseMatrix ( const MatrixType &  A)

◆ INSTANCE_DEF() [1/7]

capd::matrixAlgorithms::INSTANCE_DEF ( int  )

◆ INSTANCE_DEF() [2/7]

capd::matrixAlgorithms::INSTANCE_DEF ( llong  )

◆ INSTANCE_DEF() [3/7]

capd::matrixAlgorithms::INSTANCE_DEF ( long  )

◆ INSTANCE_DEF() [4/7]

capd::matrixAlgorithms::INSTANCE_DEF ( MpInt  )

◆ INSTANCE_DEF() [5/7]

capd::matrixAlgorithms::INSTANCE_DEF ( short  )

◆ INSTANCE_DEF() [6/7]

capd::matrixAlgorithms::INSTANCE_DEF ( Z2  )

◆ INSTANCE_DEF() [7/7]

capd::matrixAlgorithms::INSTANCE_DEF ( Zp  )

◆ inverse()

template<typename intType >
intType capd::matrixAlgorithms::inverse ( intType  a)
inline

◆ inverseMatrix()

template<typename MatrixType >
MatrixType capd::matrixAlgorithms::inverseMatrix ( const MatrixType &  A)

◆ invert()

template<class matrix >
bool capd::matrixAlgorithms::invert ( const matrix &  A,
matrix &  Ainv 
)

◆ invLowerTriangleMatrix()

template<typename MatrixType >
MatrixType capd::matrixAlgorithms::invLowerTriangleMatrix ( const MatrixType &  A)

◆ invUpperTriangleMatrix()

template<typename MatrixType >
MatrixType capd::matrixAlgorithms::invUpperTriangleMatrix ( const MatrixType &  A)

◆ isDivisible() [1/2]

bool capd::matrixAlgorithms::isDivisible ( double  ,
double   
)
inline

◆ isDivisible() [2/2]

template<typename intType >
bool capd::matrixAlgorithms::isDivisible ( intType  a,
intType  b 
)
inline

◆ isInvertible()

template<typename intType >
bool capd::matrixAlgorithms::isInvertible ( intType  a)
inline

◆ kernelImage()

template<class matrix >
void capd::matrixAlgorithms::kernelImage ( matrix &  B,
matrix &  kernel,
matrix &  image 
)

◆ krawczykCorrection()

template<class MatrixType >
void capd::matrixAlgorithms::krawczykCorrection ( const MatrixType &  A,
MatrixType &  invA 
)

◆ krawczykInverse()

template<class MatrixType >
MatrixType capd::matrixAlgorithms::krawczykInverse ( const MatrixType &  A)

◆ krawczykInverse< vectalg::Matrix< capd::DInterval, CAPD_DEFAULT_DIMENSION, CAPD_DEFAULT_DIMENSION > >()

◆ matrixExp()

template<typename MatrixType >
MatrixType capd::matrixAlgorithms::matrixExp ( const MatrixType &  M,
typename MatrixType::ScalarType  tolerance = capd::TypeTraits<typename MatrixType::ScalarType>::epsilon() 
)

◆ maxEigenValueOfSymMatrix()

template<typename MatrixType >
MatrixType::ScalarType capd::matrixAlgorithms::maxEigenValueOfSymMatrix ( const MatrixType &  A,
typename MatrixType::ScalarType  diagonalizingRelTolerance = capd::TypeTraits<typename MatrixType::ScalarType>::epsilon() 
)

this function computes bound for maximal eigenvalue of a symmetric matrix first it computes matrix which has the same eigenvalues and which is close to diagonal, next bound is computed from Gerschgorin theorem

this function computes upper bound for maximal eigenvalue of a symmetric matrix first it computes matrix which has the same eigenvalues and which is close to diagonal, next upper bound is computed from Gerschgorin theorem

◆ nonZero()

template<class matrix >
bool capd::matrixAlgorithms::nonZero ( const matrix &  A)

◆ nonZero< capd::vectalg::Matrix< int, 0, 0 > >()

◆ orthonormalize() [1/3]

template<typename MatrixType >
void capd::matrixAlgorithms::orthonormalize ( MatrixType &  Q)

◆ orthonormalize() [2/3]

template<typename MatrixType >
void capd::matrixAlgorithms::orthonormalize ( MatrixType &  Q,
const MatrixType &  R 
)

TODO: check and replace with the above

TODO: check and replace with the above

◆ orthonormalize() [3/3]

template<typename MatrixType >
void capd::matrixAlgorithms::orthonormalize ( MatrixType &  Q,
const typename MatrixType::RowVectorType &  v 
)

◆ PARI_SMITH_FORM() [1/5]

capd::matrixAlgorithms::PARI_SMITH_FORM ( int  )

◆ PARI_SMITH_FORM() [2/5]

capd::matrixAlgorithms::PARI_SMITH_FORM ( llong  )

◆ PARI_SMITH_FORM() [3/5]

capd::matrixAlgorithms::PARI_SMITH_FORM ( long  )

◆ PARI_SMITH_FORM() [4/5]

capd::matrixAlgorithms::PARI_SMITH_FORM ( MpInt  )

◆ PARI_SMITH_FORM() [5/5]

capd::matrixAlgorithms::PARI_SMITH_FORM ( short  )

◆ partColumnReduce()

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::partColumnReduce ( matrix &  B,
sqMatrix &  R,
sqMatrix &  Rinv,
int  k,
int  l 
)

◆ partRowReduce()

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::partRowReduce ( matrix &  B,
sqMatrix &  Q,
sqMatrix &  Qinv,
int  k,
int  l 
)

◆ QR_decompose()

template<typename MatrixType >
void capd::matrixAlgorithms::QR_decompose ( const MatrixType &  A,
MatrixType &  Q,
MatrixType &  R 
)

◆ QRdecomposeWithPivoting()

template<typename MatrixType , typename IntVectorType >
void capd::matrixAlgorithms::QRdecomposeWithPivoting ( const MatrixType &  A,
const typename MatrixType::RowVectorType &  v,
MatrixType &  Q,
MatrixType &  R,
typename MatrixType::RowVectorType &  sizes,
IntVectorType &  p 
)

◆ quotientBaseMatrix()

template<class matrix , class IntVector >
void capd::matrixAlgorithms::quotientBaseMatrix ( const matrix &  A_W,
const matrix &  A_V,
matrix &  A_U,
IntVector &  A_orders 
)

◆ rowAdd() [1/3]

template<class matrix >
void capd::matrixAlgorithms::rowAdd ( matrix &  A,
int  i,
int  j,
typename matrix::ScalarType  s 
)

◆ rowAdd() [2/3]

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::rowAdd ( matrix &  B,
sqMatrix &  Q,
int  i,
int  j,
typename matrix::ScalarType  q 
)

◆ rowAdd() [3/3]

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::rowAdd ( matrix &  B,
sqMatrix &  Q,
sqMatrix &  Qinv,
int  i,
int  j,
typename matrix::ScalarType  q 
)

◆ rowAdd< capd::vectalg::Matrix< int, 0, 0 > >()

template void capd::matrixAlgorithms::rowAdd< capd::vectalg::Matrix< int, 0, 0 > > ( capd::vectalg::Matrix< int, 0, 0 > &  A,
int  i,
int  j,
capd::vectalg::Matrix< int, 0, 0 >::ScalarType  s 
)

◆ rowEchelon()

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::rowEchelon ( matrix &  B,
sqMatrix &  Q,
sqMatrix &  Qinv,
int k 
)

◆ rowExchange() [1/2]

template<class matrix >
void capd::matrixAlgorithms::rowExchange ( matrix &  A,
int  i,
int  j 
)

◆ rowExchange() [2/2]

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::rowExchange ( matrix &  B,
sqMatrix &  Q,
sqMatrix &  Qinv,
int  i,
int  j 
)

◆ rowExchange< capd::vectalg::Matrix< int, 0, 0 > >()

template void capd::matrixAlgorithms::rowExchange< capd::vectalg::Matrix< int, 0, 0 > > ( capd::vectalg::Matrix< int, 0, 0 > &  A,
int  i,
int  j 
)

◆ rowMultiply() [1/2]

template<class matrix >
void capd::matrixAlgorithms::rowMultiply ( matrix &  A,
int  i,
typename matrix::ScalarType  s 
)

◆ rowMultiply() [2/2]

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::rowMultiply ( matrix &  B,
sqMatrix &  Q,
sqMatrix &  Qinv,
int  i,
typename matrix::ScalarType  q 
)

◆ rowMultiply< capd::vectalg::Matrix< int, 0, 0 > >()

template void capd::matrixAlgorithms::rowMultiply< capd::vectalg::Matrix< int, 0, 0 > > ( capd::vectalg::Matrix< int, 0, 0 > &  A,
int  i,
capd::vectalg::Matrix< int, 0, 0 >::ScalarType  s 
)

◆ rowPrepare()

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::rowPrepare ( matrix &  B,
sqMatrix &  Q,
sqMatrix &  Qinv,
int  k,
int  l 
)

◆ rowReduce()

template<class matrix , class sqMatrix >
void capd::matrixAlgorithms::rowReduce ( matrix &  B,
sqMatrix &  Q,
sqMatrix &  Qinv,
int  k,
int  l 
)

◆ smallestNonZero()

template<class matrix >
void capd::matrixAlgorithms::smallestNonZero ( const matrix &  A,
typename matrix::ScalarType &  s,
int iOpt,
int jOpt 
)

◆ smallestNonZero< capd::vectalg::Matrix< int, 0, 0 > >()

template void capd::matrixAlgorithms::smallestNonZero< capd::vectalg::Matrix< int, 0, 0 > > ( const capd::vectalg::Matrix< int, 0, 0 > &  A,
capd::vectalg::Matrix< int, 0, 0 >::ScalarType &  s,
int iOpt,
int jOpt 
)

◆ smithForm()

template<class matrix , class sqMatrix1 , class sqMatrix2 >
void capd::matrixAlgorithms::smithForm ( matrix &  B,
sqMatrix1 &  Q,
sqMatrix1 &  Qinv,
sqMatrix2 &  R,
sqMatrix2 &  Rinv,
int s,
int t 
)

◆ solveLinearEquation()

template<class matrix , class vector , class colVector >
bool capd::matrixAlgorithms::solveLinearEquation ( const matrix &  A,
const colVector &  b,
vector &  x 
)

◆ spaceIntersection()

template<class matrix >
void capd::matrixAlgorithms::spaceIntersection ( const matrix &  A,
const matrix &  B,
matrix &  C 
)

◆ spectralRadiusOfSymMatrix()

template<typename MatrixType >
MatrixType::ScalarType capd::matrixAlgorithms::spectralRadiusOfSymMatrix ( const MatrixType &  A,
typename MatrixType::ScalarType  diagonalizingRelTolerance = capd::TypeTraits<typename MatrixType::ScalarType>::epsilon() 
)

this function computes bound for spectral radius of a symmetric matrix first it computes matrix which has the same eigenvalues and which is close to diagonal, next bound is computed from Gerschgorin theorem

◆ symMatrixDiagonalize()

template<typename MatrixType >
int capd::matrixAlgorithms::symMatrixDiagonalize ( const MatrixType &  A,
MatrixType &  D,
typename MatrixType::ScalarType  diagonalizingRelTolerance = capd::TypeTraits<typename MatrixType::ScalarType>::epsilon() 
)