Loading...
Searching...
No Matches
Static Public Member Functions | List of all members
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...

#include <juce_FloatVectorOperations.h>

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 destination values.
 
static void JUCE_CALLTYPE add (FloatType *dest, const FloatType *src, FloatType amount, CountType numValues) noexcept
 Adds a fixed value to each source value and stores it in the destination array.
 
static void JUCE_CALLTYPE add (FloatType *dest, const FloatType *src, CountType numValues) noexcept
 Adds the source values to the destination values.
 
static void JUCE_CALLTYPE add (FloatType *dest, const FloatType *src1, const FloatType *src2, CountType num) noexcept
 Adds each source1 value to the corresponding source2 value and stores the result in the destination array.
 
static void JUCE_CALLTYPE subtract (FloatType *dest, const FloatType *src, CountType numValues) noexcept
 Subtracts the source values from the destination values.
 
static void JUCE_CALLTYPE subtract (FloatType *dest, const FloatType *src1, const FloatType *src2, CountType num) noexcept
 Subtracts each source2 value from the corresponding source1 value and stores the result in the destination array.
 
static void JUCE_CALLTYPE addWithMultiply (FloatType *dest, const FloatType *src, FloatType multiplier, CountType numValues) noexcept
 Multiplies each source value by the given multiplier, then adds it to the destination value.
 
static void JUCE_CALLTYPE addWithMultiply (FloatType *dest, const FloatType *src1, const FloatType *src2, CountType num) noexcept
 Multiplies each source1 value by the corresponding source2 value, then adds it to the destination value.
 
static void JUCE_CALLTYPE subtractWithMultiply (FloatType *dest, const FloatType *src, FloatType multiplier, CountType numValues) noexcept
 Multiplies each source value by the given multiplier, then subtracts it to the destination value.
 
static void JUCE_CALLTYPE subtractWithMultiply (FloatType *dest, const FloatType *src1, const FloatType *src2, CountType num) noexcept
 Multiplies each source1 value by the corresponding source2 value, then subtracts it to the destination value.
 
static void JUCE_CALLTYPE multiply (FloatType *dest, const FloatType *src, CountType numValues) noexcept
 Multiplies the destination values by the source values.
 
static void JUCE_CALLTYPE multiply (FloatType *dest, const FloatType *src1, const FloatType *src2, CountType numValues) noexcept
 Multiplies each source1 value by the corresponding source2 value, then stores it in the destination array.
 
static void JUCE_CALLTYPE multiply (FloatType *dest, FloatType multiplier, CountType numValues) noexcept
 Multiplies each of the destination values by a fixed multiplier.
 
static void JUCE_CALLTYPE multiply (FloatType *dest, const FloatType *src, FloatType multiplier, CountType num) noexcept
 Multiplies each of the source values by a fixed multiplier and stores the result in the destination array.
 
static void JUCE_CALLTYPE negate (FloatType *dest, const FloatType *src, CountType numValues) noexcept
 Copies a source vector to a destination, negating each value.
 
static void JUCE_CALLTYPE abs (FloatType *dest, const FloatType *src, CountType numValues) noexcept
 Copies a source vector to a destination, 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 source 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 source1 and source2 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 source 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 source1 and source2 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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 destination values.

◆ 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 source value and stores it in the destination array.

◆ 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 the source values to the destination values.

◆ 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 source1 value to the corresponding source2 value and stores the result in the destination array.

◆ 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 source values from the destination values.

◆ 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 source2 value from the corresponding source1 value and stores the result in the destination array.

◆ 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 source value by the given multiplier, then adds it to the destination value.

◆ 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 source1 value by the corresponding source2 value, then adds it to the destination value.

◆ 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 source value by the given multiplier, then subtracts it to the destination value.

◆ 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 source1 value by the corresponding source2 value, then subtracts it to the destination value.

◆ 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 destination values by the source values.

◆ 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 source1 value by the corresponding source2 value, then stores it in the destination array.

◆ 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 destination values by a fixed multiplier.

◆ 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 source values by a fixed multiplier and stores the result in the destination array.

◆ negate()

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

Copies a source vector to a destination, negating each value.

◆ abs()

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

Copies a source vector to a destination, taking the absolute of each value.

◆ 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 source array and the given comp value.

◆ 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 source1 and source2 values.

◆ 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 source array and the given comp value.

◆ 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 source1 and source2 values.

◆ 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.

◆ 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.

◆ 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.

◆ 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.


The documentation for this struct was generated from the following file:
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram