Changeset 211 for bdm/stat/libEF.h
- Timestamp:
- 11/13/08 20:00:53 (16 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
bdm/stat/libEF.h
r205 r211 46 46 virtual void dupdate ( mat &v ) {it_error ( "Not implemented" );}; 47 47 //!Evaluate normalized log-probability 48 virtual double eval pdflog_nn ( const vec &val ) const{it_error ( "Not implemented" );return 0.0;};48 virtual double evallog_nn ( const vec &val ) const{it_error ( "Not implemented" );return 0.0;}; 49 49 //!Evaluate normalized log-probability 50 virtual double eval pdflog ( const vec &val ) const {double tmp;tmp= evalpdflog_nn ( val )-lognc();it_assert_debug(std::isfinite(tmp),"why?"); return tmp;}50 virtual double evallog ( const vec &val ) const {double tmp;tmp= evallog_nn ( val )-lognc();it_assert_debug(std::isfinite(tmp),"why?"); return tmp;} 51 51 //!Evaluate normalized log-probability for many samples 52 virtual vec eval pdflog ( const mat &Val ) const {52 virtual vec evallog ( const mat &Val ) const { 53 53 vec x ( Val.cols() ); 54 for ( int i=0;i<Val.cols();i++ ) {x ( i ) =eval pdflog_nn ( Val.get_col ( i ) ) ;}54 for ( int i=0;i<Val.cols();i++ ) {x ( i ) =evallog_nn ( Val.get_col ( i ) ) ;} 55 55 return x-lognc(); 56 56 } … … 129 129 mat sample ( int N ) const; 130 130 double eval ( const vec &val ) const ; 131 double eval pdflog_nn ( const vec &val ) const;131 double evallog_nn ( const vec &val ) const; 132 132 double lognc () const; 133 133 vec mean() const {return mu;} … … 193 193 void mean_mat ( mat &M, mat&R ) const; 194 194 //! In this instance, val= [theta, r]. For multivariate instances, it is stored columnwise val = [theta_1 theta_2 ... r_1 r_2 ] 195 double eval pdflog_nn ( const vec &val ) const;195 double evallog_nn ( const vec &val ) const; 196 196 double lognc () const; 197 197 … … 227 227 vec mean() const {return beta/sum ( beta );}; 228 228 //! In this instance, val is ... 229 double eval pdflog_nn ( const vec &val ) const {return ( beta-1 ) *log ( val );};229 double evallog_nn ( const vec &val ) const {return ( beta-1 ) *log ( val );}; 230 230 double lognc () const { 231 231 double gam=sum ( beta ); … … 318 318 //! TODO: is it used anywhere? 319 319 // mat sample ( int N ) const; 320 double eval pdflog ( const vec &val ) const;320 double evallog ( const vec &val ) const; 321 321 double lognc () const; 322 322 //! Returns poiter to alpha and beta. Potentially dengerous: use with care! … … 358 358 euni ( const RV rv ) :epdf ( rv ) {} 359 359 double eval ( const vec &val ) const {return nk;} 360 double eval pdflog ( const vec &val ) const {return lnk;}360 double evallog ( const vec &val ) const {return lnk;} 361 361 vec sample() const { 362 362 vec smp ( rv.count() ); … … 538 538 vec sample() const {it_error ( "Not implemented" );return 0;} 539 539 //! inherited operation : NOT implemneted 540 double eval pdflog ( const vec &val ) const {it_error ( "Not implemented" );return 0.0;}540 double evallog ( const vec &val ) const {it_error ( "Not implemented" );return 0.0;} 541 541 vec mean() const { 542 542 vec pom=zeros ( rv.count() ); … … 599 599 double enorm<sq_T>::eval ( const vec &val ) const { 600 600 double pdfl,e; 601 pdfl = eval pdflog ( val );601 pdfl = evallog ( val ); 602 602 e = exp ( pdfl ); 603 603 return e; … … 605 605 606 606 template<class sq_T> 607 double enorm<sq_T>::eval pdflog_nn ( const vec &val ) const {607 double enorm<sq_T>::evallog_nn ( const vec &val ) const { 608 608 // 1.83787706640935 = log(2pi) 609 609 double tmp=-0.5* ( R.invqform ( mu-val ) );// - lognc();