/* if distributions are added here, the parameters they expected must be listed in interface.R */ double logdist(double x, char* distribution, vec_double* params){ double out = 1.; if (!strcmp(distribution, "flat")) { out = gsl_ran_flat_pdf(x, params->values[0], params->values[1]); } else if (!strcmp(distribution, "gaussian")) { out = gsl_ran_gaussian_pdf(x - params->values[0], params->values[1]); } else if (!strcmp(distribution, "lognormal")) { out = gsl_ran_lognormal_pdf(x, params->values[0], params->values[1]); } else if (!strcmp(distribution, "beta")) { out = gsl_ran_beta_pdf(x, params->values[0], params->values[1]); } else if (!strcmp(distribution, "exponential")) { out = gsl_ran_exponential_pdf(x, params->values[0]); } out = log(out); filter_logprob(&out); return(out); }
double lognormal (double x, void *p) { double * c = (double *)p; return gsl_ran_lognormal_pdf (x, c[0], c[1]); }
double test_lognormal_pdf (double x) { return gsl_ran_lognormal_pdf (x, 2.7, 1.3); }