static double random_exponential(void) { //double u = random_uniform(); //double r = -log(1-u); //return r; return fabs(random_laplace()); }
static GnmValue * gnumeric_randlaplace (GnmFuncEvalInfo *ei, GnmValue const * const *argv) { gnm_float a = value_get_as_float (argv[0]); return value_new_float (random_laplace (a)); }
static gboolean tool_random_engine_run_laplace (data_analysis_output_t *dao, tools_data_random_t *info, laplace_random_tool_t *param) { int i, n; for (i = 0; i < info->n_vars; i++) { for (n = 0; n < info->count; n++) { gnm_float v; v = random_laplace (param->a); dao_set_cell_float (dao, i, n, v); } } return FALSE; }