Boost logo

Boost Users :

From: e r (erwann.rogard_at_[hidden])
Date: 2007-08-07 17:23:32


hi,
what's the best way to achieve x*=y? where x and y are vectors (or
proxies) of identical size? although i wrote a function (below) i hope
there's already some ublas related facility to do so.

template<typename D> class Op_product_term_by_term{
        public:
                Op_product_term_by_term(D& dest):iter(dest.begin()),end(dest.end()){};
                void operator()(double elem);
        private:
                typename D::iterator iter;
                typename D::iterator end;
};
template<typename D> void Op_product_term_by_term<D>::operator()(double
elem){
        if(iter<end){
                *(iter++)*=elem;
        }else{
                throw;
        };
};
template<typename D, typename B> void product_term_by_term(D& dest,const
B& by){
   if(dest.size()==by.size()){
     for_each(by.begin(),by.end(),Op_product_term_by_term<D>(dest));
   }else{
        throw;
   };
};

ps: should i post this kind of ad in boost/ublas or boost/users?


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net