casadi 3.6.5__cp38-none-macosx_11_0_arm64.whl → 3.6.6__cp38-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 (642) hide show
  1. casadi/_casadi.so +0 -0
  2. casadi/casadi-cli +0 -0
  3. casadi/casadi.py +663 -257
  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 +13 -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 +13 -3
  31. casadi/include/casadi/core/optistack.hpp +23 -0
  32. casadi/include/casadi/core/runtime/casadi_nlp.hpp +2 -0
  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 +1397 -955
  41. casadi/include/casadi/doc_merged.i +867 -675
  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 +33 -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 +492 -0
  60. casadi/include/fatrop/function_evaluation/CasadiCodegen.hpp +104 -0
  61. casadi/include/fatrop/function_evaluation/FunctionEvaluation.hpp +60 -0
  62. casadi/include/fatrop/json/json.h +946 -0
  63. casadi/include/fatrop/ocp/CasadiCApiUserdataWrap.hpp +87 -0
  64. casadi/include/fatrop/ocp/DuInfEvaluator.hpp +38 -0
  65. casadi/include/fatrop/ocp/FatropOCP.hpp +161 -0
  66. casadi/include/fatrop/ocp/FatropOCPBuilder.hpp +52 -0
  67. casadi/include/fatrop/ocp/OCP.hpp +82 -0
  68. casadi/include/fatrop/ocp/OCPAbstract.hpp +254 -0
  69. casadi/include/fatrop/ocp/OCPAdapter.hpp +197 -0
  70. casadi/include/fatrop/ocp/OCPCInterface.h +289 -0
  71. casadi/include/fatrop/ocp/OCPDims.hpp +60 -0
  72. casadi/include/fatrop/ocp/OCPInitializer.hpp +41 -0
  73. casadi/include/fatrop/ocp/OCPKKT.hpp +69 -0
  74. casadi/include/fatrop/ocp/OCPLSRiccati.hpp +191 -0
  75. casadi/include/fatrop/ocp/OCPLSScaler.hpp +66 -0
  76. casadi/include/fatrop/ocp/OCPLinearSolver.hpp +75 -0
  77. casadi/include/fatrop/ocp/OCPNoScaling.hpp +42 -0
  78. casadi/include/fatrop/ocp/OCPScalingMethod.hpp +42 -0
  79. casadi/include/fatrop/ocp/StageOCP.hpp +592 -0
  80. casadi/include/fatrop/ocp/StageOCPApplication.hpp +242 -0
  81. casadi/include/fatrop/ocp/StageOCPExpressions.hpp +182 -0
  82. casadi/include/fatrop/ocp/UStageEvalAbstract.hpp +168 -0
  83. casadi/include/fatrop/ocp/UStageOCPImpl.hpp +152 -0
  84. casadi/include/fatrop/quasi_newton/bfgs.hpp +159 -0
  85. casadi/include/fatrop/solver/AlgBuilder.hpp +66 -0
  86. casadi/include/fatrop/solver/AlgStrategy.hpp +33 -0
  87. casadi/include/fatrop/solver/FatropAlg.hpp +108 -0
  88. casadi/include/fatrop/solver/FatropData.hpp +188 -0
  89. casadi/include/fatrop/solver/FatropOptions.hpp +94 -0
  90. casadi/include/fatrop/solver/FatropPrinter.hpp +65 -0
  91. casadi/include/fatrop/solver/FatropStats.hpp +63 -0
  92. casadi/include/fatrop/solver/Filter.hpp +54 -0
  93. casadi/include/fatrop/solver/IterationData.hpp +55 -0
  94. casadi/include/fatrop/solver/LineSearch.hpp +86 -0
  95. casadi/include/fatrop/solver/NLPL1.hpp +263 -0
  96. casadi/include/fatrop/templates/NLPAlg.hpp +102 -0
  97. casadi/include/highs/HConfig.h +8 -7
  98. casadi/include/highs/Highs.h +93 -23
  99. casadi/include/highs/filereaderlp/def.hpp +19 -0
  100. casadi/include/highs/interfaces/highs_c_api.h +200 -24
  101. casadi/include/highs/io/Filereader.h +1 -1
  102. casadi/include/highs/io/FilereaderEms.h +1 -1
  103. casadi/include/highs/io/FilereaderLp.h +1 -1
  104. casadi/include/highs/io/FilereaderMps.h +1 -1
  105. casadi/include/highs/io/HMPSIO.h +1 -1
  106. casadi/include/highs/io/HMpsFF.h +5 -3
  107. casadi/include/highs/io/HighsIO.h +18 -8
  108. casadi/include/highs/io/LoadOptions.h +1 -1
  109. casadi/include/highs/ipm/IpxSolution.h +35 -0
  110. casadi/include/highs/ipm/IpxWrapper.h +1 -1
  111. casadi/include/highs/ipm/basiclu/basiclu.h +161 -0
  112. casadi/include/highs/ipm/basiclu/basiclu_factorize.h +247 -0
  113. casadi/include/highs/ipm/basiclu/basiclu_get_factors.h +108 -0
  114. casadi/include/highs/ipm/basiclu/basiclu_initialize.h +119 -0
  115. casadi/include/highs/ipm/basiclu/basiclu_obj_factorize.h +34 -0
  116. casadi/include/highs/ipm/basiclu/basiclu_obj_free.h +19 -0
  117. casadi/include/highs/ipm/basiclu/basiclu_obj_get_factors.h +34 -0
  118. casadi/include/highs/ipm/basiclu/basiclu_obj_initialize.h +46 -0
  119. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_dense.h +29 -0
  120. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_for_update.h +42 -0
  121. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_sparse.h +32 -0
  122. casadi/include/highs/ipm/basiclu/basiclu_obj_update.h +31 -0
  123. casadi/include/highs/ipm/basiclu/basiclu_object.h +30 -0
  124. casadi/include/highs/ipm/basiclu/basiclu_solve_dense.h +75 -0
  125. casadi/include/highs/ipm/basiclu/basiclu_solve_for_update.h +169 -0
  126. casadi/include/highs/ipm/basiclu/basiclu_solve_sparse.h +112 -0
  127. casadi/include/highs/ipm/basiclu/basiclu_update.h +125 -0
  128. casadi/include/highs/ipm/basiclu/lu_def.h +39 -0
  129. casadi/include/highs/ipm/basiclu/lu_file.h +21 -0
  130. casadi/include/highs/ipm/basiclu/lu_internal.h +220 -0
  131. casadi/include/highs/ipm/basiclu/lu_list.h +168 -0
  132. casadi/include/highs/ipm/ipx/basiclu_kernel.h +20 -0
  133. casadi/include/highs/ipm/ipx/basiclu_wrapper.h +47 -0
  134. casadi/include/highs/ipm/ipx/basis.h +351 -0
  135. casadi/include/highs/ipm/ipx/conjugate_residuals.h +74 -0
  136. casadi/include/highs/ipm/ipx/control.h +163 -0
  137. casadi/include/highs/ipm/ipx/crossover.h +157 -0
  138. casadi/include/highs/ipm/ipx/diagonal_precond.h +45 -0
  139. casadi/include/highs/ipm/ipx/forrest_tomlin.h +102 -0
  140. casadi/include/highs/ipm/ipx/guess_basis.h +21 -0
  141. casadi/include/highs/ipm/ipx/indexed_vector.h +113 -0
  142. casadi/include/highs/ipm/ipx/info.h +27 -0
  143. casadi/include/highs/ipm/ipx/ipm.h +94 -0
  144. casadi/include/highs/ipm/ipx/ipx_c.h +47 -0
  145. casadi/include/highs/ipm/ipx/ipx_config.h +9 -0
  146. casadi/include/highs/ipm/ipx/ipx_info.h +111 -0
  147. casadi/include/highs/ipm/ipx/ipx_internal.h +88 -0
  148. casadi/include/highs/ipm/ipx/ipx_parameters.h +75 -0
  149. casadi/include/highs/ipm/ipx/ipx_status.h +57 -0
  150. casadi/include/highs/ipm/ipx/iterate.h +328 -0
  151. casadi/include/highs/ipm/ipx/kkt_solver.h +70 -0
  152. casadi/include/highs/ipm/ipx/kkt_solver_basis.h +66 -0
  153. casadi/include/highs/ipm/ipx/kkt_solver_diag.h +48 -0
  154. casadi/include/highs/ipm/ipx/linear_operator.h +26 -0
  155. casadi/include/highs/ipm/ipx/lp_solver.h +201 -0
  156. casadi/include/highs/ipm/ipx/lu_factorization.h +79 -0
  157. casadi/include/highs/ipm/ipx/lu_update.h +129 -0
  158. casadi/include/highs/ipm/ipx/maxvolume.h +54 -0
  159. casadi/include/highs/ipm/ipx/model.h +409 -0
  160. casadi/include/highs/ipm/ipx/multistream.h +52 -0
  161. casadi/include/highs/ipm/ipx/normal_matrix.h +44 -0
  162. casadi/include/highs/ipm/ipx/power_method.h +44 -0
  163. casadi/include/highs/ipm/ipx/sparse_matrix.h +195 -0
  164. casadi/include/highs/ipm/ipx/sparse_utils.h +58 -0
  165. casadi/include/highs/ipm/ipx/splitted_normal_matrix.h +63 -0
  166. casadi/include/highs/ipm/ipx/starting_basis.h +39 -0
  167. casadi/include/highs/ipm/ipx/symbolic_invert.h +29 -0
  168. casadi/include/highs/ipm/ipx/timer.h +24 -0
  169. casadi/include/highs/ipm/ipx/utils.h +39 -0
  170. casadi/include/highs/lp_data/HConst.h +20 -10
  171. casadi/include/highs/lp_data/HStruct.h +23 -1
  172. casadi/include/highs/lp_data/HighsAnalysis.h +1 -1
  173. casadi/include/highs/lp_data/HighsCallback.h +10 -3
  174. casadi/include/highs/lp_data/HighsCallbackStruct.h +31 -5
  175. casadi/include/highs/lp_data/HighsDebug.h +1 -1
  176. casadi/include/highs/lp_data/HighsInfo.h +20 -2
  177. casadi/include/highs/lp_data/HighsInfoDebug.h +1 -1
  178. casadi/include/highs/lp_data/HighsLp.h +17 -1
  179. casadi/include/highs/lp_data/HighsLpSolverObject.h +1 -1
  180. casadi/include/highs/lp_data/HighsLpUtils.h +19 -19
  181. casadi/include/highs/lp_data/HighsModelUtils.h +1 -1
  182. casadi/include/highs/lp_data/HighsOptions.h +237 -10
  183. casadi/include/highs/lp_data/HighsRanging.h +1 -1
  184. casadi/include/highs/lp_data/HighsRuntimeOptions.h +2 -2
  185. casadi/include/highs/lp_data/HighsSolution.h +2 -2
  186. casadi/include/highs/lp_data/HighsSolutionDebug.h +1 -1
  187. casadi/include/highs/lp_data/HighsSolve.h +3 -1
  188. casadi/include/highs/lp_data/HighsStatus.h +1 -1
  189. casadi/include/highs/mip/HighsCliqueTable.h +4 -4
  190. casadi/include/highs/mip/HighsConflictPool.h +1 -1
  191. casadi/include/highs/mip/HighsCutGeneration.h +1 -1
  192. casadi/include/highs/mip/HighsCutPool.h +2 -2
  193. casadi/include/highs/mip/HighsDebugSol.h +22 -29
  194. casadi/include/highs/mip/HighsDomain.h +10 -2
  195. casadi/include/highs/mip/HighsDomainChange.h +1 -1
  196. casadi/include/highs/mip/HighsDynamicRowMatrix.h +5 -3
  197. casadi/include/highs/mip/HighsGFkSolve.h +3 -3
  198. casadi/include/highs/mip/HighsImplications.h +3 -3
  199. casadi/include/highs/mip/HighsLpAggregator.h +1 -1
  200. casadi/include/highs/mip/HighsLpRelaxation.h +6 -1
  201. casadi/include/highs/mip/HighsMipSolver.h +4 -2
  202. casadi/include/highs/mip/HighsMipSolverData.h +47 -4
  203. casadi/include/highs/mip/HighsModkSeparator.h +2 -2
  204. casadi/include/highs/mip/HighsNodeQueue.h +5 -3
  205. casadi/include/highs/mip/HighsObjectiveFunction.h +1 -1
  206. casadi/include/highs/mip/HighsPathSeparator.h +2 -2
  207. casadi/include/highs/mip/HighsPrimalHeuristics.h +1 -1
  208. casadi/include/highs/mip/HighsPseudocost.h +35 -23
  209. casadi/include/highs/mip/HighsRedcostFixing.h +1 -1
  210. casadi/include/highs/mip/HighsSearch.h +2 -1
  211. casadi/include/highs/mip/HighsSeparation.h +1 -1
  212. casadi/include/highs/mip/HighsSeparator.h +1 -1
  213. casadi/include/highs/mip/HighsTableauSeparator.h +1 -1
  214. casadi/include/highs/mip/HighsTransformedLp.h +1 -1
  215. casadi/include/highs/model/HighsHessian.h +5 -0
  216. casadi/include/highs/model/HighsHessianUtils.h +2 -0
  217. casadi/include/highs/model/HighsModel.h +10 -1
  218. casadi/include/highs/parallel/HighsMutex.h +2 -1
  219. casadi/include/highs/parallel/HighsParallel.h +7 -2
  220. casadi/include/highs/parallel/HighsTask.h +1 -2
  221. casadi/include/highs/pdlp/CupdlpWrapper.h +93 -0
  222. casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +41 -0
  223. casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +423 -0
  224. casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +183 -0
  225. casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +19 -0
  226. casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +31 -0
  227. casadi/include/highs/pdlp/cupdlp/cupdlp_scaling_cuda.h +28 -0
  228. casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +98 -0
  229. casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +33 -0
  230. casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +1726 -0
  231. casadi/include/highs/pdqsort/pdqsort.h +532 -0
  232. casadi/include/highs/presolve/HPresolve.h +27 -14
  233. casadi/include/highs/presolve/HPresolveAnalysis.h +1 -1
  234. casadi/include/highs/presolve/HighsPostsolveStack.h +92 -68
  235. casadi/include/highs/presolve/HighsSymmetry.h +6 -5
  236. casadi/include/highs/presolve/ICrash.h +8 -2
  237. casadi/include/highs/presolve/ICrashUtil.h +1 -1
  238. casadi/include/highs/presolve/ICrashX.h +1 -1
  239. casadi/include/highs/presolve/PresolveComponent.h +1 -1
  240. casadi/include/highs/qpsolver/a_asm.hpp +23 -12
  241. casadi/include/highs/qpsolver/a_quass.hpp +8 -1
  242. casadi/include/highs/qpsolver/basis.hpp +150 -0
  243. casadi/include/highs/qpsolver/crashsolution.hpp +12 -0
  244. casadi/include/highs/qpsolver/dantzigpricing.hpp +72 -0
  245. casadi/include/highs/qpsolver/devexpricing.hpp +99 -0
  246. casadi/include/highs/qpsolver/eventhandler.hpp +23 -0
  247. casadi/include/highs/qpsolver/factor.hpp +400 -0
  248. casadi/include/highs/qpsolver/feasibility_bounded.hpp +105 -0
  249. casadi/include/highs/qpsolver/feasibility_highs.hpp +270 -0
  250. casadi/include/highs/qpsolver/gradient.hpp +39 -0
  251. casadi/include/highs/qpsolver/instance.hpp +63 -0
  252. casadi/include/highs/qpsolver/matrix.hpp +335 -0
  253. casadi/include/highs/qpsolver/pricing.hpp +15 -0
  254. casadi/include/highs/qpsolver/qpconst.hpp +27 -0
  255. casadi/include/highs/qpsolver/{vector.hpp → qpvector.hpp} +25 -25
  256. casadi/include/highs/qpsolver/quass.hpp +1 -1
  257. casadi/include/highs/qpsolver/ratiotest.hpp +19 -0
  258. casadi/include/highs/qpsolver/runtime.hpp +38 -0
  259. casadi/include/highs/qpsolver/settings.hpp +57 -0
  260. casadi/include/highs/qpsolver/snippets.hpp +29 -0
  261. casadi/include/highs/qpsolver/statistics.hpp +23 -0
  262. casadi/include/highs/qpsolver/steepestedgepricing.hpp +167 -0
  263. casadi/include/highs/simplex/HApp.h +1 -1
  264. casadi/include/highs/simplex/HEkk.h +52 -18
  265. casadi/include/highs/simplex/HEkkDual.h +1 -1
  266. casadi/include/highs/simplex/HEkkDualRHS.h +6 -7
  267. casadi/include/highs/simplex/HEkkDualRow.h +2 -2
  268. casadi/include/highs/simplex/HEkkPrimal.h +6 -1
  269. casadi/include/highs/simplex/HSimplex.h +1 -3
  270. casadi/include/highs/simplex/HSimplexDebug.h +1 -1
  271. casadi/include/highs/simplex/HSimplexNla.h +1 -1
  272. casadi/include/highs/simplex/HSimplexReport.h +1 -1
  273. casadi/include/highs/simplex/HighsSimplexAnalysis.h +228 -100
  274. casadi/include/highs/simplex/SimplexConst.h +1 -1
  275. casadi/include/highs/simplex/SimplexStruct.h +2 -2
  276. casadi/include/highs/simplex/SimplexTimer.h +1 -1
  277. casadi/include/highs/test/DevKkt.h +1 -1
  278. casadi/include/highs/test/KktCh2.h +1 -1
  279. casadi/include/highs/util/FactorTimer.h +1 -1
  280. casadi/include/highs/util/HFactor.h +35 -6
  281. casadi/include/highs/util/HFactorConst.h +1 -1
  282. casadi/include/highs/util/HFactorDebug.h +1 -1
  283. casadi/include/highs/util/HSet.h +1 -1
  284. casadi/include/highs/util/HVector.h +1 -1
  285. casadi/include/highs/util/HVectorBase.h +1 -1
  286. casadi/include/highs/util/HighsCDouble.h +3 -3
  287. casadi/include/highs/util/HighsComponent.h +1 -1
  288. casadi/include/highs/util/HighsDataStack.h +4 -4
  289. casadi/include/highs/util/HighsDisjointSets.h +1 -1
  290. casadi/include/highs/util/HighsHash.h +28 -21
  291. casadi/include/highs/util/HighsHashTree.h +63 -63
  292. casadi/include/highs/util/HighsInt.h +1 -1
  293. casadi/include/highs/util/HighsIntegers.h +8 -9
  294. casadi/include/highs/util/HighsLinearSumBounds.h +1 -1
  295. casadi/include/highs/util/HighsMatrixPic.h +1 -1
  296. casadi/include/highs/util/HighsMatrixSlice.h +9 -6
  297. casadi/include/highs/util/HighsMatrixUtils.h +1 -1
  298. casadi/include/highs/util/HighsMemoryAllocation.h +55 -0
  299. casadi/include/highs/util/HighsRandom.h +27 -15
  300. casadi/include/highs/util/HighsRbTree.h +2 -2
  301. casadi/include/highs/util/HighsSort.h +7 -7
  302. casadi/include/highs/util/HighsSparseMatrix.h +5 -2
  303. casadi/include/highs/util/HighsSparseVectorSum.h +2 -2
  304. casadi/include/highs/util/HighsSplay.h +1 -1
  305. casadi/include/highs/util/HighsTimer.h +18 -9
  306. casadi/include/highs/util/HighsUtils.h +15 -8
  307. casadi/include/highs/util/stringutil.h +9 -4
  308. casadi/include/highs/zstr/strict_fstream.hpp +237 -0
  309. casadi/include/highs/zstr/zstr.hpp +472 -0
  310. casadi/include/highs_export.h +43 -0
  311. casadi/include/licenses/daqp-external/LICENSE +21 -0
  312. casadi/include/licenses/{alpaqa-external/LICENSE → fatrop-external/LICENSE.txt} +2 -2
  313. casadi/include/licenses/fatrop-external/external/blasfeo/LICENSE.txt +26 -0
  314. casadi/include/licenses/fatrop-external/external/pybind11/LICENSE +29 -0
  315. casadi/include/licenses/fatrop-external/misc/license_header.txt +17 -0
  316. casadi/include/licenses/highs-external/{LICENSE → LICENSE.txt} +1 -1
  317. casadi/include/osqp/constants.h +2 -3
  318. casadi/include/osqp/version.h +9 -0
  319. casadi/include/sleqp/defs.h +4 -4
  320. casadi/include/sleqp/export.h +1 -0
  321. casadi/lib/cmake/tinyxml2/tinyxml2-config-version.cmake +0 -5
  322. casadi/lib/cmake/tinyxml2/tinyxml2-static-targets.cmake +10 -6
  323. casadi/lib/libtinyxml2.a +0 -0
  324. casadi/lib/pkgconfig/tinyxml2.pc +1 -1
  325. casadi/libCbc.3.10.11.dylib +0 -0
  326. casadi/libCbc.3.dylib +0 -0
  327. casadi/libCbc.dylib +0 -0
  328. casadi/libCbc.la +2 -2
  329. casadi/libCbcSolver.3.10.11.dylib +0 -0
  330. casadi/libCbcSolver.3.dylib +0 -0
  331. casadi/libCbcSolver.dylib +0 -0
  332. casadi/libCbcSolver.la +2 -2
  333. casadi/libCgl.1.10.8.dylib +0 -0
  334. casadi/libCgl.1.dylib +0 -0
  335. casadi/libCgl.dylib +0 -0
  336. casadi/libCgl.la +2 -2
  337. casadi/libClp.1.14.9.dylib +0 -0
  338. casadi/libClp.1.dylib +0 -0
  339. casadi/libClp.dylib +0 -0
  340. casadi/libClp.la +2 -2
  341. casadi/libClpSolver.1.14.9.dylib +0 -0
  342. casadi/libClpSolver.1.dylib +0 -0
  343. casadi/libClpSolver.dylib +0 -0
  344. casadi/libClpSolver.la +2 -2
  345. casadi/libCoinUtils.3.11.10.dylib +0 -0
  346. casadi/libCoinUtils.3.dylib +0 -0
  347. casadi/libCoinUtils.dylib +0 -0
  348. casadi/libCoinUtils.la +1 -1
  349. casadi/libOsi.1.13.9.dylib +0 -0
  350. casadi/libOsi.1.dylib +0 -0
  351. casadi/libOsi.dylib +0 -0
  352. casadi/libOsi.la +2 -2
  353. casadi/libOsiCbc.3.10.11.dylib +0 -0
  354. casadi/libOsiCbc.3.dylib +0 -0
  355. casadi/libOsiCbc.dylib +0 -0
  356. casadi/libOsiCbc.la +2 -2
  357. casadi/libOsiClp.1.14.9.dylib +0 -0
  358. casadi/libOsiClp.1.dylib +0 -0
  359. casadi/libOsiClp.dylib +0 -0
  360. casadi/libOsiClp.la +2 -2
  361. casadi/libOsiCommonTests.1.13.9.dylib +0 -0
  362. casadi/libOsiCommonTests.1.dylib +0 -0
  363. casadi/libOsiCommonTests.dylib +0 -0
  364. casadi/libOsiCommonTests.la +2 -2
  365. casadi/libblasfeo.dylib +0 -0
  366. casadi/libbonmin.4.8.9.dylib +0 -0
  367. casadi/libbonmin.4.dylib +0 -0
  368. casadi/libbonmin.dylib +0 -0
  369. casadi/libbonmin.la +2 -2
  370. casadi/libcasadi.3.7.dylib +0 -0
  371. casadi/libcasadi.dylib +0 -0
  372. casadi/libcasadi_conic_cbc.3.7.dylib +0 -0
  373. casadi/libcasadi_conic_cbc.dylib +0 -0
  374. casadi/libcasadi_conic_clp.3.7.dylib +0 -0
  375. casadi/libcasadi_conic_clp.dylib +0 -0
  376. casadi/libcasadi_conic_cplex.3.7.dylib +0 -0
  377. casadi/libcasadi_conic_cplex.dylib +0 -0
  378. casadi/libcasadi_conic_daqp.3.7.dylib +0 -0
  379. casadi/libcasadi_conic_daqp.dylib +0 -0
  380. casadi/libcasadi_conic_fatrop.3.7.dylib +0 -0
  381. casadi/libcasadi_conic_fatrop.dylib +0 -0
  382. casadi/libcasadi_conic_gurobi.3.7.dylib +0 -0
  383. casadi/libcasadi_conic_gurobi.dylib +0 -0
  384. casadi/libcasadi_conic_highs.3.7.dylib +0 -0
  385. casadi/libcasadi_conic_highs.dylib +0 -0
  386. casadi/libcasadi_conic_ipqp.3.7.dylib +0 -0
  387. casadi/libcasadi_conic_ipqp.dylib +0 -0
  388. casadi/libcasadi_conic_nlpsol.3.7.dylib +0 -0
  389. casadi/libcasadi_conic_nlpsol.dylib +0 -0
  390. casadi/libcasadi_conic_osqp.3.7.dylib +0 -0
  391. casadi/libcasadi_conic_osqp.dylib +0 -0
  392. casadi/libcasadi_conic_proxqp.3.7.dylib +0 -0
  393. casadi/libcasadi_conic_proxqp.dylib +0 -0
  394. casadi/libcasadi_conic_qpoases.3.7.dylib +0 -0
  395. casadi/libcasadi_conic_qpoases.dylib +0 -0
  396. casadi/libcasadi_conic_qrqp.3.7.dylib +0 -0
  397. casadi/libcasadi_conic_qrqp.dylib +0 -0
  398. casadi/libcasadi_conic_superscs.3.7.dylib +0 -0
  399. casadi/libcasadi_conic_superscs.dylib +0 -0
  400. casadi/libcasadi_importer_shell.3.7.dylib +0 -0
  401. casadi/libcasadi_importer_shell.dylib +0 -0
  402. casadi/libcasadi_integrator_collocation.3.7.dylib +0 -0
  403. casadi/libcasadi_integrator_collocation.dylib +0 -0
  404. casadi/libcasadi_integrator_cvodes.3.7.dylib +0 -0
  405. casadi/libcasadi_integrator_cvodes.dylib +0 -0
  406. casadi/libcasadi_integrator_idas.3.7.dylib +0 -0
  407. casadi/libcasadi_integrator_idas.dylib +0 -0
  408. casadi/libcasadi_integrator_rk.3.7.dylib +0 -0
  409. casadi/libcasadi_integrator_rk.dylib +0 -0
  410. casadi/libcasadi_interpolant_bspline.3.7.dylib +0 -0
  411. casadi/libcasadi_interpolant_bspline.dylib +0 -0
  412. casadi/libcasadi_interpolant_linear.3.7.dylib +0 -0
  413. casadi/libcasadi_interpolant_linear.dylib +0 -0
  414. casadi/libcasadi_linsol_csparse.3.7.dylib +0 -0
  415. casadi/libcasadi_linsol_csparse.dylib +0 -0
  416. casadi/libcasadi_linsol_csparsecholesky.3.7.dylib +0 -0
  417. casadi/libcasadi_linsol_csparsecholesky.dylib +0 -0
  418. casadi/libcasadi_linsol_lapacklu.3.7.dylib +0 -0
  419. casadi/libcasadi_linsol_lapacklu.dylib +0 -0
  420. casadi/libcasadi_linsol_lapackqr.3.7.dylib +0 -0
  421. casadi/libcasadi_linsol_lapackqr.dylib +0 -0
  422. casadi/libcasadi_linsol_ldl.3.7.dylib +0 -0
  423. casadi/libcasadi_linsol_ldl.dylib +0 -0
  424. casadi/libcasadi_linsol_lsqr.3.7.dylib +0 -0
  425. casadi/libcasadi_linsol_lsqr.dylib +0 -0
  426. casadi/libcasadi_linsol_ma27.3.7.dylib +0 -0
  427. casadi/libcasadi_linsol_ma27.dylib +0 -0
  428. casadi/libcasadi_linsol_mumps.3.7.dylib +0 -0
  429. casadi/libcasadi_linsol_mumps.dylib +0 -0
  430. casadi/libcasadi_linsol_qr.3.7.dylib +0 -0
  431. casadi/libcasadi_linsol_qr.dylib +0 -0
  432. casadi/libcasadi_linsol_symbolicqr.3.7.dylib +0 -0
  433. casadi/libcasadi_linsol_symbolicqr.dylib +0 -0
  434. casadi/libcasadi_linsol_tridiag.3.7.dylib +0 -0
  435. casadi/libcasadi_linsol_tridiag.dylib +0 -0
  436. casadi/libcasadi_nlpsol_ampl.3.7.dylib +0 -0
  437. casadi/libcasadi_nlpsol_ampl.dylib +0 -0
  438. casadi/libcasadi_nlpsol_blocksqp.3.7.dylib +0 -0
  439. casadi/libcasadi_nlpsol_blocksqp.dylib +0 -0
  440. casadi/libcasadi_nlpsol_bonmin.3.7.dylib +0 -0
  441. casadi/libcasadi_nlpsol_bonmin.dylib +0 -0
  442. casadi/libcasadi_nlpsol_fatrop.3.7.dylib +0 -0
  443. casadi/libcasadi_nlpsol_fatrop.dylib +0 -0
  444. casadi/libcasadi_nlpsol_feasiblesqpmethod.3.7.dylib +0 -0
  445. casadi/libcasadi_nlpsol_feasiblesqpmethod.dylib +0 -0
  446. casadi/libcasadi_nlpsol_ipopt.3.7.dylib +0 -0
  447. casadi/libcasadi_nlpsol_ipopt.dylib +0 -0
  448. casadi/libcasadi_nlpsol_knitro.3.7.dylib +0 -0
  449. casadi/libcasadi_nlpsol_knitro.dylib +0 -0
  450. casadi/libcasadi_nlpsol_madnlp.3.7.dylib +0 -0
  451. casadi/libcasadi_nlpsol_madnlp.dylib +0 -0
  452. casadi/libcasadi_nlpsol_qrsqp.3.7.dylib +0 -0
  453. casadi/libcasadi_nlpsol_qrsqp.dylib +0 -0
  454. casadi/libcasadi_nlpsol_scpgen.3.7.dylib +0 -0
  455. casadi/libcasadi_nlpsol_scpgen.dylib +0 -0
  456. casadi/libcasadi_nlpsol_sleqp.3.7.dylib +0 -0
  457. casadi/libcasadi_nlpsol_sleqp.dylib +0 -0
  458. casadi/libcasadi_nlpsol_snopt.3.7.dylib +0 -0
  459. casadi/libcasadi_nlpsol_snopt.dylib +0 -0
  460. casadi/libcasadi_nlpsol_sqpmethod.3.7.dylib +0 -0
  461. casadi/libcasadi_nlpsol_sqpmethod.dylib +0 -0
  462. casadi/libcasadi_rootfinder_fast_newton.3.7.dylib +0 -0
  463. casadi/libcasadi_rootfinder_fast_newton.dylib +0 -0
  464. casadi/libcasadi_rootfinder_kinsol.3.7.dylib +0 -0
  465. casadi/libcasadi_rootfinder_kinsol.dylib +0 -0
  466. casadi/libcasadi_rootfinder_newton.3.7.dylib +0 -0
  467. casadi/libcasadi_rootfinder_newton.dylib +0 -0
  468. casadi/libcasadi_rootfinder_nlpsol.3.7.dylib +0 -0
  469. casadi/libcasadi_rootfinder_nlpsol.dylib +0 -0
  470. casadi/libcasadi_sundials_common.3.7.dylib +0 -0
  471. casadi/libcasadi_sundials_common.dylib +0 -0
  472. casadi/libcasadi_xmlfile_tinyxml.3.7.dylib +0 -0
  473. casadi/libcasadi_xmlfile_tinyxml.dylib +0 -0
  474. casadi/libcoinmetis.2.dylib +0 -0
  475. casadi/libcoinmetis.dylib +0 -0
  476. casadi/libcoinmetis.la +2 -2
  477. casadi/libcoinmumps.3.dylib +0 -0
  478. casadi/libcoinmumps.dylib +0 -0
  479. casadi/libcoinmumps.la +2 -2
  480. casadi/libcplex_adaptor.dylib +0 -0
  481. casadi/{libamd.3.0.3.dylib → libdaqp.dylib} +0 -0
  482. casadi/libdaqpstat.a +0 -0
  483. casadi/libfatrop.dylib +0 -0
  484. casadi/libgurobi_adaptor.dylib +0 -0
  485. casadi/libhighs.1.7.dylib +0 -0
  486. casadi/libhighs.1.dylib +0 -0
  487. casadi/libhighs.dylib +0 -0
  488. casadi/libindirect.a +0 -0
  489. casadi/libipopt.3.dylib +0 -0
  490. casadi/libipopt.dylib +0 -0
  491. casadi/libipopt.la +2 -2
  492. casadi/liblinsys.a +0 -0
  493. casadi/{libsuitesparseconfig.7.0.1.dylib → libmatlab_ipc.dylib} +0 -0
  494. casadi/libosqp.a +0 -0
  495. casadi/libosqp.dylib +0 -0
  496. casadi/libqdldl.a +0 -0
  497. casadi/libqdldl.dylib +0 -0
  498. casadi/libsipopt.3.dylib +0 -0
  499. casadi/libsipopt.dylib +0 -0
  500. casadi/libsipopt.la +2 -2
  501. casadi/libsleqp.1.0.1.dylib +0 -0
  502. casadi/libsleqp.dylib +0 -0
  503. casadi/libsuperscs.a +0 -0
  504. casadi/libtrlib.0.4.dylib +0 -0
  505. casadi/libtrlib.dylib +0 -0
  506. casadi/pkgconfig/bonmin.pc +1 -1
  507. casadi/pkgconfig/casadi.pc +5 -5
  508. casadi/pkgconfig/cbc.pc +1 -1
  509. casadi/pkgconfig/cgl.pc +1 -1
  510. casadi/pkgconfig/clp.pc +1 -1
  511. casadi/pkgconfig/coinmetis.pc +1 -1
  512. casadi/pkgconfig/coinmumps.pc +2 -2
  513. casadi/pkgconfig/coinutils.pc +2 -2
  514. casadi/pkgconfig/highs.pc +4 -4
  515. casadi/pkgconfig/ipopt.pc +2 -2
  516. casadi/pkgconfig/osi-cbc.pc +1 -1
  517. casadi/pkgconfig/osi-clp.pc +1 -1
  518. casadi/pkgconfig/osi-unittests.pc +1 -1
  519. casadi/pkgconfig/osi.pc +1 -1
  520. casadi/pkgconfig/sleqp.pc +1 -1
  521. casadi/tools/__init__.py +4 -0
  522. casadi/tools/bounds.py +3 -3
  523. {casadi-3.6.5.dist-info → casadi-3.6.6.dist-info}/METADATA +2 -2
  524. {casadi-3.6.5.dist-info → casadi-3.6.6.dist-info}/RECORD +525 -472
  525. casadi/cmake/alpaqa/alpaqaConfig.cmake +0 -24
  526. casadi/cmake/alpaqa/alpaqaConfigVersion.cmake +0 -70
  527. casadi/cmake/alpaqa/alpaqaTargets-release.cmake +0 -19
  528. casadi/cmake/alpaqa/alpaqaTargets.cmake +0 -116
  529. casadi/include/alpaqa/accelerators/anderson.hpp +0 -133
  530. casadi/include/alpaqa/accelerators/internal/anderson-helpers.hpp +0 -92
  531. casadi/include/alpaqa/accelerators/internal/limited-memory-qr.hpp +0 -295
  532. casadi/include/alpaqa/accelerators/lbfgs.hpp +0 -244
  533. casadi/include/alpaqa/accelerators/steihaugcg.hpp +0 -143
  534. casadi/include/alpaqa/alpaqa.hpp +0 -3
  535. casadi/include/alpaqa/casadi/CasADiControlProblem.hpp +0 -185
  536. casadi/include/alpaqa/casadi/CasADiFunctionWrapper.hpp +0 -104
  537. casadi/include/alpaqa/casadi/CasADiProblem.hpp +0 -102
  538. casadi/include/alpaqa/casadi-loader-export.hpp +0 -15
  539. casadi/include/alpaqa/casadi-ocp-loader-export.hpp +0 -15
  540. casadi/include/alpaqa/config/config.hpp +0 -165
  541. casadi/include/alpaqa/dl/dl-problem.h +0 -476
  542. casadi/include/alpaqa/dl/dl-problem.hpp +0 -301
  543. casadi/include/alpaqa/export.h +0 -42
  544. casadi/include/alpaqa/export.hpp +0 -30
  545. casadi/include/alpaqa/implementation/accelerators/lbfgs.tpp +0 -240
  546. casadi/include/alpaqa/implementation/casadi/CasADiControlProblem.tpp +0 -594
  547. casadi/include/alpaqa/implementation/casadi/CasADiLoader-util.hpp +0 -50
  548. casadi/include/alpaqa/implementation/casadi/CasADiProblem.tpp +0 -425
  549. casadi/include/alpaqa/implementation/inner/directions/panoc/structured-lbfgs.tpp +0 -164
  550. casadi/include/alpaqa/implementation/inner/panoc-helpers.tpp +0 -389
  551. casadi/include/alpaqa/implementation/inner/panoc-ocp.tpp +0 -798
  552. casadi/include/alpaqa/implementation/inner/panoc.tpp +0 -448
  553. casadi/include/alpaqa/implementation/inner/pantr.tpp +0 -474
  554. casadi/include/alpaqa/implementation/inner/zerofpr.tpp +0 -482
  555. casadi/include/alpaqa/implementation/outer/alm.tpp +0 -228
  556. casadi/include/alpaqa/implementation/outer/internal/alm-helpers.tpp +0 -80
  557. casadi/include/alpaqa/implementation/params/params.tpp +0 -158
  558. casadi/include/alpaqa/implementation/problem/ocproblem.tpp +0 -56
  559. casadi/include/alpaqa/implementation/problem/type-erased-problem.tpp +0 -211
  560. casadi/include/alpaqa/implementation/util/io/csv.tpp +0 -120
  561. casadi/include/alpaqa/implementation/util/print.tpp +0 -151
  562. casadi/include/alpaqa/inner/directions/panoc/anderson.hpp +0 -98
  563. casadi/include/alpaqa/inner/directions/panoc/lbfgs.hpp +0 -94
  564. casadi/include/alpaqa/inner/directions/panoc/structured-lbfgs.hpp +0 -146
  565. casadi/include/alpaqa/inner/directions/panoc/structured-newton.hpp +0 -264
  566. casadi/include/alpaqa/inner/directions/panoc-direction-update.hpp +0 -96
  567. casadi/include/alpaqa/inner/directions/panoc-ocp/lqr.hpp +0 -181
  568. casadi/include/alpaqa/inner/directions/panoc-ocp/ocp-vars.hpp +0 -492
  569. casadi/include/alpaqa/inner/directions/pantr/newton-tr.hpp +0 -192
  570. casadi/include/alpaqa/inner/directions/pantr/pantr-direction.hpp +0 -99
  571. casadi/include/alpaqa/inner/inner-solve-options.hpp +0 -30
  572. casadi/include/alpaqa/inner/internal/lipschitz.hpp +0 -27
  573. casadi/include/alpaqa/inner/internal/panoc-helpers.hpp +0 -10
  574. casadi/include/alpaqa/inner/internal/panoc-stop-crit.hpp +0 -124
  575. casadi/include/alpaqa/inner/internal/solverstatus.hpp +0 -42
  576. casadi/include/alpaqa/inner/panoc-ocp.hpp +0 -302
  577. casadi/include/alpaqa/inner/panoc.hpp +0 -274
  578. casadi/include/alpaqa/inner/pantr.hpp +0 -284
  579. casadi/include/alpaqa/inner/zerofpr.hpp +0 -274
  580. casadi/include/alpaqa/ipopt/ipopt-adapter.hpp +0 -81
  581. casadi/include/alpaqa/ipopt/ipopt-enums.hpp +0 -35
  582. casadi/include/alpaqa/lbfgsb/lbfgsb-adapter.hpp +0 -111
  583. casadi/include/alpaqa/newton-tr-pantr-alm.hpp +0 -27
  584. casadi/include/alpaqa/outer/alm.hpp +0 -190
  585. casadi/include/alpaqa/outer/internal/alm-helpers.hpp +0 -10
  586. casadi/include/alpaqa/panoc-alm.hpp +0 -27
  587. casadi/include/alpaqa/panoc-anderson-alm.hpp +0 -27
  588. casadi/include/alpaqa/params/params.hpp +0 -60
  589. casadi/include/alpaqa/problem/box-constr-problem.hpp +0 -220
  590. casadi/include/alpaqa/problem/box.hpp +0 -82
  591. casadi/include/alpaqa/problem/functional-problem.hpp +0 -73
  592. casadi/include/alpaqa/problem/kkt-error.hpp +0 -43
  593. casadi/include/alpaqa/problem/ocproblem-counters.hpp +0 -116
  594. casadi/include/alpaqa/problem/ocproblem.hpp +0 -662
  595. casadi/include/alpaqa/problem/problem-counters.hpp +0 -116
  596. casadi/include/alpaqa/problem/problem-with-counters.hpp +0 -141
  597. casadi/include/alpaqa/problem/type-erased-problem.hpp +0 -874
  598. casadi/include/alpaqa/problem/unconstr-problem.hpp +0 -37
  599. casadi/include/alpaqa/structured-panoc-alm.hpp +0 -27
  600. casadi/include/alpaqa/structured-zerofpr-alm.hpp +0 -27
  601. casadi/include/alpaqa/util/alloc-check.hpp +0 -23
  602. casadi/include/alpaqa/util/atomic-stop-signal.hpp +0 -24
  603. casadi/include/alpaqa/util/check-dim.hpp +0 -64
  604. casadi/include/alpaqa/util/copyable_unique_ptr.hpp +0 -32
  605. casadi/include/alpaqa/util/demangled-typename.hpp +0 -9
  606. casadi/include/alpaqa/util/enumerate.hpp +0 -70
  607. casadi/include/alpaqa/util/float.hpp +0 -25
  608. casadi/include/alpaqa/util/index-set.hpp +0 -97
  609. casadi/include/alpaqa/util/io/csv.hpp +0 -43
  610. casadi/include/alpaqa/util/iter-adapter.hpp +0 -68
  611. casadi/include/alpaqa/util/max-history.hpp +0 -47
  612. casadi/include/alpaqa/util/noop-delete.hpp +0 -15
  613. casadi/include/alpaqa/util/not-implemented.hpp +0 -12
  614. casadi/include/alpaqa/util/print.hpp +0 -78
  615. casadi/include/alpaqa/util/quadmath/quadmath-print.hpp +0 -20
  616. casadi/include/alpaqa/util/quadmath/quadmath.hpp +0 -137
  617. casadi/include/alpaqa/util/required-method.hpp +0 -29
  618. casadi/include/alpaqa/util/ringbuffer.hpp +0 -212
  619. casadi/include/alpaqa/util/set-intersection.hpp +0 -129
  620. casadi/include/alpaqa/util/sparse-ops.hpp +0 -164
  621. casadi/include/alpaqa/util/timed.hpp +0 -22
  622. casadi/include/alpaqa/util/type-erasure.hpp +0 -568
  623. casadi/include/alpaqa/util/type-traits.hpp +0 -58
  624. casadi/include/alpaqa/zerofpr-alm.hpp +0 -27
  625. casadi/include/alpaqa/zerofpr-anderson-alm.hpp +0 -27
  626. casadi/include/alpaqa-version.h +0 -8
  627. casadi/include/highs/fortran/highs_fortran_api.mod +0 -0
  628. casadi/include/licenses/alpaqa-external/src/thirdparty/lbfgsb/Lbfgsb.3.0/License.txt +0 -71
  629. casadi/libFortranHighs.dylib +0 -0
  630. casadi/libalpaqa.1.0.0.dylib +0 -0
  631. casadi/libalpaqa.dylib +0 -0
  632. casadi/libcamd.3.0.3.dylib +0 -0
  633. casadi/libcasadi_nlpsol_alpaqa.3.7.dylib +0 -0
  634. casadi/libcasadi_nlpsol_alpaqa.dylib +0 -0
  635. casadi/libccolamd.3.0.3.dylib +0 -0
  636. casadi/libcholmod.4.0.3.dylib +0 -0
  637. casadi/libcholmod_cuda.4.0.3.dylib +0 -0
  638. casadi/libcolamd.3.0.3.dylib +0 -0
  639. casadi/libhighs.1.6.0.dylib +0 -0
  640. casadi/libhighs.1.6.dylib +0 -0
  641. casadi/libumfpack.6.1.0.dylib +0 -0
  642. {casadi-3.6.5.dist-info → casadi-3.6.6.dist-info}/WHEEL +0 -0
@@ -1,228 +0,0 @@
1
- #pragma once
2
-
3
- #include <alpaqa/outer/alm.hpp>
4
-
5
- #include <algorithm>
6
- #include <iomanip>
7
- #include <iostream>
8
- #include <utility>
9
-
10
- #include <alpaqa/config/config.hpp>
11
- #include <alpaqa/implementation/outer/internal/alm-helpers.tpp>
12
- #include <alpaqa/implementation/util/print.tpp>
13
- #include <alpaqa/inner/inner-solve-options.hpp>
14
- #include <alpaqa/inner/internal/solverstatus.hpp>
15
- #include <alpaqa/util/quadmath/quadmath-print.hpp>
16
-
17
- namespace alpaqa {
18
-
19
- template <class InnerSolverT>
20
- typename ALMSolver<InnerSolverT>::Stats
21
- ALMSolver<InnerSolverT>::operator()(const Problem &p, rvec x, rvec y) {
22
- using std::chrono::duration_cast;
23
- using std::chrono::nanoseconds;
24
- auto start_time = std::chrono::steady_clock::now();
25
-
26
- // Check the problem dimensions etc.
27
- p.check();
28
-
29
- auto m = p.get_m();
30
- if (m == 0) { // No general constraints, only box constraints
31
- Stats s;
32
- vec Σ(0), error(0);
33
- InnerSolveOptions<config_t> opts{
34
- .always_overwrite_results = true,
35
- .max_time = params.max_time,
36
- .tolerance = params.tolerance,
37
- .os = os,
38
- .check = false,
39
- };
40
- auto ps = inner_solver(p, opts, x, y, Σ, error);
41
- bool inner_converged = ps.status == SolverStatus::Converged;
42
- auto time_elapsed = std::chrono::steady_clock::now() - start_time;
43
- s.inner_convergence_failures = not inner_converged;
44
- s.inner += ps;
45
- s.ε = ps.ε;
46
- s.δ = 0;
47
- s.norm_penalty = 0;
48
- s.outer_iterations = 1;
49
- s.elapsed_time = duration_cast<nanoseconds>(time_elapsed);
50
- s.status = ps.status;
51
- return s;
52
- }
53
-
54
- constexpr auto NaN = alpaqa::NaN<config_t>;
55
- vec Σ = vec::Constant(m, NaN);
56
- vec Σ_old = vec::Constant(m, NaN);
57
- vec error_1 = vec::Constant(m, NaN);
58
- vec error_2 = vec::Constant(m, NaN);
59
- [[maybe_unused]] real_t norm_e_1 = NaN;
60
- [[maybe_unused]] real_t norm_e_2 = NaN;
61
-
62
- std::array<char, 64> printbuf;
63
- auto print_real = [&](real_t x) {
64
- return float_to_str_vw(printbuf, x, params.print_precision);
65
- };
66
-
67
- Stats s;
68
-
69
- // Initialize the penalty weights
70
- if (params.initial_penalty > 0) {
71
- Σ.fill(params.initial_penalty);
72
- }
73
- // Initial penalty weights from problem
74
- else {
75
- Helpers::initialize_penalty(p, params, x, Σ);
76
- }
77
-
78
- real_t ε = params.initial_tolerance;
79
- [[maybe_unused]] real_t ε_old = NaN;
80
- real_t Δ = params.penalty_update_factor;
81
- real_t ρ = params.tolerance_update_factor;
82
-
83
- unsigned num_successful_iters = 0;
84
-
85
- for (unsigned i = 0; i < params.max_iter; ++i) {
86
- // TODO: this is unnecessary when the previous iteration lowered the
87
- // penalty update factor.
88
- p.eval_proj_multipliers(y, params.max_multiplier);
89
- // Check if we're allowed to lower the penalty factor even further.
90
- bool out_of_penalty_factor_updates =
91
- (num_successful_iters == 0
92
- ? s.initial_penalty_reduced == params.max_num_initial_retries
93
- : s.penalty_reduced == params.max_num_retries) ||
94
- (s.initial_penalty_reduced + s.penalty_reduced ==
95
- params.max_total_num_retries);
96
- bool out_of_iter = i + 1 == params.max_iter;
97
- // If this is the final iteration, or the final chance to reduce the
98
- // penalty update factor, the inner solver can just return its results,
99
- // even if it doesn't converge.
100
- bool overwrite_results = out_of_iter || out_of_penalty_factor_updates;
101
-
102
- // Inner solver
103
- // ------------
104
-
105
- auto time_elapsed = std::chrono::steady_clock::now() - start_time;
106
- InnerSolveOptions<config_t> opts{
107
- .always_overwrite_results = overwrite_results,
108
- .max_time = params.max_time - time_elapsed,
109
- .tolerance = ε,
110
- .os = os,
111
- .outer_iter = i,
112
- .check = false,
113
- };
114
- // Call the inner solver to minimize the augmented lagrangian for fixed
115
- // Lagrange multipliers y.
116
- auto ps = inner_solver(p, opts, x, y, Σ, error_2);
117
- // Check if the inner solver converged
118
- bool inner_converged = ps.status == SolverStatus::Converged;
119
- // Accumulate the inner solver statistics
120
- s.inner_convergence_failures += not inner_converged;
121
- s.inner += ps;
122
-
123
- time_elapsed = std::chrono::steady_clock::now() - start_time;
124
- bool out_of_time = time_elapsed > params.max_time;
125
- bool backtrack =
126
- not inner_converged && not overwrite_results && not out_of_time;
127
-
128
- // Print statistics of current iteration
129
- if (params.print_interval != 0 && i % params.print_interval == 0) {
130
- real_t δ = backtrack ? NaN : vec_util::norm_inf(error_2);
131
- const char *color = inner_converged ? "\x1b[0;32m" : "\x1b[0;31m";
132
- const char *color_end = "\x1b[0m";
133
- *os << "[\x1b[0;34mALM\x1b[0m] " << std::setw(5) << i
134
- << ": ‖Σ‖ = " << print_real(Σ.norm())
135
- << ", ‖y‖ = " << print_real(y.norm())
136
- << ", δ = " << print_real(δ) << ", ε = " << print_real(ps.ε)
137
- << ", Δ = " << print_real(Δ) << ", status = " << color
138
- << std::setw(13) << ps.status << color_end
139
- << ", iter = " << std::setw(13) << ps.iterations
140
- << std::endl; // Flush for Python buffering
141
- }
142
-
143
- // TODO: check penalty size?
144
- if (ps.status == SolverStatus::Interrupted) {
145
- s.ε = ps.ε;
146
- s.δ = vec_util::norm_inf(error_2);
147
- s.norm_penalty = Σ.norm();
148
- s.outer_iterations = i + 1;
149
- s.elapsed_time = duration_cast<nanoseconds>(time_elapsed);
150
- s.status = ps.status;
151
- return s;
152
- }
153
-
154
- // Backtrack and lower penalty if inner solver did not converge
155
- if (backtrack) {
156
- // This means the inner solver didn't produce a solution that
157
- // satisfies the required tolerance.
158
- // The best thing we can do now is to restore the penalty to its
159
- // previous value (when the inner solver did converge), then lower
160
- // the penalty update factor Δ, and update the penalty with this
161
- // smaller factor.
162
- // On convergence failure, error_2 is not overwritten by the inner
163
- // solver, so it still contains the error from the iteration before
164
- // the previous successful iteration. error_1 contains the error of
165
- // the last successful iteration. (Unless, of course, there hasn't
166
- // been a successful iteration yet, which is covered by the second
167
- // branch of the following if statement.)
168
- if (num_successful_iters > 0) {
169
- // We have a previous Σ and error
170
- // Recompute penalty with smaller Δ
171
- Δ = std::fmax(params.min_penalty_update_factor,
172
- Δ * params.penalty_update_factor_lower);
173
- Helpers::update_penalty_weights(params, Δ, false, error_1,
174
- error_2, norm_e_1, norm_e_2,
175
- Σ_old, Σ, true);
176
- // Recompute the primal tolerance with larger ρ
177
- ρ = std::fmin(params.ρ_max, ρ * params.ρ_increase);
178
- ε = std::fmax(ρ * ε_old, params.tolerance);
179
- ++s.penalty_reduced;
180
- } else {
181
- // We don't have a previous Σ, simply lower the current Σ and
182
- // increase ε
183
- Σ *= params.initial_penalty_lower;
184
- ε *= params.initial_tolerance_increase;
185
- ++s.initial_penalty_reduced;
186
- }
187
- }
188
-
189
- // If the inner solver did converge, increase penalty
190
- else {
191
- // After this line, error_1 contains the error of the current
192
- // (successful) iteration, and error_2 contains the error of the
193
- // previous successful iteration.
194
- error_2.swap(error_1);
195
- norm_e_2 = std::exchange(norm_e_1, vec_util::norm_inf(error_1));
196
-
197
- // Check the termination criteria
198
- bool alm_converged = ps.ε <= params.tolerance && inner_converged &&
199
- norm_e_1 <= params.dual_tolerance;
200
- bool exit = alm_converged || out_of_iter || out_of_time;
201
- if (exit) {
202
- s.ε = ps.ε;
203
- s.δ = norm_e_1;
204
- s.norm_penalty = Σ.norm();
205
- s.outer_iterations = i + 1;
206
- s.elapsed_time = duration_cast<nanoseconds>(time_elapsed);
207
- s.status = alm_converged ? SolverStatus::Converged
208
- : out_of_time ? SolverStatus::MaxTime
209
- : out_of_iter ? SolverStatus::MaxIter
210
- : SolverStatus::Busy;
211
- return s;
212
- }
213
- // After this line, Σ_old contains the penalty used in the current
214
- // (successful) iteration.
215
- Σ_old.swap(Σ);
216
- // Update Σ to contain the penalty to use on the next iteration.
217
- Helpers::update_penalty_weights(
218
- params, Δ, num_successful_iters == 0, error_1, error_2,
219
- norm_e_1, norm_e_2, Σ_old, Σ, true);
220
- // Lower the primal tolerance for the inner solver.
221
- ε_old = std::exchange(ε, std::fmax(ρ * ε, params.tolerance));
222
- ++num_successful_iters;
223
- }
224
- }
225
- throw std::logic_error("[ALM] loop error");
226
- }
227
-
228
- } // namespace alpaqa
@@ -1,80 +0,0 @@
1
- #pragma once
2
-
3
- #include <alpaqa/outer/alm.hpp>
4
- #if ALPAQA_WITH_OCP
5
- #include <alpaqa/problem/ocproblem.hpp>
6
- #endif
7
-
8
- #include <algorithm>
9
-
10
- namespace alpaqa::detail {
11
-
12
- template <Config Conf>
13
- struct ALMHelpers {
14
- USING_ALPAQA_CONFIG(Conf);
15
-
16
- static void update_penalty_weights(const ALMParams<config_t> &params,
17
- real_t Δ, bool first_iter, rvec e,
18
- rvec old_e, real_t norm_e,
19
- real_t old_norm_e, crvec Σ_old, rvec Σ,
20
- bool monotone) {
21
- const real_t θ = params.rel_penalty_increase_threshold;
22
- if (norm_e <= params.dual_tolerance) {
23
- Σ = Σ_old;
24
- return;
25
- }
26
- if (params.single_penalty_factor) {
27
- if (first_iter || norm_e > θ * old_norm_e) {
28
- real_t new_Σ = std::fmin(params.max_penalty, Δ * Σ_old(0));
29
- Σ.setConstant(new_Σ);
30
- } else {
31
- Σ = Σ_old;
32
- }
33
- } else {
34
- for (index_t i = 0; i < e.rows(); ++i) {
35
- if (first_iter || std::abs(e(i)) > θ * std::abs(old_e(i))) {
36
- Σ(i) = std::fmin(params.max_penalty,
37
- std::fmax(Δ * std::abs(e(i)) / norm_e,
38
- real_t(1) * monotone) *
39
- Σ_old(i));
40
- } else {
41
- Σ(i) = Σ_old(i);
42
- }
43
- }
44
- }
45
- }
46
-
47
- static void initialize_penalty(const TypeErasedProblem<config_t> &p,
48
- const ALMParams<config_t> &params, crvec x0,
49
- rvec Σ) {
50
- real_t f0 = p.eval_f(x0);
51
- vec g0(p.get_m());
52
- p.eval_g(x0, g0);
53
- // TODO: reuse evaluations of f ang g in PANOC?
54
- real_t σ = params.initial_penalty_factor *
55
- std::max(real_t(1), std::abs(f0)) /
56
- std::max(real_t(1), real_t(0.5) * g0.squaredNorm());
57
- σ = std::clamp(σ, params.min_penalty, params.max_penalty);
58
- Σ.fill(σ);
59
- }
60
-
61
- #if ALPAQA_WITH_OCP
62
- static void initialize_penalty(
63
- [[maybe_unused]] const TypeErasedControlProblem<config_t> &p,
64
- const ALMParams<config_t> &params, [[maybe_unused]] crvec x0, rvec Σ) {
65
- real_t σ = 1;
66
- σ = std::clamp(σ, params.min_penalty, params.max_penalty);
67
- Σ.fill(σ);
68
- }
69
- #endif
70
- };
71
-
72
- ALPAQA_EXPORT_EXTERN_TEMPLATE(struct, ALMHelpers, DefaultConfig);
73
- ALPAQA_EXPORT_EXTERN_TEMPLATE(struct, ALMHelpers, EigenConfigf);
74
- ALPAQA_EXPORT_EXTERN_TEMPLATE(struct, ALMHelpers, EigenConfigd);
75
- ALPAQA_EXPORT_EXTERN_TEMPLATE(struct, ALMHelpers, EigenConfigl);
76
- #ifdef ALPAQA_WITH_QUAD_PRECISION
77
- ALPAQA_EXPORT_EXTERN_TEMPLATE(struct, ALMHelpers, EigenConfigq);
78
- #endif
79
-
80
- } // namespace alpaqa::detail
@@ -1,158 +0,0 @@
1
- #include <alpaqa/params/params.hpp>
2
-
3
- #include <alpaqa/config/config.hpp>
4
- #include <alpaqa/util/demangled-typename.hpp>
5
-
6
- #include <charconv>
7
- #include <chrono>
8
- #include <concepts>
9
- #include <map>
10
- #include <numeric>
11
- #include <stdexcept>
12
- #include <string_view>
13
- #include <system_error>
14
- #include <tuple>
15
- #include <type_traits>
16
-
17
- namespace alpaqa::params {
18
-
19
- using config_t = DefaultConfig;
20
-
21
- /// Throw a meaningful error when `s.key` is not empty, to indicate that
22
- /// the given type @p T is not of struct type and cannot be indexed into.
23
- template <class T>
24
- void assert_key_empty(ParamString s) {
25
- if (!s.key.empty())
26
- throw invalid_param("Type '" + demangled_typename(typeid(T)) +
27
- "' cannot be indexed in '" +
28
- std::string(s.full_key) + "'");
29
- }
30
-
31
- /// Throw a meaningful error to indicate that parameters of type @p T are not
32
- /// supported or implemented.
33
- template <class T>
34
- void unsupported_type(T &, [[maybe_unused]] ParamString s) {
35
- throw invalid_param("Unknown parameter type '" +
36
- demangled_typename(typeid(T)) + "' in '" +
37
- std::string(s.full_key) + "'");
38
- }
39
-
40
- template <>
41
- void set_param(bool &b, ParamString s);
42
-
43
- template <>
44
- void set_param(std::string_view &v, ParamString s);
45
-
46
- template <>
47
- void set_param(std::string &v, ParamString s);
48
-
49
- template <class T>
50
- requires((std::floating_point<T> || std::integral<T>) && !std::is_enum_v<T>)
51
- void set_param(T &f, ParamString s);
52
-
53
- template <>
54
- void set_param(vec<config_t> &v, ParamString s);
55
-
56
- template <>
57
- void set_param(vec_from_file<config_t> &v, ParamString s);
58
-
59
- template <class Rep, class Period>
60
- void set_param(std::chrono::duration<Rep, Period> &t, ParamString s);
61
-
62
- /// Return a function that applies @ref set_param to the given attribute of a
63
- /// value of type @p T.
64
- template <class T, class A>
65
- auto param_setter(A T::*attr) {
66
- return [attr](T &t, ParamString s) { return set_param(t.*attr, s); };
67
- }
68
-
69
- /// Function wrapper to set attributes of a struct, type-erasing the type of the
70
- /// attribute.
71
- template <class T>
72
- struct param_setter_fun_t {
73
- template <class A>
74
- param_setter_fun_t(A T::*attr) : set(param_setter(attr)) {}
75
- std::function<void(T &, ParamString)> set;
76
- void operator()(T &t, ParamString s) const { return set(t, s); }
77
- };
78
-
79
- /// Dictionary that maps struct attribute names to type-erased functions that
80
- /// set those attributes.
81
- template <class T>
82
- using dict_to_struct_table_t =
83
- std::map<std::string_view, param_setter_fun_t<T>>;
84
-
85
- /// Specialize this type to define the attribute name to attribute setters
86
- /// dictionaries for a struct type @p T.
87
- template <class T>
88
- struct dict_to_struct_table {};
89
-
90
- /// Return a string enumerating the possible attribute names for the struct type
91
- /// @p T.
92
- template <class T>
93
- auto possible_keys() {
94
- const auto &tbl = dict_to_struct_table<T>::table;
95
- if (tbl.empty())
96
- return std::string{};
97
- auto penult = std::prev(tbl.end());
98
- auto quote_concat = [](std::string &&a, auto b) {
99
- return a + "'" + std::string(b.first) + "', ";
100
- };
101
- return std::accumulate(tbl.begin(), penult, std::string{}, quote_concat) +
102
- "'" + std::string(penult->first) + "'";
103
- }
104
-
105
- /// Use @p s to index into the struct type @p T and overwrite the attribute
106
- /// given by @p s.key.
107
- template <class T>
108
- requires requires { dict_to_struct_table<T>::table; }
109
- void set_param(T &t, ParamString s) {
110
- const auto &m = dict_to_struct_table<T>::table;
111
- auto [key, remainder] = split_key(s.key);
112
- auto it = m.find(key);
113
- if (it == m.end())
114
- throw invalid_param("Invalid key '" + std::string(key) +
115
- "' for type '" + demangled_typename(typeid(T)) +
116
- "' in '" + std::string(s.full_key) +
117
- "',\n possible keys are: " + possible_keys<T>());
118
- s.key = remainder;
119
- it->second.set(t, s);
120
- }
121
-
122
- /// Overwrites @p t based on the @p options that start with @p prefix.
123
- /// If @p used is not `nullopt`, sets corresponding flag of the options that
124
- /// were used.
125
- template <class T>
126
- void set_params(
127
- T &t, std::string_view prefix, std::span<const std::string_view> options,
128
- std::optional<std::span<bool>> used) {
129
-
130
- size_t index = 0;
131
- for (const auto &kv : options) {
132
- auto [key, value] = split_key(kv, '=');
133
- auto [pfx, remainder] = split_key(key);
134
- auto curr_index = index++;
135
- if (pfx != prefix)
136
- continue;
137
- if (used)
138
- (*used)[curr_index] = true;
139
- set_param(t, {.full_key = kv, .key = remainder, .value = value});
140
- }
141
- }
142
-
143
- /// Helper macro to easily specialize @ref alpaqa::params::dict_to_struct_table.
144
- #define PARAMS_TABLE(type_, ...) \
145
- template <> \
146
- struct dict_to_struct_table<type_> { \
147
- using type = type_; \
148
- inline static const dict_to_struct_table_t<type> table{__VA_ARGS__}; \
149
- }
150
-
151
- /// Helper macro to easily initialize a
152
- /// @ref alpaqa::params::dict_to_struct_table_t.
153
- #define PARAMS_MEMBER(name) \
154
- { \
155
- #name, &type::name \
156
- }
157
-
158
- } // namespace alpaqa::params
@@ -1,56 +0,0 @@
1
- #pragma once
2
-
3
- #include <alpaqa/problem/ocproblem.hpp>
4
-
5
- namespace alpaqa {
6
-
7
- template <Config Conf>
8
- void ControlProblemVTable<Conf>::default_get_D_N(const void *self, Box &D,
9
- const ControlProblemVTable &vtable) {
10
- vtable.get_D(self, D, vtable);
11
- }
12
- template <Config Conf>
13
- void ControlProblemVTable<Conf>::default_eval_add_Q_N(const void *self, crvec x, crvec h, rmat Q,
14
- const ControlProblemVTable &vtable) {
15
- vtable.eval_add_Q(self, vtable.N, x, h, Q);
16
- }
17
- template <Config Conf>
18
- void ControlProblemVTable<Conf>::default_eval_add_R_prod_masked(const void *, index_t, crvec, crvec,
19
- crindexvec, crindexvec, crvec, rvec,
20
- rvec,
21
- const ControlProblemVTable &) {
22
- throw not_implemented_error("default_eval_add_R_prod_masked");
23
- }
24
- template <Config Conf>
25
- void ControlProblemVTable<Conf>::default_eval_add_S_prod_masked(const void *, index_t, crvec, crvec,
26
- crindexvec, crvec, rvec, rvec,
27
- const ControlProblemVTable &) {
28
- throw not_implemented_error("default_eval_add_S_prod_masked");
29
- }
30
- template <Config Conf>
31
- auto ControlProblemVTable<Conf>::default_get_R_work_size(const void *, const ControlProblemVTable &)
32
- -> length_t {
33
- return 0;
34
- }
35
- template <Config Conf>
36
- auto ControlProblemVTable<Conf>::default_get_S_work_size(const void *, const ControlProblemVTable &)
37
- -> length_t {
38
- return 0;
39
- }
40
- template <Config Conf>
41
- void ControlProblemVTable<Conf>::default_eval_constr_N(const void *self, crvec x, rvec c,
42
- const ControlProblemVTable &vtable) {
43
- vtable.eval_constr(self, vtable.N, x, c, vtable);
44
- }
45
- template <Config Conf>
46
- void ControlProblemVTable<Conf>::default_eval_grad_constr_prod_N(
47
- const void *self, crvec x, crvec p, rvec grad_cx_p, const ControlProblemVTable &vtable) {
48
- vtable.eval_grad_constr_prod(self, vtable.N, x, p, grad_cx_p, vtable);
49
- }
50
- template <Config Conf>
51
- void ControlProblemVTable<Conf>::default_eval_add_gn_hess_constr_N(
52
- const void *self, crvec x, crvec M, rmat out, const ControlProblemVTable &vtable) {
53
- vtable.eval_add_gn_hess_constr(self, vtable.N, x, M, out, vtable);
54
- }
55
-
56
- } // namespace alpaqa