LMMS
Loading...
Searching...
No Matches
juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType > Struct Template Reference

#include <juce_fallback_SIMDNativeOps.h>

Classes

union  UnionType
union  UnionMaskType
struct  ScalarAdd
struct  ScalarSub
struct  ScalarMul
struct  ScalarMin
struct  ScalarMax
struct  ScalarAnd
struct  ScalarOr
struct  ScalarXor
struct  ScalarNot
struct  ScalarEq
struct  ScalarNeq
struct  ScalarGt
struct  ScalarGeq

Public Types

using MaskType = typename SIMDInternal::MaskTypeFor<ScalarType>::type

Static Public Member Functions

static forcedinline vSIMDType add (vSIMDType a, vSIMDType b) noexcept
static forcedinline vSIMDType sub (vSIMDType a, vSIMDType b) noexcept
static forcedinline vSIMDType mul (vSIMDType a, vSIMDType b) noexcept
static forcedinline vSIMDType bit_and (vSIMDType a, vSIMDType b) noexcept
static forcedinline vSIMDType bit_or (vSIMDType a, vSIMDType b) noexcept
static forcedinline vSIMDType bit_xor (vSIMDType a, vSIMDType b) noexcept
static forcedinline vSIMDType bit_notand (vSIMDType a, vSIMDType b) noexcept
static forcedinline vSIMDType min (vSIMDType a, vSIMDType b) noexcept
static forcedinline vSIMDType max (vSIMDType a, vSIMDType b) noexcept
static forcedinline vSIMDType equal (vSIMDType a, vSIMDType b) noexcept
static forcedinline vSIMDType notEqual (vSIMDType a, vSIMDType b) noexcept
static forcedinline vSIMDType greaterThan (vSIMDType a, vSIMDType b) noexcept
static forcedinline vSIMDType greaterThanOrEqual (vSIMDType a, vSIMDType b) noexcept
static forcedinline ScalarType get (vSIMDType v, size_t i) noexcept
static forcedinline vSIMDType set (vSIMDType v, size_t i, ScalarType s) noexcept
static forcedinline vSIMDType bit_not (vSIMDType av) noexcept
static forcedinline ScalarType sum (vSIMDType av) noexcept
static forcedinline vSIMDType truncate (vSIMDType av) noexcept
static forcedinline vSIMDType multiplyAdd (vSIMDType av, vSIMDType bv, vSIMDType cv) noexcept
static forcedinline bool allEqual (vSIMDType av, vSIMDType bv) noexcept
static forcedinline vSIMDType cmplxmul (vSIMDType av, vSIMDType bv) noexcept
template<typename Op>
static forcedinline vSIMDType apply (vSIMDType av, vSIMDType bv) noexcept
template<typename Op>
static forcedinline vSIMDType cmp (vSIMDType av, vSIMDType bv) noexcept
template<typename Op>
static forcedinline vSIMDType bitapply (vSIMDType av, vSIMDType bv) noexcept
static forcedinline vSIMDType expand (ScalarType s) noexcept
static forcedinline vSIMDType load (const ScalarType *a) noexcept
static forcedinline void store (vSIMDType av, ScalarType *dest) noexcept
template<unsigned int shuffle_idx>
static forcedinline vSIMDType shuffle (vSIMDType av) noexcept

Static Public Attributes

static constexpr size_t n = sizeof (vSIMDType) / sizeof (ScalarType)
static constexpr size_t mask = (sizeof (vSIMDType) / sizeof (ScalarType)) - 1
static constexpr size_t bits = SIMDInternal::Log2Helper<(int) n>::value

Detailed Description

template<typename ScalarType, typename vSIMDType>
struct juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >

Useful fallback routines to use if the native SIMD op is not supported. You should never need to use this directly. Use juce_SIMDRegister instead.

@tags{DSP}

Member Typedef Documentation

◆ MaskType

template<typename ScalarType, typename vSIMDType>
using juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::MaskType = typename SIMDInternal::MaskTypeFor<ScalarType>::type

Member Function Documentation

◆ add()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::add ( vSIMDType a,
vSIMDType b )
inlinestaticnoexcept

◆ allEqual()

template<typename ScalarType, typename vSIMDType>
forcedinline bool juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::allEqual ( vSIMDType av,
vSIMDType bv )
inlinestaticnoexcept

◆ apply()

template<typename ScalarType, typename vSIMDType>
template<typename Op>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::apply ( vSIMDType av,
vSIMDType bv )
inlinestaticnoexcept

◆ bit_and()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::bit_and ( vSIMDType a,
vSIMDType b )
inlinestaticnoexcept

◆ bit_not()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::bit_not ( vSIMDType av)
inlinestaticnoexcept

◆ bit_notand()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::bit_notand ( vSIMDType a,
vSIMDType b )
inlinestaticnoexcept

◆ bit_or()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::bit_or ( vSIMDType a,
vSIMDType b )
inlinestaticnoexcept

◆ bit_xor()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::bit_xor ( vSIMDType a,
vSIMDType b )
inlinestaticnoexcept

◆ bitapply()

template<typename ScalarType, typename vSIMDType>
template<typename Op>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::bitapply ( vSIMDType av,
vSIMDType bv )
inlinestaticnoexcept

◆ cmp()

template<typename ScalarType, typename vSIMDType>
template<typename Op>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::cmp ( vSIMDType av,
vSIMDType bv )
inlinestaticnoexcept

◆ cmplxmul()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::cmplxmul ( vSIMDType av,
vSIMDType bv )
inlinestaticnoexcept

◆ equal()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::equal ( vSIMDType a,
vSIMDType b )
inlinestaticnoexcept

◆ expand()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::expand ( ScalarType s)
inlinestaticnoexcept

◆ get()

template<typename ScalarType, typename vSIMDType>
forcedinline ScalarType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::get ( vSIMDType v,
size_t i )
inlinestaticnoexcept

◆ greaterThan()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::greaterThan ( vSIMDType a,
vSIMDType b )
inlinestaticnoexcept

◆ greaterThanOrEqual()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::greaterThanOrEqual ( vSIMDType a,
vSIMDType b )
inlinestaticnoexcept

◆ load()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::load ( const ScalarType * a)
inlinestaticnoexcept

◆ max()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::max ( vSIMDType a,
vSIMDType b )
inlinestaticnoexcept

◆ min()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::min ( vSIMDType a,
vSIMDType b )
inlinestaticnoexcept

◆ mul()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::mul ( vSIMDType a,
vSIMDType b )
inlinestaticnoexcept

◆ multiplyAdd()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::multiplyAdd ( vSIMDType av,
vSIMDType bv,
vSIMDType cv )
inlinestaticnoexcept

◆ notEqual()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::notEqual ( vSIMDType a,
vSIMDType b )
inlinestaticnoexcept

◆ set()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::set ( vSIMDType v,
size_t i,
ScalarType s )
inlinestaticnoexcept

◆ shuffle()

template<typename ScalarType, typename vSIMDType>
template<unsigned int shuffle_idx>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::shuffle ( vSIMDType av)
inlinestaticnoexcept

◆ store()

template<typename ScalarType, typename vSIMDType>
forcedinline void juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::store ( vSIMDType av,
ScalarType * dest )
inlinestaticnoexcept

◆ sub()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::sub ( vSIMDType a,
vSIMDType b )
inlinestaticnoexcept

◆ sum()

template<typename ScalarType, typename vSIMDType>
forcedinline ScalarType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::sum ( vSIMDType av)
inlinestaticnoexcept

◆ truncate()

template<typename ScalarType, typename vSIMDType>
forcedinline vSIMDType juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::truncate ( vSIMDType av)
inlinestaticnoexcept

Member Data Documentation

◆ bits

template<typename ScalarType, typename vSIMDType>
size_t juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::bits = SIMDInternal::Log2Helper<(int) n>::value
staticconstexpr

◆ mask

template<typename ScalarType, typename vSIMDType>
size_t juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::mask = (sizeof (vSIMDType) / sizeof (ScalarType)) - 1
staticconstexpr

◆ n

template<typename ScalarType, typename vSIMDType>
size_t juce::dsp::SIMDFallbackOps< ScalarType, vSIMDType >::n = sizeof (vSIMDType) / sizeof (ScalarType)
staticconstexpr

The documentation for this struct was generated from the following file: