Merge pull request #61812 from Chaosus/fix_wrapf

This commit is contained in:
Rémi Verschelde 2022-06-15 15:27:57 +02:00 committed by GitHub
commit cc6b2f4287
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 2 deletions

View File

@ -302,11 +302,19 @@ public:
} }
static _ALWAYS_INLINE_ double wrapf(double value, double min, double max) { static _ALWAYS_INLINE_ double wrapf(double value, double min, double max) {
double range = max - min; double range = max - min;
return is_zero_approx(range) ? min : value - (range * Math::floor((value - min) / range)); double result = is_zero_approx(range) ? min : value - (range * Math::floor((value - min) / range));
if (is_equal_approx(result, max)) {
return min;
}
return result;
} }
static _ALWAYS_INLINE_ float wrapf(float value, float min, float max) { static _ALWAYS_INLINE_ float wrapf(float value, float min, float max) {
float range = max - min; float range = max - min;
return is_zero_approx(range) ? min : value - (range * Math::floor((value - min) / range)); float result = is_zero_approx(range) ? min : value - (range * Math::floor((value - min) / range));
if (is_equal_approx(result, max)) {
return min;
}
return result;
} }
static _ALWAYS_INLINE_ float fract(float value) { static _ALWAYS_INLINE_ float fract(float value) {