34 template <
typename Scalar>
62template <
typename Type>
74 using MaskType =
typename SIMDInternal::MaskTypeFor<ElementType>::type;
80 using PrimitiveType =
typename SIMDInternal::PrimitiveType<ElementType>::type;
100 struct ElementAccess;
140 return {CmplxOps::load (
a)};
147 CmplxOps::store (value,
a);
156 return CmplxOps::get (value, idx);
180 return ElementAccess (*
this, idx);
324 return { CmplxOps::muladd (
a.value,
b.value,
c.value) };
371 return vMaskType::fromNative (u.out);
394 u.in = CmplxSIMDOps<MaskType>::expand (a);
403 #include "juce_SIMDRegister_Impl.h"
void add(const ElementType &newElement)
void set(int indexToChange, ParameterType newValue)
static SIMDRegister JUCE_VECTOR_CALLTYPE truncate(SIMDRegister a) noexcept
SIMDRegister &JUCE_VECTOR_CALLTYPE operator*=(SIMDRegister v) noexcept
static SIMDRegister JUCE_VECTOR_CALLTYPE expand(ElementType s) noexcept
typename NativeOps::vSIMDType vSIMDType
ElementType sum() const noexcept
void JUCE_VECTOR_CALLTYPE copyToRawArray(ElementType *a) const noexcept
SIMDRegister &JUCE_VECTOR_CALLTYPE operator=(ElementType s) noexcept
static SIMDRegister JUCE_VECTOR_CALLTYPE max(SIMDRegister a, SIMDRegister b) noexcept
static ElementType * getNextSIMDAlignedPtr(ElementType *ptr) noexcept
static vMaskType JUCE_VECTOR_CALLTYPE greaterThanOrEqual(SIMDRegister a, SIMDRegister b) noexcept
static vMaskType JUCE_VECTOR_CALLTYPE greaterThan(SIMDRegister a, SIMDRegister b) noexcept
bool JUCE_VECTOR_CALLTYPE operator!=(SIMDRegister other) const noexcept
static bool isSIMDAligned(const ElementType *ptr) noexcept
static SIMDRegister JUCE_VECTOR_CALLTYPE abs(SIMDRegister a) noexcept
SIMDRegister JUCE_VECTOR_CALLTYPE operator|(vMaskType v) const noexcept
SIMDRegister< MaskType > vMaskType
static constexpr size_t SIMDRegisterSize
SIMDRegister &JUCE_VECTOR_CALLTYPE operator^=(vMaskType v) noexcept
static vMaskType JUCE_VECTOR_CALLTYPE equal(SIMDRegister a, SIMDRegister b) noexcept
ElementType JUCE_VECTOR_CALLTYPE get(size_t idx) const noexcept
SIMDRegister &JUCE_VECTOR_CALLTYPE operator-=(SIMDRegister v) noexcept
SIMDRegister &JUCE_VECTOR_CALLTYPE operator&=(vMaskType v) noexcept
static SIMDRegister JUCE_VECTOR_CALLTYPE multiplyAdd(SIMDRegister a, const SIMDRegister b, SIMDRegister c) noexcept
static constexpr size_t size() noexcept
static vMaskType JUCE_VECTOR_CALLTYPE lessThan(SIMDRegister a, SIMDRegister b) noexcept
SIMDRegister() noexcept=default
static SIMDRegister JUCE_VECTOR_CALLTYPE min(SIMDRegister a, SIMDRegister b) noexcept
static constexpr size_t SIMDNumElements
typename vMaskType::vSIMDType vMaskSIMDType
~SIMDRegister() noexcept=default
void JUCE_VECTOR_CALLTYPE set(size_t idx, ElementType v) noexcept
SIMDRegister &JUCE_VECTOR_CALLTYPE operator+=(SIMDRegister v) noexcept
static vMaskType JUCE_VECTOR_CALLTYPE lessThanOrEqual(SIMDRegister a, SIMDRegister b) noexcept
SIMDRegister JUCE_VECTOR_CALLTYPE operator~() const noexcept
SIMDRegister JUCE_VECTOR_CALLTYPE operator^(vMaskType v) const noexcept
SIMDRegister(Type s) noexcept
static SIMDRegister JUCE_VECTOR_CALLTYPE fromNative(vSIMDType a) noexcept
typename SIMDInternal::MaskTypeFor< ElementType >::type MaskType
typename SIMDInternal::PrimitiveType< ElementType >::type PrimitiveType
SIMDRegister &JUCE_VECTOR_CALLTYPE operator|=(vMaskType v) noexcept
SIMDRegister JUCE_VECTOR_CALLTYPE operator&(vMaskType v) const noexcept
static SIMDRegister JUCE_VECTOR_CALLTYPE fromRawArray(const ElementType *a) noexcept
SIMDRegister JUCE_VECTOR_CALLTYPE operator+(SIMDRegister v) const noexcept
ElementType JUCE_VECTOR_CALLTYPE operator[](size_t idx) const noexcept
static vMaskType JUCE_VECTOR_CALLTYPE notEqual(SIMDRegister a, SIMDRegister b) noexcept
SIMDRegister JUCE_VECTOR_CALLTYPE operator*(SIMDRegister v) const noexcept
SIMDRegister JUCE_VECTOR_CALLTYPE operator-(SIMDRegister v) const noexcept
bool JUCE_VECTOR_CALLTYPE operator==(SIMDRegister other) const noexcept