1 #ifndef STAN_LANG_AST_NODE_INTEGRATE_ODE_HPP 2 #define STAN_LANG_AST_NODE_INTEGRATE_ODE_HPP 3 4 #include <stan/lang/ast/node/expression.hpp> 5 #include <string> 6 7 namespace stan { 8 namespace lang { 9 10 /** 11 * Structure for integrate diff eq statement. 12 */ 13 struct integrate_ode { 14 /** 15 * The name of the integrator. 16 */ 17 std::string integration_function_name_; 18 19 /** 20 * Name of the ODE system. 21 */ 22 std::string system_function_name_; 23 24 /** 25 * Initial state. 26 */ 27 expression y0_; 28 29 /** 30 * Initial time. 31 */ 32 expression t0_; 33 34 /** 35 * Solution times. 36 */ 37 expression ts_; 38 39 /** 40 * Parameters. 41 */ 42 expression theta_; // params 43 44 /** 45 * Real-valued data. 46 */ 47 expression x_; 48 49 /** 50 * Integer-valued data. 51 */ 52 expression x_int_; 53 54 /** 55 * Construct a default integrate ODE node. 56 */ 57 integrate_ode(); 58 59 /** 60 * Construct an integrate ODE node with the specified 61 * components. 62 * 63 * @param integration_function_name name of integrator 64 * @param system_function_name name of ODE system 65 * @param y0 initial value 66 * @param t0 initial time 67 * @param ts solution times 68 * @param theta parameters 69 * @param x real-valued data 70 * @param x_int integer-valued data 71 */ 72 integrate_ode(const std::string& integration_function_name, 73 const std::string& system_function_name, 74 const expression& y0, 75 const expression& t0, 76 const expression& ts, 77 const expression& theta, 78 const expression& x, 79 const expression& x_int); 80 }; 81 82 } 83 } 84 #endif 85