use fabs and explicitly mark variables as floating point

This commit is contained in:
Krishna Vedala 2020-08-16 22:00:16 -04:00
parent 956e87fcce
commit 0f541b2604
No known key found for this signature in database
GPG Key ID: BA19ACF8FC8792F7

View File

@ -158,8 +158,10 @@ vec_3d unit_vec(const vec_3d *a)
vec_3d n = {0};
float norm = vector_norm(a);
if (fabsf(norm) < EPSILON) // detect possible divide by 0
if (fabsf(norm) < EPSILON)
{ // detect possible divide by 0
return n;
}
if (norm != 1.F) // perform division only if needed
{
@ -206,21 +208,21 @@ static void test()
d = vector_norm(&a);
// printf("|a| = %.4g\n", d);
assert(fabs(d - 3.742) < 0.01);
assert(fabsf(d - 3.742f) < 0.01);
d = vector_norm(&b);
// printf("|b| = %.4g\n", d);
assert(fabs(d - 1.732) < 0.01);
assert(fabsf(d - 1.732f) < 0.01);
d = dot_prod(&a, &b);
// printf("Dot product: %f\n", d);
assert(fabs(d - 6.f) < 0.01);
assert(fabsf(d - 6.f) < 0.01);
vec_3d c = vector_prod(&a, &b);
// printf("Vector product ");
// printf("%s", print_vector(&c, "c"));
assert(fabs(c.x - (-1)) < 0.01);
assert(fabs(c.y - (2)) < 0.01);
assert(fabs(c.z - (-1)) < 0.01);
assert(fabsf(c.x - (-1.f)) < 0.01);
assert(fabsf(c.y - (2.f)) < 0.01);
assert(fabsf(c.z - (-1.f)) < 0.01);
}
/**