chiark
/
gitweb
/
~ian
/
moebius2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
printing improvements
[moebius2.git]
/
common.h
diff --git
a/common.h
b/common.h
index a64221318b1112a9f951e271f64bab2e179790de..7e0e86d7622da0698d992bdf94af0dfef3e4676e 100644
(file)
--- a/
common.h
+++ b/
common.h
@@
-15,6
+15,14
@@
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <gsl/gsl_vector.h>
+#include <gsl/gsl_matrix.h>
+#include <gsl/gsl_blas.h>
+#include <gsl/gsl_linalg.h>
#define D3 3
#define D3 3
@@
-24,15
+32,28
@@
double hypotD2plus(const double p[D3], const double q[D3], double add);
double magnD(const double pq[D3]);
void xprod(double r[D3], const double a[D3], const double b[D3]);
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);
void flushoutput(void);
void diee(const char *what);
+void libdie(const char *lib, int l, const char *str);
+#define XA(w) ((w) ? (void)0 : libdie("X", __LINE__, #w))
+
+void gsldie(int l, const char *what, int status);
+#define GA(w) ({int _ga_r= (w); if (w) gsldie(__LINE__,#w,_ga_r);})
+
#define FOR_COORD(k) \
for ((k)=0; (k)<D3; (k)++)
#define K FOR_COORD(k)
#define FOR_COORD(k) \
for ((k)=0; (k)<D3; (k)++)
#define K FOR_COORD(k)
+#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
#ifdef FP_FAST_FMA
# define fma_fast fma
#else