Logo ROOT   6.12/07
Reference Guide
SpecFuncCephes.h
Go to the documentation of this file.
1 // special functions taken from Cephes library
2 // see: http://www.netlib.org/cephes
3 //
4 // Copyright 1985, 1987, 2000 by Stephen L. Moshier
5 //
6 // granted permission from the author to be used in MathCore
7 //
8 
9 
10 
11 
12 #ifndef ROOT_Math_SpecFunCephes
13 #define ROOT_Math_SpecFunCephes
14 
15 namespace ROOT {
16  namespace Math {
17 
18  namespace Cephes {
19 
20 
21 //---
22 /* the machine roundoff error */
23 #define kMACHEP 1.11022302462515654042363166809e-16
24 
25 /* largest argument for TMath::Exp() */
26 #define kMAXLOG 709.782712893383973096206318587
27 
28 /* smallest argument for TMath::Exp() without underflow */
29 #define kMINLOG -708.396418532264078748994506896
30 
31 /* the maximal number that pow(x,x-0.5) has no overflow */
32 /* we use a (very) conservative portable bound */
33 #define kMAXSTIR 108.116855767857671821730036754
34 
35 #define kMAXLGM 2.556348e305
36 
37 
38 /**
39  incomplete complementary gamma function
40  * igamc(a, x) = 1 - igam(a, x)
41 */
42 double igamc( double a, double x );
43 
44 /* incomplete gamma function*/
45 double igam( double a, double x );
46 
47 /* Logarithm of gamma function */
48 double lgam( double x );
49 
50 /* gamma function*/
51 double gamma( double x );
52 
53 /* beta function*/
54 double beta(double z, double w);
55 
56 /* evaluation of incomplete beta */
57 double incbet( double aa, double bb, double xx );
58 
59 /* Continued fraction expansion #1
60  * for incomplete beta integral
61  * used when xx < (aa-1)/(aa+bb-2)
62  * (and bb*xx > 1 or xx > 0.95)
63 */
64 double incbcf( double a, double b, double x );
65 
66 
67 /* Continued fraction expansion #2
68  * for incomplete beta integral
69  * used when xx > (aa-1)/(aa+bb-2)
70  * (and bb*xx > 1 or xx > 0.95)
71  */
72 double incbd( double a, double b, double x );
73 
74 
75 /* Power series for incomplete beta integral.
76  Use when b*x is small and x not too close to 1. */
77 
78 double pseries( double a, double b, double x );
79 
80 
81 /* error function */
82 double erf( double a );
83 
84 /* complementary error function */
85 double erfc( double a );
86 
87 
88 // inverse function
89 
90 /* normal quantile */
91 double ndtri (double y);
92 
93 /* normal quantile */
94 double ndtri (double y);
95 
96 /* inverse of incomplete gamma */
97 double igami (double a, double y);
98 
99 /* inverse of incomplete beta */
100 double incbi (double a, double b, double y);
101 
102 
103 } // end namespace Cephes
104 
105 /* routines for efficient polynomial evaluation*/
106 double Polynomialeval(double x, double* a, unsigned int N);
107 double Polynomial1eval(double x, double* a, unsigned int N);
108 
109 
110 } // end namespace Math
111 } // end namespace ROOT
112 
113 
114 #endif /* SpecFun */
115 
double pseries(double a, double b, double x)
double igam(double a, double x)
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
double lgam(double x)
#define N
Double_t x[n]
Definition: legend1.C:17
double incbi(double a, double b, double y)
double Polynomial1eval(double x, double *a, unsigned int N)
double gamma(double x)
double incbd(double a, double b, double x)
double Polynomialeval(double x, double *a, unsigned int N)
auto * a
Definition: textangle.C:12
double incbet(double aa, double bb, double xx)
DESCRIPTION:
double erf(double x)
double igamc(double a, double x)
incomplete complementary gamma function igamc(a, x) = 1 - igam(a, x)
double ndtri(double y)
double beta(double z, double w)
Double_t y[n]
Definition: legend1.C:17
Namespace for new Math classes and functions.
you should not use this method at all Int_t Int_t z
Definition: TRolke.cxx:630
double erfc(double a)
double incbcf(double a, double b, double x)
you should not use this method at all Int_t Int_t Double_t Double_t Double_t Int_t Double_t Double_t Double_t Double_t b
Definition: TRolke.cxx:630
double igami(double a, double y)