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

newran.cpp File Reference

#include "SdlArs.h"
#include "include.h"
#include "newran.h"

Include dependency graph for newran.cpp:

Include dependency graph

Go to the source code of this file.

Data Structures

class  Binomial1
class  Binomial2
class  ChiSq1
class  Gamma1
class  Gamma2
class  Poisson1
class  Poisson2

Defines

#define WANT_MATH

Functions

Real square (Real x)
ExtReal square (const ExtReal &x)
void ErrorNoSpace ()
Real ln_gamma (Real xx)
NegatedRandomoperator- (Random &rv)
ShiftedRandomoperator+ (Random &rv, Real s)
ShiftedRandomoperator- (Random &rv, Real s)
ScaledRandomoperator * (Random &rv, Real s)
ShiftedRandomoperator+ (Real s, Random &rv)
ReverseShiftedRandomoperator- (Real s, Random &rv)
ScaledRandomoperator * (Real s, Random &rv)
ScaledRandomoperator/ (Random &rv, Real s)
ReciprocalRandomoperator/ (Real s, Random &rv)
AddedRandomoperator+ (Random &rv1, Random &rv2)
OredRandomoperator| (Random &rv1, Random &rv2)
MultipliedRandomoperator * (Random &rv1, Random &rv2)
SubtractedRandomoperator- (Random &rv1, Random &rv2)
DividedRandomoperator/ (Random &rv1, Random &rv2)
AddedSelectedRandomoperator+ (SelectedRandom &rv1, SelectedRandom &rv2)
AddedSelectedRandomoperator+ (AddedSelectedRandom &rv1, SelectedRandom &rv2)
AddedSelectedRandomoperator+ (SelectedRandom &rv1, AddedSelectedRandom &rv2)
AddedSelectedRandomoperator+ (AddedSelectedRandom &rv1, AddedSelectedRandom &rv2)


Define Documentation

#define WANT_MATH
 

Definition at line 7 of file newran.cpp.


Function Documentation

void ErrorNoSpace  )  [static]
 

Definition at line 127 of file newran.cpp.

Referenced by Binomial::Binomial(), Binomial2::Binomial2(), MixedRandom::Build(), AsymGen::Build(), PosGen::Build(), ChiSq::ChiSq(), DiscreteGen::DiscreteGen(), Gamma::Gamma(), DiscreteGen::Gen(), MixedRandom::MixedRandom(), RandomPermutation::Next(), operator *(), Random::operator()(), operator+(), operator-(), operator/(), operator|(), Poisson::Poisson(), and Poisson2::Poisson2().

00127 { Throw(Bad_alloc("Newran: out of space")); }

Real ln_gamma Real  xx  ) 
 

Definition at line 609 of file newran.cpp.

References Real.

Referenced by Binomial1::Binomial1(), Binomial2::Binomial2(), Poisson1::Density(), Binomial1::Density(), NegativeBinomial::Density(), Gamma1::Gamma1(), Gamma2::Gamma2(), NegativeBinomial::NegativeBinomial(), TestBinomial(), TestNegativeBinomial(), and TestPoisson().

00610 {
00611    // log gamma function adapted from numerical recipes in C
00612 
00613    if (xx<1.0)                           // Use reflection formula
00614    {
00615       double piz = 3.14159265359 * (1.0-xx);
00616       return log(piz/sin(piz))-ln_gamma(2.0-xx);
00617    }
00618    else
00619    {
00620       static double cof[6]={76.18009173,-86.50532033,24.01409822,
00621          -1.231739516,0.120858003e-2,-0.536382e-5};
00622 
00623       double x=xx-1.0; double tmp=x+5.5;
00624       tmp -= (x+0.5)*log(tmp); double ser=1.0;
00625       for (int j=0;j<=5;j++) { x += 1.0; ser += cof[j]/x; }
00626       return -tmp+log(2.50662827465*ser);
00627    }
00628 }

MultipliedRandom& operator * Random rv1,
Random rv2
 

Definition at line 733 of file newran.cpp.

References ErrorNoSpace().

00734 {
00735    MultipliedRandom* r = new MultipliedRandom(rv1, rv2);
00736    if (!r) ErrorNoSpace(); return *r;
00737 }

ScaledRandom& operator * Real  s,
Random rv
 

Definition at line 703 of file newran.cpp.

References ErrorNoSpace().

00704 {
00705    ScaledRandom* r = new ScaledRandom(rv, s);
00706    if (!r) ErrorNoSpace(); return *r;
00707 }

ScaledRandom& operator * Random rv,
Real  s
 

Definition at line 685 of file newran.cpp.

References ErrorNoSpace().

00686 {
00687    ScaledRandom* r = new ScaledRandom(rv, s);
00688    if (!r) ErrorNoSpace(); return *r;
00689 }

AddedSelectedRandom& operator+ AddedSelectedRandom rv1,
AddedSelectedRandom rv2
 

Definition at line 884 of file newran.cpp.

References ErrorNoSpace().

00886 {
00887    AddedSelectedRandom* r = new AddedSelectedRandom(rv1, rv2);
00888    if (!r) ErrorNoSpace(); return *r;
00889 }

AddedSelectedRandom& operator+ SelectedRandom rv1,
AddedSelectedRandom rv2
 

Definition at line 877 of file newran.cpp.

References ErrorNoSpace().

00879 {
00880    AddedSelectedRandom* r = new AddedSelectedRandom(rv1, rv2);
00881    if (!r) ErrorNoSpace(); return *r;
00882 }

AddedSelectedRandom& operator+ AddedSelectedRandom rv1,
SelectedRandom rv2
 

Definition at line 870 of file newran.cpp.

References ErrorNoSpace().

00872 {
00873    AddedSelectedRandom* r = new AddedSelectedRandom(rv1, rv2);
00874    if (!r) ErrorNoSpace(); return *r;
00875 }

AddedSelectedRandom& operator+ SelectedRandom rv1,
SelectedRandom rv2
 

Definition at line 863 of file newran.cpp.

References ErrorNoSpace().

00865 {
00866    AddedSelectedRandom* r = new AddedSelectedRandom(rv1, rv2);
00867    if (!r) ErrorNoSpace(); return *r;
00868 }

AddedRandom& operator+ Random rv1,
Random rv2
 

Definition at line 721 of file newran.cpp.

References ErrorNoSpace().

00722 {
00723    AddedRandom* r = new AddedRandom(rv1, rv2);
00724    if (!r) ErrorNoSpace(); return *r;
00725 }

ShiftedRandom& operator+ Real  s,
Random rv
 

Definition at line 691 of file newran.cpp.

References ErrorNoSpace().

00692 {
00693    ShiftedRandom* r = new ShiftedRandom(rv, s);
00694    if (!r) ErrorNoSpace(); return *r;
00695 }

ShiftedRandom& operator+ Random rv,
Real  s
 

Definition at line 673 of file newran.cpp.

References ErrorNoSpace().

00674 {
00675    ShiftedRandom* r = new ShiftedRandom(rv, s);
00676    if (!r) ErrorNoSpace(); return *r;
00677 }

SubtractedRandom& operator- Random rv1,
Random rv2
 

Definition at line 739 of file newran.cpp.

References ErrorNoSpace().

00740 {
00741    SubtractedRandom* r = new SubtractedRandom(rv1, rv2);
00742    if (!r) ErrorNoSpace(); return *r;
00743 }

ReverseShiftedRandom& operator- Real  s,
Random rv
 

Definition at line 697 of file newran.cpp.

References ErrorNoSpace().

00698 {
00699    ReverseShiftedRandom* r = new ReverseShiftedRandom(rv, s);
00700    if (!r) ErrorNoSpace(); return *r;
00701 }

ShiftedRandom& operator- Random rv,
Real  s
 

Definition at line 679 of file newran.cpp.

References ErrorNoSpace().

00680 {
00681    ShiftedRandom* r = new ShiftedRandom(rv, -s);
00682    if (!r) ErrorNoSpace(); return *r;
00683 }

NegatedRandom& operator- Random rv  ) 
 

Definition at line 667 of file newran.cpp.

References ErrorNoSpace().

00668 {
00669    NegatedRandom* r = new NegatedRandom(rv);
00670    if (!r) ErrorNoSpace(); return *r;
00671 }

DividedRandom& operator/ Random rv1,
Random rv2
 

Definition at line 745 of file newran.cpp.

References ErrorNoSpace().

00746 {
00747    DividedRandom* r = new DividedRandom(rv1, rv2);
00748    if (!r) ErrorNoSpace(); return *r;
00749 }

ReciprocalRandom& operator/ Real  s,
Random rv
 

Definition at line 715 of file newran.cpp.

References ErrorNoSpace().

00716 {
00717    ReciprocalRandom* r = new ReciprocalRandom(rv, s);
00718    if (!r) ErrorNoSpace(); return *r;
00719 }

ScaledRandom& operator/ Random rv,
Real  s
 

Definition at line 709 of file newran.cpp.

References ErrorNoSpace().

00710 {
00711    ScaledRandom* r = new ScaledRandom(rv, 1.0/s);
00712    if (!r) ErrorNoSpace(); return *r;
00713 }

OredRandom& operator| Random rv1,
Random rv2
 

Definition at line 727 of file newran.cpp.

References ErrorNoSpace().

00728 {
00729    OredRandom* r = new OredRandom(rv1, rv2);
00730    if (!r) ErrorNoSpace(); return *r;
00731 }

ExtReal square const ExtReal x  )  [inline]
 

Definition at line 125 of file newran.cpp.

00125 { return x*x; }

Real square Real  x  )  [inline]
 

Definition at line 124 of file newran.cpp.

References Real.

00124 { return x*x; }


Generated on Fri Dec 5 04:06:07 2003 for Borqueror by doxygen 1.3.3