Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
KelvinFunctions.h
Go to the documentation of this file.
1 // @(#)root/mathmore:$Id$
2 
3 // CodeCogs GNU General Public License Agreement
4 // Copyright (C) 2004-2005 CodeCogs, Zyba Ltd, Broadwood, Holford, TA5 1DU,
5 // England.
6 //
7 // This program is free software; you can redistribute it and/or modify it
8 // under
9 // the terms of the GNU General Public License as published by CodeCogs.
10 // You must retain a copy of this licence in all copies.
11 //
12 // This program is distributed in the hope that it will be useful, but
13 // WITHOUT ANY
14 // WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 // FITNESS FOR A
16 // PARTICULAR PURPOSE. See the Adapted GNU General Public License for more
17 // details.
18 //
19 // *** THIS SOFTWARE CAN NOT BE USED FOR COMMERCIAL GAIN. ***
20 // ---------------------------------------------------------------------------------
21 
22 #ifndef ROOT_Math_KelvinFunctions
23 #define ROOT_Math_KelvinFunctions
24 
25 //////////////////////////////////////////////////////////////////////////
26 // //
27 // KelvinFunctions //
28 // //
29 // Calculates the Kelvin Functions Ber(x), Bei(x), Ker(x), Kei(x), and //
30 // their first derivatives. //
31 // //
32 //////////////////////////////////////////////////////////////////////////
33 
34 
35 namespace ROOT {
36 namespace Math {
37 
38 class KelvinFunctions
39 {
40  public:
41  // The Kelvin functions and their first derivatives
42  static double Ber(double x);
43  static double Bei(double x);
44  static double Ker(double x);
45  static double Kei(double x);
46  static double DBer(double x);
47  static double DBei(double x);
48  static double DKer(double x);
49  static double DKei(double x);
50 
51  // Utility functions appearing in the calculations of the Kelvin
52  // functions.
53  static double F1(double x);
54  static double F2(double x);
55  static double G1(double x);
56  static double G2(double x);
57  static double M(double x);
58  static double Theta(double x);
59  static double N(double x);
60  static double Phi(double x);
61 
62  // Include and empty virtual desctructor to eliminate compiler warnings
63  virtual ~KelvinFunctions() {}
64 
65  protected:
66  // Internal parameters used to control calculation method and convegence
67  static double fgMin;
68  static double fgEpsilon;
69 
70 };
71 
72 } // namespace Math
73 } // namespace ROOT
74 
75 
76 #endif
77