Main Page | Alphabetical List | Class List | File List | Class Members | File Members

EllipticIntegrals.h

Go to the documentation of this file.
00001 #ifndef ELLIPTICINTEGRALS_H
00002 #define ELLIPTICINTEGRALS_H
00003 
00004 
00005 // ----------------------------------------------------------------------
00006 //
00007 // Bridge object between C++ code and the GSL Elliptic Integral functions
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 )      /*  namespace zmsf  {  */
00019 
00020 typedef std::pair<double,double> Dpair;
00021 
00026 
00027 struct EllipticIntegrals {
00028 
00029 // Legendre forms for the elliptic integrals
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 // Carlson forms for the elliptic integrals
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 };  // EllipticIntegrals
00098 
00099 ZM_END_NAMESPACE( zmsf )        /*  }  // namespace zmsf  */
00100 
00101 #endif  /* ELLIPTICINTEGRALS_H */

Generated on Wed Feb 25 15:03:16 2004 for SpecialFunctions by doxygen 1.3.4