FflasFfpack
Data Structures | Namespaces | Macros | Functions
fflas_freduce.inl File Reference
#include <givaro/udl.h>
#include "fflas-ffpack/fflas/fflas_fassign.h"
#include "fflas-ffpack/utils/bit_manipulation.h"

Data Structures

struct  HelperMod< Field, ElementTraits >
 
struct  HelperMod< Field, ElementCategories::MachineIntTag >
 
struct  HelperMod< Field, FFLAS::ElementCategories::MachineFloatTag >
 
struct  HelperMod< Field, FFLAS::ElementCategories::ArbitraryPrecIntTag >
 
struct  HelperMod< Field, FFLAS::ElementCategories::FixedPrecIntTag >
 

Namespaces

 FFLAS
 
 FFLAS::vectorised
 
 FFLAS::vectorised::unswitch
 
 FFLAS::details
 

Macros

#define __FFLASFFPACK_fflas_freduce_INL
 
#define FFLASFFPACK_COPY_REDUCE   32 /* TO BENCMARK LATER */
 

Functions

template<class T >
std::enable_if
< !std::is_integral< T >
::value, T >::type 
monfmod (T A, T B)
 
template<class T >
std::enable_if
< std::is_integral< T >::value,
T >::type 
monfmod (T A, T B)
 
template<>
Givaro::Integer monfmod (Givaro::Integer A, Givaro::Integer B)
 
template<>
float monfmod (float A, float B)
 
template<>
double monfmod (double A, double B)
 
template<size_t K, size_t MG>
RecInt::rmint< K, MG > & monfmod (RecInt::rmint< K, MG > &A, RecInt::rmint< K, MG > &B)
 
template<class T >
std::enable_if
< !std::is_integral< T >
::value, T >::type 
monrint (T A)
 
template<class T >
std::enable_if
< std::is_integral< T >::value,
T >::type 
monrint (T A)
 
template<>
double monrint (double A)
 
template<>
float monrint (float A)
 
template<>
Givaro::Integer monrint (Givaro::Integer A)
 
template<bool overflow, bool poweroftwo>
int64_t monfmod (int64_t A, int64_t p, int8_t shifter, int64_t magic)
 
template<class T >
void fast_mod_generate (bool &overflow, bool &poweroftwo, int8_t &shift, T &magic, T denom)
 
template<>
void fast_mod_generate (bool &overflow, bool &poweroftwo, int8_t &shift, int64_t &magic, int64_t denom)
 
template<class Field , int ALGO>
Field::Element monfmod (typename Field::Element A, HelperMod< Field, ElementCategories::MachineIntTag > &H)
 
template<class Field , int ALGO>
Field::Element monfmod (typename Field::Element A, HelperMod< Field, ElementCategories::MachineFloatTag > &H)
 
template<class Field , int ALGO>
Field::Element monfmod (typename Field::Element A, HelperMod< Field, ElementCategories::ArbitraryPrecIntTag > &H)
 
template<class Field , bool round, int algo>
std::enable_if
< !FFLAS::support_simd_mod
< typename Field::Element >
::value, void >::type 
modp (const Field &F, typename Field::ConstElement_ptr U, const size_t &n, typename Field::Element_ptr T, HelperMod< Field > &H)
 
template<class Field , bool round>
void modp (const Field &F, typename Field::ConstElement_ptr U, const size_t &n, typename Field::Element_ptr T)
 
template<class Field >
std::enable_if
< FFLAS::support_simd_mod
< typename Field::Element >
::value, void >::type 
freduce (const Field &F, const size_t m, typename Field::Element_ptr A, const size_t incX, FieldCategories::ModularTag)
 
template<class Field >
std::enable_if
< !FFLAS::support_simd_mod
< typename Field::Element >
::value, void >::type 
freduce (const Field &F, const size_t m, typename Field::Element_ptr A, const size_t incX, FieldCategories::ModularTag)
 
template<class Field >
void freduce (const Field &F, const size_t m, typename Field::Element_ptr A, const size_t incX, FieldCategories::GenericTag)
 
template<class Field >
void freduce (const Field &F, const size_t m, typename Field::Element_ptr A, const size_t incX, FieldCategories::UnparametricTag)
 
template<class Field >
std::enable_if
< FFLAS::support_simd_mod
< typename Field::Element >
::value, void >::type 
freduce (const Field &F, const size_t m, typename Field::ConstElement_ptr B, const size_t incY, typename Field::Element_ptr A, const size_t incX, FieldCategories::ModularTag)
 
template<class Field >
std::enable_if
< !FFLAS::support_simd_mod
< typename Field::Element >
::value, void >::type 
freduce (const Field &F, const size_t m, typename Field::ConstElement_ptr B, const size_t incY, typename Field::Element_ptr A, const size_t incX, FieldCategories::ModularTag)
 
template<class Field >
void freduce (const Field &F, const size_t m, typename Field::ConstElement_ptr B, const size_t incY, typename Field::Element_ptr A, const size_t incX, FieldCategories::GenericTag)
 
template<class Field >
void freduce (const Field &F, const size_t m, typename Field::ConstElement_ptr B, const size_t incY, typename Field::Element_ptr A, const size_t incX, FieldCategories::UnparametricTag)
 

Macro Definition Documentation

#define __FFLASFFPACK_fflas_freduce_INL
#define FFLASFFPACK_COPY_REDUCE   32 /* TO BENCMARK LATER */