00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef MTL_MATRIX_INSERTER_INCLUDE
00013 #define MTL_MATRIX_INSERTER_INCLUDE
00014
00015 #include <boost/numeric/mtl/mtl_fwd.hpp>
00016 #include <boost/numeric/mtl/operation/update.hpp>
00017 #include <boost/numeric/mtl/detail/trivial_inserter.hpp>
00018
00019
00020
00021 namespace mtl { namespace matrix {
00022
00023 template <typename Matrix,
00024 typename Updater = mtl::operations::update_store<typename Matrix::value_type> >
00025 struct inserter
00026 : public mtl::detail::trivial_inserter<Matrix, Updater>
00027 {
00028 typedef mtl::detail::trivial_inserter<Matrix, Updater> base;
00029 typedef typename Matrix::size_type size_type;
00030
00031 explicit inserter(Matrix& matrix, size_type slot_size = 0) : base(matrix, slot_size) {}
00032 };
00033
00034
00035 template <typename Elt, typename Parameters, typename Updater>
00036 struct inserter<compressed2D<Elt, Parameters>, Updater>
00037 : compressed2D_inserter<Elt, Parameters, Updater>
00038 {
00039 typedef compressed2D<Elt, Parameters> matrix_type;
00040 typedef typename matrix_type::size_type size_type;
00041 typedef compressed2D_inserter<Elt, Parameters, Updater > base;
00042
00043 explicit inserter(matrix_type& matrix, size_type slot_size = 5) : base(matrix, slot_size) {}
00044 };
00045
00046
00047 }}
00048
00049 #endif // MTL_MATRIX_INSERTER_INCLUDE