linbox
test-ftrmm.C File Reference

tests all variants of applyP, ftrmm, ftrsm and fgemm for varions m,k,n and leading dimensions combinations. More...

#include <cassert>
#include "linbox/ring/modular.h"
#include "linbox/linbox-config.h"
#include "fflas-ffpack/fflas/fflas.h"
#include "fflas-ffpack/ffpack/ffpack.h"
#include "linbox/integer.h"
#include <givaro/modular-balanced.h>
#include "fflas-ffpack/utils/Matio.h"
#include "test-common.h"

Macros

#define _LB_MAX_SZ   50
 
#define _LB_ITERS   1
 

Functions

template<class Field, FFLAS::FFLAS_SIDE Side, FFLAS::FFLAS_UPLO UpLo, FFLAS::FFLAS_TRANSPOSE Trans, FFLAS::FFLAS_DIAG Diag>
int test_ftrmm (std::ostream &report, const Field &F)
 
template<class Field>
int test_applyP (std::ostream &report, const Field &F)
 
template<class Field, FFLAS::FFLAS_TRANSPOSE ATRANS, FFLAS::FFLAS_TRANSPOSE BTRANS>
int test_fgemm (std::ostream &report, const Field &F)
 
int main (int ac, char **av)
 

Detailed Description

tests all variants of applyP, ftrmm, ftrsm and fgemm for varions m,k,n and leading dimensions combinations.

Bug

ftrmm fails on non-double transposed versions.

is fgemm correct on null A and B ?

Test
FFLAS::ftrmm, FFPACK::applyP, FFLAS::ftrsm, FFLAS::fgemm

Macro Definition Documentation

◆ _LB_MAX_SZ

#define _LB_MAX_SZ   50
Todo
!

◆ _LB_ITERS

#define _LB_ITERS   1

Function Documentation

◆ test_ftrmm()

template<class Field, FFLAS::FFLAS_SIDE Side, FFLAS::FFLAS_UPLO UpLo, FFLAS::FFLAS_TRANSPOSE Trans, FFLAS::FFLAS_DIAG Diag>
int test_ftrmm ( std::ostream & report,
const Field & F )
Todo
F.isInvertible()
Todo
Todo
InvertibleRandomIter
Bug
same code as above ?
Bug
same code as above ?
Bug
same code as above ?
Bug
same code as above ?
Bug
same code as above ?
Bug
same code as above ?
Todo
check ftrsm fails nicely with non invertible A !

◆ test_applyP()

template<class Field>
int test_applyP ( std::ostream & report,
const Field & F )
Todo
test NULL permutation

◆ test_fgemm()

template<class Field, FFLAS::FFLAS_TRANSPOSE ATRANS, FFLAS::FFLAS_TRANSPOSE BTRANS>
int test_fgemm ( std::ostream & report,
const Field & F )
Bug
if beta != 0 but A and B are 0 (or don't exist) then C != beta C
Bug
needs p prime.

◆ main()

int main ( int ac,
char ** av )
Bug
: this one completely fails :