Changeset 1015 for library/bdm/stat
- Timestamp:
- 05/27/10 23:08:07 (14 years ago)
- Location:
- library/bdm/stat
- Files:
-
- 2 modified
Legend:
- Unmodified
- Added
- Removed
-
library/bdm/stat/exp_family.cpp
r1013 r1015 20 20 void egiw::set_parameters ( int dimx0, ldmat V0, double nu0 ) { 21 21 dimx = dimx0; 22 nPsi = V0.rows() - dimx; 23 22 nPsi = V0.rows()-dimx; 24 23 V = V0; 25 24 if ( nu0 < 0 ) { … … 323 322 nu = -1; 324 323 } 325 mat V; 326 if ( !UI::get ( V, set, "V", UI::optional ) ) { 327 vec dV; 328 UI::get ( dV, set, "dV", UI::compulsory ); 329 set_parameters ( dimx, ldmat ( dV ), nu ); 330 331 } else { 332 set_parameters ( dimx, V, nu ); 324 mat Vful; 325 if (!UI::get(V, set, "V", UI::optional)){ 326 if ( !UI::get ( Vful, set, "V", UI::optional ) ) { 327 vec dV; 328 UI::get ( dV, set, "dV", UI::compulsory ); 329 set_parameters ( dimx, ldmat ( dV ), nu ); 330 331 } else { 332 set_parameters ( dimx, Vful, nu ); 333 } 333 334 } 334 335 } … … 337 338 epdf::to_setting ( set ); 338 339 UI::save ( dimx, set, "dimx" ); 339 UI::save ( V .to_mat(), set, "V" );340 UI::save ( V, set, "V" ); 340 341 UI::save ( nu, set, "nu" ); 341 342 }; … … 343 344 void egiw::validate() { 344 345 eEF::validate(); 346 nPsi = V.rows() - dimx; 345 347 dim = dimx * ( dimx + nPsi ); 348 349 if ( nu < 0 ) { 350 nu = 0.1 + nPsi + 2 * dimx + 2; // +2 assures finite expected value of R 351 // terms before that are sufficient for finite normalization 352 } 346 353 347 354 // check sizes, rvs etc. -
library/bdm/stat/exp_family.h
r1013 r1015 443 443 \code 444 444 class = 'egiw'; 445 V = []; // square matrix 446 dV = []; // vector of diagonal of V (when V not given) 447 nu = []; // scalar \nu ((almost) degrees of freedom) 445 V.L = []; // L part of matrix V 446 V.D = []; // D part of matrix V 447 -or- V = [] // full matrix V 448 -or- dV = []; // vector of diagonal of V (when V not given) 449 nu = []; // scalar \nu ((almost) degrees of freedom) 448 450 // when missing, it will be computed to obtain proper pdf 449 dimx = []; // dimension of the wishart part451 dimx = []; // dimension of the wishart part 450 452 rv = RV({'name'}) // description of RV 451 453 rvc = RV({'name'}) // description of RV in condition 452 log_level = 'tri'; // set the level of logged details453 454 \endcode 454 455