Index: pcp/src/mymath.h
===================================================================
--- pcp/src/mymath.h	(revision cd028d4b97132811dd4442de64566da8620ee7bc)
+++ pcp/src/mymath.h	(revision 79290ff7cbedfb63d0f8cba6d0a51b38a37e6927)
@@ -20,5 +20,4 @@
 */
 
-// use double precision fft when we have it
 #ifdef HAVE_CONFIG_H
 #include <config.h>
@@ -39,4 +38,5 @@
 #include "defs.h"
 
+// use double precision fft when we have it
 #ifdef HAVE_DFFTW_H
 #include "dfftw.h"
@@ -60,23 +60,56 @@
 #define CNORMSQ3(a) ((a).re[0]*(a).re[0] + (a).re[1]*(a).re[1] + (a).re[2]*(a).re[2] + (a).im[0]*(a).im[0] + (a).im[1]*(a).im[1] + (a).im[2]*(a).im[2])	//!< square of complex euclidian norm
 
-inline int Rest(int n, int m);
-inline void RTranspose3(double *A);
-inline void RMatMat33(double C[NDIM*NDIM], const double A[NDIM*NDIM], const double B[NDIM*NDIM]);
-inline void RMat33Vec3(double C[NDIM], const double M[NDIM*NDIM], const double V[NDIM]);
-inline int RMatReci3(double B[NDIM_NDIM], const double A[NDIM_NDIM]);
-inline void RVec3Mat33(double C[NDIM], const double V[NDIM], const double M[NDIM*NDIM]);
-inline void VP3(double V[NDIM], double A[NDIM], double B[NDIM]);
-/* Skalarprodukt */
-inline double SP(const double *a, const double *b, const int n);
-/* Multiplikation mit Skalar */
-inline void SM(double *a, const double c, const int n);
-/* Nullvektor erzeugen */
-inline void NV(double *a, int n);
-inline double dSum(int n, double *dx, int incx);
-inline double Simps(int n, double *f, double h);
-inline double derf(double x);
-/* Initialisiere a array[3] mit b - c Orte mit periodisch */
+#ifdef HAVE_INLINE
+  inline double tpow(double x, int n);
+  inline int Rest(int n, int m);
+  inline void RTranspose3(double *A);
+  inline void RMatMat33(double C[NDIM*NDIM], const double A[NDIM*NDIM], const double B[NDIM*NDIM]);
+  inline void RMat33Vec3(double C[NDIM], const double M[NDIM*NDIM], const double V[NDIM]);
+  inline int RMatReci3(double B[NDIM_NDIM], const double A[NDIM_NDIM]);
+  inline void RVec3Mat33(double C[NDIM], const double V[NDIM], const double M[NDIM*NDIM]);
+  inline void VP3(double V[NDIM], double A[NDIM], double B[NDIM]);
+  /* Skalarprodukt */
+  inline double SP(const double *a, const double *b, const int n);
+  /* Multiplikation mit Skalar */
+  inline void SM(double *a, const double c, const int n);
+  /* Nullvektor erzeugen */
+  inline void NV(double *a, int n);
+  inline double dSum(int n, double *dx, int incx);
+  inline double Simps(int n, double *f, double h);
+  inline void SetArrayToDouble0(double *a, int n);
+  /* Gamma functions */
+  inline double gammln(double xx);
+  inline double gser(double a, double x);
+  inline double gcf(double a, double x);
+  inline double gammp(double a, double x);
+  inline double derf(double x); 
+#else
+  double tpow(double x, int n);
+  int Rest(int n, int m);
+  void RTranspose3(double *A);
+  void RMatMat33(double C[NDIM*NDIM], const double A[NDIM*NDIM], const double B[NDIM*NDIM]);
+  void RMat33Vec3(double C[NDIM], const double M[NDIM*NDIM], const double V[NDIM]);
+  int RMatReci3(double B[NDIM_NDIM], const double A[NDIM_NDIM]);
+  void RVec3Mat33(double C[NDIM], const double V[NDIM], const double M[NDIM*NDIM]);
+  void VP3(double V[NDIM], double A[NDIM], double B[NDIM]);
+  /* Skalarprodukt */
+  double SP(const double *a, const double *b, const int n);
+  /* Multiplikation mit Skalar */
+  void SM(double *a, const double c, const int n);
+  /* Nullvektor erzeugen */
+  void NV(double *a, int n);
+  double dSum(int n, double *dx, int incx);
+  double Simps(int n, double *f, double h);
+  void SetArrayToDouble0(double *a, int n);
+  /* Gamma functions */
+  double gammln(double xx);
+  double gser(double a, double x);
+  double gcf(double a, double x);
+  double gammp(double a, double x);
+  double derf(double x);
+#endif
+
+  /* Initialisiere a array[3] mit b - c Orte mit periodisch */
 double Dist(const double *a, const double *b, const int n);
-inline void SetArrayToDouble0(double *a, int n);
 void PrintCMat330(fftw_complex M[NDIM_NDIM]);
 void PrintRMat330(fftw_real M[NDIM_NDIM]);
