00001 #ifndef ELLIPTICINTEGRALS_H
00002 #define ELLIPTICINTEGRALS_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 <vector>
00016 #include <complex>
00017
00018 ZM_BEGIN_NAMESPACE( zmsf )
00019
00020 typedef std::pair<double,double> Dpair;
00021
00026
00027 struct EllipticIntegrals {
00028
00029
00030
00031
00033 static double CompleteK( const double k );
00034
00036 static Dpair CompleteKErr( const double k );
00037
00039 static double CompleteE( const double k );
00040
00042 static Dpair CompleteEErr( const double k );
00043
00045 static double IncompleteF( const double phi, const double k );
00046
00048 static Dpair IncompleteFErr( const double phi, const double k );
00049
00051 static double IncompleteE( const double phi, const double k );
00052
00054 static Dpair IncompleteEErr( const double phi, const double k );
00055
00057 static double IncompleteP( const double phi, const double k, double n );
00058
00060 static Dpair IncompletePErr( const double phi, const double k, double n );
00061
00063 static double IncompleteD( const double phi, const double k, double n );
00064
00066 static Dpair IncompleteDErr( const double phi, const double k, double n );
00067
00068
00069
00070
00072 static double CarlsonRC( const double x, const double y );
00073
00075 static Dpair CarlsonRCErr( const double x, const double y );
00076
00078 static double CarlsonRD( const double x, const double y, const double z );
00079
00081 static Dpair CarlsonRDErr( const double x, const double y, const double z );
00082
00084 static double CarlsonRF( const double x, const double y, const double z );
00085
00087 static Dpair CarlsonRFErr( const double x, const double y, const double z );
00088
00090 static double CarlsonRJ( const double x, const double y,
00091 const double z, const double p );
00092
00094 static Dpair CarlsonRJErr( const double x, const double y,
00095 const double z, const double p );
00096
00097 };
00098
00099 ZM_END_NAMESPACE( zmsf )
00100
00101 #endif