From 01b6c3bb6b7e18136b573b8e834693a93c180496 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 9 Dec 2018 23:16:29 +0100 Subject: Update vector ex. makefile and add vec3_mag function --- vector/makefile | 8 ++++++-- vector/vector.c | 9 ++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) (limited to 'vector') diff --git a/vector/makefile b/vector/makefile index 6ce8fd9..ad56656 100644 --- a/vector/makefile +++ b/vector/makefile @@ -1,17 +1,21 @@ CARGS := -Wall -Werror -I. +LDARGS := -lm CPPARGS := -Wall -Werror -I. -all: cpp-vector.pdf c_build/vectors +all: vector.pdf c_build/vector %.pdf: %.md pandoc \ + --from=markdown+raw_tex \ --latex-engine=xelatex \ + --number-sections \ --filter pandoc-include-code \ + --highlight-style tango \ $< -o $@ c_build/%: %.c mkdir -p c_build - gcc $(CARGS) $< -o $@ + gcc $(CARGS) $< -o $@ $(LDARGS) cpp_build/%: %.cpp mkdir -p cpp_build 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 #include +#include 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); -- cgit v1.2.1