dune-common 2.9.0
|
Common tests for simd abstraction implementations. More...
#include <algorithm>
#include <cstddef>
#include <iostream>
#include <sstream>
#include <string>
#include <type_traits>
#include <typeindex>
#include <typeinfo>
#include <unordered_set>
#include <utility>
#include <dune/common/classname.hh>
#include <dune/common/hybridutilities.hh>
#include <dune/common/rangeutilities.hh>
#include <dune/common/simd/io.hh>
#include <dune/common/simd/loop.hh>
#include <dune/common/simd/simd.hh>
#include <dune/common/std/type_traits.hh>
#include <dune/common/typelist.hh>
#include <dune/common/typetraits.hh>
Go to the source code of this file.
Classes | |
struct | Dune::Simd::EndMark |
final element marker for RebindList More... | |
class | Dune::Simd::UnitTest |
Namespaces | |
namespace | Dune |
Dune namespace. | |
namespace | Dune::Simd |
Namespace for vectorization interface functions used by library developers. | |
Macros | |
#define | DUNE_SIMD_CHECK(expr) ((expr) ? void() : complain(__FILE__, __LINE__, __func__, #expr)) |
#define | DUNE_SIMD_CHECK_OP(expr) |
#define | DUNE_SIMD_POSTFIX_OP(NAME, SYMBOL) |
#define | DUNE_SIMD_PREFIX_OP(NAME, SYMBOL) |
#define | DUNE_SIMD_OPNAME (className<Op(V)>()) |
#define | DUNE_SIMD_INFIX_OP(NAME, SYMBOL) |
#define | DUNE_SIMD_ASSIGN_OP(NAME, SYMBOL) |
#define | DUNE_SIMD_REPL_OP(NAME, REPLFN, SYMBOL) |
#define | DUNE_SIMD_OPNAME (className<OpInfixComma(T1, T2)>()) |
#define | DUNE_SIMD_OPNAME (className<Op(V1, V2)>()) |
#define | DUNE_SIMD_OPNAME (className<Op(V1, T2)>()) |
#define | DUNE_SIMD_OPNAME (className<Op(V1, T2)>()) |
#define | DUNE_SIMD_OPNAME (className<Op(V1, P2)>()) |
#define | DUNE_SIMD_DO(M1, M2, M3, V1, V2, V3, NAME) |
Typedefs | |
template<class... Types> | |
using | Dune::Simd::RebindList = typename Impl::RemoveEnd< EndMark, TypeList< Types... > >::type |
A list of types with the final element removed. | |
template<class T > | |
using | Dune::Simd::IsLoop = typename Impl::IsLoop< T >::type |
check whether a type is an instance of LoopSIMD | |
Common tests for simd abstraction implementations.
This file is an interface header and may be included without restrictions.
#define DUNE_SIMD_ASSIGN_OP | ( | NAME, | |
SYMBOL | |||
) |
#define DUNE_SIMD_CHECK | ( | expr | ) | ((expr) ? void() : complain(__FILE__, __LINE__, __func__, #expr)) |
#define DUNE_SIMD_CHECK_OP | ( | expr | ) |
#define DUNE_SIMD_DO | ( | M1, | |
M2, | |||
M3, | |||
V1, | |||
V2, | |||
V3, | |||
NAME | |||
) |
#define DUNE_SIMD_INFIX_OP | ( | NAME, | |
SYMBOL | |||
) |
#define DUNE_SIMD_OPNAME (className<Op(V)>()) |
#define DUNE_SIMD_OPNAME (className<OpInfixComma(T1, T2)>()) |
#define DUNE_SIMD_OPNAME (className<Op(V1, V2)>()) |
#define DUNE_SIMD_OPNAME (className<Op(V1, T2)>()) |
#define DUNE_SIMD_OPNAME (className<Op(V1, T2)>()) |
#define DUNE_SIMD_OPNAME (className<Op(V1, P2)>()) |
#define DUNE_SIMD_POSTFIX_OP | ( | NAME, | |
SYMBOL | |||
) |
#define DUNE_SIMD_PREFIX_OP | ( | NAME, | |
SYMBOL | |||
) |
#define DUNE_SIMD_REPL_OP | ( | NAME, | |
REPLFN, | |||
SYMBOL | |||
) |