casadi 3.6.5__cp310-none-macosx_11_0_arm64.whl → 3.6.7__cp310-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,301 +0,0 @@
1
- #pragma once
2
-
3
- #include <alpaqa/config/config.hpp>
4
- #include <alpaqa/dl/dl-problem.h>
5
- #include <alpaqa/problem/box-constr-problem.hpp>
6
- #include <alpaqa/util/demangled-typename.hpp>
7
-
8
- #include <memory>
9
- #include <stdexcept>
10
- #include <string>
11
- #include <string_view>
12
- #include <type_traits>
13
-
14
- namespace alpaqa::dl {
15
-
16
- class DLLoader {
17
- protected:
18
- /// Load a shared library.
19
- DLLoader(
20
- /// Filename of the shared library to load.
21
- std::string so_filename,
22
- /// Prefix of the symbols in the library.
23
- std::string symbol_prefix);
24
-
25
- protected:
26
- std::string so_filename;
27
- std::string symbol_prefix;
28
-
29
- using dl_handle_t = std::shared_ptr<void>;
30
- /// Handle to the shared library (returned by `dlopen`).
31
- dl_handle_t handle;
32
-
33
- /// An associative array of additional functions exposed by the problem.
34
- std::shared_ptr<function_dict_t> extra_functions;
35
-
36
- /// Open the shared library using `dlopen`
37
- [[nodiscard]] std::shared_ptr<void> load_lib() const;
38
- /// Load a function with signature @p F from the library using `dlsym`.
39
- template <class F>
40
- [[nodiscard]] F *load_func(std::string_view name) const;
41
-
42
- template <class Signature>
43
- requires std::is_function_v<Signature>
44
- const std::function<Signature> &extra_func(const std::string &name) const {
45
- if (!extra_functions)
46
- throw std::out_of_range("DLProblem: no extra functions");
47
- auto it = extra_functions->dict.find(name);
48
- if (it == extra_functions->dict.end())
49
- throw std::out_of_range("DLProblem: no extra function named \"" +
50
- name + '"');
51
- try {
52
- return std::any_cast<const std::function<Signature> &>(it->second);
53
- } catch (const std::bad_any_cast &e) {
54
- throw std::logic_error(
55
- "DLProblem: incorrect type for extra function \"" + name +
56
- "\" (stored type: " + demangled_typename(it->second.type()) +
57
- ')');
58
- }
59
- }
60
-
61
- public:
62
- /// Unique type for calling an extra function that is a member function.
63
- struct instance_t;
64
-
65
- protected:
66
- template <class Func>
67
- struct FuncTag {};
68
-
69
- template <class Ret, class... FArgs, class... Args>
70
- decltype(auto)
71
- call_extra_func_helper(const void *instance,
72
- FuncTag<Ret(const instance_t *, FArgs...)>,
73
- const std::string &name, Args &&...args) const {
74
- return extra_func<Ret(const void *, FArgs...)>(name)(
75
- instance, std::forward<Args>(args)...);
76
- }
77
-
78
- template <class Ret, class... FArgs, class... Args>
79
- decltype(auto)
80
- call_extra_func_helper(void *instance, FuncTag<Ret(instance_t *, FArgs...)>,
81
- const std::string &name, Args &&...args) {
82
- return extra_func<Ret(void *, FArgs...)>(name)(
83
- instance, std::forward<Args>(args)...);
84
- }
85
-
86
- template <class Ret, class... FArgs, class... Args>
87
- decltype(auto) call_extra_func_helper(const void *, FuncTag<Ret(FArgs...)>,
88
- const std::string &name,
89
- Args &&...args) const {
90
- return extra_func<Ret(FArgs...)>(name)(std::forward<Args>(args)...);
91
- }
92
- };
93
-
94
- /// Class that loads a problem using `dlopen`.
95
- ///
96
- /// The shared library should export a C function with the name
97
- /// `<symbol_prefix>_register` that accepts a void pointer with user data, and
98
- /// returns a struct of type @ref alpaqa_problem_register_t that contains all
99
- /// data to represent the problem, as well as function pointers for all
100
- /// required operations. See @ref C++/DLProblem/main.cpp
101
- ///
102
- /// @note Copies are shallow, they all share the same problem instance, take
103
- /// that into account when using multiple threads.
104
- ///
105
- /// @ingroup grp_Problems
106
- /// @see @ref TypeErasedProblem
107
- class DLProblem : private DLLoader, public BoxConstrProblem<DefaultConfig> {
108
- public:
109
- USING_ALPAQA_CONFIG(DefaultConfig);
110
-
111
- /// Load a problem from a shared library.
112
- DLProblem(
113
- /// Filename of the shared library to load.
114
- std::string so_filename,
115
- /// Prefix of the registration function.
116
- std::string symbol_prefix = "alpaqa_problem",
117
- /// Pointer to custom user data to pass to the registration function.
118
- void *user_param = nullptr);
119
-
120
- private:
121
- /// Problem instance created by the registration function, including the
122
- /// deleter to destroy it.
123
- std::shared_ptr<void> instance;
124
- /// Pointer to the struct of function pointers for evaluating the objective,
125
- /// constraints, their gradients, etc.
126
- problem_functions_t *functions = nullptr;
127
-
128
- public:
129
- // clang-format off
130
- real_t eval_prox_grad_step(real_t γ, crvec x, crvec grad_ψ, rvec x̂, rvec p) const;
131
- real_t eval_f(crvec x) const;
132
- void eval_grad_f(crvec x, rvec grad_fx) const;
133
- void eval_g(crvec x, rvec gx) const;
134
- void eval_grad_g_prod(crvec x, crvec y, rvec grad_gxy) const;
135
- void eval_jac_g(crvec x, rindexvec inner_idx, rindexvec outer_ptr, rvec J_values) const;
136
- length_t get_jac_g_num_nonzeros() const;
137
- void eval_grad_gi(crvec x, index_t i, rvec grad_gi) const;
138
- void eval_hess_L_prod(crvec x, crvec y, real_t scale, crvec v, rvec Hv) const;
139
- void eval_hess_L(crvec x, crvec y, real_t scale, rindexvec inner_idx, rindexvec outer_ptr, rvec H_values) const;
140
- length_t get_hess_L_num_nonzeros() const;
141
- void eval_hess_ψ_prod(crvec x, crvec y, crvec Σ, real_t scale, crvec v, rvec Hv) const;
142
- void eval_hess_ψ(crvec x, crvec y, crvec Σ, real_t scale, rindexvec inner_idx, rindexvec outer_ptr, rvec H_values) const;
143
- length_t get_hess_ψ_num_nonzeros() const;
144
- real_t eval_f_grad_f(crvec x, rvec grad_fx) const;
145
- real_t eval_f_g(crvec x, rvec g) const;
146
- void eval_grad_f_grad_g_prod(crvec x, crvec y, rvec grad_f, rvec grad_gxy) const;
147
- void eval_grad_L(crvec x, crvec y, rvec grad_L, rvec work_n) const;
148
- real_t eval_ψ(crvec x, crvec y, crvec Σ, rvec ŷ) const;
149
- void eval_grad_ψ(crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m) const;
150
- real_t eval_ψ_grad_ψ(crvec x, crvec y, crvec Σ, rvec grad_ψ, rvec work_n, rvec work_m) const;
151
-
152
- [[nodiscard]] bool provides_eval_f() const;
153
- [[nodiscard]] bool provides_eval_grad_f() const;
154
- [[nodiscard]] bool provides_eval_g() const;
155
- [[nodiscard]] bool provides_eval_grad_g_prod() const;
156
- [[nodiscard]] bool provides_eval_jac_g() const;
157
- [[nodiscard]] bool provides_get_jac_g_num_nonzeros() const;
158
- [[nodiscard]] bool provides_eval_grad_gi() const;
159
- [[nodiscard]] bool provides_eval_hess_L_prod() const;
160
- [[nodiscard]] bool provides_eval_hess_L() const;
161
- [[nodiscard]] bool provides_get_hess_L_num_nonzeros() const;
162
- [[nodiscard]] bool provides_eval_hess_ψ_prod() const;
163
- [[nodiscard]] bool provides_eval_hess_ψ() const;
164
- [[nodiscard]] bool provides_get_hess_ψ_num_nonzeros() const;
165
- [[nodiscard]] bool provides_eval_f_grad_f() const;
166
- [[nodiscard]] bool provides_eval_f_g() const;
167
- [[nodiscard]] bool provides_eval_grad_f_grad_g_prod() const;
168
- [[nodiscard]] bool provides_eval_grad_L() const;
169
- [[nodiscard]] bool provides_eval_ψ() const;
170
- [[nodiscard]] bool provides_eval_grad_ψ() const;
171
- [[nodiscard]] bool provides_eval_ψ_grad_ψ() const;
172
- [[nodiscard]] bool provides_get_box_C() const;
173
- // clang-format on
174
-
175
- using instance_t = DLLoader::instance_t;
176
-
177
- template <class Signature, class... Args>
178
- decltype(auto) call_extra_func(const std::string &name,
179
- Args &&...args) const {
180
- return extra_func_helper(instance.get(), FuncTag<Signature>{}, name,
181
- std::forward<Args>(args)...);
182
- }
183
-
184
- template <class Signature, class... Args>
185
- decltype(auto) call_extra_func(const std::string &name, Args &&...args) {
186
- return call_extra_func_helper(instance.get(), FuncTag<Signature>{},
187
- name, std::forward<Args>(args)...);
188
- }
189
- };
190
-
191
- #if ALPAQA_WITH_OCP
192
-
193
- /// Class that loads an optimal control problem using `dlopen`.
194
- ///
195
- /// The shared library should export a C function with the name
196
- /// `<symbol_prefix>_register` that accepts a void pointer with user data, and
197
- /// returns a struct of type @ref alpaqa_control_problem_register_t that
198
- /// contains all data to represent the problem, as well as function pointers for
199
- /// all required operations. See @ref C++/DLProblem/main.cpp
200
- ///
201
- /// @note Copies are shallow, they all share the same problem instance, take
202
- /// that into account when using multiple threads.
203
- ///
204
- /// @ingroup grp_Problems
205
- /// @see @ref TypeErasedControlProblem
206
- class DLControlProblem : private DLLoader {
207
- public:
208
- USING_ALPAQA_CONFIG(DefaultConfig);
209
- using Box = alpaqa::Box<config_t>;
210
-
211
- /// Load a problem from a shared library.
212
- DLControlProblem(
213
- /// Filename of the shared library to load.
214
- std::string so_filename,
215
- /// Prefix of the registration function.
216
- std::string symbol_prefix = "alpaqa_control_problem",
217
- /// Pointer to custom user data to pass to the registration function.
218
- void *user_param = nullptr);
219
-
220
- private:
221
- /// Problem instance created by the registration function, including the
222
- /// deleter to destroy it.
223
- std::shared_ptr<void> instance;
224
- /// Pointer to the struct of function pointers for evaluating the objective,
225
- /// constraints, their gradients, etc.
226
- control_problem_functions_t *functions = nullptr;
227
-
228
- public:
229
- length_t get_N() const { return functions->N; }
230
- length_t get_nx() const { return functions->nx; }
231
- length_t get_nu() const { return functions->nu; }
232
- length_t get_nh() const { return functions->nh; }
233
- length_t get_nh_N() const { return functions->nh_N; }
234
- length_t get_nc() const { return functions->nc; }
235
- length_t get_nc_N() const { return functions->nc_N; }
236
-
237
- void check() const {} // TODO
238
-
239
- // clang-format off
240
- void get_U(Box &U) const;
241
- void get_D(Box &D) const;
242
- void get_D_N(Box &D) const;
243
- void get_x_init(rvec x_init) const;
244
- void eval_f(index_t timestep, crvec x, crvec u, rvec fxu) const;
245
- void eval_jac_f(index_t timestep, crvec x, crvec u, rmat J_fxu) const;
246
- void eval_grad_f_prod(index_t timestep, crvec x, crvec u, crvec p, rvec grad_fxu_p) const;
247
- void eval_h(index_t timestep, crvec x, crvec u, rvec h) const;
248
- void eval_h_N(crvec x, rvec h) const;
249
- [[nodiscard]] real_t eval_l(index_t timestep, crvec h) const;
250
- [[nodiscard]] real_t eval_l_N(crvec h) const;
251
- void eval_qr(index_t timestep, crvec xu, crvec h, rvec qr) const;
252
- void eval_q_N(crvec x, crvec h, rvec q) const;
253
- void eval_add_Q(index_t timestep, crvec xu, crvec h, rmat Q) const;
254
- void eval_add_Q_N(crvec x, crvec h, rmat Q) const;
255
- void eval_add_R_masked(index_t timestep, crvec xu, crvec h, crindexvec mask, rmat R, rvec work) const;
256
- void eval_add_S_masked(index_t timestep, crvec xu, crvec h, crindexvec mask, rmat S, rvec work) const;
257
- void eval_add_R_prod_masked(index_t timestep, crvec xu, crvec h, crindexvec mask_J, crindexvec mask_K, crvec v, rvec out, rvec work) const;
258
- void eval_add_S_prod_masked(index_t timestep, crvec xu, crvec h, crindexvec mask_K, crvec v, rvec out, rvec work) const;
259
- [[nodiscard]] length_t get_R_work_size() const;
260
- [[nodiscard]] length_t get_S_work_size() const;
261
- void eval_constr(index_t timestep, crvec x, rvec c) const;
262
- void eval_constr_N(crvec x, rvec c) const;
263
- void eval_grad_constr_prod(index_t timestep, crvec x, crvec p, rvec grad_cx_p) const;
264
- void eval_grad_constr_prod_N(crvec x, crvec p, rvec grad_cx_p) const;
265
- void eval_add_gn_hess_constr(index_t timestep, crvec x, crvec M, rmat out) const;
266
- void eval_add_gn_hess_constr_N(crvec x, crvec M, rmat out) const;
267
-
268
- [[nodiscard]] bool provides_get_D() const;
269
- [[nodiscard]] bool provides_get_D_N() const;
270
- [[nodiscard]] bool provides_eval_add_Q_N() const;
271
- [[nodiscard]] bool provides_eval_add_R_prod_masked() const;
272
- [[nodiscard]] bool provides_eval_add_S_prod_masked() const;
273
- [[nodiscard]] bool provides_get_R_work_size() const;
274
- [[nodiscard]] bool provides_get_S_work_size() const;
275
- [[nodiscard]] bool provides_eval_constr() const;
276
- [[nodiscard]] bool provides_eval_constr_N() const;
277
- [[nodiscard]] bool provides_eval_grad_constr_prod() const;
278
- [[nodiscard]] bool provides_eval_grad_constr_prod_N() const;
279
- [[nodiscard]] bool provides_eval_add_gn_hess_constr() const;
280
- [[nodiscard]] bool provides_eval_add_gn_hess_constr_N() const;
281
- // clang-format on
282
-
283
- using instance_t = DLLoader::instance_t;
284
-
285
- template <class Signature, class... Args>
286
- decltype(auto) call_extra_func(const std::string &name,
287
- Args &&...args) const {
288
- return extra_func_helper(instance.get(), FuncTag<Signature>{}, name,
289
- std::forward<Args>(args)...);
290
- }
291
-
292
- template <class Signature, class... Args>
293
- decltype(auto) call_extra_func(const std::string &name, Args &&...args) {
294
- return call_extra_func_helper(instance.get(), FuncTag<Signature>{},
295
- name, std::forward<Args>(args)...);
296
- }
297
- };
298
-
299
- #endif
300
-
301
- } // namespace alpaqa::dl
@@ -1,42 +0,0 @@
1
-
2
- #ifndef ALPAQA_EXPORT_H
3
- #define ALPAQA_EXPORT_H
4
-
5
- #ifdef ALPAQA_STATIC_DEFINE
6
- # define ALPAQA_EXPORT
7
- # define ALPAQA_NO_EXPORT
8
- #else
9
- # ifndef ALPAQA_EXPORT
10
- # ifdef alpaqa_EXPORTS
11
- /* We are building this library */
12
- # define ALPAQA_EXPORT __attribute__((visibility("default")))
13
- # else
14
- /* We are using this library */
15
- # define ALPAQA_EXPORT __attribute__((visibility("default")))
16
- # endif
17
- # endif
18
-
19
- # ifndef ALPAQA_NO_EXPORT
20
- # define ALPAQA_NO_EXPORT __attribute__((visibility("hidden")))
21
- # endif
22
- #endif
23
-
24
- #ifndef ALPAQA_DEPRECATED
25
- # define ALPAQA_DEPRECATED __attribute__ ((__deprecated__))
26
- #endif
27
-
28
- #ifndef ALPAQA_DEPRECATED_EXPORT
29
- # define ALPAQA_DEPRECATED_EXPORT ALPAQA_EXPORT ALPAQA_DEPRECATED
30
- #endif
31
-
32
- #ifndef ALPAQA_DEPRECATED_NO_EXPORT
33
- # define ALPAQA_DEPRECATED_NO_EXPORT ALPAQA_NO_EXPORT ALPAQA_DEPRECATED
34
- #endif
35
-
36
- #if 0 /* DEFINE_NO_DEPRECATED */
37
- # ifndef ALPAQA_NO_DEPRECATED
38
- # define ALPAQA_NO_DEPRECATED
39
- # endif
40
- #endif
41
-
42
- #endif /* ALPAQA_EXPORT_H */
@@ -1,30 +0,0 @@
1
- #pragma once
2
-
3
- #include <alpaqa/export.h>
4
-
5
- #ifndef DOXYGEN
6
-
7
- #ifdef _WIN32
8
- #ifdef __GNUC__ // mingw
9
- #define ALPAQA_EXPORT_EXTERN_TEMPLATE(strcls, name, ...)
10
- #define ALPAQA_EXPORT_TEMPLATE(strcls, name, ...) \
11
- template strcls ALPAQA_EXPORT name<__VA_ARGS__>
12
- #else
13
- #define ALPAQA_EXPORT_EXTERN_TEMPLATE(strcls, name, ...) \
14
- extern template strcls name<__VA_ARGS__>
15
- #define ALPAQA_EXPORT_TEMPLATE(strcls, name, ...) \
16
- template strcls ALPAQA_EXPORT name<__VA_ARGS__>
17
- #endif
18
- #else
19
- #define ALPAQA_EXPORT_EXTERN_TEMPLATE(strcls, name, ...) \
20
- extern template strcls ALPAQA_EXPORT name<__VA_ARGS__>
21
- #define ALPAQA_EXPORT_TEMPLATE(strcls, name, ...) \
22
- template strcls ALPAQA_EXPORT name<__VA_ARGS__>
23
- #endif
24
-
25
- #else // DOXYGEN
26
-
27
- #define ALPAQA_EXPORT_EXTERN_TEMPLATE(...)
28
- #define ALPAQA_EXPORT_TEMPLATE(...)
29
-
30
- #endif // DOXYGEN
@@ -1,240 +0,0 @@
1
- #pragma once
2
-
3
- #include <alpaqa/accelerators/lbfgs.hpp>
4
-
5
- #include <cmath>
6
- #include <limits>
7
- #include <stdexcept>
8
-
9
- namespace alpaqa {
10
-
11
- template <Config Conf>
12
- bool LBFGS<Conf>::update_valid(const Params &params, real_t yᵀs, real_t sᵀs,
13
- real_t pᵀp) {
14
- // Check if this L-BFGS update is accepted
15
- if (sᵀs <= params.min_abs_s)
16
- return false;
17
- if (not std::isfinite(yᵀs))
18
- return false;
19
- real_t a_yᵀs = params.force_pos_def ? yᵀs : std::abs(yᵀs);
20
- if (a_yᵀs <= params.min_div_fac * sᵀs)
21
- return false;
22
-
23
- // CBFGS condition: https://epubs.siam.org/doi/10.1137/S1052623499354242
24
- if (params.cbfgs) {
25
- const real_t α = params.cbfgs.α;
26
- const real_t ϵ = params.cbfgs.ϵ;
27
- // Condition: yᵀs / sᵀs >= ϵ ‖p‖^α
28
- bool cbfgs_cond = a_yᵀs >= sᵀs * ϵ * std::pow(pᵀp, α / 2);
29
- if (not cbfgs_cond)
30
- return false;
31
- }
32
-
33
- return true;
34
- }
35
-
36
- template <Config Conf>
37
- bool LBFGS<Conf>::update_sy_impl(const auto &s, const auto &y,
38
- real_t pₙₑₓₜᵀpₙₑₓₜ, bool forced) {
39
- real_t yᵀs = y.dot(s);
40
- real_t ρ = 1 / yᵀs;
41
- if (not forced) {
42
- real_t sᵀs = s.squaredNorm();
43
- if (not update_valid(params, yᵀs, sᵀs, pₙₑₓₜᵀpₙₑₓₜ))
44
- return false;
45
- }
46
-
47
- // Store the new s and y vectors
48
- sto.s(idx) = s;
49
- sto.y(idx) = y;
50
- sto.ρ(idx) = ρ;
51
-
52
- // Increment the index in the circular buffer
53
- idx = succ(idx);
54
- full |= idx == 0;
55
-
56
- return true;
57
- }
58
-
59
- template <Config Conf>
60
- bool LBFGS<Conf>::update_sy(crvec s, crvec y, real_t pₙₑₓₜᵀpₙₑₓₜ, bool forced) {
61
- return update_sy_impl(s, y, pₙₑₓₜᵀpₙₑₓₜ, forced);
62
- }
63
-
64
- template <Config Conf>
65
- bool LBFGS<Conf>::update(crvec xₖ, crvec xₙₑₓₜ, crvec pₖ, crvec pₙₑₓₜ,
66
- Sign sign, bool forced) {
67
- const auto s = xₙₑₓₜ - xₖ;
68
- const auto y = (sign == Sign::Positive) ? pₙₑₓₜ - pₖ : pₖ - pₙₑₓₜ;
69
- real_t pₙₑₓₜᵀpₙₑₓₜ = params.cbfgs ? pₙₑₓₜ.squaredNorm() : 0;
70
- return update_sy_impl(s, y, pₙₑₓₜᵀpₙₑₓₜ, forced);
71
- }
72
-
73
- template <Config Conf>
74
- bool LBFGS<Conf>::apply(rvec q, real_t γ) const {
75
- // Only apply if we have previous vectors s and y
76
- if (idx == 0 && not full)
77
- return false;
78
-
79
- // If the step size is negative, compute it as sᵀy/yᵀy
80
- if (params.stepsize == LBFGSStepSize::BasedOnCurvature || γ < 0) {
81
- auto new_idx = pred(idx);
82
- real_t yᵀy = y(new_idx).squaredNorm();
83
- γ = 1 / (ρ(new_idx) * yᵀy);
84
- }
85
-
86
- foreach_rev([&](index_t i) {
87
- α(i) = ρ(i) * s(i).dot(q);
88
- q -= α(i) * y(i);
89
- });
90
-
91
- // r ← H_0 q
92
- q *= γ;
93
-
94
- foreach_fwd([&](index_t i) {
95
- real_t β = ρ(i) * y(i).dot(q);
96
- q -= (β - α(i)) * s(i);
97
- });
98
-
99
- return true;
100
- }
101
-
102
- template <Config Conf>
103
- bool LBFGS<Conf>::apply_masked_impl(rvec q, real_t γ, const auto &J) const {
104
- // Only apply if we have previous vectors s and y
105
- if (idx == 0 && not full)
106
- return false;
107
- const bool fullJ = q.size() == static_cast<index_t>(J.size());
108
-
109
- // Use curvature to compute initial scale
110
- if (params.stepsize == LBFGSStepSize::BasedOnCurvature)
111
- γ = -1;
112
-
113
- if (params.cbfgs)
114
- throw std::invalid_argument("CBFGS check not supported when using "
115
- "masked version of LBFGS::apply_masked()");
116
-
117
- // Eigen 3.3.9 doesn't yet support indexing using a vector of indices
118
- // so we'll have to do it manually.
119
- // TODO: Abstract this away in an expression template / nullary expression?
120
- // Or wait for Eigen update?
121
- // Update: Eigen 3.4's indexing seems significantly slower, so the manual
122
- // for loops stay for now.
123
-
124
- // Dot product of two vectors, adding only the indices in set J
125
- const auto dotJ = [&J, fullJ](const auto &a, const auto &b) {
126
- if (fullJ) {
127
- return a.dot(b);
128
- } else {
129
- real_t acc = 0;
130
- for (auto j : J)
131
- acc += a(j) * b(j);
132
- return acc;
133
- }
134
- };
135
- // y -= a x, scaling and subtracting only the indices in set J
136
- const auto axmyJ = [&J, fullJ](real_t a, const auto &x, auto &y) {
137
- if (fullJ) {
138
- y -= a * x;
139
- } else {
140
- for (auto j : J)
141
- y(j) -= a * x(j);
142
- }
143
- };
144
- // x *= a, scaling only the indices in set J
145
- const auto scalJ = [&J, fullJ](real_t a, auto &x) {
146
- if (fullJ) {
147
- x *= a;
148
- } else {
149
- for (auto j : J)
150
- x(j) *= a;
151
- }
152
- };
153
-
154
- foreach_rev([&](index_t i) {
155
- // Recompute ρ, it depends on the index set J. Note that even if ρ was
156
- // positive for the full vectors s and y, that's not necessarily the
157
- // case for the smaller vectors s(J) and y(J).
158
- real_t yᵀs = dotJ(s(i), y(i));
159
- real_t sᵀs = dotJ(s(i), s(i));
160
- ρ(i) = 1 / yᵀs;
161
- // Check if we should include this pair of vectors
162
- if (not update_valid(params, yᵀs, sᵀs, 0)) {
163
- ρ(i) = NaN<config_t>;
164
- return; // continue foreach
165
- }
166
-
167
- α(i) = ρ(i) * dotJ(s(i), q); // αᵢ = ρᵢ〈sᵢ, q〉
168
- axmyJ(α(i), y(i), q); // q -= αᵢ yᵢ
169
-
170
- if (γ < 0) {
171
- // Compute step size based on most recent valid yᵀs/yᵀy
172
- real_t yᵀy = dotJ(y(i), y(i));
173
- γ = 1 / (ρ(i) * yᵀy);
174
- }
175
- });
176
-
177
- // If all ρ == 0, fail
178
- if (γ < 0)
179
- return false;
180
-
181
- // r ← H_0 q
182
- scalJ(γ, q); // q *= γ
183
-
184
- foreach_fwd([&](index_t i) {
185
- if (std::isnan(ρ(i)))
186
- return; // continue foreach
187
-
188
- real_t β = ρ(i) * dotJ(y(i), q); // βᵢ = ρᵢ〈yᵢ, q〉
189
- axmyJ(β - α(i), s(i), q); // q -= (βᵢ - αᵢ) sᵢ
190
- });
191
-
192
- return true;
193
- }
194
-
195
- template <Config Conf>
196
- bool LBFGS<Conf>::apply_masked(rvec q, real_t γ, crindexvec J) const {
197
- return apply_masked_impl(q, γ, J);
198
- }
199
-
200
- template <Config Conf>
201
- bool LBFGS<Conf>::apply_masked(rvec q, real_t γ,
202
- const std::vector<index_t> &J) const {
203
- return apply_masked_impl(q, γ, J);
204
- }
205
-
206
- template <Config Conf>
207
- void LBFGS<Conf>::reset() {
208
- idx = 0;
209
- full = false;
210
- }
211
-
212
- template <Config Conf>
213
- void LBFGS<Conf>::resize(length_t n) {
214
- if (params.memory < 1)
215
- throw std::invalid_argument("LBFGS::Params::memory must be >= 1");
216
- sto.resize(n, params.memory);
217
- reset();
218
- }
219
-
220
- template <Config Conf>
221
- void LBFGSStorage<Conf>::resize(length_t n, length_t history) {
222
- sto.resize(n + 1, history * 2);
223
- }
224
-
225
- template <Config Conf>
226
- void LBFGS<Conf>::scale_y(real_t factor) {
227
- if (full) {
228
- for (index_t i = 0; i < history(); ++i) {
229
- y(i) *= factor;
230
- ρ(i) *= 1 / factor;
231
- }
232
- } else {
233
- for (index_t i = 0; i < idx; ++i) {
234
- y(i) *= factor;
235
- ρ(i) *= 1 / factor;
236
- }
237
- }
238
- }
239
-
240
- } // namespace alpaqa