bool compare_result(const M1& sm, const M2& m) { if(sm.size() != m.size()) return false; if(sm.line() != m.line()) return false; for(unsigned int i = 0; i < sm.size(); ++i) { if(sm.position(i) != m.position(i)) return false; if(sm.length(i) != m.length(i)) return false; } return true; }
Common_type<Value_type<M1>, Value_type<M2> > dot_product (const M1 &a, const M2 &b) { static_assert (a.order == 1, ""); static_assert (b.order == 1, ""); assert (a.size () == b.size ()); return inner_product (a.begin (), a.end (), b.begin (), size_t (0)); }