chiark / gitweb /
77589f98c45dcbba5770130e0d13fd317a14ab60
[moebius2.git] / common.h
1 /*
2  * Generally useful stuff.
3  */
4
5 #ifndef COMMON_H
6 #define COMMON_H
7
8 #define _GNU_SOURCE
9 #include <math.h>
10 #include <float.h>
11 #include <limits.h>
12
13 #define D3 3
14
15 double hypotD(const double p[D3], const double q[D3]);
16 double hypotD2(const double p[D3], const double q[D3]);
17 double hypotD2plus(const double p[D3], const double q[D3], double add);
18
19 double magnD(const double pq[D3]);
20
21 #ifdef FP_FAST_FMA
22 # define fma_fast fma
23 #else
24 # define fma_fast(f1,f2,t) ((f1)*(f2)+(t))
25 #endif
26 #define ffsqa(factor,term) fma_fast((factor),(factor),(term))
27
28 #endif /*COMMON_H*/