Logo ROOT   6.16/01
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
15namespace 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*/
42double igamc( double a, double x );
43
44/* incomplete gamma function*/
45double igam( double a, double x );
46
47/* Logarithm of gamma function */
48double lgam( double x );
49
50/* gamma function*/
51double gamma( double x );
52
53/* beta function*/
54double beta(double z, double w);
55
56/* evaluation of incomplete beta */
57double 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*/
64double 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 */
72double 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
78double pseries( double a, double b, double x );
79
80
81/* error function */
82double erf( double a );
83
84/* complementary error function */
85double erfc( double a );
86
87
88// inverse function
89
90/* normal quantile */
91double ndtri (double y);
92
93/* normal quantile */
94double ndtri (double y);
95
96/* inverse of incomplete gamma */
97double igami (double a, double y);
98
99/* inverse of incomplete beta */
100double incbi (double a, double b, double y);
101
102
103} // end namespace Cephes
104
105/* routines for efficient polynomial evaluation*/
106double Polynomialeval(double x, double* a, unsigned int N);
107double Polynomial1eval(double x, double* a, unsigned int N);
108
109
110} // end namespace Math
111} // end namespace ROOT
112
113
114#endif /* SpecFun */
115
#define b(i)
Definition: RSha256.hxx:100
#define N
Double_t y[n]
Definition: legend1.C:17
Double_t x[n]
Definition: legend1.C:17
Namespace for new Math classes and functions.
double incbd(double a, double b, double x)
double erfc(double a)
double erf(double x)
double incbcf(double a, double b, double x)
double incbet(double aa, double bb, double xx)
DESCRIPTION:
double pseries(double a, double b, double x)
double igam(double a, double x)
double lgam(double x)
double igamc(double a, double x)
incomplete complementary gamma function igamc(a, x) = 1 - igam(a, x)
double beta(double z, double w)
double igami(double a, double y)
double incbi(double a, double b, double y)
double ndtri(double y)
double gamma(double x)
double Polynomial1eval(double x, double *a, unsigned int N)
double Polynomialeval(double x, double *a, unsigned int N)
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
auto * a
Definition: textangle.C:12