htestu-0.1.1.2: cbits/testu/include/fmass.h
/* fmass.h for ANSI C */
#ifndef FMASS_H
#define FMASS_H
struct fmass_INFO_T;
/*
For better precision in the tails, we keep the cumulative probabilities
(F) in cdf[s] for s <= smed (i.e. cdf[s] is the sum off all the probabi-
lities pdf[i] for i <= s),
and the complementary cumulative probabilities (1 - F) in cdf[s] for
s > smed (i.e. cdf[s] is the sum off all the probabilities pdf[i]
for i >= s).
*/
struct fmass_INFO_T {
double *cdf; /* cumulative probabilities */
double *pdf; /* probability terms or mass distribution */
double *paramR; /* real parameters of the distribution */
long *paramI; /* integer parameters of the distribution */
long smin; /* pdf[s] = 0 for s < smin */
long smax; /* pdf[s] = 0 for s > smax */
long smed; /* cdf[s] = F(s) for s <= smed, and
cdf[s] = bar_F(s) for s > smed */
};
typedef struct fmass_INFO_T *fmass_INFO;
extern double fmass_Epsilon;
extern double fmass_MaxLambdaPoisson; /* = 100000 */
extern double fmass_MaxnBinomial; /* = 100000 */
extern double fmass_MaxnNegaBin; /* = 100000 */
double fmass_PoissonTerm1 (double lambda, long s);
fmass_INFO fmass_CreatePoisson (double lambda);
void fmass_DeletePoisson (fmass_INFO W);
double fmass_PoissonTerm2 (fmass_INFO W, long s);
double fmass_BinomialTerm3 (long n, double p, long s);
double fmass_BinomialTerm1 (long n, double p, double q, long s);
double fmass_BinomialTerm4 (long n, double p, double p2, long s);
fmass_INFO fmass_CreateBinomial (long n, double p, double q);
void fmass_DeleteBinomial (fmass_INFO W);
double fmass_BinomialTerm2 (fmass_INFO W, long s);
double fmass_NegaBinTerm1 (long n, double p, long s);
fmass_INFO fmass_CreateNegaBin (long n, double p);
void fmass_DeleteNegaBin (fmass_INFO W);
double fmass_NegaBinTerm2 (fmass_INFO W, long s);
#endif