  };

    // sum v = sum (v [i])
    template&lt;class E&gt;
    typename vector_scalar_unary_traits&lt;E, vector_sum&lt;typename E::value_type&gt; &gt;::result_type
    sum (const vector_expression&lt;E&gt; &amp;e);

    // norm_1 v = sum (abs (v [i]))
    template&lt;class E&gt;
    typename vector_scalar_unary_traits&lt;E, vector_norm_1&lt;typename E::value_type&gt; &gt;::result_type
    norm_1 (const vector_expression&lt;E&gt; &amp;e);

    // norm_2 v = sqrt (sum (v [i] * v [i]))
    template&lt;class 