Merge branch 'master' into cglm-structs

This commit is contained in:
Alejandro Coto Gutiérrez
2019-04-30 14:58:02 -05:00
committed by GitHub
7 changed files with 26 additions and 19 deletions

View File

@@ -57,3 +57,6 @@ after_success:
--gcov-options '\-lp'
--verbose;
fi
after_failure:
- cat ./test-suite.log

View File

@@ -233,7 +233,7 @@ glm_quat_normalize_to(versor q, versor dest) {
dot = glm_vec4_norm2(q);
if (dot <= 0.0f) {
glm_quat_identity(q);
glm_quat_identity(dest);
return;
}

View File

@@ -690,18 +690,9 @@ CGLM_INLINE
float
glm_vec4_distance(vec4 a, vec4 b) {
#if defined( __SSE__ ) || defined( __SSE2__ )
__m128 x0;
x0 = _mm_sub_ps(glmm_load(b), glmm_load(a));
x0 = _mm_mul_ps(x0, x0);
x0 = _mm_add_ps(x0, glmm_shuff1(x0, 1, 0, 3, 2));
return _mm_cvtss_f32(_mm_sqrt_ss(_mm_add_ss(x0,
glmm_shuff1(x0, 0, 1, 0, 1))));
return glmm_norm(_mm_sub_ps(glmm_load(b), glmm_load(a)));
#elif defined(CGLM_NEON_FP)
float32x4_t v0;
float32_t r;
v0 = vsubq_f32(vld1q_f32(a), vld1q_f32(b));
r = vaddvq_f32(vmulq_f32(v0, v0));
return sqrtf(r);
return glmm_norm(vsubq_f32(glmm_load(a), glmm_load(b)));
#else
return sqrtf(glm_pow2(b[0] - a[0])
+ glm_pow2(b[1] - a[1])

View File

@@ -8,12 +8,17 @@
cd $(dirname "$0")
mkdir -p .libs
mkdir -p "$(pwd)/.libs"
libmocka_folder=$(pwd)/test/lib/cmocka/build/src/
if [ "$(uname)" = "Darwin" ]; then
ln -sf $(pwd)/test/lib/cmocka/build/src/libcmocka.0.dylib \
.libs/libcmocka.0.dylib;
libcmocka=libcmocka.0.dylib
else
ln -sf $(pwd)/test/lib/cmocka/build/src/libcmocka.so.0 \
.libs/libcmocka.so.0;
libcmocka=libcmocka.so.0
fi
libcmocka_path="$libmocka_folder$libcmocka"
if [ -f "$libcmocka_path" ]; then
ln -sf "$libcmocka_path" "$(pwd)/.libs/$libcmocka";
fi

View File

@@ -51,8 +51,8 @@ test_bezier(void **state) {
Bs_plain = test_bezier_plain(s, p0, c0, c1, p1);
assert_true(glm_eq(Bs, Bs_plain));
assert_true(glm_eq(smc, Bs_plain));
assert_true(glm_eq(Bs, smc));
test_assert_eqf(smc, Bs_plain);
test_assert_eqf(Bs, smc);
/* test cubic hermite */
smc = glm_smc(s, GLM_HERMITE_MAT, (vec4){p0, p1, c0, c1});

View File

@@ -5,6 +5,7 @@
#include "test_common.h"
#include <stdlib.h>
#include <math.h>
#define m 4
#define n 4

View File

@@ -93,6 +93,13 @@ test_vec4(void **state) {
/* 3. test SIMD norm2 */
test_rand_vec4(v);
test_assert_eqf(test_vec4_norm2(v), glm_vec4_norm2(v));
/* 4. test SSE/SIMD distance */
test_rand_vec4(v1);
test_rand_vec4(v2);
d1 = glm_vec4_distance(v1, v2);
d2 = sqrtf(powf(v1[0]-v2[0], 2.0f) + pow(v1[1]-v2[1], 2.0f) + pow(v1[2]-v2[2], 2.0f) + pow(v1[3]-v2[3], 2.0f));
assert_true(fabsf(d1 - d2) <= 0.000009);
}
/* test zero */