FflasFfpack
|
C functions calls for FFPACK in ffpack-c.h. More...
#include "fflas-ffpack/interfaces/libs/ffpack_c.h"
#include "fflas-ffpack/fflas/fflas.h"
#include "fflas-ffpack/ffpack/ffpack.h"
#include "givaro//modular-balanced.h"
#include "givaro//modular.h"
Functions | |
void | LAPACKPerm2MathPerm (size_t *MathP, const size_t *LapackP, const size_t N) |
Conversion of a permutation from LAPACK format to Math format. More... | |
void | MathPerm2LAPACKPerm (size_t *LapackP, const size_t *MathP, const size_t N) |
Conversion of a permutation from Maths format to LAPACK format. More... | |
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) |
Computes P1 x Diag (I_R, P2) where P1 is a LAPACK and P2 a LAPACK permutation and store the result in MathP as a MathPermutation format. More... | |
void | composePermutationsLLL (size_t *P1, const size_t *P2, const size_t R, const size_t N) |
Computes P1 x Diag (I_R, P2) where P1 is a LAPACK and P2 a LAPACK permutation and store the result in P1 as a LAPACK permutation. More... | |
void | composePermutationsMLM (size_t *MathP1, const size_t *P2, const size_t R, const size_t N) |
Computes MathP1 x Diag (I_R, P2) where MathP1 is a MathPermutation and P2 a LAPACK permutation and store the result in MathP1 as a MathPermutation format. More... | |
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::FFLAS_SIDE Side, const enum FFLAS::FFLAS_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::FFLAS_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 * | fgetrsv_modular_double (const double p, const enum FFLAS::FFLAS_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::FFLAS_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::FFLAS_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, bool positive) |
void | ftrtri_modular_double (const double p, const enum FFLAS::FFLAS_UPLO Uplo, const enum FFLAS::FFLAS_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 FFLAS::FFLAS_SIDE side, const enum FFLAS::FFLAS_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::FFLAS_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::FFLAS_DIAG Diag, const enum FFLAS::FFLAS_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 | 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 | 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 | 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 | 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 | 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_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 | pColumnEchelonForm_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 | pRowEchelonForm_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 | pReducedColumnEchelonForm_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 | pReducedRowEchelonForm_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 | pColumnEchelonForm_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 | pRowEchelonForm_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 | pReducedColumnEchelonForm_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 | pReducedRowEchelonForm_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 | pColumnEchelonForm_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 | pRowEchelonForm_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 | pReducedColumnEchelonForm_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 | pReducedRowEchelonForm_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) |
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::FFLAS_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 | solveLB2_modular_double (const double p, const enum FFLAS::FFLAS_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::FFLAS_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::FFLAS_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) |
Recovers the row and column rank profiles of any leading submatrix from the PLUQ decomposition. More... | |
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::FFLAS_UPLO Uplo, const enum FFLAS::FFLAS_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::FFLAS_UPLO Uplo, const enum FFLAS::FFLAS_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::FFLAS_UPLO Uplo, const enum FFLAS::FFLAS_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::FFLAS_UPLO Uplo, const enum FFLAS::FFLAS_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::FFLAS_UPLO Uplo, const enum FFLAS::FFLAS_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::FFLAS_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::FFLAS_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::FFLAS_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) |
Auxiliary routine: determines the permutation that changes a PLUQ decomposition into a echelon form revealing PLUQ decomposition. More... | |
C functions calls for FFPACK in ffpack-c.h.
|
inline |
Conversion of a permutation from LAPACK format to Math format.
|
inline |
Conversion of a permutation from Maths format to LAPACK format.
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 | ||
) |
|
inline |
Computes P1 x Diag (I_R, P2) where P1 is a LAPACK and P2 a LAPACK permutation and store the result in MathP as a MathPermutation format.
[out] |
|
inline |
Computes P1 x Diag (I_R, P2) where P1 is a LAPACK and P2 a LAPACK permutation and store the result in P1 as a LAPACK permutation.
[in,out] | P1 | a LAPACK permutation of size N |
P2 | a LAPACK permutation of size N-R |
|
inline |
Computes MathP1 x Diag (I_R, P2) where MathP1 is a MathPermutation and P2 a LAPACK permutation and store the result in MathP1 as a MathPermutation format.
[in,out] | MathP1 | a MathPermutation of size N |
P2 | a LAPACK permutation of size N-R |
|
inline |
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::FFLAS_SIDE | Side, | ||
const enum FFLAS::FFLAS_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::FFLAS_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* fgetrsv_modular_double | ( | const double | p, |
const enum FFLAS::FFLAS_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::FFLAS_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::FFLAS_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, | ||
bool | positive | ||
) |
void ftrtri_modular_double | ( | const double | p, |
const enum FFLAS::FFLAS_UPLO | Uplo, | ||
const enum FFLAS::FFLAS_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 FFLAS::FFLAS_SIDE | side, | ||
const enum FFLAS::FFLAS_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::FFLAS_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::FFLAS_DIAG | Diag, | ||
const enum FFLAS::FFLAS_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 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 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 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 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 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_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 pColumnEchelonForm_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 pRowEchelonForm_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 pReducedColumnEchelonForm_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 pReducedRowEchelonForm_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 pColumnEchelonForm_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 pRowEchelonForm_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 pReducedColumnEchelonForm_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 pReducedRowEchelonForm_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 pColumnEchelonForm_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 pRowEchelonForm_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 pReducedColumnEchelonForm_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 pReducedRowEchelonForm_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 | ||
) |
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::FFLAS_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 solveLB2_modular_double | ( | const double | p, |
const enum FFLAS::FFLAS_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::FFLAS_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::FFLAS_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 | ||
) |
|
inline |
Recovers the row and column rank profiles of any leading submatrix from the PLUQ decomposition.
Only works with the PLUQ decomposition Assumes that the output vectors containing the rank profiles are already allocated.
P | the permutation carrying the rank profile information |
M | the row dimension of the initial matrix |
N | the column dimension of the initial matrix |
R | the rank of the initial matrix |
LSm | the row dimension of the leading submatrix considered |
LSn | the column dimension of the leading submatrix considered |
P | the row permutation of the PLUQ decomposition |
Q | the column permutation of the PLUQ decomposition |
RRP | return the row rank profile of the leading submatrix |
A is modified
Simultaneous
computation of the row and column rank profiles , ISSAC'13. 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::FFLAS_UPLO | Uplo, | ||
const enum FFLAS::FFLAS_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::FFLAS_UPLO | Uplo, | ||
const enum FFLAS::FFLAS_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::FFLAS_UPLO | Uplo, | ||
const enum FFLAS::FFLAS_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::FFLAS_UPLO | Uplo, | ||
const enum FFLAS::FFLAS_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::FFLAS_UPLO | Uplo, | ||
const enum FFLAS::FFLAS_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::FFLAS_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::FFLAS_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::FFLAS_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 | ||
) |
|
inline |
Auxiliary routine: determines the permutation that changes a PLUQ decomposition into a echelon form revealing PLUQ decomposition.