Show
Ignore:
Timestamp:
05/19/10 05:31:37 (14 years ago)
Author:
mido
Message:

a small patches of previous commit as arranged yesterday

Files:
1 modified

Legend:

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

    r956 r957  
    350350 
    351351void merger_mix::from_setting ( const Setting& set ) { 
    352                 merger_base::from_setting ( set ); 
    353                 Ncoms=DFLT_Ncoms; 
    354                 UI::get( Ncoms, set, "ncoms", UI::optional ); 
    355                 effss_coef=DFLT_effss_coef; 
    356                 UI::get (effss_coef , set,  "effss_coef", UI::optional); 
    357                 stop_niter=10; 
    358                 UI::get ( stop_niter, set,"stop_niter", UI::optional ); 
     352        merger_base::from_setting ( set ); 
     353        Ncoms=DFLT_Ncoms; 
     354        UI::get( Ncoms, set, "ncoms", UI::optional ); 
     355        effss_coef=DFLT_effss_coef; 
     356        UI::get (effss_coef , set,  "effss_coef", UI::optional); 
     357        stop_niter=10; 
     358        UI::get ( stop_niter, set,"stop_niter", UI::optional );          
     359} 
     360 
     361void    merger_mix::to_setting  (Setting  &set) const  { 
     362        merger_base::to_setting(set); 
     363        UI::save( Ncoms, set, "ncoms"); 
     364        UI::save (effss_coef , set,  "effss_coef"); 
     365        UI::save ( stop_niter, set,"stop_niter"); 
     366} 
     367 
     368void merger_mix::validate() { 
     369        merger_base::validate(); 
     370        bdm_assert(Ncoms>0,"Ncoms too small"); 
     371} 
     372 
     373void merger_base::from_setting ( const Setting& set ) { 
     374        // get support 
     375        // find which method to use 
     376        epdf::from_setting (set); 
     377        string meth_str; 
     378        UI::get( meth_str, set, "method", UI::compulsory ); 
     379        if ( meth_str == "arithmetic" )  
     380                set_method ( ARITHMETIC ); 
     381        else if ( meth_str == "geometric" )              
     382                set_method ( GEOMETRIC ); 
     383        else if ( meth_str ==  "lognormal" ) {   
     384                set_method ( LOGNORMAL ); 
     385                UI::get(beta, set, "beta", UI::compulsory );  
     386        } 
    359387         
    360         } 
    361  
    362 void    merger_mix::to_setting  (Setting  &set) const  { 
    363                 merger_base::to_setting(set); 
    364                 UI::save( Ncoms, set, "ncoms"); 
    365                 UI::save (effss_coef , set,  "effss_coef"); 
    366                 UI::save ( stop_niter, set,"stop_niter"); 
    367  
    368         } 
    369  
    370 void merger_mix::validate() { 
    371                 merger_base::validate(); 
    372                 bdm_assert(Ncoms>0,"Ncoms too small"); 
    373         } 
    374  
    375 void merger_base::from_setting ( const Setting& set ) { 
    376                 // get support 
    377                 // find which method to use 
    378                 epdf::from_setting (set); 
    379                 string meth_str; 
    380                 UI::get<string> ( meth_str, set, "method", UI::compulsory ); 
    381                 if ( !strcmp ( meth_str.c_str(), "arithmetic" ) ) 
    382                         set_method ( ARITHMETIC ); 
    383                 else { 
    384                         if ( !strcmp ( meth_str.c_str(), "geometric" ) ) 
    385                                 set_method ( GEOMETRIC ); 
    386                         else if ( !strcmp ( meth_str.c_str(), "lognormal" ) ) { 
    387                                 set_method ( LOGNORMAL ); 
    388                                 set.lookupValue ( "beta", beta ); 
    389                         } 
    390                 } 
    391                 string dbg_file; 
    392                 if ( UI::get ( dbg_file, set, "dbg_file" ) ) 
    393                         set_debug_file ( dbg_file ); 
    394                 //validate() - not used 
    395         } 
    396          
    397         void merger_base::to_setting  (Setting  &set) const { 
    398                 epdf::to_setting(set); 
     388 
     389        string dbg_filename; 
     390        if ( UI::get ( dbg_filename, set, "dbg_file" ) ) 
     391                set_debug_file( dbg_filename ); 
     392 
     393} 
     394 
     395void merger_base::to_setting  (Setting  &set) const { 
     396        epdf::to_setting(set); 
    399397                 
    400                 UI::save( METHOD, set, "method"); 
     398        UI::save( METHOD, set, "method"); 
     399 
     400        if( METHOD == LOGNORMAL ) 
     401                UI::save (beta, set, "beta" ); 
     402 
     403        if( DBG )  
    401404                UI::save ( dbg_file->get_fname(), set, "dbg_file" ); 
    402                 UI::save (beta, set, "beta" ); 
    403         } 
    404  
    405         void merger_base::validate() { 
     405} 
     406 
     407void merger_base::validate() { 
    406408//              bdm_assert ( eSmp._w().length() > 0, "Empty support, use set_support()." ); 
    407409//              bdm_assert ( dim == eSmp._samples() ( 0 ).length(), "Support points and rv are not compatible!" ); 
    408                 epdf::validate(); 
    409                 bdm_assert ( isnamed(), "mergers must be named" ); 
    410         } 
     410        epdf::validate(); 
     411        bdm_assert ( isnamed(), "mergers must be named" ); 
     412} 
     413 
    411414// DEFAULTS FOR MERGER_BASE 
    412415const MERGER_METHOD merger_base::DFLT_METHOD = LOGNORMAL;