// @(#)root/mathmore:$Id: KelvinFunctions.h 20882 2007-11-19 11:31:26Z rdm $

// 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 
 

Last change: Wed Jun 25 08:29:42 2008
Last generated: 2008-06-25 08:29

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.