Changeset 750 for library/bdm/stat
- Timestamp:
- 12/07/09 01:26:55 (15 years ago)
- Location:
- library/bdm/stat
- Files:
-
- 4 modified
Legend:
- Unmodified
- Added
- Removed
-
library/bdm/stat/emix.cpp
r739 r750 5 5 void emix::set_parameters ( const vec &w0, const Array<shared_ptr<epdf> > &Coms0 ) { 6 6 w = w0 / sum ( w0 ); 7 dim = Coms0 ( 0 )->dimension();7 8 8 bool isnamed = Coms0 ( 0 )->isnamed(); 9 9 int i; 10 10 RV tmp_rv; 11 11 if ( isnamed ) tmp_rv = Coms0 ( 0 )->_rv(); 12 13 for ( i = 0; i < w.length(); i++ ) {14 bdm_assert ( dim == ( Coms0 ( i )->dimension() ), "Component sizes do not match!" );15 bdm_assert ( !isnamed || tmp_rv.equal ( Coms0 ( i )->_rv() ), "Component RVs do not match!" );16 }17 18 12 Coms = Coms0; 19 13 20 14 if ( isnamed ) epdf::set_rv ( tmp_rv ); //coms aer already OK, no need for set_rv 21 15 } 16 17 void emix::validate (){ 18 dim = Coms ( 0 )->dimension(); 19 bool isnamed = Coms ( 0 )->isnamed(); 20 int i; 21 RV tmp_rv; 22 if ( isnamed ) tmp_rv = Coms ( 0 )->_rv(); 23 for ( i = 0; i < w.length(); i++ ) { 24 bdm_assert ( dim == ( Coms ( i )->dimension() ), "Component sizes do not match!" ); 25 bdm_assert ( !isnamed || tmp_rv.equal ( Coms ( i )->_rv() ), "Component RVs do not match!" ); 26 } 27 28 } 29 30 31 22 32 23 33 vec emix::sample() const { … … 101 111 102 112 target.set_parameters ( w, Cn ); 113 target.validate(); 103 114 } 104 115 … … 181 192 182 193 target.set_parameters ( w, Cn ); 194 target.validate(); 183 195 } 184 196 -
library/bdm/stat/emix.h
r739 r750 127 127 */ 128 128 void set_parameters ( const vec &w, const Array<shared_ptr<epdf> > &Coms ); 129 130 virtual void validate (); 129 131 130 132 vec sample() const; … … 187 189 // TODO asi lze nacitat primocare do w a coms, jen co bude hotovy validate() 188 190 set_parameters ( w0, Coms0 ); 191 validate(); 189 192 } 190 193 }; -
library/bdm/stat/exp_family.h
r746 r750 1293 1293 delta = delta0; 1294 1294 W.set_parameters ( inv ( Y0 ), delta0 ); 1295 dim = W.dimension();1296 1295 p = Y0.rows(); 1297 1296 } 1297 1298 virtual void validate (){ 1299 dim = W.dimension(); 1300 } 1301 1302 1298 1303 vec sample() const { 1299 1304 mat iCh; … … 1412 1417 //! Set samples 1413 1418 void set_parameters ( const Array<vec> &Av ) { 1414 bdm_assert ( Av.size() > 0, "Empty samples" );1415 1419 n = Av.size(); 1416 epdf::set_parameters ( Av ( 0 ).length() );1417 1420 w = 1 / n * ones ( n ); 1418 1421 samples = Av; 1419 1422 }; 1423 virtual void validate (){ 1424 bdm_assert ( n > 0, "Empty samples" ); 1425 epdf::validate ( samples ( 0 ).length() ); 1426 } 1420 1427 //! Potentially dangerous, use with care. 1421 1428 vec& _w() { -
library/bdm/stat/merger.h
r739 r750 102 102 Npoints = Sup.points(); 103 103 eSmp.set_parameters ( Sup._Spoints() ); 104 eSmp.validate(); 104 105 } 105 106 //! set debug file