00001 #ifndef HYPERGEOMETRIC_H
00002 #define HYPERGEOMETRIC_H
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef ZMENVIRONMENT_H
00012 #include "ZMutility/ZMenvironment.h"
00013 #endif
00014 #include <utility>
00015 #include <complex>
00016
00017 ZM_BEGIN_NAMESPACE( zmsf )
00018
00019 typedef std::pair<double,double> Dpair;
00020 typedef std::complex<double> Dcomplex;
00021
00026
00027 struct HyperGeometric {
00028
00030 static double HyperG0F1( const double c, const double x );
00031
00033 static Dpair HyperG0F1Err( const double c, const double x );
00034
00036 static double HyperG1F1( const int m, const int n, const double x );
00037
00039 static Dpair HyperG1F1Err( const int m, const int n, const double x );
00040
00042 static double HyperG1F1( const double a, const double b, const double x );
00043
00045 static Dpair HyperG1F1Err( const double a, const double b, const double x );
00046
00048 static double HyperGU( const int m, const int n, const double x );
00049
00051 static Dpair HyperGUErr( const int m, const int n, const double x );
00052
00054 static double HyperGU( const double a, const double b, const double x );
00055
00057 static Dpair HyperGUErr( const double a, const double b, const double x );
00058
00060 static double HyperGauss( const double a, const double b,
00061 const double c, const double x );
00062
00064 static Dpair HyperGaussErr( const double a, const double b,
00065 const double c, const double x );
00066
00068 static double HyperGaussConjugate( const Dcomplex a, const double c,
00069 const double x );
00070
00072 static Dpair HyperGaussConjugateErr( const Dcomplex a, const double c,
00073 const double x );
00074
00076 static double NormedHyperGauss( const double a, const double b,
00077 const double c, const double x );
00078
00080 static Dpair NormedHyperGaussErr( const double a, const double b,
00081 const double c, const double x );
00082
00084 static double NormedHyperGaussConjugate( const Dcomplex a, const double c,
00085 const double x );
00086
00088 static Dpair NormedHyperGaussConjugateErr( const Dcomplex a, const double c,
00089 const double x );
00090
00092 static double HyperG2F0( const double a, const double b, const double x );
00093
00095 static Dpair HyperG2F0Err( const double a, const double b, const double x );
00096
00097
00098
00099 };
00100
00101 ZM_END_NAMESPACE( zmsf )
00102
00103 #endif