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
@@ -0,0 +1,125 @@
1
+ lu_int basiclu_update
2
+ (
3
+ lu_int istore[],
4
+ double xstore[],
5
+ lu_int Li[],
6
+ double Lx[],
7
+ lu_int Ui[],
8
+ double Ux[],
9
+ lu_int Wi[],
10
+ double Wx[],
11
+ double xtbl
12
+ );
13
+
14
+ /*
15
+ Purpose:
16
+
17
+ Update the factorization to replace one column of the factorized matrix.
18
+ A call to basiclu_update() must be preceded by calls to
19
+ basiclu_solve_for_update() to provide the column to be inserted and the
20
+ index of the column to be replaced.
21
+
22
+ The column to be inserted is defined as the right-hand side in the last call
23
+ to basiclu_solve_for_update() in which the forward system was solved.
24
+
25
+ The index of the column to be replaced is defined by the unit vector in the
26
+ last call to basiclu_solve_for_update() in which the transposed system was
27
+ solved.
28
+
29
+ Return:
30
+
31
+ BASICLU_ERROR_invalid_store if istore, xstore do not hold a BASICLU
32
+ instance. In this case xstore[BASICLU_STATUS] is not set.
33
+
34
+ Otherwise return the status code. See xstore[BASICLU_STATUS] below.
35
+
36
+ Arguments:
37
+
38
+ lu_int istore[]
39
+ double xstore[]
40
+ lu_int Li[]
41
+ double Lx[]
42
+ lu_int Ui[]
43
+ double Ux[]
44
+ lu_int Wi[]
45
+ double Wx[]
46
+
47
+ Factorization computed by basiclu_factorize() or basiclu_update().
48
+
49
+ double xtbl
50
+
51
+ This is an optional argument to monitor numerical stability. xtbl can be
52
+ either of
53
+
54
+ (a) element j0 of the solution to the forward system computed by
55
+ basiclu_solve_for_update(), where j0 is the column to be replaced;
56
+
57
+ (b) the dot product of the incoming column and the solution to the
58
+ transposed system computed by basiclu_solve_for_update().
59
+
60
+ In either case xstore[BASICLU_PIVOT_ERROR] (see below) has a defined
61
+ value. If monitoring stability is not desired, xtbl can be any value.
62
+
63
+ Parameters:
64
+
65
+ xstore[BASICLU_MEMORYL]: length of Li and Lx
66
+ xstore[BASICLU_MEMORYU]: length of Ui and Ux
67
+ xstore[BASICLU_MEMORYW]: length of Wi and Wx
68
+
69
+ xstore[BASICLU_DROP_TOLERANCE]
70
+
71
+ Nonzeros which magnitude is less than or equal to the drop tolerance
72
+ are removed from the row eta matrix. Default: 1e-20
73
+
74
+ Info:
75
+
76
+ xstore[BASICLU_STATUS]: status code.
77
+
78
+ BASICLU_OK
79
+
80
+ The update has successfully completed.
81
+
82
+ BASICLU_ERROR_argument_missing
83
+
84
+ One or more of the pointer/array arguments are NULL.
85
+
86
+ BASICLU_ERROR_invalid_call
87
+
88
+ The factorization is invalid or the update was not prepared by two
89
+ calls to basiclu_solve_for_update().
90
+
91
+ BASICLU_REALLOCATE
92
+
93
+ Insufficient memory in Wi,Wx. The number of additional elements
94
+ required is given by
95
+
96
+ xstore[BASICLU_ADD_MEMORYW] > 0
97
+
98
+ The user must reallocate Wi,Wx. It is recommended to reallocate for
99
+ the requested number of additional elements plus some extra space
100
+ for further updates (e.g. 0.5 times the current array length). The
101
+ new array length must be provided in
102
+
103
+ xstore[BASICLU_MEMORYW]: length of Wi and Wx
104
+
105
+ basiclu_update will start from scratch in the next call.
106
+
107
+ BASICLU_ERROR_singular_update
108
+
109
+ The updated factorization would be (numerically) singular. No update
110
+ has been computed and the old factorization is still valid.
111
+
112
+ xstore[BASICLU_PIVOT_ERROR]
113
+
114
+ When xtbl was given (see above), then xstore[BASICLU_PIVOT_ERROR] is a
115
+ measure for numerical stability. It is the difference between two
116
+ computations of the new pivot element relative to the new pivot element.
117
+ A value larger than 1e-10 indicates numerical instability and suggests
118
+ refactorization (and possibly tightening the pivot tolerance).
119
+
120
+ xstore[BASICLU_MAX_ETA]
121
+
122
+ The maximum entry (in absolute value) in the eta vectors from the
123
+ Forrest-Tomlin update. A large value, say > 1e6, indicates that pivoting
124
+ on diagonal element was unstable and refactorization might be necessary.
125
+ */
@@ -0,0 +1,39 @@
1
+ #ifndef _LU_DEF_H
2
+ #define _LU_DEF_H
3
+
4
+ /* -------------------------------------------------------------------------- */
5
+ /* ANSI standard include files */
6
+ /* -------------------------------------------------------------------------- */
7
+
8
+ #include <stddef.h>
9
+ #include <stdlib.h>
10
+ #include <string.h>
11
+ #include <stdio.h>
12
+ #include <math.h>
13
+ #include <stdint.h>
14
+ #include <assert.h>
15
+
16
+ #include "ipm/basiclu/basiclu.h"
17
+
18
+ #define BASICLU_HASH 7743090 /* hash in istore[0], xstore[0] */
19
+
20
+ enum { NO_TASK, SINGLETONS, SETUP_BUMP, FACTORIZE_BUMP, BUILD_FACTORS };
21
+
22
+ /* -------------------------------------------------------------------------- */
23
+ /* standard macros and inlines */
24
+ /* -------------------------------------------------------------------------- */
25
+
26
+ #define MAX(a,b) ((a)>=(b) ? (a):(b))
27
+ #define MIN(a,b) ((a)<=(b) ? (a):(b))
28
+
29
+ static inline void lu_iswap(lu_int *x, lu_int i, lu_int j)
30
+ {
31
+ lu_int t = x[i]; x[i] = x[j]; x[j] = t;
32
+ }
33
+
34
+ static inline void lu_fswap(double *x, lu_int i, lu_int j)
35
+ {
36
+ double t = x[i]; x[i] = x[j]; x[j] = t;
37
+ }
38
+
39
+ #endif
@@ -0,0 +1,21 @@
1
+ #ifndef _LU_FILE_H
2
+ #define _LU_FILE_H
3
+
4
+ void lu_file_empty(
5
+ lu_int nlines, lu_int *begin, lu_int *end, lu_int *next, lu_int *prev,
6
+ lu_int fmem);
7
+
8
+ void lu_file_reappend(
9
+ lu_int line, lu_int nlines, lu_int *begin, lu_int *end, lu_int *next,
10
+ lu_int *prev, lu_int *index, double *value, lu_int extra_space);
11
+
12
+ lu_int lu_file_compress(
13
+ lu_int nlines, lu_int *begin, lu_int *end, const lu_int *next,
14
+ lu_int *index, double *value, double stretch, lu_int pad);
15
+
16
+ lu_int lu_file_diff(
17
+ lu_int nrow, const lu_int *begin_row, const lu_int *end_row,
18
+ const lu_int *begin_col, const lu_int *end_col, const lu_int *index,
19
+ const double *value);
20
+
21
+ #endif
@@ -0,0 +1,220 @@
1
+ #ifndef _LU_INTERNAL_H
2
+ #define _LU_INTERNAL_H
3
+
4
+ #include "ipm/basiclu/lu_def.h"
5
+
6
+ /* -------------------------------------------------------------------------- */
7
+ /* struct lu */
8
+ /* -------------------------------------------------------------------------- */
9
+
10
+ /*
11
+ This data structure provides access to istore, xstore.
12
+
13
+ lu_* routines do not access istore, xstore directly. Instead, they operate
14
+ on a struct lu object. Scalar quantities stored in istore, xstore are copied
15
+ to a struct lu object by lu_load() and copied back by lu_save(). Subarrays
16
+ of istore, xstore and the user arrays Li, Lx, Ui, Ux, Wi, Wx are aliased by
17
+ pointers in struct lu.
18
+ */
19
+
20
+ struct lu
21
+ {
22
+ /* user parameters, not modified */
23
+ lu_int Lmem;
24
+ lu_int Umem;
25
+ lu_int Wmem;
26
+ double droptol;
27
+ double abstol;
28
+ double reltol;
29
+ lu_int nzbias;
30
+ lu_int maxsearch;
31
+ lu_int pad;
32
+ double stretch;
33
+ double compress_thres;
34
+ double sparse_thres;
35
+ lu_int search_rows;
36
+
37
+ /* user readable */
38
+ lu_int m;
39
+ lu_int addmemL;
40
+ lu_int addmemU;
41
+ lu_int addmemW;
42
+
43
+ lu_int nupdate;
44
+ lu_int nforrest;
45
+ lu_int nfactorize;
46
+ lu_int nupdate_total;
47
+ lu_int nforrest_total;
48
+ lu_int nsymperm_total;
49
+ lu_int Lnz; /* nz in L excluding diagonal */
50
+ lu_int Unz; /* nz in U excluding diagonal */
51
+ lu_int Rnz; /* nz in update etas excluding diagonal */
52
+ double min_pivot;
53
+ double max_pivot;
54
+ double max_eta;
55
+ double update_cost_numer;
56
+ double update_cost_denom;
57
+ double time_factorize;
58
+ double time_solve;
59
+ double time_update;
60
+ double time_factorize_total;
61
+ double time_solve_total;
62
+ double time_update_total;
63
+ lu_int Lflops;
64
+ lu_int Uflops;
65
+ lu_int Rflops;
66
+ double condestL;
67
+ double condestU;
68
+ double normL;
69
+ double normU;
70
+ double normestLinv;
71
+ double normestUinv;
72
+ double onenorm; /* 1-norm and inf-norm of matrix after fresh */
73
+ double infnorm; /* factorization with dependent cols replaced */
74
+ double residual_test; /* computed by lu_residual_test() */
75
+
76
+ lu_int matrix_nz; /* nz in basis matrix when factorized */
77
+ lu_int rank; /* rank of basis matrix when factorized */
78
+ lu_int bump_size;
79
+ lu_int bump_nz;
80
+ lu_int nsearch_pivot; /* # rows/cols searched for pivot */
81
+ lu_int nexpand; /* # rows/cols expanded in factorize */
82
+ lu_int ngarbage; /* # garbage collections in factorize */
83
+ lu_int factor_flops; /* # flops in factorize */
84
+ double time_singletons;
85
+ double time_search_pivot;
86
+ double time_elim_pivot;
87
+
88
+ double pivot_error; /* error estimate for pivot in last update */
89
+
90
+ /* private */
91
+ lu_int task; /* the part of factorization in progress */
92
+ lu_int pivot_row; /* chosen pivot row */
93
+ lu_int pivot_col; /* chosen pivot column */
94
+ lu_int ftran_for_update; /* >= 0 if FTRAN prepared for update */
95
+ lu_int btran_for_update; /* >= 0 if BTRAN prepared for update */
96
+ lu_int marker; /* see @marked, below */
97
+ lu_int pivotlen; /* length of @pivotcol, @pivotrow; <= 2*m */
98
+ lu_int rankdef; /* # columns removed from active submatrix
99
+ because maximum was 0 or < abstol */
100
+ lu_int min_colnz; /* colcount lists 1..min_colnz-1 are empty */
101
+ lu_int min_rownz; /* rowcount lists 1..min_rownz-1 are empty */
102
+
103
+ /* aliases to user arrays */
104
+ lu_int *Lindex, *Uindex, *Windex;
105
+ double *Lvalue, *Uvalue, *Wvalue;
106
+
107
+ /*
108
+ * pointers into istore
109
+ *
110
+ * When two declaration lists are on one line, then the arrays from the
111
+ * second list share memory with the array from the first list. The arrays
112
+ * from the first lists are used during factorization, the arrays from the
113
+ * second lists are used during solves/updates.
114
+ */
115
+
116
+ /* documented in lu_singletons.c, lu_setup_bump.c, lu_build_factors.c */
117
+ lu_int *colcount_flink; lu_int *pivotcol;
118
+ lu_int *colcount_blink; lu_int *pivotrow;
119
+ lu_int *rowcount_flink; lu_int *Rbegin, *eta_row;
120
+ lu_int *rowcount_blink; lu_int *iwork1;
121
+ lu_int *Wbegin; lu_int *Lbegin; /* + Wbegin reused */
122
+ lu_int *Wend; lu_int *Ltbegin; /* + Wend reused */
123
+ lu_int *Wflink; lu_int *Ltbegin_p; /* + Wflink reused */
124
+ lu_int *Wblink; lu_int *p; /* + Wblink reused */
125
+ lu_int *pinv; lu_int *pmap;
126
+ lu_int *qinv; lu_int *qmap;
127
+ lu_int *Lbegin_p; /* Lbegin_p reused */
128
+ lu_int *Ubegin; /* Ubegin reused */
129
+
130
+ lu_int *iwork0; lu_int *marked;
131
+ /* iwork0: size m workspace, zeroed */
132
+ /* marked: size m workspace, 0 <= marked[i] <= @marker */
133
+
134
+ /* pointers into xstore */
135
+ double *work0; /* size m workspace, zeroed */
136
+ double *work1; /* size m workspace, uninitialized */
137
+ double *col_pivot; /* pivot elements by column index */
138
+ double *row_pivot; /* pivot elements by row index */
139
+ };
140
+
141
+
142
+ /* -------------------------------------------------------------------------- */
143
+ /* Internal function prototypes */
144
+ /* -------------------------------------------------------------------------- */
145
+
146
+ lu_int lu_load(
147
+ struct lu *this, lu_int *istore, double *xstore, lu_int *Li, double *Lx,
148
+ lu_int *Ui, double *Ux, lu_int *Wi, double *Wx);
149
+
150
+ lu_int lu_save(
151
+ const struct lu *this, lu_int *istore, double *xstore, lu_int status);
152
+
153
+ void lu_reset(struct lu *this);
154
+
155
+ void lu_initialize(lu_int m, lu_int *istore, double *xstore);
156
+
157
+ lu_int lu_factorize_bump (struct lu *this);
158
+
159
+ lu_int lu_build_factors(struct lu *this);
160
+
161
+ void lu_garbage_perm(struct lu *this);
162
+
163
+ lu_int lu_markowitz(struct lu *this);
164
+
165
+ lu_int lu_pivot(struct lu *this);
166
+
167
+ lu_int lu_setup_bump(
168
+ struct lu *this, const lu_int *Bbegin, const lu_int *Bend, const lu_int *Bi,
169
+ const double *Bx);
170
+
171
+ lu_int lu_singletons(
172
+ struct lu *this, const lu_int *Bbegin, const lu_int *Bend, const lu_int *Bi,
173
+ const double *Bx);
174
+
175
+ void lu_solve_dense(
176
+ struct lu *this, const double *rhs, double *lhs, char trans);
177
+
178
+ lu_int lu_solve_for_update(
179
+ struct lu *this, const lu_int nrhs, const lu_int *irhs, const double *xrhs,
180
+ lu_int *nlhs, lu_int *ilhs, double *xlhs, char trans);
181
+
182
+ void lu_solve_sparse(
183
+ struct lu *this, const lu_int nrhs, const lu_int *irhs, const double *xrhs,
184
+ lu_int *nlhs, lu_int *ilhs, double *xlhs, char trans);
185
+
186
+ lu_int lu_dfs(
187
+ lu_int i, const lu_int *begin, const lu_int *end, const lu_int *index,
188
+ lu_int top, lu_int *xi, lu_int *pstack, lu_int *marked, const lu_int M);
189
+
190
+ lu_int lu_solve_symbolic(
191
+ const lu_int m, const lu_int *begin, const lu_int *end, const lu_int *index,
192
+ const lu_int nrhs, const lu_int *irhs, lu_int *ilhs, lu_int *pstack,
193
+ lu_int *marked, const lu_int M);
194
+
195
+ lu_int lu_solve_triangular(
196
+ const lu_int nz_symb, const lu_int *pattern_symb, const lu_int *begin,
197
+ const lu_int *end, const lu_int *index, const double *value,
198
+ const double *pivot, const double droptol, double *lhs, lu_int *pattern,
199
+ lu_int *flops);
200
+
201
+ lu_int lu_update(struct lu *this, double xtbl);
202
+
203
+ double lu_condest(
204
+ lu_int m, const lu_int *Ubegin, const lu_int *Ui, const double *Ux,
205
+ const double *pivot, const lu_int *perm, int upper, double *work,
206
+ double *norm, double *norminv);
207
+
208
+ double lu_normest(
209
+ lu_int m, const lu_int *Ubegin, const lu_int *Ui, const double *Ux,
210
+ const double *pivot, const lu_int *perm, int upper, double *work);
211
+
212
+ void lu_matrix_norm(
213
+ struct lu *this, const lu_int *Bbegin, const lu_int *Bend, const lu_int *Bi,
214
+ const double *Bx);
215
+
216
+ void lu_residual_test(
217
+ struct lu *this, const lu_int *Bbegin, const lu_int *Bend, const lu_int *Bi,
218
+ const double *Bx);
219
+
220
+ #endif
@@ -0,0 +1,168 @@
1
+ /*
2
+ * lu_list.h
3
+ *
4
+ * Copyright (C) 2016-2018 ERGO-Code
5
+ *
6
+ * Implementation of doubly linked lists (see [1] section 5.5)
7
+ *
8
+ * Maintain nelem elements in nlist doubly linked lists. Each element can belong
9
+ * to zero or one list at a time.
10
+ *
11
+ * The implementation uses arrays
12
+ *
13
+ * flink[0..nelem+nlist-1],
14
+ * blink[0..nelem+nlist-1].
15
+ *
16
+ * In each array, the leading nelem entries store links, the trailing nlist
17
+ * entries store heads. That is, for 0 <= i < nelem and 0 <= j < nlist:
18
+ *
19
+ * flink[i] next element in the list containing element i
20
+ * blink[i] previous element in the list containing element i
21
+ * flink[nelem+j] first element in list j
22
+ * blink[nelem+j] last element in list j
23
+ *
24
+ * The forward link of the last element in a list points to its flink-head. The
25
+ * backward link of the first element in a list points to its blink-head. For
26
+ * empty lists the heads point to themselves. When an element is not in any list
27
+ * its links point to itself.
28
+ *
29
+ * Optionally the quantity min_list >= 1 can be updated such that lists
30
+ * 1..min_list-1 are empty. Notice that list 0 is not covered by min_list.
31
+ *
32
+ * [1] Istvan Maros, Computational Techniques of the Simplex Method
33
+ *
34
+ * Methods:
35
+ *
36
+ * lu_list_init
37
+ * lu_list_add
38
+ * lu_list_remove
39
+ * lu_list_move
40
+ * lu_list_swap
41
+ *
42
+ * The methods are defined in this header file as static inline. This header
43
+ * file must be included after lu_def.h so that lu_int is defined.
44
+ *
45
+ */
46
+
47
+ /* ==========================================================================
48
+ * lu_list_init
49
+ *
50
+ * Initialize all lists to empty.
51
+ * ========================================================================== */
52
+
53
+ static inline void lu_list_init(
54
+ lu_int *flink, lu_int *blink, lu_int nelem, lu_int nlist, lu_int *min_list)
55
+ {
56
+ lu_int i;
57
+ for (i = 0; i < nelem+nlist; i++) flink[i] = blink[i] = i;
58
+ if (min_list)
59
+ *min_list = MAX(1, nlist);
60
+ }
61
+
62
+
63
+ /* ==========================================================================
64
+ * lu_list_add
65
+ *
66
+ * Add element @elem to list @list. @elem must not be in any list already.
67
+ * If list > 0 and min_list != NULL, update *min_list = min(*min_list, list).
68
+ * ========================================================================== */
69
+
70
+ static inline void lu_list_add(
71
+ lu_int elem, lu_int list, lu_int *flink, lu_int *blink, lu_int nelem,
72
+ lu_int *min_list)
73
+ {
74
+ lu_int temp;
75
+ assert(flink[elem] == elem);
76
+ assert(blink[elem] == elem);
77
+ /* append elem to the end of list */
78
+ temp = blink[nelem+list];
79
+ blink[nelem+list] = elem;
80
+ blink[elem] = temp;
81
+ flink[temp] = elem;
82
+ flink[elem] = nelem+list;
83
+ if (list > 0 && min_list && list < *min_list)
84
+ *min_list = list;
85
+ }
86
+
87
+
88
+ /* ==========================================================================
89
+ * lu_list_remove
90
+ *
91
+ * Remove element @elem from its list. If @elem was not in a list before,
92
+ * then do nothing.
93
+ * ========================================================================== */
94
+
95
+ static inline void lu_list_remove(
96
+ lu_int *flink, lu_int *blink, lu_int elem)
97
+ {
98
+ flink[blink[elem]] = flink[elem];
99
+ blink[flink[elem]] = blink[elem];
100
+ flink[elem] = elem;
101
+ blink[elem] = elem;
102
+ }
103
+
104
+
105
+ /* ==========================================================================
106
+ * lu_list_move
107
+ *
108
+ * Remove element @elem from its list (if in a list) and add it to list @list.
109
+ * ========================================================================== */
110
+
111
+ static inline void lu_list_move(
112
+ lu_int elem, lu_int list, lu_int *flink, lu_int *blink, lu_int nelem,
113
+ lu_int *min_list)
114
+ {
115
+ lu_list_remove(flink, blink, elem);
116
+ lu_list_add(elem, list, flink, blink, nelem, min_list);
117
+ }
118
+
119
+
120
+ /* ==========================================================================
121
+ * lu_list_swap
122
+ *
123
+ * Swap elements @e1 and @e2, which both must be in a list. If @e1 and @e2
124
+ * are in the same list, then their positions are swapped. If they are in
125
+ * different lists, then each is moved to the other's list.
126
+ * ========================================================================== */
127
+
128
+ static inline void lu_list_swap(
129
+ lu_int *flink, lu_int *blink, const lu_int e1, const lu_int e2)
130
+ {
131
+ const lu_int e1next = flink[e1];
132
+ const lu_int e2next = flink[e2];
133
+ const lu_int e1prev = blink[e1];
134
+ const lu_int e2prev = blink[e2];
135
+
136
+ assert(e1next != e1); /* must be in a list */
137
+ assert(e2next != e2);
138
+
139
+ if (e1next == e2)
140
+ {
141
+ flink[e2] = e1;
142
+ blink[e1] = e2;
143
+ flink[e1prev] = e2;
144
+ blink[e2] = e1prev;
145
+ flink[e1] = e2next;
146
+ blink[e2next] = e1;
147
+ }
148
+ else if (e2next == e1)
149
+ {
150
+ flink[e1] = e2;
151
+ blink[e2] = e1;
152
+ flink[e2] = e1next;
153
+ blink[e1next] = e2;
154
+ flink[e2prev] = e1;
155
+ blink[e1] = e2prev;
156
+ }
157
+ else
158
+ {
159
+ flink[e2] = e1next;
160
+ blink[e1next] = e2;
161
+ flink[e2prev] = e1;
162
+ blink[e1] = e2prev;
163
+ flink[e1prev] = e2;
164
+ blink[e2] = e1prev;
165
+ flink[e1] = e2next;
166
+ blink[e2next] = e1;
167
+ }
168
+ }
@@ -0,0 +1,20 @@
1
+ #ifndef IPX_BASICLU_KERNEL_H_
2
+ #define IPX_BASICLU_KERNEL_H_
3
+
4
+ #include "ipm/ipx/lu_factorization.h"
5
+
6
+ namespace ipx {
7
+
8
+ class BasicLuKernel : public LuFactorization {
9
+ private:
10
+ void _Factorize(Int dim, const Int* Bbegin, const Int* Bend,
11
+ const Int* Bi, const double* Bx, double pivottol,
12
+ bool strict_abs_pivottol,
13
+ SparseMatrix* L, SparseMatrix* U,
14
+ std::vector<Int>* rowperm, std::vector<Int>* colperm,
15
+ std::vector<Int>* dependent_cols) override;
16
+ };
17
+
18
+ } // namespace ipx
19
+
20
+ #endif // IPX_BASICLU_KERNEL_H_
@@ -0,0 +1,47 @@
1
+ #ifndef IPX_BASICLU_WRAPPER_H_
2
+ #define IPX_BASICLU_WRAPPER_H_
3
+
4
+ #include "ipm/ipx/control.h"
5
+ #include "ipm/ipx/lu_update.h"
6
+
7
+ namespace ipx {
8
+
9
+ class BasicLu : public LuUpdate {
10
+ public:
11
+ BasicLu(const Control& control, Int dim);
12
+ ~BasicLu() = default;
13
+
14
+ private:
15
+ Int _Factorize(const Int* Bbegin, const Int* Bend, const Int* Bi,
16
+ const double* Bx, bool strict_abs_pivottol) override;
17
+ void _GetFactors(SparseMatrix* L, SparseMatrix* U, Int* rowperm,
18
+ Int* colperm, std::vector<Int>* dependent_cols) override;
19
+ void _SolveDense(const Vector& rhs, Vector& lhs, char trans) override;
20
+ void _FtranForUpdate(Int nz, const Int* bi, const double* bx) override;
21
+ void _FtranForUpdate(Int nz, const Int* bi, const double* bx,
22
+ IndexedVector& lhs) override;
23
+ void _BtranForUpdate(Int j) override;
24
+ void _BtranForUpdate(Int j, IndexedVector& lhs) override;
25
+ Int _Update(double pivot) override;
26
+ bool _NeedFreshFactorization() override;
27
+ double _fill_factor() const override;
28
+ double _pivottol() const override;
29
+ void _pivottol(double new_pivottol) override;
30
+
31
+ // Reallocates (Li,Lx), (Ui,Ux) and/or (Wi,Wx) as requested by BASICLU.
32
+ void Reallocate();
33
+
34
+ // When memory is reallocated, allocate for kReallocFactor*required amount.
35
+ static constexpr double kReallocFactor = 1.5;
36
+
37
+ const Control& control_;
38
+ std::vector<Int> istore_;
39
+ std::vector<double> xstore_;
40
+ std::vector<Int> Li_, Ui_, Wi_;
41
+ std::vector<double> Lx_, Ux_, Wx_;
42
+ double fill_factor_;
43
+ };
44
+
45
+ } // namespace ipx
46
+
47
+ #endif // IPX_BASICLU_WRAPPER_H_