Math utils: Add clamping functions
This commit is contained in:
@@ -132,6 +132,10 @@ MINLINE int max_iiii(int a, int b, int c, int d);
|
||||
MINLINE size_t min_zz(size_t a, size_t b);
|
||||
MINLINE size_t max_zz(size_t a, size_t b);
|
||||
|
||||
MINLINE int clamp_i(int value, int min, int max);
|
||||
MINLINE float clamp_f(float value, float min, float max);
|
||||
MINLINE size_t clamp_z(size_t value, size_t min, size_t max);
|
||||
|
||||
MINLINE int compare_ff(float a, float b, const float max_diff);
|
||||
MINLINE int compare_ff_relative(float a, float b, const float max_diff, const int max_ulps);
|
||||
|
||||
|
||||
@@ -324,6 +324,26 @@ MINLINE size_t max_zz(size_t a, size_t b)
|
||||
return (b < a) ? a : b;
|
||||
}
|
||||
|
||||
MINLINE int clamp_i(int value, int min, int max)
|
||||
{
|
||||
return min_ii(max_ii(value, min), max);
|
||||
}
|
||||
|
||||
MINLINE float clamp_f(float value, float min, float max)
|
||||
{
|
||||
if (value > max) {
|
||||
return max;
|
||||
} else if (value < min) {
|
||||
return min;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
MINLINE size_t clamp_z(size_t value, size_t min, size_t max)
|
||||
{
|
||||
return min_zz(max_zz(value, min), max);
|
||||
}
|
||||
|
||||
/**
|
||||
* Almost-equal for IEEE floats, using absolute difference method.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user