|
template<typename T > |
bool | isEven (T x) |
| Returns true if x is odd.
|
|
template<typename T > |
bool | isOdd (T x) |
| Returns true if x is odd.
|
|
int | clamp (int x, int a, int b) |
| Limits x between a and b .
|
|
int | clampSafe (int x, int a, int b) |
| Limits x between a and b .
|
|
int | eucMod (int a, int b) |
| Euclidean modulus.
|
|
int | eucDiv (int a, int b) |
| Euclidean division.
|
|
void | eucDivMod (int a, int b, int *div, int *mod) |
|
int | log2 (int n) |
| Returns floor(log_2(n)) , or 0 if n == 1 .
|
|
template<typename T > |
bool | isPow2 (T n) |
| Returns whether n is a power of 2.
|
|
template<typename T > |
T | sgn (T x) |
| Returns 1 for positive numbers, -1 for negative numbers, and 0 for zero.
|
|
float | clamp (float x, float a=0.f, float b=1.f) |
| Limits x between a and b .
|
|
float | clampSafe (float x, float a=0.f, float b=1.f) |
| Limits x between a and b .
|
|
| __attribute__ ((optimize("signed-zeros"))) inline float normalizeZero(float x) |
| Converts -0.f to 0.f.
|
|
float | eucMod (float a, float b) |
| Euclidean modulus.
|
|
bool | isNear (float a, float b, float epsilon=1e-6f) |
| Returns whether a is within epsilon distance from b .
|
|
float | chop (float x, float epsilon=1e-6f) |
| If the magnitude of x if less than epsilon, return 0.
|
|
float | rescale (float x, float xMin, float xMax, float yMin, float yMax) |
| Rescales x from the range [xMin, xMax] to [yMin, yMax] .
|
|
float | crossfade (float a, float b, float p) |
| Linearly interpolates between a and b , from p = 0 to p = 1 .
|
|
float | interpolateLinear (const float *p, float x) |
| Linearly interpolates an array p with index x .
|
|
void | complexMult (float ar, float ai, float br, float bi, float *cr, float *ci) |
| Complex multiplication c = a * b .
|
|
Vec | operator+ (const Vec &a) |
|
Vec | operator- (const Vec &a) |
|
Vec | operator+ (const Vec &a, const Vec &b) |
|
Vec | operator- (const Vec &a, const Vec &b) |
|
Vec | operator* (const Vec &a, const Vec &b) |
|
Vec | operator* (const Vec &a, const float &b) |
|
Vec | operator* (const float &a, const Vec &b) |
|
Vec | operator/ (const Vec &a, const Vec &b) |
|
Vec | operator/ (const Vec &a, const float &b) |
|
Vec | operator+= (Vec &a, const Vec &b) |
|
Vec | operator-= (Vec &a, const Vec &b) |
|
Vec | operator*= (Vec &a, const Vec &b) |
|
Vec | operator*= (Vec &a, const float &b) |
|
Vec | operator/= (Vec &a, const Vec &b) |
|
Vec | operator/= (Vec &a, const float &b) |
|
bool | operator== (const Vec &a, const Vec &b) |
|
bool | operator!= (const Vec &a, const Vec &b) |
|
bool | operator== (const Rect &a, const Rect &b) |
|
bool | operator!= (const Rect &a, const Rect &b) |
|
Extends <cmath>
with extra functions and types.