blitz
Version 0.9
Main Page
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
random
chisquare.h
Go to the documentation of this file.
1
/*
2
* Chi^2 distribution
3
*
4
* This code has been adapted from RANDLIB.C 1.3, by
5
* Barry W. Brown, James Lovato, Kathy Russell, and John Venier.
6
* Code was originally by Ahrens and Dieter (see above).
7
*
8
* Adapter's notes:
9
*/
10
11
#ifndef BZ_RANDOM_CHISQUARE
12
#define BZ_RANDOM_CHISQUARE
13
14
#ifndef BZ_RANDOM_GAMMA
15
#include <
random/gamma.h
>
16
#endif
17
18
BZ_NAMESPACE
(ranlib)
19
20
template<typename T =
double
, typename IRNG =
defaultIRNG
,
21
typename stateTag =
defaultState
>
22
class
ChiSquare
: public
Gamma
<T,IRNG,stateTag>
23
{
24
public
:
25
typedef
T
T_numtype
;
26
27
ChiSquare
(T df)
28
:
Gamma
<T,IRNG,stateTag>(df/2.0)
29
{
30
setDF(df);
31
}
32
33
void
setDF(T _df)
34
{
35
BZPRECONDITION(_df > 0.0);
36
df = _df;
37
Gamma<T,IRNG,stateTag>::setMean
(df/2.0);
38
}
39
40
T random()
41
{
42
return
2.0 * sgamma();
43
}
44
45
protected
:
46
T sgamma()
47
{
48
return
Gamma<T,IRNG,stateTag>::random
();
49
}
50
51
T
df
;
52
};
53
54
BZ_NAMESPACE_END
55
56
#endif // BZ_RANDOM_CHISQUARE
Generated on Fri Jun 15 2012 12:01:12 for blitz by
1.8.1.1