Givaro::Integer InfNorm (const size_t M, const size_t N, const Givaro::Integer *A, const size_t lda)
template<class T >
const T & min3 (const T &m, const T &n, const T &k)
template<class T >
const T & max3 (const T &m, const T &n, const T &k)
template<class T >
const T & min4 (const T &m, const T &n, const T &k, const T &l)
template<class T >
const T & max4 (const T &m, const T &n, const T &k, const T &l)
template<class Field >
void fadd (const Field &F, const size_t N, typename Field::ConstElement_ptr A, const size_t inca, typename Field::ConstElement_ptr B, const size_t incb, typename Field::Element_ptr C, const size_t incc)
template<class Field >
void faddin (const Field &F, const size_t N, typename Field::ConstElement_ptr B, const size_t incb, typename Field::Element_ptr C, const size_t incc)
template<class Field >
void fsub (const Field &F, const size_t N, typename Field::ConstElement_ptr A, const size_t inca, typename Field::ConstElement_ptr B, const size_t incb, typename Field::Element_ptr C, const size_t incc)
template<class Field >
void fsubin (const Field &F, const size_t N, typename Field::ConstElement_ptr B, const size_t incb, typename Field::Element_ptr C, const size_t incc)
template<class Field >
void fadd (const Field &F, const size_t N, typename Field::ConstElement_ptr A, const size_t inca, const typename Field::Element alpha, typename Field::ConstElement_ptr B, const size_t incb, typename Field::Element_ptr C, const size_t incc)
template<class Field >
void pfadd (const Field &F, const size_t M, const size_t N, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, typename Field::Element_ptr C, const size_t ldc, const size_t numths)
template<class Field >
void pfsub (const Field &F, const size_t M, const size_t N, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, typename Field::Element_ptr C, const size_t ldc, const size_t numths)
template<class Field >
void pfaddin (const Field &F, const size_t M, const size_t N, typename Field::ConstElement_ptr B, const size_t ldb, typename Field::Element_ptr C, const size_t ldc, size_t numths)
template<class Field >
void pfsubin (const Field &F, const size_t M, const size_t N, typename Field::ConstElement_ptr B, const size_t ldb, typename Field::Element_ptr C, const size_t ldc, size_t numths)
template<class Field >
void fadd (const Field &F, const size_t M, const size_t N, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, typename Field::Element_ptr C, const size_t ldc)
fadd : matrix addition.
template<class Field >
void fsub (const Field &F, const size_t M, const size_t N, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, typename Field::Element_ptr C, const size_t ldc)
fsub : matrix subtraction.
template<class Field >
void faddin (const Field &F, const size_t M, const size_t N, typename Field::ConstElement_ptr B, const size_t ldb, typename Field::Element_ptr C, const size_t ldc)
faddin
template<class Field >
void faddin (const Field &F, const FFLAS_UPLO uplo, const size_t N, typename Field::ConstElement_ptr B, const size_t ldb, typename Field::Element_ptr C, const size_t ldc)
fadding for symmetric matrices
template<class Field >
void fsubin (const Field &F, const size_t M, const size_t N, typename Field::ConstElement_ptr B, const size_t ldb, typename Field::Element_ptr C, const size_t ldc)
fsubin C = C - B
template<class Field >
void fadd (const Field &F, const size_t M, const size_t N, typename Field::ConstElement_ptr A, const size_t lda, const typename Field::Element alpha, typename Field::ConstElement_ptr B, const size_t ldb, typename Field::Element_ptr C, const size_t ldc)
fadd : matrix addition with scaling.
template<class Field >
void fassign (const Field &F, const size_t N, typename Field::ConstElement_ptr Y, const size_t incY, typename Field::Element_ptr X, const size_t incX)
fassign : .
template<>
void fassign (const Givaro::Modular< float > &F, const size_t N, const float *Y, const size_t incY, float *X, const size_t incX)
template<>
void fassign (const Givaro::ModularBalanced < float > &F, const size_t N, const float *Y, const size_t incY, float *X, const size_t incX)
template<>
void fassign (const Givaro::ZRing< float > &F, const size_t N, const float *Y, const size_t incY, float *X, const size_t incX)
template<>
void fassign (const Givaro::Modular< double > &F, const size_t N, const double *Y, const size_t incY, double *X, const size_t incX)
template<>
void fassign (const Givaro::ModularBalanced < double > &F, const size_t N, const double *Y, const size_t incY, double *X, const size_t incX)
template<>
void fassign (const Givaro::ZRing< double > &F, const size_t N, const double *Y, const size_t incY, double *X, const size_t incX)
template<class Field >
void fassign (const Field &F, const size_t m, const size_t n, typename Field::ConstElement_ptr B, const size_t ldb, typename Field::Element_ptr A, const size_t lda)
fassign : .
template<class Field >
void faxpy (const Field &F, const size_t N, const typename Field::Element alpha, typename Field::ConstElement_ptr X, const size_t incX, typename Field::Element_ptr Y, const size_t incY)
faxpy : .
template<>
void faxpy (const Givaro::DoubleDomain &, const size_t N, const Givaro::DoubleDomain::Element a, Givaro::DoubleDomain::ConstElement_ptr x, const size_t incx, Givaro::DoubleDomain::Element_ptr y, const size_t incy)
template<>
void faxpy (const Givaro::FloatDomain &, const size_t N, const Givaro::FloatDomain::Element a, Givaro::FloatDomain::ConstElement_ptr x, const size_t incx, Givaro::FloatDomain::Element_ptr y, const size_t incy)
template<class Field >
void faxpy (const Field &F, const size_t m, const size_t n, const typename Field::Element alpha, typename Field::ConstElement_ptr X, const size_t ldx, typename Field::Element_ptr Y, const size_t ldy)
faxpy : .
template<class Field >
Field::Element fdot (const Field &F, const size_t N, typename Field::ConstElement_ptr x, const size_t incx, typename Field::ConstElement_ptr y, const size_t incy, ModeCategories::DefaultTag &MT)
template<class Field >
Field::Element fdot (const Field &F, const size_t N, typename Field::ConstElement_ptr x, const size_t incx, typename Field::ConstElement_ptr y, const size_t incy, ModeCategories::DelayedTag &MT)
template<>
Givaro::DoubleDomain::Element fdot (const Givaro::DoubleDomain &, const size_t N, Givaro::DoubleDomain::ConstElement_ptr x, const size_t incx, Givaro::DoubleDomain::ConstElement_ptr y, const size_t incy, ModeCategories::DefaultTag &MT)
template<>
Givaro::FloatDomain::Element fdot (const Givaro::FloatDomain &, const size_t N, Givaro::FloatDomain::ConstElement_ptr x, const size_t incx, Givaro::FloatDomain::ConstElement_ptr y, const size_t incy, ModeCategories::DefaultTag &MT)
template<class Field , class T >
Field::Element fdot (const Field &F, const size_t N, typename Field::ConstElement_ptr x, const size_t incx, typename Field::ConstElement_ptr y, const size_t incy, ModeCategories::ConvertTo < T > &MT)
template<class Field >
Field::Element fdot (const Field &F, const size_t N, typename Field::ConstElement_ptr x, const size_t incx, typename Field::ConstElement_ptr y, const size_t incy, ModeCategories::DefaultBoundedTag &dbt)
template<class Field >
Field::Element fdot (const Field &F, const size_t N, typename Field::ConstElement_ptr x, const size_t incx, typename Field::ConstElement_ptr y, const size_t incy, const ParSeqHelper::Sequential seq)
template<class Field >
Field::Element fdot (const Field &F, const size_t N, typename Field::ConstElement_ptr X, const size_t incX, typename Field::ConstElement_ptr Y, const size_t incY)
fdot: dot product .
template<class Field >
Field::Element_ptr fgemm (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , MMHelperAlgo::Winograd , ModeCategories::ConvertTo < ElementCategories::MachineFloatTag >, ParSeqHelper::Sequential > &H)
template<typename Field >
Field::Element_ptr fgemm (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, const ParSeqHelper::Sequential seq)
template<typename Field , class Cut , class Param >
Field::Element_ptr fgemm (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, const ParSeqHelper::Parallel < Cut, Param > par)
template<typename Field >
Field::Element_ptr fgemm (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc)
fgemm: F ield GE neral M atrix M ultiply.
template<typename Field , class ModeT , class ParSeq >
Field::Element_ptr fgemm (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , MMHelperAlgo::Auto , ModeT, ParSeq > &H)
template<class Field >
Field::Element_ptr fgemm (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , MMHelperAlgo::Winograd , ModeCategories::DelayedTag , ParSeqHelper::Sequential > &H)
template<class Field >
Field::Element_ptr fsquare (const Field &F, const FFLAS_TRANSPOSE ta, const size_t n, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc)
fsquare: Squares a matrix.
template<>
double * fsquare (const Givaro::ModularBalanced < double > &F, const FFLAS_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)
template<>
float * fsquare (const Givaro::ModularBalanced < float > &F, const FFLAS_TRANSPOSE ta, const size_t n, const float alpha, const float *A, const size_t lda, const float beta, float *C, const size_t ldc)
template<>
double * fsquare (const Givaro::Modular< double > &F, const FFLAS_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)
template<>
float * fsquare (const Givaro::Modular< float > &F, const FFLAS_TRANSPOSE ta, const size_t n, const float alpha, const float *A, const size_t lda, const float beta, float *C, const size_t ldc)
template<typename RNS , typename ParSeqTrait >
FFPACK::RNSInteger < RNS >::Element_ptr fgemm (const FFPACK::RNSInteger < RNS > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename FFPACK::RNSInteger < RNS >::Element alpha, typename FFPACK::RNSInteger < RNS >::ConstElement_ptr Ad, const size_t lda, typename FFPACK::RNSInteger < RNS >::ConstElement_ptr Bd, const size_t ldb, const typename FFPACK::RNSInteger < RNS >::Element beta, typename FFPACK::RNSInteger < RNS >::Element_ptr Cd, const size_t ldc, MMHelper < FFPACK::RNSInteger < RNS >, MMHelperAlgo::Classic , ModeCategories::DefaultTag , ParSeqHelper::Compose < ParSeqHelper::Sequential , ParSeqTrait > > &H)
template<typename RNS >
FFPACK::RNSInteger < RNS >::Element_ptr fgemm (const FFPACK::RNSInteger < RNS > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename FFPACK::RNSInteger < RNS >::Element alpha, typename FFPACK::RNSInteger < RNS >::ConstElement_ptr Ad, const size_t lda, typename FFPACK::RNSInteger < RNS >::ConstElement_ptr Bd, const size_t ldb, const typename FFPACK::RNSInteger < RNS >::Element beta, typename FFPACK::RNSInteger < RNS >::Element_ptr Cd, const size_t ldc, MMHelper < FFPACK::RNSInteger < RNS >, MMHelperAlgo::Classic , ModeCategories::DefaultTag , ParSeqHelper::Sequential > &H)
template<typename RNS , typename ParSeqTrait >
FFPACK::RNSInteger < RNS >::Element_ptr fgemm (const FFPACK::RNSInteger < RNS > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename FFPACK::RNSInteger < RNS >::Element alpha, typename FFPACK::RNSInteger < RNS >::ConstElement_ptr Ad, const size_t lda, typename FFPACK::RNSInteger < RNS >::ConstElement_ptr Bd, const size_t ldb, const typename FFPACK::RNSInteger < RNS >::Element beta, typename FFPACK::RNSInteger < RNS >::Element_ptr Cd, const size_t ldc, MMHelper < FFPACK::RNSInteger < RNS >, MMHelperAlgo::Classic , ModeCategories::DefaultTag , ParSeqHelper::Compose < ParSeqHelper::Parallel < CuttingStrategy::RNSModulus , StrategyParameter::Threads >, ParSeqTrait > > &H)
template<typename RNS , typename Cut , typename Param >
FFPACK::RNSInteger < RNS >::Element_ptr fgemm (const FFPACK::RNSInteger < RNS > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename FFPACK::RNSInteger < RNS >::Element alpha, typename FFPACK::RNSInteger < RNS >::ConstElement_ptr Ad, const size_t lda, typename FFPACK::RNSInteger < RNS >::ConstElement_ptr Bd, const size_t ldb, const typename FFPACK::RNSInteger < RNS >::Element beta, typename FFPACK::RNSInteger < RNS >::Element_ptr Cd, const size_t ldc, MMHelper < FFPACK::RNSInteger < RNS >, MMHelperAlgo::Classic , ModeCategories::DefaultTag , ParSeqHelper::Parallel < Cut, Param > > &H)
template<class ParSeq >
Givaro::Integer * fgemm (const Givaro::ZRing< Givaro::Integer > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const Givaro::Integer alpha, const Givaro::Integer *A, const size_t lda, const Givaro::Integer *B, const size_t ldb, Givaro::Integer beta, Givaro::Integer *C, const size_t ldc, MMHelper < Givaro::ZRing< Givaro::Integer >, MMHelperAlgo::Classic , ModeCategories::ConvertTo < ElementCategories::RNSElementTag >, ParSeq > &H)
template<typename RNS , class ModeT >
RNS::Element_ptr fgemm (const FFPACK::RNSInteger < RNS > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename RNS::Element alpha, typename RNS::ConstElement_ptr Ad, const size_t lda, typename RNS::ConstElement_ptr Bd, const size_t ldb, const typename RNS::Element beta, typename RNS::Element_ptr Cd, const size_t ldc, MMHelper < FFPACK::RNSInteger < RNS >, MMHelperAlgo::Winograd , ModeT, ParSeqHelper::Sequential > &H)
template<typename RNS >
RNS::Element_ptr fgemm (const FFPACK::RNSIntegerMod < RNS > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename RNS::Element alpha, typename RNS::ConstElement_ptr Ad, const size_t lda, typename RNS::ConstElement_ptr Bd, const size_t ldb, const typename RNS::Element beta, typename RNS::Element_ptr Cd, const size_t ldc, MMHelper < FFPACK::RNSIntegerMod < RNS >, MMHelperAlgo::Winograd > &H)
Givaro::Integer * fgemm (const Givaro::Modular< Givaro::Integer > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const Givaro::Integer alpha, const Givaro::Integer *A, const size_t lda, const Givaro::Integer *B, const size_t ldb, const Givaro::Integer beta, Givaro::Integer *C, const size_t ldc, MMHelper < Givaro::Modular< Givaro::Integer >, MMHelperAlgo::Classic , ModeCategories::ConvertTo < ElementCategories::RNSElementTag > > &H)
template<class ParSeq >
Givaro::Integer * fgemm (const Givaro::Modular< Givaro::Integer > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const Givaro::Integer alpha, const Givaro::Integer *A, const size_t lda, const Givaro::Integer *B, const size_t ldb, const Givaro::Integer beta, Givaro::Integer *C, const size_t ldc, MMHelper < Givaro::Modular< Givaro::Integer >, MMHelperAlgo::Auto , ModeCategories::ConvertTo < ElementCategories::RNSElementTag >, ParSeq > &H)
template<size_t K1, size_t K2, class ParSeq >
RecInt::ruint < K1 > * fgemm (const Givaro::Modular< RecInt::ruint < K1 >, RecInt::ruint < K2 > > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const RecInt::ruint < K1 > alpha, const RecInt::ruint < K1 > *A, const size_t lda, const RecInt::ruint < K1 > *B, const size_t ldb, RecInt::ruint < K1 > beta, RecInt::ruint < K1 > *C, const size_t ldc, MMHelper < Givaro::Modular< RecInt::ruint < K1 >, RecInt::ruint < K2 > >, MMHelperAlgo::Classic , ModeCategories::ConvertTo < ElementCategories::RNSElementTag >, ParSeq > &H)
template<class Field , class ModeT >
Field::Element_ptr fgemm (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , MMHelperAlgo::Winograd , ModeT > &H)
template<class Field , class ModeT , class Cut , class Param >
Field::Element_ptr fgemm (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , MMHelperAlgo::WinogradPar , ModeT, ParSeqHelper::Parallel < Cut, Param > > &H)
template<class Field >
Field::Element_ptr fgemv (const Field &F, const FFLAS_TRANSPOSE ta, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr X, const size_t incX, const typename Field::Element beta, typename Field::Element_ptr Y, const size_t incY, MMHelper < Field , MMHelperAlgo::Classic , ModeCategories::ConvertTo < ElementCategories::MachineFloatTag > > &H)
template<class Field >
Field::Element_ptr fgemv (const Field &F, const FFLAS_TRANSPOSE ta, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr X, const size_t incX, const typename Field::Element beta, typename Field::Element_ptr Y, const size_t incY, MMHelper < Field , MMHelperAlgo::Classic , ModeCategories::DelayedTag > &H)
template<class Field >
Field::Element_ptr fgemv (const Field &F, const FFLAS_TRANSPOSE ta, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr X, const size_t incX, const typename Field::Element beta, typename Field::Element_ptr Y, const size_t incY, MMHelper < Field , MMHelperAlgo::Classic , ModeCategories::DefaultTag > &H)
template<class Field >
Field::Element_ptr fgemv (const Field &F, const FFLAS_TRANSPOSE ta, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr X, const size_t incX, const typename Field::Element beta, typename Field::Element_ptr Y, const size_t incY, MMHelper < Field , MMHelperAlgo::Classic , ModeCategories::LazyTag > &H)
template<class Field >
Field::Element_ptr fgemv (const Field &F, const FFLAS_TRANSPOSE TransA, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr X, const size_t incX, const typename Field::Element beta, typename Field::Element_ptr Y, const size_t incY)
finite prime Field GEneral Matrix Vector multiplication.
Givaro::ZRing< int64_t >::Element_ptr fgemv (const Givaro::ZRing< int64_t > &F, const FFLAS_TRANSPOSE ta, const size_t M, const size_t N, const int64_t alpha, const int64_t *A, const size_t lda, const int64_t *X, const size_t incX, const int64_t beta, int64_t *Y, const size_t incY, MMHelper < Givaro::ZRing< int64_t >, MMHelperAlgo::Classic , ModeCategories::DefaultTag > &H)
Givaro::DoubleDomain::Element_ptr fgemv (const Givaro::DoubleDomain &F, const FFLAS_TRANSPOSE ta, const size_t M, const size_t N, const Givaro::DoubleDomain::Element alpha, const Givaro::DoubleDomain::ConstElement_ptr A, const size_t lda, const Givaro::DoubleDomain::ConstElement_ptr X, const size_t incX, const Givaro::DoubleDomain::Element beta, Givaro::DoubleDomain::Element_ptr Y, const size_t incY, MMHelper < Givaro::DoubleDomain, MMHelperAlgo::Classic , ModeCategories::DefaultTag > &H)
template<class Field >
Field::Element_ptr fgemv (const Field &F, const FFLAS_TRANSPOSE ta, const size_t M, const size_t N, const typename Field::Element alpha, const typename Field::ConstElement_ptr A, const size_t lda, const typename Field::ConstElement_ptr X, const size_t incX, const typename Field::Element beta, typename Field::Element_ptr Y, const size_t incY, MMHelper < Field , MMHelperAlgo::Classic , ModeCategories::DefaultBoundedTag > &H)
Givaro::FloatDomain::Element_ptr fgemv (const Givaro::FloatDomain &F, const FFLAS_TRANSPOSE ta, const size_t M, const size_t N, const Givaro::FloatDomain::Element alpha, const Givaro::FloatDomain::ConstElement_ptr A, const size_t lda, const Givaro::FloatDomain::ConstElement_ptr X, const size_t incX, const Givaro::FloatDomain::Element beta, Givaro::FloatDomain::Element_ptr Y, const size_t incY, MMHelper < Givaro::FloatDomain, MMHelperAlgo::Classic , ModeCategories::DefaultTag > &H)
template<class Field , class Cut , class Param >
Field::Element_ptr fgemv (const Field &F, const FFLAS_TRANSPOSE ta, const size_t m, const size_t n, const typename Field::Element alpha, const typename Field::ConstElement_ptr A, const size_t lda, const typename Field::ConstElement_ptr X, const size_t incX, const typename Field::Element beta, typename Field::Element_ptr Y, const size_t incY, ParSeqHelper::Parallel < Cut, Param > &parH)
template<class Field >
Field::Element_ptr fgemv (const Field &F, const FFLAS_TRANSPOSE ta, const size_t m, const size_t n, const typename Field::Element alpha, const typename Field::ConstElement_ptr A, const size_t lda, const typename Field::ConstElement_ptr X, const size_t incX, const typename Field::Element beta, typename Field::Element_ptr Y, const size_t incY, ParSeqHelper::Sequential &seqH)
FFPACK::rns_double::Element_ptr fgemv (const FFPACK::RNSInteger < FFPACK::rns_double > &F, const FFLAS_TRANSPOSE ta, const size_t M, const size_t N, const FFPACK::rns_double::Element alpha, FFPACK::rns_double::ConstElement_ptr A, const size_t lda, FFPACK::rns_double::ConstElement_ptr X, const size_t incX, const FFPACK::rns_double::Element beta, FFPACK::rns_double::Element_ptr Y, const size_t incY, MMHelper < FFPACK::RNSInteger < FFPACK::rns_double >, MMHelperAlgo::Classic , ModeCategories::DefaultTag > &H)
FFPACK::rns_double::Element_ptr fgemv (const FFPACK::RNSIntegerMod < FFPACK::rns_double > &F, const FFLAS_TRANSPOSE ta, const size_t M, const size_t N, const FFPACK::rns_double::Element alpha, FFPACK::rns_double::ConstElement_ptr A, const size_t lda, FFPACK::rns_double::ConstElement_ptr X, const size_t incX, const FFPACK::rns_double::Element beta, FFPACK::rns_double::Element_ptr Y, const size_t incY, MMHelper < FFPACK::RNSIntegerMod < FFPACK::rns_double >, MMHelperAlgo::Classic , ModeCategories::DefaultTag > &H)
Givaro::Integer * fgemv (const Givaro::ZRing< Givaro::Integer > &F, const FFLAS_TRANSPOSE ta, const size_t m, const size_t n, const Givaro::Integer alpha, Givaro::Integer *A, const size_t lda, Givaro::Integer *X, const size_t ldx, Givaro::Integer beta, Givaro::Integer *Y, const size_t ldy, MMHelper < Givaro::ZRing< Givaro::Integer >, MMHelperAlgo::Classic , ModeCategories::ConvertTo < ElementCategories::RNSElementTag > > &H)
Givaro::Integer * fgemv (const Givaro::Modular< Givaro::Integer > &F, const FFLAS_TRANSPOSE ta, const size_t m, const size_t n, const Givaro::Integer alpha, Givaro::Integer *A, const size_t lda, Givaro::Integer *X, const size_t ldx, Givaro::Integer beta, Givaro::Integer *Y, const size_t ldy, MMHelper < Givaro::Modular< Givaro::Integer >, MMHelperAlgo::Classic , ModeCategories::ConvertTo < ElementCategories::RNSElementTag > > &H)
template<size_t K1, size_t K2, class ParSeq >
RecInt::ruint < K1 > * fgemv (const Givaro::Modular< RecInt::ruint < K1 >, RecInt::ruint < K2 > > &F, const FFLAS_TRANSPOSE ta, const size_t m, const size_t n, const RecInt::ruint < K1 > alpha, const RecInt::ruint < K1 > *A, const size_t lda, const RecInt::ruint < K1 > *X, const size_t incx, RecInt::ruint < K1 > beta, RecInt::ruint < K1 > *Y, const size_t incy, MMHelper < Givaro::Modular< RecInt::ruint < K1 >, RecInt::ruint < K2 > >, MMHelperAlgo::Classic , ModeCategories::ConvertTo < ElementCategories::RNSElementTag >, ParSeq > &H)
template<class Field >
void fger (const Field &F, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::ConstElement_ptr x, const size_t incx, typename Field::ConstElement_ptr y, const size_t incy, typename Field::Element_ptr A, const size_t lda)
fger: rank one update of a general matrix
template<class Field >
void fger (const Field &F, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::ConstElement_ptr x, const size_t incx, typename Field::ConstElement_ptr y, const size_t incy, typename Field::Element_ptr A, const size_t lda, MMHelper < Field , MMHelperAlgo::Classic , ModeCategories::ConvertTo < ElementCategories::MachineFloatTag > > &H)
template<class Field , class AnyTag >
void fger (const Field &F, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::ConstElement_ptr x, const size_t incx, typename Field::ConstElement_ptr y, const size_t incy, typename Field::Element_ptr A, const size_t lda, MMHelper < Field , MMHelperAlgo::Classic , AnyTag > &H)
void fger (const Givaro::DoubleDomain &F, const size_t M, const size_t N, const Givaro::DoubleDomain::Element alpha, const Givaro::DoubleDomain::ConstElement_ptr x, const size_t incx, const Givaro::DoubleDomain::ConstElement_ptr y, const size_t incy, Givaro::DoubleDomain::Element_ptr A, const size_t lda, MMHelper < Givaro::DoubleDomain, MMHelperAlgo::Classic , ModeCategories::DefaultTag > &H)
template<class Field >
void fger (const Field &F, const size_t M, const size_t N, const typename Field::Element alpha, const typename Field::ConstElement_ptr x, const size_t incx, const typename Field::ConstElement_ptr y, const size_t incy, typename Field::Element_ptr A, const size_t lda, MMHelper < Field , MMHelperAlgo::Classic , ModeCategories::DefaultBoundedTag > &H)
void fger (const Givaro::FloatDomain &F, const size_t M, const size_t N, const Givaro::FloatDomain::Element alpha, const Givaro::FloatDomain::ConstElement_ptr x, const size_t incx, const Givaro::FloatDomain::ConstElement_ptr y, const size_t incy, Givaro::FloatDomain::Element_ptr A, const size_t lda, MMHelper < Givaro::FloatDomain, MMHelperAlgo::Classic , ModeCategories::DefaultTag > &H)
template<class Field >
void fger (const Field &F, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::ConstElement_ptr x, const size_t incx, typename Field::ConstElement_ptr y, const size_t incy, typename Field::Element_ptr A, const size_t lda, MMHelper < Field , MMHelperAlgo::Classic , ModeCategories::LazyTag > &H)
template<class Field >
void fger (const Field &F, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::ConstElement_ptr x, const size_t incx, typename Field::ConstElement_ptr y, const size_t incy, typename Field::Element_ptr A, const size_t lda, MMHelper < Field , MMHelperAlgo::Classic , ModeCategories::DelayedTag > &H)
void fger (const Givaro::Modular< Givaro::Integer > &F, const size_t M, const size_t N, const typename Givaro::Integer alpha, typename Givaro::Integer *x, const size_t incx, typename Givaro::Integer *y, const size_t incy, typename Givaro::Integer *A, const size_t lda, MMHelper < Givaro::Modular< Givaro::Integer >, MMHelperAlgo::Classic , ModeCategories::ConvertTo < ElementCategories::RNSElementTag > > &H)
template<typename RNS >
void fger (const FFPACK::RNSInteger < RNS > &F, const size_t M, const size_t N, const typename FFPACK::RNSInteger < RNS >::Element alpha, typename FFPACK::RNSInteger < RNS >::Element_ptr x, const size_t incx, typename FFPACK::RNSInteger < RNS >::Element_ptr y, const size_t incy, typename FFPACK::RNSInteger < RNS >::Element_ptr A, const size_t lda, MMHelper < FFPACK::RNSInteger < RNS >, MMHelperAlgo::Classic , ModeCategories::DefaultTag > &H)
template<typename RNS >
void fger (const FFPACK::RNSIntegerMod < RNS > &F, const size_t M, const size_t N, const typename FFPACK::RNSIntegerMod < RNS >::Element alpha, typename FFPACK::RNSIntegerMod < RNS >::Element_ptr x, const size_t incx, typename FFPACK::RNSIntegerMod < RNS >::Element_ptr y, const size_t incy, typename FFPACK::RNSIntegerMod < RNS >::Element_ptr A, const size_t lda, MMHelper < FFPACK::RNSIntegerMod < RNS >, MMHelperAlgo::Classic > &H)
template<class Field >
void freduce (const Field &F, const size_t n, typename Field::ConstElement_ptr Y, const size_t incY, typename Field::Element_ptr X, const size_t incX)
freduce .
template<class Field >
void freduce (const Field &F, const size_t n, typename Field::Element_ptr X, const size_t incX)
freduce .
template<class Field >
void freduce_constoverride (const Field &F, const size_t m, typename Field::ConstElement_ptr A, const size_t incX)
template<class Field , class ConstOtherElement_ptr >
void finit (const Field &F, const size_t n, ConstOtherElement_ptr Y, const size_t incY, typename Field::Element_ptr X, const size_t incX)
template<class Field >
void finit (const Field &F, const size_t n, typename Field::Element_ptr X, const size_t incX)
finit Initializes X
in F$
.
template<class Field >
void freduce (const Field &F, const size_t m, const size_t n, typename Field::Element_ptr A, const size_t lda)
freduce .
template<class Field >
void freduce (const Field &F, const FFLAS_UPLO uplo, const size_t N, typename Field::Element_ptr A, const size_t lda)
freduce for square symmetric matrices
template<class Field >
void pfreduce (const Field &F, const size_t m, const size_t n, typename Field::Element_ptr A, const size_t lda, const size_t numths)
template<class Field >
void freduce (const Field &F, const size_t m, const size_t n, typename Field::ConstElement_ptr B, const size_t ldb, typename Field::Element_ptr A, const size_t lda)
freduce .
template<class Field >
void freduce_constoverride (const Field &F, const size_t m, const size_t n, typename Field::ConstElement_ptr A, const size_t lda)
template<class Field , class OtherElement_ptr >
void finit (const Field &F, const size_t m, const size_t n, const OtherElement_ptr B, const size_t ldb, typename Field::Element_ptr A, const size_t lda)
finit .
template<class Field >
void finit (const Field &F, const size_t m, const size_t n, typename Field::Element_ptr A, const size_t lda)
template<>
void freduce (const FFPACK::RNSIntegerMod < FFPACK::rns_double > &F, const size_t n, FFPACK::RNSIntegerMod < FFPACK::rns_double >::Element_ptr A, size_t inc)
template<>
void freduce (const FFPACK::RNSIntegerMod < FFPACK::rns_double > &F, const size_t m, const size_t n, FFPACK::rns_double::Element_ptr A, size_t lda)
template<class Field >
bool freivalds (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, typename Field::ConstElement_ptr C, const size_t ldc)
freivalds: F reivalds GE neral M atrix M ultiply R andom C heck.
template<class Field >
void fscalin (const Field &F, const size_t n, const typename Field::Element alpha, typename Field::Element_ptr X, const size_t incX)
fscalin .
template<class Field >
void fscal (const Field &F, const size_t n, const typename Field::Element alpha, typename Field::ConstElement_ptr X, const size_t incX, typename Field::Element_ptr Y, const size_t incY)
fscal .
template<>
void fscal (const Givaro::DoubleDomain &, const size_t N, const Givaro::DoubleDomain::Element a, Givaro::DoubleDomain::ConstElement_ptr x, const size_t incx, Givaro::DoubleDomain::Element_ptr y, const size_t incy)
template<>
void fscal (const Givaro::FloatDomain &, const size_t N, const Givaro::FloatDomain::Element a, Givaro::FloatDomain::ConstElement_ptr x, const size_t incx, Givaro::FloatDomain::Element_ptr y, const size_t incy)
template<>
void fscalin (const Givaro::DoubleDomain &, const size_t N, const Givaro::DoubleDomain::Element a, Givaro::DoubleDomain::Element_ptr y, const size_t incy)
template<>
void fscalin (const Givaro::FloatDomain &, const size_t N, const Givaro::FloatDomain::Element a, Givaro::FloatDomain::Element_ptr y, const size_t incy)
template<class Field >
void fscalin (const Field &F, const size_t m, const size_t n, const typename Field::Element alpha, typename Field::Element_ptr A, const size_t lda)
fscalin .
template<class Field >
void fscal (const Field &F, const size_t m, const size_t n, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::Element_ptr B, const size_t ldb)
fscal .
template<>
void fscalin (const FFPACK::RNSInteger < FFPACK::rns_double > &F, const size_t n, const FFPACK::rns_double::Element alpha, FFPACK::rns_double::Element_ptr A, const size_t inc)
template<>
void fscal (const FFPACK::RNSInteger < FFPACK::rns_double > &F, const size_t n, const FFPACK::rns_double::Element alpha, FFPACK::rns_double::ConstElement_ptr A, const size_t Ainc, FFPACK::rns_double::Element_ptr B, const size_t Binc)
template<>
void fscalin (const FFPACK::RNSInteger < FFPACK::rns_double > &F, const size_t m, const size_t n, const FFPACK::rns_double::Element alpha, FFPACK::rns_double::Element_ptr A, const size_t lda)
template<>
void fscal (const FFPACK::RNSInteger < FFPACK::rns_double > &F, const size_t m, const size_t n, const FFPACK::rns_double::Element alpha, FFPACK::rns_double::ConstElement_ptr A, const size_t lda, FFPACK::rns_double::Element_ptr B, const size_t ldb)
template<>
void fscalin (const FFPACK::RNSIntegerMod < FFPACK::rns_double > &F, const size_t n, const typename FFPACK::RNSIntegerMod < FFPACK::rns_double >::Element alpha, typename FFPACK::RNSIntegerMod < FFPACK::rns_double >::Element_ptr A, const size_t inc)
template<>
void fscal (const FFPACK::RNSIntegerMod < FFPACK::rns_double > &F, const size_t n, const FFPACK::rns_double::Element alpha, FFPACK::rns_double::ConstElement_ptr A, const size_t Ainc, FFPACK::rns_double::Element_ptr B, const size_t Binc)
template<>
void fscalin (const FFPACK::RNSIntegerMod < FFPACK::rns_double > &F, const size_t m, const size_t n, const FFPACK::rns_double::Element alpha, FFPACK::rns_double::Element_ptr A, const size_t lda)
template<>
void fscal (const FFPACK::RNSIntegerMod < FFPACK::rns_double > &F, const size_t m, const size_t n, const FFPACK::rns_double::Element alpha, FFPACK::rns_double::ConstElement_ptr A, const size_t lda, FFPACK::rns_double::Element_ptr B, const size_t ldb)
template<class Field >
Field::Element_ptr fsyr2k (const Field &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t n, const size_t k, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc)
fsyr2k: Symmetric Rank 2K update
template<class Field >
Field::Element_ptr fsyrk (const Field &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t n, const size_t k, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc)
fsyrk: Symmetric Rank K update
template<class Field >
Field::Element_ptr fsyrk (const Field &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t N, const size_t K, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, const ParSeqHelper::Sequential seq)
template<class Field >
Field::Element_ptr fsyrk (const Field &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t N, const size_t K, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , MMHelperAlgo::Classic , ModeCategories::DefaultTag > &H)
template<class Field >
Field::Element_ptr fsyrk (const Field &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t N, const size_t K, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , MMHelperAlgo::Classic , ModeCategories::ConvertTo < ElementCategories::MachineFloatTag >, ParSeqHelper::Sequential > &H)
template<class Field >
Field::Element_ptr fsyrk (const Field &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t N, const size_t K, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , MMHelperAlgo::Classic , ModeCategories::DelayedTag > &H)
template<class Field >
Field::Element_ptr fsyrk (const Field &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t N, const size_t K, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , MMHelperAlgo::Classic , ModeCategories::LazyTag > &H)
template<class Field , typename Mode >
Field::Element_ptr fsyrk (const Field &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t N, const size_t K, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , MMHelperAlgo::DivideAndConquer , Mode > &H)
template<class Field >
Field::Element_ptr fsyrk (const Field &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t N, const size_t K, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , MMHelperAlgo::Classic , ModeCategories::DefaultBoundedTag > &H)
Givaro::FloatDomain::Element_ptr fsyrk (const Givaro::FloatDomain &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t N, const size_t K, const Givaro::FloatDomain::Element alpha, Givaro::FloatDomain::ConstElement_ptr A, const size_t lda, const Givaro::FloatDomain::Element beta, Givaro::FloatDomain::Element_ptr C, const size_t ldc, MMHelper < Givaro::FloatDomain, MMHelperAlgo::Classic , ModeCategories::DefaultTag > &H)
Givaro::DoubleDomain::Element_ptr fsyrk (const Givaro::DoubleDomain &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t N, const size_t K, const Givaro::DoubleDomain::Element alpha, Givaro::DoubleDomain::ConstElement_ptr A, const size_t lda, const Givaro::DoubleDomain::Element beta, Givaro::DoubleDomain::Element_ptr C, const size_t ldc, MMHelper < Givaro::DoubleDomain, MMHelperAlgo::Classic , ModeCategories::DefaultTag > &H)
template<class Field >
Field::Element_ptr fsyrk (const Field &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t n, const size_t k, const typename Field::Element alpha, typename Field::Element_ptr A, const size_t lda, typename Field::ConstElement_ptr D, const size_t incD, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, const size_t threshold=__FFLASFFPACK_FSYRK_THRESHOLD )
fsyrk: Symmetric Rank K update with diagonal scaling
template<class Field >
Field::Element_ptr fsyrk (const Field &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t N, const size_t K, const typename Field::Element alpha, typename Field::Element_ptr A, const size_t lda, typename Field::ConstElement_ptr D, const size_t incD, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, const ParSeqHelper::Sequential seq, const size_t threshold)
template<class Field , class Cut , class Param >
Field::Element_ptr fsyrk (const Field &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t N, const size_t K, const typename Field::Element alpha, typename Field::Element_ptr A, const size_t lda, typename Field::ConstElement_ptr D, const size_t incD, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, const ParSeqHelper::Parallel < Cut, Param > par, const size_t threshold)
template<class Field >
Field::Element_ptr fsyrk (const Field &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t n, const size_t k, const typename Field::Element alpha, typename Field::Element_ptr A, const size_t lda, typename Field::ConstElement_ptr D, const size_t incD, const std::vector< bool > &twoBlock, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, const size_t threshold=__FFLASFFPACK_FSYRK_THRESHOLD )
fsyrk: Symmetric Rank K update with diagonal scaling
template<class Field , class FieldTrait >
void computeS1S2 (const Field &F, const FFLAS_TRANSPOSE trans, const size_t N, const size_t K, const typename Field::Element x, const typename Field::Element y, typename Field::Element_ptr A, const size_t lda, typename Field::Element_ptr S, const size_t lds, typename Field::Element_ptr T, const size_t ldt, MMHelper < Field , MMHelperAlgo::Winograd , FieldTrait > &WH)
template<class Field >
Field::Element_ptr fsyrk (const Field &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t N, const size_t K, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , MMHelperAlgo::Winograd , ModeCategories::DelayedTag , ParSeqHelper::Sequential > &H)
template<class Field , class Mode >
Field::Element_ptr fsyrk (const Field &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t N, const size_t K, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , MMHelperAlgo::Winograd , Mode > &H)
template<class Field , class FieldTrait >
Field::Element_ptr fsyrk_strassen (const Field &F, const FFLAS_UPLO uplo, const FFLAS_TRANSPOSE trans, const size_t N, const size_t K, const typename Field::Element y1, const typename Field::Element y2, const typename Field::Element alpha, typename Field::Element_ptr A, const size_t lda, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , MMHelperAlgo::Winograd , FieldTrait > &WH)
template<class Field >
void ftrmm (const Field &F, const FFLAS_SIDE Side, const FFLAS_UPLO Uplo, const FFLAS_TRANSPOSE TransA, const FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::Element_ptr B, const size_t ldb)
ftrmm: TR iangular M atrix M ultiply.
template<class Field >
void ftrmm (const Field &F, const FFLAS_SIDE Side, const FFLAS_UPLO Uplo, const FFLAS_TRANSPOSE TransA, const FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc)
ftrmm: TR iangular M atrix M ultiply with 3 operands Computes or .
template<class Field >
void ftrsm (const Field &F, const FFLAS_SIDE Side, const FFLAS_UPLO Uplo, const FFLAS_TRANSPOSE TransA, const FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::Element_ptr A, const size_t lda, typename Field::Element_ptr B, const size_t ldb)
template<class Field >
void ftrsm (const Field &F, const FFLAS_SIDE Side, const FFLAS_UPLO Uplo, const FFLAS_TRANSPOSE TransA, const FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::Element_ptr A, const size_t lda, typename Field::Element_ptr B, const size_t ldb, const ParSeqHelper::Sequential &PSH)
template<class Field , class Cut , class Param >
void ftrsm (const Field &F, const FFLAS_SIDE Side, const FFLAS_UPLO Uplo, const FFLAS_TRANSPOSE TransA, const FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::Element_ptr A, const size_t lda, typename Field::Element_ptr B, const size_t ldb, const ParSeqHelper::Parallel < Cut, Param > &PSH)
template<class Field , class ParSeqTrait = ParSeqHelper::Sequential>
void ftrsm (const Field &F, const FFLAS_SIDE Side, const FFLAS_UPLO Uplo, const FFLAS_TRANSPOSE TransA, const FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::Element_ptr A, const size_t lda, typename Field::Element_ptr B, const size_t ldb, TRSMHelper < StructureHelper::Recursive , ParSeqTrait > &H)
void ftrsm (const Givaro::Modular< Givaro::Integer > &F, const FFLAS_SIDE Side, const FFLAS_UPLO Uplo, const FFLAS_TRANSPOSE TransA, const FFLAS_DIAG Diag, const size_t M, const size_t N, const Givaro::Integer alpha, const Givaro::Integer *A, const size_t lda, Givaro::Integer *B, const size_t ldb)
void cblas_imptrsm (const enum FFLAS_ORDER Order, const enum FFLAS_SIDE Side, const enum FFLAS_UPLO Uplo, const enum FFLAS_TRANSPOSE TransA, const enum FFLAS_DIAG Diag, const int M, const int N, const FFPACK::rns_double_elt alpha, FFPACK::rns_double_elt_cstptr A, const int lda, FFPACK::rns_double_elt_ptr B, const int ldb)
template<class Field >
void ftrsv (const Field &F, const FFLAS_UPLO Uplo, const FFLAS_TRANSPOSE TransA, const FFLAS_DIAG Diag, const size_t N, typename Field::ConstElement_ptr A, const size_t lda, typename Field::Element_ptr X, int incX)
ftrsv: TRiangular System solve with Vector Computes
void igemm_ (const enum FFLAS_ORDER Order, const enum FFLAS_TRANSPOSE TransA, const enum FFLAS_TRANSPOSE TransB, const size_t M, const size_t N, const size_t K, const int64_t alpha, const int64_t *A, const size_t lda, const int64_t *B, const size_t ldb, const int64_t beta, int64_t *C, const size_t ldc)
template<class Field , class OtherElement_ptr >
void finit (const Field &F, const size_t n, const OtherElement_ptr Y, const size_t incY, typename Field::Element_ptr X, const size_t incX)
finit .
template<class Field , class OtherElement_ptr >
void fconvert (const Field &F, const size_t n, OtherElement_ptr X, const size_t incX, typename Field::ConstElement_ptr Y, const size_t incY)
fconvert .
template<class Field >
void fnegin (const Field &F, const size_t n, typename Field::Element_ptr X, const size_t incX)
fnegin .
template<class Field >
void fneg (const Field &F, const size_t n, typename Field::ConstElement_ptr Y, const size_t incY, typename Field::Element_ptr X, const size_t incX)
fneg .
template<class Field >
void fzero (const Field &F, const size_t n, typename Field::Element_ptr X, const size_t incX)
fzero : .
template<class Field , class RandIter >
void frand (const Field &F, RandIter &G, const size_t n, typename Field::Element_ptr X, const size_t incX)
frand : .
template<class Field >
bool fiszero (const Field &F, const size_t n, typename Field::ConstElement_ptr X, const size_t incX)
fiszero : test .
template<class Field >
bool fequal (const Field &F, const size_t n, typename Field::ConstElement_ptr X, const size_t incX, typename Field::ConstElement_ptr Y, const size_t incY)
fequal : test .
template<class Field >
void faxpby (const Field &F, const size_t N, const typename Field::Element alpha, typename Field::ConstElement_ptr X, const size_t incX, const typename Field::Element beta, typename Field::Element_ptr Y, const size_t incY)
faxpby : .
template<typename Field , class Cut , class Param >
Field::Element fdot (const Field &F, const size_t N, typename Field::ConstElement_ptr X, const size_t incX, typename Field::ConstElement_ptr Y, const size_t incY, const ParSeqHelper::Parallel < Cut, Param > par)
template<class Field >
void fswap (const Field &F, const size_t N, typename Field::Element_ptr X, const size_t incX, typename Field::Element_ptr Y, const size_t incY)
fswap: .
template<class Field >
void fzero (const Field &F, const size_t m, const size_t n, typename Field::Element_ptr A, const size_t lda)
fzero : .
template<class Field >
void fzero (const Field &F, const FFLAS_UPLO shape, const FFLAS_DIAG diag, const size_t n, typename Field::Element_ptr A, const size_t lda)
fzero : for a triangular matrix.
template<class Field , class RandIter >
void frand (const Field &F, RandIter &G, const size_t m, const size_t n, typename Field::Element_ptr A, const size_t lda)
frand : .
template<class Field >
bool fequal (const Field &F, const size_t m, const size_t n, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb)
fequal : test .
template<class Field >
bool fiszero (const Field &F, const size_t m, const size_t n, typename Field::ConstElement_ptr A, const size_t lda)
fiszero : test .
template<class Field >
void fidentity (const Field &F, const size_t m, const size_t n, typename Field::Element_ptr A, const size_t lda, const typename Field::Element &d)
creates a diagonal matrix
template<class Field >
void fidentity (const Field &F, const size_t m, const size_t n, typename Field::Element_ptr A, const size_t lda)
creates a diagonal matrix
template<class Field , class OtherElement_ptr >
void finit (const Field &F, const size_t m, const size_t n, typename Field::Element_ptr A, const size_t lda)
finit Initializes A
in F$
.
template<class Field , class OtherElement_ptr >
void fconvert (const Field &F, const size_t m, const size_t n, OtherElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb)
fconvert .
template<class Field >
void fnegin (const Field &F, const size_t m, const size_t n, typename Field::Element_ptr A, const size_t lda)
fnegin .
template<class Field >
void fneg (const Field &F, const size_t m, const size_t n, typename Field::ConstElement_ptr B, const size_t ldb, typename Field::Element_ptr A, const size_t lda)
fneg .
template<class Field >
void faxpby (const Field &F, const size_t m, const size_t n, const typename Field::Element alpha, typename Field::ConstElement_ptr X, const size_t ldx, const typename Field::Element beta, typename Field::Element_ptr Y, const size_t ldy)
faxpby : .
template<class Field >
void fmove (const Field &F, const size_t m, const size_t n, typename Field::Element_ptr A, const size_t lda, typename Field::Element_ptr B, const size_t ldb)
fmove : and .
template<class Field >
size_t bitsize (const Field &F, size_t M, size_t N, const typename Field::ConstElement_ptr A, size_t lda)
bitsize: Computes the largest bitsize of the matrix' coefficients.
template<>
size_t bitsize< Givaro::ZRing< Givaro::Integer > > (const Givaro::ZRing< Givaro::Integer > &F, size_t M, size_t N, const Givaro::Integer *A, size_t lda)
template<class Field >
void ftrmv (const Field &F, const FFLAS_UPLO Uplo, const FFLAS_TRANSPOSE TransA, const FFLAS_DIAG Diag, const size_t N, typename Field::ConstElement_ptr A, const size_t lda, typename Field::Element_ptr X, int incX)
ftrsm: TRiangular Matrix Vector prodcut Computes
template<class Field >
void ftrsm (const Field &F, const FFLAS_SIDE Side, const FFLAS_UPLO Uplo, const FFLAS_TRANSPOSE TransA, const FFLAS_DIAG Diag, const size_t M, const size_t N, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::Element_ptr B, const size_t ldb)
ftrsm: TR iangular S ystem solve with M atrix.
template<class Field , typename FieldTrait >
Field::Element_ptr fsyrk_strassen (const Field &F, const FFLAS_UPLO UpLo, const FFLAS_TRANSPOSE trans, const size_t N, const size_t K, const typename Field::Element y1, const typename Field::Element y2, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , MMHelperAlgo::Winograd , FieldTrait > &H)
template<typename Field >
Field::Element_ptr pfgemm (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, size_t numthreads=0)
template<class Field >
Field::Element * pfgemm_1D_rec (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, const typename Field::Element_ptr A, const size_t lda, const typename Field::Element_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element *C, const size_t ldc, size_t seuil)
template<class Field >
Field::Element * pfgemm_2D_rec (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, const typename Field::Element_ptr A, const size_t lda, const typename Field::Element_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element *C, const size_t ldc, size_t seuil)
template<class Field >
Field::Element * pfgemm_3D_rec (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, const typename Field::Element_ptr A, const size_t lda, const typename Field::Element_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, size_t seuil, size_t *x)
template<class Field >
Field::Element_ptr pfgemm_3D_rec2 (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, const typename Field::Element_ptr A, const size_t lda, const typename Field::Element_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, size_t seuil, size_t *x)
template<class Field , class ModeTrait , class Strat , class Param >
std::enable_if<!std::is_same< ModeTrait, ModeCategories::ConvertTo < ElementCategories::RNSElementTag > >::value, typenameField::Element_ptr >::type fgemm (const Field &F, const FFLAS::FFLAS_TRANSPOSE ta, const FFLAS::FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, typename Field::ConstElement_ptr A, const size_t lda, typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , MMHelperAlgo::Winograd , ModeTrait, ParSeqHelper::Parallel < Strat, Param > > &H)
template<class Field , class Cut , class Param >
Field::Element_ptr ftrsm (const Field &F, const FFLAS::FFLAS_SIDE Side, const FFLAS::FFLAS_UPLO UpLo, const FFLAS::FFLAS_TRANSPOSE TA, const FFLAS::FFLAS_DIAG Diag, const size_t m, const size_t n, const typename Field::Element alpha, typename Field::Element_ptr A, const size_t lda, typename Field::Element_ptr B, const size_t ldb, TRSMHelper < StructureHelper::Iterative , ParSeqHelper::Parallel < Cut, Param > > &H)
template<class Field , class Cut , class Param >
Field::Element_ptr ftrsm (const Field &F, const FFLAS::FFLAS_SIDE Side, const FFLAS::FFLAS_UPLO UpLo, const FFLAS::FFLAS_TRANSPOSE TA, const FFLAS::FFLAS_DIAG Diag, const size_t m, const size_t n, const typename Field::Element alpha, typename Field::Element_ptr A, const size_t lda, typename Field::Element_ptr B, const size_t ldb, TRSMHelper < StructureHelper::Hybrid , ParSeqHelper::Parallel < Cut, Param > > &H)
template<class Field , class SM >
void fspmv (const Field &F, const SM &A, typename Field::ConstElement_ptr x, const typename Field::Element &beta, typename Field::Element_ptr y)
template<class Field , class SM >
void fspmm (const Field &F, const SM &A, size_t blockSize, typename Field::ConstElement_ptr x, int ldx, const typename Field::Element &beta, typename Field::Element_ptr y, int ldy)
template<class Field , class IndexT >
void sparse_init (const Field &F, Sparse < Field , SparseMatrix_t::COO > &A, const IndexT *row, const IndexT *col, typename Field::ConstElement_ptr dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<class Field , class IndexT >
void sparse_init (const Field &F, Sparse < Field , SparseMatrix_t::COO_ZO > &A, const IndexT *row, const IndexT *col, typename Field::ConstElement_ptr dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<class Field >
void sparse_delete (const Sparse < Field , SparseMatrix_t::COO > &A)
template<class Field >
void sparse_delete (const Sparse < Field , SparseMatrix_t::COO_ZO > &A)
template<class Field , class IndexT >
void sparse_init (const Field &F, Sparse < Field , SparseMatrix_t::CSR > &A, const IndexT *row, const IndexT *col, typename Field::ConstElement_ptr dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<class Field , class IndexT >
void sparse_init (const Field &F, Sparse < Field , SparseMatrix_t::CSR_ZO > &A, const IndexT *row, const IndexT *col, typename Field::ConstElement_ptr dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<class Field >
void sparse_delete (const Sparse < Field , SparseMatrix_t::CSR > &A)
template<class Field >
void sparse_delete (const Sparse < Field , SparseMatrix_t::CSR_ZO > &A)
template<class Field >
std::ostream & sparse_print (std::ostream &os, const Sparse < Field , SparseMatrix_t::CSR > &A)
template<class IndexT >
void sparse_init (const Givaro::Modular< Givaro::Integer > &F, Sparse < Givaro::Modular< Givaro::Integer >, SparseMatrix_t::CSR > &A, const IndexT *row, const IndexT *col, Givaro::Integer *dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<class IndexT >
void sparse_init (const Givaro::ZRing< Givaro::Integer > &F, Sparse < Givaro::ZRing< Givaro::Integer >, SparseMatrix_t::CSR_ZO > &A, const IndexT *row, const IndexT *col, Givaro::Integer *dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<class IndexT , size_t RECINT_SIZE>
void sparse_init (const Givaro::ZRing< RecInt::rmint< RECINT_SIZE > > &F, Sparse < Givaro::ZRing< RecInt::rmint< RECINT_SIZE > >, SparseMatrix_t::CSR_ZO > &A, const IndexT *row, const IndexT *col, typename Givaro::ZRing< RecInt::rmint< RECINT_SIZE > >::Element_ptr dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<class IndexT , size_t RECINT_SIZE>
void sparse_init (const Givaro::ZRing< RecInt::rmint< RECINT_SIZE > > &F, Sparse < Givaro::ZRing< RecInt::rmint< RECINT_SIZE > >, SparseMatrix_t::CSR > &A, const IndexT *row, const IndexT *col, typename Givaro::ZRing< RecInt::rmint< RECINT_SIZE > >::Element_ptr dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<class Field >
void sparse_delete (const Sparse < Field , SparseMatrix_t::CSR_HYB > &A)
template<class Field , class IndexT >
void sparse_init (const Field &F, Sparse < Field , SparseMatrix_t::CSR_HYB > &A, const IndexT *row, const IndexT *col, typename Field::ConstElement_ptr dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<class Field , class IndexT >
void sparse_init (const Field &F, Sparse < Field , SparseMatrix_t::ELL > &A, const IndexT *row, const IndexT *col, typename Field::ConstElement_ptr dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<class Field , class IndexT >
void sparse_init (const Field &F, Sparse < Field , SparseMatrix_t::ELL_ZO > &A, const IndexT *row, const IndexT *col, typename Field::ConstElement_ptr dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<class Field >
void sparse_delete (const Sparse < Field , SparseMatrix_t::ELL > &A)
template<class Field >
void sparse_delete (const Sparse < Field , SparseMatrix_t::ELL_ZO > &A)
template<class Field >
void fspmv (const Field &F, const Sparse < Field , SparseMatrix_t::ELL_R > &A, typename Field::ConstElement_ptr x, const typename Field::Element &beta, typename Field::Element_ptr y)
template<class Field >
void fspmv (const Field &F, const Sparse < Field , SparseMatrix_t::ELL_R_ZO > &A, typename Field::ConstElement_ptr x, const typename Field::Element &beta, typename Field::Element_ptr y)
template<class Field >
void fspmm (const Field &F, const Sparse < Field , SparseMatrix_t::ELL_R > &A, const size_t blockSize, const typename Field::Element_ptr &x, const int ldx, const typename Field::Element &beta, typename Field::Element_ptr &y, const int ldy)
template<class Field >
void fspmm (const Field &F, const Sparse < Field , SparseMatrix_t::ELL_R_ZO > &A, const size_t blockSize, const typename Field::Element_ptr &x, const int ldx, const typename Field::Element &beta, typename Field::Element_ptr &y, const int ldy)
template<class Field >
void fspmv (const Field &F, const Sparse < Field , SparseMatrix_t::ELL_R > &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::GenericTag )
template<class Field >
void fspmv (const Field &F, const Sparse < Field , SparseMatrix_t::ELL_R > &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::UnparametricTag )
template<class Field >
void fspmv (const Field &F, const Sparse < Field , SparseMatrix_t::ELL_R > &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::ModularTag )
template<class Field >
void fspmv (const Field &F, const Sparse < Field , SparseMatrix_t::ELL_R_ZO > &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::GenericTag )
template<class Field >
void fspmv (const Field &F, const Sparse < Field , SparseMatrix_t::ELL_R_ZO > &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::UnparametricTag )
template<class Field >
void fspmv (const Field &F, const Sparse < Field , SparseMatrix_t::ELL_R_ZO > &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::ModularTag )
template<class Field >
void sparse_delete (const Sparse < Field , SparseMatrix_t::ELL_R > &A)
template<class Field >
void sparse_delete (const Sparse < Field , SparseMatrix_t::ELL_R_ZO > &A)
template<class Field , class IndexT >
void sparse_init (const Field &F, Sparse < Field , SparseMatrix_t::ELL_R > &A, const IndexT *row, const IndexT *col, typename Field::ConstElement_ptr dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<class Field , class IndexT >
void sparse_init (const Field &F, Sparse < Field , SparseMatrix_t::ELL_R_ZO > &A, const IndexT *row, const IndexT *col, typename Field::ConstElement_ptr dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<class Field , class IndexT >
void sparse_init (const Field &F, Sparse < Field , SparseMatrix_t::ELL_simd > &A, const IndexT *row, const IndexT *col, typename Field::ConstElement_ptr dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<class Field , class IndexT >
void sparse_init (const Field &F, Sparse < Field , SparseMatrix_t::ELL_simd_ZO > &A, const IndexT *row, const IndexT *col, typename Field::ConstElement_ptr dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<class Field >
void sparse_delete (const Sparse < Field , SparseMatrix_t::ELL_simd > &A)
template<class Field >
void sparse_delete (const Sparse < Field , SparseMatrix_t::ELL_simd_ZO > &A)
template<class Field >
void sparse_print (const Sparse < Field , SparseMatrix_t::ELL_simd > &A)
template<class Field >
void sparse_delete (const Sparse < Field , SparseMatrix_t::HYB_ZO > &A)
template<class Field , class IndexT >
void sparse_init (const Field &F, Sparse < Field , SparseMatrix_t::HYB_ZO > &A, const IndexT *row, const IndexT *col, typename Field::ConstElement_ptr dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<typename _Field >
std::ostream & operator<< (std::ostream &os, const Sparse < _Field, SparseMatrix_t::HYB_ZO > &A)
template<class Field , bool sorted = true, bool read_integer = false>
void readSmsFormat (const std::string &path, const Field &f, index_t *&row, index_t *&col, typename Field::Element_ptr &val, index_t &rowdim, index_t &coldim, uint64_t &nnz)
template<class Field >
void readSprFormat (const std::string &path, const Field &f, index_t *&row, index_t *&col, typename Field::Element_ptr &val, index_t &rowdim, index_t &coldim, uint64_t &nnz)
template<class T >
std::enable_if< std::is_integral< T >::value, int > getDataType ()
template<class T >
std::enable_if< std::is_floating_point< T >::value, int > getDataType ()
template<class T >
std::enable_if< std::is_same< T, mpz_t >::value, int > getDataType ()
template<class T >
int getDataType ()
template<class Field >
void readMachineType (const Field &F, typename Field::Element &modulo, typename Field::Element_ptr val, std::ifstream &file, const uint64_t dims, const mask_t data_type, const mask_t field_desc)
template<class Field >
void readDnsFormat (const std::string &path, const Field &F, index_t &rowdim, index_t &coldim, typename Field::Element_ptr &val)
template<class Field >
void writeDnsFormat (const std::string &path, const Field &F, const index_t &rowdim, const index_t &coldim, typename Field::Element_ptr A, index_t ldA)
template<class Field >
void fspmv (const Field &F, const Sparse < Field , SparseMatrix_t::SELL_ZO > &A, typename Field::ConstElement_ptr x, typename Field::Element_ptr y, FieldCategories::ModularTag )
template<class Field >
void sparse_delete (const Sparse < Field , SparseMatrix_t::SELL > &A)
template<class Field >
void sparse_delete (const Sparse < Field , SparseMatrix_t::SELL_ZO > &A)
template<class Field >
void sparse_print (const Sparse < Field , SparseMatrix_t::SELL > &A)
template<class Field , class IndexT >
void sparse_init (const Field &F, Sparse < Field , SparseMatrix_t::SELL > &A, const IndexT *row, const IndexT *col, typename Field::ConstElement_ptr dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz, uint64_t sigma=0)
template<class Field , class IndexT >
void sparse_init (const Field &F, Sparse < Field , SparseMatrix_t::SELL_ZO > &A, const IndexT *row, const IndexT *col, typename Field::ConstElement_ptr dat, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<class It >
double computeDeviation (It begin, It end)
template<class Field >
StatsMatrix getStat (const Field &F, const index_t *row, const index_t *col, typename Field::ConstElement_ptr val, uint64_t rowdim, uint64_t coldim, uint64_t nnz)
template<class Field , class enable = void>
Field::Residu_t maxCardinality ()
template<>
uint64_t maxCardinality< Givaro::Modular< int64_t > > ()
template<>
uint32_t maxCardinality< Givaro::Modular< int32_t > > ()
template<class Field >
Field::Residu_t minCardinality ()
template<>
void fflas_delete (FFPACK::rns_double_elt_ptr A)
template<>
void fflas_delete (FFPACK::rns_double_elt_cstptr A)
template<>
FFPACK::rns_double_elt_ptr fflas_new (const FFPACK::RNSIntegerMod < FFPACK::rns_double > &F, const size_t m, const Alignment align)
template<>
FFPACK::rns_double_elt_ptr fflas_new (const FFPACK::RNSIntegerMod < FFPACK::rns_double > &F, const size_t m, const size_t n, const Alignment align)
template<typename RNS >
void finit_rns (const FFPACK::RNSIntegerMod < RNS > &F, const size_t m, const size_t n, size_t k, const Givaro::Integer *B, const size_t ldb, typename RNS::Element_ptr A)
template<typename RNS >
void finit_trans_rns (const FFPACK::RNSIntegerMod < RNS > &F, const size_t m, const size_t n, size_t k, const Givaro::Integer *B, const size_t ldb, typename RNS::Element_ptr A)
template<typename RNS >
void fconvert_rns (const FFPACK::RNSIntegerMod < RNS > &F, const size_t m, const size_t n, Givaro::Integer alpha, Givaro::Integer *B, const size_t ldb, typename RNS::ConstElement_ptr A)
template<typename RNS >
void fconvert_trans_rns (const FFPACK::RNSIntegerMod < RNS > &F, const size_t m, const size_t n, Givaro::Integer alpha, Givaro::Integer *B, const size_t ldb, typename RNS::ConstElement_ptr A)
template<>
FFPACK::rns_double_elt_ptr fflas_new (const FFPACK::RNSInteger < FFPACK::rns_double > &F, const size_t m, const Alignment align)
template<>
FFPACK::rns_double_elt_ptr fflas_new (const FFPACK::RNSInteger < FFPACK::rns_double > &F, const size_t m, const size_t n, const Alignment align)
template<typename RNS >
void finit_rns (const FFPACK::RNSInteger < RNS > &F, const size_t m, const size_t n, size_t k, const Givaro::Integer *B, const size_t ldb, typename FFPACK::RNSInteger < RNS >::Element_ptr A)
template<typename RNS >
void fconvert_rns (const FFPACK::RNSInteger < RNS > &F, const size_t m, const size_t n, Givaro::Integer alpha, Givaro::Integer *B, const size_t ldb, typename FFPACK::RNSInteger < RNS >::ConstElement_ptr A)
template INST_OR_DECL void freduce (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t n, FFLAS_ELT *X, const size_t incX)
freduce .
template INST_OR_DECL void freduce (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t n, const FFLAS_ELT *Y, const size_t incY, FFLAS_ELT *X, const size_t incX)
freduce .
template INST_OR_DECL void finit (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t n, const FFLAS_ELT *Y, const size_t incY, FFLAS_ELT *X, const size_t incX)
finit .
template INST_OR_DECL void fconvert (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t n, FFLAS_ELT *X, const size_t incX, const FFLAS_ELT *Y, const size_t incY)
fconvert .
template INST_OR_DECL void fnegin (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t n, FFLAS_ELT *X, const size_t incX)
fnegin .
template INST_OR_DECL void fneg (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t n, const FFLAS_ELT *Y, const size_t incY, FFLAS_ELT *X, const size_t incX)
fneg .
template INST_OR_DECL void fzero (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t n, FFLAS_ELT *X, const size_t incX)
fzero : .
template INST_OR_DECL bool fiszero (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t n, const FFLAS_ELT *X, const size_t incX)
fiszero : test .
template INST_OR_DECL bool fequal (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t n, const FFLAS_ELT *X, const size_t incX, const FFLAS_ELT *Y, const size_t incY)
fequal : test .
template INST_OR_DECL void fassign (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t N, const FFLAS_ELT *Y, const size_t incY, FFLAS_ELT *X, const size_t incX)
fassign : .
template INST_OR_DECL void fscalin (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t n, const FFLAS_ELT alpha, FFLAS_ELT *X, const size_t incX)
fscalin .
template INST_OR_DECL void fscal (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t n, const FFLAS_ELT alpha, const FFLAS_ELT *X, const size_t incX, FFLAS_ELT *Y, const size_t incY)
fscal .
template INST_OR_DECL void faxpy (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t N, const FFLAS_ELT alpha, const FFLAS_ELT *X, const size_t incX, FFLAS_ELT *Y, const size_t incY)
faxpy : .
template INST_OR_DECL FFLAS_ELT fdot (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t N, const FFLAS_ELT *X, const size_t incX, const FFLAS_ELT *Y, const size_t incY)
faxpby : .
template INST_OR_DECL void fswap (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t N, FFLAS_ELT *X, const size_t incX, FFLAS_ELT *Y, const size_t incY)
fswap: .
template INST_OR_DECL void fadd (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t N, const FFLAS_ELT *A, const size_t inca, const FFLAS_ELT *B, const size_t incb, FFLAS_ELT *C, const size_t incc)
template INST_OR_DECL void fsub (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t N, const FFLAS_ELT *A, const size_t inca, const FFLAS_ELT *B, const size_t incb, FFLAS_ELT *C, const size_t incc)
template INST_OR_DECL void faddin (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t N, const FFLAS_ELT *B, const size_t incb, FFLAS_ELT *C, const size_t incc)
template INST_OR_DECL void fadd (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t N, const FFLAS_ELT *A, const size_t inca, const FFLAS_ELT alpha, const FFLAS_ELT *B, const size_t incb, FFLAS_ELT *C, const size_t incc)
template INST_OR_DECL void fassign (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t m, const size_t n, const FFLAS_ELT *B, const size_t ldb, FFLAS_ELT *A, const size_t lda)
fassign : .
template INST_OR_DECL void fzero (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t m, const size_t n, FFLAS_ELT *A, const size_t lda)
fzero : .
template INST_OR_DECL bool fequal (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t m, const size_t n, const FFLAS_ELT *A, const size_t lda, const FFLAS_ELT *B, const size_t ldb)
fequal : test .
template INST_OR_DECL bool fiszero (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t m, const size_t n, const FFLAS_ELT *A, const size_t lda)
fiszero : test .
template INST_OR_DECL void fidentity (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t m, const size_t n, FFLAS_ELT *A, const size_t lda, const FFLAS_ELT &d)
creates a diagonal matrix
template INST_OR_DECL void fidentity (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t m, const size_t n, FFLAS_ELT *A, const size_t lda)
creates a diagonal matrix
template INST_OR_DECL void freduce (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t m, const size_t n, FFLAS_ELT *A, const size_t lda)
freduce .
template INST_OR_DECL void freduce (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t m, const size_t n, const FFLAS_ELT *B, const size_t ldb, FFLAS_ELT *A, const size_t lda)
freduce .
template INST_OR_DECL void finit (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t m, const size_t n, const FFLAS_ELT *B, const size_t ldb, FFLAS_ELT *A, const size_t lda)
finit .
template INST_OR_DECL void fnegin (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t m, const size_t n, FFLAS_ELT *A, const size_t lda)
fnegin .
template INST_OR_DECL void fneg (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t m, const size_t n, const FFLAS_ELT *B, const size_t ldb, FFLAS_ELT *A, const size_t lda)
fneg .
template INST_OR_DECL void fscalin (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t m, const size_t n, const FFLAS_ELT alpha, FFLAS_ELT *A, const size_t lda)
fscalin .
template INST_OR_DECL void fscal (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t m, const size_t n, const FFLAS_ELT alpha, const FFLAS_ELT *A, const size_t lda, FFLAS_ELT *B, const size_t ldb)
fscal .
template INST_OR_DECL void faxpy (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t m, const size_t n, const FFLAS_ELT alpha, const FFLAS_ELT *X, const size_t ldx, FFLAS_ELT *Y, const size_t ldy)
faxpy : .
template INST_OR_DECL void fmove (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t m, const size_t n, FFLAS_ELT *A, const size_t lda, FFLAS_ELT *B, const size_t ldb)
faxpby : .
template INST_OR_DECL void fadd (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t M, const size_t N, const FFLAS_ELT *A, const size_t lda, const FFLAS_ELT *B, const size_t ldb, FFLAS_ELT *C, const size_t ldc)
fadd : matrix addition.
template INST_OR_DECL void fsub (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t M, const size_t N, const FFLAS_ELT *A, const size_t lda, const FFLAS_ELT *B, const size_t ldb, FFLAS_ELT *C, const size_t ldc)
fsub : matrix subtraction.
template INST_OR_DECL void fsubin (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t M, const size_t N, const FFLAS_ELT *B, const size_t ldb, FFLAS_ELT *C, const size_t ldc)
fsubin C = C - B
template INST_OR_DECL void fadd (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t M, const size_t N, const FFLAS_ELT *A, const size_t lda, const FFLAS_ELT alpha, const FFLAS_ELT *B, const size_t ldb, FFLAS_ELT *C, const size_t ldc)
fadd : matrix addition with scaling.
template INST_OR_DECL void faddin (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t M, const size_t N, const FFLAS_ELT *B, const size_t ldb, FFLAS_ELT *C, const size_t ldc)
faddin
template INST_OR_DECL FFLAS_ELT * fgemv (const FFLAS_FIELD < FFLAS_ELT > &F, const FFLAS_TRANSPOSE TransA, const size_t M, const size_t N, const FFLAS_ELT alpha, const FFLAS_ELT *A, const size_t lda, const FFLAS_ELT *X, const size_t incX, const FFLAS_ELT beta, FFLAS_ELT *Y, const size_t incY)
finite prime FFLAS_FIELD<FFLAS_ELT> GEneral Matrix Vector multiplication.
template INST_OR_DECL void fger (const FFLAS_FIELD < FFLAS_ELT > &F, const size_t M, const size_t N, const FFLAS_ELT alpha, const FFLAS_ELT *x, const size_t incx, const FFLAS_ELT *y, const size_t incy, FFLAS_ELT *A, const size_t lda)
fger: rank one update of a general matrix
template INST_OR_DECL void ftrsv (const FFLAS_FIELD < FFLAS_ELT > &F, const FFLAS_UPLO Uplo, const FFLAS_TRANSPOSE TransA, const FFLAS_DIAG Diag, const size_t N, const FFLAS_ELT *A, const size_t lda, FFLAS_ELT *X, int incX)
ftrsv: TRiangular System solve with Vector Computes
template INST_OR_DECL void ftrsm (const FFLAS_FIELD < FFLAS_ELT > &F, const FFLAS_SIDE Side, const FFLAS_UPLO Uplo, const FFLAS_TRANSPOSE TransA, const FFLAS_DIAG Diag, const size_t M, const size_t N, const FFLAS_ELT alpha, const FFLAS_ELT *A, const size_t lda, FFLAS_ELT *B, const size_t ldb)
ftrsm: TR iangular S ystem solve with M atrix.
template INST_OR_DECL void ftrmm (const FFLAS_FIELD < FFLAS_ELT > &F, const FFLAS_SIDE Side, const FFLAS_UPLO Uplo, const FFLAS_TRANSPOSE TransA, const FFLAS_DIAG Diag, const size_t M, const size_t N, const FFLAS_ELT alpha, const FFLAS_ELT *A, const size_t lda, FFLAS_ELT *B, const size_t ldb)
ftrmm: TR iangular M atrix M ultiply.
template INST_OR_DECL FFLAS_ELT * fgemm (const FFLAS_FIELD < FFLAS_ELT > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const FFLAS_ELT alpha, const FFLAS_ELT *A, const size_t lda, const FFLAS_ELT *B, const size_t ldb, const FFLAS_ELT beta, FFLAS_ELT *C, const size_t ldc)
fgemm: F ield GE neral M atrix M ultiply.
template INST_OR_DECL FFLAS_ELT * fgemm (const FFLAS_FIELD < FFLAS_ELT > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const FFLAS_ELT alpha, const FFLAS_ELT *A, const size_t lda, const FFLAS_ELT *B, const size_t ldb, const FFLAS_ELT beta, FFLAS_ELT *C, const size_t ldc, const ParSeqHelper::Sequential seq)
template INST_OR_DECL FFLAS_ELT * fgemm (const FFLAS_FIELD < FFLAS_ELT > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const FFLAS_ELT alpha, const FFLAS_ELT *A, const size_t lda, const FFLAS_ELT *B, const size_t ldb, const FFLAS_ELT beta, FFLAS_ELT *C, const size_t ldc, const ParSeqHelper::Parallel < CuttingStrategy::Recursive , StrategyParameter::TwoDAdaptive > par)
template INST_OR_DECL FFLAS_ELT * fgemm (const FFLAS_FIELD < FFLAS_ELT > &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const FFLAS_ELT alpha, const FFLAS_ELT *A, const size_t lda, const FFLAS_ELT *B, const size_t ldb, const FFLAS_ELT beta, FFLAS_ELT *C, const size_t ldc, const ParSeqHelper::Parallel < CuttingStrategy::Block , StrategyParameter::Threads > par)
template INST_OR_DECL FFLAS_ELT * fsquare (const FFLAS_FIELD < FFLAS_ELT > &F, const FFLAS_TRANSPOSE ta, const size_t n, const FFLAS_ELT alpha, const FFLAS_ELT *A, const size_t lda, const FFLAS_ELT beta, FFLAS_ELT *C, const size_t ldc)
fsquare: Squares a matrix.
template<class Cut = CuttingStrategy::Block, class Strat = StrategyParameter::Threads>
void BlockCuts (size_t &RBLOCKSIZE, size_t &CBLOCKSIZE, const size_t m, const size_t n, const size_t numthreads)
template<>
void BlockCuts< CuttingStrategy::Single, StrategyParameter::Threads > (size_t &RBLOCKSIZE, size_t &CBLOCKSIZE, const size_t m, const size_t n, const size_t numthreads)
template<>
void BlockCuts< CuttingStrategy::Row, StrategyParameter::Fixed > (size_t &RBLOCKSIZE, size_t &CBLOCKSIZE, const size_t m, const size_t n, const size_t numthreads)
template<>
void BlockCuts< CuttingStrategy::Row, StrategyParameter::Grain > (size_t &RBLOCKSIZE, size_t &CBLOCKSIZE, const size_t m, const size_t n, const size_t grainsize)
template<>
void BlockCuts< CuttingStrategy::Block, StrategyParameter::Grain > (size_t &RBLOCKSIZE, size_t &CBLOCKSIZE, const size_t m, const size_t n, const size_t grainsize)
template<>
void BlockCuts< CuttingStrategy::Column, StrategyParameter::Fixed > (size_t &RBLOCKSIZE, size_t &CBLOCKSIZE, const size_t m, const size_t n, const size_t numthreads)
template<>
void BlockCuts< CuttingStrategy::Column, StrategyParameter::Grain > (size_t &RBLOCKSIZE, size_t &CBLOCKSIZE, const size_t m, const size_t n, const size_t grainsize)
template<>
void BlockCuts< CuttingStrategy::Block, StrategyParameter::Fixed > (size_t &RBLOCKSIZE, size_t &CBLOCKSIZE, const size_t m, const size_t n, const size_t numthreads)
template<>
void BlockCuts< CuttingStrategy::Row, StrategyParameter::Threads > (size_t &RBLOCKSIZE, size_t &CBLOCKSIZE, const size_t m, const size_t n, const size_t numthreads)
template<>
void BlockCuts< CuttingStrategy::Column, StrategyParameter::Threads > (size_t &RBLOCKSIZE, size_t &CBLOCKSIZE, const size_t m, const size_t n, const size_t numthreads)
template<>
void BlockCuts< CuttingStrategy::Block, StrategyParameter::Threads > (size_t &RBLOCKSIZE, size_t &CBLOCKSIZE, const size_t m, const size_t n, const size_t numthreads)
template<class Cut = CuttingStrategy::Block, class Param = StrategyParameter::Threads>
void BlockCuts (size_t &rowBlockSize, size_t &colBlockSize, size_t &lastRBS, size_t &lastCBS, size_t &changeRBS, size_t &changeCBS, size_t &numRowBlock, size_t &numColBlock, size_t m, size_t n, const size_t numthreads)
template<class Field >
void pfzero (const Field &F, size_t m, size_t n, typename Field::Element_ptr C, size_t BS=0)
template<class Field , class RandIter >
void pfrand (const Field &F, RandIter &G, size_t m, size_t n, typename Field::Element_ptr C, size_t BS=0)
template<class Field , class Cut , class Param >
Field::Element & fdot (const Field &F, const size_t N, typename Field::ConstElement_ptr x, const size_t incx, typename Field::ConstElement_ptr y, const size_t incy, typename Field::Element &d, const ParSeqHelper::Parallel < Cut, Param > par)
template<class Field , class AlgoT , class FieldTrait >
Field::Element * pfgemm (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, const typename Field::ConstElement_ptr A, const size_t lda, const typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element *C, const size_t ldc, MMHelper < Field , AlgoT, FieldTrait, ParSeqHelper::Parallel < CuttingStrategy::Block , StrategyParameter::Threads > > &H)
template<class Field , class AlgoT , class FieldTrait >
Field::Element * pfgemm (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, const typename Field::ConstElement_ptr AA, const size_t lda, const typename Field::ConstElement_ptr BB, const size_t ldb, const typename Field::Element beta, typename Field::Element *C, const size_t ldc, MMHelper < Field , AlgoT, FieldTrait, ParSeqHelper::Parallel < CuttingStrategy::Recursive , StrategyParameter::ThreeDAdaptive > > &H)
template<class Field , class AlgoT , class FieldTrait >
Field::Element * pfgemm (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, const typename Field::ConstElement_ptr AA, const size_t lda, const typename Field::ConstElement_ptr BB, const size_t ldb, const typename Field::Element beta, typename Field::Element *C, const size_t ldc, MMHelper < Field , AlgoT, FieldTrait, ParSeqHelper::Parallel < CuttingStrategy::Recursive , StrategyParameter::TwoDAdaptive > > &H)
template<class Field , class AlgoT , class FieldTrait >
Field::Element * pfgemm (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, const typename Field::ConstElement_ptr AA, const size_t lda, const typename Field::ConstElement_ptr BB, const size_t ldb, const typename Field::Element beta, typename Field::Element *C, const size_t ldc, MMHelper < Field , AlgoT, FieldTrait, ParSeqHelper::Parallel < CuttingStrategy::Recursive , StrategyParameter::TwoD > > &H)
template<class Field , class AlgoT , class FieldTrait >
Field::Element_ptr pfgemm (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, const typename Field::ConstElement_ptr A, const size_t lda, const typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , AlgoT, FieldTrait, ParSeqHelper::Parallel < CuttingStrategy::Recursive , StrategyParameter::ThreeD > > &H)
template<class Field , class AlgoT , class FieldTrait >
Field::Element * pfgemm (const Field &F, const FFLAS_TRANSPOSE ta, const FFLAS_TRANSPOSE tb, const size_t m, const size_t n, const size_t k, const typename Field::Element alpha, const typename Field::ConstElement_ptr A, const size_t lda, const typename Field::ConstElement_ptr B, const size_t ldb, const typename Field::Element beta, typename Field::Element_ptr C, const size_t ldc, MMHelper < Field , AlgoT, FieldTrait, ParSeqHelper::Parallel < CuttingStrategy::Recursive , StrategyParameter::ThreeDInPlace > > &H)
template<class Field , class AlgoT , class FieldTrait >
Field::Element_ptr fgemv (const Field &F, const FFLAS_TRANSPOSE ta, const size_t m, const size_t n, const typename Field::Element alpha, const typename Field::ConstElement_ptr A, const size_t lda, const typename Field::ConstElement_ptr X, const size_t incX, const typename Field::Element beta, typename Field::Element_ptr Y, const size_t incY, MMHelper < Field , AlgoT, FieldTrait, ParSeqHelper::Parallel < CuttingStrategy::Recursive , StrategyParameter::Threads > > &H)
template<class Field , class AlgoT , class FieldTrait , class Cut >
Field::Element_ptr fgemv (const Field &F, const FFLAS_TRANSPOSE ta, const size_t m, const size_t n, const typename Field::Element alpha, const typename Field::ConstElement_ptr A, const size_t lda, const typename Field::ConstElement_ptr X, const size_t incX, const typename Field::Element beta, typename Field::Element_ptr Y, const size_t incY, MMHelper < Field , AlgoT, FieldTrait, ParSeqHelper::Parallel < CuttingStrategy::Row , Cut > > &H)
void parseArguments (int argc, char **argv, Argument *args, bool printDefaults=true)
char * getArgumentValue (int argc, char **argv, int i)
Get the value of an argument and avoid core dump when no value was given after an argument.
std::ostream & writeCommandString (std::ostream &os, Argument *args, const char *programName=nullptr)
writes the values of all arguments, preceded by the programName
template<class Field >
std::ostream & WriteMatrix (std::ostream &c, const Field &F, size_t m, size_t n, typename Field::ConstElement_ptr A, size_t lda, FFLAS_FORMAT format, bool column_major)
WriteMatrix: write a matrix to an output stream.
void preamble (std::ifstream &ifs, FFLAS_FORMAT &format)
template<class Field >
Field::Element_ptr ReadMatrix (std::ifstream &ifs, Field &F, size_t &m, size_t &n, typename Field::Element_ptr &A, FFLAS_FORMAT format=FflasAuto )
ReadMatrix: read a matrix from an input stream.
template<class Field >
Field::Element_ptr ReadMatrix (const std::string &matrix_file, Field &F, size_t &m, size_t &n, typename Field::Element_ptr &A, FFLAS_FORMAT format=FflasAuto )
ReadMatrix: read a matrix from a file.
template<class Field >
void WriteMatrix (std::string &matrix_file, const Field &F, int m, int n, typename Field::ConstElement_ptr A, size_t lda, FFLAS_FORMAT format=FflasDense , bool column_major=false)
WriteMatrix: write a matrix to a file.
std::ostream & WritePermutation (std::ostream &c, const size_t *P, size_t N)
WritePermutation: write a permutation matrix to an output stream.
template<class Element >
bool alignable ()
template<>
bool alignable< Givaro::Integer * > ()
template<class Field >
Field::Element_ptr fflas_new (const Field &F, const size_t m, const Alignment align=Alignment::DEFAULT)
template<class Field >
Field::Element_ptr fflas_new (const Field &F, const size_t m, const size_t n, const Alignment align=Alignment::DEFAULT)
template<class Element >
Element * fflas_new (const size_t m, const Alignment align=Alignment::DEFAULT)
template<class Element_ptr >
void fflas_delete (Element_ptr A)
template<class Ptr , class ... Args>
void fflas_delete (Ptr p, Args ... args)
void prefetch (const int64_t *)
void getTLBSize (int &tlb)
void queryCacheSizes (int &l1, int &l2, int &l3)
int queryL1CacheSize ()
int queryTopLevelCacheSize ()
uint64_t getSeed ()
template<class wide_T , class pack_T , int Nb>
void pack_word (pack_T *packed, const wide_T *words, int32_t stride, Packer < pack_T, Nb > &packer)
template<class wide_T >
void pack_word (double *packed, const wide_T *words, int32_t stride, Packer < double, 2 > &packer)
template<class wide_T , class pack_T , int Nb>
void pack_word_part (pack_T *packed, int32_t nb, const wide_T *words, int32_t stride, Packer < pack_T, Nb > &packer)
template<class wide_T >
void pack_word_part (double *packed, int32_t nb, const wide_T *words, int32_t stride, Packer < double, 2 > &packer)
template<class wide_T , class pack_T , int Nb>
void unpack_word (wide_T *words, int32_t stride, const pack_T *packed, Packer < pack_T, Nb > &packer)
template<class wide_T >
void unpack_word (wide_T *words, int32_t stride, const double *packed, Packer < double, 2 > &packer)
template<class wide_T , class pack_T , int Nb>
void unpack_word_part (wide_T *words, int32_t stride, const pack_T *packed, int32_t nb, Packer < pack_T, Nb > &packer)
template<class wide_T >
void unpack_word_part (wide_T *words, int32_t stride, const double *packed, int32_t nb, Packer < double, 2 > &packer)
template<class wide_T , class pack_T , int Nb, bool row_packed>
void pack_matrix (pack_T *packed, int32_t row_p, int32_t col_p, int32_t ldm_p, const wide_T *elemts, int32_t row_e, int32_t col_e, int32_t ldm_e, Packer < pack_T, Nb > &packer)
template<class wide_T , class pack_T , int Nb, bool row_packed>
void unpack_matrix (wide_T *elemts, int32_t row_e, int32_t col_e, int32_t ldm_e, const pack_T *packed, int32_t row_p, int32_t col_p, int32_t ldm_p, Packer < pack_T, Nb > &packer)
template<class Field , bool left_compress>
void fgemm_compressed (const Field &F, int m, int n, int k, const typename Field::Element *A, int lda, const typename Field::Element *B, int ldb, typename Field::Element *C, int ldc)
template<class Field >
void finit_fuzzy (Field &F, size_t m, size_t n, double *C, size_t ldc)
void add (const size_t m, const size_t n, double a, const double *A, const size_t lda, const double *B, const size_t ldb, double *C, const size_t ldc)
void subadd (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)
void negadd (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)
void addsub (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)
template<class Field >
void addscalinf (const Field &F, const size_t m, const size_t n, const double *B, const size_t ldb, double e, double *C, const size_t ldc)
template<class Field >
void subscalinf (const Field &F, const size_t m, const size_t n, const double *B, const size_t ldb, double e, double *C, const size_t ldc)
template<class Field >
void subscal (const Field &F, const size_t m, const size_t n, const double *D, const size_t ldd, const double *B, const size_t ldb, double e, double *C, const size_t ldc)
template<class Field >
void addscal (const Field &F, const size_t m, const size_t n, const double *D, const size_t ldd, const double *B, const size_t ldb, double e, double *C, const size_t ldc)
template<class Field >
void subscalacc (const Field &F, const size_t m, const size_t n, const double *D, const size_t ldd, const double *B, const size_t ldb, double e, double *C, const size_t ldc)
template<class Field >
double * gemm_fflas (const Field &F, const size_t m, const size_t n, const size_t k, const double *A, size_t lda, const double *B, size_t ldb, double *C, size_t ldc, int rec=0)