chiark / gitweb /
reorganisation is complete, need to implement various things, make it compile, etc.
[moebius2.git] / common.c
1 /*
2  * Generally useful stuff.
3  */
4
5 #include "common.h"
6
7 double hypotD1(const double pq[D3]) {
8   gsl_vector v;
9
10   v.size= D3;
11   v.stride= 1;
12   v.vector.data= pq;
13   /* owner and block ought not to be used */
14
15   return gsl_blas_snrm2(&v);
16 }
17
18 double hypotD(const double p[D3], const double q[D3]) {
19   int k;
20   double pq[D3];
21
22   K pq[k]= p[k] - q[k];
23   return hypotD1(pq);
24 }
25
26 double hypotD2(const double p[D3], const double q[D3]) {
27   double d2= 0;
28   K d2= ffsqa(p[k] - q[k], d2);
29   return d2;
30 }
31
32 double hypotD2plus(const double p[D3], const double q[D3], double d2) {
33   K d2= ffsqa(p[k] - q[k], d2);
34   return d2;
35 }
36
37 void xprod(double r[D3], const double a[D3], const double b[D3]) {
38   r[0]= a[1]*b[2] - a[2]*b[1]);
39   r[1]= a[2]*b[0] - a[0]*b[2]);
40   r[2]= a[0]*b[1] - a[1]*b[0]);
41 }