added problem.md files in panel examples
Compare changes
Some changes are not shown
For a faster browsing experience, some files are collapsed by default.
Files
15+ 71
− 71
@@ -91,76 +91,76 @@
@@ -91,76 +91,76 @@
"\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[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",
"\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",
"\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",
"\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",
"\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",
"\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",
"\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\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",
"\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",
"\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",
" 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",
"\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",
"\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",
"\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[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::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);\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);\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::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);\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);\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::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);\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);\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::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);\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);\n"
@@ -472,7 +472,7 @@
@@ -472,7 +472,7 @@