[utils] adding non-branching sign functions

This commit is contained in:
Al
2017-04-02 13:41:57 -04:00
parent 74a281e332
commit 19fe084974
2 changed files with 11 additions and 0 deletions

View File

@@ -14,6 +14,10 @@ inline bool float_equals(float a, float b) {
return float_equals_epsilon(a, b, FLT_EPSILON);
}
inline float fsign(float x) {
return (float)((x > 0.0f) - (x < 0.0f));
}
inline bool double_equals_epsilon(double a, double b, double epsilon) {
double diff = fabs(a - b);
a = fabs(a);
@@ -27,3 +31,8 @@ inline bool double_equals_epsilon(double a, double b, double epsilon) {
inline bool double_equals(double a, double b) {
return double_equals_epsilon(a, b, DBL_EPSILON);
}
inline double sign(double x) {
return (double)((x > 0.0) - (x < 0.0));
}

View File

@@ -8,9 +8,11 @@
bool float_equals(float a, float b);
bool float_equals_epsilon(float a, float b, float epsilon);
float fsign(float x);
bool double_equals(double a, double b);
bool double_equals_epsilon(double a, double b, double epsilon);
double sign(double x);
#endif