Functions | |
SbBool | floatIsEqual (float A, float B, unsigned int numFloat) |
template<typename T > | |
T | Max (T a, T b) |
template<typename T > | |
T | Min (T a, T b) |
template<typename T > | |
T | shiftValue (T v, int offset) |
template<> | |
float | shiftValue (float v, int offset) |
template<> | |
double | shiftValue (double v, int offset) |
template<typename T > | |
T | Clamp (T a, T minV, T maxV) |
template<typename T > | |
T | alignToNextPowerOf2 (T n, size_t shift) |
template<typename T > | |
T | getNextPow2 (T a) |
template<int N, typename T > | |
T | nearestUpperMultipleOf (T v) |
template<int N, typename T > | |
T | nearestLowerMultipleOf (T v) |
int | getNextLog2 (int num) |
float | deg2Rad (float a) |
float | rad2Deg (float a) |
double | roundToNearestInt (double x) |
bool | isNaN (double a) |
int | rand () |
void | srand (unsigned seed) |
template<typename T > | |
bool | isCoinc (const T &x, const T &y, T tol=(T) OIV_DEF_MATH_HELPER_EPS) |
template<typename T > | |
T | abs (const T &v) |
template<> | |
long int | abs (const long int &v) |
template<> | |
float | abs (const float &v) |
template<> | |
double | abs (const double &v) |
template<typename T > | |
bool | isLessThan (const T &x, const T &y, T tol=(T) OIV_DEF_MATH_HELPER_EPS) |
template<typename T > | |
bool | isGreaterThan (const T &x, const T &y, T tol=(T) OIV_DEF_MATH_HELPER_EPS) |
template<typename T > | |
bool | isLessOrEqualThan (const T &x, const T &y, T tol=(T) OIV_DEF_MATH_HELPER_EPS) |
template<typename T > | |
bool | isGreaterOrEqualThan (const T &x, const T &y, T tol=(T) OIV_DEF_MATH_HELPER_EPS) |
template<typename T > | |
bool | checkRangeI (const T &x, const T &min, T max, T tol=(T) OIV_DEF_MATH_HELPER_EPS) |
template<typename T > | |
bool | checkRangeE (const T &x, const T &min, T max, T tol=(T) OIV_DEF_MATH_HELPER_EPS) |
template<typename T > | |
bool | isCoincRelativeOrAbsolute (const T &A, const T &B, T maxRelativeError, T maxAbsoluteError) |
template<typename T > | |
int | sgn (const T &val) |
template<typename T > | |
T | rangeMax () |
template<typename T > | |
T | rangeMin () |
template<> | |
float | rangeMin< float > () |
template<> | |
double | rangeMin< double > () |
template<typename T > | |
T | fract (const T &) |
template<> | |
float | fract (const float &value) |
template<> | |
double | fract (const double &value) |
template<> | |
long double | fract (const long double &value) |
Variables | |
static const int | OIV_RAND_MAX = 32767 |
static const float | OIV_DEF_MATH_HELPER_EPS = 1.e-6f |
| |
bool | isFinite (double value) |
bool | isFinite (float value) |
double SbMathHelper::abs | ( | const double & | v | ) | [inline] |
float SbMathHelper::abs | ( | const float & | v | ) | [inline] |
long int SbMathHelper::abs | ( | const long int & | v | ) | [inline] |
T SbMathHelper::abs | ( | const T & | v | ) | [inline] |
Return absolute value of v.
T SbMathHelper::alignToNextPowerOf2 | ( | T | n, | |
size_t | shift | |||
) | [inline] |
Return an integer multiple of 2^shift greater or equals to n.
bool SbMathHelper::checkRangeE | ( | const T & | x, | |
const T & | min, | |||
T | max, | |||
T | tol = (T)OIV_DEF_MATH_HELPER_EPS | |||
) | [inline] |
Inside open interval (excluding endpoints) using given tolerance test.
bool SbMathHelper::checkRangeI | ( | const T & | x, | |
const T & | min, | |||
T | max, | |||
T | tol = (T)OIV_DEF_MATH_HELPER_EPS | |||
) | [inline] |
Inside closed interval (including endpoints) using given tolerance test.
T SbMathHelper::Clamp | ( | T | a, | |
T | minV, | |||
T | maxV | |||
) | [inline] |
Clamps value to given range [minV, maxV].
float SbMathHelper::deg2Rad | ( | float | a | ) | [inline] |
Convert degrees to radians.
SbBool SbMathHelper::floatIsEqual | ( | float | A, | |
float | B, | |||
unsigned int | numFloat | |||
) |
Return true if A and B are equal.
numFloat is the number of allowed representable IEEE float between A and B. For example, there is no number between 10000 and 10000.000977. So if numFloat=1 it will return true for these two numbers.
long double SbMathHelper::fract | ( | const long double & | value | ) | [inline] |
double SbMathHelper::fract | ( | const double & | value | ) | [inline] |
float SbMathHelper::fract | ( | const float & | value | ) | [inline] |
T SbMathHelper::fract | ( | const T & | ) | [inline] |
Return fractional part of given value.
ex: fract(23.15) return 0.15
int SbMathHelper::getNextLog2 | ( | int | num | ) |
Return the next log of 2 greater or equal to a.
T SbMathHelper::getNextPow2 | ( | T | a | ) | [inline] |
Return the next power of 2 greater or equal to a.
bool SbMathHelper::isCoinc | ( | const T & | x, | |
const T & | y, | |||
T | tol = (T)OIV_DEF_MATH_HELPER_EPS | |||
) | [inline] |
Coincidence test using given tolerance.
bool SbMathHelper::isCoincRelativeOrAbsolute | ( | const T & | A, | |
const T & | B, | |||
T | maxRelativeError, | |||
T | maxAbsoluteError | |||
) | [inline] |
Relative or absolute error without sign comparison.
bool SbMathHelper::isFinite | ( | float | value | ) | [inline] |
Returns true if the value is a finite value (i.e.
is is normal, subnormal or zero but not infinite or NaN).
bool SbMathHelper::isFinite | ( | double | value | ) | [inline] |
Returns true if the value is a finite value (i.e.
is is normal, subnormal or zero but not infinite or NaN).
bool SbMathHelper::isGreaterOrEqualThan | ( | const T & | x, | |
const T & | y, | |||
T | tol = (T)OIV_DEF_MATH_HELPER_EPS | |||
) | [inline] |
Greater or equal than test (x >= y) using given tolerance.
bool SbMathHelper::isGreaterThan | ( | const T & | x, | |
const T & | y, | |||
T | tol = (T)OIV_DEF_MATH_HELPER_EPS | |||
) | [inline] |
Greater than test (x > y) using given tolerance.
bool SbMathHelper::isLessOrEqualThan | ( | const T & | x, | |
const T & | y, | |||
T | tol = (T)OIV_DEF_MATH_HELPER_EPS | |||
) | [inline] |
Less or equal than test (x <= y) using given tolerance.
bool SbMathHelper::isLessThan | ( | const T & | x, | |
const T & | y, | |||
T | tol = (T)OIV_DEF_MATH_HELPER_EPS | |||
) | [inline] |
Less than test (x < y) using given tolerance.
bool SbMathHelper::isNaN | ( | double | a | ) | [inline] |
Returns true if the specified value is NaN.
T SbMathHelper::Max | ( | T | a, | |
T | b | |||
) | [inline] |
T SbMathHelper::Min | ( | T | a, | |
T | b | |||
) | [inline] |
T SbMathHelper::nearestLowerMultipleOf | ( | T | v | ) | [inline] |
Return the nearest lower multiple of some value.
for example nearestLowerMultipleOf<4>(7) return 4. Template because it let compiler to do some optimizations.
T SbMathHelper::nearestUpperMultipleOf | ( | T | v | ) | [inline] |
Return the nearest upper multiple of some value.
for example nearestUpperMultipleOf<4>(7) return 8. Template because it let compiler to do some optimizations.
float SbMathHelper::rad2Deg | ( | float | a | ) | [inline] |
Convert radians to degrees.
int SbMathHelper::rand | ( | ) |
Returns a pseudo-random integer between 0 and OIV_RAND_MAX.
The returned sequence will be the same on all machines.
T SbMathHelper::rangeMax | ( | ) | [inline] |
Returns the maximum finite value representable by the numeric type T.
T SbMathHelper::rangeMin | ( | ) | [inline] |
Returns the lowest finite value representable by the numeric type T, that is, a finite value x such that there is no other finite value y where y < x.
double SbMathHelper::rangeMin< double > | ( | ) | [inline] |
float SbMathHelper::rangeMin< float > | ( | ) | [inline] |
double SbMathHelper::roundToNearestInt | ( | double | x | ) | [inline] |
Round the double value to the nearest integer value.
Examples: roundToNearestInt(4.8) returns 5 roundToNearestInt(-7.4) returns -7
This method always round by the lower value when there is 2 nearest integer values. Example: roundToNearestInt(0.5) returns 0 roundToNearestInt(-7.5) returns -8
int SbMathHelper::sgn | ( | const T & | val | ) | [inline] |
Implements signum return value in { -1, 0, +1 }.
double SbMathHelper::shiftValue | ( | double | v, | |
int | offset | |||
) | [inline] |
float SbMathHelper::shiftValue | ( | float | v, | |
int | offset | |||
) | [inline] |
T SbMathHelper::shiftValue | ( | T | v, | |
int | offset | |||
) | [inline] |
shift the value of offset representable values considering value type.
If T is an integer type (char, short, etc...), it just return v + offset. If T is a float type (float, double, ...) it return the offset'th representable value starting from v. ex: shiftValue(10000.0f, 1) returns 10000.000977...
void SbMathHelper::srand | ( | unsigned | seed | ) |
Set seed for a new sequence of pseudo-random integers to be returned by rand().
const float SbMathHelper::OIV_DEF_MATH_HELPER_EPS = 1.e-6f [static] |
Default epsilon value for coincidence and interval checking.
const int SbMathHelper::OIV_RAND_MAX = 32767 [static] |
Maximum value returned by SbMathHelper::rand().