FflasFfpack
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 }
 Storage by row or col ? More...
 
enum  FFLAS_C_TRANSPOSE { FflasNoTrans = 111 , FflasTrans = 112 }
 Is matrix transposed ? More...
 
enum  FFLAS_C_UPLO { FflasUpper = 121 , FflasLower = 122 }
 Is triangular matrix's shape upper ? More...
 
enum  FFLAS_C_DIAG { FflasNonUnit = 131 , FflasUnit = 132 }
 Is the triangular matrix implicitly unit diagonal ? More...
 
enum  FFLAS_C_SIDE { 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

◆ FFLAS_C_TRANSPOSE

Is matrix transposed ?

Enumerator
FflasNoTrans 

Matrix is not transposed.

FflasTrans 

Matrix is transposed.

◆ 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$)

◆ 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$)

◆ FFLAS_C_SIDE

On what side ?

Enumerator
FflasLeft 

Operator applied on the left.

FflasRight 

Operator applied on the rigth.

◆ 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 )