chiark / gitweb /
compiles and most output facets are right; needs debugging
[moebius2.git] / common.c
index 900102513cf2c7305b31b85deb223a4c9b36f872..62b981efa930fd19bbb3eab3bb94dd0ba0d14d69 100644 (file)
--- a/common.c
+++ b/common.c
@@ -2,9 +2,6 @@
  * Generally useful stuff.
  */
 
-#include <gsl/gsl_vector.h>
-#include <gsl/gsl_blas.h>
-
 #include "common.h"
 
 double magnD(const double pq[D3]) {
@@ -45,3 +42,24 @@ void xprod(double r[D3], const double a[D3], const double b[D3]) {
   r[1]= a[2]*b[0] - a[0]*b[2];
   r[2]= a[0]*b[1] - a[1]*b[0];
 }
+
+double dotprod(const double a[D3], const double b[D3]) {
+  int k;
+  double result= 0;
+  K result += a[k] * b[k];
+  return result;
+}
+
+void libdie(const char *lib, int l, const char *str) {
+  fprintf(stderr,"%s library call failed, line %d: %s\n", lib, l, str);
+}
+
+void gsldie(int l, const char *what, int status) {
+  fprintf(stderr,"gsl function failed, line %d: %s: %s\n",
+         l, what, gsl_strerror(status));
+  exit(-1);
+}
+
+void diee(const char *what) { perror(what); exit(16); }
+void fail(const char *emsg) { fputs(emsg,stderr); exit(12); }
+void flushoutput(void) { if (fflush(stdout)||ferror(stdout)) diee("stdout"); }