rheolef  6.3
vector_extension.h
Go to the documentation of this file.
1 #ifndef VECTOR_EXTENSSION_H
2 #define VECTOR_EXTENSSION_H
3 
4 #include <boost/numeric/ublas/vector.hpp>
5 
6 namespace boost { namespace numeric { namespace ublas {
7 
8  template<class E1, class E2>
9  inline
10  typename vector_binary_traits<E1, E2,
11  scalar_multiplies<typename E1::value_type,
12  typename E2::value_type> >::result_type
13  mul (const vector_expression<E1> &e1,
14  const vector_expression<E2> &e2) {
15  typedef typename
16  vector_binary_traits<E1, E2,
17  scalar_multiplies<
18  typename E1::value_type,
19  typename E2::value_type> >::expression_type expression_type;
20  return expression_type (e1 (), e2 ());
21  }
22  // (v1 / v2) [i] = v1 [i] / v2 [i]
23  template<class E1, class E2>
24  inline
25  typename vector_binary_traits<E1, E2,
26  scalar_divides<typename E1::value_type,
27  typename E2::value_type> >::result_type
28  div (const vector_expression<E1> &e1,
29  const vector_expression<E2> &e2) {
30  typedef typename
31  vector_binary_traits<E1, E2,
32  scalar_divides<
33  typename E1::value_type,
34  typename E2::value_type> >::expression_type expression_type;
35  return expression_type (e1 (), e2 ());
36  }
37 
38 
39 }}}
40 #endif // VECTOR_EXTENSSION_H
41