/* $Id: cephes.h,v 1.1 2003/04/15 03:20:31 cher Exp $ */

/* This is interface file to the Cephes math library */
/* Copyright (C) 2003 Alexander Chernov */

#ifndef __CEPHES_H__
#define __CEPHES_H__

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

double cephes_bdtrc(int k, int n, double p);
double cephes_bdtr(int k, int n, double p);
double cephes_bdtri(int k, int n, double y);

double cephes_beta(double a, double b);
double cephes_lbeta( double a, double b );

double cephes_btdtr(double a, double b, double x);
double cephes_cbrt(double x);

double cephes_chdtrc(double df, double x);
double cephes_chdtr(double df, double x);
double cephes_chdtri(double df, double y);

double cephes_dawsn( double xx );

double cephes_ei (double x);
double cephes_ellie(double phi, double m);
double cephes_ellik(double phi, double m);
double cephes_ellpe(double x);
int    cephes_ellpj(double, double, double *, double *, double *, double *);
double cephes_ellpk(double x);

double cephes_fdtrc(int ia, int ib, double x);
double cephes_fdtr(int ia, int ib, double x);
double cephes_fdtri(int ia, int ib, double y);

int cephes_fresnl(double xxa, double *ssa, double *cca );

double cephes_gamma(double x);
double cephes_lgam(double x);

double cephes_gdtr(double a, double b, double x);
double cephes_gdtrc(double a, double b, double x);

double cephes_hyp2f1(double a, double b, double c, double x);
double cephes_hyperg(double a, double b, double x);
double cephes_hyp2f0(double a, double b, double x, int type, double *err );

double cephes_i0(double x);
double cephes_i0e(double x);
double cephes_i1(double x);
double cephes_i1e(double x);

double cephes_igamc(double a, double x);
double cephes_igam(double a, double x);
double cephes_igami(double a, double y0);

double cephes_incbet(double aa, double bb, double xx);
double cephes_incbi(double aa, double bb, double yy0);

double cephes_smirnov (int n, double e);
double cephes_kolmogorov (double y);
double cephes_smirnovi (int n, double p);
double cephes_kolmogi (double p);

int cephes_mtherr(char const *name, int code);

double cephes_nbdtrc(int k, int n, double p);
double cephes_nbdtr(int k, int n, double p);
double cephes_nbdtri(int k, int n, double p);

double cephes_ndtr(double a);
double cephes_erfc(double a);
double cephes_erf(double x);
double cephes_ndtri(double y0);

double cephes_pdtrc(int k, double m);
double cephes_pdtr(int k, double m);
double cephes_pdtri(int k, double y);

double cephes_psi(double x);

double cephes_rgamma(double x);

double cephes_stdtr(int k, double t);
double cephes_stdtri(int k, double p);

double cephes_zeta(double x, double q);
double cephes_zetac(double x);

double cephes_polevl(double x, double coef[], int N);
double cephes_p1evl(double x, double coef[], int N);
double cephes_chbevl(double x, double array[], int n);
double cephes_round(double x);

void cephes_srand(int x, int y, int z);
double cephes_drand(void);
long cephes_lrand(void);
unsigned long cephes_ulrand(void);

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* __CEPHES_H__ */

/*
 * Local variables:
 *  compile-command: "make -C .."
 * End:
 */
