6 template<size_t n, size_t i> struct PartialDotProduct {
8 static T Expand(T* a, T* b) { return T(); }
13 template<class In1, class In2>
14 typename iterator_traits<In1>::value_type
17 return PartialDotProduct<N, 0>::Expand(f1, f2); // line 14
24 double s = dot(&a[0], &b[0]);