Show
Ignore:
Timestamp:
08/12/09 15:37:43 (15 years ago)
Author:
vbarta
Message:

removed class compositepdf; keeping mpdfs of mprod and merger_base in shared pointers

Files:
1 modified

Legend:

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

    r504 r507  
    270270Note that 
    271271*/ 
    272 class mprod: public compositepdf, public mpdf { 
     272class mprod: public mpdf { 
     273private: 
     274        Array<shared_ptr<mpdf> > mpdfs; 
     275 
    273276protected: 
    274277        //! Data link for each mpdfs 
     
    279282 
    280283public: 
    281         /*!\brief Constructor from list of mFacs, 
     284        //! \brief Default constructor 
     285        mprod() { } 
     286 
     287        /*!\brief Constructor from list of mFacs 
    282288        */ 
    283         mprod() : iepdf( ) { } 
    284         mprod ( Array<mpdf*> mFacs ) : 
    285                         iepdf ( ) { 
     289        mprod ( const Array<shared_ptr<mpdf> > &mFacs ) { 
    286290                set_elements ( mFacs ); 
    287291        } 
    288292 
    289         void set_elements ( Array<mpdf*> mFacs , bool own = false ) { 
    290  
    291                 compositepdf::set_elements ( mFacs, own ); 
    292                 dls.set_size ( mFacs.length() ); 
    293  
    294                 set_ep ( iepdf); 
    295                 RV rv = getrv ( true ); 
    296                 set_rv ( rv ); 
    297                 iepdf.set_parameters ( rv._dsize() ); 
    298                 setrvc (_rv(), rvc ); 
    299                 // rv and rvc established = > we can link them with mpdfs 
    300                 for ( int i = 0; i < mpdfs.length(); i++ ) { 
    301                         dls ( i ) = new datalink_m2m; 
    302                         dls ( i )->set_connection ( mpdfs ( i )->_rv(), mpdfs ( i )->_rvc(), _rv(), _rvc() ); 
    303                 } 
    304  
    305         }; 
     293        void set_elements (const Array<shared_ptr<mpdf> > &mFacs ); 
    306294 
    307295        double evallogcond ( const vec &val, const vec &cond ) { 
     
    359347        } 
    360348 
    361         ~mprod() {}; 
    362349        //! Load from structure with elements: 
    363350        //!  \code 
     
    368355        //!@} 
    369356        void from_setting ( const Setting &set ) { 
    370                 Array<mpdf*> Atmp; //temporary Array 
    371                 UI::get ( Atmp, set, "mpdfs", UI::compulsory ); 
    372                 set_elements ( Atmp, true ); 
     357                Array<mpdf*> atmp; //temporary Array 
     358                UI::get ( atmp, set, "mpdfs", UI::compulsory ); 
     359                 
     360                Array<shared_ptr<mpdf> > btmp ( atmp.length() ); 
     361                for (int i = 0; i < atmp.length(); ++i) { 
     362                        btmp ( i ) = shared_ptr<mpdf> ( atmp ( i ) ); 
     363                } 
     364 
     365                set_elements ( btmp ); 
    373366        } 
    374367