00001 #ifndef __INCLUDE_MISC_H
00002 #define __INCLUDE_MISC_H
00003
00004 #include <complex>
00005 #include <cstdlib>
00006 #include <cstring>
00007 #include <gsl/gsl_sf.h>
00008 #include <gsl/gsl_math.h>
00009 #include <gsl/gsl_complex.h>
00010 #include <gsl/gsl_complex_math.h>
00011 #include <gsl/gsl_poly.h>
00012 #include "sf.h"
00013 #include "random.h"
00014 #include "constants.h"
00015
00016 using namespace std;
00017
00018 namespace Misc{
00019 void lorentz(double *u,double *p1,double *p1prime);
00020 double cgc(double j1,double m1,double j2,double m2,double j,double m);
00021 double cgc_edmonds(double j1,double m1,double j2,double m2,double j,double m);
00022 bool comparestrings(char *s1,char *s2);
00023 double triangle(double m0,double m1,double m2);
00024 void outsidelong(double *pa,double *pb,
00025 double &qinv,double &qout,double &qside,double &qlong);
00026 double GetQinv(double *pa,double *pb);
00027 double GetRapidity(double *pa);
00028 double GetDely(double *pa,double *pb);
00029
00030 complex<double> cexp(complex<double> z);
00031 complex<double> ceiphi(double phi);
00032 complex<double> cpow(complex<double> z,complex<double> a);
00033
00034 int iround(double x);
00035
00036 int cgc_delta (int x, int y);
00037 double cgc_factorial (double n);
00038 double cgc_fractorial (double n,double m);
00039 double oldcgc(double j1,double m1,double j2,double m2,double j,double m);
00040
00041 void Cubic(double a0,double a1,double a2,double a3,
00042 complex<double>& z1,complex<double>& z2,complex<double>& z3);
00043
00044
00045 double signswitch(double a, double b);
00046 void Quartic(double a0,double a1,double a2,double a3,double a4,complex<double> &z1, complex<double> &z2,complex<double> &z3,complex<double> &z4);
00047 void Quartic(double a0,double a1,double a2,double a3,double a4,complex<double> *z);
00048
00049 void CubicResolvant(double r,double s,double t,double x[],double &d);
00050
00051 int CubicReal(double a0,double a1,double a2,double a3,double *x);
00052 void CubicComplex(double a0,double a1,double a2,double a3,complex<double> &z1,complex<double> &z2,complex<double> &z3);
00053 void Pause();
00054 void Pause(int seconds);
00055
00056
00057
00058 double CalcDelta_FromSqWells(int ell,double mu,int nwells,double q,double *V0,double *r);
00059 };
00060
00061 #endif