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 #ifndef ITEX_H 00015 #define ITEX_H 00016 00017 using std::cout; 00018 using std::endl; 00019 00020 namespace itpp { 00021 Array<int> to_Arr ( const ivec &indices ); 00022 ivec linspace ( int from, int to ); 00023 00024 vec get_vec(const vec &v, const ivec &indexlist); 00025 00026 bvec operator& ( const bvec &a, const bvec &b ); 00027 bvec operator| ( const bvec &a, const bvec &b ); 00028 00029 // template<class Num_T> 00030 // void set_subvector(vec &ov, ivec &iv, const Vec<Num_T> &v); 00031 00032 void set_subvector ( vec &ov, const ivec &iv, const vec &v ); 00033 00034 template<class Num_T> inline 00035 void set_col_part(mat &M, int c, const Vec<Num_T> &v) 00036 { 00037 copy_vector(v.size(), v._data(), M._data() + c*M.rows()); 00038 } 00039 00040 // /*! 00041 // \brief Gamma distribution 00042 // \ingroup randgen 00043 // */ 00044 // class Gamma_RNG { 00045 // public: 00046 // //! constructor. Set lambda. 00047 // Gamma_RNG ( double a=1.0, double b=1.0 ); 00048 // //! Set lambda 00049 // void setup ( double a0, double b0 ) { alpha=a0; beta=b0;} 00050 // //! get lambda 00051 // double get_setup() const; 00052 // //! Get one sample. 00053 // double operator() () { return sample(); } 00054 // //! Get a sample vector. 00055 // vec operator() ( int n ); 00056 // //! Get a sample matrix. 00057 // mat operator() ( int h, int w ); 00058 // protected: 00059 // private: 00060 // //! 00061 // double sample(); 00062 // //! 00063 // double alpha; 00064 // //! 00065 // double beta; 00066 // //! 00067 // Random_Generator RNG; 00068 // Normal_RNG NRNG; 00069 // //! compatibility with R 00070 // inline double exp_rand() {return -std::log ( RNG.random_01() );} 00071 // inline double unif_rand() {return RNG.random_01();} 00072 // inline double norm_rand() {return NRNG.sample();} 00073 // 00074 // }; 00075 // bool qr ( const mat &A, mat &R ); 00076 // 00077 // //! reimplementation of matlab num2str 00078 // std::string num2str(double d); 00079 // 00080 // //! reimplementation of matlabs num2str 00081 // std::string num2str(int i); 00082 } 00083 00084 00085 #endif //ITEX_H