Dune Core Modules (2.10.0)
defaults.hh File Reference
Default implementations for SIMD Implementations. More...
#include <algorithm>
#include <cstddef>
#include <type_traits>
#include <dune/common/rangeutilities.hh>
#include <dune/common/simd/base.hh>
#include <dune/common/simd/interface.hh>
#include <dune/common/typelist.hh>
#include <dune/common/typetraits.hh>
Go to the source code of this file.
Namespaces | |
namespace | Dune |
Dune namespace. | |
namespace | Dune::Simd |
Namespace for vectorization interface functions used by library developers. | |
namespace | Dune::Simd::Overloads |
Namespace for the overloads and specializations that make up a SIMD implementation. | |
Functions | |
Overloadable and default functions | |
This group contains functions that you, as an abstraction developer, must implement. All functions that are deleted must be provided, functions that have a default implementation may be left unimplemented if the default behaviour is satisfactory. | |
template<class V > | |
decltype(auto) | Dune::Simd::Overloads::lane (ADLTag< 0 >, std::size_t l, V v)=delete |
implements Simd::lane() | |
template<class V > | |
constexpr V | Dune::Simd::Overloads::implCast (ADLTag< 0 >, MetaType< V >, const V &u) |
implements Simd::implCast<V>(V) | |
template<class V , class U > | |
constexpr V | Dune::Simd::Overloads::implCast (ADLTag< 0 >, MetaType< V >, const U &u) |
implements Simd::implCast<V>(U) | |
template<class V , class S > | |
auto | Dune::Simd::Overloads::broadcast (ADLTag< 0 >, MetaType< V >, S s) |
implements Simd::broadcast<V>() | |
template<class V > | |
V | Dune::Simd::Overloads::cond (ADLTag< 0 >, const Mask< V > &mask, const V &ifTrue, const V &ifFalse)=delete |
implements Simd::cond() | |
template<class V > | |
auto | Dune::Simd::Overloads::max (ADLTag< 0 >, const V &v1, const V &v2) |
implements binary Simd::max() | |
template<class V > | |
auto | Dune::Simd::Overloads::min (ADLTag< 0 >, const V &v1, const V &v2) |
implements binary Simd::min() | |
template<class Mask > | |
bool | Dune::Simd::Overloads::anyTrue (ADLTag< 0 >, const Mask &mask)=delete |
implements Simd::anyTrue() | |
template<class Mask > | |
bool | Dune::Simd::Overloads::allTrue (ADLTag< 0 >, const Mask &mask) |
implements Simd::allTrue() More... | |
template<class Mask > | |
bool | Dune::Simd::Overloads::anyFalse (ADLTag< 0 >, const Mask &mask) |
implements Simd::anyFalse() More... | |
template<class Mask > | |
bool | Dune::Simd::Overloads::allFalse (ADLTag< 0 >, const Mask &mask) |
implements Simd::allFalse() More... | |
template<class V > | |
auto | Dune::Simd::Overloads::max (ADLTag< 0 >, const V &v) |
implements Simd::maxValue() | |
template<class V > | |
auto | Dune::Simd::Overloads::min (ADLTag< 0 >, const V &v) |
implements Simd::minValue() | |
template<class V > | |
Mask< V > | Dune::Simd::Overloads::mask (ADLTag< 0, std::is_same< V, Mask< V > >::value >, const V &v) |
implements Simd::mask() | |
template<class V > | |
auto | Dune::Simd::Overloads::mask (ADLTag< 0, !std::is_same< V, Mask< V > >::value >, const V &v) |
implements Simd::mask() | |
template<class V1 , class V2 > | |
auto | Dune::Simd::Overloads::maskOr (ADLTag< 0 >, const V1 &v1, const V2 &v2) |
implements Simd::maskOr() | |
template<class V1 , class V2 > | |
auto | Dune::Simd::Overloads::maskAnd (ADLTag< 0 >, const V1 &v1, const V2 &v2) |
implements Simd::maskAnd() | |
Detailed Description
Default implementations for SIMD Implementations.
This file provides default overloads for SIMD implementation functions, and deleted placeholders where there are no default implementations.
This file should never be included by users of the SIMD abstraction. Include <dune/common/simd/simd.hh> instead.
|
Legal Statements / Impressum |
Hosted by TU Dresden |
generated with Hugo v0.111.3
(Dec 26, 23:30, 2024)