Go to the documentation of this file. 1 #ifndef DUNE_COMMON_SIMD_DEFAULTS_HH
2 #define DUNE_COMMON_SIMD_DEFAULTS_HH
17 #include <type_traits>
46 decltype(
auto)
lane(ADLTag<0>, std::
size_t l, V v) = delete;
56 template<
class V,
class U>
66 template<
class V,
class S>
75 const V &ifTrue,
const V &ifFalse) =
delete;
167 template<
class V1,
class V2>
174 template<
class V1,
class V2>
186 #endif // DUNE_COMMON_SIMD_DEFAULTS_HH
bool anyTrue(ADLTag< 5 >, const AlignedNumber< bool, align > &mask)
Definition: debugalign.hh:530
auto maskOr(ADLTag< 0 >, const V1 &v1, const V2 &v2)
implements Simd::maskOr()
Definition: defaults.hh:168
auto min(ADLTag< 0 >, const V &v)
implements Simd::minValue()
Definition: defaults.hh:140
constexpr std::size_t lanes()
Number of lanes in a SIMD type.
Definition: simd/interface.hh:303
bool anyFalse(ADLTag< 0 >, const Mask &mask)
implements Simd::anyFalse()
Definition: defaults.hh:112
auto max(ADLTag< 0 >, const V &v)
implements Simd::maxValue()
Definition: defaults.hh:129
auto min(ADLTag< 0 >, const V &v1, const V &v2)
implements binary Simd::min()
Definition: defaults.hh:87
bool anyTrue(const Mask &mask)
Whether any entry is true
Definition: simd/interface.hh:427
A type that refers to another type.
Definition: typelist.hh:33
Rebind< bool, V > Mask
Mask type type of some SIMD type.
Definition: simd/interface.hh:287
auto broadcast(ADLTag< 0 >, MetaType< V >, S s)
implements Simd::broadcast<V>()
Definition: defaults.hh:67
static StaticIntegralRange< T, to, from > range(std::integral_constant< T, from >, std::integral_constant< T, to >) noexcept
Definition: rangeutilities.hh:297
auto mask(const V &v)
Convert to mask, analogue of bool(s) for scalars.
Definition: simd/interface.hh:487
bool allFalse(ADLTag< 0 >, const Mask &mask)
implements Simd::allFalse()
Definition: defaults.hh:122
Traits for type conversions and type information.
constexpr V implCast(ADLTag< 0 >, MetaType< V >, const V &u)
implements Simd::implCast<V>(V)
Definition: defaults.hh:50
typename AutonomousValueType< T >::type AutonomousValue
Type free of internal references that T can be converted to.
Definition: typetraits.hh:639
auto maskAnd(ADLTag< 0 >, const V1 &v1, const V2 &v2)
implements Simd::maskAnd()
Definition: defaults.hh:175
const AlignedNumber< T, align > & cond(ADLTag< 5 >, AlignedNumber< bool, align > mask, const AlignedNumber< T, align > &ifTrue, const AlignedNumber< T, align > &ifFalse)
Definition: debugalign.hh:522
Mask< V > mask(ADLTag< 0, std::is_same< V, Mask< V > >::value >, const V &v)
implements Simd::mask()
Definition: defaults.hh:151
User interface of the SIMD abstraction.
Tag used to force late-binding lookup in Dune::Simd::Overloads.
Definition: base.hh:180
decltype(auto) lane(std::size_t l, V &&v)
Extract an element of a SIMD type.
Definition: simd/interface.hh:322
bool allTrue(ADLTag< 0 >, const Mask &mask)
implements Simd::allTrue()
Definition: defaults.hh:102
Basic definitions for SIMD Implementations.
T & lane(ADLTag< 5 >, std::size_t l, AlignedNumber< T, align > &v)
Definition: debugalign.hh:507
auto max(ADLTag< 0 >, const V &v1, const V &v2)
implements binary Simd::max()
Definition: defaults.hh:79
typename Overloads::ScalarType< std::decay_t< V > >::type Scalar
Element type of some SIMD type.
Definition: simd/interface.hh:233
Utilities for reduction like operations on ranges.
Dune namespace.
Definition: alignedallocator.hh:13