|
@@ -1,5 +1,7 @@
|
|
|
#include <glm/gtc/type_precision.hpp>
|
|
#include <glm/gtc/type_precision.hpp>
|
|
|
#include <glm/gtc/quaternion.hpp>
|
|
#include <glm/gtc/quaternion.hpp>
|
|
|
|
|
+#include <glm/gtc/constants.hpp>
|
|
|
|
|
+#include <glm/ext/vector_relational.hpp>
|
|
|
#include <vector>
|
|
#include <vector>
|
|
|
#if GLM_HAS_OPENMP
|
|
#if GLM_HAS_OPENMP
|
|
|
# include <omp.h>
|
|
# include <omp.h>
|
|
@@ -94,27 +96,16 @@ static int test_fvec_size()
|
|
|
static int test_fvec_precision()
|
|
static int test_fvec_precision()
|
|
|
{
|
|
{
|
|
|
int Error = 0;
|
|
int Error = 0;
|
|
|
-/*
|
|
|
|
|
- {
|
|
|
|
|
- glm::f32vec2 v1;
|
|
|
|
|
- glm::lowp_f32vec2 v2((glm::f32vec2(v1)));
|
|
|
|
|
- glm::mediump_f32vec2 v3((glm::f32vec2(v1)));
|
|
|
|
|
- glm::highp_f32vec2 v4((glm::f32vec2(v1)));
|
|
|
|
|
|
|
|
|
|
- Error += glm::all(glm::equal(v1, v2)) ? 0 : 1;
|
|
|
|
|
- Error += glm::all(glm::equal(v1, v3)) ? 0 : 1;
|
|
|
|
|
- Error += glm::all(glm::equal(v1, v4)) ? 0 : 1;
|
|
|
|
|
- }
|
|
|
|
|
-*/
|
|
|
|
|
{
|
|
{
|
|
|
glm::f32vec2 v1(1.f);
|
|
glm::f32vec2 v1(1.f);
|
|
|
glm::lowp_f32vec2 v2(v1);
|
|
glm::lowp_f32vec2 v2(v1);
|
|
|
glm::mediump_f32vec2 v3(v1);
|
|
glm::mediump_f32vec2 v3(v1);
|
|
|
glm::highp_f32vec2 v4(v1);
|
|
glm::highp_f32vec2 v4(v1);
|
|
|
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f32vec2(v2))) ? 0 : 1;
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f32vec2(v3))) ? 0 : 1;
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f32vec2(v4))) ? 0 : 1;
|
|
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f32vec2(v2), glm::epsilon<float>())) ? 0 : 1;
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f32vec2(v3), glm::epsilon<float>())) ? 0 : 1;
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f32vec2(v4), glm::epsilon<float>())) ? 0 : 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
{
|
|
{
|
|
@@ -123,9 +114,9 @@ static int test_fvec_precision()
|
|
|
glm::mediump_f32vec3 v3(v1);
|
|
glm::mediump_f32vec3 v3(v1);
|
|
|
glm::highp_f32vec3 v4(v1);
|
|
glm::highp_f32vec3 v4(v1);
|
|
|
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f32vec3(v2))) ? 0 : 1;
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f32vec3(v3))) ? 0 : 1;
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f32vec3(v4))) ? 0 : 1;
|
|
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f32vec3(v2), glm::epsilon<float>())) ? 0 : 1;
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f32vec3(v3), glm::epsilon<float>())) ? 0 : 1;
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f32vec3(v4), glm::epsilon<float>())) ? 0 : 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
{
|
|
{
|
|
@@ -134,9 +125,9 @@ static int test_fvec_precision()
|
|
|
glm::mediump_f32vec4 v3(v1);
|
|
glm::mediump_f32vec4 v3(v1);
|
|
|
glm::highp_f32vec4 v4(v1);
|
|
glm::highp_f32vec4 v4(v1);
|
|
|
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f32vec4(v2))) ? 0 : 1;
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f32vec4(v3))) ? 0 : 1;
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f32vec4(v4))) ? 0 : 1;
|
|
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f32vec4(v2), glm::epsilon<float>())) ? 0 : 1;
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f32vec4(v3), glm::epsilon<float>())) ? 0 : 1;
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f32vec4(v4), glm::epsilon<float>())) ? 0 : 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return Error;
|
|
return Error;
|
|
@@ -152,9 +143,9 @@ static int test_dvec_precision()
|
|
|
glm::mediump_f64vec2 v3(v1);
|
|
glm::mediump_f64vec2 v3(v1);
|
|
|
glm::highp_f64vec2 v4(v1);
|
|
glm::highp_f64vec2 v4(v1);
|
|
|
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f64vec2(v2))) ? 0 : 1;
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f64vec2(v3))) ? 0 : 1;
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f64vec2(v4))) ? 0 : 1;
|
|
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f64vec2(v2), glm::epsilon<double>())) ? 0 : 1;
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f64vec2(v3), glm::epsilon<double>())) ? 0 : 1;
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f64vec2(v4), glm::epsilon<double>())) ? 0 : 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
{
|
|
{
|
|
@@ -163,9 +154,9 @@ static int test_dvec_precision()
|
|
|
glm::mediump_f64vec3 v3(v1);
|
|
glm::mediump_f64vec3 v3(v1);
|
|
|
glm::highp_f64vec3 v4(v1);
|
|
glm::highp_f64vec3 v4(v1);
|
|
|
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f64vec3(v2))) ? 0 : 1;
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f64vec3(v3))) ? 0 : 1;
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f64vec3(v4))) ? 0 : 1;
|
|
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f64vec3(v2), glm::epsilon<double>())) ? 0 : 1;
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f64vec3(v3), glm::epsilon<double>())) ? 0 : 1;
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f64vec3(v4), glm::epsilon<double>())) ? 0 : 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
{
|
|
{
|
|
@@ -174,9 +165,9 @@ static int test_dvec_precision()
|
|
|
glm::mediump_f64vec4 v3(v1);
|
|
glm::mediump_f64vec4 v3(v1);
|
|
|
glm::highp_f64vec4 v4(v1);
|
|
glm::highp_f64vec4 v4(v1);
|
|
|
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f64vec4(v2))) ? 0 : 1;
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f64vec4(v3))) ? 0 : 1;
|
|
|
|
|
- Error += glm::all(glm::equal(v1, glm::f64vec4(v4))) ? 0 : 1;
|
|
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f64vec4(v2), glm::epsilon<double>())) ? 0 : 1;
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f64vec4(v3), glm::epsilon<double>())) ? 0 : 1;
|
|
|
|
|
+ Error += glm::all(glm::equal(v1, glm::f64vec4(v4), glm::epsilon<double>())) ? 0 : 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return Error;
|
|
return Error;
|
|
@@ -833,9 +824,9 @@ static int test_quat_precision()
|
|
|
glm::f32quat q3(qB);
|
|
glm::f32quat q3(qB);
|
|
|
glm::f32quat q4(qC);
|
|
glm::f32quat q4(qC);
|
|
|
|
|
|
|
|
- Error += glm::all(glm::equal(q1, q2)) ? 0 : 1;
|
|
|
|
|
- Error += glm::all(glm::equal(q1, q3)) ? 0 : 1;
|
|
|
|
|
- Error += glm::all(glm::equal(q1, q4)) ? 0 : 1;
|
|
|
|
|
|
|
+ Error += glm::all(glm::equal(q1, q2, glm::epsilon<float>())) ? 0 : 1;
|
|
|
|
|
+ Error += glm::all(glm::equal(q1, q3, glm::epsilon<float>())) ? 0 : 1;
|
|
|
|
|
+ Error += glm::all(glm::equal(q1, q4, glm::epsilon<float>())) ? 0 : 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return Error;
|
|
return Error;
|
|
@@ -853,7 +844,7 @@ static int test_fvec_conversion()
|
|
|
glm::lowp_ivec4 e = glm::ivec4(d);
|
|
glm::lowp_ivec4 e = glm::ivec4(d);
|
|
|
glm::lowp_ivec3 f = glm::ivec3(e);
|
|
glm::lowp_ivec3 f = glm::ivec3(e);
|
|
|
|
|
|
|
|
- Error += glm::all(glm::equal(b, d)) ? 0 : 1;
|
|
|
|
|
|
|
+ Error += glm::all(glm::equal(b, d, glm::epsilon<float>())) ? 0 : 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return Error;
|
|
return Error;
|