FflasFfpack
test-sss.C File Reference
#include "fflas-ffpack/fflas-ffpack-config.h"
#include <givaro/modular-balanced.h>
#include <iostream>
#include <iomanip>
#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 __FFLASFFPACK_PLUQ_THRESHOLD   5
 
#define BRUHATGEN
 

Functions

template<class Field>
bool test_reconstruction_compatibility (const Field &F, size_t n, size_t s, typename Field::ConstElement_ptr P, size_t ldp, typename Field::ConstElement_ptr Q, size_t ldq, typename Field::ConstElement_ptr R, size_t ldr, typename Field::ConstElement_ptr U, size_t ldu, typename Field::ConstElement_ptr V, size_t ldv, typename Field::ConstElement_ptr W, size_t ldw, typename Field::ConstElement_ptr D, size_t ldd)
 test equality between matrix reconstructed by SSSToDense and applied to identity with productSSSxTS
 
template<class Field>
bool test_application_compatibility (const Field &F, size_t n, size_t t, size_t s, const typename Field::Element alpha, typename Field::ConstElement_ptr P, size_t ldp, typename Field::ConstElement_ptr Q, size_t ldq, typename Field::ConstElement_ptr R, size_t ldr, typename Field::ConstElement_ptr U, size_t ldu, typename Field::ConstElement_ptr V, size_t ldv, typename Field::ConstElement_ptr W, size_t ldw, typename Field::ConstElement_ptr D, size_t ldd, typename Field::ConstElement_ptr B, size_t ldb, const typename Field::Element beta, typename Field::ConstElement_ptr C, size_t ldc)
 test equality between applying productSSSxTS or dense matrix
 
template<class Field>
bool test_compression (const Field &F, size_t n, size_t s, typename Field::ConstElement_ptr P, size_t ldp, typename Field::ConstElement_ptr Q, size_t ldq, typename Field::ConstElement_ptr R, size_t ldr, typename Field::ConstElement_ptr U, size_t ldu, typename Field::ConstElement_ptr V, size_t ldv, typename Field::ConstElement_ptr W, size_t ldw, typename Field::ConstElement_ptr D, size_t ldd, typename Field::Element_ptr A, size_t lda)
 test equality between a dense sss matrix and the result of compressing and reconstructing it A dense matrix is given in A, another one is constructed from its random generators
 
template<class Field>
bool launch_instance_check (const Field &F, size_t n, size_t s, size_t t, size_t r, typename Field::RandIter &G)
 
template<class Field>
bool run_with_field (Givaro::Integer q, uint64_t b, size_t n, size_t s, size_t t, size_t r, size_t iters, uint64_t seed)
 
int main (int argc, char **argv)
 

Macro Definition Documentation

◆ __FFLASFFPACK_PLUQ_THRESHOLD

#define __FFLASFFPACK_PLUQ_THRESHOLD   5

◆ BRUHATGEN

#define BRUHATGEN
Value:
false /* true for the compression test to be executed on a QS matrix given by
RandomLTQSMatrixWithRankandQSorder
false to avoid the random generator */

Function Documentation

◆ test_reconstruction_compatibility()

template<class Field>
bool test_reconstruction_compatibility ( const Field & F,
size_t n,
size_t s,
typename Field::ConstElement_ptr P,
size_t ldp,
typename Field::ConstElement_ptr Q,
size_t ldq,
typename Field::ConstElement_ptr R,
size_t ldr,
typename Field::ConstElement_ptr U,
size_t ldu,
typename Field::ConstElement_ptr V,
size_t ldv,
typename Field::ConstElement_ptr W,
size_t ldw,
typename Field::ConstElement_ptr D,
size_t ldd )

test equality between matrix reconstructed by SSSToDense and applied to identity with productSSSxTS

◆ test_application_compatibility()

template<class Field>
bool test_application_compatibility ( const Field & F,
size_t n,
size_t t,
size_t s,
const typename Field::Element alpha,
typename Field::ConstElement_ptr P,
size_t ldp,
typename Field::ConstElement_ptr Q,
size_t ldq,
typename Field::ConstElement_ptr R,
size_t ldr,
typename Field::ConstElement_ptr U,
size_t ldu,
typename Field::ConstElement_ptr V,
size_t ldv,
typename Field::ConstElement_ptr W,
size_t ldw,
typename Field::ConstElement_ptr D,
size_t ldd,
typename Field::ConstElement_ptr B,
size_t ldb,
const typename Field::Element beta,
typename Field::ConstElement_ptr C,
size_t ldc )

test equality between applying productSSSxTS or dense matrix

◆ test_compression()

template<class Field>
bool test_compression ( const Field & F,
size_t n,
size_t s,
typename Field::ConstElement_ptr P,
size_t ldp,
typename Field::ConstElement_ptr Q,
size_t ldq,
typename Field::ConstElement_ptr R,
size_t ldr,
typename Field::ConstElement_ptr U,
size_t ldu,
typename Field::ConstElement_ptr V,
size_t ldv,
typename Field::ConstElement_ptr W,
size_t ldw,
typename Field::ConstElement_ptr D,
size_t ldd,
typename Field::Element_ptr A,
size_t lda )

test equality between a dense sss matrix and the result of compressing and reconstructing it A dense matrix is given in A, another one is constructed from its random generators

◆ launch_instance_check()

template<class Field>
bool launch_instance_check ( const Field & F,
size_t n,
size_t s,
size_t t,
size_t r,
typename Field::RandIter & G )

◆ run_with_field()

template<class Field>
bool run_with_field ( Givaro::Integer q,
uint64_t b,
size_t n,
size_t s,
size_t t,
size_t r,
size_t iters,
uint64_t seed )

◆ main()

int main ( int argc,
char ** argv )