KelvinFunctions.h

Go to the documentation of this file.
00001 // @(#)root/mathmore:$Id: KelvinFunctions.h 20882 2007-11-19 11:31:26Z rdm $
00002 
00003 // CodeCogs GNU General Public License Agreement
00004 // Copyright (C) 2004-2005 CodeCogs, Zyba Ltd, Broadwood, Holford, TA5 1DU,
00005 // England.
00006 //
00007 // This program is free software; you can redistribute it and/or modify it
00008 // under
00009 // the terms of the GNU General Public License as published by CodeCogs. 
00010 // You must retain a copy of this licence in all copies. 
00011 //
00012 // This program is distributed in the hope that it will be useful, but
00013 // WITHOUT ANY
00014 // WARRANTY; without even the implied warranty of MERCHANTABILITY or
00015 // FITNESS FOR A
00016 // PARTICULAR PURPOSE. See the Adapted GNU General Public License for more
00017 // details.
00018 //
00019 // *** THIS SOFTWARE CAN NOT BE USED FOR COMMERCIAL GAIN. ***
00020 // ---------------------------------------------------------------------------------
00021 
00022 #ifndef ROOT_Math_KelvinFunctions
00023 #define ROOT_Math_KelvinFunctions
00024 
00025 //////////////////////////////////////////////////////////////////////////
00026 //                                                                      //
00027 // KelvinFunctions                                                      //
00028 //                                                                      //
00029 // Calculates the Kelvin Functions Ber(x), Bei(x), Ker(x), Kei(x), and  //
00030 // their first derivatives.                                             //
00031 //                                                                      //
00032 //////////////////////////////////////////////////////////////////////////
00033 
00034 
00035 namespace ROOT {
00036 namespace Math {
00037    
00038 class KelvinFunctions
00039 {
00040   public:
00041     // The Kelvin functions and their first derivatives
00042     static double Ber(double x);
00043     static double Bei(double x);
00044     static double Ker(double x);
00045     static double Kei(double x);
00046     static double DBer(double x);
00047     static double DBei(double x);
00048     static double DKer(double x);
00049     static double DKei(double x);
00050 
00051     // Utility functions appearing in the calculations of the Kelvin
00052     // functions.
00053     static double F1(double x);
00054     static double F2(double x);
00055     static double G1(double x);
00056     static double G2(double x);
00057     static double M(double x);
00058     static double Theta(double x);
00059     static double N(double x);
00060     static double Phi(double x);
00061 
00062     // Include and empty virtual desctructor to eliminate compiler warnings
00063     virtual ~KelvinFunctions() {}
00064 
00065   protected:
00066     // Internal parameters used to control calculation method and convegence
00067     static double fgMin;     
00068     static double fgEpsilon;
00069 
00070 };
00071 
00072 } // namespace Math
00073 } // namespace ROOT
00074  
00075  
00076 #endif 
00077  

Generated on Tue Jul 5 14:25:31 2011 for ROOT_528-00b_version by  doxygen 1.5.1