aboutsummaryrefslogtreecommitdiffstats
path: root/src/vec3.cpp
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2026-05-05 00:50:13 +0200
committerladevieq <ladevie.quentin@gmail.com>2026-05-05 00:50:49 +0200
commit37fdcb8a0f435c42f737252450626f2bd38bbd0f (patch)
tree7eeb45a2d2d08483409a04c74fbc74fb2bbcde9f /src/vec3.cpp
parent6818cbfe21beefc04e4a174d44a92159c34cead1 (diff)
Clean up around included files
Diffstat (limited to 'src/vec3.cpp')
-rw-r--r--src/vec3.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/vec3.cpp b/src/vec3.cpp
index 3167bc2..414ee73 100644
--- a/src/vec3.cpp
+++ b/src/vec3.cpp
@@ -1,10 +1,8 @@
-#include <cmath>
-#include <cassert.>
-#include <smmintrin.h>
-
-#include "utils.hpp"
#include "vec3.hpp"
+// #include <smmintrin.h>
+// #include <xmmintrin.h>
+
vec3::vec3() : v(_mm_setzero_ps()) {}
vec3::vec3(float x) : v(_mm_set1_ps(x)) {}
@@ -122,7 +120,16 @@ bool vec3::near_zero() const {
float v0 = fabs(static_cast<float>(_mm_extract_ps(v, 0)));
float v1 = fabs(static_cast<float>(_mm_extract_ps(v, 1)));
float v2 = fabs(static_cast<float>(_mm_extract_ps(v, 2)));
- return (v0 < EPSILON) && (v1 < EPSILON) && (v2 < EPSILON);
+ return (v0 < FLT_EPSILON) && (v1 < FLT_EPSILON) && (v2 < FLT_EPSILON);
+}
+
+bool vec3::is_zero() const {
+ // __m128 e = _mm_set1_ps(EPSILON);
+ // _mm_cmplt_ps(_mm_andnot_ps(_mm_set1_ps(-0.0f), v), e);
+ float v0 = fabs(static_cast<float>(_mm_extract_ps(v, 0)));
+ float v1 = fabs(static_cast<float>(_mm_extract_ps(v, 1)));
+ float v2 = fabs(static_cast<float>(_mm_extract_ps(v, 2)));
+ return (v0 == 0.f) && (v1 == 0.f) && (v2 == 0.f);
}
void vec3::print() const {