Stan  2.5.0
probability, sampling & optimization
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
subtract.hpp
Go to the documentation of this file.
1 #ifndef STAN__MATH__MATRIX__SUBTRACT_HPP
2 #define STAN__MATH__MATRIX__SUBTRACT_HPP
3 
4 #include <boost/math/tools/promotion.hpp>
7 
8 namespace stan {
9  namespace math {
10 
24  template <typename T1, typename T2, int R, int C>
25  inline
26  Eigen::Matrix<typename boost::math::tools::promote_args<T1,T2>::type, R, C>
27  subtract(const Eigen::Matrix<T1,R,C>& m1,
28  const Eigen::Matrix<T2,R,C>& m2) {
29  stan::math::check_matching_dims("subtract(%1%)",m1,"m1",
30  m2,"m2",(double*)0);
31  Eigen::Matrix<typename boost::math::tools::promote_args<T1,T2>::type, R, C>
32  result(m1.rows(), m1.cols());
33  for (int i = 0; i < result.size(); ++i)
34  result(i) = m1(i) - m2(i);
35  return result;
36  }
37 
38  template <typename T1, typename T2, int R, int C>
39  inline
40  Eigen::Matrix<typename boost::math::tools::promote_args<T1,T2>::type, R, C>
41  subtract(const T1& c,
42  const Eigen::Matrix<T2,R,C>& m) {
43  Eigen::Matrix<typename boost::math::tools::promote_args<T1,T2>::type, R, C>
44  result(m.rows(),m.cols());
45  for (int i = 0; i < m.size(); ++i)
46  result(i) = c - m(i);
47  return result;
48  }
49 
50  template <typename T1, typename T2, int R, int C>
51  inline
52  Eigen::Matrix<typename boost::math::tools::promote_args<T1,T2>::type, R, C>
53  subtract(const Eigen::Matrix<T1,R,C>& m,
54  const T2& c) {
55  Eigen::Matrix<typename boost::math::tools::promote_args<T1,T2>::type, R, C>
56  result(m.rows(),m.cols());
57  for (int i = 0; i < m.size(); ++i)
58  result(i) = m(i) - c;
59  return result;
60  }
61 
62  }
63 }
64 #endif
bool check_matching_dims(const char *function, const Eigen::Matrix< T1, R1, C1 > &y1, const char *name1, const Eigen::Matrix< T2, R2, C2 > &y2, const char *name2, T_result *result)
Eigen::Matrix< typename boost::math::tools::promote_args< T1, T2 >::type, R, C > subtract(const Eigen::Matrix< T1, R, C > &m1, const Eigen::Matrix< T2, R, C > &m2)
Return the result of subtracting the second specified matrix from the first specified matrix...
Definition: subtract.hpp:27

     [ Stan Home Page ] © 2011–2014, Stan Development Team.