itpp_ext.h itpp/itbase.h work/git/mixpp/bdm/stat/libEF.h work/git/mixpp/bdm/math/chmat.h work/git/mixpp/bdm/itpp_ext.cpp work/git/mixpp/bdm/stat/libBM.cpp work/git/mixpp/bdm/stat/loggers.h itpp::Gamma_RNG itpp // //C++Interface:itpp_ext // //Description: // // //Author:smidl<smidl@utia.cas.cz>,(C)2008 // //Copyright:SeeCOPYINGfilethatcomeswiththisdistribution // // #include<itpp/itbase.h> #ifndefITEX_H #defineITEX_H usingstd::cout; usingstd::endl; namespaceitpp{ Array<int>to_Arr(constivec&indices); iveclinspace(intfrom,intto); bvecoperator&(constbvec&a,constbvec&b); bvecoperator|(constbvec&a,constbvec&b); //template<classNum_T> //voidset_subvector(vec&ov,ivec&iv,constVec<Num_T>&v); voidset_subvector(vec&ov,constivec&iv,constvec&v); classGamma_RNG{ public: Gamma_RNG(doublea=1.0,doubleb=1.0); voidsetup(doublea0,doubleb0){alpha=a0;beta=b0;} doubleget_setup()const; doubleoperator() (){returnsample();} vecoperator() (intn); matoperator() (inth,intw); protected: private: doublesample(); doublealpha; doublebeta; Random_GeneratorRNG; Normal_RNGNRNG; inlinedoubleexp_rand(){return-std::log(RNG.random_01());} inlinedoubleunif_rand(){returnRNG.random_01();} inlinedoublenorm_rand(){returnNRNG.sample();} }; boolqr(constmat&A,mat&R); } #endif//ITEX_H