#include <assert.h>
#include <errno.h>
#include <string.h>
+#include <unistd.h>
#include <gsl/gsl_vector.h>
#include <gsl/gsl_matrix.h>
double magnD(const double pq[D3]);
void xprod(double r[D3], const double a[D3], const double b[D3]);
+double dotprod(const double a[D3], const double b[D3]);
void flushoutput(void);
void diee(const char *what);
#define GSL_VECTOR(x) gsl_vector x##_gsl= { D3,1,&x[0] };
#define GSL_MATRIX(x) gsl_matrix x##_gsl= { D3,D3,D3,&x[0][0] };
+#define MIN(a,b) ((a) <= (b) ? (a) : (b))
+#define MAX(a,b) ((a) >= (b) ? (a) : (b))
+
#ifdef FP_FAST_FMA
# define fma_fast fma
#else