|  | 
| template<typename... Types> | 
| void | ignoreUnused (Types &&...) noexcept | 
|  | Handy function for avoiding unused variables warning. 
 | 
|  | 
| template<typename Type , size_t N> | 
| constexpr int | numElementsInArray (Type(&)[N]) noexcept | 
|  | Handy function for getting the number of elements in a simple const C array. 
 | 
|  | 
| 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. 
 | 
|  | 
| template<typename FloatType > | 
| constexpr FloatType | degreesToRadians (FloatType degrees) noexcept | 
|  | Converts an angle in degrees to radians. 
 | 
|  | 
| template<typename FloatType > | 
| constexpr FloatType | radiansToDegrees (FloatType radians) noexcept | 
|  | Converts an angle in radians to degrees. 
 | 
|  | 
| template<typename NumericType > | 
| bool | juce_isfinite (NumericType value) noexcept | 
|  | The isfinite() method seems to vary between platforms, so this is a platform-independent function for it. 
 | 
|  | 
| template<typename Type > | 
| constexpr bool | exactlyEqual (Type a, Type b) | 
|  | Equivalent to operator==, but suppresses float-equality warnings. 
 | 
|  | 
| template<typename Type , std::enable_if_t< std::is_floating_point_v< Type >, int >  = 0> | 
| constexpr bool | approximatelyEqual (Type a, Type b, Tolerance< Type > tolerance=Tolerance< Type >{} .withAbsolute(std::numeric_limits< Type >::min()) .withRelative(std::numeric_limits< Type >::epsilon())) | 
|  | Returns true if the two floating-point numbers are approximately equal. 
 | 
|  | 
| template<typename Type , std::enable_if_t<! std::is_floating_point_v< Type >, int >  = 0> | 
| constexpr bool | approximatelyEqual (Type a, Type b) | 
|  | Special case for non-floating-point types that returns true if both are exactly equal. 
 | 
|  | 
| template<typename FloatType > | 
| FloatType | nextFloatUp (FloatType value) noexcept | 
|  | Returns the next representable value by FloatType in the direction of the largest representable value. 
 | 
|  | 
| template<typename FloatType > | 
| FloatType | nextFloatDown (FloatType value) noexcept | 
|  | Returns the next representable value by FloatType in the direction of the lowest representable value. 
 | 
|  | 
| template<typename Type > | 
| constexpr Type | jmax (Type a, Type b) | 
|  | Returns the larger of two values. 
 | 
|  | 
| template<typename Type > | 
| constexpr Type | jmax (Type a, Type b, Type c) | 
|  | Returns the larger of three values. 
 | 
|  | 
| template<typename Type > | 
| constexpr Type | jmax (Type a, Type b, Type c, Type d) | 
|  | Returns the larger of four values. 
 | 
|  | 
| template<typename Type > | 
| constexpr Type | jmin (Type a, Type b) | 
|  | Returns the smaller of two values. 
 | 
|  | 
| template<typename Type > | 
| constexpr Type | jmin (Type a, Type b, Type c) | 
|  | Returns the smaller of three values. 
 | 
|  | 
| template<typename Type > | 
| constexpr Type | jmin (Type a, Type b, Type c, Type d) | 
|  | Returns the smaller of four values. 
 | 
|  | 
| template<typename Type > | 
| constexpr Type | jmap (Type value0To1, Type targetRangeMin, Type targetRangeMax) | 
|  | Remaps a normalised value (between 0 and 1) to a target range. 
 | 
|  | 
| 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. 
 | 
|  | 
| template<typename Type > | 
| Type | mapToLog10 (Type value0To1, Type logRangeMin, Type logRangeMax) | 
|  | Remaps a normalised value (between 0 and 1) to a logarithmic target range. 
 | 
|  | 
| template<typename Type > | 
| Type | mapFromLog10 (Type valueInLogRange, Type logRangeMin, Type logRangeMax) | 
|  | Remaps a logarithmic value in a target range to a normalised value (between 0 and 1). 
 | 
|  | 
| template<typename Type , typename Size > | 
| Type | findMinimum (const Type *data, Size numValues) | 
|  | Scans an array of values, returning the minimum value that it contains. 
 | 
|  | 
| template<typename Type , typename Size > | 
| Type | findMaximum (const Type *values, Size numValues) | 
|  | Scans an array of values, returning the maximum value that it contains. 
 | 
|  | 
| 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. 
 | 
|  | 
| template<typename Type > | 
| Type | jlimit (Type lowerLimit, Type upperLimit, Type valueToConstrain) noexcept | 
|  | Constrains a value to keep it within a given range. 
 | 
|  | 
| 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. 
 | 
|  | 
| 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. 
 | 
|  | 
| 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. 
 | 
|  | 
| template<typename FloatType > | 
| int | roundToInt (const FloatType value) noexcept | 
|  | Fast floating-point-to-integer conversion. 
 | 
|  | 
| int | roundToInt (int value) noexcept | 
|  | 
| int | roundToIntAccurate (double value) noexcept | 
|  | Fast floating-point-to-integer conversion. 
 | 
|  | 
| template<typename FloatType > | 
| unsigned int | truncatePositiveToUnsignedInt (FloatType value) noexcept | 
|  | Truncates a positive floating-point number to an unsigned int. 
 | 
|  | 
| template<typename IntegerType > | 
| constexpr bool | isPowerOfTwo (IntegerType value) | 
|  | Returns true if the specified integer is a power-of-two. 
 | 
|  | 
| int | nextPowerOfTwo (int n) noexcept | 
|  | Returns the smallest power-of-two which is equal to or greater than the given integer. 
 | 
|  | 
| int | findHighestSetBit (uint32 n) noexcept | 
|  | Returns the index of the highest set bit in a (non-zero) number. 
 | 
|  | 
| constexpr int | countNumberOfBits (uint32 n) noexcept | 
|  | Returns the number of bits in a 32-bit integer. 
 | 
|  | 
| constexpr int | countNumberOfBits (uint64 n) noexcept | 
|  | Returns the number of bits in a 64-bit integer. 
 | 
|  | 
| template<typename IntegerType > | 
| IntegerType | negativeAwareModulo (IntegerType dividend, const IntegerType divisor) noexcept | 
|  | Performs a modulo operation, but can cope with the dividend being negative. 
 | 
|  | 
| template<typename NumericType > | 
| constexpr NumericType | square (NumericType n) noexcept | 
|  | Returns the square of its argument. 
 | 
|  | 
| 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. 
 | 
|  | 
| uint32 | readLittleEndianBitsInBuffer (const void *sourceBuffer, uint32 startBit, uint32 numBits) noexcept | 
|  | Reads a number of bits from a buffer at a given bit index. 
 | 
|  | 
| template<typename T > | 
| constexpr auto | toUnderlyingType (T t) -> std::enable_if_t< std::is_enum_v< T >, std::underlying_type_t< T > > | 
|  | Converts an enum to its underlying integral type. 
 | 
|  |