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

Macros

#define FFLAS_COMPILED
 

Enumerations

enum  FFLAS_C_ORDER { FflasRowMajor =101 , FflasColMajor =102 , FflasRowMajor =101 , FflasColMajor =102 }
 Storage by row or col ? More...
 
enum  FFLAS_C_TRANSPOSE { FflasNoTrans = 111 , FflasTrans = 112 , FflasNoTrans = 111 , FflasTrans = 112 }
 Is matrix transposed ? More...
 
enum  FFLAS_C_UPLO { FflasUpper = 121 , FflasLower = 122 , FflasUpper = 121 , FflasLower = 122 }
 Is triangular matrix's shape upper ? More...
 
enum  FFLAS_C_DIAG { FflasNonUnit = 131 , FflasUnit = 132 , FflasNonUnit = 131 , FflasUnit = 132 }
 Is the triangular matrix implicitly unit diagonal ? More...
 
enum  FFLAS_C_SIDE { FflasLeft = 141 , FflasRight = 142 , FflasLeft = 141 , FflasRight = 142 }
 On what side ? More...
 
enum  FFLAS_C_BASE { FflasDouble = 151 , FflasFloat = 152 , FflasGeneric = 153 }
 FFLAS_C_BASE determines the type of the element representation for Matrix Mult kernel. More...
 

Functions

void freducein_1_modular_double (const double p, const size_t n, double *X, const size_t incX, bool positive)
 
void freduce_1_modular_double (const double F, const size_t n, const double *Y, const size_t incY, double *X, const size_t incX, bool positive)
 
void fnegin_1_modular_double (const double F, const size_t n, double *X, const size_t incX, bool positive)
 
void fneg_1_modular_double (const double p, const size_t n, const double *Y, const size_t incY, double *X, const size_t incX, bool positive)
 
void fzero_1_modular_double (const double p, const size_t n, double *X, const size_t incX, bool positive)
 
bool fiszero_1_modular_double (const double p, const size_t n, const double *X, const size_t incX, bool positive)
 
bool fequal_1_modular_double (const double p, const size_t n, const double *X, const size_t incX, const double *Y, const size_t incY, bool positive)
 
void fassign_1_modular_double (const double p, const size_t n, const double *Y, const size_t incY, double *X, const size_t incX, bool positive)
 
void fscalin_1_modular_double (const double p, const size_t n, const double alpha, double *X, const size_t incX, bool positive)
 
void fscal_1_modular_double (const double p, const size_t n, const double alpha, const double *X, const size_t incX, double *Y, const size_t incY, bool positive)
 
void faxpy_1_modular_double (const double p, const size_t n, const double alpha, const double *X, const size_t incX, double *Y, const size_t incY, bool positive)
 
double fdot_1_modular_double (const double p, const size_t n, const double *X, const size_t incX, const double *Y, const size_t incY, bool positive)
 
void fswap_1_modular_double (const double p, const size_t n, double *X, const size_t incX, double *Y, const size_t incY, bool positive)
 
void fadd_1_modular_double (const double p, const size_t n, const double *A, const size_t incA, const double *B, const size_t incB, double *C, const size_t incC, bool positive)
 
void fsub_1_modular_double (const double p, const size_t n, const double *A, const size_t incA, const double *B, const size_t incB, double *C, const size_t incC, bool positive)
 
void faddin_1_modular_double (const double p, const size_t n, const double *B, const size_t incB, double *C, const size_t incC, bool positive)
 
void fsubin_1_modular_double (const double p, const size_t n, const double *B, const size_t incB, double *C, const size_t incC, bool positive)
 
void fassign_2_modular_double (const double p, const size_t m, const size_t n, const double *B, const size_t ldB, double *A, const size_t ldA, bool positive)
 
void fzero_2_modular_double (const double p, const size_t m, const size_t n, double *A, const size_t ldA, bool positive)
 
bool fequal_2_modular_double (const double p, const size_t m, const size_t n, const double *A, const size_t ldA, const double *B, const size_t ldB, bool positive)
 
bool fiszero_2_modular_double (const double p, const size_t m, const size_t n, const double *A, const size_t ldA, bool positive)
 
void fidentity_2_modular_double (const double p, const size_t m, const size_t n, double *A, const size_t ldA, const double d, bool positive)
 
void freducein_2_modular_double (const double p, const size_t m, const size_t n, double *A, const size_t ldA, bool positive)
 
void freduce_2_modular_double (const double p, const size_t m, const size_t n, const double *B, const size_t ldB, double *A, const size_t ldA, bool positive)
 
void fnegin_2_modular_double (const double p, const size_t m, const size_t n, double *A, const size_t ldA, bool positive)
 
void fneg_2_modular_double (const double p, const size_t m, const size_t n, const double *B, const size_t ldB, double *A, const size_t ldA, bool positive)
 
void fscalin_2_modular_double (const double p, const size_t m, const size_t n, const double alpha, double *A, const size_t ldA, bool positive)
 
void fscal_2_modular_double (const double p, const size_t m, const size_t n, const double alpha, const double *A, const size_t ldA, double *B, const size_t ldB, bool positive)
 
void faxpy_2_modular_double (const double p, const size_t m, const size_t n, const double alpha, const double *X, const size_t ldX, double *Y, const size_t ldY, bool positive)
 
void fmove_2_modular_double (const double p, const size_t m, const size_t n, double *A, const size_t ldA, double *B, const size_t ldB, bool positive)
 
void fadd_2_modular_double (const double p, const size_t m, const size_t n, const double *A, const size_t ldA, const double *B, const size_t ldB, double *C, const size_t ldC, bool positive)
 
void fsub_2_modular_double (const double p, const size_t m, const size_t n, const double *A, const size_t ldA, const double *B, const size_t ldB, double *C, const size_t ldC, bool positive)
 
void fsubin_2_modular_double (const double p, const size_t m, const size_t n, const double *B, const size_t ldB, double *C, const size_t ldC, bool positive)
 
void faddin_2_modular_double (const double p, const size_t m, const size_t n, const double *B, const size_t ldB, double *C, const size_t ldC, bool positive)
 
double * fgemv_2_modular_double (const double p, const enum FFLAS_C_TRANSPOSE TransA, const size_t m, const size_t n, const double alpha, const double *A, const size_t ldA, const double *X, const size_t incX, const double betA, double *Y, const size_t incY, bool positive)
 
void fger_2_modular_double (const double p, const size_t m, const size_t n, const double alpha, const double *x, const size_t incX, const double *y, const size_t incY, double *A, const size_t ldA, bool positive)
 
void ftrsv_2_modular_double (const double p, const enum FFLAS_C_UPLO Uplo, const enum FFLAS_C_TRANSPOSE TransA, const enum FFLAS_C_DIAG Diag, const size_t n, const double *A, const size_t ldA, double *X, int incX, bool positive)
 
void ftrsm_3_modular_double (const double p, const enum FFLAS_C_SIDE Side, const enum FFLAS_C_UPLO Uplo, const enum FFLAS_C_TRANSPOSE TransA, const enum FFLAS_C_DIAG Diag, const size_t m, const size_t n, const double alpha, const double *A, const size_t ldA, double *B, const size_t ldB, bool positive)
 
void ftrmm_3_modular_double (const double p, const enum FFLAS_C_SIDE Side, const enum FFLAS_C_UPLO Uplo, const enum FFLAS_C_TRANSPOSE TransA, const enum FFLAS_C_DIAG Diag, const size_t m, const size_t n, const double alpha, double *A, const size_t ldA, double *B, const size_t ldB, bool positive)
 
double * fgemm_3_modular_double (const double p, const enum FFLAS_C_TRANSPOSE tA, const enum FFLAS_C_TRANSPOSE tB, const size_t m, const size_t n, const size_t k, const double alpha, const double *A, const size_t ldA, const double *B, const size_t ldB, const double betA, double *C, const size_t ldC, bool positive)
 
double * fsquare_3_modular_double (const double p, const enum FFLAS_C_TRANSPOSE tA, const size_t n, const double alpha, const double *A, const size_t ldA, const double betA, double *C, const size_t ldC, bool positive)
 

Macro Definition Documentation

◆ FFLAS_COMPILED

#define FFLAS_COMPILED

Enumeration Type Documentation

◆ FFLAS_C_ORDER

Storage by row or col ?

Enumerator
FflasRowMajor 

row major

FflasColMajor 

col major

FflasRowMajor 
FflasColMajor 

◆ FFLAS_C_TRANSPOSE

Is matrix transposed ?

Enumerator
FflasNoTrans 

Matrix is not transposed.

FflasTrans 

Matrix is transposed.

FflasNoTrans 
FflasTrans 

◆ FFLAS_C_UPLO

Is triangular matrix's shape upper ?

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

Is the triangular matrix implicitly unit diagonal ?

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

On what side ?

Enumerator
FflasLeft 

Operator applied on the left.

FflasRight 

Operator applied on the rigth.

FflasLeft 
FflasRight 

◆ FFLAS_C_BASE

FFLAS_C_BASE determines the type of the element representation for Matrix Mult kernel.

(deprecated, should not be used)

Enumerator
FflasDouble 

to use the double precision BLAS

FflasFloat 

to use the single precison BLAS

FflasGeneric 

for any other domain, that can not be converted to floating point integers

Function Documentation

◆ freducein_1_modular_double()

void freducein_1_modular_double ( const double  p,
const size_t  n,
double *  X,
const size_t  incX,
bool  positive 
)

◆ freduce_1_modular_double()

void freduce_1_modular_double ( const double  F,
const size_t  n,
const double *  Y,
const size_t  incY,
double *  X,
const size_t  incX,
bool  positive 
)

◆ fnegin_1_modular_double()

void fnegin_1_modular_double ( const double  F,
const size_t  n,
double *  X,
const size_t  incX,
bool  positive 
)

◆ fneg_1_modular_double()

void fneg_1_modular_double ( const double  p,
const size_t  n,
const double *  Y,
const size_t  incY,
double *  X,
const size_t  incX,
bool  positive 
)

◆ fzero_1_modular_double()

void fzero_1_modular_double ( const double  p,
const size_t  n,
double *  X,
const size_t  incX,
bool  positive 
)

◆ fiszero_1_modular_double()

bool fiszero_1_modular_double ( const double  p,
const size_t  n,
const double *  X,
const size_t  incX,
bool  positive 
)

◆ fequal_1_modular_double()

bool fequal_1_modular_double ( const double  p,
const size_t  n,
const double *  X,
const size_t  incX,
const double *  Y,
const size_t  incY,
bool  positive 
)

◆ fassign_1_modular_double()

void fassign_1_modular_double ( const double  p,
const size_t  n,
const double *  Y,
const size_t  incY,
double *  X,
const size_t  incX,
bool  positive 
)

◆ fscalin_1_modular_double()

void fscalin_1_modular_double ( const double  p,
const size_t  n,
const double  alpha,
double *  X,
const size_t  incX,
bool  positive 
)

◆ fscal_1_modular_double()

void fscal_1_modular_double ( const double  p,
const size_t  n,
const double  alpha,
const double *  X,
const size_t  incX,
double *  Y,
const size_t  incY,
bool  positive 
)

◆ faxpy_1_modular_double()

void faxpy_1_modular_double ( const double  p,
const size_t  n,
const double  alpha,
const double *  X,
const size_t  incX,
double *  Y,
const size_t  incY,
bool  positive 
)

◆ fdot_1_modular_double()

double fdot_1_modular_double ( const double  p,
const size_t  n,
const double *  X,
const size_t  incX,
const double *  Y,
const size_t  incY,
bool  positive 
)

◆ fswap_1_modular_double()

void fswap_1_modular_double ( const double  p,
const size_t  n,
double *  X,
const size_t  incX,
double *  Y,
const size_t  incY,
bool  positive 
)

◆ fadd_1_modular_double()

void fadd_1_modular_double ( const double  p,
const size_t  n,
const double *  A,
const size_t  incA,
const double *  B,
const size_t  incB,
double *  C,
const size_t  incC,
bool  positive 
)

◆ fsub_1_modular_double()

void fsub_1_modular_double ( const double  p,
const size_t  n,
const double *  A,
const size_t  incA,
const double *  B,
const size_t  incB,
double *  C,
const size_t  incC,
bool  positive 
)

◆ faddin_1_modular_double()

void faddin_1_modular_double ( const double  p,
const size_t  n,
const double *  B,
const size_t  incB,
double *  C,
const size_t  incC,
bool  positive 
)

◆ fsubin_1_modular_double()

void fsubin_1_modular_double ( const double  p,
const size_t  n,
const double *  B,
const size_t  incB,
double *  C,
const size_t  incC,
bool  positive 
)

◆ fassign_2_modular_double()

void fassign_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
const double *  B,
const size_t  ldB,
double *  A,
const size_t  ldA,
bool  positive 
)

◆ fzero_2_modular_double()

void fzero_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
double *  A,
const size_t  ldA,
bool  positive 
)

◆ fequal_2_modular_double()

bool fequal_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
const double *  A,
const size_t  ldA,
const double *  B,
const size_t  ldB,
bool  positive 
)

◆ fiszero_2_modular_double()

bool fiszero_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
const double *  A,
const size_t  ldA,
bool  positive 
)

◆ fidentity_2_modular_double()

void fidentity_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
double *  A,
const size_t  ldA,
const double  d,
bool  positive 
)

◆ freducein_2_modular_double()

void freducein_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
double *  A,
const size_t  ldA,
bool  positive 
)

◆ freduce_2_modular_double()

void freduce_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
const double *  B,
const size_t  ldB,
double *  A,
const size_t  ldA,
bool  positive 
)

◆ fnegin_2_modular_double()

void fnegin_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
double *  A,
const size_t  ldA,
bool  positive 
)

◆ fneg_2_modular_double()

void fneg_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
const double *  B,
const size_t  ldB,
double *  A,
const size_t  ldA,
bool  positive 
)

◆ fscalin_2_modular_double()

void fscalin_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
const double  alpha,
double *  A,
const size_t  ldA,
bool  positive 
)

◆ fscal_2_modular_double()

void fscal_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
const double  alpha,
const double *  A,
const size_t  ldA,
double *  B,
const size_t  ldB,
bool  positive 
)

◆ faxpy_2_modular_double()

void faxpy_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
const double  alpha,
const double *  X,
const size_t  ldX,
double *  Y,
const size_t  ldY,
bool  positive 
)

◆ fmove_2_modular_double()

void fmove_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
double *  A,
const size_t  ldA,
double *  B,
const size_t  ldB,
bool  positive 
)

◆ fadd_2_modular_double()

void fadd_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
const double *  A,
const size_t  ldA,
const double *  B,
const size_t  ldB,
double *  C,
const size_t  ldC,
bool  positive 
)

◆ fsub_2_modular_double()

void fsub_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
const double *  A,
const size_t  ldA,
const double *  B,
const size_t  ldB,
double *  C,
const size_t  ldC,
bool  positive 
)

◆ fsubin_2_modular_double()

void fsubin_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
const double *  B,
const size_t  ldB,
double *  C,
const size_t  ldC,
bool  positive 
)

◆ faddin_2_modular_double()

void faddin_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
const double *  B,
const size_t  ldB,
double *  C,
const size_t  ldC,
bool  positive 
)

◆ fgemv_2_modular_double()

double* fgemv_2_modular_double ( const double  p,
const enum FFLAS_C_TRANSPOSE  TransA,
const size_t  m,
const size_t  n,
const double  alpha,
const double *  A,
const size_t  ldA,
const double *  X,
const size_t  incX,
const double  betA,
double *  Y,
const size_t  incY,
bool  positive 
)

◆ fger_2_modular_double()

void fger_2_modular_double ( const double  p,
const size_t  m,
const size_t  n,
const double  alpha,
const double *  x,
const size_t  incX,
const double *  y,
const size_t  incY,
double *  A,
const size_t  ldA,
bool  positive 
)

◆ ftrsv_2_modular_double()

void ftrsv_2_modular_double ( const double  p,
const enum FFLAS_C_UPLO  Uplo,
const enum FFLAS_C_TRANSPOSE  TransA,
const enum FFLAS_C_DIAG  Diag,
const size_t  n,
const double *  A,
const size_t  ldA,
double *  X,
int  incX,
bool  positive 
)

◆ ftrsm_3_modular_double()

void ftrsm_3_modular_double ( const double  p,
const enum FFLAS_C_SIDE  Side,
const enum FFLAS_C_UPLO  Uplo,
const enum FFLAS_C_TRANSPOSE  TransA,
const enum FFLAS_C_DIAG  Diag,
const size_t  m,
const size_t  n,
const double  alpha,
const double *  A,
const size_t  ldA,
double *  B,
const size_t  ldB,
bool  positive 
)

◆ ftrmm_3_modular_double()

void ftrmm_3_modular_double ( const double  p,
const enum FFLAS_C_SIDE  Side,
const enum FFLAS_C_UPLO  Uplo,
const enum FFLAS_C_TRANSPOSE  TransA,
const enum FFLAS_C_DIAG  Diag,
const size_t  m,
const size_t  n,
const double  alpha,
double *  A,
const size_t  ldA,
double *  B,
const size_t  ldB,
bool  positive 
)

◆ fgemm_3_modular_double()

double* fgemm_3_modular_double ( const double  p,
const enum FFLAS_C_TRANSPOSE  tA,
const enum FFLAS_C_TRANSPOSE  tB,
const size_t  m,
const size_t  n,
const size_t  k,
const double  alpha,
const double *  A,
const size_t  ldA,
const double *  B,
const size_t  ldB,
const double  betA,
double *  C,
const size_t  ldC,
bool  positive 
)

◆ fsquare_3_modular_double()

double* fsquare_3_modular_double ( const double  p,
const enum FFLAS_C_TRANSPOSE  tA,
const size_t  n,
const double  alpha,
const double *  A,
const size_t  ldA,
const double  betA,
double *  C,
const size_t  ldC,
bool  positive 
)