malt-wr
yield.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

double uniform_deviate (long *idum)
 
double normal (double x)
 
double area (double leftmargin, double rightmargin)
 
double multiarea (double r, int dim)
 

Function Documentation

double area ( double  leftmargin,
double  rightmargin 
)

Definition at line 123 of file yield.c.

124 {
125  return qsimp(normal, 0, leftmargin) + qsimp(normal, 0, rightmargin);
126 }
static double qsimp(double(*func)(double), double a, double b)
Definition: yield.c:36
double normal(double x)
Definition: yield.c:56
double multiarea ( double  r,
int  dim 
)

Definition at line 129 of file yield.c.

130 {
131  double coeff, integral;
132 
133  dimensions = dim;
134  integral=qsimp(multinormal, 0, r);
135  coeff = multicoeff(dim);
136 
137  return integral*coeff;
138 }
static double multinormal(double x)
Definition: yield.c:68
static dimensions
Definition: yield.c:66
static double multicoeff(int n)
Definition: yield.c:109
int dim
Definition: points.c:11
static double qsimp(double(*func)(double), double a, double b)
Definition: yield.c:36
double normal ( double  x)

Definition at line 56 of file yield.c.

57 {
58  double y;
59 
60  y=-x*x/2;
61  y=exp(y)/sqrt(2*M_PI);
62  return (double) y;
63 }
double uniform_deviate ( long *  idum)

Definition at line 150 of file yield.c.

156 {
157 
158  static long iy, shuff_tab[SHUFFLE_LENGTH];
159  static int iff=0;
160 
161  int j;
162 
163  if((*idum < 0) || (iff==0)) {
164  iff = 1;
165  if((*idum = (IC-(*idum)) % IM) < 0)
166  *idum = - (*idum);
167 
168  /* initialize the shuffle table */
169  for(j=1; j<=SHUFFLE_LENGTH-1; j++) {
170  *idum = (IA*(unsigned long)(*idum)+IC) % IM;
171  shuff_tab[j] = (*idum);
172  }
173  *idum = (IA*(unsigned long)(*idum)+IC) % IM;
174  iy = (*idum);
175  }
176  j = 1 + (SHUFFLE_LENGTH-1)*iy/IM;
177 
178  if((j>SHUFFLE_LENGTH-1) || (j<0))
179  nrerror("Error in random number generator uniform_deviate.");
180 
181  iy = shuff_tab[j];
182 
183  *idum = (IA*(unsigned long)(*idum)+IC) % IM;
184  shuff_tab[j] = *idum;
185 
186  return (double) iy/ IM;
187 }
#define SHUFFLE_LENGTH
Definition: yield.c:147
#define IM
Definition: yield.c:143
#define IC
Definition: yield.c:145
void nrerror(char *error_text)
Definition: lineread.c:7
#define IA
Definition: yield.c:144