From 72ea516526943099d7bb4c57cf921fd8fe91c85d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20GUEZO?= Date: Sun, 22 Jun 2025 23:45:50 +0200 Subject: [PATCH] feat: change return type for ptr functions --- CMakeLists.txt | 2 ++ src/main.c | 15 +-------------- src/math/vec4.c | 20 ++++++++++---------- 3 files changed, 13 insertions(+), 24 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b038d98..1acd92b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,7 @@ file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS src/*.c) file(GLOB_RECURSE HEADERS CONFIGURE_DEPENDS src/*.h) add_executable(main ${SOURCES} ${HEADERS}) +target_link_libraries(main m) # ==== tests ==== enable_testing() @@ -16,5 +17,6 @@ list(FILTER SOURCES EXCLUDE REGEX ".*src/main\\.c$") if(TEST_SOURCES) add_executable(tests ${TEST_SOURCES} ${SOURCES}) + target_link_libraries(tests m) add_test(NAME tests COMMAND tests) endif() diff --git a/src/main.c b/src/main.c index fb88ce6..09d4445 100644 --- a/src/main.c +++ b/src/main.c @@ -3,18 +3,5 @@ int main(void) { - Vec4f_t vec = vec4f(1.f, 2.f, 8.f, 4.f); - printf("%f %f %f %f\n", vec.x, vec.y, vec.z, vec.w); - - Vec4f_t vec2 = vec4f_clone(&vec); - printf("%f %f %f %f\n", vec2.x, vec2.y, vec2.z, vec2.w); - - Vec4f_t vec3 = vec4f_add(vec, vec2); - printf("%f %f %f %f\n", vec3.x, vec3.y, vec3.z, vec3.w); - - Vec4f_t vec4 = vec4f_sub(vec, vec3); - printf("%f %f %f %f\n", vec4.x, vec4.y, vec4.z, vec4.w); - - Vec4f_t vec5 = vec4f_scale(vec4, 5.f); - printf("%f %f %f %f\n", vec5.x, vec5.y, vec5.z, vec5.w); + return 0; } diff --git a/src/math/vec4.c b/src/math/vec4.c index ace2a70..b8771a6 100644 --- a/src/math/vec4.c +++ b/src/math/vec4.c @@ -52,7 +52,7 @@ Vec4f_t vec4f_zero(void) return vec4f_scalar(0.f); } -Vec4f_t vec4f_add_r(Vec4f_t *__restrict out, Vec4f_t a) +Vec4f_t* vec4f_add_r(Vec4f_t *__restrict out, Vec4f_t a) { #if defined (SIMD_X86) __m128 va = _mm_load_ps(a.data); @@ -70,7 +70,7 @@ Vec4f_t vec4f_add_r(Vec4f_t *__restrict out, Vec4f_t a) out->data[i] += a.data[i]; } #endif - return *out; + return out; } Vec4f_t vec4f_add(Vec4f_t a, Vec4f_t b) @@ -79,7 +79,7 @@ Vec4f_t vec4f_add(Vec4f_t a, Vec4f_t b) return a; } -Vec4f_t vec4f_sub_r(Vec4f_t *__restrict out, Vec4f_t a) +Vec4f_t* vec4f_sub_r(Vec4f_t *__restrict out, Vec4f_t a) { #if defined (SIMD_X86) __m128 va = _mm_load_ps(out->data); @@ -98,7 +98,7 @@ Vec4f_t vec4f_sub_r(Vec4f_t *__restrict out, Vec4f_t a) out->data[i] -= a.data[i]; } #endif - return *out; + return out; } Vec4f_t vec4f_sub(Vec4f_t a, Vec4f_t b) @@ -107,7 +107,7 @@ Vec4f_t vec4f_sub(Vec4f_t a, Vec4f_t b) return a; } -Vec4f_t vec4f_scale_r(Vec4f_t *__restrict out, float scalar) +Vec4f_t* vec4f_scale_r(Vec4f_t *__restrict out, float scalar) { #if defined (SIMD_X86) __m128 va = _mm_load_ps(out->data); @@ -125,7 +125,7 @@ Vec4f_t vec4f_scale_r(Vec4f_t *__restrict out, float scalar) out->data[i] *= scalar; } #endif - return *out; + return out; } Vec4f_t vec4f_scale(Vec4f_t a, float scalar) @@ -163,12 +163,12 @@ float vec4f_dot(Vec4f_t a, Vec4f_t b) #endif } -Vec4f_t vec4f_norm_r(Vec4f_t *__restrict v) +Vec4f_t* vec4f_norm_r(Vec4f_t *__restrict v) { float length = vec4f_len(*v); if (length < FLT_EPSILON) *v = vec4f_zero(); vec4f_scale_r(v, 1.f / length); - return *v; + return v; } Vec4f_t vec4f_norm(Vec4f_t v) @@ -177,7 +177,7 @@ Vec4f_t vec4f_norm(Vec4f_t v) return v; } -Vec4f_t vec4f_lerp_r(Vec4f_t *__restrict a, Vec4f_t b, float t) +Vec4f_t* vec4f_lerp_r(Vec4f_t *__restrict a, Vec4f_t b, float t) { t = fmaxf(0.f, fminf(t, 1.f)); @@ -186,7 +186,7 @@ Vec4f_t vec4f_lerp_r(Vec4f_t *__restrict a, Vec4f_t b, float t) a->z += t * (b.z - a->z); a->w += t * (b.w - a->w); - return *a; + return a; } Vec4f_t vec4f_lerp(Vec4f_t a, Vec4f_t b, float t)