CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Functions
GammaContinuedFraction.h File Reference

Go to the source code of this file.

Functions

float GammaContinuedFraction (float a, float x)
 

Function Documentation

float GammaContinuedFraction ( float  a,
float  x 
)

Returns the continued fraction summation of the (complement of the) incomplete gamma function P(a,x) evaluated by its continued fraction representation. source: Numerical Recipes

Definition at line 9 of file GammaContinuedFraction.cc.

References a, b, c, EcnaPython_AdcPeg12_S1_10_R170298_1_0_150_Dee0::cerr, ztail::d, EPS, FPMIN, h, mps_fire::i, and ITMAX.

Referenced by IncompleteGammaComplement::ln(), and IncompleteGammaComplement::value().

9  {
10  int i;
11  float an, del;
12 
13  /* Set up for evaluating continued fraction by modified Lentz's method (par.5.2
14  in Numerical Recipes in C) with b_0 = 0 */
15  double b = x + 1.0 - a;
16  double c = 1.0 / FPMIN;
17  double d = 1.0 / b;
18  double h = d;
19  for (i = 1; i <= ITMAX; i++) {
20  an = -i * (i - a);
21  b += 2.0;
22  d = an * d + b;
23  if (fabs(d) < FPMIN)
24  d = FPMIN;
25  c = b + an / c;
26  if (fabs(c) < FPMIN)
27  c = FPMIN;
28  d = 1.0 / d;
29  del = d * c;
30  h *= del;
31  if (fabs(del - 1.0) < EPS)
32  break;
33  }
34  if (i > ITMAX)
35  std::cerr << "GammaContinuedFraction::a too large, "
36  << "ITMAX too small" << std::endl;
37  return h;
38 }
const edm::EventSetup & c
#define EPS
tuple d
Definition: ztail.py:151
uint16_t const *__restrict__ x
Definition: gpuClustering.h:39
#define FPMIN
double b
Definition: hdecay.h:118
double a
Definition: hdecay.h:119
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
#define ITMAX