From 13a47ca5987f62267697a2c0abd5144b8ef5fae9 Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Tue, 24 Jan 2017 16:39:57 +0300 Subject: [PATCH] improve getting angle between two vector --- include/cglm-vec.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/cglm-vec.h b/include/cglm-vec.h index 4d5490d..5c30345 100644 --- a/include/cglm-vec.h +++ b/include/cglm-vec.h @@ -372,7 +372,11 @@ glm_vec4_normalize_to(vec4 vec, vec4 dest) { CGLM_INLINE float glm_vec_angle(vec3 v1, vec3 v2) { - return acosf(glm_vec_dot(v1, v2) / glm_vec_norm(v1) * glm_vec_norm(v2)); + float norm; + + /* maybe compiler generate approximation instruction (rcp) */ + norm = 1.0f / (glm_vec_norm(v1) * glm_vec_norm(v2)); + return acosf(glm_vec_dot(v1, v2) * norm); } CGLM_INLINE