113 for (i = 0; i < 3; i++)
119 for (i = 0; i < 3; i++)
121 x.
v[i] = pdf->
x.
v[i];
122 for (j = 0; j < 3; j++)
123 x.
v[i] += pdf->
cr.
m[i][j] * r.
v[j];
139 do { r =
drand48(); }
while (r==0.0);
141 do { r =
drand48(); }
while (r==0.0);
144 }
while(w > 1.0 || w==0.0);
146 return(sigma * x2 *
sqrt(-2.0*
log(w)/w));
void pf_pdf_gaussian_free(pf_pdf_gaussian_t *pdf)
double pf_ran_gaussian(double sigma)
INLINE Rall1d< T, V, S > log(const Rall1d< T, V, S > &arg)
pf_vector_t pf_pdf_gaussian_sample(pf_pdf_gaussian_t *pdf)
static void srand48(long int seedval)
pf_pdf_gaussian_t * pf_pdf_gaussian_alloc(pf_vector_t x, pf_matrix_t cx)
static double drand48(void)
static unsigned int pf_pdf_seed
INLINE Rall1d< T, V, S > sqrt(const Rall1d< T, V, S > &arg)
void pf_matrix_unitary(pf_matrix_t *r, pf_matrix_t *d, pf_matrix_t a)