FflasFfpack
|
#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 |
#define BASECASE_K 37 |
#define __FFLASFFPACK_SEQUENTIAL |
#define __LUDIVINE_CUTOFF 1 |
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.
Field | Field |
Diag | Unit diagonal in U |
Trans |
F | field |
A | Matrix (preallocated) |
r | rank of A |
m | rows |
n | cols |
lda | leading dim of A |
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].
Field | Field |
Diag | Unit diagonal in U |
F | field |
A | Matrix (preallocated) |
r | rank of A |
m | rows |
n | cols |
lda | leading dim of A |
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.
Field | Field |
Diag | Unit diagonal in U |
Trans |
F | field |
A | Matrix (preallocated) |
r | rank of A |
m | rows |
n | cols |
lda | leading dim of A |
bool launch_test | ( | const Field & | F, |
size_t | r, | ||
size_t | m, | ||
size_t | n, | ||
RandIter & | G | ||
) |
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 | ||
) |
Givaro::Timer tperm |
Givaro::Timer tgemm |
Givaro::Timer tBC |
Givaro::Timer ttrsm |
Givaro::Timer trest |
Givaro::Timer timtot |
size_t mvcnt = 0 |