Changeset 197 for bdm/estim/mixef.h

Show
Ignore:
Timestamp:
11/04/08 14:54:33 (16 years ago)
Author:
smidl
Message:

opravy v bdm

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • bdm/estim/mixef.h

    r193 r197  
    3939TODO: Extend BM to use rvc. 
    4040*/ 
    41 class MixEF: public BM { 
     41class MixEF: public BMEF { 
    4242protected: 
    4343        //!Number of components 
     
    6969        //! Full constructor 
    7070        MixEF ( const Array<BMEF*> &Coms0, const vec &alpha0 ) : 
    71                         BM ( RV() ), n ( Coms0.length() ), Coms ( n ), 
     71                        BMEF ( RV() ), n ( Coms0.length() ), Coms ( n ), 
    7272                        weights ( RV ( "{w }", vec_1 ( n ) ),alpha0 ), method(QB) { 
    7373        //      it_assert_debug ( n>0,"MixEF::MixEF : Empty Component list" ); 
     
    7676                build_est(); 
    7777        }; 
     78        //! Constructor of empty mixture 
    7879        MixEF () : 
    79                         BM ( RV() ), n ( 0 ), Coms ( 0 ), 
     80                        BMEF ( RV() ), n ( 0 ), Coms ( 0 ), 
    8081                        weights ( RV ( "{w }", vec_1 ( 0 ) ),vec ( 0 ) ),method(QB) {build_est();} 
     82        //! Copy constructor 
     83        MixEF(const MixEF &M2): BMEF ( RV() ), n ( M2.n ), Coms ( n ), 
     84                   weights ( M2.weights ), method(M2.method) { 
     85        //      it_assert_debug ( n>0,"MixEF::MixEF : Empty Component list" ); 
     86 
     87                           for ( int i=0;i<n;i++ ) {Coms ( i ) = M2.Coms ( i )->_copy_();} 
     88                           build_est(); 
     89                   } 
    8190        //! Initializing the mixture by a random pick of centroids from data 
    8291        //! \param Com0 Initial component - necessary to determine its type. 
     
    98107        emix* predictor(const RV &rv); 
    99108        //! Flatten the density as if it was not estimated from the data 
    100         void flatten(double sumw=1.0); 
     109        void flatten(const BMEF* M2); 
    101110        //! Access function 
    102111        BMEF* _Coms(int i){return Coms(i);}