1 #ifndef STAN_LANG_AST_NODE_INTEGRATE_1D_HPP
2 #define STAN_LANG_AST_NODE_INTEGRATE_1D_HPP
3 
4 #include <stan/lang/ast/node/expression.hpp>
5 #include <string>
6 
7 namespace stan {
8 namespace lang {
9 
10 struct integrate_1d {
11   /**
12    * Name of the function being integrated.
13    */
14   std::string function_name_;
15 
16   /**
17    * Lower integration boundary.
18    */
19   expression lb_;
20 
21   /**
22    * Upper integration boundary.
23    */
24   expression ub_;
25 
26   /**
27    * Parameters.
28    */
29   expression theta_;
30 
31   /**
32    * Real-valued data.
33    */
34   expression x_r_;
35 
36   /**
37    * Integer-valued data.
38    */
39   expression x_i_;
40 
41   /**
42    * Relative tolerance of solution.
43    */
44   expression rel_tol_;
45 
46 
47   /**
48    * Construct a 1D integrator AST node.
49    */
50   integrate_1d();
51 
52   /**
53    * Construct a 1D integrator AST node with the specified function
54    * name, lower and upper integration bounds, parameters, and real
55    * and integer data.
56    *
57    * @param function_name name of function to integrate
58    * @param lb lower bound of integration
59    * @param ub upper bound of integration
60    * @param theta parameters
61    * @param x_r real data
62    * @param x_i integer data
63    * @param rel_tol relative tolerance
64    */
65   integrate_1d(const std::string& function_name, const expression& lb,
66                const expression& ub, const expression& theta,
67                const expression& x_r, const expression& x_i,
68                const expression& rel_tol);
69 };
70 
71 }
72 }
73 #endif
74