Stan Math Library  2.15.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(
38  const Eigen::Matrix<S, Eigen::Dynamic, 1>& m): m_(m) {}
39  int size() const {
40  return 1;
41  }
42  Eigen::Matrix<S, Eigen::Dynamic, 1> operator[](int /* i */) const {
43  return m_;
44  }
45  private:
46  const Eigen::Matrix<S, Eigen::Dynamic, 1>& m_;
47  };
48 
60  template <typename S>
61  class vector_seq_view<Eigen::Matrix<S, 1, Eigen::Dynamic> > {
62  public:
63  explicit vector_seq_view(
64  const Eigen::Matrix<S, 1, Eigen::Dynamic>& m): m_(m) {}
65  int size() const {
66  return 1;
67  }
68  Eigen::Matrix<S, 1, Eigen::Dynamic> operator[](int /* i */) const {
69  return m_;
70  }
71  private:
72  const Eigen::Matrix<S, 1, Eigen::Dynamic>& m_;
73  };
74 
86  template <typename S>
87  class vector_seq_view<std::vector<Eigen::Matrix<S, Eigen::Dynamic, 1> > > {
88  public:
89  explicit vector_seq_view(
90  const std::vector<Eigen::Matrix<S, Eigen::Dynamic, 1> >& v):
91  v_(v) {}
92  int size() const {
93  return v_.size();
94  }
95  Eigen::Matrix<S, Eigen::Dynamic, 1> operator[](int i) const {
96  return v_[i];
97  }
98  private:
99  const std::vector<Eigen::Matrix<S, Eigen::Dynamic, 1> >& v_;
100  };
101 
113  template <typename S>
114  class vector_seq_view<std::vector<Eigen::Matrix<S, 1, Eigen::Dynamic> > > {
115  public:
116  explicit vector_seq_view(
117  const std::vector<Eigen::Matrix<S, 1, Eigen::Dynamic> >& v):
118  v_(v) {}
119  int size() const {
120  return v_.size();
121  }
122  Eigen::Matrix<S, 1, Eigen::Dynamic> operator[](int i) const {
123  return v_[i];
124  }
125  private:
126  const std::vector<Eigen::Matrix<S, 1, Eigen::Dynamic> >& v_;
127  };
128 } // namespace stan
129 
130 #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
vari ** v_
Definition: dot_self.hpp:17
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–2016, Stan Development Team.