// @(#)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