1 /* Stretched exponential distributions.
2  *
3  * SRE, Fri Aug 19 13:51:14 2005 [St. Louis] [xref STL9/146]
4  */
5 #ifndef eslSTRETCHEXP_INCLUDED
6 #define eslSTRETCHEXP_INCLUDED
7 #include "esl_config.h"
8 
9 #include "esl_histogram.h"
10 #include "esl_random.h"
11 
12 extern double esl_sxp_pdf    (double x, double mu, double lambda, double tau);
13 extern double esl_sxp_logpdf (double x, double mu, double lambda, double tau);
14 extern double esl_sxp_cdf    (double x, double mu, double lambda, double tau);
15 extern double esl_sxp_logcdf (double x, double mu, double lambda, double tau);
16 extern double esl_sxp_surv   (double x, double mu, double lambda, double tau);
17 extern double esl_sxp_logsurv(double x, double mu, double lambda, double tau);
18 extern double esl_sxp_invcdf (double p, double mu, double lambda, double tau);
19 
20 extern double esl_sxp_generic_pdf   (double x, void *params);
21 extern double esl_sxp_generic_cdf   (double x, void *params);
22 extern double esl_sxp_generic_surv  (double x, void *params);
23 extern double esl_sxp_generic_invcdf(double p, void *params);
24 
25 extern int esl_sxp_Plot(FILE *fp, double mu, double lambda, double tau,
26 			double (*func)(double x, double mu, double lambda, double tau),
27 			double xmin, double xmax, double xstep);
28 
29 
30 extern double esl_sxp_Sample(ESL_RANDOMNESS *r, double mu, double lambda, double tau);
31 
32 extern int esl_sxp_FitComplete(double *x, int n,
33 			       double *ret_mu, double *ret_lambda, double *ret_tau);
34 
35 extern int esl_sxp_FitCompleteBinned(ESL_HISTOGRAM *g,
36 				     double *ret_mu, double *ret_lambda, double *ret_tau);
37 
38 
39 #endif /*eslSTRETCHEXP_INCLUDED*/
40