work/mixpp/bdm/itpp_ext.h

00001 //
00002 // C++ Interface: itpp_ext
00003 //
00004 // Description: 
00005 //
00006 //
00007 // Author: smidl <smidl@utia.cas.cz>, (C) 2008
00008 //
00009 // Copyright: See COPYING file that comes with this distribution
00010 //
00011 //
00012 #include <itpp/itbase.h>
00013 
00014 using std::cout;
00015 using std::endl;
00016 
00017 namespace itpp {
00018         Array<int> to_Arr(const ivec &indices);
00019         
00024   class Gamma_RNG {
00025   public:
00027     Gamma_RNG(double a=1.0, double b=1.0);
00029     void setup(double a0, double b0) { alpha=a0; beta=b0;}
00031     double get_setup() const;
00033     double operator()() { return sample(); }
00035     vec operator()(int n);
00037     mat operator()(int h, int w);
00038   protected:
00039   private:
00041     double sample();
00043     double alpha;
00045     double beta;
00047     Random_Generator RNG;
00048     Normal_RNG NRNG;
00050     inline double exp_rand(){return -std::log(RNG.random_01());}
00051     inline double unif_rand(){return RNG.random_01();}
00052     inline double norm_rand(){return NRNG.sample();}
00053 
00054   };
00055 }

Generated on Wed Mar 5 15:40:00 2008 for mixpp by  doxygen 1.5.3