{ d.elem(i) = l.elem(i,0) * r.elem(0); for(int j=1; j < N; ++j) d.elem(i) += l.elem(i,j) * r.elem(j); }
d.elem(i) = l.elem(i) * r.elem();
operator*(const PMatrix<T1,N,C1>& l, const PVector<T2,N,C2>& r){  typename BinaryReturn<PMatrix<T1,N,C1>, PVector<T2,N,C2>, OpMultiply>::Type_t  d;  for(int i=0; i < N; ++i)  {    d.elem(i) = l.elem(i,0) * r.elem(0);    for(int j=1; j < N; ++j)      d.elem(i) += l.elem(i,j) * r.elem(j);  }  return d;}