G4VGaussianQuadrature Class Reference

#include <G4VGaussianQuadrature.hh>

Inheritance diagram for G4VGaussianQuadrature:

G4GaussChebyshevQ G4GaussHermiteQ G4GaussJacobiQ G4GaussLaguerreQ G4GaussLegendreQ

Public Member Functions

 G4VGaussianQuadrature (function pFunction)
virtual ~G4VGaussianQuadrature ()
G4double GetAbscissa (G4int index) const
G4double GetWeight (G4int index) const
G4int GetNumber () const

Protected Member Functions

G4double GammaLogarithm (G4double xx)

Protected Attributes

function fFunction
G4doublefAbscissa
G4doublefWeight
G4int fNumber

Detailed Description

Definition at line 66 of file G4VGaussianQuadrature.hh.


Constructor & Destructor Documentation

G4VGaussianQuadrature::G4VGaussianQuadrature ( function  pFunction  )  [explicit]

Definition at line 36 of file G4VGaussianQuadrature.cc.

00037   : fFunction(pFunction), fAbscissa(0), fWeight(0), fNumber(0)
00038 {
00039 }

G4VGaussianQuadrature::~G4VGaussianQuadrature (  )  [virtual]

Definition at line 46 of file G4VGaussianQuadrature.cc.

References fAbscissa, and fWeight.

00047 {
00048    delete[] fAbscissa ;
00049    delete[] fWeight   ;
00050 }


Member Function Documentation

G4double G4VGaussianQuadrature::GammaLogarithm ( G4double  xx  )  [protected]

Definition at line 77 of file G4VGaussianQuadrature.cc.

Referenced by G4GaussJacobiQ::G4GaussJacobiQ(), and G4GaussLaguerreQ::G4GaussLaguerreQ().

00078 {
00079 
00080 // Returns the value ln(Gamma(xx) for xx > 0.  Full accuracy is obtained for 
00081 // xx > 1. For 0 < xx < 1. the reflection formula (6.1.4) can be used first.
00082 // (Adapted from Numerical Recipes in C)
00083 
00084   static G4double cof[6] = { 76.18009172947146,     -86.50532032941677,
00085                              24.01409824083091,      -1.231739572450155,
00086                               0.1208650973866179e-2, -0.5395239384953e-5  } ;
00087   G4double x = xx - 1.0;
00088   G4double tmp = x + 5.5;
00089   tmp -= (x + 0.5) * std::log(tmp);
00090   G4double ser = 1.000000000190015;
00091 
00092   for ( size_t j = 0; j <= 5; j++ )
00093   {
00094     x += 1.0;
00095     ser += cof[j]/x;
00096   }
00097   return -tmp + std::log(2.5066282746310005*ser);
00098 }

G4double G4VGaussianQuadrature::GetAbscissa ( G4int  index  )  const

Definition at line 55 of file G4VGaussianQuadrature.cc.

References fAbscissa.

00056 {
00057    return fAbscissa[index] ;
00058 }

G4int G4VGaussianQuadrature::GetNumber (  )  const

Definition at line 66 of file G4VGaussianQuadrature.cc.

References fNumber.

00067 {
00068    return fNumber ;
00069 }

G4double G4VGaussianQuadrature::GetWeight ( G4int  index  )  const

Definition at line 61 of file G4VGaussianQuadrature.cc.

References fWeight.

00062 {
00063    return fWeight[index] ;
00064 }


Field Documentation

G4double* G4VGaussianQuadrature::fAbscissa [protected]

Definition at line 88 of file G4VGaussianQuadrature.hh.

Referenced by G4GaussChebyshevQ::G4GaussChebyshevQ(), G4GaussHermiteQ::G4GaussHermiteQ(), G4GaussJacobiQ::G4GaussJacobiQ(), G4GaussLaguerreQ::G4GaussLaguerreQ(), G4GaussLegendreQ::G4GaussLegendreQ(), GetAbscissa(), G4GaussLegendreQ::Integral(), G4GaussLaguerreQ::Integral(), G4GaussJacobiQ::Integral(), G4GaussHermiteQ::Integral(), G4GaussChebyshevQ::Integral(), and ~G4VGaussianQuadrature().

function G4VGaussianQuadrature::fFunction [protected]

Definition at line 87 of file G4VGaussianQuadrature.hh.

Referenced by G4GaussLegendreQ::AccurateIntegral(), G4GaussLegendreQ::Integral(), G4GaussLaguerreQ::Integral(), G4GaussJacobiQ::Integral(), G4GaussHermiteQ::Integral(), G4GaussChebyshevQ::Integral(), and G4GaussLegendreQ::QuickIntegral().

G4int G4VGaussianQuadrature::fNumber [protected]

Definition at line 90 of file G4VGaussianQuadrature.hh.

Referenced by G4GaussChebyshevQ::G4GaussChebyshevQ(), G4GaussHermiteQ::G4GaussHermiteQ(), G4GaussJacobiQ::G4GaussJacobiQ(), G4GaussLaguerreQ::G4GaussLaguerreQ(), G4GaussLegendreQ::G4GaussLegendreQ(), GetNumber(), G4GaussLegendreQ::Integral(), G4GaussLaguerreQ::Integral(), G4GaussJacobiQ::Integral(), G4GaussHermiteQ::Integral(), and G4GaussChebyshevQ::Integral().

G4double* G4VGaussianQuadrature::fWeight [protected]

Definition at line 89 of file G4VGaussianQuadrature.hh.

Referenced by G4GaussChebyshevQ::G4GaussChebyshevQ(), G4GaussHermiteQ::G4GaussHermiteQ(), G4GaussJacobiQ::G4GaussJacobiQ(), G4GaussLaguerreQ::G4GaussLaguerreQ(), G4GaussLegendreQ::G4GaussLegendreQ(), GetWeight(), G4GaussLegendreQ::Integral(), G4GaussLaguerreQ::Integral(), G4GaussJacobiQ::Integral(), G4GaussHermiteQ::Integral(), G4GaussChebyshevQ::Integral(), and ~G4VGaussianQuadrature().


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:53:43 2013 for Geant4 by  doxygen 1.4.7