1 #ifndef STAN_MATH_PRIM_ARR_FUNCTOR_COUPLED_ODE_SYSTEM_HPP
2 #define STAN_MATH_PRIM_ARR_FUNCTOR_COUPLED_ODE_SYSTEM_HPP
25 template <
typename F,
typename T1,
typename T2>
45 const std::vector<double>&
x_;
65 const std::vector<double>& y0,
66 const std::vector<double>& theta,
67 const std::vector<double>& x,
68 const std::vector<int>& x_int,
97 std::vector<double>& dy_dt,
99 dy_dt = f_(t, y, theta_dbl_, x_, x_int_, msgs_);
127 std::vector<double> state(
size_, 0.0);
128 for (
int n = 0; n <
N_; n++)
129 state[n] = y0_dbl_[n];
143 std::vector<std::vector<double> >
void operator()(const std::vector< double > &y, std::vector< double > &dy_dt, double t)
Calculates the derivative of the coupled ode system with respect to the specified state at the specif...
const std::vector< double > & x_
const std::vector< int > & x_int_
const std::vector< double > & y0_dbl_
const std::vector< double > & theta_dbl_
std::vector< double > initial_state()
Returns the initial state of the coupled system, which is identical to the base ODE original state in...
int size() const
Returns the size of the coupled system.
bool check_matching_sizes(const char *function, const char *name1, const T_y1 &y1, const char *name2, const T_y2 &y2)
Return true if two structures at the same size.
coupled_ode_system(const F &f, const std::vector< double > &y0, const std::vector< double > &theta, const std::vector< double > &x, const std::vector< int > &x_int, std::ostream *msgs)
Construct the coupled ODE system from the base system function, initial state, parameters, data and a stream for messages.
std::vector< std::vector< double > > decouple_states(const std::vector< std::vector< double > > &y)
Returns the base portion of the coupled state.
int size(const std::vector< T > &x)
Base template class for a coupled ordinary differential equation system, which adds sensitivities to ...