Changeset 115 for bdm/stat

Show
Ignore:
Timestamp:
05/23/08 18:47:11 (16 years ago)
Author:
smidl
Message:

zmena mmix_triv na mepdf

Location:
bdm/stat
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • bdm/stat/emix.h

    r107 r115  
    4848                return mu; 
    4949        } 
    50         double evalpdflog ( const vec &val ) const {int i; double sum=0.0; for ( i=0;i<w.length();i++ ) {sum+=w ( i ) *Coms ( i )->evalpdflog ( val );} return log ( sum );}; 
     50        double evalpdflog ( const vec &val ) const { 
     51                int i; 
     52                double sum=0.0; 
     53                for ( i=0;i<w.length();i++ ) {sum+=w ( i ) *Coms ( i )->evalpdflog ( val );} 
     54                return log ( sum ); 
     55        }; 
    5156 
    5257//Access methods 
     
    5560}; 
    5661 
    57 class mmix_triv : public mpdf { 
     62/*! \brief Chain rule decomposition of epdf 
     63 
     64 
     65*/ 
     66class eprod: public epdf { 
     67protected: 
     68        Array<epdf*> epdfs; 
     69        Array<mpdf*> mpdfs; 
    5870public: 
    59         //!Default constructor 
    60         mmix_triv ( const RV &rv, const RV &rvc, emix* em ) :mpdf ( rv,rvc ) {ep=em;}; 
     71         
     72         
    6173}; 
    6274 
  • bdm/stat/libBM.h

    r102 r115  
    171171        virtual mat samplecond ( vec &cond, vec &ll, int N ) { 
    172172                this->condition ( cond ); 
    173                 mat temp ( rv.count(),N ); vec smp ( rv.count() ); for ( int i=0;i<N;i++ ) {smp=ep->sample() ;temp.set_col ( i, smp );ll ( i ) =ep->evalpdflog ( smp );} 
     173                mat temp ( rv.count(),N ); vec smp ( rv.count() );  
     174                for ( int i=0;i<N;i++ ) {smp=ep->sample() ;temp.set_col ( i, smp );ll ( i ) =ep->evalpdflog ( smp );} 
    174175                return temp; 
    175176        }; 
     
    189190        //!access function 
    190191        epdf& _epdf() {return *ep;} 
     192}; 
     193 
     194/*! \brief Unconditional mpdf, allows using epdf in the role of mpdf.  
     195 
     196WARNING: the class does not check validity of the \c ep pointer nor its existence. 
     197*/ 
     198class mepdf : public mpdf { 
     199public: 
     200        //!Default constructor 
     201        mepdf ( const RV &rv, const RV &rvc, epdf* em ) :mpdf ( rv,rvc ) {ep=em;}; 
    191202}; 
    192203