00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef MTL_MATRIX_PARAMETERS_INCLUDE
00013 #define MTL_MATRIX_PARAMETERS_INCLUDE
00014
00015 #include <boost/static_assert.hpp>
00016 #include <boost/numeric/mtl/utility/tag.hpp>
00017 #include <boost/numeric/mtl/detail/index.hpp>
00018 #include <boost/numeric/mtl/matrix/dimension.hpp>
00019 #include <boost/numeric/mtl/utility/is_static.hpp>
00020
00021 namespace mtl { namespace matrix {
00022
00024 template <typename Orientation= row_major,
00025 typename Index= index::c_index,
00026 typename Dimensions= mtl::non_fixed::dimensions,
00027 bool OnStack= mtl::traits::is_static<Dimensions>::value>
00028 struct parameters
00029 {
00030 typedef Orientation orientation;
00031 typedef Index index;
00032 typedef Dimensions dimensions;
00033 static bool const on_stack= OnStack;
00034
00035
00036 BOOST_STATIC_ASSERT(( !on_stack || dimensions::is_static ));
00037 };
00038
00039 }}
00040
00041 #endif // MTL_MATRIX_PARAMETERS_INCLUDE