|
|
@ -3,6 +3,7 @@ |
|
|
|
#if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE |
|
|
|
#if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE |
|
|
|
#include <glm/gtc/type_aligned.hpp> |
|
|
|
#include <glm/gtc/type_aligned.hpp> |
|
|
|
#include <glm/gtc/type_precision.hpp> |
|
|
|
#include <glm/gtc/type_precision.hpp> |
|
|
|
|
|
|
|
#include <glm/ext/scalar_relational.hpp> |
|
|
|
#include <glm/ext/vector_relational.hpp> |
|
|
|
#include <glm/ext/vector_relational.hpp> |
|
|
|
#include <glm/ext/matrix_relational.hpp> |
|
|
|
#include <glm/ext/matrix_relational.hpp> |
|
|
|
|
|
|
|
|
|
|
@ -97,35 +98,35 @@ static int test_copy_vec4() |
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_vec4 const u(1.f, 2.f, 3.f, 4.f); |
|
|
|
glm::aligned_vec4 const u(1.f, 2.f, 3.f, 4.f); |
|
|
|
glm::packed_vec4 const v(u); |
|
|
|
glm::packed_vec4 const v(u); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.w == u.w ? 0 : 1; |
|
|
|
Error += glm::equal(v.w, u.w, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::packed_vec4 const u(1.f, 2.f, 3.f, 4.f); |
|
|
|
glm::packed_vec4 const u(1.f, 2.f, 3.f, 4.f); |
|
|
|
glm::aligned_vec4 const v(u); |
|
|
|
glm::aligned_vec4 const v(u); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.w == u.w ? 0 : 1; |
|
|
|
Error += glm::equal(v.w, u.w, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_dvec4 const u(1., 2., 3., 4.); |
|
|
|
glm::aligned_dvec4 const u(1., 2., 3., 4.); |
|
|
|
glm::packed_dvec4 const v(u); |
|
|
|
glm::packed_dvec4 const v(u); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.w == u.w ? 0 : 1; |
|
|
|
Error += glm::equal(v.w, u.w, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::packed_dvec4 const u(1.f, 2.f, 3.f, 4.f); |
|
|
|
glm::packed_dvec4 const u(1.f, 2.f, 3.f, 4.f); |
|
|
|
glm::aligned_dvec4 const v(u); |
|
|
|
glm::aligned_dvec4 const v(u); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.w == u.w ? 0 : 1; |
|
|
|
Error += glm::equal(v.w, u.w, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
@ -154,31 +155,31 @@ static int test_copy_vec3() |
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f); |
|
|
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f); |
|
|
|
glm::packed_vec3 const v(u); |
|
|
|
glm::packed_vec3 const v(u); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::packed_vec3 const u(1.f, 2.f, 3.f); |
|
|
|
glm::packed_vec3 const u(1.f, 2.f, 3.f); |
|
|
|
glm::aligned_vec3 const v(u); |
|
|
|
glm::aligned_vec3 const v(u); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_dvec3 const u(1., 2., 3.); |
|
|
|
glm::aligned_dvec3 const u(1., 2., 3.); |
|
|
|
glm::packed_dvec3 const v(u); |
|
|
|
glm::packed_dvec3 const v(u); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::packed_dvec3 const u(1.f, 2.f, 3.f); |
|
|
|
glm::packed_dvec3 const u(1.f, 2.f, 3.f); |
|
|
|
glm::aligned_dvec3 const v(u); |
|
|
|
glm::aligned_dvec3 const v(u); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
@ -205,49 +206,49 @@ static int test_splat_vec3() |
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f); |
|
|
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f); |
|
|
|
glm::aligned_vec3 const v(glm::splatX(u)); |
|
|
|
glm::aligned_vec3 const v(glm::splatX(u)); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.y == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.x, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.z == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.x, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f); |
|
|
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f); |
|
|
|
glm::aligned_vec3 const v(glm::splatY(u)); |
|
|
|
glm::aligned_vec3 const v(glm::splatY(u)); |
|
|
|
Error += v.x == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.y, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.z == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.y, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f); |
|
|
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f); |
|
|
|
glm::aligned_vec3 const v(glm::splatZ(u)); |
|
|
|
glm::aligned_vec3 const v(glm::splatZ(u)); |
|
|
|
Error += v.x == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.z, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.y == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.z, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_dvec3 const u(1., 2., 3.); |
|
|
|
glm::aligned_dvec3 const u(1., 2., 3.); |
|
|
|
glm::aligned_dvec3 const v(glm::splatX(u)); |
|
|
|
glm::aligned_dvec3 const v(glm::splatX(u)); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.y == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.x, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.z == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.x, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_dvec3 const u(1., 2., 3.); |
|
|
|
glm::aligned_dvec3 const u(1., 2., 3.); |
|
|
|
glm::aligned_dvec3 const v(glm::splatY(u)); |
|
|
|
glm::aligned_dvec3 const v(glm::splatY(u)); |
|
|
|
Error += v.x == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.y, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.z == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.y, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_dvec3 const u(1., 2., 3.); |
|
|
|
glm::aligned_dvec3 const u(1., 2., 3.); |
|
|
|
glm::aligned_dvec3 const v(glm::splatZ(u)); |
|
|
|
glm::aligned_dvec3 const v(glm::splatZ(u)); |
|
|
|
Error += v.x == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.z, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.y == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.z, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return Error; |
|
|
|
return Error; |
|
|
@ -260,52 +261,52 @@ static int test_splat_vec4() |
|
|
|
glm::aligned_vec4 const u(1.f, 2.f, 3.f, 4.f); |
|
|
|
glm::aligned_vec4 const u(1.f, 2.f, 3.f, 4.f); |
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_vec4 const v(glm::splatX(u)); |
|
|
|
glm::aligned_vec4 const v(glm::splatX(u)); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.y == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.x, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.z == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.x, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.w == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.w, u.x, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_vec4 const v(glm::splatY(u)); |
|
|
|
glm::aligned_vec4 const v(glm::splatY(u)); |
|
|
|
Error += v.x == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.y, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.z == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.y, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.w == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.w, u.y, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_vec4 const v(glm::splatZ(u)); |
|
|
|
glm::aligned_vec4 const v(glm::splatZ(u)); |
|
|
|
Error += v.x == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.z, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.y == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.z, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.w == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.w, u.z, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_dvec4 const u(1.f, 2.f, 3.f, 4.f); |
|
|
|
glm::aligned_dvec4 const u(1.f, 2.f, 3.f, 4.f); |
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_dvec4 const v(glm::splatX(u)); |
|
|
|
glm::aligned_dvec4 const v(glm::splatX(u)); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.y == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.x, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.z == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.x, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.w == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.w, u.x, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_dvec4 const v(glm::splatY(u)); |
|
|
|
glm::aligned_dvec4 const v(glm::splatY(u)); |
|
|
|
Error += v.x == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.y, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.z == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.y, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.w == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.w, u.y, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_dvec4 const v(glm::splatZ(u)); |
|
|
|
glm::aligned_dvec4 const v(glm::splatZ(u)); |
|
|
|
Error += v.x == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.z, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.y == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.z, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.w == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.w, u.z, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return Error; |
|
|
|
return Error; |
|
|
@ -318,72 +319,62 @@ static int test_copy_vec4_vec3() |
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f); |
|
|
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f); |
|
|
|
glm::aligned_vec4 const v(glm::xyz0(u)); |
|
|
|
glm::aligned_vec4 const v(glm::xyz0(u)); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.w == 0.0f ? 0 : 1; |
|
|
|
Error += glm::equal(v.w, 0.0f, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f); |
|
|
|
glm::aligned_vec3 const u(1.f, 2.f, 3.f); |
|
|
|
glm::aligned_vec4 const v(glm::xyz1(u)); |
|
|
|
glm::aligned_vec4 const v(glm::xyz1(u)); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.w == 1.0f ? 0 : 1; |
|
|
|
Error += glm::equal(v.w, 1.0f, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_dvec3 const u(1., 2., 3.); |
|
|
|
glm::aligned_dvec3 const u(1., 2., 3.); |
|
|
|
glm::aligned_dvec4 const v(glm::xyz0(u)); |
|
|
|
glm::aligned_dvec4 const v(glm::xyz0(u)); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.w == 0. ? 0 : 1; |
|
|
|
Error += glm::equal(v.w, 0.0, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_dvec3 const u(1., 2., 3.); |
|
|
|
glm::aligned_dvec3 const u(1., 2., 3.); |
|
|
|
glm::aligned_dvec4 const v(glm::xyz1(u)); |
|
|
|
glm::aligned_dvec4 const v(glm::xyz1(u)); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.w == 1.0 ? 0 : 1; |
|
|
|
Error += glm::equal(v.w, 1.0, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
glm::aligned_dvec3 const u(1., 2., 3.); |
|
|
|
|
|
|
|
glm::aligned_dvec4 const v(glm::xyzz(u)); |
|
|
|
|
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
|
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
|
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
|
|
|
|
Error += v.w == u.z ? 0 : 1; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_dvec3 const u(1., 2., 3.); |
|
|
|
glm::aligned_dvec3 const u(1., 2., 3.); |
|
|
|
glm::aligned_dvec4 const v(glm::xyzz(u)); |
|
|
|
glm::aligned_dvec4 const v(glm::xyzz(u)); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.w == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.w, u.z, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_vec4 const u(1.f, 2.f, 3.f, 4.f); |
|
|
|
glm::aligned_vec4 const u(1.f, 2.f, 3.f, 4.f); |
|
|
|
glm::aligned_vec3 const v(glm::xyz(u)); |
|
|
|
glm::aligned_vec3 const v(glm::xyz(u)); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<float>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
glm::aligned_dvec4 const u(1., 2., 3., 4.); |
|
|
|
glm::aligned_dvec4 const u(1., 2., 3., 4.); |
|
|
|
glm::aligned_dvec3 const v(glm::xyz(u)); |
|
|
|
glm::aligned_dvec3 const v(glm::xyz(u)); |
|
|
|
Error += v.x == u.x ? 0 : 1; |
|
|
|
Error += glm::equal(v.x, u.x, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.y == u.y ? 0 : 1; |
|
|
|
Error += glm::equal(v.y, u.y, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
Error += v.z == u.z ? 0 : 1; |
|
|
|
Error += glm::equal(v.z, u.z, glm::epsilon<double>()) ? 0 : 1; |
|
|
|
} |
|
|
|
} |
|
|
|
return Error; |
|
|
|
return Error; |
|
|
|
} |
|
|
|
} |
|
|
|