JUCE  v6.1.6 (6.0.8-1114)
JUCE API
Looking for a senior C++ dev?
I'm looking for work. Hire me!
juce::FloatVectorOperations Class Reference

A collection of simple vector operations on arrays of floats, accelerated with SIMD instructions where possible. 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. More...
 
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. More...
 
static void enableFlushToZeroMode (bool shouldEnable) noexcept
 This method enables or disables the SSE/NEON flush-to-zero mode. More...
 

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 floats, accelerated with SIMD instructions where possible.

@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: