|
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