#include <boost/la/matrix_traits.hpp>
#include <boost/la/vector_traits.hpp>
#include <boost/la/scalar_traits.hpp
namespace
boost
{
namespace
la
{
//*** Type traits ***
template <class T>
struct
is_matrix
{
static bool const value=/*unspecified*/;
};
template <class M>
struct
matrix_traits
{
/*main template members unspecified*/
};
/*
User-defined (partial) specializations:
template <>
struct
matrix_traits< Matrix >
{
static int const rows = /*user-defined*/;
static int const cols = /*user-defined*/;
typedef /*user-defined*/ scalar_type;
template <int R,int C> static inline scalar_type r( Matrix const & m );
template <int R,int C> static inline scalar_type & w( Matrix & m );
static inline scalar_type ir( int r, int c, Matrix const & m );
static inline scalar_type & iw( int r, int c, Matrix & m );
};
*/
template <class T>
struct
is_vector
{
static bool const value=/*unspecified*/;
};
template <class V>
struct
vector_traits
{
/*main template members unspecified*/
};
/*
User-defined (partial) specializations:
template <>
struct
vector_traits< Vector >
{
static int const dim = /*user-defined*/;
typedef /*user-defined*/ scalar_type;
template <int I> static inline scalar_type r( Vector const & v );
template <int I> static inline scalar_type & w( Vector & v );
static inline scalar_type ir( int i, Vector const & v );
static inline scalar_type & iw( int i, Vector & v );
};
*/
template <class Scalar>
struct
scalar_traits
{
static Scalar zero() { return Scalar(0); }
static Scalar one() { return Scalar(1); }
};
}
}