CLHEP/GenericFunctions/IncompleteGamma.hh
// -*- C++ -*-
// $Id: IncompleteGamma.hh,v 1.2 2001/06/18 13:53:12 evc Exp $
//---------------------IncompleteGamma--------------------------------------//
// //
// Class IncompleteGamma, the incomplete Gamma function //
// Joe Boudreau, October 2000 //
// //
//--------------------------------------------------------------------------//
#ifndef IncompleteGamma_h
#define IncompleteGamma_h 1
#include "CLHEP/GenericFunctions/AbsFunction.hh"
#include "CLHEP/GenericFunctions/Parameter.hh"
#include "CLHEP/GenericFunctions/LogGamma.hh"
HEP_BEGIN_NAMESPACE(Genfun)
class IncompleteGamma : public AbsFunction {
FUNCTION_OBJECT_DEF(IncompleteGamma)
public:
// Constructor
IncompleteGamma();
// Copy constructor
IncompleteGamma(const IncompleteGamma &right);
// Destructor
virtual ~IncompleteGamma();
// Retreive function value
virtual double operator ()(double argument) const;
virtual double operator ()(const Argument & a) const {return operator() (a[0]);}
// Get the paramter a
Parameter & a();
private:
// It is illegal to assign an adjustable constant
const IncompleteGamma & operator=(const IncompleteGamma &right);
// Here is the parameter of the Incomplete Gamma Function
Parameter _a;
// Compute via series representation:
double _gamser(double a, double x, double logGamma) const;
// Compute via continued fraction representation:
double _gammcf(double a, double x, double logGamma) const;
// This function has a LogGamma Function;
LogGamma _logGamma;
static const unsigned int ITMAX;
static const double EPS;
static const double FPMIN;
};
HEP_END_NAMESPACE(Genfun)
#endif
Generated by GNU enscript 1.6.1.