mirror of
https://github.com/recp/cglm.git
synced 2026-02-17 03:39:05 +00:00
supress fast-math warns
This commit is contained in:
@@ -136,7 +136,11 @@ glm_vec2_min(vec2 v) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
bool
|
bool
|
||||||
glm_vec2_isnan(vec2 v) {
|
glm_vec2_isnan(vec2 v) {
|
||||||
|
#ifndef CGLM_FAST_MATH
|
||||||
return isnan(v[0]) || isnan(v[1]);
|
return isnan(v[0]) || isnan(v[1]);
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -148,7 +152,11 @@ glm_vec2_isnan(vec2 v) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
bool
|
bool
|
||||||
glm_vec2_isinf(vec2 v) {
|
glm_vec2_isinf(vec2 v) {
|
||||||
|
#ifndef CGLM_FAST_MATH
|
||||||
return isinf(v[0]) || isinf(v[1]);
|
return isinf(v[0]) || isinf(v[1]);
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
@@ -172,7 +172,11 @@ glm_vec3_min(vec3 v) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
bool
|
bool
|
||||||
glm_vec3_isnan(vec3 v) {
|
glm_vec3_isnan(vec3 v) {
|
||||||
|
#ifndef CGLM_FAST_MATH
|
||||||
return isnan(v[0]) || isnan(v[1]) || isnan(v[2]);
|
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
|
CGLM_INLINE
|
||||||
bool
|
bool
|
||||||
glm_vec3_isinf(vec3 v) {
|
glm_vec3_isinf(vec3 v) {
|
||||||
|
#ifndef CGLM_FAST_MATH
|
||||||
return isinf(v[0]) || isinf(v[1]) || isinf(v[2]);
|
return isinf(v[0]) || isinf(v[1]) || isinf(v[2]);
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
@@ -186,7 +186,11 @@ glm_vec4_min(vec4 v) {
|
|||||||
CGLM_INLINE
|
CGLM_INLINE
|
||||||
bool
|
bool
|
||||||
glm_vec4_isnan(vec4 v) {
|
glm_vec4_isnan(vec4 v) {
|
||||||
|
#ifndef CGLM_FAST_MATH
|
||||||
return isnan(v[0]) || isnan(v[1]) || isnan(v[2]) || isnan(v[3]);
|
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
|
CGLM_INLINE
|
||||||
bool
|
bool
|
||||||
glm_vec4_isinf(vec4 v) {
|
glm_vec4_isinf(vec4 v) {
|
||||||
|
#ifndef CGLM_FAST_MATH
|
||||||
return isinf(v[0]) || isinf(v[1]) || isinf(v[2]) || isinf(v[3]);
|
return isinf(v[0]) || isinf(v[1]) || isinf(v[2]) || isinf(v[3]);
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
@@ -872,18 +872,30 @@ TEST_IMPL(GLM_PREFIX, vec3_angle) {
|
|||||||
float a;
|
float a;
|
||||||
|
|
||||||
a = GLM(vec3_angle)(v1, v1);
|
a = GLM(vec3_angle)(v1, v1);
|
||||||
|
|
||||||
|
#ifndef CGLM_FAST_MATH
|
||||||
ASSERT(!isinf(a))
|
ASSERT(!isinf(a))
|
||||||
ASSERT(!isnan(a))
|
ASSERT(!isnan(a))
|
||||||
|
#endif
|
||||||
|
|
||||||
ASSERT(test_eq(a, 0.0f))
|
ASSERT(test_eq(a, 0.0f))
|
||||||
|
|
||||||
a = GLM(vec3_angle)(v1, v2);
|
a = GLM(vec3_angle)(v1, v2);
|
||||||
|
|
||||||
|
#ifndef CGLM_FAST_MATH
|
||||||
ASSERT(!isinf(a))
|
ASSERT(!isinf(a))
|
||||||
ASSERT(!isnan(a))
|
ASSERT(!isnan(a))
|
||||||
|
#endif
|
||||||
|
|
||||||
ASSERT(test_eq(a, GLM_PI_4f))
|
ASSERT(test_eq(a, GLM_PI_4f))
|
||||||
|
|
||||||
a = GLM(vec3_angle)(v1, v3);
|
a = GLM(vec3_angle)(v1, v3);
|
||||||
|
|
||||||
|
#ifndef CGLM_FAST_MATH
|
||||||
ASSERT(!isinf(a))
|
ASSERT(!isinf(a))
|
||||||
ASSERT(!isnan(a))
|
ASSERT(!isnan(a))
|
||||||
|
#endif
|
||||||
|
|
||||||
ASSERT(test_eq(a, GLM_PI_2f))
|
ASSERT(test_eq(a, GLM_PI_2f))
|
||||||
|
|
||||||
TEST_SUCCESS
|
TEST_SUCCESS
|
||||||
@@ -1227,23 +1239,39 @@ TEST_IMPL(GLM_PREFIX, vec3_ortho) {
|
|||||||
GLM(vec3_ortho)(v4, v8);
|
GLM(vec3_ortho)(v4, v8);
|
||||||
|
|
||||||
a = glm_vec3_angle(v1, v5);
|
a = glm_vec3_angle(v1, v5);
|
||||||
|
|
||||||
|
#ifndef CGLM_FAST_MATH
|
||||||
ASSERT(!isinf(a))
|
ASSERT(!isinf(a))
|
||||||
ASSERT(!isnan(a))
|
ASSERT(!isnan(a))
|
||||||
|
#endif
|
||||||
|
|
||||||
ASSERT(test_eq(a, GLM_PI_2f))
|
ASSERT(test_eq(a, GLM_PI_2f))
|
||||||
|
|
||||||
a = glm_vec3_angle(v2, v6);
|
a = glm_vec3_angle(v2, v6);
|
||||||
|
|
||||||
|
#ifndef CGLM_FAST_MATH
|
||||||
ASSERT(!isinf(a))
|
ASSERT(!isinf(a))
|
||||||
ASSERT(!isnan(a))
|
ASSERT(!isnan(a))
|
||||||
|
#endif
|
||||||
|
|
||||||
ASSERT(test_eq(a, GLM_PI_2f))
|
ASSERT(test_eq(a, GLM_PI_2f))
|
||||||
|
|
||||||
a = glm_vec3_angle(v3, v7);
|
a = glm_vec3_angle(v3, v7);
|
||||||
|
|
||||||
|
#ifndef CGLM_FAST_MATH
|
||||||
ASSERT(!isinf(a))
|
ASSERT(!isinf(a))
|
||||||
ASSERT(!isnan(a))
|
ASSERT(!isnan(a))
|
||||||
|
#endif
|
||||||
|
|
||||||
ASSERT(test_eq(a, GLM_PI_2f))
|
ASSERT(test_eq(a, GLM_PI_2f))
|
||||||
|
|
||||||
a = glm_vec3_angle(v4, v8);
|
a = glm_vec3_angle(v4, v8);
|
||||||
|
|
||||||
|
#ifndef CGLM_FAST_MATH
|
||||||
ASSERT(!isinf(a))
|
ASSERT(!isinf(a))
|
||||||
ASSERT(!isnan(a))
|
ASSERT(!isnan(a))
|
||||||
|
#endif
|
||||||
|
|
||||||
ASSERT(test_eq(a, GLM_PI_2f))
|
ASSERT(test_eq(a, GLM_PI_2f))
|
||||||
|
|
||||||
TEST_SUCCESS
|
TEST_SUCCESS
|
||||||
@@ -1692,12 +1720,16 @@ TEST_IMPL(GLM_PREFIX, vec3_max) {
|
|||||||
|
|
||||||
TEST_IMPL(GLM_PREFIX, vec3_min) {
|
TEST_IMPL(GLM_PREFIX, vec3_min) {
|
||||||
vec3 v1 = {2.104f, -3.012f, -4.10f}, v2 = {-12.35f, -31.140f, -43.502f};
|
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}*/;
|
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};
|
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)(v1), -4.10f))
|
||||||
ASSERT(test_eq(GLM(vec3_min)(v2), -43.502f))
|
ASSERT(test_eq(GLM(vec3_min)(v2), -43.502f))
|
||||||
|
#ifndef CGLM_FAST_MATH
|
||||||
ASSERT(test_eq(GLM(vec3_min)(v3), 0.0f))
|
ASSERT(test_eq(GLM(vec3_min)(v3), 0.0f))
|
||||||
|
#endif
|
||||||
// ASSERT(isnan(GLM(vec3_min)(v4)))
|
// ASSERT(isnan(GLM(vec3_min)(v4)))
|
||||||
// ASSERT(isnan(GLM(vec3_min)(v5)))
|
// ASSERT(isnan(GLM(vec3_min)(v5)))
|
||||||
ASSERT(test_eq(GLM(vec3_min)(v6), -11.0f))
|
ASSERT(test_eq(GLM(vec3_min)(v6), -11.0f))
|
||||||
|
|||||||
@@ -1366,14 +1366,18 @@ TEST_IMPL(GLM_PREFIX, vec4_max) {
|
|||||||
TEST_IMPL(GLM_PREFIX, vec4_min) {
|
TEST_IMPL(GLM_PREFIX, vec4_min) {
|
||||||
vec4 v1 = {2.104f, -3.012f, -4.10f, -4.10f};
|
vec4 v1 = {2.104f, -3.012f, -4.10f, -4.10f};
|
||||||
vec4 v2 = {-12.35f, -31.140f, -43.502f, -43.502f};
|
vec4 v2 = {-12.35f, -31.140f, -43.502f, -43.502f};
|
||||||
|
#ifndef CGLM_FAST_MATH
|
||||||
vec4 v3 = {INFINITY, 0.0f, 0.0f, 0.0f};
|
vec4 v3 = {INFINITY, 0.0f, 0.0f, 0.0f};
|
||||||
|
#endif
|
||||||
// vec4 v4 = {NAN, INFINITY, 2.0f, 2.0f};
|
// vec4 v4 = {NAN, INFINITY, 2.0f, 2.0f};
|
||||||
// vec4 v5 = {NAN, -1.0f, -1.0f, -1.0f};
|
// vec4 v5 = {NAN, -1.0f, -1.0f, -1.0f};
|
||||||
vec4 v6 = {-1.0f, -11.0f, 11.0f, 11.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)(v1), -4.10f))
|
||||||
ASSERT(test_eq(GLM(vec4_min)(v2), -43.502f))
|
ASSERT(test_eq(GLM(vec4_min)(v2), -43.502f))
|
||||||
|
#ifndef CGLM_FAST_MATH
|
||||||
ASSERT(test_eq(GLM(vec4_min)(v3), 0.0f))
|
ASSERT(test_eq(GLM(vec4_min)(v3), 0.0f))
|
||||||
|
#endif
|
||||||
// ASSERT(isnan(GLM(vec4_min)(v4)))
|
// ASSERT(isnan(GLM(vec4_min)(v4)))
|
||||||
// ASSERT(isnan(GLM(vec4_min)(v5)))
|
// ASSERT(isnan(GLM(vec4_min)(v5)))
|
||||||
ASSERT(test_eq(GLM(vec4_min)(v6), -11.0f))
|
ASSERT(test_eq(GLM(vec4_min)(v6), -11.0f))
|
||||||
|
|||||||
Reference in New Issue
Block a user