casadi 3.6.5__cp38-none-macosx_11_0_arm64.whl → 3.6.7__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 (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,78 +0,0 @@
1
- #pragma once
2
-
3
- #include <alpaqa/export.hpp>
4
- #include <alpaqa/util/float.hpp>
5
-
6
- #include <iosfwd>
7
- #include <limits>
8
- #include <string>
9
- #include <string_view>
10
-
11
- #include <Eigen/Core>
12
-
13
- namespace alpaqa {
14
-
15
- template <std::floating_point F>
16
- ALPAQA_EXPORT std::string
17
- float_to_str(F value, int precision = std::numeric_limits<F>::max_digits10);
18
-
19
- template <class T>
20
- ALPAQA_EXPORT std::ostream &
21
- print_csv_impl(std::ostream &os, const T &M, std::string_view sep = ",",
22
- std::string_view begin = "", std::string_view end = "\n");
23
-
24
- template <class T>
25
- ALPAQA_EXPORT std::ostream &print_matlab_impl(std::ostream &os, const T &M,
26
- std::string_view end = ";\n");
27
-
28
- template <class T>
29
- ALPAQA_EXPORT std::ostream &print_python_impl(std::ostream &os, const T &M,
30
- std::string_view end = "\n");
31
-
32
- #define ALPAQA_PRINT_CSV_OVL_IMPL(type) \
33
- inline std::ostream &print_csv( \
34
- std::ostream &os, const Eigen::Ref<const Eigen::MatrixX<type>> &M, \
35
- std::string_view sep, std::string_view begin, std::string_view end) { \
36
- return print_csv_impl(os, M, sep, begin, end); \
37
- } \
38
- inline std::ostream &print_csv( \
39
- std::ostream &os, const Eigen::Ref<const Eigen::MatrixX<type>> &M, \
40
- std::string_view sep, std::string_view begin) { \
41
- return print_csv_impl(os, M, sep, begin); \
42
- } \
43
- inline std::ostream &print_csv( \
44
- std::ostream &os, const Eigen::Ref<const Eigen::MatrixX<type>> &M, \
45
- std::string_view sep) { \
46
- return print_csv_impl(os, M, sep); \
47
- } \
48
- inline std::ostream &print_csv( \
49
- std::ostream &os, const Eigen::Ref<const Eigen::MatrixX<type>> &M) { \
50
- return print_csv_impl(os, M); \
51
- }
52
- #define ALPAQA_PRINT_OVL_IMPL(name, type) \
53
- inline std::ostream &print_##name( \
54
- std::ostream &os, const Eigen::Ref<const Eigen::MatrixX<type>> &M, \
55
- std::string_view end) { \
56
- return print_##name##_impl(os, M, end); \
57
- } \
58
- inline std::ostream &print_##name( \
59
- std::ostream &os, const Eigen::Ref<const Eigen::MatrixX<type>> &M) { \
60
- return print_##name##_impl(os, M); \
61
- }
62
- #define ALPAQA_PRINT_OVL(type) \
63
- ALPAQA_PRINT_CSV_OVL_IMPL(type) \
64
- ALPAQA_PRINT_OVL_IMPL(matlab, type) \
65
- ALPAQA_PRINT_OVL_IMPL(python, type)
66
-
67
- ALPAQA_PRINT_OVL(float)
68
- ALPAQA_PRINT_OVL(double)
69
- ALPAQA_PRINT_OVL(long double)
70
- #ifdef ALPAQA_WITH_QUAD_PRECISION
71
- ALPAQA_PRINT_OVL(__float128)
72
- #endif
73
-
74
- #undef ALPAQA_PRINT_OVL
75
- #undef ALPAQA_PRINT_OVL_IMPL
76
- #undef ALPAQA_PRINT_CSV_OVL_IMPL
77
-
78
- } // namespace alpaqa
@@ -1,20 +0,0 @@
1
- #pragma once
2
-
3
- #ifdef ALPAQA_WITH_QUAD_PRECISION
4
-
5
- #include <alpaqa/util/quadmath/quadmath.hpp>
6
-
7
- #include <cassert>
8
- #include <ostream>
9
-
10
- namespace std {
11
- inline ostream &operator<<(ostream &os, __float128 f) {
12
- char buf[128];
13
- auto precision = static_cast<int>(os.precision());
14
- [[maybe_unused]] int n = quadmath_snprintf(buf, sizeof(buf), "%#.*Qg", precision, f);
15
- assert((size_t)n < sizeof buf);
16
- return os << buf;
17
- }
18
- } // namespace std
19
-
20
- #endif
@@ -1,137 +0,0 @@
1
- #pragma once
2
-
3
- #ifdef ALPAQA_WITH_QUAD_PRECISION
4
- #pragma GCC system_header
5
-
6
- #include <quadmath.h>
7
-
8
- #include <alpaqa/export.h>
9
-
10
- #include <cmath>
11
- #include <iosfwd>
12
- #include <limits>
13
-
14
- namespace std {
15
-
16
- // From GCC 11's <limits>
17
-
18
- /// numeric_limits<__float128> specialization.
19
- template <>
20
- struct numeric_limits<__float128> {
21
- static constexpr bool is_specialized = true;
22
-
23
- static constexpr __float128 min() noexcept { return FLT128_MIN; }
24
- static constexpr __float128 max() noexcept { return FLT128_MAX; }
25
- static constexpr __float128 lowest() noexcept { return -FLT128_MAX; }
26
-
27
- static constexpr int digits = FLT128_MANT_DIG;
28
- static constexpr int digits10 = FLT128_DIG;
29
- static constexpr int max_digits10 = (2 + FLT128_MANT_DIG * 643L / 2136);
30
- static constexpr bool is_signed = true;
31
- static constexpr bool is_integer = false;
32
- static constexpr bool is_exact = false;
33
- static constexpr int radix = 2;
34
-
35
- static constexpr __float128 epsilon() noexcept { return FLT128_EPSILON; }
36
- static constexpr __float128 round_error() noexcept { return 0.5Q; }
37
-
38
- static constexpr int min_exponent = FLT128_MIN_EXP;
39
- static constexpr int min_exponent10 = FLT128_MIN_10_EXP;
40
- static constexpr int max_exponent = FLT128_MAX_EXP;
41
- static constexpr int max_exponent10 = FLT128_MAX_10_EXP;
42
-
43
- static constexpr bool has_infinity = true;
44
- static constexpr bool has_quiet_NaN = true;
45
- static constexpr bool has_signaling_NaN = has_quiet_NaN;
46
- static constexpr float_denorm_style has_denorm = denorm_present;
47
- static constexpr bool has_denorm_loss = false;
48
-
49
- static constexpr __float128 infinity() noexcept { return __builtin_huge_valq(); }
50
- static constexpr __float128 quiet_NaN() noexcept { return __builtin_nanq(""); }
51
- static constexpr __float128 signaling_NaN() noexcept { return __builtin_nansq(""); }
52
- static constexpr __float128 denorm_min() noexcept { return FLT128_DENORM_MIN; }
53
-
54
- static constexpr bool is_iec559 = has_infinity && has_quiet_NaN && has_denorm == denorm_present;
55
- static constexpr bool is_bounded = true;
56
- static constexpr bool is_modulo = false;
57
-
58
- static constexpr bool traps = false;
59
- static constexpr bool tinyness_before = false;
60
- static constexpr float_round_style round_style = round_to_nearest;
61
- };
62
-
63
- // From GCC's quadmath.h
64
-
65
- inline __float128 acos(__float128 x) { return ::acosq(x); }
66
- inline __float128 acosh(__float128 x) { return ::acoshq(x); }
67
- inline __float128 asin(__float128 x) { return ::asinq(x); }
68
- inline __float128 asinh(__float128 x) { return ::asinhq(x); }
69
- inline __float128 atan(__float128 x) { return ::atanq(x); }
70
- inline __float128 atanh(__float128 x) { return ::atanhq(x); }
71
- inline __float128 atan2(__float128 x, __float128 y) { return ::atan2q(x, y); }
72
- inline __float128 cbrt(__float128 x) { return ::cbrtq(x); }
73
- inline __float128 ceil(__float128 x) { return ::ceilq(x); }
74
- inline __float128 copysign(__float128 x, __float128 y) { return ::copysignq(x, y); }
75
- inline __float128 cosh(__float128 x) { return ::coshq(x); }
76
- inline __float128 cos(__float128 x) { return ::cosq(x); }
77
- inline __float128 erf(__float128 x) { return ::erfq(x); }
78
- inline __float128 erfc(__float128 x) { return ::erfcq(x); }
79
- inline __float128 exp2(__float128 x) { return ::exp2q(x); }
80
- inline __float128 exp(__float128 x) { return ::expq(x); }
81
- inline __float128 expm1(__float128 x) { return ::expm1q(x); }
82
- inline __float128 fabs(__float128 x) { return ::fabsq(x); }
83
- inline __float128 fdim(__float128 x, __float128 y) { return ::fdimq(x, y); }
84
- inline int finite(__float128 x) { return ::finiteq(x); }
85
- inline __float128 floor(__float128 x) { return ::floorq(x); }
86
- inline __float128 fma(__float128 x, __float128 y, __float128 z) { return ::fmaq(x, y, z); }
87
- inline __float128 fmax(__float128 x, __float128 y) { return ::fmaxq(x, y); }
88
- inline __float128 fmin(__float128 x, __float128 y) { return ::fminq(x, y); }
89
- inline __float128 fmod(__float128 x, __float128 y) { return ::fmodq(x, y); }
90
- inline __float128 frexp(__float128 x, int *y) { return ::frexpq(x, y); }
91
- inline __float128 hypot(__float128 x, __float128 y) { return ::hypotq(x, y); }
92
- inline int isinf(__float128 x) { return ::isinfq(x); }
93
- inline int ilogb(__float128 x) { return ::ilogbq(x); }
94
- inline int isfinite(__float128 x) { return ::finiteq(x); }
95
- inline int isnan(__float128 x) { return ::isnanq(x); }
96
- inline int issignaling(__float128 x) { return ::issignalingq(x); }
97
- inline __float128 j0(__float128 x) { return ::j0q(x); }
98
- inline __float128 j1(__float128 x) { return ::j1q(x); }
99
- inline __float128 jn(int n, __float128 x) { return ::jnq(n, x); }
100
- inline __float128 ldexp(__float128 x, int y) { return ::ldexpq(x, y); }
101
- inline __float128 lgamma(__float128 x) { return ::lgammaq(x); }
102
- inline long long int llrint(__float128 x) { return ::llrintq(x); }
103
- inline long long int llround(__float128 x) { return ::llroundq(x); }
104
- inline __float128 logb(__float128 x) { return ::logbq(x); }
105
- inline __float128 log(__float128 x) { return ::logq(x); }
106
- inline __float128 log10(__float128 x) { return ::log10q(x); }
107
- inline __float128 log2(__float128 x) { return ::log2q(x); }
108
- inline __float128 log1p(__float128 x) { return ::log1pq(x); }
109
- inline long int lrint(__float128 x) { return ::lrintq(x); }
110
- inline long int lround(__float128 x) { return ::lroundq(x); }
111
- inline __float128 modf(__float128 x, __float128 *y) { return ::modfq(x, y); }
112
- // inline __float128 nan(const char *x) { return ::nanq(x); }
113
- inline __float128 nearbyint(__float128 x) { return ::nearbyintq(x); }
114
- inline __float128 nextafter(__float128 x, __float128 y) { return ::nextafterq(x, y); }
115
- inline __float128 pow(__float128 x, __float128 y) { return ::powq(x, y); }
116
- inline __float128 remainder(__float128 x, __float128 y) { return ::remainderq(x, y); }
117
- inline __float128 remquo(__float128 x, __float128 y, int *z) { return ::remquoq(x, y, z); }
118
- inline __float128 rint(__float128 x) { return ::rintq(x); }
119
- inline __float128 round(__float128 x) { return ::roundq(x); }
120
- inline __float128 scalbln(__float128 x, long int y) { return ::scalblnq(x, y); }
121
- inline __float128 scalbn(__float128 x, int y) { return ::scalbnq(x, y); }
122
- inline int signbit(__float128 x) { return ::signbitq(x); }
123
- inline void sincosq(__float128 x, __float128 *y, __float128 *z) { return ::sincosq(x, y, z); }
124
- inline __float128 sinh(__float128 x) { return ::sinhq(x); }
125
- inline __float128 sin(__float128 x) { return ::sinq(x); }
126
- inline __float128 sqrt(__float128 x) { return ::sqrtq(x); }
127
- inline __float128 tan(__float128 x) { return ::tanq(x); }
128
- inline __float128 tanh(__float128 x) { return ::tanhq(x); }
129
- inline __float128 tgamma(__float128 x) { return ::tgammaq(x); }
130
- inline __float128 trunc(__float128 x) { return ::truncq(x); }
131
- inline __float128 y0(__float128 x) { return ::y0q(x); }
132
- inline __float128 y1(__float128 x) { return ::y1q(x); }
133
- inline __float128 yn(int n, __float128 x) { return ::ynq(n, x); }
134
-
135
- } // namespace std
136
-
137
- #endif
@@ -1,29 +0,0 @@
1
- #pragma once
2
-
3
- #include <alpaqa/util/type-erasure.hpp>
4
- #include <functional> // std::invoke
5
-
6
- #define ALPAQA_TE_REQUIRED_METHOD(vtable, type, member) \
7
- do { \
8
- static_assert( \
9
- requires { &type::member; }, \
10
- "Missing required method '" #type "::" #member "'"); \
11
- (vtable).member = util::type_erased_wrapped<type, &type::member>(); \
12
- } while (0)
13
- #define ALPAQA_TE_OPTIONAL_METHOD(vtable, type, member, instance) \
14
- do { \
15
- if constexpr (requires { &type::member; }) { \
16
- using vtable_t = std::remove_cvref_t<decltype(vtable)>; \
17
- auto assign_vtable = [&] { \
18
- (vtable).member = \
19
- util::type_erased_wrapped<type, &type::member, \
20
- const vtable_t &>(); \
21
- }; \
22
- if constexpr (requires { &type::provides_##member; }) { \
23
- if (std::invoke(&type::provides_##member, instance)) \
24
- assign_vtable(); \
25
- } else { \
26
- assign_vtable(); \
27
- } \
28
- } \
29
- } while (0)
@@ -1,212 +0,0 @@
1
- #pragma once
2
-
3
- #include <cstddef>
4
- #include <iterator>
5
-
6
- namespace alpaqa {
7
-
8
- template <class IndexT = size_t>
9
- struct CircularIndices {
10
- using Index = IndexT;
11
- CircularIndices(Index zerobased, Index circular)
12
- : zerobased(zerobased), circular(circular) {}
13
- Index zerobased;
14
- Index circular;
15
- };
16
- /// @related CircularIndices
17
- /// @note Only valid for two indices in the same range.
18
- template <class IndexT>
19
- bool operator==(CircularIndices<IndexT> a, CircularIndices<IndexT> b) {
20
- return a.zerobased == b.zerobased;
21
- }
22
- /// @related CircularIndices
23
- /// @note Only valid for two indices in the same range.
24
- template <class IndexT>
25
- bool operator!=(CircularIndices<IndexT> a, CircularIndices<IndexT> b) {
26
- return !(a == b);
27
- }
28
-
29
- template <class IndexT = size_t>
30
- struct CircularIndexIterator {
31
- using Index = IndexT;
32
- using Indices = CircularIndices<Index>;
33
-
34
- CircularIndexIterator() : i{0, 0}, max{0} {}
35
- CircularIndexIterator(Indices i, Index max) : i(i), max(max) {}
36
-
37
- Indices i;
38
- Index max;
39
-
40
- using value_type = Indices;
41
- using reference = value_type;
42
- using difference_type = std::ptrdiff_t; // This is required but not used
43
- using pointer = void;
44
- using iterator_category = std::input_iterator_tag;
45
-
46
- reference operator*() const { return i; }
47
- CircularIndexIterator &operator++() {
48
- assert(i.zerobased < max);
49
- ++i.zerobased;
50
- i.circular = i.circular + 1 == max ? Index{0} : i.circular + 1;
51
- return *this;
52
- }
53
- CircularIndexIterator &operator--() {
54
- assert(i.zerobased > 0);
55
- --i.zerobased;
56
- i.circular = i.circular == Index{0} ? max - 1 : i.circular - 1;
57
- return *this;
58
- }
59
- CircularIndexIterator operator++(int) {
60
- auto r = *this;
61
- ++(*this);
62
- return r;
63
- }
64
- CircularIndexIterator operator--(int) {
65
- auto r = *this;
66
- --(*this);
67
- return r;
68
- }
69
- };
70
-
71
- /// @related CircularIndexIterator
72
- /// @note Only valid for two indices in the same range.
73
- template <class IndexT>
74
- bool operator==(CircularIndexIterator<IndexT> a,
75
- CircularIndexIterator<IndexT> b) {
76
- assert(a.max == b.max);
77
- return a.i == b.i;
78
- }
79
- /// @related CircularIndexIterator
80
- /// @note Only valid for two indices in the same range.
81
- template <class IndexT>
82
- bool operator!=(CircularIndexIterator<IndexT> a,
83
- CircularIndexIterator<IndexT> b) {
84
- return !(a == b);
85
- }
86
-
87
- template <class IndexT = size_t>
88
- struct ReverseCircularIndexIterator {
89
- using ForwardIterator = CircularIndexIterator<IndexT>;
90
- using Index = typename ForwardIterator::Index;
91
- using Indices = typename ForwardIterator::Indices;
92
-
93
- ReverseCircularIndexIterator() : forwardit() {}
94
- ReverseCircularIndexIterator(Indices i, Index max) : forwardit(i, max) {}
95
- ReverseCircularIndexIterator(ForwardIterator forwardit)
96
- : forwardit(forwardit) {}
97
-
98
- ForwardIterator forwardit;
99
-
100
- using value_type = Indices;
101
- using reference = value_type;
102
- using difference_type = std::ptrdiff_t; // This is required but not used
103
- using pointer = void;
104
- using iterator_category = std::input_iterator_tag;
105
-
106
- reference operator*() const {
107
- auto tmp = forwardit;
108
- return *(--tmp);
109
- }
110
- ReverseCircularIndexIterator &operator++() {
111
- --forwardit;
112
- return *this;
113
- }
114
- ReverseCircularIndexIterator &operator--() {
115
- ++forwardit;
116
- return *this;
117
- }
118
- ReverseCircularIndexIterator operator++(int) {
119
- auto r = *this;
120
- ++(*this);
121
- return r;
122
- }
123
- ReverseCircularIndexIterator operator--(int) {
124
- auto r = *this;
125
- --(*this);
126
- return r;
127
- }
128
- };
129
-
130
- /// @related ReverseCircularIndexIterator
131
- /// @note Only valid for two indices in the same range.
132
- template <class IndexT>
133
- bool operator==(ReverseCircularIndexIterator<IndexT> a,
134
- ReverseCircularIndexIterator<IndexT> b) {
135
- return a.forwardit == b.forwardit;
136
- }
137
- /// @related ReverseCircularIndexIterator
138
- /// @note Only valid for two indices in the same range.
139
- template <class IndexT>
140
- bool operator!=(ReverseCircularIndexIterator<IndexT> a,
141
- ReverseCircularIndexIterator<IndexT> b) {
142
- return !(a == b);
143
- }
144
-
145
- template <class IndexT>
146
- class CircularRange {
147
- public:
148
- using Index = IndexT;
149
- using Indices = CircularIndices<Index>;
150
-
151
- CircularRange(Index size, Index idx1, Index idx2, Index max)
152
- : size(size), idx1(idx1), idx2(idx2), max(max) {}
153
-
154
- using const_iterator = CircularIndexIterator<Index>;
155
- using iterator = const_iterator;
156
-
157
- using const_reverse_iterator = ReverseCircularIndexIterator<Index>;
158
- using reverse_iterator = const_reverse_iterator;
159
-
160
- iterator begin() const { return {{Index{0}, idx1}, max}; }
161
- iterator end() const { return {{size, idx2}, max}; }
162
- const_iterator cbegin() const { return begin(); }
163
- const_iterator cend() const { return end(); }
164
-
165
- reverse_iterator rbegin() const { return reverse_iterator{end()}; }
166
- reverse_iterator rend() const { return reverse_iterator{begin()}; }
167
- const_reverse_iterator crbegin() const {
168
- return const_reverse_iterator{end()};
169
- }
170
- const_reverse_iterator crend() const {
171
- return const_reverse_iterator{begin()};
172
- }
173
-
174
- private:
175
- Index size;
176
- Index idx1, idx2;
177
- Index max;
178
- };
179
-
180
- template <class IndexT>
181
- class ReverseCircularRange {
182
- public:
183
- using ForwardRange = CircularRange<IndexT>;
184
- using Index = typename ForwardRange::Index;
185
- using Indices = typename ForwardRange::Indices;
186
-
187
- ReverseCircularRange(const ForwardRange &forwardrange)
188
- : forwardrange(forwardrange) {}
189
- ReverseCircularRange(Index size, Index idx1, Index idx2, Index max)
190
- : forwardrange(size, idx1, idx2, max) {}
191
-
192
- using const_iterator = typename ForwardRange::const_reverse_iterator;
193
- using iterator = typename ForwardRange::reverse_iterator;
194
-
195
- using const_reverse_iterator = typename ForwardRange::const_iterator;
196
- using reverse_iterator = typename ForwardRange::iterator;
197
-
198
- iterator begin() const { return forwardrange.rbegin(); }
199
- iterator end() const { return forwardrange.rend(); }
200
- const_iterator cbegin() const { return forwardrange.crbegin(); }
201
- const_iterator cend() const { return forwardrange.crend(); }
202
-
203
- reverse_iterator rbegin() const { return forwardrange.begin(); }
204
- reverse_iterator rend() const { return forwardrange.end(); }
205
- const_reverse_iterator crbegin() const { return forwardrange.cbegin(); }
206
- const_reverse_iterator crend() const { return forwardrange.cend(); }
207
-
208
- private:
209
- ForwardRange forwardrange;
210
- };
211
-
212
- } // namespace alpaqa
@@ -1,129 +0,0 @@
1
- #pragma once
2
-
3
- #include <algorithm>
4
- #include <functional>
5
- #include <iterator>
6
- #include <ranges>
7
-
8
- namespace alpaqa::util {
9
-
10
- template <std::ranges::input_range R1, std::ranges::input_range R2,
11
- class Comp = std::ranges::less, class Proj1 = std::identity,
12
- class Proj2 = std::identity>
13
- requires(std::ranges::view<R1> && std::ranges::view<R2>)
14
- struct set_intersection_iterable
15
- : std::ranges::view_interface<
16
- set_intersection_iterable<R1, R2, Comp, Proj1, Proj2>> {
17
-
18
- R1 range1;
19
- R2 range2;
20
- Comp comp;
21
- Proj1 proj1;
22
- Proj2 proj2;
23
-
24
- // P2325R3: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html
25
- set_intersection_iterable() = default;
26
- set_intersection_iterable(R1 &&range1, R2 &&range2, Comp &&comp,
27
- Proj1 &&proj1, Proj2 &&proj2)
28
- : range1{std::forward<R1>(range1)}, range2{std::forward<R2>(range2)},
29
- comp{std::forward<Comp>(comp)}, proj1{std::forward<Proj1>(proj1)},
30
- proj2{std::forward<Proj2>(proj2)} {}
31
-
32
- struct sentinel_t {};
33
- template <std::input_iterator I1, std::sentinel_for<I1> S1,
34
- std::input_iterator I2, std::sentinel_for<I2> S2>
35
- struct iter_t {
36
- // P2325R3: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html
37
- iter_t() = default;
38
- iter_t(I1 first1, S1 last1, I2 first2, S2 last2, Comp comp, Proj1 proj1,
39
- Proj2 proj2)
40
- : first1{std::move(first1)}, last1{std::move(last1)},
41
- first2{std::move(first2)}, last2{std::move(last2)},
42
- comp{std::move(comp)}, proj1{std::move(proj1)}, proj2{std::move(
43
- proj2)} {}
44
- I1 first1;
45
- S1 last1;
46
- I2 first2;
47
- S2 last2;
48
- Comp comp;
49
- Proj1 proj1;
50
- Proj2 proj2;
51
-
52
- using difference_type = std::ptrdiff_t; // TODO
53
- using value_type = std::tuple<decltype(*first1), decltype(*first2)>;
54
-
55
- bool operator!=(sentinel_t) const {
56
- return first1 != last1 && first2 != last2;
57
- }
58
- bool operator==(sentinel_t s) const { return !(*this != s); }
59
- // TODO: For Clang bug
60
- friend bool operator!=(sentinel_t s, const iter_t &i) { return i != s; }
61
- friend bool operator==(sentinel_t s, const iter_t &i) { return i == s; }
62
-
63
- iter_t &operator++() {
64
- ++first1, ++first2;
65
- advance();
66
- return *this;
67
- }
68
- iter_t operator++(int) {
69
- auto tmp = *this;
70
- ++*this;
71
- return tmp;
72
- }
73
- value_type operator*() const { return {*first1, *first2}; }
74
- void advance() {
75
- while (*this != sentinel_t{}) {
76
- if (std::invoke(comp, std::invoke(proj1, *first1),
77
- std::invoke(proj2, *first2)))
78
- ++first1;
79
- else if (std::invoke(comp, std::invoke(proj2, *first2),
80
- std::invoke(proj1, *first1)))
81
- ++first2;
82
- else
83
- break;
84
- }
85
- }
86
- };
87
-
88
- private:
89
- template <class I1, class S1, class I2, class S2>
90
- iter_t<I1, S1, I2, S2> iter(I1 first1, S1 last1, I2 first2,
91
- S2 last2) const {
92
- return {first1, last1, first2, last2, comp, proj1, proj2};
93
- }
94
-
95
- public:
96
- auto begin() const -> std::input_or_output_iterator auto{
97
- auto it = iter(std::ranges::begin(range1), std::ranges::end(range1),
98
- std::ranges::begin(range2), std::ranges::end(range2));
99
- it.advance();
100
- return it;
101
- }
102
- auto end() const
103
- // -> std::sentinel_for< decltype(std::declval<set_intersection_iterable>().begin())> auto
104
- {
105
- return sentinel_t{};
106
- }
107
- };
108
-
109
- template <std::ranges::viewable_range R1, std::ranges::viewable_range R2,
110
- class Comp = std::ranges::less, class Proj1 = std::identity,
111
- class Proj2 = std::identity>
112
- set_intersection_iterable<std::ranges::views::all_t<R1>,
113
- std::ranges::views::all_t<R2>, Comp, Proj1, Proj2>
114
- iter_set_intersection(R1 &&r1, R2 &&r2, Comp comp = {}, Proj1 proj1 = {},
115
- Proj2 proj2 = {}) {
116
- static_assert(
117
- requires(set_intersection_iterable<std::ranges::views::all_t<R1>,
118
- std::ranges::views::all_t<R2>, Comp,
119
- Proj1, Proj2>
120
- s) {
121
- { s.end() } -> std::sentinel_for<decltype(s.begin())>;
122
- });
123
- return {
124
- std::forward<R1>(r1), std::forward<R2>(r2), std::move(comp),
125
- std::move(proj1), std::move(proj2),
126
- };
127
- }
128
-
129
- } // namespace alpaqa::util