|
clibs
Tiny but handy utility libraries for C
|
Common math operations. More...
Go to the source code of this file.
Macros | |
| #define | MAX(a, b) ((a) > (b) ? (a) : (b)) |
| Get the maximal value between a and b. | |
| #define | MIN(a, b) ((a) < (b) ? (a) : (b)) |
| Get the minimal value between a and b. | |
| #define | ABS(a) ((a) > 0.0 ? (a) : -(a)) |
| Get the absolute value of a. | |
| #define | IS_EQUAL(a, b, epsilon) (ABS((a) - (b)) <= (epsilon)) |
| Check the equality between two floating-point numbers. More... | |
| #define | COMPARE(a, b) ((a) > (b) ? 1 : (a) == (b) ? 0 : -1) |
| Compare two numeric data. | |
| #define | IS_EVEN(n) (!((n) & 1)) |
| Check whether n is even. | |
| #define | IS_ODD(n) ((n) & 1) |
| Check whether n is odd. | |
| #define | SWAP(a, b) (((a) ^= (b)), ((b) ^= (a)), ((a) ^= (b))) |
| Swap between a and b. More... | |
| #define | RANDINT(min, max) ((min) + rand() % ((max) - (min) + 1)) |
| Get a random integer bewteen min and max. More... | |
| #define | INF (1.0 / 0.0) |
| An infinity number. | |
| #define | IS_INF(n) ((n) > FLT_MAX) |
| Check whether n is an infinity number. | |
| #define | NEG_INF (-1.0 / 0.0) |
| A negative infinity number. | |
| #define | IS_NEG_INF(n) (-(n) > FLT_MAX) |
| Check whether n is a negative infinity number. | |
| #define | NaN (0.0 / 0.0) |
| A NaN (not a number) | |
| #define | IS_NaN(n) |
| Check whether n is NaN (not a number) More... | |
Common math operations.
| #define IS_EQUAL | ( | a, | |
| b, | |||
| epsilon | |||
| ) | (ABS((a) - (b)) <= (epsilon)) |
Check the equality between two floating-point numbers.
IS_EQUAL(a, b, epsilon) compares two floating-point numbers by the absolute value of the difference between a and b. The value should be smaller than epsilon
| #define IS_NaN | ( | n | ) |
Check whether n is NaN (not a number)
| #define RANDINT | ( | min, | |
| max | |||
| ) | ((min) + rand() % ((max) - (min) + 1)) |
Get a random integer bewteen min and max.
Set a random seed by yourself.
| #define SWAP | ( | a, | |
| b | |||
| ) | (((a) ^= (b)), ((b) ^= (a)), ((a) ^= (b))) |
Swap between a and b.
a and b are integers
1.8.13