Stan Math Library  2.20.0
reverse mode automatic differentiation
matrix_vari.hpp
Go to the documentation of this file.
1 #ifndef STAN_MATH_REV_CORE_MATRIX_VARI_HPP
2 #define STAN_MATH_REV_CORE_MATRIX_VARI_HPP
3 
8 
9 namespace stan {
10 namespace math {
11 
12 class op_matrix_vari : public vari {
13  protected:
14  const size_t size_;
16 
17  public:
18  template <int R, int C>
19  op_matrix_vari(double f, const Eigen::Matrix<var, R, C>& vs)
20  : vari(f), size_(vs.size()) {
21  vis_ = reinterpret_cast<vari**>(operator new(sizeof(vari*) * vs.size()));
22  for (int i = 0; i < vs.size(); ++i)
23  vis_[i] = vs(i).vi_;
24  }
25  vari* operator[](size_t n) const { return vis_[n]; }
26  size_t size() { return size_; }
27 };
28 
29 } // namespace math
30 } // namespace stan
31 #endif
The variable implementation base class.
Definition: vari.hpp:30
vari * operator[](size_t n) const
Definition: matrix_vari.hpp:25
op_matrix_vari(double f, const Eigen::Matrix< var, R, C > &vs)
Definition: matrix_vari.hpp:19

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