Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

zignor.cc File Reference


Detailed Description

========================================================================== This code is Copyright (C) 2005, Jurgen A. Doornik. Permission to use this code for non-commercial purposes is hereby given, provided proper reference is made to: Doornik, J.A. (2005), "An Improved Ziggurat Method to Generate Normal Random Samples", mimeo, Nuffield College, University of Oxford, and www.doornik.com/research. or the published version when available. This reference is still required when using modified versions of the code. This notice should be maintained in modified versions of the code. No warranty is given regarding the correctness of this code. ==========================================================================

Author:
Jurgen A. Doornik (Creator)
Author
ejt
Name
tekkotsu-4_0
Revision
1.1
State
Exp
Date
2007/01/25 20:54:13

Definition in file zignor.cc.

#include <limits.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "zigrandom.h"
#include "zignor.h"

Include dependency graph for zignor.cc:

Go to the source code of this file.

Defines

#define ZIGNOR_C   128
#define ZIGNOR_R   3.442619855899
#define ZIGNOR_V   9.91256303526217e-3
#define ZIGNOR_STORE   64 * 4
#define ZIGNOR_INVM   M_RAN_INVM32
#define ZIGNOR32_STORE   64 * 4

Functions

static double DRanNormalTail (double dMin, int iNegative)
static void zigNorInit (int iC, double dR, double dV)
double DRanNormalZig (void)
double DRanNormalZigVec (void)
void RanNormalSetSeedZig (int *piSeed, int cSeed)
void RanNormalSetSeedZigVec (int *piSeed, int cSeed)
static void zig32NorInit (int iC, double dR, double dV)
double DRanNormalZig32 (void)
double DRanNormalZig32Vec (void)
void RanNormalSetSeedZig32 (int *piSeed, int cSeed)
void RanNormalSetSeedZig32Vec (int *piSeed, int cSeed)
double DRanQuanNormalZig (void)
double DRanQuanNormalZigVec (void)
double DRanQuanNormalZig32 (void)
double DRanQuanNormalZig32Vec (void)

Variables

static double s_adZigX [ZIGNOR_C+1]
static double s_adZigR [ZIGNOR_C]
static unsigned int s_auiZigTmp [ZIGNOR_STORE/4]
static unsigned int s_auiZigBox [ZIGNOR_STORE]
static double s_adZigRan [ZIGNOR_STORE+ZIGNOR_STORE/4]
static int s_cZigStored = 0
static unsigned int s_aiZigRm [ZIGNOR_C]
static double s_adZigXm [ZIGNOR_C+1]
static unsigned int s_auiZig32Ran [ZIGNOR32_STORE]
static unsigned int s_auiZig32Box [ZIGNOR32_STORE]
static int s_cZig32Stored = 0


Define Documentation

#define ZIGNOR32_STORE   64 * 4

Definition at line 209 of file zignor.cc.

Referenced by DRanNormalZig32Vec().

#define ZIGNOR_C   128

Definition at line 48 of file zignor.cc.

Referenced by RanNormalSetSeedZig(), and RanNormalSetSeedZig32().

#define ZIGNOR_INVM   M_RAN_INVM32

Definition at line 160 of file zignor.cc.

Referenced by DRanNormalZig32(), DRanNormalZig32Vec(), and zig32NorInit().

#define ZIGNOR_R   3.442619855899

#define ZIGNOR_STORE   64 * 4

Definition at line 98 of file zignor.cc.

Referenced by DRanNormalZigVec().

#define ZIGNOR_V   9.91256303526217e-3

Definition at line 51 of file zignor.cc.

Referenced by RanNormalSetSeedZig(), and RanNormalSetSeedZig32().


Function Documentation

static double DRanNormalTail ( double  dMin,
int  iNegative 
) [static]

Definition at line 38 of file zignor.cc.

Referenced by DRanNormalZig(), DRanNormalZig32(), DRanNormalZig32Vec(), and DRanNormalZigVec().

double DRanNormalZig ( void   ) 

Definition at line 74 of file zignor.cc.

Referenced by DRanQuanNormalZig().

double DRanNormalZig32Vec ( void   ) 

Definition at line 214 of file zignor.cc.

Referenced by DRanQuanNormalZig32Vec().

double DRanNormalZigVec ( void   ) 

Definition at line 104 of file zignor.cc.

Referenced by DRanQuanNormalZigVec().

double DRanQuanNormalZig ( void   ) 

Definition at line 268 of file zignor.cc.

double DRanQuanNormalZig32 ( void   ) 

Definition at line 276 of file zignor.cc.

double DRanQuanNormalZig32Vec ( void   ) 

Definition at line 280 of file zignor.cc.

double DRanQuanNormalZigVec ( void   ) 

Definition at line 272 of file zignor.cc.

void RanNormalSetSeedZig ( int *  piSeed,
int  cSeed 
)

Definition at line 147 of file zignor.cc.

Referenced by RanNormalSetSeedZigVec().

void RanNormalSetSeedZig32 ( int *  piSeed,
int  cSeed 
)

Definition at line 255 of file zignor.cc.

Referenced by RanNormalSetSeedZig32Vec().

void RanNormalSetSeedZig32Vec ( int *  piSeed,
int  cSeed 
)

Definition at line 260 of file zignor.cc.

void RanNormalSetSeedZigVec ( int *  piSeed,
int  cSeed 
)

Definition at line 152 of file zignor.cc.

static void zig32NorInit ( int  iC,
double  dR,
double  dV 
) [static]

Definition at line 165 of file zignor.cc.

Referenced by RanNormalSetSeedZig32().

static void zigNorInit ( int  iC,
double  dR,
double  dV 
) [static]

Definition at line 57 of file zignor.cc.

Referenced by RanNormalSetSeedZig().


Variable Documentation

double s_adZigR[ZIGNOR_C] [static]

Definition at line 55 of file zignor.cc.

double s_adZigRan[ZIGNOR_STORE+ZIGNOR_STORE/4] [static]

Definition at line 101 of file zignor.cc.

double s_adZigX[ZIGNOR_C+1] [static]

Definition at line 55 of file zignor.cc.

double s_adZigXm[ZIGNOR_C+1] [static]

Definition at line 163 of file zignor.cc.

unsigned int s_aiZigRm[ZIGNOR_C] [static]

Definition at line 162 of file zignor.cc.

unsigned int s_auiZig32Box[ZIGNOR32_STORE] [static]

Definition at line 211 of file zignor.cc.

unsigned int s_auiZig32Ran[ZIGNOR32_STORE] [static]

Definition at line 210 of file zignor.cc.

unsigned int s_auiZigBox[ZIGNOR_STORE] [static]

Definition at line 100 of file zignor.cc.

unsigned int s_auiZigTmp[ZIGNOR_STORE/4] [static]

Definition at line 99 of file zignor.cc.

int s_cZig32Stored = 0 [static]

Definition at line 212 of file zignor.cc.

int s_cZigStored = 0 [static]

Definition at line 102 of file zignor.cc.


Tekkotsu v4.0
Generated Thu Nov 22 00:58:07 2007 by Doxygen 1.5.4