FflasFfpack
Macros | Functions | Variables
test-lu.C File Reference
#include "fflas-ffpack/fflas-ffpack-config.h"
#include <givaro/modular-balanced.h>
#include <iostream>
#include <iomanip>
#include "fflas-ffpack/utils/timer.h"
#include "fflas-ffpack/fflas/fflas.h"
#include "fflas-ffpack/ffpack/ffpack.h"
#include "fflas-ffpack/utils/test-utils.h"
#include "fflas-ffpack/utils/args-parser.h"
#include <random>

Macros

#define BASECASE_K   37
 
#define __FFLASFFPACK_SEQUENTIAL
 
#define __LUDIVINE_CUTOFF   1
 

Functions

template<class Field , FFLAS::FFLAS_DIAG diag, FFLAS_TRANSPOSE trans>
bool test_LUdivine (const Field &F, typename Field::ConstElement_ptr A, size_t lda, size_t r, size_t m, size_t n)
 Tests the LUdivine routine. More...
 
template<class Field , FFLAS_DIAG diag>
bool verifPLUQ (const Field &F, typename Field::ConstElement_ptr A, size_t lda, typename Field::Element_ptr PLUQ, size_t ldpluq, size_t *P, size_t *Q, size_t m, size_t n, size_t R)
 Verifies that B = PLUQ where A stores [L\U]. More...
 
template<class Field , FFLAS_DIAG diag, class RandIter >
bool test_pluq (const Field &F, typename Field::ConstElement_ptr A, size_t r, size_t m, size_t n, size_t lda, RandIter &G)
 Tests the LUdivine routine. More...
 
template<class Field , FFLAS_DIAG diag, FFLAS_TRANSPOSE trans, class RandIter >
bool launch_test (const Field &F, size_t r, size_t m, size_t n, RandIter &G)
 
template<class Field >
bool run_with_field (Givaro::Integer q, uint64_t b, size_t m, size_t n, size_t r, size_t iters, uint64_t seed)
 
int main (int argc, char **argv)
 

Variables

Givaro::Timer tperm
 
Givaro::Timer tgemm
 
Givaro::Timer tBC
 
Givaro::Timer ttrsm
 
Givaro::Timer trest
 
Givaro::Timer timtot
 
size_t mvcnt = 0
 

Macro Definition Documentation

◆ BASECASE_K

#define BASECASE_K   37

◆ __FFLASFFPACK_SEQUENTIAL

#define __FFLASFFPACK_SEQUENTIAL

◆ __LUDIVINE_CUTOFF

#define __LUDIVINE_CUTOFF   1

Function Documentation

◆ test_LUdivine()

bool test_LUdivine ( const Field F,
typename Field::ConstElement_ptr  A,
size_t  lda,
size_t  r,
size_t  m,
size_t  n 
)

Tests the LUdivine routine.

Template Parameters
FieldField
DiagUnit diagonal in U
Trans
Parameters
Ffield
AMatrix (preallocated)
rrank of A
mrows
ncols
ldaleading dim of A
Returns
0 iff correct, 1 otherwise

◆ verifPLUQ()

bool verifPLUQ ( const Field F,
typename Field::ConstElement_ptr  A,
size_t  lda,
typename Field::Element_ptr  PLUQ,
size_t  ldpluq,
size_t *  P,
size_t *  Q,
size_t  m,
size_t  n,
size_t  R 
)

Verifies that B = PLUQ where A stores [L\U].

Template Parameters
FieldField
DiagUnit diagonal in U
Parameters
Ffield
AMatrix (preallocated)
rrank of A
mrows
ncols
ldaleading dim of A
Returns
0 iff correct, 1 otherwise

◆ test_pluq()

bool test_pluq ( const Field F,
typename Field::ConstElement_ptr  A,
size_t  r,
size_t  m,
size_t  n,
size_t  lda,
RandIter &  G 
)

Tests the LUdivine routine.

Template Parameters
FieldField
DiagUnit diagonal in U
Trans
Parameters
Ffield
AMatrix (preallocated)
rrank of A
mrows
ncols
ldaleading dim of A
Returns
0 iff correct, 1 otherwise

◆ launch_test()

bool launch_test ( const Field F,
size_t  r,
size_t  m,
size_t  n,
RandIter &  G 
)

◆ run_with_field()

bool run_with_field ( Givaro::Integer  q,
uint64_t  b,
size_t  m,
size_t  n,
size_t  r,
size_t  iters,
uint64_t  seed 
)

◆ main()

int main ( int  argc,
char **  argv 
)

Variable Documentation

◆ tperm

Givaro::Timer tperm

◆ tgemm

Givaro::Timer tgemm

◆ tBC

Givaro::Timer tBC

◆ ttrsm

Givaro::Timer ttrsm

◆ trest

Givaro::Timer trest

◆ timtot

Givaro::Timer timtot

◆ mvcnt

size_t mvcnt = 0