From c12f318fabf14853174419f3892654612186c5c7 Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Tue, 27 Aug 2024 13:40:34 +0300 Subject: [PATCH] supress fast-math warns --- include/cglm/vec2-ext.h | 8 ++++++++ include/cglm/vec3-ext.h | 8 ++++++++ include/cglm/vec4-ext.h | 8 ++++++++ test/src/test_vec3.h | 32 ++++++++++++++++++++++++++++++++ test/src/test_vec4.h | 4 ++++ 5 files changed, 60 insertions(+) diff --git a/include/cglm/vec2-ext.h b/include/cglm/vec2-ext.h index 4e4d899..ac6615e 100644 --- a/include/cglm/vec2-ext.h +++ b/include/cglm/vec2-ext.h @@ -136,7 +136,11 @@ glm_vec2_min(vec2 v) { CGLM_INLINE bool glm_vec2_isnan(vec2 v) { +#ifndef CGLM_FAST_MATH return isnan(v[0]) || isnan(v[1]); +#else + return false; +#endif } /*! @@ -148,7 +152,11 @@ glm_vec2_isnan(vec2 v) { CGLM_INLINE bool glm_vec2_isinf(vec2 v) { +#ifndef CGLM_FAST_MATH return isinf(v[0]) || isinf(v[1]); +#else + return false; +#endif } /*! diff --git a/include/cglm/vec3-ext.h b/include/cglm/vec3-ext.h index d2e113a..808d32c 100644 --- a/include/cglm/vec3-ext.h +++ b/include/cglm/vec3-ext.h @@ -172,7 +172,11 @@ glm_vec3_min(vec3 v) { CGLM_INLINE bool glm_vec3_isnan(vec3 v) { +#ifndef CGLM_FAST_MATH return isnan(v[0]) || isnan(v[1]) || isnan(v[2]); +#else + return false; +#endif } /*! @@ -184,7 +188,11 @@ glm_vec3_isnan(vec3 v) { CGLM_INLINE bool glm_vec3_isinf(vec3 v) { +#ifndef CGLM_FAST_MATH return isinf(v[0]) || isinf(v[1]) || isinf(v[2]); +#else + return false; +#endif } /*! diff --git a/include/cglm/vec4-ext.h b/include/cglm/vec4-ext.h index cc09ee1..e8678c3 100644 --- a/include/cglm/vec4-ext.h +++ b/include/cglm/vec4-ext.h @@ -186,7 +186,11 @@ glm_vec4_min(vec4 v) { CGLM_INLINE bool glm_vec4_isnan(vec4 v) { +#ifndef CGLM_FAST_MATH return isnan(v[0]) || isnan(v[1]) || isnan(v[2]) || isnan(v[3]); +#else + return false; +#endif } /*! @@ -198,7 +202,11 @@ glm_vec4_isnan(vec4 v) { CGLM_INLINE bool glm_vec4_isinf(vec4 v) { +#ifndef CGLM_FAST_MATH return isinf(v[0]) || isinf(v[1]) || isinf(v[2]) || isinf(v[3]); +#else + return false; +#endif } /*! diff --git a/test/src/test_vec3.h b/test/src/test_vec3.h index 92043dd..5e9c387 100644 --- a/test/src/test_vec3.h +++ b/test/src/test_vec3.h @@ -872,18 +872,30 @@ TEST_IMPL(GLM_PREFIX, vec3_angle) { float a; a = GLM(vec3_angle)(v1, v1); + +#ifndef CGLM_FAST_MATH ASSERT(!isinf(a)) ASSERT(!isnan(a)) +#endif + ASSERT(test_eq(a, 0.0f)) a = GLM(vec3_angle)(v1, v2); + +#ifndef CGLM_FAST_MATH ASSERT(!isinf(a)) ASSERT(!isnan(a)) +#endif + ASSERT(test_eq(a, GLM_PI_4f)) a = GLM(vec3_angle)(v1, v3); + +#ifndef CGLM_FAST_MATH ASSERT(!isinf(a)) ASSERT(!isnan(a)) +#endif + ASSERT(test_eq(a, GLM_PI_2f)) TEST_SUCCESS @@ -1227,23 +1239,39 @@ TEST_IMPL(GLM_PREFIX, vec3_ortho) { GLM(vec3_ortho)(v4, v8); a = glm_vec3_angle(v1, v5); + +#ifndef CGLM_FAST_MATH ASSERT(!isinf(a)) ASSERT(!isnan(a)) +#endif + ASSERT(test_eq(a, GLM_PI_2f)) a = glm_vec3_angle(v2, v6); + +#ifndef CGLM_FAST_MATH ASSERT(!isinf(a)) ASSERT(!isnan(a)) +#endif + ASSERT(test_eq(a, GLM_PI_2f)) a = glm_vec3_angle(v3, v7); + +#ifndef CGLM_FAST_MATH ASSERT(!isinf(a)) ASSERT(!isnan(a)) +#endif + ASSERT(test_eq(a, GLM_PI_2f)) a = glm_vec3_angle(v4, v8); + +#ifndef CGLM_FAST_MATH ASSERT(!isinf(a)) ASSERT(!isnan(a)) +#endif + ASSERT(test_eq(a, GLM_PI_2f)) TEST_SUCCESS @@ -1692,12 +1720,16 @@ TEST_IMPL(GLM_PREFIX, vec3_max) { TEST_IMPL(GLM_PREFIX, vec3_min) { vec3 v1 = {2.104f, -3.012f, -4.10f}, v2 = {-12.35f, -31.140f, -43.502f}; +#ifndef CGLM_FAST_MATH vec3 v3 = {INFINITY, 0.0f, 0.0f}/*, v4 = {NAN, INFINITY, 2.0f}*/; +#endif vec3 /*v5 = {NAN, -1.0f, -1.0f},*/ v6 = {-1.0f, -11.0f, 11.0f}; ASSERT(test_eq(GLM(vec3_min)(v1), -4.10f)) ASSERT(test_eq(GLM(vec3_min)(v2), -43.502f)) +#ifndef CGLM_FAST_MATH ASSERT(test_eq(GLM(vec3_min)(v3), 0.0f)) +#endif // ASSERT(isnan(GLM(vec3_min)(v4))) // ASSERT(isnan(GLM(vec3_min)(v5))) ASSERT(test_eq(GLM(vec3_min)(v6), -11.0f)) diff --git a/test/src/test_vec4.h b/test/src/test_vec4.h index f017a8a..cb34543 100644 --- a/test/src/test_vec4.h +++ b/test/src/test_vec4.h @@ -1366,14 +1366,18 @@ TEST_IMPL(GLM_PREFIX, vec4_max) { TEST_IMPL(GLM_PREFIX, vec4_min) { vec4 v1 = {2.104f, -3.012f, -4.10f, -4.10f}; vec4 v2 = {-12.35f, -31.140f, -43.502f, -43.502f}; +#ifndef CGLM_FAST_MATH vec4 v3 = {INFINITY, 0.0f, 0.0f, 0.0f}; +#endif // vec4 v4 = {NAN, INFINITY, 2.0f, 2.0f}; // vec4 v5 = {NAN, -1.0f, -1.0f, -1.0f}; vec4 v6 = {-1.0f, -11.0f, 11.0f, 11.0f}; ASSERT(test_eq(GLM(vec4_min)(v1), -4.10f)) ASSERT(test_eq(GLM(vec4_min)(v2), -43.502f)) +#ifndef CGLM_FAST_MATH ASSERT(test_eq(GLM(vec4_min)(v3), 0.0f)) +#endif // ASSERT(isnan(GLM(vec4_min)(v4))) // ASSERT(isnan(GLM(vec4_min)(v5))) ASSERT(test_eq(GLM(vec4_min)(v6), -11.0f))