(** Cumulative distribution functions *)

external ugaussian_P : x:float -> float = "ml_gsl_cdf_ugaussian_P" "gsl_cdf_ugaussian_P" [@@unboxed] [@@noalloc]
external ugaussian_Q : x:float -> float = "ml_gsl_cdf_ugaussian_Q" "gsl_cdf_ugaussian_Q" [@@unboxed] [@@noalloc]
external ugaussian_Pinv : p:float -> float = "ml_gsl_cdf_ugaussian_Pinv" "gsl_cdf_ugaussian_Pinv" [@@unboxed] [@@noalloc]
external ugaussian_Qinv : q:float -> float = "ml_gsl_cdf_ugaussian_Qinv" "gsl_cdf_ugaussian_Qinv" [@@unboxed] [@@noalloc]
external gaussian_P : x:float -> sigma:float -> float = "ml_gsl_cdf_gaussian_P" "gsl_cdf_gaussian_P" [@@unboxed] [@@noalloc]
external gaussian_Q : x:float -> sigma:float -> float = "ml_gsl_cdf_gaussian_Q" "gsl_cdf_gaussian_Q" [@@unboxed] [@@noalloc]
external gaussian_Pinv : p:float -> sigma:float -> float = "ml_gsl_cdf_gaussian_Pinv" "gsl_cdf_gaussian_Pinv" [@@unboxed] [@@noalloc]
external gaussian_Qinv : q:float -> sigma:float -> float = "ml_gsl_cdf_gaussian_Qinv" "gsl_cdf_gaussian_Qinv" [@@unboxed] [@@noalloc]
external gamma_P : x:float -> a:float -> b:float -> float = "ml_gsl_cdf_gamma_P" "gsl_cdf_gamma_P" [@@unboxed] [@@noalloc]
external gamma_Q : x:float -> a:float -> b:float -> float = "ml_gsl_cdf_gamma_Q" "gsl_cdf_gamma_Q" [@@unboxed] [@@noalloc]
external gamma_Pinv : p:float -> a:float -> b:float -> float = "ml_gsl_cdf_gamma_Pinv" "gsl_cdf_gamma_Pinv" [@@unboxed] [@@noalloc]
external gamma_Qinv : q:float -> a:float -> b:float -> float = "ml_gsl_cdf_gamma_Qinv" "gsl_cdf_gamma_Qinv" [@@unboxed] [@@noalloc]
external cauchy_P : x:float -> a:float -> float = "ml_gsl_cdf_cauchy_P" "gsl_cdf_cauchy_P" [@@unboxed] [@@noalloc]
external cauchy_Q : x:float -> a:float -> float = "ml_gsl_cdf_cauchy_Q" "gsl_cdf_cauchy_Q" [@@unboxed] [@@noalloc]
external cauchy_Pinv : p:float -> a:float -> float = "ml_gsl_cdf_cauchy_Pinv" "gsl_cdf_cauchy_Pinv" [@@unboxed] [@@noalloc]
external cauchy_Qinv : q:float -> a:float -> float = "ml_gsl_cdf_cauchy_Qinv" "gsl_cdf_cauchy_Qinv" [@@unboxed] [@@noalloc]
external laplace_P : x:float -> a:float -> float = "ml_gsl_cdf_laplace_P" "gsl_cdf_laplace_P" [@@unboxed] [@@noalloc]
external laplace_Q : x:float -> a:float -> float = "ml_gsl_cdf_laplace_Q" "gsl_cdf_laplace_Q" [@@unboxed] [@@noalloc]
external laplace_Pinv : p:float -> a:float -> float = "ml_gsl_cdf_laplace_Pinv" "gsl_cdf_laplace_Pinv" [@@unboxed] [@@noalloc]
external laplace_Qinv : q:float -> a:float -> float = "ml_gsl_cdf_laplace_Qinv" "gsl_cdf_laplace_Qinv" [@@unboxed] [@@noalloc]
external rayleigh_P : x:float -> sigma:float -> float = "ml_gsl_cdf_rayleigh_P" "gsl_cdf_rayleigh_P" [@@unboxed] [@@noalloc]
external rayleigh_Q : x:float -> sigma:float -> float = "ml_gsl_cdf_rayleigh_Q" "gsl_cdf_rayleigh_Q" [@@unboxed] [@@noalloc]
external rayleigh_Pinv : p:float -> sigma:float -> float = "ml_gsl_cdf_rayleigh_Pinv" "gsl_cdf_rayleigh_Pinv" [@@unboxed] [@@noalloc]
external rayleigh_Qinv : q:float -> sigma:float -> float = "ml_gsl_cdf_rayleigh_Qinv" "gsl_cdf_rayleigh_Qinv" [@@unboxed] [@@noalloc]
external chisq_P : x:float -> nu:float -> float = "ml_gsl_cdf_chisq_P" "gsl_cdf_chisq_P" [@@unboxed] [@@noalloc]
external chisq_Q : x:float -> nu:float -> float = "ml_gsl_cdf_chisq_Q" "gsl_cdf_chisq_Q" [@@unboxed] [@@noalloc]
external chisq_Pinv : p:float -> nu:float -> float = "ml_gsl_cdf_chisq_Pinv" "gsl_cdf_chisq_Pinv" [@@unboxed] [@@noalloc]
external chisq_Qinv : q:float -> nu:float -> float = "ml_gsl_cdf_chisq_Qinv" "gsl_cdf_chisq_Qinv" [@@unboxed] [@@noalloc]
external exponential_P : x:float -> mu:float -> float = "ml_gsl_cdf_exponential_P" "gsl_cdf_exponential_P" [@@unboxed] [@@noalloc]
external exponential_Q : x:float -> mu:float -> float = "ml_gsl_cdf_exponential_Q" "gsl_cdf_exponential_Q" [@@unboxed] [@@noalloc]
external exponential_Pinv : p:float -> mu:float -> float = "ml_gsl_cdf_exponential_Pinv" "gsl_cdf_exponential_Pinv" [@@unboxed] [@@noalloc]
external exponential_Qinv : q:float -> mu:float -> float = "ml_gsl_cdf_exponential_Qinv" "gsl_cdf_exponential_Qinv" [@@unboxed] [@@noalloc]
external exppow_P : x:float -> a:float -> b:float -> float = "ml_gsl_cdf_exppow_P" "gsl_cdf_exppow_P" [@@unboxed] [@@noalloc]
external exppow_Q : x:float -> a:float -> b:float -> float = "ml_gsl_cdf_exppow_Q" "gsl_cdf_exppow_Q" [@@unboxed] [@@noalloc]
external tdist_P : x:float -> nu:float -> float = "ml_gsl_cdf_tdist_P" "gsl_cdf_tdist_P" [@@unboxed] [@@noalloc]
external tdist_Q : x:float -> nu:float -> float = "ml_gsl_cdf_tdist_Q" "gsl_cdf_tdist_Q" [@@unboxed] [@@noalloc]
external tdist_Pinv : p:float -> nu:float -> float = "ml_gsl_cdf_tdist_Pinv" "gsl_cdf_tdist_Pinv" [@@unboxed] [@@noalloc]
external tdist_Qinv : q:float -> nu:float -> float = "ml_gsl_cdf_tdist_Qinv" "gsl_cdf_tdist_Qinv" [@@unboxed] [@@noalloc]
external fdist_P : x:float -> nu1:float -> nu2:float -> float = "ml_gsl_cdf_fdist_P" "gsl_cdf_fdist_P" [@@unboxed] [@@noalloc]
external fdist_Q : x:float -> nu1:float -> nu2:float -> float = "ml_gsl_cdf_fdist_Q" "gsl_cdf_fdist_Q" [@@unboxed] [@@noalloc]
external fdist_Pinv : p:float -> nu1:float -> nu2:float -> float = "ml_gsl_cdf_fdist_Pinv" "gsl_cdf_fdist_Pinv" [@@unboxed] [@@noalloc]
external fdist_Qinv : q:float -> nu1:float -> nu2:float -> float = "ml_gsl_cdf_fdist_Qinv" "gsl_cdf_fdist_Qinv" [@@unboxed] [@@noalloc]
external beta_P : x:float -> a:float -> b:float -> float = "ml_gsl_cdf_beta_P" "gsl_cdf_beta_P" [@@unboxed] [@@noalloc]
external beta_Q : x:float -> a:float -> b:float -> float = "ml_gsl_cdf_beta_Q" "gsl_cdf_beta_Q" [@@unboxed] [@@noalloc]
external beta_Pinv : p:float -> a:float -> b:float -> float = "ml_gsl_cdf_beta_Pinv" "gsl_cdf_beta_Pinv" [@@unboxed] [@@noalloc]
external beta_Qinv : q:float -> a:float -> b:float -> float = "ml_gsl_cdf_beta_Qinv" "gsl_cdf_beta_Qinv" [@@unboxed] [@@noalloc]
external flat_P : x:float -> a:float -> b:float -> float = "ml_gsl_cdf_flat_P" "gsl_cdf_flat_P" [@@unboxed] [@@noalloc]
external flat_Q : x:float -> a:float -> b:float -> float = "ml_gsl_cdf_flat_Q" "gsl_cdf_flat_Q" [@@unboxed] [@@noalloc]
external flat_Pinv : p:float -> a:float -> b:float -> float = "ml_gsl_cdf_flat_Pinv" "gsl_cdf_flat_Pinv" [@@unboxed] [@@noalloc]
external flat_Qinv : q:float -> a:float -> b:float -> float = "ml_gsl_cdf_flat_Qinv" "gsl_cdf_flat_Qinv" [@@unboxed] [@@noalloc]
external lognormal_P : x:float -> zeta:float -> sigma:float -> float = "ml_gsl_cdf_lognormal_P" "gsl_cdf_lognormal_P" [@@unboxed] [@@noalloc]
external lognormal_Q : x:float -> zeta:float -> sigma:float -> float = "ml_gsl_cdf_lognormal_Q" "gsl_cdf_lognormal_Q" [@@unboxed] [@@noalloc]
external lognormal_Pinv : p:float -> zeta:float -> sigma:float -> float = "ml_gsl_cdf_lognormal_Pinv" "gsl_cdf_lognormal_Pinv" [@@unboxed] [@@noalloc]
external lognormal_Qinv : q:float -> zeta:float -> sigma:float -> float = "ml_gsl_cdf_lognormal_Qinv" "gsl_cdf_lognormal_Qinv" [@@unboxed] [@@noalloc]
external gumbel1_P : x:float -> a:float -> b:float -> float = "ml_gsl_cdf_gumbel1_P" "gsl_cdf_gumbel1_P" [@@unboxed] [@@noalloc]
external gumbel1_Q : x:float -> a:float -> b:float -> float = "ml_gsl_cdf_gumbel1_Q" "gsl_cdf_gumbel1_Q" [@@unboxed] [@@noalloc]
external gumbel1_Pinv : p:float -> a:float -> b:float -> float = "ml_gsl_cdf_gumbel1_Pinv" "gsl_cdf_gumbel1_Pinv" [@@unboxed] [@@noalloc]
external gumbel1_Qinv : q:float -> a:float -> b:float -> float = "ml_gsl_cdf_gumbel1_Qinv" "gsl_cdf_gumbel1_Qinv" [@@unboxed] [@@noalloc]
external gumbel2_P : x:float -> a:float -> b:float -> float = "ml_gsl_cdf_gumbel2_P" "gsl_cdf_gumbel2_P" [@@unboxed] [@@noalloc]
external gumbel2_Q : x:float -> a:float -> b:float -> float = "ml_gsl_cdf_gumbel2_Q" "gsl_cdf_gumbel2_Q" [@@unboxed] [@@noalloc]
external gumbel2_Pinv : p:float -> a:float -> b:float -> float = "ml_gsl_cdf_gumbel2_Pinv" "gsl_cdf_gumbel2_Pinv" [@@unboxed] [@@noalloc]
external gumbel2_Qinv : q:float -> a:float -> b:float -> float = "ml_gsl_cdf_gumbel2_Qinv" "gsl_cdf_gumbel2_Qinv" [@@unboxed] [@@noalloc]
external weibull_P : x:float -> a:float -> b:float -> float = "ml_gsl_cdf_weibull_P" "gsl_cdf_weibull_P" [@@unboxed] [@@noalloc]
external weibull_Q : x:float -> a:float -> b:float -> float = "ml_gsl_cdf_weibull_Q" "gsl_cdf_weibull_Q" [@@unboxed] [@@noalloc]
external weibull_Pinv : p:float -> a:float -> b:float -> float = "ml_gsl_cdf_weibull_Pinv" "gsl_cdf_weibull_Pinv" [@@unboxed] [@@noalloc]
external weibull_Qinv : q:float -> a:float -> b:float -> float = "ml_gsl_cdf_weibull_Qinv" "gsl_cdf_weibull_Qinv" [@@unboxed] [@@noalloc]
external pareto_P : x:float -> a:float -> b:float -> float = "ml_gsl_cdf_pareto_P" "gsl_cdf_pareto_P" [@@unboxed] [@@noalloc]
external pareto_Q : x:float -> a:float -> b:float -> float = "ml_gsl_cdf_pareto_Q" "gsl_cdf_pareto_Q" [@@unboxed] [@@noalloc]
external pareto_Pinv : p:float -> a:float -> b:float -> float = "ml_gsl_cdf_pareto_Pinv" "gsl_cdf_pareto_Pinv" [@@unboxed] [@@noalloc]
external pareto_Qinv : q:float -> a:float -> b:float -> float = "ml_gsl_cdf_pareto_Qinv" "gsl_cdf_pareto_Qinv" [@@unboxed] [@@noalloc]
external logistic_P : x:float -> a:float -> float = "ml_gsl_cdf_logistic_P" "gsl_cdf_logistic_P" [@@unboxed] [@@noalloc]
external logistic_Q : x:float -> a:float -> float = "ml_gsl_cdf_logistic_Q" "gsl_cdf_logistic_Q" [@@unboxed] [@@noalloc]
external logistic_Pinv : p:float -> a:float -> float = "ml_gsl_cdf_logistic_Pinv" "gsl_cdf_logistic_Pinv" [@@unboxed] [@@noalloc]
external logistic_Qinv : q:float -> a:float -> float = "ml_gsl_cdf_logistic_Qinv" "gsl_cdf_logistic_Qinv" [@@unboxed] [@@noalloc]
external binomial_P : k:int -> p:float -> n:int -> float = "ml_gsl_cdf_binomial_P"
external binomial_Q : k:int -> p:float -> n:int -> float = "ml_gsl_cdf_binomial_Q"
external poisson_P : k:int -> mu:float -> float = "ml_gsl_cdf_poisson_P"
external poisson_Q : k:int -> mu:float -> float = "ml_gsl_cdf_poisson_Q"
external geometric_P : k:int -> p:float -> float = "ml_gsl_cdf_geometric_P"
external geometric_Q : k:int -> p:float -> float = "ml_gsl_cdf_geometric_Q"
external negative_binomial_P : k:int -> p:float -> n:float -> float = "ml_gsl_cdf_negative_binomial_P"
external negative_binomial_Q : k:int -> p:float -> n:float -> float = "ml_gsl_cdf_negative_binomial_Q"
external pascal_P : k:int -> p:float -> n:int -> float = "ml_gsl_cdf_pascal_P"
external pascal_Q : k:int -> p:float -> n:int -> float = "ml_gsl_cdf_pascal_Q"
external hypergeometric_P : k:int -> n1:int -> n2:int -> t:int -> float = "ml_gsl_cdf_hypergeometric_P"
external hypergeometric_Q : k:int -> n1:int -> n2:int -> t:int -> float = "ml_gsl_cdf_hypergeometric_Q"
