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 | |
| 361 | void 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 | |
| 368 | void merger_mix::validate() { |
| 369 | merger_base::validate(); |
| 370 | bdm_assert(Ncoms>0,"Ncoms too small"); |
| 371 | } |
| 372 | |
| 373 | void 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 | } |
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 | |
| 395 | void merger_base::to_setting (Setting &set) const { |
| 396 | epdf::to_setting(set); |