casadi 3.6.4__cp311-none-manylinux2014_i686.whl → 3.6.6__cp311-none-manylinux2014_i686.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 (494) hide show
  1. casadi/_casadi.so +0 -0
  2. casadi/casadi.py +984 -500
  3. casadi/cbc +0 -0
  4. casadi/clp +0 -0
  5. casadi/cmake/casadi-config-version.cmake +1 -1
  6. casadi/cmake/highs/highs-config.cmake +6 -13
  7. casadi/cmake/highs/highs-targets-release.cmake +13 -13
  8. casadi/cmake/highs/highs-targets.cmake +13 -10
  9. casadi/highs +0 -0
  10. casadi/include/casadi/casadi.i +33 -15
  11. casadi/include/casadi/casadi_c.h +2 -0
  12. casadi/include/casadi/config.h +8 -8
  13. casadi/include/casadi/core/casadi_common.hpp +1 -0
  14. casadi/include/casadi/core/casadi_misc.hpp +13 -0
  15. casadi/include/casadi/core/casadi_types.hpp +3 -2
  16. casadi/include/casadi/core/code_generator.hpp +59 -2
  17. casadi/include/casadi/core/core.hpp +1 -0
  18. casadi/include/casadi/core/generic_expression.hpp +1 -1
  19. casadi/include/casadi/core/generic_type.hpp +25 -1
  20. casadi/include/casadi/core/global_options.hpp +2 -0
  21. casadi/include/casadi/core/matrix_decl.hpp +15 -0
  22. casadi/include/casadi/core/mx.hpp +13 -3
  23. casadi/include/casadi/core/optistack.hpp +23 -0
  24. casadi/include/casadi/core/runtime/casadi_nlp.hpp +133 -6
  25. casadi/include/casadi/core/runtime/casadi_ocp_block.hpp +55 -0
  26. casadi/include/casadi/core/runtime/casadi_oracle.hpp +44 -0
  27. casadi/include/casadi/core/runtime/casadi_oracle_callback.hpp +39 -0
  28. casadi/include/casadi/core/runtime/casadi_runtime.hpp +4 -1
  29. casadi/include/casadi/core/runtime/casadi_scaled_copy.hpp +31 -0
  30. casadi/include/casadi/core/runtime/casadi_sqpmethod.hpp +11 -1
  31. casadi/include/casadi/core/serializing_stream.hpp +2 -2
  32. casadi/include/casadi/core/sparsity.hpp +12 -3
  33. casadi/include/casadi/core/tools.hpp +67 -0
  34. casadi/include/casadi/doc.i +2283 -1491
  35. casadi/include/casadi/doc_merged.i +1522 -1065
  36. casadi/include/casadi/mem.h +1 -0
  37. casadi/include/coin-or/IpAlgBuilder.hpp +417 -0
  38. casadi/include/coin-or/IpAlgStrategy.hpp +201 -0
  39. casadi/include/coin-or/IpAlgTypes.hpp +64 -0
  40. casadi/include/coin-or/IpAugSystemSolver.hpp +212 -0
  41. casadi/include/coin-or/IpBlas.hpp +426 -0
  42. casadi/include/coin-or/IpCachedResults.hpp +897 -0
  43. casadi/include/coin-or/IpCompoundMatrix.hpp +423 -0
  44. casadi/include/coin-or/IpCompoundSymMatrix.hpp +348 -0
  45. casadi/include/coin-or/IpCompoundVector.hpp +395 -0
  46. casadi/include/coin-or/IpConvCheck.hpp +97 -0
  47. casadi/include/coin-or/IpDebug.hpp +167 -0
  48. casadi/include/coin-or/IpDenseVector.hpp +626 -0
  49. casadi/include/coin-or/IpDiagMatrix.hpp +158 -0
  50. casadi/include/coin-or/IpEqMultCalculator.hpp +76 -0
  51. casadi/include/coin-or/IpException.hpp +156 -0
  52. casadi/include/coin-or/IpExpansionMatrix.hpp +245 -0
  53. casadi/include/coin-or/IpGenTMatrix.hpp +290 -0
  54. casadi/include/coin-or/IpHessianUpdater.hpp +73 -0
  55. casadi/include/coin-or/IpIdentityMatrix.hpp +167 -0
  56. casadi/include/coin-or/IpIpoptAlg.hpp +257 -0
  57. casadi/include/coin-or/IpIpoptApplication.hpp +367 -0
  58. casadi/include/coin-or/IpIpoptCalculatedQuantities.hpp +1009 -0
  59. casadi/include/coin-or/IpIpoptData.hpp +966 -0
  60. casadi/include/coin-or/IpIpoptNLP.hpp +328 -0
  61. casadi/include/coin-or/IpIterateInitializer.hpp +68 -0
  62. casadi/include/coin-or/IpIteratesVector.hpp +840 -0
  63. casadi/include/coin-or/IpIterationOutput.hpp +78 -0
  64. casadi/include/coin-or/IpJournalist.hpp +573 -0
  65. casadi/include/coin-or/IpLapack.hpp +227 -0
  66. casadi/include/coin-or/IpLibraryLoader.hpp +76 -0
  67. casadi/include/coin-or/IpLineSearch.hpp +106 -0
  68. casadi/include/coin-or/IpLinearSolvers.h +46 -0
  69. casadi/include/coin-or/IpMatrix.hpp +434 -0
  70. casadi/include/coin-or/IpMuUpdate.hpp +77 -0
  71. casadi/include/coin-or/IpNLP.hpp +306 -0
  72. casadi/include/coin-or/IpNLPScaling.hpp +582 -0
  73. casadi/include/coin-or/IpObserver.hpp +422 -0
  74. casadi/include/coin-or/IpOptionsList.hpp +412 -0
  75. casadi/include/coin-or/IpOrigIpoptNLP.hpp +603 -0
  76. casadi/include/coin-or/IpPDSystemSolver.hpp +137 -0
  77. casadi/include/coin-or/IpReferenced.hpp +262 -0
  78. casadi/include/coin-or/IpRegOptions.hpp +1152 -0
  79. casadi/include/coin-or/IpReturnCodes.h +23 -0
  80. casadi/include/coin-or/IpReturnCodes.hpp +18 -0
  81. casadi/include/coin-or/IpReturnCodes.inc +71 -0
  82. casadi/include/coin-or/IpReturnCodes_inc.h +45 -0
  83. casadi/include/coin-or/IpScaledMatrix.hpp +291 -0
  84. casadi/include/coin-or/IpSearchDirCalculator.hpp +72 -0
  85. casadi/include/coin-or/IpSmartPtr.hpp +865 -0
  86. casadi/include/coin-or/IpSolveStatistics.hpp +210 -0
  87. casadi/include/coin-or/IpSparseSymLinearSolverInterface.hpp +260 -0
  88. casadi/include/coin-or/IpStdAugSystemSolver.cpp +555 -0
  89. casadi/include/coin-or/IpStdCInterface.h +428 -0
  90. casadi/include/coin-or/IpSumSymMatrix.hpp +186 -0
  91. casadi/include/coin-or/IpSymLinearSolver.hpp +141 -0
  92. casadi/include/coin-or/IpSymMatrix.hpp +167 -0
  93. casadi/include/coin-or/IpSymScaledMatrix.hpp +255 -0
  94. casadi/include/coin-or/IpSymTMatrix.hpp +275 -0
  95. casadi/include/coin-or/IpTNLP.hpp +820 -0
  96. casadi/include/coin-or/IpTNLPAdapter.hpp +648 -0
  97. casadi/include/coin-or/IpTNLPReducer.hpp +274 -0
  98. casadi/include/coin-or/IpTaggedObject.hpp +128 -0
  99. casadi/include/coin-or/IpTimedTask.hpp +218 -0
  100. casadi/include/coin-or/IpTimingStatistics.hpp +323 -0
  101. casadi/include/coin-or/IpTripletHelper.hpp +308 -0
  102. casadi/include/coin-or/IpTypes.h +81 -0
  103. casadi/include/coin-or/IpTypes.hpp +30 -0
  104. casadi/include/coin-or/IpUtils.hpp +166 -0
  105. casadi/include/coin-or/IpVector.hpp +892 -0
  106. casadi/include/coin-or/IpZeroSymMatrix.hpp +155 -0
  107. casadi/include/coin-or/IpoptConfig.h +45 -0
  108. casadi/include/coin-or/SensAlgorithm.hpp +114 -0
  109. casadi/include/coin-or/SensApplication.hpp +188 -0
  110. casadi/include/coin-or/SensBacksolver.hpp +36 -0
  111. casadi/include/coin-or/SensMeasurement.hpp +56 -0
  112. casadi/include/coin-or/SensPCalculator.hpp +137 -0
  113. casadi/include/coin-or/SensRegOp.hpp +21 -0
  114. casadi/include/coin-or/SensSchurData.hpp +182 -0
  115. casadi/include/coin-or/SensSchurDriver.hpp +118 -0
  116. casadi/include/coin-or/SensSimpleBacksolver.hpp +49 -0
  117. casadi/include/coin-or/SensStepCalc.hpp +85 -0
  118. casadi/include/coin-or/SensUtils.hpp +63 -0
  119. casadi/include/coin-or/metis/defs.h +161 -0
  120. casadi/include/coin-or/metis/macros.h +143 -0
  121. casadi/include/coin-or/metis/metis.h +37 -0
  122. casadi/include/coin-or/metis/proto.h +505 -0
  123. casadi/include/coin-or/metis/rename.h +418 -0
  124. casadi/include/coin-or/metis/struct.h +251 -0
  125. casadi/include/coin-or/mumps/dmumps_c.h +142 -0
  126. casadi/include/coin-or/mumps/mumps_c_types.h +72 -0
  127. casadi/include/coin-or/mumps/mumps_compat.h +27 -0
  128. casadi/include/coin-or/mumps/mumps_int_def.h +11 -0
  129. casadi/include/coin-or/mumps/mumps_mpi.h +67 -0
  130. casadi/include/daqp/api.h +46 -0
  131. casadi/include/daqp/auxiliary.h +29 -0
  132. casadi/include/daqp/bnb.h +32 -0
  133. casadi/include/daqp/codegen.h +18 -0
  134. casadi/include/daqp/constants.h +92 -0
  135. casadi/include/daqp/daqp.h +22 -0
  136. casadi/include/daqp/daqp_prox.h +18 -0
  137. casadi/include/daqp/factorization.h +18 -0
  138. casadi/include/daqp/types.h +161 -0
  139. casadi/include/daqp/utils.h +44 -0
  140. casadi/include/highs/HConfig.h +6 -5
  141. casadi/include/highs/Highs.h +93 -23
  142. casadi/include/highs/filereaderlp/def.hpp +19 -0
  143. casadi/include/highs/interfaces/highs_c_api.h +200 -24
  144. casadi/include/highs/io/Filereader.h +1 -1
  145. casadi/include/highs/io/FilereaderEms.h +1 -1
  146. casadi/include/highs/io/FilereaderLp.h +1 -1
  147. casadi/include/highs/io/FilereaderMps.h +1 -1
  148. casadi/include/highs/io/HMPSIO.h +1 -1
  149. casadi/include/highs/io/HMpsFF.h +5 -3
  150. casadi/include/highs/io/HighsIO.h +18 -8
  151. casadi/include/highs/io/LoadOptions.h +1 -1
  152. casadi/include/highs/ipm/IpxSolution.h +35 -0
  153. casadi/include/highs/ipm/IpxWrapper.h +1 -1
  154. casadi/include/highs/ipm/basiclu/basiclu.h +161 -0
  155. casadi/include/highs/ipm/basiclu/basiclu_factorize.h +247 -0
  156. casadi/include/highs/ipm/basiclu/basiclu_get_factors.h +108 -0
  157. casadi/include/highs/ipm/basiclu/basiclu_initialize.h +119 -0
  158. casadi/include/highs/ipm/basiclu/basiclu_obj_factorize.h +34 -0
  159. casadi/include/highs/ipm/basiclu/basiclu_obj_free.h +19 -0
  160. casadi/include/highs/ipm/basiclu/basiclu_obj_get_factors.h +34 -0
  161. casadi/include/highs/ipm/basiclu/basiclu_obj_initialize.h +46 -0
  162. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_dense.h +29 -0
  163. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_for_update.h +42 -0
  164. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_sparse.h +32 -0
  165. casadi/include/highs/ipm/basiclu/basiclu_obj_update.h +31 -0
  166. casadi/include/highs/ipm/basiclu/basiclu_object.h +30 -0
  167. casadi/include/highs/ipm/basiclu/basiclu_solve_dense.h +75 -0
  168. casadi/include/highs/ipm/basiclu/basiclu_solve_for_update.h +169 -0
  169. casadi/include/highs/ipm/basiclu/basiclu_solve_sparse.h +112 -0
  170. casadi/include/highs/ipm/basiclu/basiclu_update.h +125 -0
  171. casadi/include/highs/ipm/basiclu/lu_def.h +39 -0
  172. casadi/include/highs/ipm/basiclu/lu_file.h +21 -0
  173. casadi/include/highs/ipm/basiclu/lu_internal.h +220 -0
  174. casadi/include/highs/ipm/basiclu/lu_list.h +168 -0
  175. casadi/include/highs/ipm/ipx/basiclu_kernel.h +20 -0
  176. casadi/include/highs/ipm/ipx/basiclu_wrapper.h +47 -0
  177. casadi/include/highs/ipm/ipx/basis.h +351 -0
  178. casadi/include/highs/ipm/ipx/conjugate_residuals.h +74 -0
  179. casadi/include/highs/ipm/ipx/control.h +163 -0
  180. casadi/include/highs/ipm/ipx/crossover.h +157 -0
  181. casadi/include/highs/ipm/ipx/diagonal_precond.h +45 -0
  182. casadi/include/highs/ipm/ipx/forrest_tomlin.h +102 -0
  183. casadi/include/highs/ipm/ipx/guess_basis.h +21 -0
  184. casadi/include/highs/ipm/ipx/indexed_vector.h +113 -0
  185. casadi/include/highs/ipm/ipx/info.h +27 -0
  186. casadi/include/highs/ipm/ipx/ipm.h +94 -0
  187. casadi/include/highs/ipm/ipx/ipx_c.h +47 -0
  188. casadi/include/highs/ipm/ipx/ipx_config.h +9 -0
  189. casadi/include/highs/ipm/ipx/ipx_info.h +111 -0
  190. casadi/include/highs/ipm/ipx/ipx_internal.h +88 -0
  191. casadi/include/highs/ipm/ipx/ipx_parameters.h +75 -0
  192. casadi/include/highs/ipm/ipx/ipx_status.h +57 -0
  193. casadi/include/highs/ipm/ipx/iterate.h +328 -0
  194. casadi/include/highs/ipm/ipx/kkt_solver.h +70 -0
  195. casadi/include/highs/ipm/ipx/kkt_solver_basis.h +66 -0
  196. casadi/include/highs/ipm/ipx/kkt_solver_diag.h +48 -0
  197. casadi/include/highs/ipm/ipx/linear_operator.h +26 -0
  198. casadi/include/highs/ipm/ipx/lp_solver.h +201 -0
  199. casadi/include/highs/ipm/ipx/lu_factorization.h +79 -0
  200. casadi/include/highs/ipm/ipx/lu_update.h +129 -0
  201. casadi/include/highs/ipm/ipx/maxvolume.h +54 -0
  202. casadi/include/highs/ipm/ipx/model.h +409 -0
  203. casadi/include/highs/ipm/ipx/multistream.h +52 -0
  204. casadi/include/highs/ipm/ipx/normal_matrix.h +44 -0
  205. casadi/include/highs/ipm/ipx/power_method.h +44 -0
  206. casadi/include/highs/ipm/ipx/sparse_matrix.h +195 -0
  207. casadi/include/highs/ipm/ipx/sparse_utils.h +58 -0
  208. casadi/include/highs/ipm/ipx/splitted_normal_matrix.h +63 -0
  209. casadi/include/highs/ipm/ipx/starting_basis.h +39 -0
  210. casadi/include/highs/ipm/ipx/symbolic_invert.h +29 -0
  211. casadi/include/highs/ipm/ipx/timer.h +24 -0
  212. casadi/include/highs/ipm/ipx/utils.h +39 -0
  213. casadi/include/highs/lp_data/HConst.h +20 -10
  214. casadi/include/highs/lp_data/HStruct.h +23 -1
  215. casadi/include/highs/lp_data/HighsAnalysis.h +1 -1
  216. casadi/include/highs/lp_data/HighsCallback.h +10 -3
  217. casadi/include/highs/lp_data/HighsCallbackStruct.h +31 -5
  218. casadi/include/highs/lp_data/HighsDebug.h +1 -1
  219. casadi/include/highs/lp_data/HighsInfo.h +20 -2
  220. casadi/include/highs/lp_data/HighsInfoDebug.h +1 -1
  221. casadi/include/highs/lp_data/HighsLp.h +17 -1
  222. casadi/include/highs/lp_data/HighsLpSolverObject.h +1 -1
  223. casadi/include/highs/lp_data/HighsLpUtils.h +19 -19
  224. casadi/include/highs/lp_data/HighsModelUtils.h +1 -1
  225. casadi/include/highs/lp_data/HighsOptions.h +237 -10
  226. casadi/include/highs/lp_data/HighsRanging.h +1 -1
  227. casadi/include/highs/lp_data/HighsRuntimeOptions.h +2 -2
  228. casadi/include/highs/lp_data/HighsSolution.h +2 -2
  229. casadi/include/highs/lp_data/HighsSolutionDebug.h +1 -1
  230. casadi/include/highs/lp_data/HighsSolve.h +3 -1
  231. casadi/include/highs/lp_data/HighsStatus.h +1 -1
  232. casadi/include/highs/mip/HighsCliqueTable.h +4 -4
  233. casadi/include/highs/mip/HighsConflictPool.h +1 -1
  234. casadi/include/highs/mip/HighsCutGeneration.h +1 -1
  235. casadi/include/highs/mip/HighsCutPool.h +2 -2
  236. casadi/include/highs/mip/HighsDebugSol.h +22 -29
  237. casadi/include/highs/mip/HighsDomain.h +10 -2
  238. casadi/include/highs/mip/HighsDomainChange.h +1 -1
  239. casadi/include/highs/mip/HighsDynamicRowMatrix.h +5 -3
  240. casadi/include/highs/mip/HighsGFkSolve.h +3 -3
  241. casadi/include/highs/mip/HighsImplications.h +3 -3
  242. casadi/include/highs/mip/HighsLpAggregator.h +1 -1
  243. casadi/include/highs/mip/HighsLpRelaxation.h +6 -1
  244. casadi/include/highs/mip/HighsMipSolver.h +4 -2
  245. casadi/include/highs/mip/HighsMipSolverData.h +47 -4
  246. casadi/include/highs/mip/HighsModkSeparator.h +2 -2
  247. casadi/include/highs/mip/HighsNodeQueue.h +5 -3
  248. casadi/include/highs/mip/HighsObjectiveFunction.h +1 -1
  249. casadi/include/highs/mip/HighsPathSeparator.h +2 -2
  250. casadi/include/highs/mip/HighsPrimalHeuristics.h +1 -1
  251. casadi/include/highs/mip/HighsPseudocost.h +35 -23
  252. casadi/include/highs/mip/HighsRedcostFixing.h +1 -1
  253. casadi/include/highs/mip/HighsSearch.h +2 -1
  254. casadi/include/highs/mip/HighsSeparation.h +1 -1
  255. casadi/include/highs/mip/HighsSeparator.h +1 -1
  256. casadi/include/highs/mip/HighsTableauSeparator.h +1 -1
  257. casadi/include/highs/mip/HighsTransformedLp.h +1 -1
  258. casadi/include/highs/model/HighsHessian.h +5 -0
  259. casadi/include/highs/model/HighsHessianUtils.h +2 -0
  260. casadi/include/highs/model/HighsModel.h +10 -1
  261. casadi/include/highs/parallel/HighsMutex.h +2 -1
  262. casadi/include/highs/parallel/HighsParallel.h +7 -2
  263. casadi/include/highs/parallel/HighsTask.h +1 -2
  264. casadi/include/highs/pdlp/CupdlpWrapper.h +93 -0
  265. casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +41 -0
  266. casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +423 -0
  267. casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +183 -0
  268. casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +19 -0
  269. casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +31 -0
  270. casadi/include/highs/pdlp/cupdlp/cupdlp_scaling_cuda.h +28 -0
  271. casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +98 -0
  272. casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +33 -0
  273. casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +1726 -0
  274. casadi/include/highs/pdqsort/pdqsort.h +532 -0
  275. casadi/include/highs/presolve/HPresolve.h +27 -14
  276. casadi/include/highs/presolve/HPresolveAnalysis.h +1 -1
  277. casadi/include/highs/presolve/HighsPostsolveStack.h +92 -68
  278. casadi/include/highs/presolve/HighsSymmetry.h +6 -5
  279. casadi/include/highs/presolve/ICrash.h +8 -2
  280. casadi/include/highs/presolve/ICrashUtil.h +1 -1
  281. casadi/include/highs/presolve/ICrashX.h +1 -1
  282. casadi/include/highs/presolve/PresolveComponent.h +1 -1
  283. casadi/include/highs/qpsolver/a_asm.hpp +23 -12
  284. casadi/include/highs/qpsolver/a_quass.hpp +8 -1
  285. casadi/include/highs/qpsolver/basis.hpp +150 -0
  286. casadi/include/highs/qpsolver/crashsolution.hpp +12 -0
  287. casadi/include/highs/qpsolver/dantzigpricing.hpp +72 -0
  288. casadi/include/highs/qpsolver/devexpricing.hpp +99 -0
  289. casadi/include/highs/qpsolver/eventhandler.hpp +23 -0
  290. casadi/include/highs/qpsolver/factor.hpp +400 -0
  291. casadi/include/highs/qpsolver/feasibility_bounded.hpp +105 -0
  292. casadi/include/highs/qpsolver/feasibility_highs.hpp +270 -0
  293. casadi/include/highs/qpsolver/gradient.hpp +39 -0
  294. casadi/include/highs/qpsolver/instance.hpp +63 -0
  295. casadi/include/highs/qpsolver/matrix.hpp +335 -0
  296. casadi/include/highs/qpsolver/pricing.hpp +15 -0
  297. casadi/include/highs/qpsolver/qpconst.hpp +27 -0
  298. casadi/include/highs/qpsolver/{vector.hpp → qpvector.hpp} +25 -25
  299. casadi/include/highs/qpsolver/quass.hpp +1 -1
  300. casadi/include/highs/qpsolver/ratiotest.hpp +19 -0
  301. casadi/include/highs/qpsolver/runtime.hpp +38 -0
  302. casadi/include/highs/qpsolver/settings.hpp +57 -0
  303. casadi/include/highs/qpsolver/snippets.hpp +29 -0
  304. casadi/include/highs/qpsolver/statistics.hpp +23 -0
  305. casadi/include/highs/qpsolver/steepestedgepricing.hpp +167 -0
  306. casadi/include/highs/simplex/HApp.h +1 -1
  307. casadi/include/highs/simplex/HEkk.h +52 -18
  308. casadi/include/highs/simplex/HEkkDual.h +1 -1
  309. casadi/include/highs/simplex/HEkkDualRHS.h +6 -7
  310. casadi/include/highs/simplex/HEkkDualRow.h +2 -2
  311. casadi/include/highs/simplex/HEkkPrimal.h +6 -1
  312. casadi/include/highs/simplex/HSimplex.h +1 -3
  313. casadi/include/highs/simplex/HSimplexDebug.h +1 -1
  314. casadi/include/highs/simplex/HSimplexNla.h +1 -1
  315. casadi/include/highs/simplex/HSimplexReport.h +1 -1
  316. casadi/include/highs/simplex/HighsSimplexAnalysis.h +228 -100
  317. casadi/include/highs/simplex/SimplexConst.h +1 -1
  318. casadi/include/highs/simplex/SimplexStruct.h +2 -2
  319. casadi/include/highs/simplex/SimplexTimer.h +1 -1
  320. casadi/include/highs/test/DevKkt.h +1 -1
  321. casadi/include/highs/test/KktCh2.h +1 -1
  322. casadi/include/highs/util/FactorTimer.h +1 -1
  323. casadi/include/highs/util/HFactor.h +35 -6
  324. casadi/include/highs/util/HFactorConst.h +1 -1
  325. casadi/include/highs/util/HFactorDebug.h +1 -1
  326. casadi/include/highs/util/HSet.h +1 -1
  327. casadi/include/highs/util/HVector.h +1 -1
  328. casadi/include/highs/util/HVectorBase.h +1 -1
  329. casadi/include/highs/util/HighsCDouble.h +3 -3
  330. casadi/include/highs/util/HighsComponent.h +1 -1
  331. casadi/include/highs/util/HighsDataStack.h +4 -4
  332. casadi/include/highs/util/HighsDisjointSets.h +1 -1
  333. casadi/include/highs/util/HighsHash.h +28 -21
  334. casadi/include/highs/util/HighsHashTree.h +63 -63
  335. casadi/include/highs/util/HighsInt.h +1 -1
  336. casadi/include/highs/util/HighsIntegers.h +8 -9
  337. casadi/include/highs/util/HighsLinearSumBounds.h +1 -1
  338. casadi/include/highs/util/HighsMatrixPic.h +1 -1
  339. casadi/include/highs/util/HighsMatrixSlice.h +9 -6
  340. casadi/include/highs/util/HighsMatrixUtils.h +1 -1
  341. casadi/include/highs/util/HighsMemoryAllocation.h +55 -0
  342. casadi/include/highs/util/HighsRandom.h +27 -15
  343. casadi/include/highs/util/HighsRbTree.h +2 -2
  344. casadi/include/highs/util/HighsSort.h +7 -7
  345. casadi/include/highs/util/HighsSparseMatrix.h +5 -2
  346. casadi/include/highs/util/HighsSparseVectorSum.h +2 -2
  347. casadi/include/highs/util/HighsSplay.h +1 -1
  348. casadi/include/highs/util/HighsTimer.h +18 -9
  349. casadi/include/highs/util/HighsUtils.h +15 -8
  350. casadi/include/highs/util/stringutil.h +9 -4
  351. casadi/include/highs/zstr/strict_fstream.hpp +237 -0
  352. casadi/include/highs/zstr/zstr.hpp +472 -0
  353. casadi/include/licenses/daqp-external/LICENSE +21 -0
  354. casadi/include/licenses/highs-external/{LICENSE → LICENSE.txt} +1 -1
  355. casadi/include/osqp/constants.h +2 -3
  356. casadi/include/osqp/version.h +9 -0
  357. casadi/lib/libtinyxml2.a +0 -0
  358. casadi/libCbc.so +0 -0
  359. casadi/libCbc.so.3 +0 -0
  360. casadi/libCbc.so.3.10.11 +0 -0
  361. casadi/libCbcSolver.so +0 -0
  362. casadi/libCbcSolver.so.3 +0 -0
  363. casadi/libCbcSolver.so.3.10.11 +0 -0
  364. casadi/libCgl.so +0 -0
  365. casadi/libCgl.so.1 +0 -0
  366. casadi/libCgl.so.1.10.8 +0 -0
  367. casadi/libClp.so +0 -0
  368. casadi/libClp.so.1 +0 -0
  369. casadi/libClp.so.1.14.9 +0 -0
  370. casadi/libClpSolver.so +0 -0
  371. casadi/libClpSolver.so.1 +0 -0
  372. casadi/libClpSolver.so.1.14.9 +0 -0
  373. casadi/libCoinUtils.so +0 -0
  374. casadi/libCoinUtils.so.3 +0 -0
  375. casadi/libCoinUtils.so.3.11.10 +0 -0
  376. casadi/libOsi.so +0 -0
  377. casadi/libOsi.so.1 +0 -0
  378. casadi/libOsi.so.1.13.9 +0 -0
  379. casadi/libOsiCbc.so +0 -0
  380. casadi/libOsiCbc.so.3 +0 -0
  381. casadi/libOsiCbc.so.3.10.11 +0 -0
  382. casadi/libOsiClp.so +0 -0
  383. casadi/libOsiClp.so.1 +0 -0
  384. casadi/libOsiClp.so.1.14.9 +0 -0
  385. casadi/libOsiCommonTests.so +0 -0
  386. casadi/libOsiCommonTests.so.1 +0 -0
  387. casadi/libOsiCommonTests.so.1.13.9 +0 -0
  388. casadi/libbonmin.so +0 -0
  389. casadi/libbonmin.so.4 +0 -0
  390. casadi/libbonmin.so.4.8.9 +0 -0
  391. casadi/libcasadi.so +0 -0
  392. casadi/libcasadi.so.3.7 +0 -0
  393. casadi/libcasadi_conic_cbc.so +0 -0
  394. casadi/libcasadi_conic_cbc.so.3.7 +0 -0
  395. casadi/libcasadi_conic_clp.so +0 -0
  396. casadi/libcasadi_conic_clp.so.3.7 +0 -0
  397. casadi/libcasadi_conic_daqp.so +0 -0
  398. casadi/libcasadi_conic_daqp.so.3.7 +0 -0
  399. casadi/libcasadi_conic_gurobi.so +0 -0
  400. casadi/libcasadi_conic_gurobi.so.3.7 +0 -0
  401. casadi/libcasadi_conic_highs.so +0 -0
  402. casadi/libcasadi_conic_highs.so.3.7 +0 -0
  403. casadi/libcasadi_conic_ipqp.so +0 -0
  404. casadi/libcasadi_conic_ipqp.so.3.7 +0 -0
  405. casadi/libcasadi_conic_nlpsol.so +0 -0
  406. casadi/libcasadi_conic_nlpsol.so.3.7 +0 -0
  407. casadi/libcasadi_conic_osqp.so +0 -0
  408. casadi/libcasadi_conic_osqp.so.3.7 +0 -0
  409. casadi/libcasadi_conic_proxqp.so +0 -0
  410. casadi/libcasadi_conic_proxqp.so.3.7 +0 -0
  411. casadi/libcasadi_conic_qpoases.so +0 -0
  412. casadi/libcasadi_conic_qpoases.so.3.7 +0 -0
  413. casadi/libcasadi_conic_qrqp.so +0 -0
  414. casadi/libcasadi_conic_qrqp.so.3.7 +0 -0
  415. casadi/libcasadi_conic_superscs.so +0 -0
  416. casadi/libcasadi_conic_superscs.so.3.7 +0 -0
  417. casadi/libcasadi_integrator_collocation.so +0 -0
  418. casadi/libcasadi_integrator_collocation.so.3.7 +0 -0
  419. casadi/libcasadi_integrator_cvodes.so +0 -0
  420. casadi/libcasadi_integrator_cvodes.so.3.7 +0 -0
  421. casadi/libcasadi_integrator_idas.so +0 -0
  422. casadi/libcasadi_integrator_idas.so.3.7 +0 -0
  423. casadi/libcasadi_integrator_rk.so +0 -0
  424. casadi/libcasadi_integrator_rk.so.3.7 +0 -0
  425. casadi/libcasadi_nlpsol_alpaqa.so +0 -0
  426. casadi/libcasadi_nlpsol_alpaqa.so.3.7 +0 -0
  427. casadi/libcasadi_nlpsol_ampl.so +0 -0
  428. casadi/libcasadi_nlpsol_ampl.so.3.7 +0 -0
  429. casadi/libcasadi_nlpsol_blocksqp.so +0 -0
  430. casadi/libcasadi_nlpsol_blocksqp.so.3.7 +0 -0
  431. casadi/libcasadi_nlpsol_bonmin.so +0 -0
  432. casadi/libcasadi_nlpsol_bonmin.so.3.7 +0 -0
  433. casadi/libcasadi_nlpsol_feasiblesqpmethod.so +0 -0
  434. casadi/libcasadi_nlpsol_feasiblesqpmethod.so.3.7 +0 -0
  435. casadi/libcasadi_nlpsol_ipopt.so +0 -0
  436. casadi/libcasadi_nlpsol_ipopt.so.3.7 +0 -0
  437. casadi/libcasadi_nlpsol_knitro.so +0 -0
  438. casadi/libcasadi_nlpsol_knitro.so.3.7 +0 -0
  439. casadi/libcasadi_nlpsol_madnlp.so +0 -0
  440. casadi/libcasadi_nlpsol_madnlp.so.3.7 +0 -0
  441. casadi/libcasadi_nlpsol_qrsqp.so +0 -0
  442. casadi/libcasadi_nlpsol_qrsqp.so.3.7 +0 -0
  443. casadi/libcasadi_nlpsol_scpgen.so +0 -0
  444. casadi/libcasadi_nlpsol_scpgen.so.3.7 +0 -0
  445. casadi/libcasadi_nlpsol_sleqp.so +0 -0
  446. casadi/libcasadi_nlpsol_sleqp.so.3.7 +0 -0
  447. casadi/libcasadi_nlpsol_snopt.so +0 -0
  448. casadi/libcasadi_nlpsol_snopt.so.3.7 +0 -0
  449. casadi/libcasadi_nlpsol_sqpmethod.so +0 -0
  450. casadi/libcasadi_nlpsol_sqpmethod.so.3.7 +0 -0
  451. casadi/libcasadi_nlpsol_worhp.so +0 -0
  452. casadi/libcasadi_nlpsol_worhp.so.3.7 +0 -0
  453. casadi/libcasadi_rootfinder_fast_newton.so +0 -0
  454. casadi/libcasadi_rootfinder_fast_newton.so.3.7 +0 -0
  455. casadi/libcasadi_rootfinder_kinsol.so +0 -0
  456. casadi/libcasadi_rootfinder_kinsol.so.3.7 +0 -0
  457. casadi/libcasadi_rootfinder_newton.so +0 -0
  458. casadi/libcasadi_rootfinder_newton.so.3.7 +0 -0
  459. casadi/libcasadi_rootfinder_nlpsol.so +0 -0
  460. casadi/libcasadi_rootfinder_nlpsol.so.3.7 +0 -0
  461. casadi/libcasadi_sundials_common.so +0 -0
  462. casadi/libcasadi_sundials_common.so.3.7 +0 -0
  463. casadi/libdaqp.so +0 -0
  464. casadi/libdaqpstat.a +0 -0
  465. casadi/libhighs.so +0 -0
  466. casadi/libhighs.so.1 +0 -0
  467. casadi/libhighs.so.1.7.2 +0 -0
  468. casadi/libindirect.a +0 -0
  469. casadi/libipopt.so +0 -0
  470. casadi/libipopt.so.3 +0 -0
  471. casadi/libipopt.so.3.14.11 +0 -0
  472. casadi/liblinsys.a +0 -0
  473. casadi/libmatlab_ipc.so +0 -0
  474. casadi/libosqp.a +0 -0
  475. casadi/libosqp.so +0 -0
  476. casadi/libqdldl.a +0 -0
  477. casadi/libsipopt.so +0 -0
  478. casadi/libsipopt.so.3 +0 -0
  479. casadi/libsipopt.so.3.14.11 +0 -0
  480. casadi/libsleqp.so +0 -0
  481. casadi/libsleqp.so.1.0.1 +0 -0
  482. casadi/libspral.a +0 -0
  483. casadi/libsuperscs.a +0 -0
  484. casadi/pkgconfig/casadi.pc +1 -1
  485. casadi/pkgconfig/highs.pc +1 -1
  486. casadi/tools/__init__.py +4 -0
  487. casadi/tools/bounds.py +3 -3
  488. {casadi-3.6.4.dist-info → casadi-3.6.6.dist-info}/METADATA +12 -4
  489. {casadi-3.6.4.dist-info → casadi-3.6.6.dist-info}/RECORD +490 -281
  490. casadi/include/highs/fortran/highs_fortran_api.mod +0 -0
  491. casadi/libFortranHighs.so +0 -0
  492. casadi/libhighs.so.1.6 +0 -0
  493. casadi/libhighs.so.1.6.0 +0 -0
  494. {casadi-3.6.4.dist-info → casadi-3.6.6.dist-info}/WHEEL +0 -0
@@ -46,6 +46,7 @@ extern "C" {
46
46
  #endif
47
47
 
48
48
  /* Function types corresponding to entry points in CasADi's C API */
49
+ typedef int (*casadi_config_t)(int, const char**);
49
50
  typedef void (*casadi_signal_t)(void);
50
51
  typedef casadi_int (*casadi_getint_t)(void);
51
52
  typedef int (*casadi_checkout_t)(void);
@@ -0,0 +1,417 @@
1
+ // Copyright (C) 2004, 2007 International Business Machines and others.
2
+ // All Rights Reserved.
3
+ // This code is published under the Eclipse Public License.
4
+ //
5
+ // Authors: Carl Laird, Andreas Waechter IBM 2004-09-29
6
+
7
+ #ifndef __IPALGBUILDER_HPP__
8
+ #define __IPALGBUILDER_HPP__
9
+
10
+ #include "IpIpoptAlg.hpp"
11
+ #include "IpReferenced.hpp"
12
+ #include "IpAugSystemSolver.hpp"
13
+ #include "IpPDSystemSolver.hpp"
14
+ #include "IpLibraryLoader.hpp"
15
+
16
+ namespace Ipopt
17
+ {
18
+
19
+ // forward declarations
20
+ class IterationOutput;
21
+ class HessianUpdater;
22
+ class ConvergenceCheck;
23
+ class SearchDirectionCalculator;
24
+ class EqMultiplierCalculator;
25
+ class IterateInitializer;
26
+ class LineSearch;
27
+ class MuUpdate;
28
+
29
+ /** Builder for creating a complete IpoptAlg object.
30
+ *
31
+ * This object contains all subelements (such as line search objects
32
+ * etc). How the resulting IpoptAlg object is built can be influenced
33
+ * by the options.
34
+ *
35
+ * More advanced customization can be achieved by subclassing this
36
+ * class and overloading the virtual methods that build the
37
+ * individual parts. The advantage of doing this is that it allows
38
+ * one to reuse the extensive amount of options processing that
39
+ * takes place, for instance, when generating the symmetric linear
40
+ * system solver. Another method for customizing the algorithm is
41
+ * using the optional custom_solver argument, which allows the
42
+ * expert user to provide a specialized linear solver for the
43
+ * augmented system (e.g., type GenAugSystemSolver), possibly for
44
+ * user-defined matrix objects. The optional custom_solver constructor
45
+ * argument is likely obsolete, however, as more control over this
46
+ * this process can be achieved by implementing a subclass of this
47
+ * AlgBuilder (e.g., by overloading the AugSystemSolverFactory method).
48
+ */
49
+ class IPOPTLIB_EXPORT AlgorithmBuilder: public ReferencedObject
50
+ {
51
+ public:
52
+ /**@name Constructors/Destructors */
53
+ ///@{
54
+ /** Constructor */
55
+ AlgorithmBuilder(
56
+ SmartPtr<AugSystemSolver> custom_solver = NULL
57
+ );
58
+
59
+ /** Destructor */
60
+ virtual ~AlgorithmBuilder()
61
+ { }
62
+
63
+ ///@}
64
+
65
+ /** Methods for IpoptTypeInfo */
66
+ ///@{
67
+ /** register the options used by the algorithm builder */
68
+ static void RegisterOptions(
69
+ SmartPtr<RegisteredOptions> roptions
70
+ );
71
+ ///@}
72
+
73
+ /** @name Convenience methods for building solvers without having
74
+ * to duplicate the significant amount of preprocessor flag and
75
+ * option checking that takes place. These solvers are used to
76
+ * create a number of core algorithm components across the
77
+ * different Build* methods, but depending on what options are
78
+ * chosen, the first method requiring the solver to be used can
79
+ * vary. Therefore, each of the Factory methods below is paired
80
+ * with a Getter method, which is called by all parts of this
81
+ * algorithm builder to ensure the Factory is only called once. */
82
+ ///@{
83
+ /** Create a solver that can be used to solve a symmetric linear
84
+ * system.
85
+ * Dependencies: None
86
+ */
87
+ virtual SmartPtr<SymLinearSolver> SymLinearSolverFactory(
88
+ const Journalist& jnlst,
89
+ const OptionsList& options,
90
+ const std::string& prefix
91
+ );
92
+
93
+ /** Get the symmetric linear system solver for this
94
+ * algorithm. This method will call the SymLinearSolverFactory
95
+ * exactly once (the first time it is used), and store its
96
+ * instance on SymSolver_ for use in subsequent calls.
97
+ */
98
+ SmartPtr<SymLinearSolver> GetSymLinearSolver(
99
+ const Journalist& jnlst,
100
+ const OptionsList& options,
101
+ const std::string& prefix
102
+ );
103
+
104
+ /** Create a solver that can be used to solve an
105
+ * augmented system.
106
+ * Dependencies:
107
+ * -> GetSymLinearSolver()
108
+ * -> SymLinearSolverFactory()
109
+ * -> custom_solver_
110
+ */
111
+ virtual SmartPtr<AugSystemSolver> AugSystemSolverFactory(
112
+ const Journalist& jnlst,
113
+ const OptionsList& options,
114
+ const std::string& prefix
115
+ );
116
+
117
+ /** Get the augmented system solver for this algorithm. This
118
+ * method will call the AugSystemSolverFactory exactly once (the
119
+ * first time it is used), and store its instance on AugSolver_
120
+ * for use in subsequent calls.
121
+ */
122
+ SmartPtr<AugSystemSolver> GetAugSystemSolver(
123
+ const Journalist& jnlst,
124
+ const OptionsList& options,
125
+ const std::string& prefix
126
+ );
127
+
128
+ /** Create a solver that can be used to solve a
129
+ * primal-dual system.
130
+ * Dependencies:
131
+ * -> GetAugSystemSolver()
132
+ * -> AugSystemSolverFactory()
133
+ * -> GetSymLinearSolver()
134
+ * -> SymLinearSolverFactory()
135
+ * -> custom_solver_
136
+ */
137
+ virtual SmartPtr<PDSystemSolver> PDSystemSolverFactory(
138
+ const Journalist& jnlst,
139
+ const OptionsList& options,
140
+ const std::string& prefix
141
+ );
142
+
143
+ /** Get the primal-dual system solver for this algorithm. This
144
+ * method will call the PDSystemSolverFactory exactly once (the
145
+ * first time it is used), and store its instance on PDSolver_
146
+ * for use in subsequent calls.
147
+ */
148
+ SmartPtr<PDSystemSolver> GetPDSystemSolver(
149
+ const Journalist& jnlst,
150
+ const OptionsList& options,
151
+ const std::string& prefix
152
+ );
153
+ ///@}
154
+
155
+ /** @name Methods to build parts of the algorithm */
156
+ ///@{
157
+ /** Allocates memory for the IpoptNLP, IpoptData, and
158
+ * IpoptCalculatedQuanties arguments.
159
+ * Dependencies: None
160
+ */
161
+ virtual void BuildIpoptObjects(
162
+ const Journalist& jnlst,
163
+ const OptionsList& options,
164
+ const std::string& prefix,
165
+ const SmartPtr<NLP>& nlp,
166
+ SmartPtr<IpoptNLP>& ip_nlp,
167
+ SmartPtr<IpoptData>& ip_data,
168
+ SmartPtr<IpoptCalculatedQuantities>& ip_cq
169
+ );
170
+
171
+ /** Creates an instance of the IpoptAlgorithm class by building
172
+ * each of its required constructor arguments piece-by-piece. The
173
+ * default algorithm can be customized by overloading this method
174
+ * or by overloading one or more of the Build* methods called in
175
+ * this method's default implementation. Additional control can
176
+ * be achieved by overloading any of the *SolverFactory methods.
177
+ * This method will call (in this order):
178
+ * -> BuildIterationOutput()
179
+ * -> BuildHessianUpdater()
180
+ * -> BuildConvergenceCheck()
181
+ * -> BuildSearchDirectionCalculator()
182
+ * -> BuildEqMultiplierCalculator()
183
+ * -> BuildIterateInitializer()
184
+ * -> BuildLineSearch()
185
+ * -> BuildMuUpdate()
186
+ */
187
+ virtual SmartPtr<IpoptAlgorithm> BuildBasicAlgorithm(
188
+ const Journalist& jnlst,
189
+ const OptionsList& options,
190
+ const std::string& prefix
191
+ );
192
+
193
+ /** Creates an instance of the IterationOutput class. This method
194
+ * is called in the default implementation of
195
+ * BuildBasicAlgorithm. It can be overloaded to customize that
196
+ * portion the default algorithm.
197
+ * Dependencies: None
198
+ */
199
+ virtual SmartPtr<IterationOutput> BuildIterationOutput(
200
+ const Journalist& jnlst,
201
+ const OptionsList& options,
202
+ const std::string& prefix
203
+ );
204
+
205
+ /** Creates an instance of the HessianUpdater class. This method
206
+ * is called in the default implementation of
207
+ * BuildBasicAlgorithm. It can be overloaded to customize that
208
+ * portion the default algorithm.
209
+ * Dependencies: None
210
+ */
211
+ virtual SmartPtr<HessianUpdater> BuildHessianUpdater(
212
+ const Journalist& jnlst,
213
+ const OptionsList& options,
214
+ const std::string& prefix
215
+ );
216
+
217
+ /** Creates an instance of the ConvergenceCheck class. This method
218
+ * is called in the default implementation of
219
+ * BuildBasicAlgorithm. It can be overloaded to customize that
220
+ * portion the default algorithm.
221
+ * Dependencies: None
222
+ */
223
+ virtual SmartPtr<ConvergenceCheck> BuildConvergenceCheck(
224
+ const Journalist& jnlst,
225
+ const OptionsList& options,
226
+ const std::string& prefix
227
+ );
228
+
229
+ /** Creates an instance of the SearchDirectionCalculator
230
+ * class. This method is called in the default implementation of
231
+ * BuildBasicAlgorithm. It can be overloaded to customize that
232
+ * portion the default algorithm.
233
+ * Dependencies:
234
+ * -> GetPDSystemSolver()
235
+ * -> PDSystemSolverFactory()
236
+ * -> GetAugSystemSolver()
237
+ * -> AugSystemSolverFactory()
238
+ * -> GetSymLinearSolver()
239
+ * -> SymLinearSolverFactory()
240
+ * -> custom_solver_
241
+ */
242
+ virtual SmartPtr<SearchDirectionCalculator> BuildSearchDirectionCalculator(
243
+ const Journalist& jnlst,
244
+ const OptionsList& options,
245
+ const std::string& prefix
246
+ );
247
+
248
+ /** Creates an instance of the EqMultiplierCalculator class. This
249
+ * method is called in the default implementation of
250
+ * BuildBasicAlgorithm. It can be overloaded to customize that
251
+ * portion the default algorithm.
252
+ * Dependencies:
253
+ * -> GetAugSystemSolver()
254
+ * -> AugSystemSolverFactory()
255
+ * -> GetSymLinearSolver()
256
+ * -> SymLinearSolverFactory()
257
+ * -> custom_solver_
258
+ */
259
+ virtual SmartPtr<EqMultiplierCalculator> BuildEqMultiplierCalculator(
260
+ const Journalist& jnlst,
261
+ const OptionsList& options,
262
+ const std::string& prefix
263
+ );
264
+
265
+ /** Creates an instance of the IterateInitializer class. This
266
+ * method is called in the default implementation of
267
+ * BuildBasicAlgorithm. It can be overloaded to customize that
268
+ * portion the default algorithm.
269
+ * Dependencies:
270
+ * -> EqMultCalculator_
271
+ * -> GetAugSystemSolver()
272
+ * -> AugSystemSolverFactory()
273
+ * -> GetSymLinearSolver()
274
+ * -> SymLinearSolverFactory()
275
+ * -> custom_solver_
276
+ */
277
+ virtual SmartPtr<IterateInitializer> BuildIterateInitializer(
278
+ const Journalist& jnlst,
279
+ const OptionsList& options,
280
+ const std::string& prefix
281
+ );
282
+
283
+ /** Creates an instance of the LineSearch class. This method is
284
+ * called in the default implementation of BuildBasicAlgorithm.
285
+ * It can be overloaded to customize that portion the default
286
+ * algorithm.
287
+ * Dependencies:
288
+ * -> EqMultCalculator_
289
+ * -> ConvCheck_
290
+ * -> GetAugSystemSolver()
291
+ * -> AugSystemSolverFactory()
292
+ * -> GetSymLinearSolver()
293
+ * -> SymLinearSolverFactory()
294
+ * -> custom_solver_
295
+ * -> GetPDSystemSolver()
296
+ * -> PDSystemSolverFactory()
297
+ * -> GetAugSystemSolver()
298
+ * -> AugSystemSolverFactory()
299
+ * -> GetSymLinearSolver()
300
+ * -> SymLinearSolverFactory()
301
+ * -> custom_solver_
302
+ */
303
+ virtual SmartPtr<LineSearch> BuildLineSearch(
304
+ const Journalist& jnlst,
305
+ const OptionsList& options,
306
+ const std::string& prefix
307
+ );
308
+
309
+ /** Creates an instance of the MuUpdate class. This method is
310
+ * called in the default implementation of BuildBasicAlgorithm.
311
+ * It can be overloaded to customize that portion the default
312
+ * algorithm.
313
+ * Dependencies:
314
+ * -> LineSearch_
315
+ * -> EqMultCalculator_
316
+ * -> ConvCheck_
317
+ * -> GetPDSystemSolver()
318
+ * -> PDSystemSolverFactory()
319
+ * -> GetAugSystemSolver()
320
+ * -> AugSystemSolverFactory()
321
+ * -> GetSymLinearSolver()
322
+ * -> SymLinearSolverFactory()
323
+ * -> custom_solver_
324
+ */
325
+ virtual SmartPtr<MuUpdate> BuildMuUpdate(
326
+ const Journalist& jnlst,
327
+ const OptionsList& options,
328
+ const std::string& prefix
329
+ );
330
+ ///@}
331
+
332
+ protected:
333
+ /// Gives Library Loader for HSL library if not all HSL routines are linked in
334
+ ///
335
+ /// Creates new loader if not existing yet.
336
+ /// @since 3.14.0
337
+ SmartPtr<LibraryLoader> GetHSLLoader(
338
+ const OptionsList& options,
339
+ const std::string& prefix
340
+ );
341
+
342
+ /// Gives Library Loader for Pardiso library from pardiso-project.org.
343
+ ///
344
+ /// Creates new loader if not existing yet.
345
+ /// @since 3.14.0
346
+ SmartPtr<LibraryLoader> GetPardisoLoader(
347
+ const OptionsList& options,
348
+ const std::string& prefix
349
+ );
350
+
351
+ private:
352
+ /**@name Default Compiler Generated Methods
353
+ * (Hidden to avoid implicit creation/calling).
354
+ * These methods are not implemented and
355
+ * we do not want the compiler to implement
356
+ * them for us, so we declare them private
357
+ * and do not define them. This ensures that
358
+ * they will not be implicitly created/called. */
359
+ ///@{
360
+ /** Default Constructor */
361
+ //AlgorithmBuilder();
362
+
363
+ /** Copy Constructor */
364
+ AlgorithmBuilder(
365
+ const AlgorithmBuilder&
366
+ );
367
+
368
+ /** Default Assignment Operator */
369
+ void operator=(
370
+ const AlgorithmBuilder&
371
+ );
372
+ ///@}
373
+
374
+ /** @name IpoptAlgorithm constructor arguments.
375
+ * These components are built in separate Build
376
+ * methods in the order defined by BuildBasicAlgorithm.
377
+ * A single core component may require one or more
378
+ * other core components in its constructor, so the
379
+ * this class holds pointers to each component for use
380
+ * between the separate Build methods. */
381
+ ///@{
382
+ SmartPtr<IterationOutput> IterOutput_;
383
+ SmartPtr<HessianUpdater> HessUpdater_;
384
+ SmartPtr<ConvergenceCheck> ConvCheck_;
385
+ SmartPtr<SearchDirectionCalculator> SearchDirCalc_;
386
+ SmartPtr<EqMultiplierCalculator> EqMultCalculator_;
387
+ SmartPtr<IterateInitializer> IterInitializer_;
388
+ SmartPtr<LineSearch> LineSearch_;
389
+ SmartPtr<MuUpdate> MuUpdate_;
390
+ ///@}
391
+
392
+ /** @name Commonly used solver components
393
+ * for building core algorithm components. Each
394
+ * of these members is paired with a Factory/Getter
395
+ * method. */
396
+ ///@{
397
+ SmartPtr<SymLinearSolver> SymSolver_;
398
+ SmartPtr<AugSystemSolver> AugSolver_;
399
+ SmartPtr<PDSystemSolver> PDSolver_;
400
+ ///@}
401
+
402
+ /** Optional pointer to AugSystemSolver. If this is set in the
403
+ * constructor, we will use this to solve the linear systems. */
404
+ SmartPtr<AugSystemSolver> custom_solver_;
405
+
406
+ /// name of linear solver constructed in SymLinearSolverFactory
407
+ std::string linear_solver;
408
+
409
+ /// loader of HSL library (at runtime)
410
+ SmartPtr<LibraryLoader> hslloader;
411
+ /// loader of Pardiso library (at runtime)
412
+ SmartPtr<LibraryLoader> pardisoloader;
413
+
414
+ };
415
+ } // namespace Ipopt
416
+
417
+ #endif
@@ -0,0 +1,201 @@
1
+ // Copyright (C) 2004, 2006 International Business Machines and others.
2
+ // All Rights Reserved.
3
+ // This code is published under the Eclipse Public License.
4
+ //
5
+ // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
6
+
7
+ #ifndef __IPALGSTRATEGY_HPP__
8
+ #define __IPALGSTRATEGY_HPP__
9
+
10
+ #include "IpOptionsList.hpp"
11
+ #include "IpJournalist.hpp"
12
+ #include "IpIpoptCalculatedQuantities.hpp"
13
+ #include "IpIpoptNLP.hpp"
14
+ #include "IpIpoptData.hpp"
15
+
16
+ namespace Ipopt
17
+ {
18
+
19
+ /** This is the base class for all algorithm strategy objects.
20
+ *
21
+ * The AlgorithmStrategyObject base class implements a common interface
22
+ * for all algorithm strategy objects. A strategy object is a
23
+ * component of the algorithm for which different alternatives or
24
+ * implementations exists. It allows to compose the algorithm
25
+ * before execution for a particular configuration, without the
26
+ * need to call alternatives based on enums. For example, the
27
+ * LineSearch object is a strategy object, since different line
28
+ * search options might be used for different runs.
29
+ *
30
+ * This interface is used for
31
+ * things that are done to all strategy objects, like
32
+ * initialization and setting options.
33
+ */
34
+ class IPOPTLIB_EXPORT AlgorithmStrategyObject: public ReferencedObject
35
+ {
36
+ public:
37
+ /**@name Constructors/Destructors */
38
+ ///@{
39
+ /** Default Constructor */
40
+ AlgorithmStrategyObject()
41
+ : initialize_called_(false)
42
+ { }
43
+
44
+ /** Destructor */
45
+ virtual ~AlgorithmStrategyObject()
46
+ { }
47
+ ///@}
48
+
49
+ /** This method is called every time the algorithm starts again -
50
+ * it is used to reset any internal state.
51
+ *
52
+ * The pointers to the
53
+ * Journalist, as well as to the IpoptNLP, IpoptData, and
54
+ * IpoptCalculatedQuantities objects should be stored in the
55
+ * instantiation of this base class. This method is also used to
56
+ * get all required user options from the OptionsList. Here, if
57
+ * prefix is given, each tag (identifying the options) is first
58
+ * looked for with the prefix in front, and if not found, without
59
+ * the prefix. Note: you should not cue off of the iteration
60
+ * count to indicate the "start" of an algorithm!
61
+ *
62
+ * Do not overload this method, since it does some general
63
+ * initialization that is common for all strategy objects.
64
+ * Overload the protected InitializeImpl method instead.
65
+ */
66
+ bool Initialize(
67
+ const Journalist& jnlst,
68
+ IpoptNLP& ip_nlp,
69
+ IpoptData& ip_data,
70
+ IpoptCalculatedQuantities& ip_cq,
71
+ const OptionsList& options,
72
+ const std::string& prefix
73
+ )
74
+ {
75
+ initialize_called_ = true;
76
+ // Copy the pointers for the problem defining objects
77
+ jnlst_ = &jnlst;
78
+ ip_nlp_ = &ip_nlp;
79
+ ip_data_ = &ip_data;
80
+ ip_cq_ = &ip_cq;
81
+
82
+ bool retval = InitializeImpl(options, prefix);
83
+ if( !retval )
84
+ {
85
+ initialize_called_ = false;
86
+ }
87
+
88
+ return retval;
89
+ }
90
+
91
+ /** Reduced version of the Initialize method, which does not
92
+ * require special Ipopt information.
93
+ *
94
+ * This is useful for algorithm objects that could be used
95
+ * outside Ipopt, such as linear solvers.
96
+ */
97
+ bool ReducedInitialize(
98
+ const Journalist& jnlst,
99
+ const OptionsList& options,
100
+ const std::string& prefix
101
+ )
102
+ {
103
+ initialize_called_ = true;
104
+ // Copy the pointers for the problem defining objects
105
+ jnlst_ = &jnlst;
106
+ ip_nlp_ = NULL;
107
+ ip_data_ = NULL;
108
+ ip_cq_ = NULL;
109
+
110
+ bool retval = InitializeImpl(options, prefix);
111
+ if( !retval )
112
+ {
113
+ initialize_called_ = false;
114
+ }
115
+
116
+ return retval;
117
+ }
118
+
119
+ protected:
120
+ /** Implementation of the initialization method that has to be
121
+ * overloaded by for each derived class.
122
+ */
123
+ virtual bool InitializeImpl(
124
+ const OptionsList& options,
125
+ const std::string& prefix
126
+ ) = 0;
127
+
128
+ /** @name Accessor methods for the problem defining objects.
129
+ *
130
+ * Those should be used by the derived classes.
131
+ */
132
+ ///@{
133
+ const Journalist& Jnlst() const
134
+ {
135
+ DBG_ASSERT(initialize_called_);
136
+ return *jnlst_;
137
+ }
138
+ IpoptNLP& IpNLP() const
139
+ {
140
+ DBG_ASSERT(initialize_called_);
141
+ DBG_ASSERT(IsValid(ip_nlp_));
142
+ return *ip_nlp_;
143
+ }
144
+ IpoptData& IpData() const
145
+ {
146
+ DBG_ASSERT(initialize_called_);
147
+ DBG_ASSERT(IsValid(ip_data_));
148
+ return *ip_data_;
149
+ }
150
+ IpoptCalculatedQuantities& IpCq() const
151
+ {
152
+ DBG_ASSERT(initialize_called_);
153
+ DBG_ASSERT(IsValid(ip_cq_));
154
+ return *ip_cq_;
155
+ }
156
+ bool HaveIpData() const
157
+ {
158
+ return IsValid(ip_data_);
159
+ }
160
+ ///@}
161
+
162
+ private:
163
+ /**@name Default Compiler Generated Methods
164
+ * (Hidden to avoid implicit creation/calling).
165
+ *
166
+ * These methods are not implemented and
167
+ * we do not want the compiler to implement
168
+ * them for us, so we declare them private
169
+ * and do not define them. This ensures that
170
+ * they will not be implicitly created/called.
171
+ */
172
+ ///@{
173
+ /** Default Constructor */
174
+ //AlgorithmStrategyObject();
175
+
176
+ /** Copy Constructor */
177
+ AlgorithmStrategyObject(
178
+ const AlgorithmStrategyObject&
179
+ );
180
+
181
+ /** Default Assignment Operator */
182
+ void operator=(
183
+ const AlgorithmStrategyObject&
184
+ );
185
+ ///@}
186
+
187
+ /** @name Pointers to objects defining a particular optimization problem */
188
+ ///@{
189
+ SmartPtr<const Journalist> jnlst_;
190
+ SmartPtr<IpoptNLP> ip_nlp_;
191
+ SmartPtr<IpoptData> ip_data_;
192
+ SmartPtr<IpoptCalculatedQuantities> ip_cq_;
193
+ ///@}
194
+
195
+ /** flag indicating if Initialize method has been called (for debugging) */
196
+ bool initialize_called_;
197
+ };
198
+
199
+ } // namespace Ipopt
200
+
201
+ #endif
@@ -0,0 +1,64 @@
1
+ // Copyright (C) 2005, 2010 International Business Machines and others.
2
+ // All Rights Reserved.
3
+ // This code is published under the Eclipse Public License.
4
+ //
5
+ // Authors: Carl Laird, Andreas Waechter IBM 2005-07-19
6
+
7
+ #ifndef __IPALGTYPES_HPP__
8
+ #define __IPALGTYPES_HPP__
9
+
10
+ #include "IpTypes.hpp"
11
+ #include "IpException.hpp"
12
+
13
+ namespace Ipopt
14
+ {
15
+
16
+ /**@name Enumerations */
17
+ ///@{
18
+ /** enum for the return from the optimize algorithm */
19
+ enum SolverReturn
20
+ {
21
+ SUCCESS,
22
+ MAXITER_EXCEEDED,
23
+ CPUTIME_EXCEEDED,
24
+ WALLTIME_EXCEEDED, ///< @since 3.14.0
25
+ STOP_AT_TINY_STEP,
26
+ STOP_AT_ACCEPTABLE_POINT,
27
+ LOCAL_INFEASIBILITY,
28
+ USER_REQUESTED_STOP,
29
+ FEASIBLE_POINT_FOUND,
30
+ DIVERGING_ITERATES,
31
+ RESTORATION_FAILURE,
32
+ ERROR_IN_STEP_COMPUTATION,
33
+ INVALID_NUMBER_DETECTED,
34
+ TOO_FEW_DEGREES_OF_FREEDOM,
35
+ INVALID_OPTION,
36
+ OUT_OF_MEMORY,
37
+ INTERNAL_ERROR,
38
+ UNASSIGNED
39
+ };
40
+ ///@}
41
+
42
+ /** @name Some exceptions used in multiple places */
43
+ ///@{
44
+ DECLARE_STD_EXCEPTION(LOCALLY_INFEASIBLE);
45
+ DECLARE_STD_EXCEPTION(TOO_FEW_DOF);
46
+ DECLARE_STD_EXCEPTION(TINY_STEP_DETECTED);
47
+ DECLARE_STD_EXCEPTION(STEP_COMPUTATION_FAILED);
48
+ DECLARE_STD_EXCEPTION(ACCEPTABLE_POINT_REACHED);
49
+ DECLARE_STD_EXCEPTION(FEASIBILITY_PROBLEM_SOLVED);
50
+ DECLARE_STD_EXCEPTION(INVALID_WARMSTART);
51
+ DECLARE_STD_EXCEPTION(INTERNAL_ABORT);
52
+ DECLARE_STD_EXCEPTION(INCONSISTENT_BOUNDS);
53
+ /** Exception FAILED_INITIALIZATION for problem during
54
+ * initialization of a strategy object (or other problems).
55
+ *
56
+ * This is thrown by a strategy object, if a problem arises during
57
+ * initialization, such as a value out of a feasible range.
58
+ */
59
+ DECLARE_STD_EXCEPTION(FAILED_INITIALIZATION);
60
+ ///@}
61
+
62
+ }
63
+
64
+ #endif