JUCE  v6.1.6 (6.0.8-1114)
JUCE API
Looking for a senior C++ dev?
I'm looking for work. Hire me!
juce_MathsFunctions.h File Reference
This graph shows which files directly or indirectly include this file:

Classes

struct  juce::MathConstants< FloatType >
 Commonly used mathematical constants. More...
 
struct  juce::TypeHelpers::ParameterType< Type >
 The ParameterType struct is used to find the best type to use when passing some kind of object as a parameter. More...
 
struct  juce::TypeHelpers::SmallestFloatType< Type >
 These templates are designed to take a type, and if it's a double, they return a double type; for anything else, they return a float type. More...
 
struct  juce::TypeHelpers::UnsignedTypeWithSize< bytes >
 These templates are designed to take an integer type, and return an unsigned int version with the same size. More...
 

Namespaces

 juce
 
 juce::TypeHelpers
 This namespace contains a few template classes for helping work out class type variations.
 

Macros

#define JUCE_UNDENORMALISE(x)   { (x) += 0.1f; (x) -= 0.1f; }
 This macro can be applied to a float variable to check whether it contains a denormalised value, and to normalise it if necessary. More...
 

Typedefs

using juce::int16 = signed short
 A platform-independent 16-bit signed integer type. More...
 
using juce::int32 = signed int
 A platform-independent 32-bit signed integer type. More...
 
using juce::int64 = long long
 A platform-independent 64-bit integer type. More...
 
using juce::int8 = signed char
 A platform-independent 8-bit signed integer type. More...
 
using juce::pointer_sized_int = int64
 A signed integer type that's guaranteed to be large enough to hold a pointer without truncating it. More...
 
using juce::pointer_sized_uint = uint64
 An unsigned integer type that's guaranteed to be large enough to hold a pointer without truncating it. More...
 
using juce::ssize_t = pointer_sized_int
 
using juce::uint16 = unsigned short
 A platform-independent 16-bit unsigned integer type. More...
 
using juce::uint32 = unsigned int
 A platform-independent 32-bit unsigned integer type. More...
 
using juce::uint64 = unsigned long long
 A platform-independent 64-bit unsigned integer type. More...
 
using juce::uint8 = unsigned char
 A platform-independent 8-bit unsigned integer type. More...
 

Functions

template<typename Type >
bool juce::approximatelyEqual (Type a, Type b) noexcept
 Returns true if the two numbers are approximately equal. More...
 
int juce::countNumberOfBits (uint32 n) noexcept
 Returns the number of bits in a 32-bit integer. More...
 
int juce::countNumberOfBits (uint64 n) noexcept
 Returns the number of bits in a 64-bit integer. More...
 
template<typename FloatType >
constexpr FloatType juce::degreesToRadians (FloatType degrees) noexcept
 Converts an angle in degrees to radians. More...
 
int juce::findHighestSetBit (uint32 n) noexcept
 Returns the index of the highest set bit in a (non-zero) number. More...
 
template<typename Type , typename Size >
Type juce::findMaximum (const Type *values, Size numValues)
 Scans an array of values, returning the maximum value that it contains. More...
 
template<typename Type >
void juce::findMinAndMax (const Type *values, int numValues, Type &lowest, Type &highest)
 Scans an array of values, returning the minimum and maximum values that it contains. More...
 
template<typename Type , typename Size >
Type juce::findMinimum (const Type *data, Size numValues)
 Scans an array of values, returning the minimum value that it contains. More...
 
template<typename... Types>
void juce::ignoreUnused (Types &&...) noexcept
 Handy function for avoiding unused variables warning. More...
 
template<typename Type >
bool juce::isPositiveAndBelow (int valueToTest, Type upperLimit) noexcept
 
template<typename Type1 , typename Type2 >
bool juce::isPositiveAndBelow (Type1 valueToTest, Type2 upperLimit) noexcept
 Returns true if a value is at least zero, and also below a specified upper limit. More...
 
template<typename Type >
bool juce::isPositiveAndNotGreaterThan (int valueToTest, Type upperLimit) noexcept
 
template<typename Type1 , typename Type2 >
bool juce::isPositiveAndNotGreaterThan (Type1 valueToTest, Type2 upperLimit) noexcept
 Returns true if a value is at least zero, and also less than or equal to a specified upper limit. More...
 
template<typename IntegerType >
constexpr bool juce::isPowerOfTwo (IntegerType value)
 Returns true if the specified integer is a power-of-two. More...
 
template<typename Type >
bool juce::isWithin (Type a, Type b, Type tolerance) noexcept
 Computes the absolute difference between two values and returns true if it is less than or equal to a given tolerance, otherwise it returns false. More...
 
template<typename Type >
Type juce::jlimit (Type lowerLimit, Type upperLimit, Type valueToConstrain) noexcept
 Constrains a value to keep it within a given range. More...
 
template<typename Type >
Type juce::jmap (Type sourceValue, Type sourceRangeMin, Type sourceRangeMax, Type targetRangeMin, Type targetRangeMax)
 Remaps a value from a source range to a target range. More...
 
template<typename Type >
constexpr Type juce::jmap (Type value0To1, Type targetRangeMin, Type targetRangeMax)
 Remaps a normalised value (between 0 and 1) to a target range. More...
 
template<typename Type >
constexpr Type juce::jmax (Type a, Type b)
 Returns the larger of two values. More...
 
template<typename Type >
constexpr Type juce::jmax (Type a, Type b, Type c)
 Returns the larger of three values. More...
 
template<typename Type >
constexpr Type juce::jmax (Type a, Type b, Type c, Type d)
 Returns the larger of four values. More...
 
template<typename Type >
constexpr Type juce::jmin (Type a, Type b)
 Returns the smaller of two values. More...
 
template<typename Type >
constexpr Type juce::jmin (Type a, Type b, Type c)
 Returns the smaller of three values. More...
 
template<typename Type >
constexpr Type juce::jmin (Type a, Type b, Type c, Type d)
 Returns the smaller of four values. More...
 
template<typename Type >
Type juce::juce_hypot (Type a, Type b) noexcept
 Using juce_hypot is easier than dealing with the different types of hypot function that are provided by the various platforms and compilers. More...
 
template<>
bool juce::juce_isfinite (double value) noexcept
 
template<>
bool juce::juce_isfinite (float value) noexcept
 
template<typename NumericType >
bool juce::juce_isfinite (NumericType) noexcept
 The isfinite() method seems to vary between platforms, so this is a platform-independent function for it. More...
 
template<typename Type >
Type juce::mapFromLog10 (Type valueInLogRange, Type logRangeMin, Type logRangeMax)
 Remaps a logarithmic value in a target range to a normalised value (between 0 and 1). More...
 
template<typename Type >
Type juce::mapToLog10 (Type value0To1, Type logRangeMin, Type logRangeMax)
 Remaps a normalised value (between 0 and 1) to a logarithmic target range. More...
 
template<typename IntegerType >
IntegerType juce::negativeAwareModulo (IntegerType dividend, const IntegerType divisor) noexcept
 Performs a modulo operation, but can cope with the dividend being negative. More...
 
int juce::nextPowerOfTwo (int n) noexcept
 Returns the smallest power-of-two which is equal to or greater than the given integer. More...
 
template<typename Type , size_t N>
constexpr int juce::numElementsInArray (Type(&)[N]) noexcept
 Handy function for getting the number of elements in a simple const C array. More...
 
template<typename FloatType >
constexpr FloatType juce::radiansToDegrees (FloatType radians) noexcept
 Converts an angle in radians to degrees. More...
 
uint32 juce::readLittleEndianBitsInBuffer (const void *sourceBuffer, uint32 startBit, uint32 numBits) noexcept
 Reads a number of bits from a buffer at a given bit index. More...
 
template<typename FloatType >
int juce::roundToInt (const FloatType value) noexcept
 Fast floating-point-to-integer conversion. More...
 
int juce::roundToInt (int value) noexcept
 
int juce::roundToIntAccurate (double value) noexcept
 Fast floating-point-to-integer conversion. More...
 
template<typename NumericType >
constexpr NumericType juce::square (NumericType n) noexcept
 Returns the square of its argument. More...
 
template<typename FloatType >
unsigned int juce::truncatePositiveToUnsignedInt (FloatType value) noexcept
 Truncates a positive floating-point number to an unsigned int. More...
 
void juce::writeLittleEndianBitsInBuffer (void *targetBuffer, uint32 startBit, uint32 numBits, uint32 value) noexcept
 Writes a number of bits into a memory buffer at a given bit index. More...
 

Macro Definition Documentation

◆ JUCE_UNDENORMALISE

#define JUCE_UNDENORMALISE (   x)    { (x) += 0.1f; (x) -= 0.1f; }

This macro can be applied to a float variable to check whether it contains a denormalised value, and to normalise it if necessary.

On CPUs that aren't vulnerable to denormalisation problems, this will have no effect.