Stan Math Library  2.20.0
reverse mode automatic differentiation
vector_seq_view.hpp
Go to the documentation of this file.
1 #ifndef STAN_MATH_PRIM_MAT_META_vector_SEQ_VIEW_HPP
2 #define STAN_MATH_PRIM_MAT_META_vector_SEQ_VIEW_HPP
3 
5 #include <vector>
6 
7 namespace stan {
8 
20 template <typename T>
21 class vector_seq_view {};
22 
34 template <typename S>
35 class vector_seq_view<Eigen::Matrix<S, Eigen::Dynamic, 1> > {
36  public:
37  explicit vector_seq_view(const Eigen::Matrix<S, Eigen::Dynamic, 1>& m)
38  : m_(m) {}
39  int size() const { return 1; }
40  Eigen::Matrix<S, Eigen::Dynamic, 1> operator[](int /* i */) const {
41  return m_;
42  }
43 
44  private:
45  const Eigen::Matrix<S, Eigen::Dynamic, 1>& m_;
46 };
47 
59 template <typename S>
60 class vector_seq_view<Eigen::Matrix<S, 1, Eigen::Dynamic> > {
61  public:
62  explicit vector_seq_view(const Eigen::Matrix<S, 1, Eigen::Dynamic>& m)
63  : m_(m) {}
64  int size() const { return 1; }
65  Eigen::Matrix<S, 1, Eigen::Dynamic> operator[](int /* i */) const {
66  return m_;
67  }
68 
69  private:
70  const Eigen::Matrix<S, 1, Eigen::Dynamic>& m_;
71 };
72 
84 template <typename S>
85 class vector_seq_view<std::vector<Eigen::Matrix<S, Eigen::Dynamic, 1> > > {
86  public:
87  explicit vector_seq_view(
88  const std::vector<Eigen::Matrix<S, Eigen::Dynamic, 1> >& v)
89  : v_(v) {}
90  int size() const { return v_.size(); }
91  Eigen::Matrix<S, Eigen::Dynamic, 1> operator[](int i) const { return v_[i]; }
92 
93  private:
94  const std::vector<Eigen::Matrix<S, Eigen::Dynamic, 1> >& v_;
95 };
96 
108 template <typename S>
109 class vector_seq_view<std::vector<Eigen::Matrix<S, 1, Eigen::Dynamic> > > {
110  public:
111  explicit vector_seq_view(
112  const std::vector<Eigen::Matrix<S, 1, Eigen::Dynamic> >& v)
113  : v_(v) {}
114  int size() const { return v_.size(); }
115  Eigen::Matrix<S, 1, Eigen::Dynamic> operator[](int i) const { return v_[i]; }
116 
117  private:
118  const std::vector<Eigen::Matrix<S, 1, Eigen::Dynamic> >& v_;
119 };
120 } // namespace stan
121 
122 #endif
Eigen::Matrix< S, 1, Eigen::Dynamic > operator[](int) const
vector_seq_view(const Eigen::Matrix< S, 1, Eigen::Dynamic > &m)
(Expert) Numerical traits for algorithmic differentiation variables.
Eigen::Matrix< S, Eigen::Dynamic, 1 > operator[](int) const
vector_seq_view(const std::vector< Eigen::Matrix< S, 1, Eigen::Dynamic > > &v)
vector_seq_view(const Eigen::Matrix< S, Eigen::Dynamic, 1 > &m)
This class provides a low-cost wrapper for situations where you either need an Eigen Vector or RowVec...
vector_seq_view(const std::vector< Eigen::Matrix< S, Eigen::Dynamic, 1 > > &v)

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