ROOT   Reference Guide
Loading...
Searching...
No Matches
SpecFuncMathCore.h
Go to the documentation of this file.
1// @(#)root/mathcore:$Id$
2// Authors: Andras Zsenei & Lorenzo Moneta 06/2005
3
4/**********************************************************************
5 * *
6 * Copyright (c) 2005 , LCG ROOT MathLib Team *
7 * *
8 * *
9 **********************************************************************/
10
11
12
13/**
14
15Special mathematical functions.
16The naming and numbering of the functions is taken from
17<A HREF="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1687.pdf">
18Matt Austern,
19(Draft) Technical Report on Standard Library Extensions,
20N1687=04-0127, September 10, 2004</A>
21
22@author Created by Andras Zsenei on Mon Nov 8 2004
23
24@defgroup SpecFunc Special functions
25@ingroup MathCore
26@ingroup MathMore
27
28*/
29
30#ifndef ROOT_Math_SpecFuncMathCore
31#define ROOT_Math_SpecFuncMathCore
32
33
34namespace ROOT {
35namespace Math {
36
37
38 /** @name Special Functions from MathCore */
39
40
41 /**
42
43 Error function encountered in integrating the normal distribution.
44
45 \f[ erf(x) = \frac{2}{\sqrt{\pi}} \int_{0}^{x} e^{-t^2} dt \f]
46
47 For detailed description see
48 <A HREF="http://mathworld.wolfram.com/Erf.html">
49 Mathworld</A>.
50 The implementation used is that of
51 <A HREF="http://www.gnu.org/software/gsl/manual/gsl-ref_7.html#SEC102">GSL</A>.
52 This function is provided only for convenience,
53 in case your standard C++ implementation does not support
54 it. If it does, please use these standard version!
55
56 @ingroup SpecFunc
57
58 */
59 // (26.x.21.1) error function
60
61 double erf(double x);
62
63
64
65 /**
66
67 Complementary error function.
68
69 \f[ erfc(x) = 1 - erf(x) = \frac{2}{\sqrt{\pi}} \int_{x}^{\infty} e^{-t^2} dt \f]
70
71 For detailed description see <A HREF="http://mathworld.wolfram.com/Erfc.html"> Mathworld</A>.
72 The implementation used is that of <A HREF="http://www.netlib.org/cephes">Cephes</A> from S. Moshier.
73
74 @ingroup SpecFunc
75
76 */
77 // (26.x.21.2) complementary error function
78
79 double erfc(double x);
80
81
82 /**
83
84 The gamma function is defined to be the extension of the
85 factorial to real numbers.
86
87 \f[ \Gamma(x) = \int_{0}^{\infty} t^{x-1} e^{-t} dt \f]
88
89 For detailed description see
90 <A HREF="http://mathworld.wolfram.com/GammaFunction.html">
91 Mathworld</A>.
92 The implementation used is that of <A HREF="http://www.netlib.org/cephes">Cephes</A> from S. Moshier.
93
94 @ingroup SpecFunc
95
96 */
97 // (26.x.18) gamma function
98
99 double tgamma(double x);
100
101
102 /**
103
104 Calculates the logarithm of the gamma function
105
106 The implementation used is that of <A HREF="http://www.netlib.org/cephes">Cephes</A> from S. Moshier.
107 @ingroup SpecFunc
108
109 */
110 double lgamma(double x);
111
112
113 /**
114 Calculates the normalized (regularized) lower incomplete gamma function (lower integral)
115
116 \f[ P(a, x) = \frac{ 1} {\Gamma(a) } \int_{0}^{x} t^{a-1} e^{-t} dt \f]
117
118
119 For a detailed description see
120 <A HREF="http://mathworld.wolfram.com/RegularizedGammaFunction.html">
121 Mathworld</A>.
122 The implementation used is that of <A HREF="http://www.netlib.org/cephes">Cephes</A> from S. Moshier.
123 In this implementation both a and x must be positive. If a is negative 1.0 is returned for every x.
124 This is correct only if a is negative integer.
125 For a>0 and x<0 0 is returned (this is correct only for a>0 and x=0).
126
127 @ingroup SpecFunc
128 */
129 double inc_gamma(double a, double x );
130
131 /**
132 Calculates the normalized (regularized) upper incomplete gamma function (upper integral)
133
134 \f[ Q(a, x) = \frac{ 1} {\Gamma(a) } \int_{x}^{\infty} t^{a-1} e^{-t} dt \f]
135
136
137 For a detailed description see
138 <A HREF="http://mathworld.wolfram.com/RegularizedGammaFunction.html">
139 Mathworld</A>.
140 The implementation used is that of <A HREF="http://www.netlib.org/cephes">Cephes</A> from S. Moshier.
141 In this implementation both a and x must be positive. If a is negative, 0 is returned for every x.
142 This is correct only if a is negative integer.
143 For a>0 and x<0 1 is returned (this is correct only for a>0 and x=0).
144
145 @ingroup SpecFunc
146 */
147 double inc_gamma_c(double a, double x );
148
149 /**
150
151 Calculates the beta function.
152
153 \f[ B(x,y) = \frac{\Gamma(x) \Gamma(y)}{\Gamma(x+y)} \f]
154
155 for x>0 and y>0. For detailed description see
156 <A HREF="http://mathworld.wolfram.com/BetaDistribution.html">
157 Mathworld</A>.
158
159 @ingroup SpecFunc
160
161 */
162 // [5.2.1.3] beta function
163
164 double beta(double x, double y);
165
166
167 /**
168
169 Calculates the normalized (regularized) incomplete beta function.
170
171 \f[ B(x, a, b ) = \frac{ \int_{0}^{x} u^{a-1} (1-u)^{b-1} du } { B(a,b) } \f]
172
173 for 0<=x<=1, a>0, and b>0. For detailed description see
174 <A HREF="http://mathworld.wolfram.com/RegularizedBetaFunction.html">
175 Mathworld</A>.
176 The implementation used is that of <A HREF="http://www.netlib.org/cephes">Cephes</A> from S. Moshier.
177
178 @ingroup SpecFunc
179
180 */
181
182 double inc_beta( double x, double a, double b);
183
184
185
186
187 /**
188
189 Calculates the sine integral.
190
191 \f[ Si(x) = - \int_{0}^{x} \frac{\sin t}{t} dt \f]
192
193 For detailed description see
194 <A HREF="http://mathworld.wolfram.com/SineIntegral.html">
195 Mathworld</A>. The implementation used is that of
196 <A HREF="https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/c336/top.html">
197 CERNLIB</A>,
198 based on Y.L. Luke, The special functions and their approximations, v.II, (Academic Press, New York l969) 325-326.
199
200
201 @ingroup SpecFunc
202
203 */
204
205 double sinint(double x);
206
207
208
209
210 /**
211
212 Calculates the real part of the cosine integral Re(Ci).
213
214 For x<0, the imaginary part is \pi i and has to be added by the user,
215 for x>0 the imaginary part of Ci(x) is 0.
216
217 \f[ Ci(x) = - \int_{x}^{\infty} \frac{\cos t}{t} dt = \gamma + \ln x + \int_{0}^{x} \frac{\cos t - 1}{t} dt\f]
218
219 For detailed description see
220 <A HREF="http://mathworld.wolfram.com/CosineIntegral.html">
221 Mathworld</A>. The implementation used is that of
222 <A HREF="https://cern-tex.web.cern.ch/cern-tex/shortwrupsdir/c336/top.html">
223 CERNLIB</A>,
224 based on Y.L. Luke, The special functions and their approximations, v.II, (Academic Press, New York l969) 325-326.
225
226
227 @ingroup SpecFunc
228
229 */
230
231 double cosint(double x);
232
233
234
235
236} // namespace Math
237} // namespace ROOT
238
239
240#endif // ROOT_Math_SpecFuncMathCore
#define b(i)
Definition RSha256.hxx:100
#define a(i)
Definition RSha256.hxx:99
double inc_gamma_c(double a, double x)
Calculates the normalized (regularized) upper incomplete gamma function (upper integral)
double beta(double x, double y)
Calculates the beta function.
double inc_beta(double x, double a, double b)
Calculates the normalized (regularized) incomplete beta function.
double erfc(double x)
Complementary error function.
double sinint(double x)
Calculates the sine integral.
double tgamma(double x)
The gamma function is defined to be the extension of the factorial to real numbers.
double lgamma(double x)
Calculates the logarithm of the gamma function.
double cosint(double x)
Calculates the real part of the cosine integral Re(Ci).
double inc_gamma(double a, double x)
Calculates the normalized (regularized) lower incomplete gamma function (lower integral)
double erf(double x)
Error function encountered in integrating the normal distribution.
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17
Namespace for new Math classes and functions.
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...