feat: change return type for ptr functions

This commit is contained in:
2025-06-22 23:45:50 +02:00
parent 9230630fb2
commit 72ea516526
3 changed files with 13 additions and 24 deletions

View File

@@ -7,6 +7,7 @@ file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS src/*.c)
file(GLOB_RECURSE HEADERS CONFIGURE_DEPENDS src/*.h) file(GLOB_RECURSE HEADERS CONFIGURE_DEPENDS src/*.h)
add_executable(main ${SOURCES} ${HEADERS}) add_executable(main ${SOURCES} ${HEADERS})
target_link_libraries(main m)
# ==== tests ==== # ==== tests ====
enable_testing() enable_testing()
@@ -16,5 +17,6 @@ list(FILTER SOURCES EXCLUDE REGEX ".*src/main\\.c$")
if(TEST_SOURCES) if(TEST_SOURCES)
add_executable(tests ${TEST_SOURCES} ${SOURCES}) add_executable(tests ${TEST_SOURCES} ${SOURCES})
target_link_libraries(tests m)
add_test(NAME tests COMMAND tests) add_test(NAME tests COMMAND tests)
endif() endif()

View File

@@ -3,18 +3,5 @@
int main(void) int main(void)
{ {
Vec4f_t vec = vec4f(1.f, 2.f, 8.f, 4.f); return 0;
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);
} }

View File

@@ -52,7 +52,7 @@ Vec4f_t vec4f_zero(void)
return vec4f_scalar(0.f); 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) #if defined (SIMD_X86)
__m128 va = _mm_load_ps(a.data); __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]; out->data[i] += a.data[i];
} }
#endif #endif
return *out; return out;
} }
Vec4f_t vec4f_add(Vec4f_t a, Vec4f_t b) 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; 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) #if defined (SIMD_X86)
__m128 va = _mm_load_ps(out->data); __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]; out->data[i] -= a.data[i];
} }
#endif #endif
return *out; return out;
} }
Vec4f_t vec4f_sub(Vec4f_t a, Vec4f_t b) 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; 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) #if defined (SIMD_X86)
__m128 va = _mm_load_ps(out->data); __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; out->data[i] *= scalar;
} }
#endif #endif
return *out; return out;
} }
Vec4f_t vec4f_scale(Vec4f_t a, float scalar) Vec4f_t vec4f_scale(Vec4f_t a, float scalar)
@@ -163,12 +163,12 @@ float vec4f_dot(Vec4f_t a, Vec4f_t b)
#endif #endif
} }
Vec4f_t vec4f_norm_r(Vec4f_t *__restrict v) Vec4f_t* vec4f_norm_r(Vec4f_t *__restrict v)
{ {
float length = vec4f_len(*v); float length = vec4f_len(*v);
if (length < FLT_EPSILON) *v = vec4f_zero(); if (length < FLT_EPSILON) *v = vec4f_zero();
vec4f_scale_r(v, 1.f / length); vec4f_scale_r(v, 1.f / length);
return *v; return v;
} }
Vec4f_t vec4f_norm(Vec4f_t v) Vec4f_t vec4f_norm(Vec4f_t v)
@@ -177,7 +177,7 @@ Vec4f_t vec4f_norm(Vec4f_t v)
return 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)); 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->z += t * (b.z - a->z);
a->w += t * (b.w - a->w); a->w += t * (b.w - a->w);
return *a; return a;
} }
Vec4f_t vec4f_lerp(Vec4f_t a, Vec4f_t b, float t) Vec4f_t vec4f_lerp(Vec4f_t a, Vec4f_t b, float t)