00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined TRNGLIB_H
00022
00023 #define TRNGLIB_H
00024
00025 #include <vector>
00026
00027 namespace TRNG {
00028
00030
00033 class error {
00034 public:
00036 const char * message;
00038 error(const char * m) : message(m) {};
00039 };
00040
00041 const char * version(void);
00042 long modulo_invers(long, long);
00043 void gauss(std::vector<long> &, std::vector<long> &, long);
00044 void matrix_mult(const std::vector<long> &, const std::vector<long> &,
00045 std::vector<long> &, long);
00046 void matrix_vec_mult(const std::vector<long> &, const std::vector<long> &,
00047 std::vector<long> &, long);
00048
00049 double Gamma(double);
00050 double ln_Gamma(double);
00051 double Gamma_P(double, double);
00052 double Gamma_Q(double, double);
00053 double incomp_Gamma(double, double);
00054 double comp_incomp_Gamma(double, double);
00055 double Gamma_ser(double, double);
00056 double Gamma_cf(double, double);
00057 double ln_factorial(long);
00058 long binomial_coeff(long, long);
00059 double errf(double);
00060 double chi_square_test(const std::vector<double> &,
00061 const std::vector<double> &);
00062 double chi_square_prob(double, long);
00063 double Stirling_num2(long, long);
00064 double Student_t(double, long, bool=true);
00065 long find_interval(const std::vector<double> &, const double);
00066
00067 double uniform_pdf(double);
00068 double uniform_pdf(double, double, double);
00069 double uniformco_pdf(double);
00070 double uniformco_pdf(double, double, double);
00071 double uniformcc_pdf(double);
00072 double uniformcc_pdf(double, double, double);
00073 double uniformoc_pdf(double);
00074 double uniformoc_pdf(double, double, double);
00075 double uniformoo_pdf(double);
00076 double uniformoo_pdf(double, double, double);
00077 double normal_dist_pdf(double, double, double);
00078 double exp_dist_pdf(double, double);
00079 double laplace_dist_pdf(double, double);
00080 double tent_dist_pdf(double, double);
00081 double Gamma_dist_pdf(double, double, double);
00082 double Beta_dist_pdf(double, double, double);
00083 double chi_square_dist_pdf(double, double);
00084 double Student_t_dist_pdf(double, double);
00085 double binomial_dist_pdf(long, long, double);
00086 double poisson_dist_pdf(long, double);
00087 double geometric_dist_pdf(long, double);
00088 }
00089
00090 #endif
00091
00092