This class only provides a set of static member functions. No instantiation is allowed.
|
Public Types |
enum | FFPACK_LUDIVINE_TAG { FfpackLQUP = 1,
FfpackSingular = 2,
FfpackLSP = 3,
FfpackTURBO = 4
} |
enum | FFPACK_CHARPOLY_TAG {
FfpackLUK = 1,
FfpackKG = 2,
FfpackHybrid = 3,
FfpackKGFast = 4,
FfpackHybrid2 = 5
} |
enum | FFPACK_MINPOLY_TAG { FfpackDense = 1,
FfpackKGF = 2
} |
Static Public Methods |
template<class Field> size_t | Rank (const Field &F, const size_t M, const size_t N, typename Field::Element *A, const size_t lda) |
template<class Field> bool | IsSingular (const Field &F, const size_t M, const size_t N, typename Field::Element *A, const size_t lda) |
template<class Field> Field::Element | Det (const Field &F, const size_t M, const size_t N, typename Field::Element *A, const size_t lda) |
template<class Field> Field::Element * | Solve (const Field &F, const size_t M, typename Field::Element *A, const size_t lda, typename Field::Element *x, const int incx, const typename Field::Element *b, const int incb) |
template<class Field> Field::Element * | Invert (const Field &F, const size_t M, typename Field::Element *A, const size_t lda, typename Field::Element *X, const size_t ldx, int &nullity) |
template<class Field> Field::Element * | Invert2 (const Field &F, const size_t M, typename Field::Element *A, const size_t lda, typename Field::Element *X, const size_t ldx, int &nullity) |
template<class Field> Field::Element * | LQUPtoInverseOfFullRankMinor (const Field &F, const size_t rank, typename Field::Element *A_factors, const size_t lda, const size_t *QtPointer, typename Field::Element *X, const size_t ldx) |
template<class Field> size_t | TURBO (const Field &F, const size_t M, const size_t N, typename Field::Element *NW, const size_t ld1, typename Field::Element *NE, const size_t ld2, typename Field::Element *SW, const size_t ld3, typename Field::Element *SE, const size_t ld4) |
template<class Field> size_t | LUdivine (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, typename Field::Element *A, const size_t lda, size_t *P, const enum FFPACK_LUDIVINE_TAG LuTag=FfpackLQUP, size_t *rowP=NULL) |
template<class Field> void | applyP (const Field &F, const enum FFLAS_SIDE Side, const enum FFLAS_TRANSPOSE Trans, const size_t M, const int ibeg, const int iend, typename Field::Element *A, const size_t lda, const size_t *P) |
template<class Field, class Polynomial> std::list< Polynomial > & | CharPoly (const Field &F, std::list< Polynomial > &charp, const size_t N, typename Field::Element *A, const size_t lda, const enum FFPACK_CHARPOLY_TAG CharpTag=FfpackHybrid) |
template<class Field, class Polynomial> Polynomial & | MinPoly (const Field &F, Polynomial &minP, const size_t N, const typename Field::Element *A, const size_t lda, typename Field::Element *X, const size_t ldx, size_t *P, const enum FFPACK_MINPOLY_TAG MinTag, const size_t kg_mc, const size_t kg_mb, const size_t kg_j) |
template<class Field> void | solveLB (const Field &F, const enum FFLAS_SIDE Side, const size_t M, const size_t N, const size_t R, typename Field::Element *L, const size_t ldl, const size_t *Q, typename Field::Element *B, const size_t ldb) |
template<class Field> void | solveLB2 (const Field &F, const enum FFLAS_SIDE Side, const size_t M, const size_t N, const size_t R, typename Field::Element *L, const size_t ldl, const size_t *Q, typename Field::Element *B, const size_t ldb) |
template<class Field> void | trinv_left (const Field &F, const size_t N, const typename Field::Element *L, const size_t ldl, typename Field::Element *X, const size_t ldx) |
Static Protected Methods |
template<class Field> void | invL (const Field &F, const size_t N, const typename Field::Element *L, const size_t ldl, typename Field::Element *X, const size_t ldx) |
template<class Field> size_t | newD (const Field &F, size_t *d, bool &KeepOn, const size_t l, const size_t N, typename Field::Element *X, const size_t *Q, std::vector< std::vector< typename Field::Element > > &minpt) |
template<class Field> size_t | updateD (const Field &F, size_t *d, size_t k, std::vector< std::vector< typename Field::Element > > &minpt) |
template<class Field> void | TriangleCopy (const Field &F, const enum FFLAS_UPLO Side, const enum FFLAS_DIAG Diag, const size_t R, typename Field::Element *T, const size_t ldt, const typename Field::Element *A, const size_t lda) |
template<class Field> void | RectangleCopy (const Field &F, const size_t M, const size_t N, typename Field::Element *T, const size_t ldt, const typename Field::Element *A, const size_t lda) |
template<class Field> void | RectangleCopy2 (const Field &F, const size_t M, const size_t N, const long dist2pivot, typename Field::Element *T, const size_t ldt, const typename Field::Element *A, const size_t lda) |
template<class Field> void | RectangleCopyTURBO (const Field &F, const size_t M, const size_t N, const size_t dist2pivot, const size_t rank, typename Field::Element *T, const size_t ldt, const typename Field::Element *A, const size_t lda) |
template<class Field> size_t | LUdivine_construct (const Field &F, const enum FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element *A, const size_t lda, typename Field::Element *X, const size_t ldx, typename Field::Element *u, size_t *P, bool computeX, const enum FFPACK_MINPOLY_TAG MinTag, const size_t kg_mc, const size_t kg_mb, const size_t kg_j) |
template<class Field, class Polynomial> std::list< Polynomial > & | KellerGehrig (const Field &F, std::list< Polynomial > &charp, const size_t N, const typename Field::Element *A, const size_t lda) |
template<class Field, class Polynomial> int | KGFast (const Field &F, std::list< Polynomial > &charp, const size_t N, typename Field::Element *A, const size_t lda, size_t *kg_mc, size_t *kg_mc, size_t *kg_j) |
template<class Field> void | fgemv_kgf (const Field &F, const size_t N, const typename Field::Element *A, const size_t lda, const typename Field::Element *X, const size_t incX, typename Field::Element *Y, const size_t incY, const size_t kg_mc, const size_t kg_mb, const size_t kg_j) |
template<class Field, class Polynomial> std::list< Polynomial > & | LUKrylov (const Field &F, std::list< Polynomial > &charp, const size_t N, typename Field::Element *A, const size_t lda, typename Field::Element *U, const size_t ldu, const enum FFPACK_CHARPOLY_TAG CharpTag) |
template<class Field, class Polynomial> std::list< Polynomial > & | LUKrylov_KGFast (const Field &F, std::list< Polynomial > &charp, const size_t N, typename Field::Element *A, const size_t lda, typename Field::Element *X, const size_t ldx) |