FflasFfpack
Macros | Enumerations | Functions
ffpack_c.h File Reference
#include <stdbool.h>
#include <stdlib.h>
#include <inttypes.h>

Macros

#define FFPACK_COMPILED
 

Enumerations

enum  FFLAS_C_ORDER { FflasRowMajor =101 , FflasColMajor =102 , FflasRowMajor =101 , FflasColMajor =102 }
 
enum  FFLAS_C_TRANSPOSE { FflasNoTrans = 111 , FflasTrans = 112 , FflasNoTrans = 111 , FflasTrans = 112 }
 
enum  FFLAS_C_UPLO { FflasUpper = 121 , FflasLower = 122 , FflasUpper = 121 , FflasLower = 122 }
 
enum  FFLAS_C_DIAG { FflasNonUnit = 131 , FflasUnit = 132 , FflasNonUnit = 131 , FflasUnit = 132 }
 
enum  FFLAS_C_SIDE { FflasLeft = 141 , FflasRight = 142 , FflasLeft = 141 , FflasRight = 142 }
 
enum  FFPACK_C_LU_TAG { FfpackSlabRecursive = 1 , FfpackTileRecursive = 2 , FfpackSingular = 3 }
 
enum  FFPACK_C_CHARPOLY_TAG {
  FfpackLUK =1 , FfpackKG =2 , FfpackHybrid =3 , FfpackKGFast =4 ,
  FfpackDanilevski =5 , FfpackArithProg =6 , FfpackKGFastG =7
}
 
enum  FFPACK_C_MINPOLY_TAG { FfpackDense =1 , FfpackKGF =2 }
 

Functions

void LAPACKPerm2MathPerm (size_t *MathP, const size_t *LapackP, const size_t N)
 
void MathPerm2LAPACKPerm (size_t *LapackP, const size_t *MathP, const size_t N)
 
void MatrixApplyS_modular_double (const double p, double *A, const size_t lda, const size_t width, const size_t M2, const size_t R1, const size_t R2, const size_t R3, const size_t R4, bool positive)
 
void PermApplyS_double (double *A, const size_t lda, const size_t width, const size_t M2, const size_t R1, const size_t R2, const size_t R3, const size_t R4)
 
void MatrixApplyT_modular_double (const double p, double *A, const size_t lda, const size_t width, const size_t N2, const size_t R1, const size_t R2, const size_t R3, const size_t R4, bool positive)
 
void PermApplyT_double (double *A, const size_t lda, const size_t width, const size_t N2, const size_t R1, const size_t R2, const size_t R3, const size_t R4)
 
void composePermutationsLLM (size_t *MathP, const size_t *P1, const size_t *P2, const size_t R, const size_t N)
 
void composePermutationsLLL (size_t *P1, const size_t *P2, const size_t R, const size_t N)
 
void composePermutationsMLM (size_t *MathP1, const size_t *P2, const size_t R, const size_t N)
 
void cyclic_shift_mathPerm (size_t *P, const size_t s)
 
void cyclic_shift_row_modular_double (const double p, double *A, size_t m, size_t n, size_t lda, bool positive)
 
void cyclic_shift_col_modular_double (const double p, double *A, size_t m, size_t n, size_t lda, bool positive)
 
void applyP_modular_double (const double p, const enum FFLAS_C_SIDE Side, const enum FFLAS_C_TRANSPOSE Trans, const size_t M, const size_t ibeg, const size_t iend, double *A, const size_t lda, const size_t *P, bool positive)
 
void fgetrsin_modular_double (const double p, const enum FFLAS_C_SIDE Side, const size_t M, const size_t N, const size_t R, double *A, const size_t lda, const size_t *P, const size_t *Q, double *B, const size_t ldb, int *info, bool positive)
 
double * fgetrs_modular_double (const double p, const enum FFLAS_C_SIDE Side, const size_t M, const size_t N, const size_t NRHS, const size_t R, double *A, const size_t lda, const size_t *P, const size_t *Q, double *X, const size_t ldx, const double *B, const size_t ldb, int *info, bool positive)
 
size_t fgesvin_modular_double (const double p, const enum FFLAS_C_SIDE Side, const size_t M, const size_t N, double *A, const size_t lda, double *B, const size_t ldb, int *info, bool positive)
 
size_t fgesv_modular_double (const double p, const enum FFLAS_C_SIDE Side, const size_t M, const size_t N, const size_t NRHS, double *A, const size_t lda, double *X, const size_t ldx, const double *B, const size_t ldb, int *info)
 
void ftrtri_modular_double (const double p, const enum FFLAS_C_UPLO Uplo, const enum FFLAS_C_DIAG Diag, const size_t N, double *A, const size_t lda, bool positive)
 
void trinv_left_modular_double (const double p, const size_t N, const double *L, const size_t ldl, double *X, const size_t ldx, bool positive)
 
void ftrtrm_modular_double (const double p, const enum FFLAS_C_DIAG diag, const size_t N, double *A, const size_t lda, bool positive)
 
size_t PLUQ_modular_double (const double p, const enum FFLAS_C_DIAG Diag, const size_t M, const size_t N, double *A, const size_t lda, size_t *P, size_t *Q, bool positive)
 
size_t LUdivine_modular_double (const double p, const enum FFLAS_C_DIAG Diag, const enum FFLAS_C_TRANSPOSE trans, const size_t M, const size_t N, double *A, const size_t lda, size_t *P, size_t *Qt, const enum FFPACK_C_LU_TAG LuTag, const size_t cutoff, bool positive)
 
size_t LUdivine_small_modular_double (const double p, const enum FFLAS_C_DIAG Diag, const enum FFLAS_C_TRANSPOSE trans, const size_t M, const size_t N, double *A, const size_t lda, size_t *P, size_t *Q, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
size_t LUdivine_gauss_modular_double (const double p, const enum FFLAS_C_DIAG Diag, const size_t M, const size_t N, double *A, const size_t lda, size_t *P, size_t *Q, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
size_t ColumnEchelonForm_modular_double (const double p, const size_t M, const size_t N, double *A, const size_t lda, size_t *P, size_t *Qt, bool transform, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
size_t RowEchelonForm_modular_double (const double p, const size_t M, const size_t N, double *A, const size_t lda, size_t *P, size_t *Qt, const bool transform, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
size_t ColumnEchelonForm_modular_float (const float p, const size_t M, const size_t N, float *A, const size_t lda, size_t *P, size_t *Qt, bool transform, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
size_t RowEchelonForm_modular_float (const float p, const size_t M, const size_t N, float *A, const size_t lda, size_t *P, size_t *Qt, const bool transform, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
size_t ColumnEchelonForm_modular_int32_t (const int32_t p, const size_t M, const size_t N, int32_t *A, const size_t lda, size_t *P, size_t *Qt, bool transform, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
size_t RowEchelonForm_modular_int32_t (const int32_t p, const size_t M, const size_t N, int32_t *A, const size_t lda, size_t *P, size_t *Qt, const bool transform, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
size_t ReducedColumnEchelonForm_modular_double (const double p, const size_t M, const size_t N, double *A, const size_t lda, size_t *P, size_t *Qt, const bool transform, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
size_t ReducedRowEchelonForm_modular_double (const double p, const size_t M, const size_t N, double *A, const size_t lda, size_t *P, size_t *Qt, const bool transform, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
size_t ReducedColumnEchelonForm_modular_float (const float p, const size_t M, const size_t N, float *A, const size_t lda, size_t *P, size_t *Qt, const bool transform, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
size_t ReducedRowEchelonForm_modular_float (const float p, const size_t M, const size_t N, float *A, const size_t lda, size_t *P, size_t *Qt, const bool transform, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
size_t ReducedColumnEchelonForm_modular_int32_t (const int32_t p, const size_t M, const size_t N, int32_t *A, const size_t lda, size_t *P, size_t *Qt, const bool transform, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
size_t ReducedRowEchelonForm_modular_int32_t (const int32_t p, const size_t M, const size_t N, int32_t *A, const size_t lda, size_t *P, size_t *Qt, const bool transform, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
size_t ReducedRowEchelonForm2_modular_double (const double p, const size_t M, const size_t N, double *A, const size_t lda, size_t *P, size_t *Qt, const bool transform, bool positive)
 
size_t REF_modular_double (const double p, const size_t M, const size_t N, double *A, const size_t lda, const size_t colbeg, const size_t rowbeg, const size_t colsize, size_t *Qt, size_t *P, bool positive)
 
double * Invertin_modular_double (const double p, const size_t M, double *A, const size_t lda, int *nullity, bool positive)
 
double * Invert_modular_double (const double p, const size_t M, const double *A, const size_t lda, double *X, const size_t ldx, int *nullity, bool positive)
 
double * Invert2_modular_double (const double p, const size_t M, double *A, const size_t lda, double *X, const size_t ldx, int *nullity, bool positive)
 
size_t KrylovElim_modular_double (const double p, const size_t M, const size_t N, double *A, const size_t lda, size_t *P, size_t *Q, const size_t deg, size_t *iterates, size_t *inviterates, const size_t maxit, size_t virt, bool positive)
 
size_t SpecRankProfile_modular_double (const double p, const size_t M, const size_t N, double *A, const size_t lda, const size_t deg, size_t *rankProfile, bool positive)
 
size_t Rank_modular_double (const double p, const size_t M, const size_t N, double *A, const size_t lda, bool positive)
 
bool IsSingular_modular_double (const double p, const size_t M, const size_t N, double *A, const size_t lda, bool positive)
 
double Det_modular_double (const double p, const size_t N, double *A, const size_t lda, bool positive)
 
double * Solve_modular_double (const double p, const size_t M, double *A, const size_t lda, double *x, const int incx, const double *b, const int incb, bool positive)
 
void solveLB_modular_double (const double p, const enum FFLAS_C_SIDE Side, const size_t M, const size_t N, const size_t R, double *L, const size_t ldl, const size_t *Q, double *B, const size_t ldb)
 
void solveLB2_modular_double (const double p, const enum FFLAS_C_SIDE Side, const size_t M, const size_t N, const size_t R, double *L, const size_t ldl, const size_t *Q, double *B, const size_t ldb, bool positive)
 
void RandomNullSpaceVector_modular_double (const double p, const enum FFLAS_C_SIDE Side, const size_t M, const size_t N, double *A, const size_t lda, double *X, const size_t incX, bool positive)
 
size_t NullSpaceBasis_modular_double (const double p, const enum FFLAS_C_SIDE Side, const size_t M, const size_t N, double *A, const size_t lda, double **NS, size_t *ldn, size_t *NSdim, bool positive)
 
size_t RowRankProfile_modular_double (const double p, const size_t M, const size_t N, double *A, const size_t lda, size_t **rkprofile, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
size_t ColumnRankProfile_modular_double (const double p, const size_t M, const size_t N, double *A, const size_t lda, size_t **rkprofile, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
void RankProfileFromLU (const size_t *P, const size_t N, const size_t R, size_t *rkprofile, const enum FFPACK_C_LU_TAG LuTag)
 
size_t LeadingSubmatrixRankProfiles (const size_t M, const size_t N, const size_t R, const size_t LSm, const size_t LSn, const size_t *P, const size_t *Q, size_t *RRP, size_t *CRP)
 
size_t RowRankProfileSubmatrixIndices_modular_double (const double p, const size_t M, const size_t N, double *A, const size_t lda, size_t **rowindices, size_t **colindices, size_t *R, bool positive)
 
size_t ColRankProfileSubmatrixIndices_modular_double (const double p, const size_t M, const size_t N, double *A, const size_t lda, size_t **rowindices, size_t **colindices, size_t *R, bool positive)
 
size_t RowRankProfileSubmatrix_modular_double (const double p, const size_t M, const size_t N, double *A, const size_t lda, double **X, size_t *R, bool positive)
 
size_t ColRankProfileSubmatrix_modular_double (const double p, const size_t M, const size_t N, double *A, const size_t lda, double **X, size_t *R, bool positive)
 
void getTriangular_modular_double (const double p, const enum FFLAS_C_UPLO Uplo, const enum FFLAS_C_DIAG diag, const size_t M, const size_t N, const size_t R, const double *A, const size_t lda, double *T, const size_t ldt, const bool OnlyNonZeroVectors, bool positive)
 
void getTriangularin_modular_double (const double p, const enum FFLAS_C_UPLO Uplo, const enum FFLAS_C_DIAG diag, const size_t M, const size_t N, const size_t R, double *A, const size_t lda, bool positive)
 
void getEchelonForm_modular_double (const double p, const enum FFLAS_C_UPLO Uplo, const enum FFLAS_C_DIAG diag, const size_t M, const size_t N, const size_t R, const size_t *P, const double *A, const size_t lda, double *T, const size_t ldt, const bool OnlyNonZeroVectors, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
void getEchelonFormin_modular_double (const double p, const enum FFLAS_C_UPLO Uplo, const enum FFLAS_C_DIAG diag, const size_t M, const size_t N, const size_t R, const size_t *P, double *A, const size_t lda, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
void getEchelonTransform_modular_double (const double p, const enum FFLAS_C_UPLO Uplo, const enum FFLAS_C_DIAG diag, const size_t M, const size_t N, const size_t R, const size_t *P, const size_t *Q, const double *A, const size_t lda, double *T, const size_t ldt, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
void getReducedEchelonForm_modular_double (const double p, const enum FFLAS_C_UPLO Uplo, const size_t M, const size_t N, const size_t R, const size_t *P, const double *A, const size_t lda, double *T, const size_t ldt, const bool OnlyNonZeroVectors, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
void getReducedEchelonFormin_modular_double (const double p, const enum FFLAS_C_UPLO Uplo, const size_t M, const size_t N, const size_t R, const size_t *P, double *A, const size_t lda, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
void getReducedEchelonTransform_modular_double (const double p, const enum FFLAS_C_UPLO Uplo, const size_t M, const size_t N, const size_t R, const size_t *P, const size_t *Q, const double *A, const size_t lda, double *T, const size_t ldt, const enum FFPACK_C_LU_TAG LuTag, bool positive)
 
void PLUQtoEchelonPermutation (const size_t N, const size_t R, const size_t *P, size_t *outPerm)
 

Macro Definition Documentation

◆ FFPACK_COMPILED

#define FFPACK_COMPILED

Enumeration Type Documentation

◆ FFLAS_C_ORDER

Enumerator
FflasRowMajor 

row major

FflasColMajor 

col major

FflasRowMajor 
FflasColMajor 

◆ FFLAS_C_TRANSPOSE

Enumerator
FflasNoTrans 

Matrix is not transposed.

FflasTrans 

Matrix is transposed.

FflasNoTrans 
FflasTrans 

◆ FFLAS_C_UPLO

Enumerator
FflasUpper 

Triangular matrix is Upper triangular (if $i>j$ then $T_{i,j} = 0$)

FflasLower 

Triangular matrix is Lower triangular (if $i<j$ then $T_{i,j} = 0$)

FflasUpper 
FflasLower 

◆ FFLAS_C_DIAG

Enumerator
FflasNonUnit 

Triangular matrix has an explicit arbitrary diagonal.

FflasUnit 

Triangular matrix has an implicit unit diagonal ( $T_{i,i} = 1$)

FflasNonUnit 
FflasUnit 

◆ FFLAS_C_SIDE

Enumerator
FflasLeft 

Operator applied on the left.

FflasRight 

Operator applied on the rigth.

FflasLeft 
FflasRight 

◆ FFPACK_C_LU_TAG

Enumerator
FfpackSlabRecursive 
FfpackTileRecursive 
FfpackSingular 

◆ FFPACK_C_CHARPOLY_TAG

Enumerator
FfpackLUK 
FfpackKG 
FfpackHybrid 
FfpackKGFast 
FfpackDanilevski 
FfpackArithProg 
FfpackKGFastG 

◆ FFPACK_C_MINPOLY_TAG

Enumerator
FfpackDense 
FfpackKGF 

Function Documentation

◆ LAPACKPerm2MathPerm()

void LAPACKPerm2MathPerm ( size_t *  MathP,
const size_t *  LapackP,
const size_t  N 
)

◆ MathPerm2LAPACKPerm()

void MathPerm2LAPACKPerm ( size_t *  LapackP,
const size_t *  MathP,
const size_t  N 
)

◆ MatrixApplyS_modular_double()

void MatrixApplyS_modular_double ( const double  p,
double *  A,
const size_t  lda,
const size_t  width,
const size_t  M2,
const size_t  R1,
const size_t  R2,
const size_t  R3,
const size_t  R4,
bool  positive 
)

◆ PermApplyS_double()

void PermApplyS_double ( double *  A,
const size_t  lda,
const size_t  width,
const size_t  M2,
const size_t  R1,
const size_t  R2,
const size_t  R3,
const size_t  R4 
)

◆ MatrixApplyT_modular_double()

void MatrixApplyT_modular_double ( const double  p,
double *  A,
const size_t  lda,
const size_t  width,
const size_t  N2,
const size_t  R1,
const size_t  R2,
const size_t  R3,
const size_t  R4,
bool  positive 
)

◆ PermApplyT_double()

void PermApplyT_double ( double *  A,
const size_t  lda,
const size_t  width,
const size_t  N2,
const size_t  R1,
const size_t  R2,
const size_t  R3,
const size_t  R4 
)

◆ composePermutationsLLM()

void composePermutationsLLM ( size_t *  MathP,
const size_t *  P1,
const size_t *  P2,
const size_t  R,
const size_t  N 
)

◆ composePermutationsLLL()

void composePermutationsLLL ( size_t *  P1,
const size_t *  P2,
const size_t  R,
const size_t  N 
)

◆ composePermutationsMLM()

void composePermutationsMLM ( size_t *  MathP1,
const size_t *  P2,
const size_t  R,
const size_t  N 
)

◆ cyclic_shift_mathPerm()

void cyclic_shift_mathPerm ( size_t *  P,
const size_t  s 
)

◆ cyclic_shift_row_modular_double()

void cyclic_shift_row_modular_double ( const double  p,
double *  A,
size_t  m,
size_t  n,
size_t  lda,
bool  positive 
)

◆ cyclic_shift_col_modular_double()

void cyclic_shift_col_modular_double ( const double  p,
double *  A,
size_t  m,
size_t  n,
size_t  lda,
bool  positive 
)

◆ applyP_modular_double()

void applyP_modular_double ( const double  p,
const enum FFLAS_C_SIDE  Side,
const enum FFLAS_C_TRANSPOSE  Trans,
const size_t  M,
const size_t  ibeg,
const size_t  iend,
double *  A,
const size_t  lda,
const size_t *  P,
bool  positive 
)

◆ fgetrsin_modular_double()

void fgetrsin_modular_double ( const double  p,
const enum FFLAS_C_SIDE  Side,
const size_t  M,
const size_t  N,
const size_t  R,
double *  A,
const size_t  lda,
const size_t *  P,
const size_t *  Q,
double *  B,
const size_t  ldb,
int *  info,
bool  positive 
)

◆ fgetrs_modular_double()

double * fgetrs_modular_double ( const double  p,
const enum FFLAS_C_SIDE  Side,
const size_t  M,
const size_t  N,
const size_t  NRHS,
const size_t  R,
double *  A,
const size_t  lda,
const size_t *  P,
const size_t *  Q,
double *  X,
const size_t  ldx,
const double *  B,
const size_t  ldb,
int *  info,
bool  positive 
)

◆ fgesvin_modular_double()

size_t fgesvin_modular_double ( const double  p,
const enum FFLAS_C_SIDE  Side,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
double *  B,
const size_t  ldb,
int *  info,
bool  positive 
)

◆ fgesv_modular_double()

size_t fgesv_modular_double ( const double  p,
const enum FFLAS_C_SIDE  Side,
const size_t  M,
const size_t  N,
const size_t  NRHS,
double *  A,
const size_t  lda,
double *  X,
const size_t  ldx,
const double *  B,
const size_t  ldb,
int *  info 
)

◆ ftrtri_modular_double()

void ftrtri_modular_double ( const double  p,
const enum FFLAS_C_UPLO  Uplo,
const enum FFLAS_C_DIAG  Diag,
const size_t  N,
double *  A,
const size_t  lda,
bool  positive 
)

◆ trinv_left_modular_double()

void trinv_left_modular_double ( const double  p,
const size_t  N,
const double *  L,
const size_t  ldl,
double *  X,
const size_t  ldx,
bool  positive 
)

◆ ftrtrm_modular_double()

void ftrtrm_modular_double ( const double  p,
const enum FFLAS_C_DIAG  diag,
const size_t  N,
double *  A,
const size_t  lda,
bool  positive 
)

◆ PLUQ_modular_double()

size_t PLUQ_modular_double ( const double  p,
const enum FFLAS_C_DIAG  Diag,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
size_t *  P,
size_t *  Q,
bool  positive 
)

◆ LUdivine_modular_double()

size_t LUdivine_modular_double ( const double  p,
const enum FFLAS_C_DIAG  Diag,
const enum FFLAS_C_TRANSPOSE  trans,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
size_t *  P,
size_t *  Qt,
const enum FFPACK_C_LU_TAG  LuTag,
const size_t  cutoff,
bool  positive 
)

◆ LUdivine_small_modular_double()

size_t LUdivine_small_modular_double ( const double  p,
const enum FFLAS_C_DIAG  Diag,
const enum FFLAS_C_TRANSPOSE  trans,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
size_t *  P,
size_t *  Q,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ LUdivine_gauss_modular_double()

size_t LUdivine_gauss_modular_double ( const double  p,
const enum FFLAS_C_DIAG  Diag,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
size_t *  P,
size_t *  Q,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ ColumnEchelonForm_modular_double()

size_t ColumnEchelonForm_modular_double ( const double  p,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
size_t *  P,
size_t *  Qt,
bool  transform,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ RowEchelonForm_modular_double()

size_t RowEchelonForm_modular_double ( const double  p,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
size_t *  P,
size_t *  Qt,
const bool  transform,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ ColumnEchelonForm_modular_float()

size_t ColumnEchelonForm_modular_float ( const float  p,
const size_t  M,
const size_t  N,
float *  A,
const size_t  lda,
size_t *  P,
size_t *  Qt,
bool  transform,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ RowEchelonForm_modular_float()

size_t RowEchelonForm_modular_float ( const float  p,
const size_t  M,
const size_t  N,
float *  A,
const size_t  lda,
size_t *  P,
size_t *  Qt,
const bool  transform,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ ColumnEchelonForm_modular_int32_t()

size_t ColumnEchelonForm_modular_int32_t ( const int32_t  p,
const size_t  M,
const size_t  N,
int32_t *  A,
const size_t  lda,
size_t *  P,
size_t *  Qt,
bool  transform,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ RowEchelonForm_modular_int32_t()

size_t RowEchelonForm_modular_int32_t ( const int32_t  p,
const size_t  M,
const size_t  N,
int32_t *  A,
const size_t  lda,
size_t *  P,
size_t *  Qt,
const bool  transform,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ ReducedColumnEchelonForm_modular_double()

size_t ReducedColumnEchelonForm_modular_double ( const double  p,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
size_t *  P,
size_t *  Qt,
const bool  transform,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ ReducedRowEchelonForm_modular_double()

size_t ReducedRowEchelonForm_modular_double ( const double  p,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
size_t *  P,
size_t *  Qt,
const bool  transform,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ ReducedColumnEchelonForm_modular_float()

size_t ReducedColumnEchelonForm_modular_float ( const float  p,
const size_t  M,
const size_t  N,
float *  A,
const size_t  lda,
size_t *  P,
size_t *  Qt,
const bool  transform,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ ReducedRowEchelonForm_modular_float()

size_t ReducedRowEchelonForm_modular_float ( const float  p,
const size_t  M,
const size_t  N,
float *  A,
const size_t  lda,
size_t *  P,
size_t *  Qt,
const bool  transform,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ ReducedColumnEchelonForm_modular_int32_t()

size_t ReducedColumnEchelonForm_modular_int32_t ( const int32_t  p,
const size_t  M,
const size_t  N,
int32_t *  A,
const size_t  lda,
size_t *  P,
size_t *  Qt,
const bool  transform,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ ReducedRowEchelonForm_modular_int32_t()

size_t ReducedRowEchelonForm_modular_int32_t ( const int32_t  p,
const size_t  M,
const size_t  N,
int32_t *  A,
const size_t  lda,
size_t *  P,
size_t *  Qt,
const bool  transform,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ ReducedRowEchelonForm2_modular_double()

size_t ReducedRowEchelonForm2_modular_double ( const double  p,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
size_t *  P,
size_t *  Qt,
const bool  transform,
bool  positive 
)

◆ REF_modular_double()

size_t REF_modular_double ( const double  p,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
const size_t  colbeg,
const size_t  rowbeg,
const size_t  colsize,
size_t *  Qt,
size_t *  P,
bool  positive 
)

◆ Invertin_modular_double()

double * Invertin_modular_double ( const double  p,
const size_t  M,
double *  A,
const size_t  lda,
int *  nullity,
bool  positive 
)

◆ Invert_modular_double()

double * Invert_modular_double ( const double  p,
const size_t  M,
const double *  A,
const size_t  lda,
double *  X,
const size_t  ldx,
int *  nullity,
bool  positive 
)

◆ Invert2_modular_double()

double * Invert2_modular_double ( const double  p,
const size_t  M,
double *  A,
const size_t  lda,
double *  X,
const size_t  ldx,
int *  nullity,
bool  positive 
)

◆ KrylovElim_modular_double()

size_t KrylovElim_modular_double ( const double  p,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
size_t *  P,
size_t *  Q,
const size_t  deg,
size_t *  iterates,
size_t *  inviterates,
const size_t  maxit,
size_t  virt,
bool  positive 
)

◆ SpecRankProfile_modular_double()

size_t SpecRankProfile_modular_double ( const double  p,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
const size_t  deg,
size_t *  rankProfile,
bool  positive 
)

◆ Rank_modular_double()

size_t Rank_modular_double ( const double  p,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
bool  positive 
)

◆ IsSingular_modular_double()

bool IsSingular_modular_double ( const double  p,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
bool  positive 
)

◆ Det_modular_double()

double Det_modular_double ( const double  p,
const size_t  N,
double *  A,
const size_t  lda,
bool  positive 
)

◆ Solve_modular_double()

double * Solve_modular_double ( const double  p,
const size_t  M,
double *  A,
const size_t  lda,
double *  x,
const int  incx,
const double *  b,
const int  incb,
bool  positive 
)

◆ solveLB_modular_double()

void solveLB_modular_double ( const double  p,
const enum FFLAS_C_SIDE  Side,
const size_t  M,
const size_t  N,
const size_t  R,
double *  L,
const size_t  ldl,
const size_t *  Q,
double *  B,
const size_t  ldb 
)

◆ solveLB2_modular_double()

void solveLB2_modular_double ( const double  p,
const enum FFLAS_C_SIDE  Side,
const size_t  M,
const size_t  N,
const size_t  R,
double *  L,
const size_t  ldl,
const size_t *  Q,
double *  B,
const size_t  ldb,
bool  positive 
)

◆ RandomNullSpaceVector_modular_double()

void RandomNullSpaceVector_modular_double ( const double  p,
const enum FFLAS_C_SIDE  Side,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
double *  X,
const size_t  incX,
bool  positive 
)

◆ NullSpaceBasis_modular_double()

size_t NullSpaceBasis_modular_double ( const double  p,
const enum FFLAS_C_SIDE  Side,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
double **  NS,
size_t *  ldn,
size_t *  NSdim,
bool  positive 
)

◆ RowRankProfile_modular_double()

size_t RowRankProfile_modular_double ( const double  p,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
size_t **  rkprofile,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ ColumnRankProfile_modular_double()

size_t ColumnRankProfile_modular_double ( const double  p,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
size_t **  rkprofile,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ RankProfileFromLU()

void RankProfileFromLU ( const size_t *  P,
const size_t  N,
const size_t  R,
size_t *  rkprofile,
const enum FFPACK_C_LU_TAG  LuTag 
)

◆ LeadingSubmatrixRankProfiles()

size_t LeadingSubmatrixRankProfiles ( const size_t  M,
const size_t  N,
const size_t  R,
const size_t  LSm,
const size_t  LSn,
const size_t *  P,
const size_t *  Q,
size_t *  RRP,
size_t *  CRP 
)

◆ RowRankProfileSubmatrixIndices_modular_double()

size_t RowRankProfileSubmatrixIndices_modular_double ( const double  p,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
size_t **  rowindices,
size_t **  colindices,
size_t *  R,
bool  positive 
)

◆ ColRankProfileSubmatrixIndices_modular_double()

size_t ColRankProfileSubmatrixIndices_modular_double ( const double  p,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
size_t **  rowindices,
size_t **  colindices,
size_t *  R,
bool  positive 
)

◆ RowRankProfileSubmatrix_modular_double()

size_t RowRankProfileSubmatrix_modular_double ( const double  p,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
double **  X,
size_t *  R,
bool  positive 
)

◆ ColRankProfileSubmatrix_modular_double()

size_t ColRankProfileSubmatrix_modular_double ( const double  p,
const size_t  M,
const size_t  N,
double *  A,
const size_t  lda,
double **  X,
size_t *  R,
bool  positive 
)

◆ getTriangular_modular_double()

void getTriangular_modular_double ( const double  p,
const enum FFLAS_C_UPLO  Uplo,
const enum FFLAS_C_DIAG  diag,
const size_t  M,
const size_t  N,
const size_t  R,
const double *  A,
const size_t  lda,
double *  T,
const size_t  ldt,
const bool  OnlyNonZeroVectors,
bool  positive 
)

◆ getTriangularin_modular_double()

void getTriangularin_modular_double ( const double  p,
const enum FFLAS_C_UPLO  Uplo,
const enum FFLAS_C_DIAG  diag,
const size_t  M,
const size_t  N,
const size_t  R,
double *  A,
const size_t  lda,
bool  positive 
)

◆ getEchelonForm_modular_double()

void getEchelonForm_modular_double ( const double  p,
const enum FFLAS_C_UPLO  Uplo,
const enum FFLAS_C_DIAG  diag,
const size_t  M,
const size_t  N,
const size_t  R,
const size_t *  P,
const double *  A,
const size_t  lda,
double *  T,
const size_t  ldt,
const bool  OnlyNonZeroVectors,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ getEchelonFormin_modular_double()

void getEchelonFormin_modular_double ( const double  p,
const enum FFLAS_C_UPLO  Uplo,
const enum FFLAS_C_DIAG  diag,
const size_t  M,
const size_t  N,
const size_t  R,
const size_t *  P,
double *  A,
const size_t  lda,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ getEchelonTransform_modular_double()

void getEchelonTransform_modular_double ( const double  p,
const enum FFLAS_C_UPLO  Uplo,
const enum FFLAS_C_DIAG  diag,
const size_t  M,
const size_t  N,
const size_t  R,
const size_t *  P,
const size_t *  Q,
const double *  A,
const size_t  lda,
double *  T,
const size_t  ldt,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ getReducedEchelonForm_modular_double()

void getReducedEchelonForm_modular_double ( const double  p,
const enum FFLAS_C_UPLO  Uplo,
const size_t  M,
const size_t  N,
const size_t  R,
const size_t *  P,
const double *  A,
const size_t  lda,
double *  T,
const size_t  ldt,
const bool  OnlyNonZeroVectors,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ getReducedEchelonFormin_modular_double()

void getReducedEchelonFormin_modular_double ( const double  p,
const enum FFLAS_C_UPLO  Uplo,
const size_t  M,
const size_t  N,
const size_t  R,
const size_t *  P,
double *  A,
const size_t  lda,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ getReducedEchelonTransform_modular_double()

void getReducedEchelonTransform_modular_double ( const double  p,
const enum FFLAS_C_UPLO  Uplo,
const size_t  M,
const size_t  N,
const size_t  R,
const size_t *  P,
const size_t *  Q,
const double *  A,
const size_t  lda,
double *  T,
const size_t  ldt,
const enum FFPACK_C_LU_TAG  LuTag,
bool  positive 
)

◆ PLUQtoEchelonPermutation()

void PLUQtoEchelonPermutation ( const size_t  N,
const size_t  R,
const size_t *  P,
size_t *  outPerm 
)