From 456dde14f4c654b9ad1a78e76369a79852a1833f Mon Sep 17 00:00:00 2001 From: Groove Date: Sat, 28 Jul 2018 14:48:16 +0200 Subject: [PATCH] Fixed error: comparing floating point with == or != is unsafe --- glm/gtc/packing.inl | 2 +- glm/gtc/ulp.inl | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/glm/gtc/packing.inl b/glm/gtc/packing.inl index eebdc1de..62bdc07c 100644 --- a/glm/gtc/packing.inl +++ b/glm/gtc/packing.inl @@ -620,7 +620,7 @@ namespace detail float const ExpSharedP = max(-15.f - 1.f, floor(log2(MaxColor))) + 1.0f + 15.f; float const MaxShared = floor(MaxColor / pow(2.0f, (ExpSharedP - 15.f - 9.f)) + 0.5f); - float const ExpShared = detail::compute_equal::is_iec559>::call(MaxShared, pow(2.0f, 9.0f)) ? ExpSharedP + 1.0f : ExpSharedP; + float const ExpShared = equal(MaxShared, pow(2.0f, 9.0f), epsilon()) ? ExpSharedP + 1.0f : ExpSharedP; uvec3 const ColorComp(floor(Color / pow(2.f, (ExpShared - 15.f - 9.f)) + 0.5f)); diff --git a/glm/gtc/ulp.inl b/glm/gtc/ulp.inl index ed018d5e..dff2e2f3 100644 --- a/glm/gtc/ulp.inl +++ b/glm/gtc/ulp.inl @@ -82,13 +82,13 @@ namespace detail if((ix>0x7f800000) || // x is nan (iy>0x7f800000)) // y is nan return x+y; - if(compute_equal::is_iec559>::call(x, y)) + if(equal(x, y, epsilon())) return y; // x=y, return y if(ix==0) { // x == 0 GLM_SET_FLOAT_WORD(x,(hy&0x80000000)|1);// return +-minsubnormal t = x*x; - if(detail::compute_equal::call(t, x)) + if(equal(t, x, epsilon())) return t; else return x; // raise underflow flag @@ -137,13 +137,13 @@ namespace detail if(((ix>=0x7ff00000)&&((ix-0x7ff00000)|lx)!=0) || // x is nan ((iy>=0x7ff00000)&&((iy-0x7ff00000)|ly)!=0)) // y is nan return x+y; - if(detail::compute_equal::call(x, y)) + if(equal(x, y, epsilon())) return y; // x=y, return y if((ix|lx)==0) { // x == 0 GLM_INSERT_WORDS(x, hy & 0x80000000, 1); // return +-minsubnormal t = x*x; - if(detail::compute_equal::call(t, x)) + if(equal(t, x, epsilon())) return t; else return x; // raise underflow flag