Show
Ignore:
Timestamp:
11/17/09 00:54:28 (15 years ago)
Author:
smidl
Message:

logger now has ability to store settings - used in estimator. New mexfunction epdf_mean

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • library/bdm/base/bdmbase.h

    r727 r728  
    611611                }; 
    612612                root::log_register(L,prefix); 
    613                 logrec->ids.set_size(3); 
    614                 if (log_level >0){ 
    615                         logrec->ids(0) = logrec->L.add_vector ( r, prefix + logrec->L.prefix_sep()+ "mean" ); 
    616                 } 
    617                 if (log_level >1){ 
    618                         logrec->ids(1) = logrec->L.add_vector ( r, prefix + logrec->L.prefix_sep()+ "lb" ); 
    619                         logrec->ids(2) = logrec->L.add_vector ( r, prefix + logrec->L.prefix_sep()+ "ub" ); 
     613                 
     614                // log full data 
     615                if (log_level==10) { 
     616                        logrec->ids.set_size(1); 
     617                        logrec->ids(0) = logrec->L.add_setting(prefix); 
     618                } else { 
     619                        // log only  
     620                        logrec->ids.set_size(3); 
     621                        if (log_level >0){ 
     622                                logrec->ids(0) = logrec->L.add_vector ( r, prefix + logrec->L.prefix_sep()+ "mean" ); 
     623                        } 
     624                        if (log_level >1){ 
     625                                logrec->ids(1) = logrec->L.add_vector ( r, prefix + logrec->L.prefix_sep()+ "lb" ); 
     626                                logrec->ids(2) = logrec->L.add_vector ( r, prefix + logrec->L.prefix_sep()+ "ub" ); 
     627                        } 
    620628                } 
    621629        } 
    622630        void log_write() const { 
    623                 if (log_level>0) { 
    624                         logrec->L.log_vector( logrec->ids(0), mean() ); 
    625                 } 
    626                 if (log_level>1) { 
    627                         vec lb; vec ub; 
    628                         qbounds(lb,ub); 
    629                         logrec->L.log_vector( logrec->ids(1), lb ); 
    630                         logrec->L.log_vector( logrec->ids(2), ub ); 
     631                if (log_level==10){ 
     632                        to_setting(logrec->L.log_to_setting(logrec->ids(0))); 
     633                } else { 
     634                        if (log_level>0) { 
     635                                logrec->L.log_vector( logrec->ids(0), mean() ); 
     636                        } 
     637                        if (log_level>1) { 
     638                                vec lb; vec ub; 
     639                                qbounds(lb,ub); 
     640                                logrec->L.log_vector( logrec->ids(1), lb ); 
     641                                logrec->L.log_vector( logrec->ids(2), ub ); 
     642                        } 
    631643                } 
    632644        } 
     
    12071219        //! Set boolean options from a string, recognized are: "logbounds,logll" 
    12081220        virtual void set_options ( const string &opt ) { 
    1209                 if ( opt.find ( "logstat" ) != string::npos ) { 
    1210                         const_cast<epdf&>(posterior()).set_log_level(3) ; 
     1221                if ( opt.find ( "logfull" ) != string::npos ) { 
     1222                        const_cast<epdf&>(posterior()).set_log_level(10) ; 
    12111223                } else { 
    12121224                        if ( opt.find ( "logbounds" ) != string::npos ) {