inline void orth(VVector& v, typename mtl::Collection<VVector>::size_type j, tag::vector) { using mtl::two_norm; using mtl::size1D; MTL_DEBUG_THROW_IF(j < 0 || j >= size1D(v), index_out_of_range()); typedef typename mtl::Collection<VVector>::size_type Size; for (Size i= 0; i < j; ++i) entry1D(v, j)-= dot(entry1D(v, i), entry1D(v, j)) * entry1D(v, i); entry1D(v, j)/= two_norm(entry1D(v, j)); }