blob: 17c8069d44c62962ad5fc704c905b62460acb6f5 [file] [log] [blame]
#include "rsbench.h"
// Park & Miller Multiplicative Conguential Algorithm
// From "Numerical Recipes" Second Edition
double rn(unsigned long * seed)
{
double ret;
unsigned long n1;
unsigned long a = 16807;
unsigned long m = 2147483647;
n1 = ( a * (*seed) ) % m;
*seed = n1;
ret = (double) n1 / m;
return ret;
}
size_t get_mem_estimate( Input input )
{
size_t poles = input.n_nuclides * input.avg_n_poles * sizeof(Pole) + input.n_nuclides * sizeof(Pole *);
size_t windows = input.n_nuclides * input.avg_n_windows * sizeof(Window) + input.n_nuclides * sizeof(Window *);
size_t pseudo_K0RS = input.n_nuclides * input.numL * sizeof( double ) + input.n_nuclides * sizeof(double);
size_t other = input.n_nuclides * 2 * sizeof(int);
size_t total = poles + windows + pseudo_K0RS + other;
return total;
}