#include <boost/la/vec_traits.hpp>
#include <boost/la/vec.hpp> namespace boost { namespace la { template <class Vector> struct vector_traits; template <class T,int Dim> struct vector_traits< vec<T,Dim> > { typedef T scalar_type; static int const dim=Dim; template <int I> static scalar_type r( vec<T,Dim> const & x ) { return x.a[I]; } template <int I> static scalar_type & w( vec<T,Dim> & x ) { return x.a[I]; } static scalar_type ir( int i, vec<T,Dim> const & x ) { return x.a[i]; } static scalar_type & iw( int i, vec<T,Dim> & x ) { return x.a[i]; } }; } }