summaryrefslogtreecommitdiffstats
path: root/vector/vector.c
diff options
context:
space:
mode:
Diffstat (limited to 'vector/vector.c')
-rw-r--r--vector/vector.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/vector/vector.c b/vector/vector.c
index c8a5906..59f48cc 100644
--- a/vector/vector.c
+++ b/vector/vector.c
@@ -1,5 +1,6 @@
#include <stddef.h>
#include <stdio.h>
+#include <math.h>
struct vec3 {
double x;
@@ -64,12 +65,16 @@ struct vec3 vec3_cross(struct vec3 * const v, struct vec3 * const u)
return result;
}
+double vec3_mag(struct vec3 * const v) {
+ return sqrt((v->x * v->x) + (v->y * v->y) + (v->z * v->z));
+}
+
void vec3_print(struct vec3 * const v)
{
if (v == NULL)
return;
- printf("<%.2f,%.2f,%.2f>\n", v->x, v->y, v->y);
+ printf("<%.2f,%.2f,%.2f>\n", v->x, v->y, v->z);
}
@@ -84,6 +89,8 @@ int main(int argc, char *argv[])
printf("b = ");
vec3_print(&b);
+ printf("||a|| = %f\n", vec3_mag(&a));
+
printf("sum a + b : ");
res = vec3_add(&a, &b);
vec3_print(&res);