// @(#)root/mathmore:$Id$

// CodeCogs GNU General Public License Agreement
// Copyright (C) 2004-2005 CodeCogs, Zyba Ltd, Broadwood, Holford, TA5 1DU,
// England.
//
// This program is free software; you can redistribute it and/or modify it
// under
// the terms of the GNU General Public License as published by CodeCogs.
// You must retain a copy of this licence in all copies.
//
// This program is distributed in the hope that it will be useful, but
// WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A
// PARTICULAR PURPOSE. See the Adapted GNU General Public License for more
// details.
//
// *** THIS SOFTWARE CAN NOT BE USED FOR COMMERCIAL GAIN. ***
// ---------------------------------------------------------------------------------

#ifndef ROOT_Math_KelvinFunctions
#define ROOT_Math_KelvinFunctions

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// KelvinFunctions                                                      //
//                                                                      //
// Calculates the Kelvin Functions Ber(x), Bei(x), Ker(x), Kei(x), and  //
// their first derivatives.                                             //
//                                                                      //
//////////////////////////////////////////////////////////////////////////


namespace ROOT {
namespace Math {

class KelvinFunctions
{
  public:
    // The Kelvin functions and their first derivatives
    static double Ber(double x);
    static double Bei(double x);
    static double Ker(double x);
    static double Kei(double x);
    static double DBer(double x);
    static double DBei(double x);
    static double DKer(double x);
    static double DKei(double x);

    // Utility functions appearing in the calculations of the Kelvin
    // functions.
    static double F1(double x);
    static double F2(double x);
    static double G1(double x);
    static double G2(double x);
    static double M(double x);
    static double Theta(double x);
    static double N(double x);
    static double Phi(double x);

    // Include and empty virtual desctructor to eliminate compiler warnings
    virtual ~KelvinFunctions() {}

  protected:
    // Internal parameters used to control calculation method and convegence
    static double fgMin;
    static double fgEpsilon;

};

} // namespace Math
} // namespace ROOT


#endif

 KelvinFunctions.h:1
 KelvinFunctions.h:2
 KelvinFunctions.h:3
 KelvinFunctions.h:4
 KelvinFunctions.h:5
 KelvinFunctions.h:6
 KelvinFunctions.h:7
 KelvinFunctions.h:8
 KelvinFunctions.h:9
 KelvinFunctions.h:10
 KelvinFunctions.h:11
 KelvinFunctions.h:12
 KelvinFunctions.h:13
 KelvinFunctions.h:14
 KelvinFunctions.h:15
 KelvinFunctions.h:16
 KelvinFunctions.h:17
 KelvinFunctions.h:18
 KelvinFunctions.h:19
 KelvinFunctions.h:20
 KelvinFunctions.h:21
 KelvinFunctions.h:22
 KelvinFunctions.h:23
 KelvinFunctions.h:24
 KelvinFunctions.h:25
 KelvinFunctions.h:26
 KelvinFunctions.h:27
 KelvinFunctions.h:28
 KelvinFunctions.h:29
 KelvinFunctions.h:30
 KelvinFunctions.h:31
 KelvinFunctions.h:32
 KelvinFunctions.h:33
 KelvinFunctions.h:34
 KelvinFunctions.h:35
 KelvinFunctions.h:36
 KelvinFunctions.h:37
 KelvinFunctions.h:38
 KelvinFunctions.h:39
 KelvinFunctions.h:40
 KelvinFunctions.h:41
 KelvinFunctions.h:42
 KelvinFunctions.h:43
 KelvinFunctions.h:44
 KelvinFunctions.h:45
 KelvinFunctions.h:46
 KelvinFunctions.h:47
 KelvinFunctions.h:48
 KelvinFunctions.h:49
 KelvinFunctions.h:50
 KelvinFunctions.h:51
 KelvinFunctions.h:52
 KelvinFunctions.h:53
 KelvinFunctions.h:54
 KelvinFunctions.h:55
 KelvinFunctions.h:56
 KelvinFunctions.h:57
 KelvinFunctions.h:58
 KelvinFunctions.h:59
 KelvinFunctions.h:60
 KelvinFunctions.h:61
 KelvinFunctions.h:62
 KelvinFunctions.h:63
 KelvinFunctions.h:64
 KelvinFunctions.h:65
 KelvinFunctions.h:66
 KelvinFunctions.h:67
 KelvinFunctions.h:68
 KelvinFunctions.h:69
 KelvinFunctions.h:70
 KelvinFunctions.h:71
 KelvinFunctions.h:72
 KelvinFunctions.h:73
 KelvinFunctions.h:74
 KelvinFunctions.h:75
 KelvinFunctions.h:76
 KelvinFunctions.h:77