Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members  

trnglib.h

00001 // ---------------------------------------------------------------------
00002 // Time-stamp: <Samstag, 09.02.2002,  1:27:00; edited by heiko>
00003 // 
00004 // Tina's random number generators TRNG
00005 //
00006 // useful functions for Tina's random number generators 
00007 //
00008 // Copyright (C) 2001, 2002 Heiko Bauke
00009 //
00010 // heiko.bauke@physik.uni-magdeburg.de
00011 //
00012 // TRNG is free software; you can redistribute it and/or
00013 // modify it under the terms of the GNU General Public License
00014 // as published by the Free Software Foundation. This program
00015 // is distributed WITHOUT ANY WARRANTY; without even the implied
00016 // warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00017 // See the GNU General Public License for more details.
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 

Generated on Tue Dec 10 13:31:37 2002 for Tina's Random Number Generators by doxygen1.2.15