math.math
Math functions.
- template epsilon(T)
- pure bool equals(T)(const T a, const T b, const T tolerance = epsilon!(T));
Fuzzy number equality test.
Parameters:Returns:a First number to compare. b Secont number to compare. tolerance Comparison tolerance. True if the numbers are equal, false otherwise.- pure T clamp(T)(const T v, const T minimum, const T maximum);
Clamps a value to specified range.
Parameters: Returns:Clamped value.- void unittestClamp();
Unittest for clamp() .
- U round(U, T)(const T f);
Round a number to the nearest integer of type U.
Parameters: Returns:Nearest int to given value.- U floor(U, T)(T f);
Floor a number to an integer of type U.
Parameters:Returns:f Float to round. Must be less than U.max and more or equal to U.min . Floor of given value as U.- void unittestFloor();
Unittest for floor.
- uint[] powersOfTwo;
Array of first 32 powers of 2.
- void unittestGeneratePot();
Unittest for generatePot().
- uint potCeil(const uint num);
Get the smallest power of two greater or equal to given number.
Parameters:Returns:uint num Number to get ceiling power of two to. Smallest power of two greater or equal to given number.- void unittestPotCeil();
Unittest for potCeil.
- bool isPot(const uint num);
Determine if the given number is a power of two.
Parameters:Returns:uint num Number to check. True if the number is a power of two, false otherwise.- pure nothrow T alignToUpperMultipleOf(T)(const T mult, const T num);
Align an unsigned integer to upper multiple of mult.
Examples:Parameters:assert(alignToUpperMultipleOf(4u, 11u) == 12); assert(alignToUpperMultipleOf(4u, 12u) == 12); assert(alignToUpperMultipleOf(5u, 256u) == 260); assert(alignToUpperMultipleOf(5u, 261u) == 265); assert(alignToUpperMultipleOf(1u, 261u) == 261);
Returns:mult Multiplier to align to. Must not be 0. num Number to align. Aligned result.