JUCE v8.0.9
JUCE API
 
Loading...
Searching...
No Matches
juce::FloatVectorOperations Class Reference

A collection of simple vector operations on arrays of floating point numbers, accelerated with SIMD instructions where possible and providing all methods from FloatVectorOperationsBase. More...

#include <juce_FloatVectorOperations.h>

Inheritance diagram for juce::FloatVectorOperations:
Collaboration diagram for juce::FloatVectorOperations:

Static Public Member Functions

static bool areDenormalsDisabled () noexcept
 This method returns true if denormals are currently disabled.
 
static void convertFixedToFloat (float *dest, const int *src, float multiplier, int num) noexcept
 
static void convertFixedToFloat (float *dest, const int *src, float multiplier, size_t num) noexcept
 
static void disableDenormalisedNumberSupport (bool shouldDisable=true) noexcept
 On Intel CPUs, this method enables the SSE flush-to-zero and denormalised-are-zero modes.
 
static void enableFlushToZeroMode (bool shouldEnable) noexcept
 This method enables or disables the SSE/NEON flush-to-zero mode.
 

Static Private Member Functions

static intptr_t getFpStatusRegister () noexcept
 
static void setFpStatusRegister (intptr_t) noexcept
 

Private Attributes

friend ScopedNoDenormals
 

Detailed Description

A collection of simple vector operations on arrays of floating point numbers, accelerated with SIMD instructions where possible and providing all methods from FloatVectorOperationsBase.

See also
FloatVectorOperationsBase

@tags{Audio}

Member Function Documentation

◆ areDenormalsDisabled()

static bool juce::FloatVectorOperations::areDenormalsDisabled ( )
staticnoexcept

This method returns true if denormals are currently disabled.

◆ convertFixedToFloat() [1/2]

static void juce::FloatVectorOperations::convertFixedToFloat ( float dest,
const int *  src,
float  multiplier,
int  num 
)
staticnoexcept

◆ convertFixedToFloat() [2/2]

static void juce::FloatVectorOperations::convertFixedToFloat ( float dest,
const int *  src,
float  multiplier,
size_t  num 
)
staticnoexcept

◆ disableDenormalisedNumberSupport()

static void juce::FloatVectorOperations::disableDenormalisedNumberSupport ( bool  shouldDisable = true)
staticnoexcept

On Intel CPUs, this method enables the SSE flush-to-zero and denormalised-are-zero modes.

This effectively sets the DAZ and FZ bits of the MXCSR register. On arm CPUs this will enable flush to zero mode. It's a convenient thing to call before audio processing code where you really want to avoid denormalisation performance hits.

◆ enableFlushToZeroMode()

static void juce::FloatVectorOperations::enableFlushToZeroMode ( bool  shouldEnable)
staticnoexcept

This method enables or disables the SSE/NEON flush-to-zero mode.

◆ getFpStatusRegister()

static intptr_t juce::FloatVectorOperations::getFpStatusRegister ( )
staticprivatenoexcept

◆ setFpStatusRegister()

static void juce::FloatVectorOperations::setFpStatusRegister ( intptr_t  )
staticprivatenoexcept

Member Data Documentation

◆ ScopedNoDenormals

friend juce::FloatVectorOperations::ScopedNoDenormals
private

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