Show
Ignore:
Timestamp:
12/07/09 01:26:55 (15 years ago)
Author:
sarka
Message:

dimc ze set_parameters do validate

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • library/bdm/stat/emix.cpp

    r739 r750  
    55void emix::set_parameters ( const vec &w0, const Array<shared_ptr<epdf> > &Coms0 ) { 
    66        w = w0 / sum ( w0 ); 
    7         dim = Coms0 ( 0 )->dimension(); 
     7         
    88        bool isnamed = Coms0 ( 0 )->isnamed(); 
    99        int i; 
    1010        RV tmp_rv; 
    1111        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  
    1812        Coms = Coms0; 
    1913 
    2014        if ( isnamed ) epdf::set_rv ( tmp_rv ); //coms aer already OK, no need for set_rv 
    2115} 
     16 
     17void 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 
    2232 
    2333vec emix::sample() const { 
     
    101111 
    102112        target.set_parameters ( w, Cn ); 
     113        target.validate(); 
    103114} 
    104115 
     
    181192 
    182193        target.set_parameters ( w, Cn ); 
     194        target.validate(); 
    183195} 
    184196