Changeset 713 for library/bdm

Show
Ignore:
Timestamp:
11/10/09 11:03:09 (15 years ago)
Author:
mido
Message:

_m changed to _mat

emix.cfg prepared, but it is not yet debugged!

Location:
library/bdm
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • library/bdm/base/bdmbase.cpp

    r700 r713  
    156156} 
    157157 
    158 mat epdf::sample_m ( int N ) const { 
     158mat epdf::sample_mat ( int N ) const { 
    159159        mat X = zeros ( dim, N ); 
    160160        for ( int i = 0; i < N; i++ ) X.set_col ( i, this->sample() ); 
     
    162162} 
    163163 
    164 vec epdf::evallog_m ( const mat &Val ) const { 
     164vec epdf::evallog_mat ( const mat &Val ) const { 
    165165        vec x ( Val.cols() ); 
    166166        for ( int i = 0; i < Val.cols(); i++ ) { 
     
    171171} 
    172172 
    173 vec epdf::evallog_m ( const Array<vec> &Avec ) const { 
     173vec epdf::evallog_mat ( const Array<vec> &Avec ) const { 
    174174        vec x ( Avec.size() ); 
    175175        for ( int i = 0; i < Avec.size(); i++ ) { 
     
    180180} 
    181181 
    182 mat pdf::samplecond_m ( const vec &cond, int N ) { 
     182mat pdf::samplecond_mat ( const vec &cond, int N ) { 
    183183        mat M ( dimension(), N ); 
    184184        for ( int i = 0; i < N; i++ ) { 
  • library/bdm/base/bdmbase.h

    r712 r713  
    429429 
    430430        //! Returns \param N samples from the density conditioned on \c cond, \f$x \sim epdf(rv|cond)\f$. \param cond is numeric value of \c rv 
    431         virtual mat samplecond_m ( const vec &cond, int N ); 
     431        virtual mat samplecond_mat ( const vec &cond, int N ); 
    432432 
    433433        //! Shortcut for conditioning and evaluation of the internal epdf. In some cases,  this operation can be implemented efficiently. 
     
    438438 
    439439        //! Matrix version of evallogcond 
    440         virtual vec evallogcond_m ( const mat &Yt, const vec &cond ) { 
     440        virtual vec evallogcond_mat ( const mat &Yt, const vec &cond ) { 
    441441                vec v ( Yt.cols() ); 
    442442                for ( int i = 0; i < Yt.cols(); i++ ) { 
     
    447447 
    448448        //! Array<vec> version of evallogcond 
    449         virtual vec evallogcond_m ( const Array<vec> &Yt, const vec &cond ) { 
     449        virtual vec evallogcond_mat ( const Array<vec> &Yt, const vec &cond ) { 
    450450                bdm_error ( "Not implemented" ); 
    451451                return vec(); 
     
    534534 
    535535        //! Returns N samples, \f$ [x_1 , x_2 , \ldots \ \f$  from density \f$ f_x(rv)\f$ 
    536         virtual mat sample_m ( int N ) const; 
     536        virtual mat sample_mat ( int N ) const; 
    537537 
    538538        //! Compute log-probability of argument \c val 
     
    544544 
    545545        //! Compute log-probability of multiple values argument \c val 
    546         virtual vec evallog_m ( const mat &Val ) const; 
     546        virtual vec evallog_mat ( const mat &Val ) const; 
    547547 
    548548        //! Compute log-probability of multiple values argument \c val 
    549         virtual vec evallog_m ( const Array<vec> &Avec ) const; 
     549        virtual vec evallog_mat ( const Array<vec> &Avec ) const; 
    550550 
    551551        //! Return conditional density on the given RV, the remaining rvs will be in conditioning 
     
    669669        double evallogcond ( const vec &val, const vec &cond ); 
    670670        //! Efficient version of evallogcond for matrices 
    671         virtual vec evallogcond_m ( const mat &Dt, const vec &cond ); 
     671        virtual vec evallogcond_mat ( const mat &Dt, const vec &cond ); 
    672672        //! Efficient version of evallogcond for Array<vec> 
    673         virtual vec evallogcond_m ( const Array<vec> &Dt, const vec &cond ); 
     673        virtual vec evallogcond_mat ( const Array<vec> &Dt, const vec &cond ); 
    674674        //! Efficient version of samplecond 
    675         virtual mat samplecond_m ( const vec &cond, int N ); 
     675        virtual mat samplecond_mat ( const vec &cond, int N ); 
    676676         
    677677        void validate() { 
     
    11171117 
    11181118        //! Matrix version of logpred 
    1119         vec logpred_m ( const mat &Yt ) const { 
     1119        vec logpred_mat ( const mat &Yt ) const { 
    11201120                vec tmp ( Yt.cols() ); 
    11211121                for ( int i = 0; i < Yt.cols(); i++ ) { 
     
    12531253 
    12541254template<class EPDF> 
    1255 mat pdf_internal<EPDF>::samplecond_m ( const vec &cond, int N ) { 
     1255mat pdf_internal<EPDF>::samplecond_mat ( const vec &cond, int N ) { 
    12561256        condition ( cond ); 
    12571257        mat temp ( dimension(), N ); 
     
    12741274 
    12751275template<class EPDF> 
    1276 vec pdf_internal<EPDF>::evallogcond_m ( const mat &Yt, const vec &cond ) { 
     1276vec pdf_internal<EPDF>::evallogcond_mat ( const mat &Yt, const vec &cond ) { 
    12771277        condition ( cond ); 
    1278         return iepdf.evallog_m ( Yt ); 
     1278        return iepdf.evallog_mat ( Yt ); 
    12791279} 
    12801280 
    12811281template<class EPDF> 
    1282 vec pdf_internal<EPDF>::evallogcond_m ( const Array<vec> &Yt, const vec &cond ) { 
     1282vec pdf_internal<EPDF>::evallogcond_mat ( const Array<vec> &Yt, const vec &cond ) { 
    12831283        condition ( cond ); 
    1284         return iepdf.evallog_m ( Yt ); 
     1284        return iepdf.evallog_mat ( Yt ); 
    12851285} 
    12861286 
  • library/bdm/stat/emix.h

    r711 r713  
    159159                return tmp; 
    160160        }; 
    161         vec evallog_m ( const mat &Val ) const { 
     161        vec evallog_mat ( const mat &Val ) const { 
    162162                vec x = zeros ( Val.cols() ); 
    163163                for ( int i = 0; i < w.length(); i++ ) { 
    164                         x += w ( i ) * exp ( Coms ( i )->evallog_m ( Val ) ); 
     164                        x += w ( i ) * exp ( Coms ( i )->evallog_mat ( Val ) ); 
    165165                } 
    166166                return log ( x ); 
    167167        }; 
     168        /* 
    168169        //! Auxiliary function that returns pdflog for each component 
    169         mat evallog_M ( const mat &Val ) const { 
     170        mat evallog_mat ( const mat &Val ) const { 
    170171                mat X ( w.length(), Val.cols() ); 
    171172                for ( int i = 0; i < w.length(); i++ ) { 
    172                         X.set_row ( i, w ( i ) *exp ( Coms ( i )->evallog_m ( Val ) ) ); 
     173                        X.set_row ( i, w ( i ) *exp ( Coms ( i )->evallog_mat ( Val ) ) ); 
    173174                } 
    174175                return X; 
    175176        }; 
     177        */ 
    176178 
    177179        shared_ptr<epdf> marginal ( const RV &rv ) const; 
     
    180182        shared_ptr<pdf> condition ( const RV &rv ) const; 
    181183 
    182 //Access methods 
     184        //Access methods 
    183185        //! returns a pointer to the internal mean value. Use with Care! 
    184186        vec& _w() { 
     
    197199                } 
    198200        } 
     201 
     202        //! Load from structure with elements: 
     203        //!  \code 
     204        //! { class='emix'; 
     205        //!   pdfs = (..., ...);     // list of pdfs in the mixture 
     206        //!   weights = ( 0.5, 0.5 ); // weights of pdfs in the mixture 
     207        //! } 
     208        //! \endcode 
     209        //!@} 
     210        void from_setting ( const Setting &set ) { 
     211                UI::get ( Coms, set, "pdfs", UI::compulsory ); 
     212 
     213                if( !UI::get( w, set, "weights", UI::optional ) ) 
     214                { 
     215                        int len = Coms.length(); 
     216                        w.set_length( len ); 
     217                        double default_weight = 1.0 / len; 
     218                        for( int i=0; i < len; i++) 
     219                                w(i) = default_weight; 
     220                } 
     221        } 
    199222}; 
    200223SHAREDPTR( emix ); 
     224UIREGISTER ( emix ); 
    201225 
    202226/*! 
     
    322346                return res; 
    323347        } 
    324         vec evallogcond_m ( const mat &Dt, const vec &cond ) { 
     348        vec evallogcond_mat ( const mat &Dt, const vec &cond ) { 
    325349                vec tmp ( Dt.cols() ); 
    326350                for ( int i = 0; i < Dt.cols(); i++ ) { 
     
    329353                return tmp; 
    330354        }; 
    331         vec evallogcond_m ( const Array<vec> &Dt, const vec &cond ) { 
     355        vec evallogcond_mat ( const Array<vec> &Dt, const vec &cond ) { 
    332356                vec tmp ( Dt.length() ); 
    333357                for ( int i = 0; i < Dt.length(); i++ ) { 
  • library/bdm/stat/exp_family.h

    r693 r713  
    5858                } 
    5959                //!Evaluate normalized log-probability for many samples 
    60                 virtual vec evallog_m (const mat &Val) const { 
     60                virtual vec evallog_mat (const mat &Val) const { 
    6161                        vec x (Val.cols()); 
    6262                        for (int i = 0;i < Val.cols();i++) {x (i) = evallog_nn (Val.get_col (i)) ;} 
     
    6464                } 
    6565                //!Evaluate normalized log-probability for many samples 
    66                 virtual vec evallog_m (const Array<vec> &Val) const { 
     66                virtual vec evallog_mat (const Array<vec> &Val) const { 
    6767                        vec x (Val.length()); 
    6868                        for (int i = 0;i < Val.length();i++) {x (i) = evallog_nn (Val (i)) ;} 
  • library/bdm/stat/merger.cpp

    r693 r713  
    151151                        if ( pdfs ( i )->dimension() == dim ) { 
    152152                                // no need for conditioning or marginalization 
    153                                 lw_src = pdfs ( i )->evallogcond_m ( Smp , vec(0)); 
     153                                lw_src = pdfs ( i )->evallogcond_mat ( Smp , vec(0)); 
    154154                        } else { 
    155155                                // compute likelihood of marginal on the conditional variable