Loading...
Searching...
No Matches
defaults.hh File Reference
Common » Vectorization » Abstraction Developer's Interface

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()
template<class Mask>
bool | Dune::Simd::Overloads::anyFalse (ADLTag< 0 >, const Mask &mask)
| implements Simd::anyFalse()
template<class Mask>
bool | Dune::Simd::Overloads::allFalse (ADLTag< 0 >, const Mask &mask)
| implements Simd::allFalse()
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.