Loading...
Searching...
No Matches
FloatVectorOperationsBase< FloatType, CountType > Struct Template Reference

A collection of simple vector operations on arrays of floating point numbers, accelerated with SIMD instructions where possible, usually accessed from the FloatVectorOperations class. More...

Static Public Member Functions

static void JUCE_CALLTYPE clear (FloatType *dest, CountType numValues) noexcept
 Clears a vector of floating point numbers.
 
static void JUCE_CALLTYPE fill (FloatType *dest, FloatType valueToFill, CountType numValues) noexcept
 Copies a repeated value into a vector of floating point numbers.
 
static void JUCE_CALLTYPE copy (FloatType *dest, const FloatType *src, CountType numValues) noexcept
 Copies a vector of floating point numbers.
 
static void JUCE_CALLTYPE copyWithMultiply (FloatType *dest, const FloatType *src, FloatType multiplier, CountType numValues) noexcept
 Copies a vector of floating point numbers, multiplying each value by a given multiplier.
 
static void JUCE_CALLTYPE add (FloatType *dest, FloatType amountToAdd, CountType numValues) noexcept
 Adds a fixed value to the dest values.
 
static void JUCE_CALLTYPE add (FloatType *dest, const FloatType *src, FloatType amount, CountType numValues) noexcept
 Adds a fixed value to each src value and stores it in the dest array.
 
static void JUCE_CALLTYPE add (FloatType *dest, const FloatType *src, CountType numValues) noexcept
 Adds each src value to the corresponding dest value.
 
static void JUCE_CALLTYPE add (FloatType *dest, const FloatType *src1, const FloatType *src2, CountType num) noexcept
 Adds each src1 value to the corresponding src2 value and stores the result in the dest array.
 
static void JUCE_CALLTYPE subtract (FloatType *dest, const FloatType *src, CountType numValues) noexcept
 Subtracts the src values from the dest values.
 
static void JUCE_CALLTYPE subtract (FloatType *dest, const FloatType *src1, const FloatType *src2, CountType num) noexcept
 Subtracts each src2 value from the corresponding src1 value and stores the result in the dest array.
 
static void JUCE_CALLTYPE addWithMultiply (FloatType *dest, const FloatType *src, FloatType multiplier, CountType numValues) noexcept
 Multiplies each src value by the given multiplier, then adds it to the dest value.
 
static void JUCE_CALLTYPE addWithMultiply (FloatType *dest, const FloatType *src1, const FloatType *src2, CountType num) noexcept
 Multiplies each src1 value by the corresponding src2 value, then adds it to the dest value.
 
static void JUCE_CALLTYPE subtractWithMultiply (FloatType *dest, const FloatType *src, FloatType multiplier, CountType numValues) noexcept
 Multiplies each src value by the given multiplier, then subtracts it from the dest value.
 
static void JUCE_CALLTYPE subtractWithMultiply (FloatType *dest, const FloatType *src1, const FloatType *src2, CountType num) noexcept
 Multiplies each src1 value by the corresponding src2 value, then subtracts it from the dest value.
 
static void JUCE_CALLTYPE multiply (FloatType *dest, const FloatType *src, CountType numValues) noexcept
 Multiplies the dest values by the src values.
 
static void JUCE_CALLTYPE multiply (FloatType *dest, const FloatType *src1, const FloatType *src2, CountType numValues) noexcept
 Multiplies each src1 value by the corresponding src2 value, then stores it in the dest array.
 
static void JUCE_CALLTYPE multiply (FloatType *dest, FloatType multiplier, CountType numValues) noexcept
 Multiplies each of the dest values by a fixed multiplier.
 
static void JUCE_CALLTYPE multiply (FloatType *dest, const FloatType *src, FloatType multiplier, CountType num) noexcept
 Multiplies each of the src values by a fixed multiplier and stores the result in the dest array.
 
static void JUCE_CALLTYPE negate (FloatType *dest, const FloatType *src, CountType numValues) noexcept
 Copies the src vector to dest, negating each value.
 
static void JUCE_CALLTYPE abs (FloatType *dest, const FloatType *src, CountType numValues) noexcept
 Copies the src vector to dest, taking the absolute of each value.
 
static void JUCE_CALLTYPE min (FloatType *dest, const FloatType *src, FloatType comp, CountType num) noexcept
 Each element of dest will be the minimum of the corresponding element of the src array and the given comp value.
 
static void JUCE_CALLTYPE min (FloatType *dest, const FloatType *src1, const FloatType *src2, CountType num) noexcept
 Each element of dest will be the minimum of the corresponding src1 and src2 values.
 
static void JUCE_CALLTYPE max (FloatType *dest, const FloatType *src, FloatType comp, CountType num) noexcept
 Each element of dest will be the maximum of the corresponding element of the src array and the given comp value.
 
static void JUCE_CALLTYPE max (FloatType *dest, const FloatType *src1, const FloatType *src2, CountType num) noexcept
 Each element of dest will be the maximum of the corresponding src1 and src2 values.
 
static void JUCE_CALLTYPE clip (FloatType *dest, const FloatType *src, FloatType low, FloatType high, CountType num) noexcept
 Each element of dest is calculated by hard clipping the corresponding src element so that it is in the range specified by the arguments low and high.
 
static Range< FloatType > JUCE_CALLTYPE findMinAndMax (const FloatType *src, CountType numValues) noexcept
 Finds the minimum and maximum values in the given array.
 
static FloatType JUCE_CALLTYPE findMinimum (const FloatType *src, CountType numValues) noexcept
 Finds the minimum value in the given array.
 
static FloatType JUCE_CALLTYPE findMaximum (const FloatType *src, CountType numValues) noexcept
 Finds the maximum value in the given array.
 

Detailed Description

template<typename FloatType, typename CountType>
struct FloatVectorOperationsBase< FloatType, CountType >

A collection of simple vector operations on arrays of floating point numbers, accelerated with SIMD instructions where possible, usually accessed from the FloatVectorOperations class.

float data[64];
// The following two function calls are equivalent:
FloatVectorOperations::clear (data, 64);
static void JUCE_CALLTYPE clear(FloatType *dest, CountType numValues) noexcept
Clears a vector of floating point numbers.
See also
FloatVectorOperations

Member Function Documentation

◆ clear()

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::clear ( FloatType * dest,
CountType numValues )
staticnoexcept

Clears a vector of floating point numbers.

References JUCE_CALLTYPE.

◆ fill()

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::fill ( FloatType * dest,
FloatType valueToFill,
CountType numValues )
staticnoexcept

Copies a repeated value into a vector of floating point numbers.

References JUCE_CALLTYPE.

◆ copy()

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::copy ( FloatType * dest,
const FloatType * src,
CountType numValues )
staticnoexcept

Copies a vector of floating point numbers.

References JUCE_CALLTYPE.

◆ copyWithMultiply()

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::copyWithMultiply ( FloatType * dest,
const FloatType * src,
FloatType multiplier,
CountType numValues )
staticnoexcept

Copies a vector of floating point numbers, multiplying each value by a given multiplier.

References JUCE_CALLTYPE.

◆ add() [1/4]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::add ( FloatType * dest,
FloatType amountToAdd,
CountType numValues )
staticnoexcept

Adds a fixed value to the dest values.

References JUCE_CALLTYPE.

◆ add() [2/4]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::add ( FloatType * dest,
const FloatType * src,
FloatType amount,
CountType numValues )
staticnoexcept

Adds a fixed value to each src value and stores it in the dest array.

References JUCE_CALLTYPE.

◆ add() [3/4]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::add ( FloatType * dest,
const FloatType * src,
CountType numValues )
staticnoexcept

Adds each src value to the corresponding dest value.

References JUCE_CALLTYPE.

◆ add() [4/4]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::add ( FloatType * dest,
const FloatType * src1,
const FloatType * src2,
CountType num )
staticnoexcept

Adds each src1 value to the corresponding src2 value and stores the result in the dest array.

References JUCE_CALLTYPE.

◆ subtract() [1/2]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::subtract ( FloatType * dest,
const FloatType * src,
CountType numValues )
staticnoexcept

Subtracts the src values from the dest values.

References JUCE_CALLTYPE.

◆ subtract() [2/2]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::subtract ( FloatType * dest,
const FloatType * src1,
const FloatType * src2,
CountType num )
staticnoexcept

Subtracts each src2 value from the corresponding src1 value and stores the result in the dest array.

References JUCE_CALLTYPE.

◆ addWithMultiply() [1/2]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::addWithMultiply ( FloatType * dest,
const FloatType * src,
FloatType multiplier,
CountType numValues )
staticnoexcept

Multiplies each src value by the given multiplier, then adds it to the dest value.

References JUCE_CALLTYPE.

◆ addWithMultiply() [2/2]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::addWithMultiply ( FloatType * dest,
const FloatType * src1,
const FloatType * src2,
CountType num )
staticnoexcept

Multiplies each src1 value by the corresponding src2 value, then adds it to the dest value.

References JUCE_CALLTYPE.

◆ subtractWithMultiply() [1/2]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::subtractWithMultiply ( FloatType * dest,
const FloatType * src,
FloatType multiplier,
CountType numValues )
staticnoexcept

Multiplies each src value by the given multiplier, then subtracts it from the dest value.

References JUCE_CALLTYPE.

◆ subtractWithMultiply() [2/2]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::subtractWithMultiply ( FloatType * dest,
const FloatType * src1,
const FloatType * src2,
CountType num )
staticnoexcept

Multiplies each src1 value by the corresponding src2 value, then subtracts it from the dest value.

References JUCE_CALLTYPE.

◆ multiply() [1/4]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::multiply ( FloatType * dest,
const FloatType * src,
CountType numValues )
staticnoexcept

Multiplies the dest values by the src values.

References JUCE_CALLTYPE.

◆ multiply() [2/4]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::multiply ( FloatType * dest,
const FloatType * src1,
const FloatType * src2,
CountType numValues )
staticnoexcept

Multiplies each src1 value by the corresponding src2 value, then stores it in the dest array.

References JUCE_CALLTYPE.

◆ multiply() [3/4]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::multiply ( FloatType * dest,
FloatType multiplier,
CountType numValues )
staticnoexcept

Multiplies each of the dest values by a fixed multiplier.

References JUCE_CALLTYPE.

◆ multiply() [4/4]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::multiply ( FloatType * dest,
const FloatType * src,
FloatType multiplier,
CountType num )
staticnoexcept

Multiplies each of the src values by a fixed multiplier and stores the result in the dest array.

References JUCE_CALLTYPE.

◆ negate()

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::negate ( FloatType * dest,
const FloatType * src,
CountType numValues )
staticnoexcept

Copies the src vector to dest, negating each value.

References JUCE_CALLTYPE.

◆ abs()

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::abs ( FloatType * dest,
const FloatType * src,
CountType numValues )
staticnoexcept

Copies the src vector to dest, taking the absolute of each value.

References JUCE_CALLTYPE.

◆ min() [1/2]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::min ( FloatType * dest,
const FloatType * src,
FloatType comp,
CountType num )
staticnoexcept

Each element of dest will be the minimum of the corresponding element of the src array and the given comp value.

References JUCE_CALLTYPE.

◆ min() [2/2]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::min ( FloatType * dest,
const FloatType * src1,
const FloatType * src2,
CountType num )
staticnoexcept

Each element of dest will be the minimum of the corresponding src1 and src2 values.

References JUCE_CALLTYPE.

◆ max() [1/2]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::max ( FloatType * dest,
const FloatType * src,
FloatType comp,
CountType num )
staticnoexcept

Each element of dest will be the maximum of the corresponding element of the src array and the given comp value.

References JUCE_CALLTYPE.

◆ max() [2/2]

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::max ( FloatType * dest,
const FloatType * src1,
const FloatType * src2,
CountType num )
staticnoexcept

Each element of dest will be the maximum of the corresponding src1 and src2 values.

References JUCE_CALLTYPE.

◆ clip()

template<typename FloatType, typename CountType>
static void JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::clip ( FloatType * dest,
const FloatType * src,
FloatType low,
FloatType high,
CountType num )
staticnoexcept

Each element of dest is calculated by hard clipping the corresponding src element so that it is in the range specified by the arguments low and high.

References JUCE_CALLTYPE.

◆ findMinAndMax()

template<typename FloatType, typename CountType>
static Range< FloatType > JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::findMinAndMax ( const FloatType * src,
CountType numValues )
staticnoexcept

Finds the minimum and maximum values in the given array.

References JUCE_CALLTYPE.

◆ findMinimum()

template<typename FloatType, typename CountType>
static FloatType JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::findMinimum ( const FloatType * src,
CountType numValues )
staticnoexcept

Finds the minimum value in the given array.

References JUCE_CALLTYPE.

◆ findMaximum()

template<typename FloatType, typename CountType>
static FloatType JUCE_CALLTYPE FloatVectorOperationsBase< FloatType, CountType >::findMaximum ( const FloatType * src,
CountType numValues )
staticnoexcept

Finds the maximum value in the given array.

References JUCE_CALLTYPE.

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram