initial checkin of the new concept approach
[physik/posic.git] / math / math.c
diff --git a/math/math.c b/math/math.c
new file mode 100644 (file)
index 0000000..6d707e9
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * math.c - basic vector calculations
+ *
+ * author: Frank Zirkelbach <frank.zirkelbach@physik.uni-augsburg.de>
+ *
+ */
+
+
+#include <string.h>
+#include "math.h"
+
+int v3_add(t_3dvec *sum,t_3dvec *a,t_3dvec *b) {
+
+       sum->x=a->x+b->x;
+       sum->y=a->y+b->y;
+       sum->z=a->z+b->z;
+
+       return 0;
+}
+
+int v3_sub(t_3dvec *sum,t_3dvec *a,t_3dvec *b) {
+
+       sum->x=a->x-b->x;
+       sum->y=a->y-b->y;
+       sum->z=a->z-b->z;
+
+       return 0;
+}
+
+int v3_scale(t_3dvec *result,t_3dvec *a,double s) {
+
+       result->x=s*a->x;
+       result->y=s*a->y;
+       result->z=s*a->z;
+
+       return 0;
+}
+
+int v3_zero(t_3dvec *vec) {
+
+       vec->x=.0;
+       vec->y=.0;
+       vec->z=.0;
+
+       return 0;
+}
+
+int v3_set(t_3dvec *vec,double *ptr) {
+
+       memcpy(vec,ptr,sizeof(t_3dvec));
+
+       return 0;
+}
+
+int v3_copy(t_3dvec *trg,t_3dvec *src) {
+
+       memcpy(trg,src,sizeof(t_3dvec));
+
+       return 0;
+}
+
+int v3_cmp(t_3dvec *a,t_3dvec *b) {
+
+       return(memcmp(a,b,sizeof(t_3dvec)));
+}
+