FflasFfpack
|
#include "givaro/givinteger.h"
#include "givaro/givprint.h"
#include "fflas-ffpack/fflas-ffpack-config.h"
#include "fflas-ffpack/fflas/fflas_simd.h"
#include "fflas-ffpack/utils/args-parser.h"
#include "fflas-ffpack/utils/test-utils.h"
#include "fflas-ffpack/utils/align-allocator.h"
#include <array>
#include <vector>
#include <random>
#include <string>
#include <functional>
#include <limits>
#include <type_traits>
#include <algorithm>
Macros | |
#define | REGISTER_TYPE_NAME(type) template<> const char *TypeName<type>(){return #type;} |
#define | TEST_ONE_OP(name) btest &= test_op<simd> (simd::name, Scal::name, #name); |
Typedefs | |
typedef Givaro::Integer | integer |
Functions | |
template<typename... > | |
const char * | TypeName () |
REGISTER_TYPE_NAME (float) | |
REGISTER_TYPE_NAME (double) | |
REGISTER_TYPE_NAME (int16_t) | |
REGISTER_TYPE_NAME (int32_t) | |
REGISTER_TYPE_NAME (int64_t) | |
REGISTER_TYPE_NAME (uint16_t) | |
REGISTER_TYPE_NAME (uint32_t) | |
REGISTER_TYPE_NAME (uint64_t) | |
template<class Element , class Alloc > | |
enable_if< is_integral< Element >::value >::type | generate_random_vector (vector< Element, Alloc > &a) |
template<class Element , class Alloc > | |
enable_if< is_floating_point< Element >::value >::type | generate_random_vector (vector< Element, Alloc > &a) |
template<class Element > | |
enable_if< is_integral< Element >::value, bool >::type | check_eq (Element x, Element y) |
template<class Element > | |
enable_if< is_floating_point< Element >::value, bool >::type | check_eq (Element x, Element y) |
template<class Ret , class T > | |
Ret | eval_func_on_array (function< Ret()> f, array< T, 0 > arr) |
template<class Ret , class T , class... TArgs> | |
Ret | eval_func_on_array (function< Ret(T, TArgs...)> f, array< typename remove_reference< T >::type, sizeof...(TArgs)+1 > &arr) |
template<class Simd , class RScal , class... AScal, class RSimd , class... ASimd> | |
enable_if< sizeof...(AScal)==sizeof...(ASimd), bool >::type | test_op (RSimd(&FSimd)(ASimd...), RScal(&FScal)(AScal...), string fname) |
template<class simd , class Element > | |
enable_if< is_floating_point< Element >::value, bool >::type | test_impl () |
template<class simd , class Element > | |
enable_if< is_integral< Element >::value, bool >::type | test_impl () |
template<class Element > | |
enable_if< is_integral< Element >::value, bool >::type | test () |
template<class Element > | |
enable_if< is_floating_point< Element >::value, bool >::type | test () |
int | main (int argc, char *argv[]) |
#define REGISTER_TYPE_NAME | ( | type | ) | template<> const char *TypeName<type>(){return #type;} |
#define TEST_ONE_OP | ( | name | ) | btest &= test_op<simd> (simd::name, Scal::name, #name); |
typedef Givaro::Integer integer |
const char* TypeName | ( | ) |
REGISTER_TYPE_NAME | ( | float | ) |
REGISTER_TYPE_NAME | ( | double | ) |
REGISTER_TYPE_NAME | ( | int16_t | ) |
REGISTER_TYPE_NAME | ( | int32_t | ) |
REGISTER_TYPE_NAME | ( | int64_t | ) |
REGISTER_TYPE_NAME | ( | uint16_t | ) |
REGISTER_TYPE_NAME | ( | uint32_t | ) |
REGISTER_TYPE_NAME | ( | uint64_t | ) |
enable_if<is_integral<Element>::value>::type generate_random_vector | ( | vector< Element, Alloc > & | a | ) |
enable_if<is_floating_point<Element>::value>::type generate_random_vector | ( | vector< Element, Alloc > & | a | ) |
enable_if<is_integral<Element>::value, bool>::type check_eq | ( | Element | x, |
Element | y | ||
) |
enable_if<is_floating_point<Element>::value, bool>::type check_eq | ( | Element | x, |
Element | y | ||
) |
Ret eval_func_on_array | ( | function< Ret()> | f, |
array< T, 0 > | arr | ||
) |
Ret eval_func_on_array | ( | function< Ret(T, TArgs...)> | f, |
array< typename remove_reference< T >::type, sizeof...(TArgs)+1 > & | arr | ||
) |
enable_if<sizeof...(AScal) == sizeof...(ASimd), bool>::type test_op | ( | RSimd(&)(ASimd...) | FSimd, |
RScal(&)(AScal...) | FScal, | ||
string | fname | ||
) |
enable_if<is_floating_point<Element>::value, bool>::type test_impl | ( | ) |
enable_if<is_integral<Element>::value, bool>::type test_impl | ( | ) |
enable_if<is_integral<Element>::value, bool>::type test | ( | ) |
enable_if<is_floating_point<Element>::value, bool>::type test | ( | ) |
int main | ( | int | argc, |
char * | argv[] | ||
) |