Mentions légales du service

Skip to content
Snippets Groups Projects

added problem.md files in panel examples

Closed CAILLAU Jean-Baptiste requested to merge feature/panel-md into feature/panel_server
15 files
+ 485
207
Compare changes
  • Side-by-side
  • Inline
Files
15
@@ -91,76 +91,76 @@
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[37m// +++DRAFT+++ This class implements the OCP functions\u001b[39;49;00m\r\n",
"\u001b[37m// It derives from the generic class bocop3OCPBase\u001b[39;49;00m\r\n",
"\u001b[37m// OCP functions are defined with templates since they will be called\u001b[39;49;00m\r\n",
"\u001b[37m// from both the NLP solver (double arguments) and AD tool (ad_double arguments)\u001b[39;49;00m\r\n",
"\u001b[37m//#pragma once\u001b[39;49;00m\r\n",
"\r\n",
"\u001b[36m#\u001b[39;49;00m\u001b[36minclude\u001b[39;49;00m \u001b[37m<OCP.h>\u001b[39;49;00m\u001b[36m\u001b[39;49;00m\r\n",
"\r\n",
"\u001b[34mtemplate\u001b[39;49;00m <\u001b[34mtypename\u001b[39;49;00m \u001b[04m\u001b[32mVariable\u001b[39;49;00m>\r\n",
"\u001b[36mvoid\u001b[39;49;00m OCP::finalCost(\u001b[36mdouble\u001b[39;49;00m initial_time, \u001b[36mdouble\u001b[39;49;00m final_time, \u001b[34mconst\u001b[39;49;00m Variable *initial_state, \u001b[34mconst\u001b[39;49;00m Variable *final_state, \u001b[34mconst\u001b[39;49;00m Variable *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, Variable &final_cost)\r\n",
"{\r\n",
" \u001b[37m// Minimize final time\u001b[39;49;00m\r\n",
" final_cost = initial_state[\u001b[34m2\u001b[39;49;00m];\r\n",
"}\r\n",
"\r\n",
"\u001b[34mtemplate\u001b[39;49;00m <\u001b[34mtypename\u001b[39;49;00m \u001b[04m\u001b[32mVariable\u001b[39;49;00m>\r\n",
"\u001b[36mvoid\u001b[39;49;00m OCP::dynamics(\u001b[36mdouble\u001b[39;49;00m time, \u001b[34mconst\u001b[39;49;00m Variable *state, \u001b[34mconst\u001b[39;49;00m Variable *control, \u001b[34mconst\u001b[39;49;00m Variable *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, Variable *state_dynamics)\r\n",
"{\r\n",
"\tVariable x1 = state[\u001b[34m0\u001b[39;49;00m];\r\n",
"\tVariable x2 = state[\u001b[34m1\u001b[39;49;00m];\r\n",
"\tVariable tf = state[\u001b[34m2\u001b[39;49;00m];\r\n",
"\tVariable u = control[\u001b[34m0\u001b[39;49;00m];\r\n",
"\t\r\n",
"\t\u001b[36mdouble\u001b[39;49;00m g1 = constants[\u001b[34m0\u001b[39;49;00m];\r\n",
"\t\u001b[36mdouble\u001b[39;49;00m g2 = constants[\u001b[34m1\u001b[39;49;00m];\r\n",
"\t\u001b[36mdouble\u001b[39;49;00m t1 = constants[\u001b[34m2\u001b[39;49;00m];\r\n",
"\t\u001b[36mdouble\u001b[39;49;00m t2 = constants[\u001b[34m3\u001b[39;49;00m];\r\n",
"\t\u001b[36mdouble\u001b[39;49;00m k = constants[\u001b[34m4\u001b[39;49;00m];\r\n",
"\t\r\n",
"\tVariable delta1 = pow(t2,k)/(pow(t2,k) + pow(x2,k)); \u001b[37m// delta(x2,t2,k)\u001b[39;49;00m\r\n",
"\tVariable delta2 = pow(t1,k)/(pow(t1,k) + pow(x1,k)); \u001b[37m// delta(x1,t1,k)\u001b[39;49;00m\r\n",
"\r\n",
"\tstate_dynamics[\u001b[34m0\u001b[39;49;00m] = -g1*x1 + u*delta1;\t\u001b[37m// x1dot\u001b[39;49;00m\r\n",
"\tstate_dynamics[\u001b[34m1\u001b[39;49;00m] = -g2*x2 + u*delta2;\t\u001b[37m// x2dot\u001b[39;49;00m\r\n",
"\tstate_dynamics[\u001b[34m2\u001b[39;49;00m] = \u001b[34m0\u001b[39;49;00m;\t\t\t\u001b[37m// tf (constant)\u001b[39;49;00m\r\n",
"\t\r\n",
"\t\u001b[37m// Rescale the state\u001b[39;49;00m\r\n",
"\t\u001b[34mfor\u001b[39;49;00m (\u001b[36msize_t\u001b[39;49;00m i=\u001b[34m0\u001b[39;49;00m; i<\u001b[34m2\u001b[39;49;00m; i++)\r\n",
"\t\tstate_dynamics[i] *= tf;\r\n",
"}\r\n",
"\r\n",
"\u001b[34mtemplate\u001b[39;49;00m <\u001b[34mtypename\u001b[39;49;00m \u001b[04m\u001b[32mVariable\u001b[39;49;00m>\r\n",
"\u001b[36mvoid\u001b[39;49;00m OCP::boundaryConditions(\u001b[36mdouble\u001b[39;49;00m initial_time, \u001b[36mdouble\u001b[39;49;00m final_time, \u001b[34mconst\u001b[39;49;00m Variable *initial_state, \u001b[34mconst\u001b[39;49;00m Variable *final_state, \u001b[34mconst\u001b[39;49;00m Variable *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, Variable *boundary_conditions)\r\n",
"{\r\n",
" boundary_conditions[\u001b[34m0\u001b[39;49;00m] = initial_state[\u001b[34m0\u001b[39;49;00m]; \u001b[37m// x1(0)\u001b[39;49;00m\r\n",
" boundary_conditions[\u001b[34m1\u001b[39;49;00m] = initial_state[\u001b[34m1\u001b[39;49;00m]; \u001b[37m// x2(0)\u001b[39;49;00m\r\n",
" boundary_conditions[\u001b[34m2\u001b[39;49;00m] = final_state[\u001b[34m0\u001b[39;49;00m]; \u001b[37m// x1(tf)\u001b[39;49;00m\r\n",
" boundary_conditions[\u001b[34m3\u001b[39;49;00m] = final_state[\u001b[34m1\u001b[39;49;00m]; \u001b[37m// x2(tf)\u001b[39;49;00m\r\n",
"}\r\n",
"\r\n",
"\u001b[34mtemplate\u001b[39;49;00m <\u001b[34mtypename\u001b[39;49;00m \u001b[04m\u001b[32mVariable\u001b[39;49;00m>\r\n",
"\u001b[36mvoid\u001b[39;49;00m OCP::pathConstraints(\u001b[36mdouble\u001b[39;49;00m time, \u001b[34mconst\u001b[39;49;00m Variable *state, \u001b[34mconst\u001b[39;49;00m Variable *control, \u001b[34mconst\u001b[39;49;00m Variable *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, Variable *path_constraints)\r\n",
"{}\r\n",
"\r\n",
"\u001b[36mvoid\u001b[39;49;00m OCP::preProcessing()\r\n",
"{}\r\n",
"\r\n",
"\u001b[37m// ///////////////////////////////////////////////////////////////////\u001b[39;49;00m\r\n",
"\u001b[37m// explicit template instanciation for template functions, with double and double_ad \u001b[39;49;00m\r\n",
"\u001b[37m// +++ could be in an included separate file ? \u001b[39;49;00m\r\n",
"\u001b[37m// but needs to be done for aux functions too ? APPARENTLY NOT !\u001b[39;49;00m\r\n",
"\u001b[34mtemplate\u001b[39;49;00m \u001b[36mvoid\u001b[39;49;00m OCP::finalCost<\u001b[36mdouble\u001b[39;49;00m>(\u001b[36mdouble\u001b[39;49;00m initial_time, \u001b[36mdouble\u001b[39;49;00m final_time, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *initial_state, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *final_state, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, \u001b[36mdouble\u001b[39;49;00m &final_cost);\r\n",
"\u001b[34mtemplate\u001b[39;49;00m \u001b[36mvoid\u001b[39;49;00m OCP::dynamics<\u001b[36mdouble\u001b[39;49;00m>(\u001b[36mdouble\u001b[39;49;00m time, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *state, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *control, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, \u001b[36mdouble\u001b[39;49;00m *state_dynamics);\r\n",
"\u001b[34mtemplate\u001b[39;49;00m \u001b[36mvoid\u001b[39;49;00m OCP::boundaryConditions<\u001b[36mdouble\u001b[39;49;00m>(\u001b[36mdouble\u001b[39;49;00m initial_time, \u001b[36mdouble\u001b[39;49;00m final_time, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *initial_state, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *final_state, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, \u001b[36mdouble\u001b[39;49;00m *boundary_conditions);\r\n",
"\u001b[34mtemplate\u001b[39;49;00m \u001b[36mvoid\u001b[39;49;00m OCP::pathConstraints<\u001b[36mdouble\u001b[39;49;00m>(\u001b[36mdouble\u001b[39;49;00m time, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *state, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *control, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, \u001b[36mdouble\u001b[39;49;00m *path_constraints);\r\n",
"\r\n",
"\u001b[34mtemplate\u001b[39;49;00m \u001b[36mvoid\u001b[39;49;00m OCP::finalCost<double_ad>(\u001b[36mdouble\u001b[39;49;00m initial_time, \u001b[36mdouble\u001b[39;49;00m final_time, \u001b[34mconst\u001b[39;49;00m double_ad *initial_state, \u001b[34mconst\u001b[39;49;00m double_ad *final_state, \u001b[34mconst\u001b[39;49;00m double_ad *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, double_ad &final_cost);\r\n",
"\u001b[34mtemplate\u001b[39;49;00m \u001b[36mvoid\u001b[39;49;00m OCP::dynamics<double_ad>(\u001b[36mdouble\u001b[39;49;00m time, \u001b[34mconst\u001b[39;49;00m double_ad *state, \u001b[34mconst\u001b[39;49;00m double_ad *control, \u001b[34mconst\u001b[39;49;00m double_ad *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, double_ad *state_dynamics);\r\n",
"\u001b[34mtemplate\u001b[39;49;00m \u001b[36mvoid\u001b[39;49;00m OCP::boundaryConditions<double_ad>(\u001b[36mdouble\u001b[39;49;00m initial_time, \u001b[36mdouble\u001b[39;49;00m final_time, \u001b[34mconst\u001b[39;49;00m double_ad *initial_state, \u001b[34mconst\u001b[39;49;00m double_ad *final_state, \u001b[34mconst\u001b[39;49;00m double_ad *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, double_ad *boundary_conditions);\r\n",
"\u001b[34mtemplate\u001b[39;49;00m \u001b[36mvoid\u001b[39;49;00m OCP::pathConstraints<double_ad>(\u001b[36mdouble\u001b[39;49;00m time, \u001b[34mconst\u001b[39;49;00m double_ad *state, \u001b[34mconst\u001b[39;49;00m double_ad *control, \u001b[34mconst\u001b[39;49;00m double_ad *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, double_ad *path_constraints);\r\n"
"\u001b[37m// +++DRAFT+++ This class implements the OCP functions\u001b[39;49;00m\n",
"\u001b[37m// It derives from the generic class bocop3OCPBase\u001b[39;49;00m\n",
"\u001b[37m// OCP functions are defined with templates since they will be called\u001b[39;49;00m\n",
"\u001b[37m// from both the NLP solver (double arguments) and AD tool (ad_double arguments)\u001b[39;49;00m\n",
"\u001b[37m//#pragma once\u001b[39;49;00m\n",
"\n",
"\u001b[36m#\u001b[39;49;00m\u001b[36minclude\u001b[39;49;00m \u001b[37m<OCP.h>\u001b[39;49;00m\u001b[36m\u001b[39;49;00m\n",
"\n",
"\u001b[34mtemplate\u001b[39;49;00m <\u001b[34mtypename\u001b[39;49;00m \u001b[04m\u001b[32mVariable\u001b[39;49;00m>\n",
"\u001b[36mvoid\u001b[39;49;00m OCP::finalCost(\u001b[36mdouble\u001b[39;49;00m initial_time, \u001b[36mdouble\u001b[39;49;00m final_time, \u001b[34mconst\u001b[39;49;00m Variable *initial_state, \u001b[34mconst\u001b[39;49;00m Variable *final_state, \u001b[34mconst\u001b[39;49;00m Variable *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, Variable &final_cost)\n",
"{\n",
" \u001b[37m// Minimize final time\u001b[39;49;00m\n",
" final_cost = initial_state[\u001b[34m2\u001b[39;49;00m];\n",
"}\n",
"\n",
"\u001b[34mtemplate\u001b[39;49;00m <\u001b[34mtypename\u001b[39;49;00m \u001b[04m\u001b[32mVariable\u001b[39;49;00m>\n",
"\u001b[36mvoid\u001b[39;49;00m OCP::dynamics(\u001b[36mdouble\u001b[39;49;00m time, \u001b[34mconst\u001b[39;49;00m Variable *state, \u001b[34mconst\u001b[39;49;00m Variable *control, \u001b[34mconst\u001b[39;49;00m Variable *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, Variable *state_dynamics)\n",
"{\n",
"\tVariable x1 = state[\u001b[34m0\u001b[39;49;00m];\n",
"\tVariable x2 = state[\u001b[34m1\u001b[39;49;00m];\n",
"\tVariable tf = state[\u001b[34m2\u001b[39;49;00m];\n",
"\tVariable u = control[\u001b[34m0\u001b[39;49;00m];\n",
"\t\n",
"\t\u001b[36mdouble\u001b[39;49;00m g1 = constants[\u001b[34m0\u001b[39;49;00m];\n",
"\t\u001b[36mdouble\u001b[39;49;00m g2 = constants[\u001b[34m1\u001b[39;49;00m];\n",
"\t\u001b[36mdouble\u001b[39;49;00m t1 = constants[\u001b[34m2\u001b[39;49;00m];\n",
"\t\u001b[36mdouble\u001b[39;49;00m t2 = constants[\u001b[34m3\u001b[39;49;00m];\n",
"\t\u001b[36mdouble\u001b[39;49;00m k = constants[\u001b[34m4\u001b[39;49;00m];\n",
"\t\n",
"\tVariable delta1 = pow(t2,k)/(pow(t2,k) + pow(x2,k)); \u001b[37m// delta(x2,t2,k)\u001b[39;49;00m\n",
"\tVariable delta2 = pow(t1,k)/(pow(t1,k) + pow(x1,k)); \u001b[37m// delta(x1,t1,k)\u001b[39;49;00m\n",
"\n",
"\tstate_dynamics[\u001b[34m0\u001b[39;49;00m] = -g1*x1 + u*delta1;\t\u001b[37m// x1dot\u001b[39;49;00m\n",
"\tstate_dynamics[\u001b[34m1\u001b[39;49;00m] = -g2*x2 + u*delta2;\t\u001b[37m// x2dot\u001b[39;49;00m\n",
"\tstate_dynamics[\u001b[34m2\u001b[39;49;00m] = \u001b[34m0\u001b[39;49;00m;\t\t\t\u001b[37m// tf (constant)\u001b[39;49;00m\n",
"\t\n",
"\t\u001b[37m// Rescale the state\u001b[39;49;00m\n",
"\t\u001b[34mfor\u001b[39;49;00m (\u001b[36msize_t\u001b[39;49;00m i=\u001b[34m0\u001b[39;49;00m; i<\u001b[34m2\u001b[39;49;00m; i++)\n",
"\t\tstate_dynamics[i] *= tf;\n",
"}\n",
"\n",
"\u001b[34mtemplate\u001b[39;49;00m <\u001b[34mtypename\u001b[39;49;00m \u001b[04m\u001b[32mVariable\u001b[39;49;00m>\n",
"\u001b[36mvoid\u001b[39;49;00m OCP::boundaryConditions(\u001b[36mdouble\u001b[39;49;00m initial_time, \u001b[36mdouble\u001b[39;49;00m final_time, \u001b[34mconst\u001b[39;49;00m Variable *initial_state, \u001b[34mconst\u001b[39;49;00m Variable *final_state, \u001b[34mconst\u001b[39;49;00m Variable *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, Variable *boundary_conditions)\n",
"{\n",
" boundary_conditions[\u001b[34m0\u001b[39;49;00m] = initial_state[\u001b[34m0\u001b[39;49;00m]; \u001b[37m// x1(0)\u001b[39;49;00m\n",
" boundary_conditions[\u001b[34m1\u001b[39;49;00m] = initial_state[\u001b[34m1\u001b[39;49;00m]; \u001b[37m// x2(0)\u001b[39;49;00m\n",
" boundary_conditions[\u001b[34m2\u001b[39;49;00m] = final_state[\u001b[34m0\u001b[39;49;00m]; \u001b[37m// x1(tf)\u001b[39;49;00m\n",
" boundary_conditions[\u001b[34m3\u001b[39;49;00m] = final_state[\u001b[34m1\u001b[39;49;00m]; \u001b[37m// x2(tf)\u001b[39;49;00m\n",
"}\n",
"\n",
"\u001b[34mtemplate\u001b[39;49;00m <\u001b[34mtypename\u001b[39;49;00m \u001b[04m\u001b[32mVariable\u001b[39;49;00m>\n",
"\u001b[36mvoid\u001b[39;49;00m OCP::pathConstraints(\u001b[36mdouble\u001b[39;49;00m time, \u001b[34mconst\u001b[39;49;00m Variable *state, \u001b[34mconst\u001b[39;49;00m Variable *control, \u001b[34mconst\u001b[39;49;00m Variable *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, Variable *path_constraints)\n",
"{}\n",
"\n",
"\u001b[36mvoid\u001b[39;49;00m OCP::preProcessing()\n",
"{}\n",
"\n",
"\u001b[37m// ///////////////////////////////////////////////////////////////////\u001b[39;49;00m\n",
"\u001b[37m// explicit template instanciation for template functions, with double and double_ad \u001b[39;49;00m\n",
"\u001b[37m// +++ could be in an included separate file ? \u001b[39;49;00m\n",
"\u001b[37m// but needs to be done for aux functions too ? APPARENTLY NOT !\u001b[39;49;00m\n",
"\u001b[34mtemplate\u001b[39;49;00m \u001b[36mvoid\u001b[39;49;00m OCP::finalCost<\u001b[36mdouble\u001b[39;49;00m>(\u001b[36mdouble\u001b[39;49;00m initial_time, \u001b[36mdouble\u001b[39;49;00m final_time, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *initial_state, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *final_state, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, \u001b[36mdouble\u001b[39;49;00m &final_cost);\n",
"\u001b[34mtemplate\u001b[39;49;00m \u001b[36mvoid\u001b[39;49;00m OCP::dynamics<\u001b[36mdouble\u001b[39;49;00m>(\u001b[36mdouble\u001b[39;49;00m time, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *state, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *control, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, \u001b[36mdouble\u001b[39;49;00m *state_dynamics);\n",
"\u001b[34mtemplate\u001b[39;49;00m \u001b[36mvoid\u001b[39;49;00m OCP::boundaryConditions<\u001b[36mdouble\u001b[39;49;00m>(\u001b[36mdouble\u001b[39;49;00m initial_time, \u001b[36mdouble\u001b[39;49;00m final_time, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *initial_state, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *final_state, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, \u001b[36mdouble\u001b[39;49;00m *boundary_conditions);\n",
"\u001b[34mtemplate\u001b[39;49;00m \u001b[36mvoid\u001b[39;49;00m OCP::pathConstraints<\u001b[36mdouble\u001b[39;49;00m>(\u001b[36mdouble\u001b[39;49;00m time, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *state, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *control, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, \u001b[36mdouble\u001b[39;49;00m *path_constraints);\n",
"\n",
"\u001b[34mtemplate\u001b[39;49;00m \u001b[36mvoid\u001b[39;49;00m OCP::finalCost<double_ad>(\u001b[36mdouble\u001b[39;49;00m initial_time, \u001b[36mdouble\u001b[39;49;00m final_time, \u001b[34mconst\u001b[39;49;00m double_ad *initial_state, \u001b[34mconst\u001b[39;49;00m double_ad *final_state, \u001b[34mconst\u001b[39;49;00m double_ad *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, double_ad &final_cost);\n",
"\u001b[34mtemplate\u001b[39;49;00m \u001b[36mvoid\u001b[39;49;00m OCP::dynamics<double_ad>(\u001b[36mdouble\u001b[39;49;00m time, \u001b[34mconst\u001b[39;49;00m double_ad *state, \u001b[34mconst\u001b[39;49;00m double_ad *control, \u001b[34mconst\u001b[39;49;00m double_ad *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, double_ad *state_dynamics);\n",
"\u001b[34mtemplate\u001b[39;49;00m \u001b[36mvoid\u001b[39;49;00m OCP::boundaryConditions<double_ad>(\u001b[36mdouble\u001b[39;49;00m initial_time, \u001b[36mdouble\u001b[39;49;00m final_time, \u001b[34mconst\u001b[39;49;00m double_ad *initial_state, \u001b[34mconst\u001b[39;49;00m double_ad *final_state, \u001b[34mconst\u001b[39;49;00m double_ad *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, double_ad *boundary_conditions);\n",
"\u001b[34mtemplate\u001b[39;49;00m \u001b[36mvoid\u001b[39;49;00m OCP::pathConstraints<double_ad>(\u001b[36mdouble\u001b[39;49;00m time, \u001b[34mconst\u001b[39;49;00m double_ad *state, \u001b[34mconst\u001b[39;49;00m double_ad *control, \u001b[34mconst\u001b[39;49;00m double_ad *parameters, \u001b[34mconst\u001b[39;49;00m \u001b[36mdouble\u001b[39;49;00m *constants, double_ad *path_constraints);\n"
]
}
],
@@ -472,7 +472,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.8"
"version": "3.6.9"
}
},
"nbformat": 4,
Loading