#include <newran.h>
Inheritance diagram for ChiSq:


Public Member Functions | |
| char * | Name () |
| ChiSq (int, Real=0.0) | |
| virtual | ~ChiSq () |
| ExtReal | Mean () const |
| ExtReal | Variance () const |
| Real | Next () |
Private Member Functions | |
| void | operator= (const ChiSq &) |
Private Attributes | |
| Random * | c1 |
| Random * | c2 |
| int | version |
| Real | mean |
| Real | var |
|
||||||||||||
|
Definition at line 361 of file newran.cpp. References c1, c2, ErrorNoSpace(), mean, var, and version.
00362 {
00363 if (df<=0 || noncen<0.0) Throw(Logic_error("Newran: illegal parameters"));
00364 else if (df==1) { version=0; c1=new ChiSq1(noncen); }
00365 else if (noncen==0.0)
00366 {
00367 if (df==2) { version=1; c1=new Exponential(); }
00368 else { version=2; c1=new Gamma2(0.5*df); }
00369 }
00370 else if (df==2) { version=3; c1=new ChiSq1(noncen/2.0); }
00371 else if (df==3) { version=4; c1=new Exponential(); c2=new ChiSq1(noncen); }
00372 else { version=5; c1=new Gamma2(0.5*(df-1)); c2=new ChiSq1(noncen); }
00373 if (!c1 || (version>3 && !c2)) ErrorNoSpace();
00374 mean=df+noncen; var=2*df+4.0*noncen;
00375 }
|
|
|
Definition at line 377 of file newran.cpp. References c1, c2, and version.
|
|
|
Reimplemented from Random. Definition at line 155 of file newran.h.
00155 { return mean; }
|
|
|
Reimplemented from Random. Definition at line 912 of file newran.cpp.
00912 { return "ChiSq"; }
|
|
|
Reimplemented from Random. Definition at line 379 of file newran.cpp. References c1, c2, Random::Next(), Real, and version.
00380 {
00381 switch(version)
00382 {
00383 case 0: return c1->Next();
00384 case 1: case 2: return c1->Next()*2.0;
00385 case 3: return c1->Next() + c1->Next();
00386 case 4: case 5: Real s1 = c1->Next()*2.0; Real s2 = c2->Next();
00387 return s1 + s2; // this is to make it work with Microsoft VC5
00388 }
00389 return 0;
00390 }
|
|
|
Definition at line 145 of file newran.h.
00145 {} // private so can't access
|
|
|
Reimplemented from Random. Definition at line 156 of file newran.h.
00156 { return var; }
|
|
|
|
|
|
|
|
|
Definition at line 149 of file newran.h. Referenced by ChiSq(). |
|
|
Definition at line 149 of file newran.h. Referenced by ChiSq(). |
|
|
|
1.3.3