Changeset 750 for library/bdm/stat/emix.cpp
- Timestamp:
- 12/07/09 01:26:55 (15 years ago)
- Files:
-
- 1 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