chiark / gitweb /
reorganisation is complete, need to implement various things, make it compile, etc.
[moebius2.git] / common.c
diff --git a/common.c b/common.c
new file mode 100644 (file)
index 0000000..146e5d5
--- /dev/null
+++ b/common.c
@@ -0,0 +1,41 @@
+/*
+ * Generally useful stuff.
+ */
+
+#include "common.h"
+
+double hypotD1(const double pq[D3]) {
+  gsl_vector v;
+
+  v.size= D3;
+  v.stride= 1;
+  v.vector.data= pq;
+  /* owner and block ought not to be used */
+
+  return gsl_blas_snrm2(&v);
+}
+
+double hypotD(const double p[D3], const double q[D3]) {
+  int k;
+  double pq[D3];
+
+  K pq[k]= p[k] - q[k];
+  return hypotD1(pq);
+}
+
+double hypotD2(const double p[D3], const double q[D3]) {
+  double d2= 0;
+  K d2= ffsqa(p[k] - q[k], d2);
+  return d2;
+}
+
+double hypotD2plus(const double p[D3], const double q[D3], double d2) {
+  K d2= ffsqa(p[k] - q[k], d2);
+  return d2;
+}
+
+void xprod(double r[D3], const double a[D3], const double b[D3]) {
+  r[0]= a[1]*b[2] - a[2]*b[1]);
+  r[1]= a[2]*b[0] - a[0]*b[2]);
+  r[2]= a[0]*b[1] - a[1]*b[0]);
+}