00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef MTL_MAT_CVEC_TIMES_EXPR_INCLUDE
00013 #define MTL_MAT_CVEC_TIMES_EXPR_INCLUDE
00014
00015 #include <boost/numeric/mtl/operation/bin_op_expr.hpp>
00016 #include <boost/numeric/mtl/mtl_fwd.hpp>
00017
00018 namespace mtl {
00019
00020 template <typename E1, typename E2>
00021 struct mat_cvec_times_expr
00022 : public bin_op_expr< E1, E2 >,
00023 public mtl::vector::vec_expr< mat_cvec_times_expr<E1, E2> >
00024 {
00025 typedef bin_op_expr< E1, E2 > base;
00026 typedef mat_cvec_times_expr<E1, E2> self;
00027
00028
00029
00030 typedef typename E2::value_type value_type;
00031 typedef typename E2::size_type size_type;
00032
00033 mat_cvec_times_expr( E1 const& matrix, E2 const& vector )
00034 : base(matrix, vector)
00035 {}
00036
00037 friend size_type inline size(const self& x) { return num_rows(x.first); }
00038 };
00039
00040 }
00041
00042 #endif // MTL_MAT_CVEC_TIMES_EXPR_INCLUDE