Changeset 395 for library/bdm/stat/exp_family.cpp
- Timestamp:
- 06/22/09 13:17:49 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
library/bdm/stat/exp_family.cpp
r384 r395 24 24 if ( dimx==1 ) { //same as the following, just quicker. 25 25 double r = val ( vend ); //last entry! 26 if (r<0) return -1e+100; 26 27 vec Psi ( nPsi+dimx ); 27 28 Psi ( 0 ) = -1.0; … … 34 35 mat Th= reshape ( val ( 0,nPsi*dimx-1 ),nPsi,dimx ); 35 36 fsqmat R ( reshape ( val ( nPsi*dimx,vend ),dimx,dimx ) ); 37 double ldetR=R.logdet(); 38 if (ldetR) return -1e+100; 36 39 mat Tmp=concat_vertical ( -eye ( dimx ),Th ); 37 40 fsqmat iR ( dimx ); 38 41 R.inv ( iR ); 39 42 40 return -0.5* ( nu* R.logdet()+ trace ( iR.to_mat() *Tmp.T() *V.to_mat() *Tmp ) );43 return -0.5* ( nu*ldetR + trace ( iR.to_mat() *Tmp.T() *V.to_mat() *Tmp ) ); 41 44 } 42 45 } … … 187 190 int i; 188 191 192 if (any(val<=0.)) return -1e100; 193 if (any(beta<=0.)) return -1e100; 189 194 for ( i=0; i<dim; i++ ) { 190 195 res += ( alpha ( i ) - 1 ) *std::log ( val ( i ) ) - beta ( i ) *val ( i );