FflasFfpack
Public Types | Public Member Functions | Static Public Attributes | Protected Attributes
TestOneMethod< Simd > Class Template Reference

Public Types

using Element = typename Simd::scalar_t
 
using vect_t = typename Simd::vect_t
 
using vectElt = vector< Element >
 
template<bool B, typename T = void>
using enable_if_t = typename enable_if< B, T >::type
 

Public Member Functions

template<typename... AScal, typename RScal , typename... ASimd, typename RSimd , enable_if_t< sizeof...(AScal)==sizeof...(ASimd)> * = nullptr, enable_if_t< count_nonconst_lvalue_reference< AScal... >::n==count_nonconst_lvalue_reference< ASimd... >::n > * = nullptr, enable_if_t< is_all_same< AScal... >::value > * = nullptr, enable_if_t< is_all_same< vect_t, ASimd... >::value > * = nullptr>
 TestOneMethod (function< RSimd(ASimd...)> fsimd, function< RScal(AScal...)> fscal, function< void(vector< vectElt > &)> genInputs, string fname)
 
template<typename Ret , typename... AScal>
enable_if_t< is_all_same< Element, AScal... >::value &&std::is_convertible< Ret, Element >::value, void > evaluate_scalar_method (function< Ret(AScal...)> fscal)
 
template<typename... AScal>
enable_if_t< is_all_same< vectElt, AScal... >::value, void > evaluate_scalar_method (function< vectElt(AScal...)> fscal)
 
template<typename... AScal>
enable_if_t< is_all_same< vectElt, AScal... >::value, void > evaluate_scalar_method (function< void(AScal...)> fscal)
 
template<typename Ret , typename... ASimd>
enable_if_t< is_all_same< vect_t, ASimd... >::value &&std::is_convertible< Ret, vect_t >::value, void > evaluate_simd_method (function< Ret(ASimd...)> fsimd, array< vect_t, sizeof...(ASimd)> &simd_in)
 
template<typename... ASimd>
enable_if_t< is_all_same< vect_t, ASimd... >::value, void > evaluate_simd_method (function< void(ASimd...)> fsimd, array< vect_t, sizeof...(ASimd)> &simd_in)
 
bool getStatus () const
 
string getTestName () const
 
bool writeResultLine () const
 
void writeDebugData () const
 

Static Public Attributes

static constexpr size_t vect_size = Simd::vect_size
 

Protected Attributes

size_t nb_lref
 
string name
 
vector< vectEltinputs
 
vector< vectEltoutputs_simd
 
vector< vectEltoutputs_scalar
 

Member Typedef Documentation

◆ Element

using Element = typename Simd::scalar_t

◆ vect_t

using vect_t = typename Simd::vect_t

◆ vectElt

using vectElt = vector<Element>

◆ enable_if_t

using enable_if_t = typename enable_if<B, T>::type

Constructor & Destructor Documentation

◆ TestOneMethod()

TestOneMethod ( function< RSimd(ASimd...)>  fsimd,
function< RScal(AScal...)>  fscal,
function< void(vector< vectElt > &)>  genInputs,
string  fname 
)
inline

Member Function Documentation

◆ evaluate_scalar_method() [1/3]

enable_if_t< is_all_same< Element, AScal... >::value &&std::is_convertible< Ret, Element >::value, void > evaluate_scalar_method ( function< Ret(AScal...)>  fscal)
inline

◆ evaluate_scalar_method() [2/3]

enable_if_t< is_all_same< vectElt, AScal... >::value, void > evaluate_scalar_method ( function< vectElt(AScal...)>  fscal)
inline

◆ evaluate_scalar_method() [3/3]

enable_if_t< is_all_same< vectElt, AScal... >::value, void > evaluate_scalar_method ( function< void(AScal...)>  fscal)
inline

◆ evaluate_simd_method() [1/2]

enable_if_t< is_all_same< vect_t, ASimd... >::value &&std::is_convertible< Ret, vect_t >::value, void > evaluate_simd_method ( function< Ret(ASimd...)>  fsimd,
array< vect_t, sizeof...(ASimd)> &  simd_in 
)
inline

◆ evaluate_simd_method() [2/2]

enable_if_t< is_all_same< vect_t, ASimd... >::value, void > evaluate_simd_method ( function< void(ASimd...)>  fsimd,
array< vect_t, sizeof...(ASimd)> &  simd_in 
)
inline

◆ getStatus()

bool getStatus ( ) const
inline

◆ getTestName()

string getTestName ( ) const
inline

◆ writeResultLine()

bool writeResultLine ( ) const
inline

◆ writeDebugData()

void writeDebugData ( ) const
inline

Field Documentation

◆ vect_size

constexpr size_t vect_size = Simd::vect_size
staticconstexpr

◆ nb_lref

size_t nb_lref
protected

◆ name

string name
protected

◆ inputs

vector<vectElt> inputs
protected

◆ outputs_simd

vector<vectElt> outputs_simd
protected

◆ outputs_scalar

vector<vectElt> outputs_scalar
protected

The documentation for this class was generated from the following file: