casadi 3.6.4__cp38-none-manylinux2014_i686.whl → 3.6.6__cp38-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
@@ -0,0 +1,395 @@
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 __IPCOMPOUNDVECTOR_HPP__
8
+ #define __IPCOMPOUNDVECTOR_HPP__
9
+
10
+ #include "IpUtils.hpp"
11
+ #include "IpVector.hpp"
12
+ #include <vector>
13
+
14
+ namespace Ipopt
15
+ {
16
+
17
+ /* forward declarations */
18
+ class CompoundVectorSpace;
19
+
20
+ /** Class of Vectors consisting of other vectors.
21
+ *
22
+ * This vector is a
23
+ * vector that consists of zero, one or more Vector's which are
24
+ * stacked on each others: \f$ x_{\rm compound} =
25
+ * \left(\begin{array}{c}x_0\\\dots\\x_{{\rm
26
+ * ncomps} - 1}\end{array}\right)\f$. The individual components can be
27
+ * associated to different VectorSpaces. The individual components
28
+ * can also be const and non-const Vectors.
29
+ */
30
+ class IPOPTLIB_EXPORT CompoundVector: public Vector
31
+ {
32
+ public:
33
+ /**@name Constructors/Destructors */
34
+ ///@{
35
+ /** Constructor, given the corresponding CompoundVectorSpace.
36
+ *
37
+ * Before this constructor can be called, all components of the
38
+ * CompoundVectorSpace have to be set, so that the constructors
39
+ * for the individual components can be called. If the flag
40
+ * create_new is true, then the individual components of the new
41
+ * CompoundVector are initialized with the MakeNew methods of
42
+ * each VectorSpace (and are non-const). Otherwise, the
43
+ * individual components can later be set using the SetComp and
44
+ * SetCompNonConst method.
45
+ */
46
+ CompoundVector(
47
+ const CompoundVectorSpace* owner_space,
48
+ bool create_new
49
+ );
50
+
51
+ /** Default destructor */
52
+ virtual ~CompoundVector() { }
53
+ ///@}
54
+
55
+ /** Method for setting the pointer for a component that is a const Vector */
56
+ void SetComp(
57
+ Index icomp,
58
+ const Vector& vec
59
+ );
60
+
61
+ /** Method for setting the pointer for a component that is a non-const Vector */
62
+ void SetCompNonConst(
63
+ Index icomp,
64
+ Vector& vec
65
+ );
66
+
67
+ /** Number of components of this compound vector */
68
+ inline Index NComps() const;
69
+
70
+ /** Check if a particular component is const or not */
71
+ bool IsCompConst(
72
+ Index i
73
+ ) const
74
+ {
75
+ DBG_ASSERT(i > 0 && i < NComps());
76
+ DBG_ASSERT(IsValid(comps_[i]) || IsValid(const_comps_[i]));
77
+ if( IsValid(const_comps_[i]) )
78
+ {
79
+ return true;
80
+ }
81
+ return false;
82
+ }
83
+
84
+ /** Check if a particular component is null or not */
85
+ bool IsCompNull(
86
+ Index i
87
+ ) const
88
+ {
89
+ DBG_ASSERT(i >= 0 && i < NComps());
90
+ if( IsValid(comps_[i]) || IsValid(const_comps_[i]) )
91
+ {
92
+ return false;
93
+ }
94
+ return true;
95
+ }
96
+
97
+ /** Return a particular component (const version) */
98
+ SmartPtr<const Vector> GetComp(
99
+ Index i
100
+ ) const
101
+ {
102
+ return ConstComp(i);
103
+ }
104
+
105
+ /** Return a particular component (non-const version).
106
+ *
107
+ * Note that calling this method with mark the CompoundVector as changed.
108
+ * Therefore, only use this method if you are intending to change
109
+ * the Vector that you receive.
110
+ */
111
+ SmartPtr<Vector> GetCompNonConst(
112
+ Index i
113
+ )
114
+ {
115
+ ObjectChanged();
116
+ return Comp(i);
117
+ }
118
+
119
+ protected:
120
+ /** @name Overloaded methods from Vector base class */
121
+ ///@{
122
+ virtual void CopyImpl(
123
+ const Vector& x
124
+ );
125
+
126
+ virtual void ScalImpl(
127
+ Number alpha
128
+ );
129
+
130
+ virtual void AxpyImpl(
131
+ Number alpha,
132
+ const Vector& x
133
+ );
134
+
135
+ virtual Number DotImpl(
136
+ const Vector& x
137
+ ) const;
138
+
139
+ virtual Number Nrm2Impl() const;
140
+
141
+ virtual Number AsumImpl() const;
142
+
143
+ virtual Number AmaxImpl() const;
144
+
145
+ virtual void SetImpl(
146
+ Number value
147
+ );
148
+
149
+ virtual void ElementWiseDivideImpl(
150
+ const Vector& x
151
+ );
152
+
153
+ virtual void ElementWiseMultiplyImpl(
154
+ const Vector& x
155
+ );
156
+
157
+ virtual void ElementWiseSelectImpl(
158
+ const Vector& x
159
+ );
160
+
161
+ virtual void ElementWiseMaxImpl(
162
+ const Vector& x
163
+ );
164
+
165
+ virtual void ElementWiseMinImpl(
166
+ const Vector& x
167
+ );
168
+
169
+ virtual void ElementWiseReciprocalImpl();
170
+
171
+ virtual void ElementWiseAbsImpl();
172
+
173
+ virtual void ElementWiseSqrtImpl();
174
+
175
+ virtual void ElementWiseSgnImpl();
176
+
177
+ virtual void AddScalarImpl(
178
+ Number scalar
179
+ );
180
+
181
+ virtual Number MaxImpl() const;
182
+
183
+ virtual Number MinImpl() const;
184
+
185
+ virtual Number SumImpl() const;
186
+
187
+ virtual Number SumLogsImpl() const;
188
+ ///@}
189
+
190
+ /** @name Implemented specialized functions */
191
+ ///@{
192
+ void AddTwoVectorsImpl(
193
+ Number a,
194
+ const Vector& v1,
195
+ Number b,
196
+ const Vector& v2,
197
+ Number c
198
+ );
199
+
200
+ Number FracToBoundImpl(
201
+ const Vector& delta,
202
+ Number tau
203
+ ) const;
204
+
205
+ void AddVectorQuotientImpl(
206
+ Number a,
207
+ const Vector& z,
208
+ const Vector& s,
209
+ Number c
210
+ );
211
+ ///@}
212
+
213
+ /** Method for determining if all stored numbers are valid (i.e., no Inf or Nan). */
214
+ virtual bool HasValidNumbersImpl() const;
215
+
216
+ /** @name Output methods */
217
+ ///@{
218
+ virtual void PrintImpl(
219
+ const Journalist& jnlst,
220
+ EJournalLevel level,
221
+ EJournalCategory category,
222
+ const std::string& name,
223
+ Index indent,
224
+ const std::string& prefix
225
+ ) const;
226
+ ///@}
227
+
228
+ private:
229
+ /**@name Default Compiler Generated Methods
230
+ * (Hidden to avoid implicit creation/calling).
231
+ * These methods are not implemented and
232
+ * we do not want the compiler to implement
233
+ * them for us, so we declare them private
234
+ * and do not define them. This ensures that
235
+ * they will not be implicitly created/called.
236
+ */
237
+ ///@{
238
+ /** Default Constructor */
239
+ CompoundVector();
240
+
241
+ /** Copy Constructor */
242
+ CompoundVector(
243
+ const CompoundVector&
244
+ );
245
+
246
+ /** Default Assignment Operator */
247
+ void operator=(
248
+ const CompoundVector&
249
+ );
250
+ ///@}
251
+
252
+ /** Components of the compound vector.
253
+ *
254
+ * The components are stored by SmartPtrs in a std::vector
255
+ */
256
+ std::vector<SmartPtr<Vector> > comps_;
257
+ std::vector<SmartPtr<const Vector> > const_comps_;
258
+
259
+ const CompoundVectorSpace* owner_space_;
260
+
261
+ bool vectors_valid_;
262
+
263
+ bool VectorsValid();
264
+
265
+ inline const Vector* ConstComp(
266
+ Index i
267
+ ) const;
268
+
269
+ inline Vector* Comp(
270
+ Index i
271
+ );
272
+ };
273
+
274
+ /** This vectors space is the vector space for CompoundVector.
275
+ *
276
+ * Before a CompoundVector can be created, all components of this
277
+ * CompoundVectorSpace have to be set. When calling the constructor,
278
+ * the number of component has to be specified. The individual
279
+ * VectorSpaces can be set with the SetComp method.
280
+ */
281
+ class IPOPTLIB_EXPORT CompoundVectorSpace: public VectorSpace
282
+ {
283
+ public:
284
+ /** @name Constructors/Destructors. */
285
+ ///@{
286
+ /** Constructor, has to be given the number of components and the
287
+ * total dimension of all components combined.
288
+ */
289
+ CompoundVectorSpace(
290
+ Index ncomp_spaces,
291
+ Index total_dim
292
+ );
293
+
294
+ /** Destructor */
295
+ ~CompoundVectorSpace()
296
+ { }
297
+ ///@}
298
+
299
+ /** Method for setting the individual component VectorSpaces */
300
+ virtual void SetCompSpace(
301
+ Index icomp, /**< Number of the component to be set */
302
+ const VectorSpace& vec_space /**< VectorSpace for component icomp */
303
+ );
304
+
305
+ /** Method for obtaining an individual component VectorSpace */
306
+ SmartPtr<const VectorSpace> GetCompSpace(
307
+ Index icomp
308
+ ) const;
309
+
310
+ /** Accessor method to obtain the number of components */
311
+ Index NCompSpaces() const
312
+ {
313
+ return ncomp_spaces_;
314
+ }
315
+
316
+ /** Method for creating a new vector of this specific type. */
317
+ virtual CompoundVector* MakeNewCompoundVector(
318
+ bool create_new = true
319
+ ) const
320
+ {
321
+ return new CompoundVector(this, create_new);
322
+ }
323
+
324
+ virtual Vector* MakeNew() const
325
+ {
326
+ return MakeNewCompoundVector();
327
+ }
328
+
329
+ private:
330
+ /**@name Default Compiler Generated Methods
331
+ * (Hidden to avoid implicit creation/calling).
332
+ * These methods are not implemented and
333
+ * we do not want the compiler to implement
334
+ * them for us, so we declare them private
335
+ * and do not define them. This ensures that
336
+ * they will not be implicitly created/called. */
337
+ ///@{
338
+ /** Default constructor */
339
+ CompoundVectorSpace();
340
+
341
+ /** Copy Constructor */
342
+ CompoundVectorSpace(
343
+ const CompoundVectorSpace&
344
+ );
345
+
346
+ /** Default Assignment Operator */
347
+ CompoundVectorSpace& operator=(
348
+ const CompoundVectorSpace&
349
+ );
350
+ ///@}
351
+
352
+ /** Number of components */
353
+ const Index ncomp_spaces_;
354
+
355
+ /** std::vector of vector spaces for the components */
356
+ std::vector<SmartPtr<const VectorSpace> > comp_spaces_;
357
+ };
358
+
359
+ /* inline methods */
360
+ inline Index CompoundVector::NComps() const
361
+ {
362
+ return owner_space_->NCompSpaces();
363
+ }
364
+
365
+ inline const Vector* CompoundVector::ConstComp(
366
+ Index i
367
+ ) const
368
+ {
369
+ DBG_ASSERT(i < NComps());
370
+ DBG_ASSERT(IsValid(comps_[i]) || IsValid(const_comps_[i]));
371
+ if( IsValid(comps_[i]) )
372
+ {
373
+ return GetRawPtr(comps_[i]);
374
+ }
375
+ else if( IsValid(const_comps_[i]) )
376
+ {
377
+ return GetRawPtr(const_comps_[i]);
378
+ }
379
+
380
+ DBG_ASSERT(false && "shouldn't be here");
381
+ return NULL;
382
+ }
383
+
384
+ inline Vector* CompoundVector::Comp(
385
+ Index i
386
+ )
387
+ {
388
+ DBG_ASSERT(i < NComps());
389
+ DBG_ASSERT(IsValid(comps_[i]));
390
+ return GetRawPtr(comps_[i]);
391
+ }
392
+
393
+ } // namespace Ipopt
394
+
395
+ #endif
@@ -0,0 +1,97 @@
1
+ // Copyright (C) 2004, 2009 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 __IPCONVCHECK_HPP__
8
+ #define __IPCONVCHECK_HPP__
9
+
10
+ #include "IpAlgStrategy.hpp"
11
+
12
+ namespace Ipopt
13
+ {
14
+
15
+ /** Base class for checking the algorithm termination criteria. */
16
+ class IPOPTLIB_EXPORT ConvergenceCheck: public AlgorithmStrategyObject
17
+ {
18
+ public:
19
+ /**@name Constructors/Destructors */
20
+ ///@{
21
+ /** Constructor */
22
+ ConvergenceCheck()
23
+ { }
24
+
25
+ /** Destructor */
26
+ virtual ~ConvergenceCheck()
27
+ { }
28
+ ///@}
29
+
30
+ /** Convergence return enum */
31
+ enum ConvergenceStatus
32
+ {
33
+ CONTINUE,
34
+ CONVERGED,
35
+ CONVERGED_TO_ACCEPTABLE_POINT,
36
+ MAXITER_EXCEEDED,
37
+ CPUTIME_EXCEEDED,
38
+ WALLTIME_EXCEEDED, ///< @since 3.14.0
39
+ DIVERGING,
40
+ USER_STOP,
41
+ FAILED
42
+ };
43
+
44
+ /** overloaded from AlgorithmStrategyObject */
45
+ virtual bool InitializeImpl(
46
+ const OptionsList& options,
47
+ const std::string& prefix
48
+ ) = 0;
49
+
50
+ /** Pure virtual method for performing the convergence test.
51
+ *
52
+ * If call_intermediate_callback is true, the user callback method
53
+ * in the NLP should be called in order to see if the user
54
+ * requests an early termination.
55
+ */
56
+ virtual ConvergenceStatus CheckConvergence(
57
+ bool call_intermediate_callback = true
58
+ ) = 0;
59
+
60
+ /** Method for testing if the current iterate is considered to
61
+ * satisfy the "acceptable level" of accuracy.
62
+ *
63
+ * The idea is that if the desired convergence tolerance cannot
64
+ * be achieved, the algorithm might stop after a number of
65
+ * acceptable points have been encountered.
66
+ */
67
+ virtual bool CurrentIsAcceptable() = 0;
68
+
69
+ private:
70
+ /**@name Default Compiler Generated Methods
71
+ * (Hidden to avoid implicit creation/calling).
72
+ *
73
+ * These methods are not implemented and
74
+ * we do not want the compiler to implement
75
+ * them for us, so we declare them private
76
+ * and do not define them. This ensures that
77
+ * they will not be implicitly created/called.
78
+ */
79
+ ///@{
80
+ /** Default Constructor */
81
+ // ConvergenceCheck();
82
+ /** Copy Constructor */
83
+ ConvergenceCheck(
84
+ const ConvergenceCheck&
85
+ );
86
+
87
+ /** Default Assignment Operator */
88
+ void operator=(
89
+ const ConvergenceCheck&
90
+ );
91
+ ///@}
92
+
93
+ };
94
+
95
+ } // namespace Ipopt
96
+
97
+ #endif
@@ -0,0 +1,167 @@
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-08-13
6
+
7
+ #ifndef __IPDEBUG_HPP__
8
+ #define __IPDEBUG_HPP__
9
+
10
+ #include "IpoptConfig.h"
11
+ #include "IpTypes.hpp"
12
+
13
+ #ifndef IPOPT_CHECKLEVEL
14
+ #define IPOPT_CHECKLEVEL 0
15
+ #endif
16
+
17
+ #if IPOPT_CHECKLEVEL > 0
18
+ # ifdef NDEBUG
19
+ # undef NDEBUG
20
+ # endif
21
+ # include <cassert>
22
+ # define DBG_ASSERT(test) assert(test)
23
+ # define DBG_ASSERT_EXCEPTION(__condition, __except_type, __msg) \
24
+ ASSERT_EXCEPTION( (__condition), __except_type, __msg);
25
+ # define DBG_DO(__cmd) __cmd
26
+ #else
27
+ # define DBG_ASSERT(test)
28
+ # define DBG_ASSERT_EXCEPTION(__condition, __except_type, __msg)
29
+ # define DBG_DO(__cmd)
30
+ #endif
31
+
32
+ #ifndef IPOPT_VERBOSITY
33
+ #define IPOPT_VERBOSITY 0
34
+ #endif
35
+
36
+ #if IPOPT_VERBOSITY < 1
37
+ # define DBG_START_FUN(__func_name, __verbose_level)
38
+ # define DBG_START_METH(__func_name, __verbose_level)
39
+ # define DBG_PRINT(__printf_args)
40
+ # define DBG_PRINT_VECTOR(__verbose_level, __vec_name, __vec)
41
+ # define DBG_PRINT_MATRIX(__verbose_level, __mat_name, __mat)
42
+ # define DBG_EXEC(__verbosity, __cmd)
43
+ # define DBG_VERBOSITY() 0
44
+ #else
45
+ #include <string>
46
+
47
+ namespace Ipopt
48
+ {
49
+ // forward definition
50
+ class Journalist;
51
+
52
+ /** Class that lives throughout the execution of a method or
53
+ * function for which debug output is to be generated.
54
+ *
55
+ * The output
56
+ * is sent to the unique debug journalist that is set with
57
+ * SetJournalist at the beginning of program execution.
58
+ */
59
+ class IPOPTLIB_EXPORT DebugJournalistWrapper
60
+ {
61
+ public:
62
+ /** @name Constructors/Destructors. */
63
+ ///@{
64
+ DebugJournalistWrapper(
65
+ const std::string& func_name,
66
+ Index verbose_level
67
+ );
68
+
69
+ DebugJournalistWrapper(
70
+ const std::string& func_name,
71
+ Index verbose_level,
72
+ const void* const method_owner
73
+ );
74
+ ~DebugJournalistWrapper();
75
+ ///@}
76
+
77
+ /** @name accessor methods */
78
+ ///@{
79
+ Index Verbosity()
80
+ {
81
+ return verbose_level_;
82
+ }
83
+ const Journalist* Jnlst()
84
+ {
85
+ return jrnl_;
86
+ }
87
+ Index IndentationLevel()
88
+ {
89
+ return indentation_level_;
90
+ }
91
+ ///@}
92
+
93
+ /** Printing */
94
+ #ifdef __GNUC__
95
+ __attribute__((format(printf, 3, 4)))
96
+ #endif
97
+ void DebugPrintf(
98
+ Index verbosity,
99
+ const char* pformat,
100
+ ...
101
+ );
102
+
103
+ private:
104
+ friend class IpoptApplication;
105
+ /* Method for initialization of the static GLOBAL journalist,
106
+ * through with all debug printout is to be written.
107
+ *
108
+ * This needs to be set before any debug printout can be done.
109
+ * It is expected that this is only called by the IpoptApplication constructor.
110
+ */
111
+ static void SetJournalist(
112
+ Journalist* jrnl
113
+ );
114
+
115
+ /**@name Default Compiler Generated Methods
116
+ * (Hidden to avoid implicit creation/calling).
117
+ *
118
+ * These methods are not implemented and
119
+ * we do not want the compiler to implement
120
+ * them for us, so we declare them private
121
+ * and do not define them. This ensures that
122
+ * they will not be implicitly created/called.
123
+ */
124
+ ///@{
125
+ /** default constructor */
126
+ DebugJournalistWrapper();
127
+
128
+ /** copy contructor */
129
+ DebugJournalistWrapper(
130
+ const DebugJournalistWrapper&
131
+ );
132
+
133
+ /** Default Assignment Operator */
134
+ DebugJournalistWrapper& operator=(
135
+ const DebugJournalistWrapper&
136
+ );
137
+ ///@}
138
+
139
+ static Index indentation_level_;
140
+ std::string func_name_;
141
+ Index verbose_level_;
142
+ const void* method_owner_;
143
+
144
+ static Journalist* jrnl_;
145
+ };
146
+ }
147
+
148
+ # define DBG_START_FUN(__func_name, __verbose_level) \
149
+ DebugJournalistWrapper dbg_jrnl((__func_name), (__verbose_level)); \
150
+
151
+ # define DBG_START_METH(__func_name, __verbose_level) \
152
+ DebugJournalistWrapper dbg_jrnl((__func_name), (__verbose_level), this);
153
+
154
+ # define DBG_PRINT(__args) \
155
+ dbg_jrnl.DebugPrintf __args;
156
+
157
+ # define DBG_EXEC(__verbose_level, __cmd) \
158
+ if (dbg_jrnl.Verbosity() >= (__verbose_level)) { \
159
+ (__cmd); \
160
+ }
161
+
162
+ # define DBG_VERBOSITY() \
163
+ dbg_jrnl.Verbosity()
164
+
165
+ #endif
166
+
167
+ #endif