Skip to content

Commit

Permalink
use fabs and explicitly mark variables as floating point
Browse files Browse the repository at this point in the history
  • Loading branch information
kvedala committed Aug 17, 2020
1 parent 956e87f commit 0f541b2
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions geometry/vectors_3d.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
{
Expand Down Expand Up @@ -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);
}

/**
Expand Down

0 comments on commit 0f541b2

Please sign in to comment.