Stan  2.5.0
probability, sampling & optimization
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
rep_matrix.hpp
Go to the documentation of this file.
1 #ifndef STAN__MATH__REP_MATRIX_HPP
2 #define STAN__MATH__REP_MATRIX_HPP
3 
4 #include <boost/math/tools/promotion.hpp>
7 
8 namespace stan {
9 
10  namespace math {
11 
12  template <typename T>
13  inline
14  Eigen::Matrix<typename boost::math::tools::promote_args<T>::type,
15  Eigen::Dynamic,Eigen::Dynamic>
16  rep_matrix(const T& x, int m, int n) {
17  check_nonnegative("rep_matrix(%1%)", m,"rows", (double*)0);
18  check_nonnegative("rep_matrix(%1%)", n,"cols", (double*)0);
19  return Eigen::Matrix<typename boost::math::tools::promote_args<T>::type,
20  Eigen::Dynamic,Eigen::Dynamic>::Constant(m,n,x);
21  }
22 
23  template <typename T>
24  inline Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic>
25  rep_matrix(const Eigen::Matrix<T,Eigen::Dynamic,1>& v, int n) {
26  check_nonnegative("rep_matrix(%1%)", n,"rows", (double*)0);
27  Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic> result(v.size(),n);
28  result.colwise() = v;
29  return result;
30  }
31 
32  template <typename T>
33  inline Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic>
34  rep_matrix(const Eigen::Matrix<T,1,Eigen::Dynamic>& rv, int m) {
35  check_nonnegative("rep_matrix(%1%)", m,"cols", (double*)0);
36  Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic> result(m,rv.size());
37  result.rowwise() = rv;
38  return result;
39  }
40  }
41 }
42 
43 #endif
Eigen::Matrix< typename boost::math::tools::promote_args< T >::type, Eigen::Dynamic, Eigen::Dynamic > rep_matrix(const T &x, int m, int n)
Definition: rep_matrix.hpp:16
bool check_nonnegative(const char *function, const T_y &y, const char *name, T_result *result)

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