Changeset 980

Show
Ignore:
Timestamp:
05/25/10 20:55:20 (14 years ago)
Author:
smidl
Message:

new way of copying data: vec_from_vec

Files:
1 modified

Legend:

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

    r971 r980  
    10201020}; 
    10211021 
     1022class vec_from_vec: public vec { 
     1023        protected: 
     1024                datalink_part dl; 
     1025        public: 
     1026                void update(const vec &v1){ 
     1027                        bdm_assert_debug(length()==dl._downsize(),"vec_from_vec incompatible"); 
     1028                        bdm_assert_debug(v1.length()>=dl._upsize(),"vec_from_vec incompatible");//does not guarantee anything! 
     1029                        dl.filldown(v1,*this); 
     1030                }; 
     1031                void connect(const RV &vecrv, const RV & vec1){dl.set_connection(vecrv,vec1);set_length(vecrv._dsize());}; 
     1032}; 
     1033 
     1034class vec_from_2vec: public vec { 
     1035        protected: 
     1036                datalink_part dl1; 
     1037                datalink_part dl2; 
     1038        public: 
     1039                void update(const vec &v1, const vec &v2){ 
     1040                        bdm_assert_debug(length()==dl1._downsize()+dl2._downsize(),"vec_from_vec incompatible"); 
     1041                        bdm_assert_debug(v1.length()>=dl1._upsize(),"vec_from_vec incompatible"); 
     1042                        bdm_assert_debug(v2.length()>=dl2._upsize(),"vec_from_vec incompatible"); 
     1043                        dl1.filldown(v1,*this); 
     1044                        dl2.filldown(v2,*this); 
     1045                }; 
     1046                void connect(const RV &rv, const RV & rv1, const RV &rv2){ 
     1047                        dl1.set_connection(rv,rv1); 
     1048                        dl2.set_connection(rv,rv2); 
     1049                        set_length(rv._dsize()); 
     1050                }; 
     1051}; 
     1052 
    10221053//! buffered datalink from 2 vectors to 1 
    10231054class datalink_2to1_buffered { 
     
    13821413                UI::save( &rvc, set, "rvc" );            
    13831414                UI::save( &posterior()._rv(), set, "rv" ); 
     1415                if (prior0) UI::save( prior0, set, "prior" ); 
    13841416                UI::save( log_level, set ); 
    13851417        } 
     
    13921424                        const_cast<epdf&> ( posterior() ).log_level[epdf::logmean] = true;; 
    13931425                } 
    1394                 if (prior0) 
    1395                         set_prior(prior0.get()); 
     1426                set_prior(prior0.get()); 
    13961427        } 
    13971428};