juce_MathsFunctions.h File Reference

## Classes

struct | MathConstants< FloatType >
| Commonly used mathematical constants. More...
struct | 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 | 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 | TypeHelpers::UnsignedTypeWithSize< bytes >
| These templates are designed to take an integer type, and return an unsigned int version with the same size. More...

## Namespaces

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

## Functions

template<typename Type >
JUCE_CONSTEXPR Type | jmax (Type a, Type b)
| Returns the larger of two values. More...
template<typename Type >
JUCE_CONSTEXPR Type | jmax (Type a, Type b, Type c)
| Returns the larger of three values. More...
template<typename Type >
JUCE_CONSTEXPR Type | jmax (Type a, Type b, Type c, Type d)
| Returns the larger of four values. More...
template<typename Type >
JUCE_CONSTEXPR Type | jmin (Type a, Type b)
| Returns the smaller of two values. More...
template<typename Type >
JUCE_CONSTEXPR Type | jmin (Type a, Type b, Type c)
| Returns the smaller of three values. More...
template<typename Type >
JUCE_CONSTEXPR Type | jmin (Type a, Type b, Type c, Type d)
| Returns the smaller of four values. More...
template<typename Type >
JUCE_CONSTEXPR Type | jmap (Type value0To1, Type targetRangeMin, Type targetRangeMax)
| Remaps a normalised value (between 0 and 1) to a target range. More...
template<typename Type >
Type | 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 >
Type | findMinimum (const Type *data, int numValues)
| Scans an array of values, returning the minimum value that it contains. More...
template<typename Type >
Type | findMaximum (const Type *values, int numValues)
| Scans an array of values, returning the maximum value that it contains. More...
template<typename Type >
void | 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 >
Type | jlimit (Type lowerLimit, Type upperLimit, Type valueToConstrain) noexcept
| Constrains a value to keep it within a given range. More...
template<typename Type1 , typename Type2 >
bool | 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 | isPositiveAndBelow (int valueToTest, Type upperLimit) noexcept
template<typename Type1 , typename Type2 >
bool | 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 Type >
bool | isPositiveAndNotGreaterThan (int valueToTest, Type upperLimit) noexcept
template<typename Type >
bool | 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 >
bool | approximatelyEqual (Type a, Type b) noexcept
| Returns true if the two numbers are approximately equal. More...
template<typename... Types>
void | ignoreUnused (Types &&...) noexcept
| Handy function for avoiding unused variables warning. More...
template<typename Type , size_t N>
JUCE_CONSTEXPR int | numElementsInArray (Type(&)[N]) noexcept
| Handy function for getting the number of elements in a simple const C array. More...
template<typename Type >
Type | 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<typename FloatType >
JUCE_CONSTEXPR FloatType | degreesToRadians (FloatType degrees) noexcept
| Converts an angle in degrees to radians. More...
template<typename FloatType >
JUCE_CONSTEXPR FloatType | radiansToDegrees (FloatType radians) noexcept
| Converts an angle in radians to degrees. More...
template<typename NumericType >
bool | juce_isfinite (NumericType) noexcept
| The isfinite() method seems to vary between platforms, so this is a platform-independent function for it. More...
template<>
bool | juce_isfinite (float value) noexcept
template<>
bool | juce_isfinite (double value) noexcept
template<typename FloatType >
int | roundToInt (const FloatType value) noexcept
| Fast floating-point-to-integer conversion. More...
int | roundToInt (int value) noexcept
int | roundToIntAccurate (double value) noexcept
| Fast floating-point-to-integer conversion. More...
template<typename FloatType >
unsigned int | truncatePositiveToUnsignedInt (FloatType value) noexcept
| Truncates a positive floating-point number to an unsigned int. More...
template<typename IntegerType >
JUCE_CONSTEXPR bool | isPowerOfTwo (IntegerType value)
| Returns true if the specified integer is a power-of-two. More...
int | nextPowerOfTwo (int n) noexcept
| Returns the smallest power-of-two which is equal to or greater than the given integer. More...
int | findHighestSetBit (uint32 n) noexcept
| Returns the index of the highest set bit in a (non-zero) number. More...
int | countNumberOfBits (uint32 n) noexcept
| Returns the number of bits in a 32-bit integer. More...
int | countNumberOfBits (uint64 n) noexcept
| Returns the number of bits in a 64-bit integer. More...
template<typename IntegerType >
IntegerType | negativeAwareModulo (IntegerType dividend, const IntegerType divisor) noexcept
| Performs a modulo operation, but can cope with the dividend being negative. More...
template<typename NumericType >
JUCE_CONSTEXPR NumericType | square (NumericType n) noexcept
| Returns the square of its argument. More...
void | 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...
uint32 | readLittleEndianBitsInBuffer (const void *sourceBuffer, uint32 startBit, uint32 numBits) noexcept
| Reads a number of bits from a buffer at a given bit index. More...