Main Page | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals

ChiSq Class Reference

#include <newran.h>

Inheritance diagram for ChiSq:

Inheritance graph
[legend]
Collaboration diagram for ChiSq:

Collaboration graph
[legend]

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

Randomc1
Randomc2
int version
Real mean
Real var

Constructor & Destructor Documentation

ChiSq::ChiSq int  ,
Real  = 0.0
 

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 }

ChiSq::~ChiSq  )  [virtual]
 

Definition at line 377 of file newran.cpp.

References c1, c2, and version.

00377 { delete c1; if (version>3) delete c2; }


Member Function Documentation

ExtReal ChiSq::Mean  )  const [inline, virtual]
 

Reimplemented from Random.

Definition at line 155 of file newran.h.

00155 { return mean; }

char * ChiSq::Name  )  [virtual]
 

Reimplemented from Random.

Definition at line 912 of file newran.cpp.

00912 { return "ChiSq";            }

Real ChiSq::Next  )  [virtual]
 

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 }

void ChiSq::operator= const ChiSq  )  [inline, private]
 

Definition at line 145 of file newran.h.

00145 {}        // private so can't access

ExtReal ChiSq::Variance  )  const [inline, virtual]
 

Reimplemented from Random.

Definition at line 156 of file newran.h.

00156 { return var; }


Field Documentation

Random* ChiSq::c1 [private]
 

Definition at line 146 of file newran.h.

Referenced by ChiSq(), Next(), and ~ChiSq().

Random* ChiSq::c2 [private]
 

Definition at line 147 of file newran.h.

Referenced by ChiSq(), Next(), and ~ChiSq().

Real ChiSq::mean [private]
 

Definition at line 149 of file newran.h.

Referenced by ChiSq().

Real ChiSq::var [private]
 

Definition at line 149 of file newran.h.

Referenced by ChiSq().

int ChiSq::version [private]
 

Definition at line 148 of file newran.h.

Referenced by ChiSq(), Next(), and ~ChiSq().


The documentation for this class was generated from the following files:
Generated on Fri Dec 5 04:06:17 2003 for Borqueror by doxygen 1.3.3