casadi 3.6.5__cp39-none-macosx_11_0_arm64.whl → 3.6.7__cp39-none-macosx_11_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (649) hide show
  1. casadi/_casadi.so +0 -0
  2. casadi/casadi-cli +0 -0
  3. casadi/casadi.py +739 -308
  4. casadi/cbc +0 -0
  5. casadi/clp +0 -0
  6. casadi/cmake/casadi-config-version.cmake +1 -1
  7. casadi/cmake/casadi-targets.cmake +10 -6
  8. casadi/cmake/highs/highs-config.cmake +6 -13
  9. casadi/cmake/highs/highs-targets-release.cmake +13 -13
  10. casadi/cmake/highs/highs-targets.cmake +25 -22
  11. casadi/cmake/osqp/osqp-targets.cmake +10 -6
  12. casadi/cmake/proxsuite/proxsuiteConfigVersion.cmake +0 -5
  13. casadi/cmake/proxsuite/proxsuiteTargets.cmake +12 -12
  14. casadi/cmake/qdldl/qdldl-targets.cmake +10 -6
  15. casadi/cmake/sleqp/sleqp-config-version.cmake +0 -5
  16. casadi/cmake/sleqp/sleqp-targets.cmake +10 -6
  17. casadi/cmake/trlib/trlib-config-release.cmake +1 -1
  18. casadi/cmake/trlib/trlib-config-version.cmake +0 -5
  19. casadi/cmake/trlib/trlib-config.cmake +12 -12
  20. casadi/highs +0 -0
  21. casadi/include/casadi/casadi.i +3 -0
  22. casadi/include/casadi/casadi_c.h +2 -0
  23. casadi/include/casadi/config.h +9 -9
  24. casadi/include/casadi/core/casadi_common.hpp +1 -0
  25. casadi/include/casadi/core/casadi_export.h +1 -0
  26. casadi/include/casadi/core/casadi_misc.hpp +52 -0
  27. casadi/include/casadi/core/casadi_types.hpp +3 -2
  28. casadi/include/casadi/core/code_generator.hpp +30 -1
  29. casadi/include/casadi/core/global_options.hpp +2 -0
  30. casadi/include/casadi/core/mx.hpp +18 -3
  31. casadi/include/casadi/core/optistack.hpp +23 -0
  32. casadi/include/casadi/core/runtime/casadi_nlp.hpp +19 -4
  33. casadi/include/casadi/core/runtime/casadi_ocp_block.hpp +55 -0
  34. casadi/include/casadi/core/runtime/casadi_oracle.hpp +44 -0
  35. casadi/include/casadi/core/runtime/casadi_oracle_callback.hpp +39 -0
  36. casadi/include/casadi/core/runtime/casadi_runtime.hpp +4 -1
  37. casadi/include/casadi/core/runtime/casadi_scaled_copy.hpp +31 -0
  38. casadi/include/casadi/core/serializing_stream.hpp +2 -2
  39. casadi/include/casadi/core/sparsity.hpp +7 -0
  40. casadi/include/casadi/doc.i +1513 -1016
  41. casadi/include/casadi/doc_merged.i +965 -719
  42. casadi/include/casadi/mem.h +1 -0
  43. casadi/include/daqp/api.h +46 -0
  44. casadi/include/daqp/auxiliary.h +29 -0
  45. casadi/include/daqp/bnb.h +32 -0
  46. casadi/include/daqp/codegen.h +18 -0
  47. casadi/include/daqp/constants.h +92 -0
  48. casadi/include/daqp/daqp.h +22 -0
  49. casadi/include/daqp/daqp_prox.h +18 -0
  50. casadi/include/daqp/factorization.h +18 -0
  51. casadi/include/daqp/types.h +161 -0
  52. casadi/include/daqp/utils.h +44 -0
  53. casadi/include/fatrop/auxiliary/Common.hpp +34 -0
  54. casadi/include/fatrop/auxiliary/DynamicLib.hpp +34 -0
  55. casadi/include/fatrop/auxiliary/FatropOptions.hpp +68 -0
  56. casadi/include/fatrop/auxiliary/FatropVector.hpp +143 -0
  57. casadi/include/fatrop/auxiliary/LinearAlgebra.hpp +88 -0
  58. casadi/include/fatrop/auxiliary/VectorUtils.hpp +54 -0
  59. casadi/include/fatrop/blasfeo_wrapper/LinearAlgebraBlasfeo.hpp +493 -0
  60. casadi/include/fatrop/fatrop.hpp +39 -0
  61. casadi/include/fatrop/function_evaluation/CasadiCodegen.hpp +104 -0
  62. casadi/include/fatrop/function_evaluation/FunctionEvaluation.hpp +60 -0
  63. casadi/include/fatrop/json/json.h +946 -0
  64. casadi/include/fatrop/ocp/CasadiCApiUserdataWrap.hpp +87 -0
  65. casadi/include/fatrop/ocp/DuInfEvaluator.hpp +38 -0
  66. casadi/include/fatrop/ocp/FatropOCP.hpp +161 -0
  67. casadi/include/fatrop/ocp/FatropOCPBuilder.hpp +52 -0
  68. casadi/include/fatrop/ocp/FatropOCPResto.hpp +299 -0
  69. casadi/include/fatrop/ocp/OCP.hpp +82 -0
  70. casadi/include/fatrop/ocp/OCPAbstract.hpp +254 -0
  71. casadi/include/fatrop/ocp/OCPAdapter.hpp +197 -0
  72. casadi/include/fatrop/ocp/OCPCInterface.h +289 -0
  73. casadi/include/fatrop/ocp/OCPDims.hpp +60 -0
  74. casadi/include/fatrop/ocp/OCPInitializer.hpp +41 -0
  75. casadi/include/fatrop/ocp/OCPKKT.hpp +69 -0
  76. casadi/include/fatrop/ocp/OCPLSRiccati.hpp +198 -0
  77. casadi/include/fatrop/ocp/OCPLSScaler.hpp +66 -0
  78. casadi/include/fatrop/ocp/OCPLinearSolver.hpp +75 -0
  79. casadi/include/fatrop/ocp/OCPNoScaling.hpp +42 -0
  80. casadi/include/fatrop/ocp/OCPScalingMethod.hpp +42 -0
  81. casadi/include/fatrop/ocp/StageOCP.hpp +592 -0
  82. casadi/include/fatrop/ocp/StageOCPApplication.hpp +242 -0
  83. casadi/include/fatrop/ocp/StageOCPExpressions.hpp +182 -0
  84. casadi/include/fatrop/ocp/UStageEvalAbstract.hpp +168 -0
  85. casadi/include/fatrop/ocp/UStageOCPImpl.hpp +152 -0
  86. casadi/include/fatrop/quasi_newton/bfgs.hpp +159 -0
  87. casadi/include/fatrop/solver/AlgBuilder.hpp +76 -0
  88. casadi/include/fatrop/solver/AlgStrategy.hpp +33 -0
  89. casadi/include/fatrop/solver/FatropAlg.hpp +121 -0
  90. casadi/include/fatrop/solver/FatropData.hpp +188 -0
  91. casadi/include/fatrop/solver/FatropOptions.hpp +95 -0
  92. casadi/include/fatrop/solver/FatropPrinter.hpp +65 -0
  93. casadi/include/fatrop/solver/FatropStats.hpp +63 -0
  94. casadi/include/fatrop/solver/Filter.hpp +54 -0
  95. casadi/include/fatrop/solver/IterationData.hpp +56 -0
  96. casadi/include/fatrop/solver/LineSearch.hpp +86 -0
  97. casadi/include/fatrop/solver/NLPL1.hpp +263 -0
  98. casadi/include/fatrop/templates/NLPAlg.hpp +104 -0
  99. casadi/include/highs/HConfig.h +8 -7
  100. casadi/include/highs/Highs.h +93 -23
  101. casadi/include/highs/filereaderlp/def.hpp +19 -0
  102. casadi/include/highs/interfaces/highs_c_api.h +200 -24
  103. casadi/include/highs/io/Filereader.h +1 -1
  104. casadi/include/highs/io/FilereaderEms.h +1 -1
  105. casadi/include/highs/io/FilereaderLp.h +1 -1
  106. casadi/include/highs/io/FilereaderMps.h +1 -1
  107. casadi/include/highs/io/HMPSIO.h +1 -1
  108. casadi/include/highs/io/HMpsFF.h +5 -3
  109. casadi/include/highs/io/HighsIO.h +18 -8
  110. casadi/include/highs/io/LoadOptions.h +1 -1
  111. casadi/include/highs/ipm/IpxSolution.h +35 -0
  112. casadi/include/highs/ipm/IpxWrapper.h +1 -1
  113. casadi/include/highs/ipm/basiclu/basiclu.h +161 -0
  114. casadi/include/highs/ipm/basiclu/basiclu_factorize.h +247 -0
  115. casadi/include/highs/ipm/basiclu/basiclu_get_factors.h +108 -0
  116. casadi/include/highs/ipm/basiclu/basiclu_initialize.h +119 -0
  117. casadi/include/highs/ipm/basiclu/basiclu_obj_factorize.h +34 -0
  118. casadi/include/highs/ipm/basiclu/basiclu_obj_free.h +19 -0
  119. casadi/include/highs/ipm/basiclu/basiclu_obj_get_factors.h +34 -0
  120. casadi/include/highs/ipm/basiclu/basiclu_obj_initialize.h +46 -0
  121. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_dense.h +29 -0
  122. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_for_update.h +42 -0
  123. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_sparse.h +32 -0
  124. casadi/include/highs/ipm/basiclu/basiclu_obj_update.h +31 -0
  125. casadi/include/highs/ipm/basiclu/basiclu_object.h +30 -0
  126. casadi/include/highs/ipm/basiclu/basiclu_solve_dense.h +75 -0
  127. casadi/include/highs/ipm/basiclu/basiclu_solve_for_update.h +169 -0
  128. casadi/include/highs/ipm/basiclu/basiclu_solve_sparse.h +112 -0
  129. casadi/include/highs/ipm/basiclu/basiclu_update.h +125 -0
  130. casadi/include/highs/ipm/basiclu/lu_def.h +39 -0
  131. casadi/include/highs/ipm/basiclu/lu_file.h +21 -0
  132. casadi/include/highs/ipm/basiclu/lu_internal.h +220 -0
  133. casadi/include/highs/ipm/basiclu/lu_list.h +168 -0
  134. casadi/include/highs/ipm/ipx/basiclu_kernel.h +20 -0
  135. casadi/include/highs/ipm/ipx/basiclu_wrapper.h +47 -0
  136. casadi/include/highs/ipm/ipx/basis.h +351 -0
  137. casadi/include/highs/ipm/ipx/conjugate_residuals.h +74 -0
  138. casadi/include/highs/ipm/ipx/control.h +163 -0
  139. casadi/include/highs/ipm/ipx/crossover.h +157 -0
  140. casadi/include/highs/ipm/ipx/diagonal_precond.h +45 -0
  141. casadi/include/highs/ipm/ipx/forrest_tomlin.h +102 -0
  142. casadi/include/highs/ipm/ipx/guess_basis.h +21 -0
  143. casadi/include/highs/ipm/ipx/indexed_vector.h +113 -0
  144. casadi/include/highs/ipm/ipx/info.h +27 -0
  145. casadi/include/highs/ipm/ipx/ipm.h +94 -0
  146. casadi/include/highs/ipm/ipx/ipx_c.h +47 -0
  147. casadi/include/highs/ipm/ipx/ipx_config.h +9 -0
  148. casadi/include/highs/ipm/ipx/ipx_info.h +111 -0
  149. casadi/include/highs/ipm/ipx/ipx_internal.h +88 -0
  150. casadi/include/highs/ipm/ipx/ipx_parameters.h +75 -0
  151. casadi/include/highs/ipm/ipx/ipx_status.h +57 -0
  152. casadi/include/highs/ipm/ipx/iterate.h +328 -0
  153. casadi/include/highs/ipm/ipx/kkt_solver.h +70 -0
  154. casadi/include/highs/ipm/ipx/kkt_solver_basis.h +66 -0
  155. casadi/include/highs/ipm/ipx/kkt_solver_diag.h +48 -0
  156. casadi/include/highs/ipm/ipx/linear_operator.h +26 -0
  157. casadi/include/highs/ipm/ipx/lp_solver.h +201 -0
  158. casadi/include/highs/ipm/ipx/lu_factorization.h +79 -0
  159. casadi/include/highs/ipm/ipx/lu_update.h +129 -0
  160. casadi/include/highs/ipm/ipx/maxvolume.h +54 -0
  161. casadi/include/highs/ipm/ipx/model.h +409 -0
  162. casadi/include/highs/ipm/ipx/multistream.h +52 -0
  163. casadi/include/highs/ipm/ipx/normal_matrix.h +44 -0
  164. casadi/include/highs/ipm/ipx/power_method.h +44 -0
  165. casadi/include/highs/ipm/ipx/sparse_matrix.h +195 -0
  166. casadi/include/highs/ipm/ipx/sparse_utils.h +58 -0
  167. casadi/include/highs/ipm/ipx/splitted_normal_matrix.h +63 -0
  168. casadi/include/highs/ipm/ipx/starting_basis.h +39 -0
  169. casadi/include/highs/ipm/ipx/symbolic_invert.h +29 -0
  170. casadi/include/highs/ipm/ipx/timer.h +24 -0
  171. casadi/include/highs/ipm/ipx/utils.h +39 -0
  172. casadi/include/highs/lp_data/HConst.h +20 -10
  173. casadi/include/highs/lp_data/HStruct.h +23 -1
  174. casadi/include/highs/lp_data/HighsAnalysis.h +1 -1
  175. casadi/include/highs/lp_data/HighsCallback.h +10 -3
  176. casadi/include/highs/lp_data/HighsCallbackStruct.h +31 -5
  177. casadi/include/highs/lp_data/HighsDebug.h +1 -1
  178. casadi/include/highs/lp_data/HighsInfo.h +20 -2
  179. casadi/include/highs/lp_data/HighsInfoDebug.h +1 -1
  180. casadi/include/highs/lp_data/HighsLp.h +17 -1
  181. casadi/include/highs/lp_data/HighsLpSolverObject.h +1 -1
  182. casadi/include/highs/lp_data/HighsLpUtils.h +19 -19
  183. casadi/include/highs/lp_data/HighsModelUtils.h +1 -1
  184. casadi/include/highs/lp_data/HighsOptions.h +237 -10
  185. casadi/include/highs/lp_data/HighsRanging.h +1 -1
  186. casadi/include/highs/lp_data/HighsRuntimeOptions.h +2 -2
  187. casadi/include/highs/lp_data/HighsSolution.h +2 -2
  188. casadi/include/highs/lp_data/HighsSolutionDebug.h +1 -1
  189. casadi/include/highs/lp_data/HighsSolve.h +3 -1
  190. casadi/include/highs/lp_data/HighsStatus.h +1 -1
  191. casadi/include/highs/mip/HighsCliqueTable.h +4 -4
  192. casadi/include/highs/mip/HighsConflictPool.h +1 -1
  193. casadi/include/highs/mip/HighsCutGeneration.h +1 -1
  194. casadi/include/highs/mip/HighsCutPool.h +2 -2
  195. casadi/include/highs/mip/HighsDebugSol.h +22 -29
  196. casadi/include/highs/mip/HighsDomain.h +10 -2
  197. casadi/include/highs/mip/HighsDomainChange.h +1 -1
  198. casadi/include/highs/mip/HighsDynamicRowMatrix.h +5 -3
  199. casadi/include/highs/mip/HighsGFkSolve.h +3 -3
  200. casadi/include/highs/mip/HighsImplications.h +3 -3
  201. casadi/include/highs/mip/HighsLpAggregator.h +1 -1
  202. casadi/include/highs/mip/HighsLpRelaxation.h +6 -1
  203. casadi/include/highs/mip/HighsMipSolver.h +4 -2
  204. casadi/include/highs/mip/HighsMipSolverData.h +47 -4
  205. casadi/include/highs/mip/HighsModkSeparator.h +2 -2
  206. casadi/include/highs/mip/HighsNodeQueue.h +5 -3
  207. casadi/include/highs/mip/HighsObjectiveFunction.h +1 -1
  208. casadi/include/highs/mip/HighsPathSeparator.h +2 -2
  209. casadi/include/highs/mip/HighsPrimalHeuristics.h +1 -1
  210. casadi/include/highs/mip/HighsPseudocost.h +35 -23
  211. casadi/include/highs/mip/HighsRedcostFixing.h +1 -1
  212. casadi/include/highs/mip/HighsSearch.h +2 -1
  213. casadi/include/highs/mip/HighsSeparation.h +1 -1
  214. casadi/include/highs/mip/HighsSeparator.h +1 -1
  215. casadi/include/highs/mip/HighsTableauSeparator.h +1 -1
  216. casadi/include/highs/mip/HighsTransformedLp.h +1 -1
  217. casadi/include/highs/model/HighsHessian.h +5 -0
  218. casadi/include/highs/model/HighsHessianUtils.h +2 -0
  219. casadi/include/highs/model/HighsModel.h +10 -1
  220. casadi/include/highs/parallel/HighsMutex.h +2 -1
  221. casadi/include/highs/parallel/HighsParallel.h +7 -2
  222. casadi/include/highs/parallel/HighsTask.h +1 -2
  223. casadi/include/highs/pdlp/CupdlpWrapper.h +93 -0
  224. casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +41 -0
  225. casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +423 -0
  226. casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +183 -0
  227. casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +19 -0
  228. casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +31 -0
  229. casadi/include/highs/pdlp/cupdlp/cupdlp_scaling_cuda.h +28 -0
  230. casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +98 -0
  231. casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +33 -0
  232. casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +1726 -0
  233. casadi/include/highs/pdqsort/pdqsort.h +532 -0
  234. casadi/include/highs/presolve/HPresolve.h +27 -14
  235. casadi/include/highs/presolve/HPresolveAnalysis.h +1 -1
  236. casadi/include/highs/presolve/HighsPostsolveStack.h +92 -68
  237. casadi/include/highs/presolve/HighsSymmetry.h +6 -5
  238. casadi/include/highs/presolve/ICrash.h +8 -2
  239. casadi/include/highs/presolve/ICrashUtil.h +1 -1
  240. casadi/include/highs/presolve/ICrashX.h +1 -1
  241. casadi/include/highs/presolve/PresolveComponent.h +1 -1
  242. casadi/include/highs/qpsolver/a_asm.hpp +23 -12
  243. casadi/include/highs/qpsolver/a_quass.hpp +8 -1
  244. casadi/include/highs/qpsolver/basis.hpp +150 -0
  245. casadi/include/highs/qpsolver/crashsolution.hpp +12 -0
  246. casadi/include/highs/qpsolver/dantzigpricing.hpp +72 -0
  247. casadi/include/highs/qpsolver/devexpricing.hpp +99 -0
  248. casadi/include/highs/qpsolver/eventhandler.hpp +23 -0
  249. casadi/include/highs/qpsolver/factor.hpp +400 -0
  250. casadi/include/highs/qpsolver/feasibility_bounded.hpp +105 -0
  251. casadi/include/highs/qpsolver/feasibility_highs.hpp +270 -0
  252. casadi/include/highs/qpsolver/gradient.hpp +39 -0
  253. casadi/include/highs/qpsolver/instance.hpp +63 -0
  254. casadi/include/highs/qpsolver/matrix.hpp +335 -0
  255. casadi/include/highs/qpsolver/pricing.hpp +15 -0
  256. casadi/include/highs/qpsolver/qpconst.hpp +27 -0
  257. casadi/include/highs/qpsolver/{vector.hpp → qpvector.hpp} +25 -25
  258. casadi/include/highs/qpsolver/quass.hpp +1 -1
  259. casadi/include/highs/qpsolver/ratiotest.hpp +19 -0
  260. casadi/include/highs/qpsolver/runtime.hpp +38 -0
  261. casadi/include/highs/qpsolver/settings.hpp +57 -0
  262. casadi/include/highs/qpsolver/snippets.hpp +29 -0
  263. casadi/include/highs/qpsolver/statistics.hpp +23 -0
  264. casadi/include/highs/qpsolver/steepestedgepricing.hpp +167 -0
  265. casadi/include/highs/simplex/HApp.h +1 -1
  266. casadi/include/highs/simplex/HEkk.h +52 -18
  267. casadi/include/highs/simplex/HEkkDual.h +1 -1
  268. casadi/include/highs/simplex/HEkkDualRHS.h +6 -7
  269. casadi/include/highs/simplex/HEkkDualRow.h +2 -2
  270. casadi/include/highs/simplex/HEkkPrimal.h +6 -1
  271. casadi/include/highs/simplex/HSimplex.h +1 -3
  272. casadi/include/highs/simplex/HSimplexDebug.h +1 -1
  273. casadi/include/highs/simplex/HSimplexNla.h +1 -1
  274. casadi/include/highs/simplex/HSimplexReport.h +1 -1
  275. casadi/include/highs/simplex/HighsSimplexAnalysis.h +228 -100
  276. casadi/include/highs/simplex/SimplexConst.h +1 -1
  277. casadi/include/highs/simplex/SimplexStruct.h +2 -2
  278. casadi/include/highs/simplex/SimplexTimer.h +1 -1
  279. casadi/include/highs/test/DevKkt.h +1 -1
  280. casadi/include/highs/test/KktCh2.h +1 -1
  281. casadi/include/highs/util/FactorTimer.h +1 -1
  282. casadi/include/highs/util/HFactor.h +35 -6
  283. casadi/include/highs/util/HFactorConst.h +1 -1
  284. casadi/include/highs/util/HFactorDebug.h +1 -1
  285. casadi/include/highs/util/HSet.h +1 -1
  286. casadi/include/highs/util/HVector.h +1 -1
  287. casadi/include/highs/util/HVectorBase.h +1 -1
  288. casadi/include/highs/util/HighsCDouble.h +3 -3
  289. casadi/include/highs/util/HighsComponent.h +1 -1
  290. casadi/include/highs/util/HighsDataStack.h +4 -4
  291. casadi/include/highs/util/HighsDisjointSets.h +1 -1
  292. casadi/include/highs/util/HighsHash.h +28 -21
  293. casadi/include/highs/util/HighsHashTree.h +63 -63
  294. casadi/include/highs/util/HighsInt.h +1 -1
  295. casadi/include/highs/util/HighsIntegers.h +8 -9
  296. casadi/include/highs/util/HighsLinearSumBounds.h +1 -1
  297. casadi/include/highs/util/HighsMatrixPic.h +1 -1
  298. casadi/include/highs/util/HighsMatrixSlice.h +9 -6
  299. casadi/include/highs/util/HighsMatrixUtils.h +1 -1
  300. casadi/include/highs/util/HighsMemoryAllocation.h +55 -0
  301. casadi/include/highs/util/HighsRandom.h +27 -15
  302. casadi/include/highs/util/HighsRbTree.h +2 -2
  303. casadi/include/highs/util/HighsSort.h +7 -7
  304. casadi/include/highs/util/HighsSparseMatrix.h +5 -2
  305. casadi/include/highs/util/HighsSparseVectorSum.h +2 -2
  306. casadi/include/highs/util/HighsSplay.h +1 -1
  307. casadi/include/highs/util/HighsTimer.h +18 -9
  308. casadi/include/highs/util/HighsUtils.h +15 -8
  309. casadi/include/highs/util/stringutil.h +9 -4
  310. casadi/include/highs/zstr/strict_fstream.hpp +237 -0
  311. casadi/include/highs/zstr/zstr.hpp +472 -0
  312. casadi/include/highs_export.h +43 -0
  313. casadi/include/licenses/daqp-external/LICENSE +21 -0
  314. casadi/include/licenses/{alpaqa-external/LICENSE → fatrop-external/LICENSE.txt} +2 -2
  315. casadi/include/licenses/fatrop-external/external/blasfeo/LICENSE.txt +26 -0
  316. casadi/include/licenses/fatrop-external/external/pybind11/LICENSE +29 -0
  317. casadi/include/licenses/fatrop-external/misc/license_header.txt +17 -0
  318. casadi/include/licenses/highs-external/{LICENSE → LICENSE.txt} +1 -1
  319. casadi/include/osqp/constants.h +2 -3
  320. casadi/include/osqp/version.h +9 -0
  321. casadi/include/sleqp/defs.h +4 -4
  322. casadi/include/sleqp/export.h +1 -0
  323. casadi/lib/cmake/tinyxml2/tinyxml2-config-version.cmake +0 -5
  324. casadi/lib/cmake/tinyxml2/tinyxml2-static-targets.cmake +10 -6
  325. casadi/lib/libtinyxml2.a +0 -0
  326. casadi/lib/pkgconfig/tinyxml2.pc +1 -1
  327. casadi/libCbc.3.10.11.dylib +0 -0
  328. casadi/libCbc.3.dylib +0 -0
  329. casadi/libCbc.dylib +0 -0
  330. casadi/libCbc.la +2 -2
  331. casadi/libCbcSolver.3.10.11.dylib +0 -0
  332. casadi/libCbcSolver.3.dylib +0 -0
  333. casadi/libCbcSolver.dylib +0 -0
  334. casadi/libCbcSolver.la +2 -2
  335. casadi/libCgl.1.10.8.dylib +0 -0
  336. casadi/libCgl.1.dylib +0 -0
  337. casadi/libCgl.dylib +0 -0
  338. casadi/libCgl.la +2 -2
  339. casadi/libClp.1.14.9.dylib +0 -0
  340. casadi/libClp.1.dylib +0 -0
  341. casadi/libClp.dylib +0 -0
  342. casadi/libClp.la +2 -2
  343. casadi/libClpSolver.1.14.9.dylib +0 -0
  344. casadi/libClpSolver.1.dylib +0 -0
  345. casadi/libClpSolver.dylib +0 -0
  346. casadi/libClpSolver.la +2 -2
  347. casadi/libCoinUtils.3.11.10.dylib +0 -0
  348. casadi/libCoinUtils.3.dylib +0 -0
  349. casadi/libCoinUtils.dylib +0 -0
  350. casadi/libCoinUtils.la +1 -1
  351. casadi/libOsi.1.13.9.dylib +0 -0
  352. casadi/libOsi.1.dylib +0 -0
  353. casadi/libOsi.dylib +0 -0
  354. casadi/libOsi.la +2 -2
  355. casadi/libOsiCbc.3.10.11.dylib +0 -0
  356. casadi/libOsiCbc.3.dylib +0 -0
  357. casadi/libOsiCbc.dylib +0 -0
  358. casadi/libOsiCbc.la +2 -2
  359. casadi/libOsiClp.1.14.9.dylib +0 -0
  360. casadi/libOsiClp.1.dylib +0 -0
  361. casadi/libOsiClp.dylib +0 -0
  362. casadi/libOsiClp.la +2 -2
  363. casadi/libOsiCommonTests.1.13.9.dylib +0 -0
  364. casadi/libOsiCommonTests.1.dylib +0 -0
  365. casadi/libOsiCommonTests.dylib +0 -0
  366. casadi/libOsiCommonTests.la +2 -2
  367. casadi/libblasfeo.dylib +0 -0
  368. casadi/libbonmin.4.8.9.dylib +0 -0
  369. casadi/libbonmin.4.dylib +0 -0
  370. casadi/libbonmin.dylib +0 -0
  371. casadi/libbonmin.la +2 -2
  372. casadi/libc++.1.0.dylib +0 -0
  373. casadi/libcasadi.3.7.dylib +0 -0
  374. casadi/libcasadi.dylib +0 -0
  375. casadi/libcasadi_conic_cbc.3.7.dylib +0 -0
  376. casadi/libcasadi_conic_cbc.dylib +0 -0
  377. casadi/libcasadi_conic_clp.3.7.dylib +0 -0
  378. casadi/libcasadi_conic_clp.dylib +0 -0
  379. casadi/libcasadi_conic_cplex.3.7.dylib +0 -0
  380. casadi/libcasadi_conic_cplex.dylib +0 -0
  381. casadi/libcasadi_conic_daqp.3.7.dylib +0 -0
  382. casadi/libcasadi_conic_daqp.dylib +0 -0
  383. casadi/libcasadi_conic_fatrop.3.7.dylib +0 -0
  384. casadi/libcasadi_conic_fatrop.dylib +0 -0
  385. casadi/libcasadi_conic_gurobi.3.7.dylib +0 -0
  386. casadi/libcasadi_conic_gurobi.dylib +0 -0
  387. casadi/libcasadi_conic_highs.3.7.dylib +0 -0
  388. casadi/libcasadi_conic_highs.dylib +0 -0
  389. casadi/libcasadi_conic_ipqp.3.7.dylib +0 -0
  390. casadi/libcasadi_conic_ipqp.dylib +0 -0
  391. casadi/libcasadi_conic_nlpsol.3.7.dylib +0 -0
  392. casadi/libcasadi_conic_nlpsol.dylib +0 -0
  393. casadi/libcasadi_conic_osqp.3.7.dylib +0 -0
  394. casadi/libcasadi_conic_osqp.dylib +0 -0
  395. casadi/libcasadi_conic_proxqp.3.7.dylib +0 -0
  396. casadi/libcasadi_conic_proxqp.dylib +0 -0
  397. casadi/libcasadi_conic_qpoases.3.7.dylib +0 -0
  398. casadi/libcasadi_conic_qpoases.dylib +0 -0
  399. casadi/libcasadi_conic_qrqp.3.7.dylib +0 -0
  400. casadi/libcasadi_conic_qrqp.dylib +0 -0
  401. casadi/libcasadi_conic_superscs.3.7.dylib +0 -0
  402. casadi/libcasadi_conic_superscs.dylib +0 -0
  403. casadi/libcasadi_importer_shell.3.7.dylib +0 -0
  404. casadi/libcasadi_importer_shell.dylib +0 -0
  405. casadi/libcasadi_integrator_collocation.3.7.dylib +0 -0
  406. casadi/libcasadi_integrator_collocation.dylib +0 -0
  407. casadi/libcasadi_integrator_cvodes.3.7.dylib +0 -0
  408. casadi/libcasadi_integrator_cvodes.dylib +0 -0
  409. casadi/libcasadi_integrator_idas.3.7.dylib +0 -0
  410. casadi/libcasadi_integrator_idas.dylib +0 -0
  411. casadi/libcasadi_integrator_rk.3.7.dylib +0 -0
  412. casadi/libcasadi_integrator_rk.dylib +0 -0
  413. casadi/libcasadi_interpolant_bspline.3.7.dylib +0 -0
  414. casadi/libcasadi_interpolant_bspline.dylib +0 -0
  415. casadi/libcasadi_interpolant_linear.3.7.dylib +0 -0
  416. casadi/libcasadi_interpolant_linear.dylib +0 -0
  417. casadi/libcasadi_linsol_csparse.3.7.dylib +0 -0
  418. casadi/libcasadi_linsol_csparse.dylib +0 -0
  419. casadi/libcasadi_linsol_csparsecholesky.3.7.dylib +0 -0
  420. casadi/libcasadi_linsol_csparsecholesky.dylib +0 -0
  421. casadi/libcasadi_linsol_lapacklu.3.7.dylib +0 -0
  422. casadi/libcasadi_linsol_lapacklu.dylib +0 -0
  423. casadi/libcasadi_linsol_lapackqr.3.7.dylib +0 -0
  424. casadi/libcasadi_linsol_lapackqr.dylib +0 -0
  425. casadi/libcasadi_linsol_ldl.3.7.dylib +0 -0
  426. casadi/libcasadi_linsol_ldl.dylib +0 -0
  427. casadi/libcasadi_linsol_lsqr.3.7.dylib +0 -0
  428. casadi/libcasadi_linsol_lsqr.dylib +0 -0
  429. casadi/libcasadi_linsol_ma27.3.7.dylib +0 -0
  430. casadi/libcasadi_linsol_ma27.dylib +0 -0
  431. casadi/libcasadi_linsol_mumps.3.7.dylib +0 -0
  432. casadi/libcasadi_linsol_mumps.dylib +0 -0
  433. casadi/libcasadi_linsol_qr.3.7.dylib +0 -0
  434. casadi/libcasadi_linsol_qr.dylib +0 -0
  435. casadi/libcasadi_linsol_symbolicqr.3.7.dylib +0 -0
  436. casadi/libcasadi_linsol_symbolicqr.dylib +0 -0
  437. casadi/libcasadi_linsol_tridiag.3.7.dylib +0 -0
  438. casadi/libcasadi_linsol_tridiag.dylib +0 -0
  439. casadi/libcasadi_nlpsol_ampl.3.7.dylib +0 -0
  440. casadi/libcasadi_nlpsol_ampl.dylib +0 -0
  441. casadi/libcasadi_nlpsol_blocksqp.3.7.dylib +0 -0
  442. casadi/libcasadi_nlpsol_blocksqp.dylib +0 -0
  443. casadi/libcasadi_nlpsol_bonmin.3.7.dylib +0 -0
  444. casadi/libcasadi_nlpsol_bonmin.dylib +0 -0
  445. casadi/libcasadi_nlpsol_fatrop.3.7.dylib +0 -0
  446. casadi/libcasadi_nlpsol_fatrop.dylib +0 -0
  447. casadi/libcasadi_nlpsol_feasiblesqpmethod.3.7.dylib +0 -0
  448. casadi/libcasadi_nlpsol_feasiblesqpmethod.dylib +0 -0
  449. casadi/libcasadi_nlpsol_ipopt.3.7.dylib +0 -0
  450. casadi/libcasadi_nlpsol_ipopt.dylib +0 -0
  451. casadi/libcasadi_nlpsol_knitro.3.7.dylib +0 -0
  452. casadi/libcasadi_nlpsol_knitro.dylib +0 -0
  453. casadi/libcasadi_nlpsol_madnlp.3.7.dylib +0 -0
  454. casadi/libcasadi_nlpsol_madnlp.dylib +0 -0
  455. casadi/libcasadi_nlpsol_qrsqp.3.7.dylib +0 -0
  456. casadi/libcasadi_nlpsol_qrsqp.dylib +0 -0
  457. casadi/libcasadi_nlpsol_scpgen.3.7.dylib +0 -0
  458. casadi/libcasadi_nlpsol_scpgen.dylib +0 -0
  459. casadi/libcasadi_nlpsol_sleqp.3.7.dylib +0 -0
  460. casadi/libcasadi_nlpsol_sleqp.dylib +0 -0
  461. casadi/libcasadi_nlpsol_snopt.3.7.dylib +0 -0
  462. casadi/libcasadi_nlpsol_snopt.dylib +0 -0
  463. casadi/libcasadi_nlpsol_sqpmethod.3.7.dylib +0 -0
  464. casadi/libcasadi_nlpsol_sqpmethod.dylib +0 -0
  465. casadi/libcasadi_rootfinder_fast_newton.3.7.dylib +0 -0
  466. casadi/libcasadi_rootfinder_fast_newton.dylib +0 -0
  467. casadi/libcasadi_rootfinder_kinsol.3.7.dylib +0 -0
  468. casadi/libcasadi_rootfinder_kinsol.dylib +0 -0
  469. casadi/libcasadi_rootfinder_newton.3.7.dylib +0 -0
  470. casadi/libcasadi_rootfinder_newton.dylib +0 -0
  471. casadi/libcasadi_rootfinder_nlpsol.3.7.dylib +0 -0
  472. casadi/libcasadi_rootfinder_nlpsol.dylib +0 -0
  473. casadi/libcasadi_sundials_common.3.7.dylib +0 -0
  474. casadi/libcasadi_sundials_common.dylib +0 -0
  475. casadi/libcasadi_xmlfile_tinyxml.3.7.dylib +0 -0
  476. casadi/libcasadi_xmlfile_tinyxml.dylib +0 -0
  477. casadi/libcoinmetis.2.dylib +0 -0
  478. casadi/libcoinmetis.dylib +0 -0
  479. casadi/libcoinmetis.la +1 -1
  480. casadi/libcoinmumps.3.dylib +0 -0
  481. casadi/libcoinmumps.dylib +0 -0
  482. casadi/libcoinmumps.la +2 -2
  483. casadi/libcplex_adaptor.dylib +0 -0
  484. casadi/{libamd.3.0.3.dylib → libdaqp.dylib} +0 -0
  485. casadi/libdaqpstat.a +0 -0
  486. casadi/libfatrop.dylib +0 -0
  487. casadi/libgcc_s.1.1.dylib +0 -0
  488. casadi/libgfortran.5.dylib +0 -0
  489. casadi/libgurobi_adaptor.dylib +0 -0
  490. casadi/libhighs.1.7.dylib +0 -0
  491. casadi/libhighs.1.dylib +0 -0
  492. casadi/libhighs.dylib +0 -0
  493. casadi/libindirect.a +0 -0
  494. casadi/libipopt.3.dylib +0 -0
  495. casadi/libipopt.dylib +0 -0
  496. casadi/libipopt.la +2 -2
  497. casadi/liblinsys.a +0 -0
  498. casadi/{libsuitesparseconfig.7.0.1.dylib → libmatlab_ipc.dylib} +0 -0
  499. casadi/libosqp.a +0 -0
  500. casadi/libosqp.dylib +0 -0
  501. casadi/libqdldl.a +0 -0
  502. casadi/libqdldl.dylib +0 -0
  503. casadi/libquadmath.0.dylib +0 -0
  504. casadi/libsipopt.3.dylib +0 -0
  505. casadi/libsipopt.dylib +0 -0
  506. casadi/libsipopt.la +2 -2
  507. casadi/libsleqp.1.0.1.dylib +0 -0
  508. casadi/libsleqp.dylib +0 -0
  509. casadi/libsuperscs.a +0 -0
  510. casadi/libtrlib.0.4.dylib +0 -0
  511. casadi/libtrlib.dylib +0 -0
  512. casadi/libz.1.2.13.dylib +0 -0
  513. casadi/pkgconfig/bonmin.pc +1 -1
  514. casadi/pkgconfig/casadi.pc +5 -5
  515. casadi/pkgconfig/cbc.pc +1 -1
  516. casadi/pkgconfig/cgl.pc +1 -1
  517. casadi/pkgconfig/clp.pc +1 -1
  518. casadi/pkgconfig/coinmetis.pc +1 -1
  519. casadi/pkgconfig/coinmumps.pc +2 -2
  520. casadi/pkgconfig/coinutils.pc +2 -2
  521. casadi/pkgconfig/highs.pc +4 -4
  522. casadi/pkgconfig/ipopt.pc +2 -2
  523. casadi/pkgconfig/osi-cbc.pc +1 -1
  524. casadi/pkgconfig/osi-clp.pc +1 -1
  525. casadi/pkgconfig/osi-unittests.pc +1 -1
  526. casadi/pkgconfig/osi.pc +1 -1
  527. casadi/pkgconfig/sleqp.pc +1 -1
  528. casadi/tools/__init__.py +4 -0
  529. casadi/tools/bounds.py +3 -3
  530. {casadi-3.6.5.dist-info → casadi-3.6.7.dist-info}/METADATA +2 -2
  531. {casadi-3.6.5.dist-info → casadi-3.6.7.dist-info}/RECORD +532 -477
  532. casadi/cmake/alpaqa/alpaqaConfig.cmake +0 -24
  533. casadi/cmake/alpaqa/alpaqaConfigVersion.cmake +0 -70
  534. casadi/cmake/alpaqa/alpaqaTargets-release.cmake +0 -19
  535. casadi/cmake/alpaqa/alpaqaTargets.cmake +0 -116
  536. casadi/include/alpaqa/accelerators/anderson.hpp +0 -133
  537. casadi/include/alpaqa/accelerators/internal/anderson-helpers.hpp +0 -92
  538. casadi/include/alpaqa/accelerators/internal/limited-memory-qr.hpp +0 -295
  539. casadi/include/alpaqa/accelerators/lbfgs.hpp +0 -244
  540. casadi/include/alpaqa/accelerators/steihaugcg.hpp +0 -143
  541. casadi/include/alpaqa/alpaqa.hpp +0 -3
  542. casadi/include/alpaqa/casadi/CasADiControlProblem.hpp +0 -185
  543. casadi/include/alpaqa/casadi/CasADiFunctionWrapper.hpp +0 -104
  544. casadi/include/alpaqa/casadi/CasADiProblem.hpp +0 -102
  545. casadi/include/alpaqa/casadi-loader-export.hpp +0 -15
  546. casadi/include/alpaqa/casadi-ocp-loader-export.hpp +0 -15
  547. casadi/include/alpaqa/config/config.hpp +0 -165
  548. casadi/include/alpaqa/dl/dl-problem.h +0 -476
  549. casadi/include/alpaqa/dl/dl-problem.hpp +0 -301
  550. casadi/include/alpaqa/export.h +0 -42
  551. casadi/include/alpaqa/export.hpp +0 -30
  552. casadi/include/alpaqa/implementation/accelerators/lbfgs.tpp +0 -240
  553. casadi/include/alpaqa/implementation/casadi/CasADiControlProblem.tpp +0 -594
  554. casadi/include/alpaqa/implementation/casadi/CasADiLoader-util.hpp +0 -50
  555. casadi/include/alpaqa/implementation/casadi/CasADiProblem.tpp +0 -425
  556. casadi/include/alpaqa/implementation/inner/directions/panoc/structured-lbfgs.tpp +0 -164
  557. casadi/include/alpaqa/implementation/inner/panoc-helpers.tpp +0 -389
  558. casadi/include/alpaqa/implementation/inner/panoc-ocp.tpp +0 -798
  559. casadi/include/alpaqa/implementation/inner/panoc.tpp +0 -448
  560. casadi/include/alpaqa/implementation/inner/pantr.tpp +0 -474
  561. casadi/include/alpaqa/implementation/inner/zerofpr.tpp +0 -482
  562. casadi/include/alpaqa/implementation/outer/alm.tpp +0 -228
  563. casadi/include/alpaqa/implementation/outer/internal/alm-helpers.tpp +0 -80
  564. casadi/include/alpaqa/implementation/params/params.tpp +0 -158
  565. casadi/include/alpaqa/implementation/problem/ocproblem.tpp +0 -56
  566. casadi/include/alpaqa/implementation/problem/type-erased-problem.tpp +0 -211
  567. casadi/include/alpaqa/implementation/util/io/csv.tpp +0 -120
  568. casadi/include/alpaqa/implementation/util/print.tpp +0 -151
  569. casadi/include/alpaqa/inner/directions/panoc/anderson.hpp +0 -98
  570. casadi/include/alpaqa/inner/directions/panoc/lbfgs.hpp +0 -94
  571. casadi/include/alpaqa/inner/directions/panoc/structured-lbfgs.hpp +0 -146
  572. casadi/include/alpaqa/inner/directions/panoc/structured-newton.hpp +0 -264
  573. casadi/include/alpaqa/inner/directions/panoc-direction-update.hpp +0 -96
  574. casadi/include/alpaqa/inner/directions/panoc-ocp/lqr.hpp +0 -181
  575. casadi/include/alpaqa/inner/directions/panoc-ocp/ocp-vars.hpp +0 -492
  576. casadi/include/alpaqa/inner/directions/pantr/newton-tr.hpp +0 -192
  577. casadi/include/alpaqa/inner/directions/pantr/pantr-direction.hpp +0 -99
  578. casadi/include/alpaqa/inner/inner-solve-options.hpp +0 -30
  579. casadi/include/alpaqa/inner/internal/lipschitz.hpp +0 -27
  580. casadi/include/alpaqa/inner/internal/panoc-helpers.hpp +0 -10
  581. casadi/include/alpaqa/inner/internal/panoc-stop-crit.hpp +0 -124
  582. casadi/include/alpaqa/inner/internal/solverstatus.hpp +0 -42
  583. casadi/include/alpaqa/inner/panoc-ocp.hpp +0 -302
  584. casadi/include/alpaqa/inner/panoc.hpp +0 -274
  585. casadi/include/alpaqa/inner/pantr.hpp +0 -284
  586. casadi/include/alpaqa/inner/zerofpr.hpp +0 -274
  587. casadi/include/alpaqa/ipopt/ipopt-adapter.hpp +0 -81
  588. casadi/include/alpaqa/ipopt/ipopt-enums.hpp +0 -35
  589. casadi/include/alpaqa/lbfgsb/lbfgsb-adapter.hpp +0 -111
  590. casadi/include/alpaqa/newton-tr-pantr-alm.hpp +0 -27
  591. casadi/include/alpaqa/outer/alm.hpp +0 -190
  592. casadi/include/alpaqa/outer/internal/alm-helpers.hpp +0 -10
  593. casadi/include/alpaqa/panoc-alm.hpp +0 -27
  594. casadi/include/alpaqa/panoc-anderson-alm.hpp +0 -27
  595. casadi/include/alpaqa/params/params.hpp +0 -60
  596. casadi/include/alpaqa/problem/box-constr-problem.hpp +0 -220
  597. casadi/include/alpaqa/problem/box.hpp +0 -82
  598. casadi/include/alpaqa/problem/functional-problem.hpp +0 -73
  599. casadi/include/alpaqa/problem/kkt-error.hpp +0 -43
  600. casadi/include/alpaqa/problem/ocproblem-counters.hpp +0 -116
  601. casadi/include/alpaqa/problem/ocproblem.hpp +0 -662
  602. casadi/include/alpaqa/problem/problem-counters.hpp +0 -116
  603. casadi/include/alpaqa/problem/problem-with-counters.hpp +0 -141
  604. casadi/include/alpaqa/problem/type-erased-problem.hpp +0 -874
  605. casadi/include/alpaqa/problem/unconstr-problem.hpp +0 -37
  606. casadi/include/alpaqa/structured-panoc-alm.hpp +0 -27
  607. casadi/include/alpaqa/structured-zerofpr-alm.hpp +0 -27
  608. casadi/include/alpaqa/util/alloc-check.hpp +0 -23
  609. casadi/include/alpaqa/util/atomic-stop-signal.hpp +0 -24
  610. casadi/include/alpaqa/util/check-dim.hpp +0 -64
  611. casadi/include/alpaqa/util/copyable_unique_ptr.hpp +0 -32
  612. casadi/include/alpaqa/util/demangled-typename.hpp +0 -9
  613. casadi/include/alpaqa/util/enumerate.hpp +0 -70
  614. casadi/include/alpaqa/util/float.hpp +0 -25
  615. casadi/include/alpaqa/util/index-set.hpp +0 -97
  616. casadi/include/alpaqa/util/io/csv.hpp +0 -43
  617. casadi/include/alpaqa/util/iter-adapter.hpp +0 -68
  618. casadi/include/alpaqa/util/max-history.hpp +0 -47
  619. casadi/include/alpaqa/util/noop-delete.hpp +0 -15
  620. casadi/include/alpaqa/util/not-implemented.hpp +0 -12
  621. casadi/include/alpaqa/util/print.hpp +0 -78
  622. casadi/include/alpaqa/util/quadmath/quadmath-print.hpp +0 -20
  623. casadi/include/alpaqa/util/quadmath/quadmath.hpp +0 -137
  624. casadi/include/alpaqa/util/required-method.hpp +0 -29
  625. casadi/include/alpaqa/util/ringbuffer.hpp +0 -212
  626. casadi/include/alpaqa/util/set-intersection.hpp +0 -129
  627. casadi/include/alpaqa/util/sparse-ops.hpp +0 -164
  628. casadi/include/alpaqa/util/timed.hpp +0 -22
  629. casadi/include/alpaqa/util/type-erasure.hpp +0 -568
  630. casadi/include/alpaqa/util/type-traits.hpp +0 -58
  631. casadi/include/alpaqa/zerofpr-alm.hpp +0 -27
  632. casadi/include/alpaqa/zerofpr-anderson-alm.hpp +0 -27
  633. casadi/include/alpaqa-version.h +0 -8
  634. casadi/include/highs/fortran/highs_fortran_api.mod +0 -0
  635. casadi/include/licenses/alpaqa-external/src/thirdparty/lbfgsb/Lbfgsb.3.0/License.txt +0 -71
  636. casadi/libFortranHighs.dylib +0 -0
  637. casadi/libalpaqa.1.0.0.dylib +0 -0
  638. casadi/libalpaqa.dylib +0 -0
  639. casadi/libcamd.3.0.3.dylib +0 -0
  640. casadi/libcasadi_nlpsol_alpaqa.3.7.dylib +0 -0
  641. casadi/libcasadi_nlpsol_alpaqa.dylib +0 -0
  642. casadi/libccolamd.3.0.3.dylib +0 -0
  643. casadi/libcholmod.4.0.3.dylib +0 -0
  644. casadi/libcholmod_cuda.4.0.3.dylib +0 -0
  645. casadi/libcolamd.3.0.3.dylib +0 -0
  646. casadi/libhighs.1.6.0.dylib +0 -0
  647. casadi/libhighs.1.6.dylib +0 -0
  648. casadi/libumfpack.6.1.0.dylib +0 -0
  649. {casadi-3.6.5.dist-info → casadi-3.6.7.dist-info}/WHEEL +0 -0
@@ -1,594 +0,0 @@
1
- #pragma once
2
-
3
- #include <alpaqa/casadi/CasADiControlProblem.hpp>
4
- #include <alpaqa/casadi/CasADiFunctionWrapper.hpp>
5
- #include <alpaqa/config/config.hpp>
6
- #include <alpaqa/util/io/csv.hpp>
7
- #include <alpaqa/util/not-implemented.hpp>
8
- #include <alpaqa/util/sparse-ops.hpp>
9
- #include "CasADiLoader-util.hpp"
10
-
11
- #include <Eigen/Sparse>
12
- #include <casadi/core/external.hpp>
13
-
14
- #include <memory>
15
- #include <optional>
16
- #include <stdexcept>
17
- #include <type_traits>
18
-
19
- namespace alpaqa {
20
-
21
- namespace fs = std::filesystem;
22
-
23
- namespace casadi_loader {
24
-
25
- using namespace alpaqa::casadi_loader;
26
-
27
- template <Config Conf>
28
- struct CasADiControlFunctionsWithParam {
29
- USING_ALPAQA_CONFIG(Conf);
30
-
31
- static constexpr bool WithParam = true;
32
- CasADiFunctionEvaluator<Conf, 2 + WithParam, 1> f;
33
- CasADiFunctionEvaluator<Conf, 2 + WithParam, 1> jac_f;
34
- CasADiFunctionEvaluator<Conf, 3 + WithParam, 1> grad_f_prod;
35
- CasADiFunctionEvaluator<Conf, 2 + WithParam, 1> h;
36
- CasADiFunctionEvaluator<Conf, 1 + WithParam, 1> h_N;
37
- CasADiFunctionEvaluator<Conf, 1 + WithParam, 1> l;
38
- CasADiFunctionEvaluator<Conf, 1 + WithParam, 1> l_N;
39
-
40
- CasADiFunctionEvaluator<Conf, 2 + WithParam, 1> qr;
41
- CasADiFunctionEvaluator<Conf, 2 + WithParam, 1> q_N;
42
- CasADiFunctionEvaluator<Conf, 2 + WithParam, 1> Q;
43
- CasADiFunctionEvaluator<Conf, 2 + WithParam, 1> Q_N;
44
- CasADiFunctionEvaluator<Conf, 2 + WithParam, 1> R;
45
- CasADiFunctionEvaluator<Conf, 2 + WithParam, 1> S;
46
-
47
- CasADiFunctionEvaluator<Conf, 1 + WithParam, 1> c;
48
- CasADiFunctionEvaluator<Conf, 2 + WithParam, 1> grad_c_prod;
49
- CasADiFunctionEvaluator<Conf, 2 + WithParam, 1> gn_hess_c;
50
-
51
- CasADiFunctionEvaluator<Conf, 1 + WithParam, 1> c_N;
52
- CasADiFunctionEvaluator<Conf, 2 + WithParam, 1> grad_c_prod_N;
53
- CasADiFunctionEvaluator<Conf, 2 + WithParam, 1> gn_hess_c_N;
54
- };
55
-
56
- } // namespace casadi_loader
57
-
58
- template <Config Conf>
59
- CasADiControlProblem<Conf>::CasADiControlProblem(const std::string &so_name,
60
- length_t N)
61
- : N{N} {
62
- length_t p;
63
- using namespace casadi_loader;
64
- auto load_f = [&]() -> CasADiFunctionEvaluator<Conf, 3, 1> {
65
- casadi::Function ffun = casadi::external("f", so_name);
66
- using namespace std::literals::string_literals;
67
- if (ffun.n_in() != 3)
68
- throw std::invalid_argument(
69
- "Invalid number of input arguments: got "s +
70
- std::to_string(ffun.n_in()) + ", should be 3.");
71
- if (ffun.n_out() != 1)
72
- throw std::invalid_argument(
73
- "Invalid number of output arguments: got "s +
74
- std::to_string(ffun.n_in()) + ", should be 1.");
75
- nx = static_cast<length_t>(ffun.size1_in(0));
76
- nu = static_cast<length_t>(ffun.size1_in(1));
77
- p = static_cast<length_t>(ffun.size1_in(2));
78
- CasADiFunctionEvaluator<Conf, 3, 1> f{std::move(ffun)};
79
- f.validate_dimensions({dim(nx, 1), dim(nu, 1), dim(p, 1)},
80
- {dim(nx, 1)});
81
- return f;
82
- };
83
- auto load_h = [&]() -> CasADiFunctionEvaluator<Conf, 3, 1> {
84
- casadi::Function hfun = casadi::external("h", so_name);
85
- using namespace std::literals::string_literals;
86
- if (hfun.n_in() != 3)
87
- throw std::invalid_argument(
88
- "Invalid number of input arguments: got "s +
89
- std::to_string(hfun.n_in()) + ", should be 3.");
90
- if (hfun.n_out() != 1)
91
- throw std::invalid_argument(
92
- "Invalid number of output arguments: got "s +
93
- std::to_string(hfun.n_in()) + ", should be 1.");
94
- nh = static_cast<length_t>(hfun.size1_out(0));
95
- CasADiFunctionEvaluator<Conf, 3, 1> h{std::move(hfun)};
96
- h.validate_dimensions({dim(nx, 1), dim(nu, 1), dim(p, 1)},
97
- {dim(nh, 1)});
98
- return h;
99
- };
100
- auto load_h_N = [&]() -> CasADiFunctionEvaluator<Conf, 2, 1> {
101
- casadi::Function hfun = casadi::external("h_N", so_name);
102
- using namespace std::literals::string_literals;
103
- if (hfun.n_in() != 2)
104
- throw std::invalid_argument(
105
- "Invalid number of input arguments: got "s +
106
- std::to_string(hfun.n_in()) + ", should be 2.");
107
- if (hfun.n_out() != 1)
108
- throw std::invalid_argument(
109
- "Invalid number of output arguments: got "s +
110
- std::to_string(hfun.n_in()) + ", should be 1.");
111
- nh_N = static_cast<length_t>(hfun.size1_out(0));
112
- CasADiFunctionEvaluator<Conf, 2, 1> h{std::move(hfun)};
113
- h.validate_dimensions({dim(nx, 1), dim(p, 1)}, {dim(nh_N, 1)});
114
- return h;
115
- };
116
- auto load_c = [&]() -> CasADiFunctionEvaluator<Conf, 2, 1> {
117
- casadi::Function cfun = casadi::external("c", so_name);
118
- using namespace std::literals::string_literals;
119
- if (cfun.n_in() != 2)
120
- throw std::invalid_argument(
121
- "Invalid number of input arguments: got "s +
122
- std::to_string(cfun.n_in()) + ", should be 2.");
123
- if (cfun.n_out() != 1)
124
- throw std::invalid_argument(
125
- "Invalid number of output arguments: got "s +
126
- std::to_string(cfun.n_in()) + ", should be 1.");
127
- nc = static_cast<length_t>(cfun.size1_out(0));
128
- CasADiFunctionEvaluator<Conf, 2, 1> c{std::move(cfun)};
129
- c.validate_dimensions({dim(nx, 1), dim(p, 1)}, {dim(nc, 1)});
130
- return c;
131
- };
132
- auto load_c_N = [&]() -> CasADiFunctionEvaluator<Conf, 2, 1> {
133
- casadi::Function cfun = casadi::external("c_N", so_name);
134
- using namespace std::literals::string_literals;
135
- if (cfun.n_in() != 2)
136
- throw std::invalid_argument(
137
- "Invalid number of input arguments: got "s +
138
- std::to_string(cfun.n_in()) + ", should be 2.");
139
- if (cfun.n_out() != 1)
140
- throw std::invalid_argument(
141
- "Invalid number of output arguments: got "s +
142
- std::to_string(cfun.n_in()) + ", should be 1.");
143
- nc_N = static_cast<length_t>(cfun.size1_out(0));
144
- CasADiFunctionEvaluator<Conf, 2, 1> c{std::move(cfun)};
145
- c.validate_dimensions({dim(nx, 1), dim(p, 1)}, {dim(nc_N, 1)});
146
- return c;
147
- };
148
- // Load the functions "f", "h", and "c" to determine the unknown dimensions.
149
- auto f = wrap_load(so_name, "f", load_f);
150
- auto h = wrap_load(so_name, "h", load_h);
151
- auto h_N = wrap_load(so_name, "h_N", load_h_N);
152
- auto c = wrap_load(so_name, "c", load_c);
153
- auto c_N = wrap_load(so_name, "c_N", load_c_N);
154
-
155
- this->x_init = vec::Constant(nx, alpaqa::NaN<Conf>);
156
- this->param = vec::Constant(p, alpaqa::NaN<Conf>);
157
- this->U = Box{nu};
158
- this->D = Box{nc};
159
- this->D_N = Box{nc_N};
160
-
161
- impl = std::make_unique<CasADiControlFunctionsWithParam<Conf>>(
162
- CasADiControlFunctionsWithParam<Conf>{
163
- .f = std::move(f),
164
- .jac_f = wrapped_load<CasADiFunctionEvaluator<Conf, 3, 1>>(
165
- so_name, "jacobian_f", dims(nx, nu, p), dims(dim(nx, nx + nu))),
166
- .grad_f_prod = wrapped_load<CasADiFunctionEvaluator<Conf, 4, 1>>(
167
- so_name, "grad_f_prod", dims(nx, nu, p, nx), dims(nx + nu)),
168
- .h = std::move(h),
169
- .h_N = std::move(h_N),
170
- .l = wrapped_load<CasADiFunctionEvaluator<Conf, 2, 1>>(
171
- so_name, "l", dims(nh, p), dims(1)),
172
- .l_N = wrapped_load<CasADiFunctionEvaluator<Conf, 2, 1>>(
173
- so_name, "l_N", dims(nh_N, p), dims(1)),
174
- .qr = wrapped_load<CasADiFunctionEvaluator<Conf, 3, 1>>(
175
- so_name, "qr", dims(nx + nu, nh, p), dims(nx + nu)),
176
- .q_N = wrapped_load<CasADiFunctionEvaluator<Conf, 3, 1>>(
177
- so_name, "q_N", dims(nx, nh_N, p), dims(nx)),
178
- .Q = wrapped_load<CasADiFunctionEvaluator<Conf, 3, 1>>(
179
- so_name, "Q", dims(nx + nu, nh, p), dims(dim{nx, nx})),
180
- .Q_N = wrapped_load<CasADiFunctionEvaluator<Conf, 3, 1>>(
181
- so_name, "Q_N", dims(nx, nh_N, p), dims(dim{nx, nx})),
182
- .R = wrapped_load<CasADiFunctionEvaluator<Conf, 3, 1>>(
183
- so_name, "R", dims(nx + nu, nh, p), dims(dim{nu, nu})),
184
- .S = wrapped_load<CasADiFunctionEvaluator<Conf, 3, 1>>(
185
- so_name, "S", dims(nx + nu, nh, p), dims(dim{nu, nx})),
186
- .c = std::move(c),
187
- .grad_c_prod = wrapped_load<CasADiFunctionEvaluator<Conf, 3, 1>>(
188
- so_name, "grad_c_prod", dims(nx, p, nc), dims(nx)),
189
- .gn_hess_c = wrapped_load<CasADiFunctionEvaluator<Conf, 3, 1>>(
190
- so_name, "gn_hess_c", dims(nx, p, nc), dims(dim{nx, nx})),
191
- .c_N = std::move(c_N),
192
- .grad_c_prod_N = wrapped_load<CasADiFunctionEvaluator<Conf, 3, 1>>(
193
- so_name, "grad_c_prod_N", dims(nx, p, nc_N), dims(nx)),
194
- .gn_hess_c_N = wrapped_load<CasADiFunctionEvaluator<Conf, 3, 1>>(
195
- so_name, "gn_hess_c_N", dims(nx, p, nc_N), dims(dim{nx, nx})),
196
- });
197
-
198
- auto n_work = std::max({
199
- impl->Q.fun.sparsity_out(0).nnz(),
200
- impl->Q_N.fun.sparsity_out(0).nnz(),
201
- impl->gn_hess_c.fun.sparsity_out(0).nnz(),
202
- impl->gn_hess_c_N.fun.sparsity_out(0).nnz(),
203
- });
204
- this->work = vec::Constant(static_cast<length_t>(n_work), NaN<Conf>);
205
-
206
- auto bounds_filepath = fs::path{so_name}.replace_extension("csv");
207
- if (fs::exists(bounds_filepath))
208
- load_numerical_data(bounds_filepath);
209
- }
210
-
211
- template <Config Conf>
212
- void CasADiControlProblem<Conf>::load_numerical_data(
213
- const std::filesystem::path &filepath, char sep) {
214
- std::ifstream data_file{filepath};
215
- if (!data_file)
216
- throw std::runtime_error("Unable to open bounds file \"" +
217
- filepath.string() + '"');
218
- index_t line = 0;
219
- auto wrap_bounds_load = [&](std::string_view name, auto &v) {
220
- try {
221
- ++line;
222
- csv::read_row(data_file, v, sep);
223
- } catch (csv::read_error &e) {
224
- throw std::runtime_error("Unable to read " + std::string(name) +
225
- " from bounds file \"" +
226
- filepath.string() + ':' +
227
- std::to_string(line) + "\": " + e.what());
228
- }
229
- };
230
- wrap_bounds_load("U.lowerbound", this->U.lowerbound);
231
- wrap_bounds_load("U.upperbound", this->U.upperbound);
232
- wrap_bounds_load("D.lowerbound", this->D.lowerbound);
233
- wrap_bounds_load("D.upperbound", this->D.upperbound);
234
- wrap_bounds_load("D_N.lowerbound", this->D_N.lowerbound);
235
- wrap_bounds_load("D_N.upperbound", this->D_N.upperbound);
236
- wrap_bounds_load("x_init", this->x_init);
237
- wrap_bounds_load("param", this->param);
238
- }
239
-
240
- template <Config Conf>
241
- CasADiControlProblem<Conf>::CasADiControlProblem(const CasADiControlProblem &) =
242
- default;
243
- template <Config Conf>
244
- CasADiControlProblem<Conf> &
245
- CasADiControlProblem<Conf>::operator=(const CasADiControlProblem &) = default;
246
-
247
- template <Config Conf>
248
- CasADiControlProblem<Conf>::CasADiControlProblem(
249
- CasADiControlProblem &&) noexcept = default;
250
- template <Config Conf>
251
- CasADiControlProblem<Conf> &CasADiControlProblem<Conf>::operator=(
252
- CasADiControlProblem &&) noexcept = default;
253
-
254
- template <Config Conf>
255
- CasADiControlProblem<Conf>::~CasADiControlProblem() = default;
256
-
257
- template <Config Conf>
258
- void CasADiControlProblem<Conf>::eval_f(index_t, crvec x, crvec u,
259
- rvec fxu) const {
260
- assert(x.size() == nx);
261
- assert(u.size() == nu);
262
- assert(fxu.size() == nx);
263
- impl->f({x.data(), u.data(), param.data()}, {fxu.data()});
264
- }
265
- template <Config Conf>
266
- void CasADiControlProblem<Conf>::eval_jac_f(index_t, crvec x, crvec u,
267
- rmat J_fxu) const {
268
- assert(x.size() == nx);
269
- assert(u.size() == nu);
270
- assert(J_fxu.rows() == nx);
271
- assert(J_fxu.cols() == nx + nu);
272
- impl->jac_f({x.data(), u.data(), param.data()}, {J_fxu.data()});
273
- }
274
- template <Config Conf>
275
- void CasADiControlProblem<Conf>::eval_grad_f_prod(index_t, crvec x, crvec u,
276
- crvec p,
277
- rvec grad_fxu_p) const {
278
- assert(x.size() == nx);
279
- assert(u.size() == nu);
280
- assert(p.size() == nx);
281
- assert(grad_fxu_p.size() == nx + nu);
282
- impl->grad_f_prod({x.data(), u.data(), param.data(), p.data()},
283
- {grad_fxu_p.data()});
284
- }
285
- template <Config Conf>
286
- void CasADiControlProblem<Conf>::eval_h(index_t, crvec x, crvec u,
287
- rvec h) const {
288
- assert(x.size() == nx);
289
- assert(u.size() == nu);
290
- assert(h.size() == nh);
291
- impl->h({x.data(), u.data(), param.data()}, {h.data()});
292
- }
293
- template <Config Conf>
294
- void CasADiControlProblem<Conf>::eval_h_N(crvec x, rvec h) const {
295
- assert(x.size() == nx);
296
- assert(h.size() == nh_N);
297
- impl->h_N({x.data(), param.data()}, {h.data()});
298
- }
299
- template <Config Conf>
300
- auto CasADiControlProblem<Conf>::eval_l(index_t, crvec h) const -> real_t {
301
- assert(h.size() == nh);
302
- real_t l;
303
- impl->l({h.data(), param.data()}, {&l});
304
- return l;
305
- }
306
- template <Config Conf>
307
- auto CasADiControlProblem<Conf>::eval_l_N(crvec h) const -> real_t {
308
- assert(h.size() == nh_N);
309
- real_t l;
310
- impl->l_N({h.data(), param.data()}, {&l});
311
- return l;
312
- }
313
- template <Config Conf>
314
- void CasADiControlProblem<Conf>::eval_qr(index_t, crvec xu, crvec h,
315
- rvec qr) const {
316
- assert(xu.size() == nx + nu);
317
- assert(h.size() == nh);
318
- assert(qr.size() == nx + nu);
319
- impl->qr({xu.data(), h.data(), param.data()}, {qr.data()});
320
- }
321
- template <Config Conf>
322
- void CasADiControlProblem<Conf>::eval_q_N(crvec x, crvec h, rvec q) const {
323
- assert(x.size() == nx);
324
- assert(h.size() == nh_N);
325
- assert(q.size() == nx);
326
- impl->q_N({x.data(), h.data(), param.data()}, {q.data()});
327
- }
328
- template <Config Conf>
329
- void CasADiControlProblem<Conf>::eval_add_Q(index_t, crvec xu, crvec h,
330
- rmat Q) const {
331
- assert(xu.size() == nx + nu);
332
- assert(h.size() == nh);
333
- assert(Q.rows() == nx);
334
- assert(Q.cols() == nx);
335
- impl->Q({xu.data(), h.data(), param.data()}, {work.data()});
336
- using spmat = Eigen::SparseMatrix<real_t, Eigen::ColMajor, casadi_int>;
337
- using cmspmat = Eigen::Map<const spmat>;
338
- auto &&sparse = impl->Q.fun.sparsity_out(0);
339
- if (sparse.is_dense())
340
- Q += cmmat{work.data(), nx, nx};
341
- else
342
- Q += cmspmat{
343
- nx,
344
- nx,
345
- static_cast<length_t>(sparse.nnz()),
346
- sparse.colind(),
347
- sparse.row(),
348
- work.data(),
349
- };
350
- }
351
- template <Config Conf>
352
- void CasADiControlProblem<Conf>::eval_add_Q_N(crvec x, crvec h, rmat Q) const {
353
- assert(x.size() == nx);
354
- assert(h.size() == nh_N);
355
- assert(Q.rows() == nx);
356
- assert(Q.cols() == nx);
357
- impl->Q_N({x.data(), h.data(), param.data()}, {work.data()});
358
- auto &&sparse = impl->Q_N.fun.sparsity_out(0);
359
- using spmat = Eigen::SparseMatrix<real_t, Eigen::ColMajor, casadi_int>;
360
- using cmspmat = Eigen::Map<const spmat>;
361
- if (sparse.is_dense())
362
- Q += cmmat{work.data(), nx, nx};
363
- else
364
- Q += cmspmat{
365
- nx,
366
- nx,
367
- static_cast<length_t>(sparse.nnz()),
368
- sparse.colind(),
369
- sparse.row(),
370
- work.data(),
371
- };
372
- }
373
-
374
- template <Config Conf>
375
- void CasADiControlProblem<Conf>::eval_add_R_masked(index_t, crvec xu, crvec h,
376
- crindexvec mask, rmat R,
377
- rvec work) const {
378
- auto &&sparse = impl->R.fun.sparsity_out(0);
379
- assert(xu.size() == nx + nu);
380
- assert(h.size() == nh);
381
- assert(R.rows() <= nu);
382
- assert(R.cols() <= nu);
383
- assert(R.rows() == mask.size());
384
- assert(R.cols() == mask.size());
385
- assert(work.size() >= static_cast<length_t>(sparse.nnz()));
386
- impl->R({xu.data(), h.data(), param.data()}, {work.data()});
387
- using spmat = Eigen::SparseMatrix<real_t, Eigen::ColMajor, casadi_int>;
388
- using cmspmat = Eigen::Map<const spmat>;
389
- if (sparse.is_dense()) {
390
- cmmat R_full{work.data(), nu, nu};
391
- R += R_full(mask, mask);
392
- } else {
393
- cmspmat R_full{
394
- nu,
395
- nu,
396
- static_cast<length_t>(sparse.nnz()),
397
- sparse.colind(),
398
- sparse.row(),
399
- work.data(),
400
- };
401
- util::sparse_add_masked(R_full, R, mask);
402
- }
403
- }
404
-
405
- template <Config Conf>
406
- void CasADiControlProblem<Conf>::eval_add_S_masked(index_t, crvec xu, crvec h,
407
- crindexvec mask, rmat S,
408
- rvec work) const {
409
- auto &&sparse = impl->S.fun.sparsity_out(0);
410
- assert(xu.size() == nx + nu);
411
- assert(h.size() == nh);
412
- assert(S.rows() <= nu);
413
- assert(S.rows() == mask.size());
414
- assert(S.cols() == nx);
415
- assert(work.size() >= static_cast<length_t>(sparse.nnz()));
416
- impl->S({xu.data(), h.data(), param.data()}, {work.data()});
417
- using spmat = Eigen::SparseMatrix<real_t, Eigen::ColMajor, casadi_int>;
418
- using cmspmat = Eigen::Map<const spmat>;
419
- using Eigen::indexing::all;
420
- if (sparse.is_dense()) {
421
- cmmat S_full{work.data(), nu, nx};
422
- S += S_full(mask, all);
423
- } else {
424
- cmspmat S_full{
425
- nu,
426
- nx,
427
- static_cast<length_t>(sparse.nnz()),
428
- sparse.colind(),
429
- sparse.row(),
430
- work.data(),
431
- };
432
- util::sparse_add_masked_rows(S_full, S, mask);
433
- }
434
- }
435
-
436
- template <Config Conf>
437
- void CasADiControlProblem<Conf>::eval_add_R_prod_masked(index_t, crvec, crvec,
438
- crindexvec mask_J,
439
- crindexvec mask_K,
440
- crvec v, rvec out,
441
- rvec work) const {
442
- auto &&sparse = impl->R.fun.sparsity_out(0);
443
- assert(v.size() == nu);
444
- assert(out.size() == mask_J.size());
445
- assert(work.size() >= static_cast<length_t>(sparse.nnz()));
446
- using spmat = Eigen::SparseMatrix<real_t, Eigen::ColMajor, casadi_int>;
447
- using cmspmat = Eigen::Map<const spmat>;
448
- if (sparse.is_dense()) {
449
- auto R = cmmat{work.data(), nu, nu};
450
- out.noalias() += R(mask_J, mask_K) * v(mask_K);
451
- } else {
452
- cmspmat R{
453
- nu,
454
- nu,
455
- static_cast<length_t>(sparse.nnz()),
456
- sparse.colind(),
457
- sparse.row(),
458
- work.data(),
459
- };
460
- // out += R_full(mask_J,mask_K) * v(mask_K);
461
- util::sparse_matvec_add_masked_rows_cols(R, v, out, mask_J, mask_K);
462
- }
463
- }
464
-
465
- template <Config Conf>
466
- void CasADiControlProblem<Conf>::eval_add_S_prod_masked(index_t, crvec, crvec,
467
- crindexvec mask_K,
468
- crvec v, rvec out,
469
- rvec work) const {
470
- auto &&sparse = impl->S.fun.sparsity_out(0);
471
- assert(v.size() == nu);
472
- assert(out.size() == nx);
473
- assert(work.size() >= static_cast<length_t>(sparse.nnz()));
474
- using spmat = Eigen::SparseMatrix<real_t, Eigen::ColMajor, casadi_int>;
475
- using cmspmat = Eigen::Map<const spmat>;
476
- using Eigen::indexing::all;
477
- if (sparse.is_dense()) {
478
- auto Sᵀ = cmmat{work.data(), nu, nx}.transpose();
479
- out.noalias() += Sᵀ(all, mask_K) * v(mask_K);
480
- } else {
481
- cmspmat S{
482
- nu,
483
- nx,
484
- static_cast<length_t>(sparse.nnz()),
485
- sparse.colind(),
486
- sparse.row(),
487
- work.data(),
488
- };
489
- // out += S(mask_K,:)ᵀ * v(mask_K);
490
- util::sparse_matvec_add_transpose_masked_rows(S, v, out, mask_K);
491
- }
492
- }
493
-
494
- template <Config Conf>
495
- auto CasADiControlProblem<Conf>::get_R_work_size() const -> length_t {
496
- auto &&sparse = impl->R.fun.sparsity_out(0);
497
- return static_cast<length_t>(sparse.nnz());
498
- }
499
-
500
- template <Config Conf>
501
- auto CasADiControlProblem<Conf>::get_S_work_size() const -> length_t {
502
- auto &&sparse = impl->S.fun.sparsity_out(0);
503
- return static_cast<length_t>(sparse.nnz());
504
- }
505
-
506
- template <Config Conf>
507
- void CasADiControlProblem<Conf>::eval_constr(index_t, crvec x, rvec c) const {
508
- if (nc == 0)
509
- return;
510
- assert(x.size() == nx);
511
- assert(c.size() == nc);
512
- impl->c({x.data(), param.data()}, {c.data()});
513
- }
514
-
515
- template <Config Conf>
516
- void CasADiControlProblem<Conf>::eval_grad_constr_prod(index_t, crvec x,
517
- crvec p,
518
- rvec grad_cx_p) const {
519
- assert(x.size() == nx);
520
- assert(p.size() == nc);
521
- assert(grad_cx_p.size() == nx);
522
- impl->grad_c_prod({x.data(), param.data(), p.data()}, {grad_cx_p.data()});
523
- }
524
-
525
- template <Config Conf>
526
- void CasADiControlProblem<Conf>::eval_add_gn_hess_constr(index_t, crvec x,
527
- crvec M,
528
- rmat out) const {
529
- auto &&sparse = impl->gn_hess_c.fun.sparsity_out(0);
530
- assert(x.size() == nx);
531
- assert(M.size() == nc);
532
- assert(out.rows() == nx);
533
- assert(out.cols() == nx);
534
- assert(work.size() >= static_cast<length_t>(sparse.nnz()));
535
- impl->gn_hess_c({x.data(), param.data(), M.data()}, {work.data()});
536
- using spmat = Eigen::SparseMatrix<real_t, Eigen::ColMajor, casadi_int>;
537
- using cmspmat = Eigen::Map<const spmat>;
538
- if (sparse.is_dense())
539
- out += cmmat{work.data(), nx, nx};
540
- else
541
- out += cmspmat{
542
- nx,
543
- nx,
544
- static_cast<length_t>(sparse.nnz()),
545
- sparse.colind(),
546
- sparse.row(),
547
- work.data(),
548
- };
549
- }
550
-
551
- template <Config Conf>
552
- void CasADiControlProblem<Conf>::eval_constr_N(crvec x, rvec c) const {
553
- if (nc_N == 0)
554
- return;
555
- assert(x.size() == nx);
556
- assert(c.size() == nc_N);
557
- impl->c_N({x.data(), param.data()}, {c.data()});
558
- }
559
-
560
- template <Config Conf>
561
- void CasADiControlProblem<Conf>::eval_grad_constr_prod_N(crvec x, crvec p,
562
- rvec grad_cx_p) const {
563
- assert(x.size() == nx);
564
- assert(p.size() == nc_N);
565
- assert(grad_cx_p.size() == nx);
566
- impl->grad_c_prod_N({x.data(), param.data(), p.data()}, {grad_cx_p.data()});
567
- }
568
-
569
- template <Config Conf>
570
- void CasADiControlProblem<Conf>::eval_add_gn_hess_constr_N(crvec x, crvec M,
571
- rmat out) const {
572
- auto &&sparse = impl->gn_hess_c.fun.sparsity_out(0);
573
- assert(x.size() == nx);
574
- assert(M.size() == nc_N);
575
- assert(out.rows() == nx);
576
- assert(out.cols() == nx);
577
- assert(work.size() >= static_cast<length_t>(sparse.nnz()));
578
- impl->gn_hess_c_N({x.data(), param.data(), M.data()}, {work.data()});
579
- using spmat = Eigen::SparseMatrix<real_t, Eigen::ColMajor, casadi_int>;
580
- using cmspmat = Eigen::Map<const spmat>;
581
- if (sparse.is_dense())
582
- out += cmmat{work.data(), nx, nx};
583
- else
584
- out += cmspmat{
585
- nx,
586
- nx,
587
- static_cast<length_t>(sparse.nnz()),
588
- sparse.colind(),
589
- sparse.row(),
590
- work.data(),
591
- };
592
- }
593
-
594
- } // namespace alpaqa
@@ -1,50 +0,0 @@
1
- #pragma once
2
-
3
- #include <casadi/core/casadi_types.hpp>
4
- #include <casadi/core/external.hpp>
5
- #include <array>
6
- #include <optional>
7
- #include <stdexcept>
8
- #include <string>
9
- #include <utility>
10
-
11
- namespace alpaqa::casadi_loader {
12
-
13
- template <class F>
14
- auto wrap_load(const std::string &so_name, const char *name, F f) {
15
- try {
16
- return f();
17
- } catch (const std::invalid_argument &e) {
18
- throw std::invalid_argument("Unable to load function '" + so_name +
19
- ":" + name + "': " + e.what());
20
- }
21
- }
22
-
23
- template <class T, class... Args>
24
- auto wrapped_load(const std::string &so_name, const char *name,
25
- Args &&...args) {
26
- return wrap_load(so_name, name, [&] {
27
- return T(casadi::external(name, so_name), std::forward<Args>(args)...);
28
- });
29
- }
30
-
31
- template <class T, class... Args>
32
- std::optional<T> try_load(const std::string &so_name, const char *name,
33
- Args &&...args) {
34
- try {
35
- return std::make_optional(
36
- wrapped_load<T>(so_name, name, std::forward<Args>(args)...));
37
- } catch (casadi::CasadiException &e) {
38
- return std::nullopt;
39
- }
40
- }
41
-
42
- using dim = std::pair<casadi_int, casadi_int>;
43
- inline constexpr auto dims(auto... a) {
44
- if constexpr ((... && std::is_constructible_v<dim, decltype(a)>))
45
- return std::array{a...};
46
- else
47
- return std::array{dim{a, 1}...};
48
- }
49
-
50
- } // namespace alpaqa::casadi_loader