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,274 @@
1
+ // Copyright (C) 2008 International Business Machines and others.
2
+ // All Rights Reserved.
3
+ // This code is published under the Eclipse Public License.
4
+ //
5
+ // Authors: Andreas Waechter IBM 2008-08-10
6
+
7
+ #ifndef __IPTNLPREDUCER_HPP__
8
+ #define __IPTNLPREDUCER_HPP__
9
+
10
+ #include "IpTNLP.hpp"
11
+
12
+ namespace Ipopt
13
+ {
14
+ /** This is a wrapper around a given TNLP class that takes out a
15
+ * list of constraints that are given to the constructor.
16
+ *
17
+ * It is provided for convenience, if one wants to experiment with
18
+ * problems that consist of only a subset of the constraints. But
19
+ * keep in mind that this is not efficient, since behind the scenes
20
+ * we are still evaluation all functions and derivatives, and are
21
+ * making copies of the original data.
22
+ */
23
+ class IPOPTLIB_EXPORT TNLPReducer: public TNLP
24
+ {
25
+ public:
26
+ /**@name Constructors/Destructors */
27
+ ///@{
28
+ /** Constructor is given the indices of the constraints that
29
+ * should be taken out of the problem statement, as well as the
30
+ * original TNLP.
31
+ */
32
+ TNLPReducer(
33
+ TNLP& tnlp,
34
+ Index n_g_skip,
35
+ const Index* index_g_skip,
36
+ Index n_xL_skip,
37
+ const Index* index_xL_skip,
38
+ Index n_xU_skip,
39
+ const Index* index_xU_skip,
40
+ Index n_x_fix,
41
+ const Index* index_f_fix
42
+ );
43
+
44
+ /** Default destructor */
45
+ virtual ~TNLPReducer();
46
+ ///@}
47
+
48
+ /** @name Overloaded methods from TNLP */
49
+ ///@{
50
+ virtual bool get_nlp_info(
51
+ Index& n,
52
+ Index& m,
53
+ Index& nnz_jac_g,
54
+ Index& nnz_h_lag,
55
+ IndexStyleEnum& index_style
56
+ );
57
+
58
+ virtual bool get_bounds_info(
59
+ Index n,
60
+ Number* x_l,
61
+ Number* x_u,
62
+ Index m,
63
+ Number* g_l,
64
+ Number* g_u
65
+ );
66
+
67
+ virtual bool get_scaling_parameters(
68
+ Number& obj_scaling,
69
+ bool& use_x_scaling,
70
+ Index n,
71
+ Number* x_scaling,
72
+ bool& use_g_scaling,
73
+ Index m,
74
+ Number* g_scaling
75
+ );
76
+
77
+ virtual bool get_variables_linearity(
78
+ Index n,
79
+ LinearityType* var_types
80
+ );
81
+
82
+ virtual bool get_constraints_linearity(
83
+ Index m,
84
+ LinearityType* const_types
85
+ );
86
+
87
+ virtual bool get_starting_point(
88
+ Index n,
89
+ bool init_x,
90
+ Number* x,
91
+ bool init_z,
92
+ Number* z_L,
93
+ Number* z_U,
94
+ Index m,
95
+ bool init_lambda,
96
+ Number* lambda
97
+ );
98
+
99
+ virtual bool get_warm_start_iterate(
100
+ IteratesVector& warm_start_iterate
101
+ );
102
+
103
+ virtual bool eval_f(
104
+ Index n,
105
+ const Number* x,
106
+ bool new_x,
107
+ Number& obj_value
108
+ );
109
+
110
+ virtual bool eval_grad_f(
111
+ Index n,
112
+ const Number* x,
113
+ bool new_x,
114
+ Number* grad_f
115
+ );
116
+
117
+ virtual bool eval_g(
118
+ Index n,
119
+ const Number* x,
120
+ bool new_x,
121
+ Index m,
122
+ Number* g
123
+ );
124
+
125
+ virtual bool eval_jac_g(
126
+ Index n,
127
+ const Number* x,
128
+ bool new_x,
129
+ Index m,
130
+ Index nele_jac,
131
+ Index* iRow,
132
+ Index* jCol,
133
+ Number* values
134
+ );
135
+
136
+ virtual bool eval_h(
137
+ Index n,
138
+ const Number* x,
139
+ bool new_x,
140
+ Number obj_factor,
141
+ Index m,
142
+ const Number* lambda,
143
+ bool new_lambda,
144
+ Index nele_hess,
145
+ Index* iRow,
146
+ Index* jCol,
147
+ Number* values
148
+ );
149
+
150
+ virtual void finalize_solution(
151
+ SolverReturn status,
152
+ Index n,
153
+ const Number* x,
154
+ const Number* z_L,
155
+ const Number* z_U,
156
+ Index m,
157
+ const Number* g,
158
+ const Number* lambda,
159
+ Number obj_value,
160
+ const IpoptData* ip_data,
161
+ IpoptCalculatedQuantities* ip_cq
162
+ );
163
+
164
+ virtual bool intermediate_callback(
165
+ AlgorithmMode mode,
166
+ Index iter,
167
+ Number obj_value,
168
+ Number inf_pr,
169
+ Number inf_du,
170
+ Number mu,
171
+ Number d_norm,
172
+ Number regularization_size,
173
+ Number alpha_du,
174
+ Number alpha_pr,
175
+ Index ls_trials,
176
+ const IpoptData* ip_data,
177
+ IpoptCalculatedQuantities* ip_cq
178
+ );
179
+
180
+ virtual Index get_number_of_nonlinear_variables();
181
+
182
+ virtual bool get_list_of_nonlinear_variables(
183
+ Index num_nonlin_vars,
184
+ Index* pos_nonlin_vars
185
+ );
186
+ ///@}
187
+
188
+ private:
189
+ /**@name Default Compiler Generated Methods
190
+ * (Hidden to avoid implicit creation/calling).
191
+ *
192
+ * These methods are not implemented and
193
+ * we do not want the compiler to implement
194
+ * them for us, so we declare them private
195
+ * and do not define them. This ensures that
196
+ * they will not be implicitly created/called.
197
+ */
198
+ ///@{
199
+ /** Default Constructor */
200
+ TNLPReducer();
201
+
202
+ /** Copy Constructor */
203
+ TNLPReducer(
204
+ const TNLPReducer&
205
+ );
206
+
207
+ /** Default Assignment Operator */
208
+ void operator=(
209
+ const TNLPReducer&
210
+ );
211
+ ///@}
212
+
213
+ /** @name original TNLP */
214
+ ///@{
215
+ SmartPtr<TNLP> tnlp_;
216
+ Index m_orig_;
217
+ Index nnz_jac_g_orig_;
218
+ ///@}
219
+
220
+ /** Number of constraints to be skipped */
221
+ Index n_g_skip_;
222
+
223
+ /** Array of indices of the constraints that are to be skipped.
224
+ *
225
+ * This is provided at the beginning in the constructor.
226
+ */
227
+ Index* index_g_skip_;
228
+
229
+ /** Index style for original problem.
230
+ *
231
+ * Internally, we use C-Style now.
232
+ */
233
+ IndexStyleEnum index_style_orig_;
234
+
235
+ /** Map from original constraints to new constraints.
236
+ *
237
+ * A -1 means that a constraint is skipped.
238
+ */
239
+ Index* g_keep_map_;
240
+
241
+ /** Number of constraints in reduced NLP */
242
+ Index m_reduced_;
243
+
244
+ /** Number of Jacobian nonzeros in the reduced NLP */
245
+ Index nnz_jac_g_reduced_;
246
+
247
+ /** Number of Jacobian nonzeros that are skipped */
248
+ Index nnz_jac_g_skipped_;
249
+
250
+ /** Array of Jacobian elements that are to be skipped in increasing order. */
251
+ Index* jac_g_skipped_;
252
+
253
+ /** Number of lower variable bounds to be skipped. */
254
+ Index n_xL_skip_;
255
+
256
+ /** Array of indices of the lower variable bounds to be skipped. */
257
+ Index* index_xL_skip_;
258
+
259
+ /** Number of upper variable bounds to be skipped. */
260
+ Index n_xU_skip_;
261
+
262
+ /** Array of indices of the upper variable bounds to be skipped. */
263
+ Index* index_xU_skip_;
264
+
265
+ /** Number of variables that are to be fixed to initial value. */
266
+ Index n_x_fix_;
267
+
268
+ /** Array of indices of the variables that are to be fixed. */
269
+ Index* index_x_fix_;
270
+ };
271
+
272
+ } // namespace Ipopt
273
+
274
+ #endif
@@ -0,0 +1,128 @@
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 __IPTAGGEDOBJECT_HPP__
8
+ #define __IPTAGGEDOBJECT_HPP__
9
+
10
+ #include "IpUtils.hpp"
11
+ #include "IpDebug.hpp"
12
+ #include "IpReferenced.hpp"
13
+ #include "IpObserver.hpp"
14
+
15
+ namespace Ipopt
16
+ {
17
+
18
+ /** TaggedObject class.
19
+ * Often, certain calculations or operations are expensive,
20
+ * and it can be very inefficient to perform these calculations
21
+ * again if the input to the calculation has not changed
22
+ * since the result was last stored.
23
+ * This base class provides an efficient mechanism to update
24
+ * a tag, indicating that the object has changed.
25
+ * Users of a TaggedObject class, need their own Tag data
26
+ * member to keep track of the state of the TaggedObject, the
27
+ * last time they performed a calculation. A basic use case for
28
+ * users of a class inheriting from TaggedObject follows like
29
+ * this:
30
+ *
31
+ * 1. Initialize your own Tag to zero in constructor.
32
+ *
33
+ * 2. Before an expensive calculation,
34
+ * check if the TaggedObject has changed, passing in
35
+ * your own Tag, indicating the last time you used
36
+ * the object for the calculation. If it has changed,
37
+ * perform the calculation again, and store the result.
38
+ * If it has not changed, simply return the stored result.
39
+ *
40
+ * Here is a simple example:
41
+ \verbatim
42
+ if (vector.HasChanged(my_vector_tag_)) {
43
+ my_vector_tag_ = vector.GetTag();
44
+ result = PerformExpensiveCalculation(vector);
45
+ return result;
46
+ }
47
+ else {
48
+ return result;
49
+ }
50
+ \endverbatim
51
+ *
52
+ * Objects derived from TaggedObject must indicate that they have changed to
53
+ * the base class using the protected member function ObjectChanged(). For
54
+ * example, a Vector class, inside its own set method, MUST call
55
+ * ObjectChanged() to update the internally stored tag for comparison.
56
+ */
57
+ class IPOPTLIB_EXPORT TaggedObject : public ReferencedObject, public Subject
58
+ {
59
+ public:
60
+ /** Type for the Tag values */
61
+ typedef unsigned int Tag;
62
+
63
+ /** Constructor. */
64
+ TaggedObject()
65
+ :
66
+ Subject()
67
+ {
68
+ ObjectChanged();
69
+ }
70
+
71
+ /** Destructor. */
72
+ virtual ~TaggedObject()
73
+ {}
74
+
75
+ /** Users of TaggedObjects call this to
76
+ * update their own internal tags every time
77
+ * they perform the expensive operation.
78
+ */
79
+ Tag GetTag() const
80
+ {
81
+ return tag_;
82
+ }
83
+
84
+ /** Users of TaggedObjects call this to
85
+ * check if the object HasChanged since
86
+ * they last updated their own internal
87
+ * tag.
88
+ */
89
+ bool HasChanged(const Tag comparison_tag) const
90
+ {
91
+ return (comparison_tag == tag_) ? false : true;
92
+ }
93
+ protected:
94
+ /** Objects derived from TaggedObject MUST call this
95
+ * method every time their internal state changes to
96
+ * update the internal tag for comparison
97
+ */
98
+ void ObjectChanged();
99
+ private:
100
+ /**@name Default Compiler Generated Methods (Hidden to avoid
101
+ * implicit creation/calling). These methods are not implemented
102
+ * and we do not want the compiler to implement them for us, so we
103
+ * declare them private and do not define them. This ensures that
104
+ * they will not be implicitly created/called. */
105
+ ///@{
106
+ /** Copy Constructor */
107
+ TaggedObject(const TaggedObject&);
108
+
109
+ /** Default Assignment Operator */
110
+ void operator=(const TaggedObject&);
111
+ ///@}
112
+
113
+ /** The tag indicating the current state of the object.
114
+ * We use this to compare against the comparison_tag
115
+ * in the HasChanged method. This member is updated
116
+ * from the unique_tag_ every time the object changes.
117
+ */
118
+ Tag tag_;
119
+
120
+ /** The index indicating the cache priority for this
121
+ * TaggedObject. If a result that depended on this
122
+ * TaggedObject is cached, it will be cached with this
123
+ * priority
124
+ */
125
+ Index cache_priority_;
126
+ };
127
+ } // namespace Ipopt
128
+ #endif
@@ -0,0 +1,218 @@
1
+ // Copyright (C) 2006, 2009 International Business Machines and others.
2
+ // All Rights Reserved.
3
+ // This code is published under the Eclipse Public License.
4
+ //
5
+ // Authors: Andreas Waechter IBM 2005-09-19
6
+
7
+ #ifndef __IPTIMEDTASK_HPP__
8
+ #define __IPTIMEDTASK_HPP__
9
+
10
+ #include "IpUtils.hpp"
11
+
12
+ namespace Ipopt
13
+ {
14
+ /** This class is used to collect timing information for a particular task. */
15
+ class IPOPTLIB_EXPORT TimedTask
16
+ {
17
+ public:
18
+ /**@name Constructors/Destructors */
19
+ ///@{
20
+ /** Default constructor. */
21
+ TimedTask()
22
+ :
23
+ total_cputime_(0.),
24
+ total_systime_(0.),
25
+ total_walltime_(0.),
26
+ enabled_(true),
27
+ start_called_(false),
28
+ end_called_(true)
29
+ {}
30
+
31
+ /** Default destructor */
32
+ ~TimedTask()
33
+ {}
34
+ ///@}
35
+
36
+ /// enable the timer
37
+ /// @since 3.14.0
38
+ void Enable()
39
+ {
40
+ enabled_ = true;
41
+ }
42
+
43
+ /// disable the timer
44
+ ///
45
+ /// following calls to Start(), End(), and EndIfStarted() have no effect
46
+ /// @since 3.14.0
47
+ void Disable()
48
+ {
49
+ enabled_ = false;
50
+ }
51
+
52
+ /** Method for resetting time to zero. */
53
+ void Reset()
54
+ {
55
+ total_cputime_ = 0.;
56
+ total_systime_ = 0.;
57
+ total_walltime_ = 0.;
58
+ start_called_ = false;
59
+ end_called_ = true;
60
+ }
61
+
62
+ /** Method that is called before execution of the task. */
63
+ void Start()
64
+ {
65
+ if( !enabled_ )
66
+ {
67
+ return;
68
+ }
69
+
70
+ DBG_ASSERT(end_called_);
71
+ DBG_ASSERT(!start_called_);
72
+ end_called_ = false;
73
+ start_called_ = true;
74
+ start_cputime_ = CpuTime();
75
+ start_systime_ = SysTime();
76
+ start_walltime_ = WallclockTime();
77
+ }
78
+
79
+ /** Method that is called after execution of the task. */
80
+ void End()
81
+ {
82
+ if( !enabled_ )
83
+ {
84
+ return;
85
+ }
86
+
87
+ DBG_ASSERT(!end_called_);
88
+ DBG_ASSERT(start_called_);
89
+ end_called_ = true;
90
+ start_called_ = false;
91
+ total_cputime_ += CpuTime() - start_cputime_;
92
+ total_systime_ += SysTime() - start_systime_;
93
+ total_walltime_ += WallclockTime() - start_walltime_;
94
+ }
95
+
96
+ /** Method that is called after execution of the task for which
97
+ * timing might have been started. This only updates the timing
98
+ * if the timing has indeed been conducted. This is useful to
99
+ * stop timing after catching exceptions. */
100
+ void EndIfStarted()
101
+ {
102
+ if( !enabled_ )
103
+ {
104
+ return;
105
+ }
106
+ if( start_called_ )
107
+ {
108
+ end_called_ = true;
109
+ start_called_ = false;
110
+ total_cputime_ += CpuTime() - start_cputime_;
111
+ total_systime_ += SysTime() - start_systime_;
112
+ total_walltime_ += WallclockTime() - start_walltime_;
113
+ }
114
+ DBG_ASSERT(end_called_);
115
+ }
116
+
117
+ /** Method returning total CPU time spend for task so far. */
118
+ Number TotalCpuTime() const
119
+ {
120
+ DBG_ASSERT(end_called_);
121
+ return total_cputime_;
122
+ }
123
+
124
+ /** Method returning total system time spend for task so far. */
125
+ Number TotalSysTime() const
126
+ {
127
+ DBG_ASSERT(end_called_);
128
+ return total_systime_;
129
+ }
130
+
131
+ /** Method returning total wall clock time spend for task so far. */
132
+ Number TotalWallclockTime() const
133
+ {
134
+ DBG_ASSERT(end_called_);
135
+ return total_walltime_;
136
+ }
137
+
138
+ /** Method returning start CPU time for started task.
139
+ * @since 3.14.0
140
+ */
141
+ Number StartCpuTime() const
142
+ {
143
+ DBG_ASSERT(start_called_);
144
+ DBG_ASSERT(!end_called_);
145
+ return start_cputime_;
146
+ }
147
+
148
+ /** Method returning start system time for started task.
149
+ * @since 3.14.0
150
+ */
151
+ Number StartSysTime() const
152
+ {
153
+ DBG_ASSERT(start_called_);
154
+ DBG_ASSERT(!end_called_);
155
+ return start_systime_;
156
+ }
157
+
158
+ /** Method returning start wall clock time for started task.
159
+ * @since 3.14.0
160
+ */
161
+ Number StartWallclockTime() const
162
+ {
163
+ DBG_ASSERT(start_called_);
164
+ DBG_ASSERT(!end_called_);
165
+ return start_walltime_;
166
+ }
167
+
168
+ /// @since 3.14.0
169
+ bool IsEnabled() const
170
+ {
171
+ return enabled_;
172
+ }
173
+
174
+ /// @since 3.14.0
175
+ bool IsStarted() const
176
+ {
177
+ return start_called_;
178
+ }
179
+
180
+ private:
181
+ /**@name Default Compiler Generated Methods (Hidden to avoid
182
+ * implicit creation/calling). These methods are not
183
+ * implemented and we do not want the compiler to implement them
184
+ * for us, so we declare them private and do not define
185
+ * them. This ensures that they will not be implicitly
186
+ * created/called. */
187
+ ///@{
188
+ /** Copy Constructor */
189
+ TimedTask(const TimedTask&);
190
+
191
+ /** Default Assignment Operator */
192
+ void operator=(const TimedTask&);
193
+ ///@}
194
+
195
+ /** CPU time at beginning of task. */
196
+ Number start_cputime_;
197
+ /** Total CPU time for task measured so far. */
198
+ Number total_cputime_;
199
+ /** System time at beginning of task. */
200
+ Number start_systime_;
201
+ /** Total system time for task measured so far. */
202
+ Number total_systime_;
203
+ /** Wall clock time at beginning of task. */
204
+ Number start_walltime_;
205
+ /** Total wall clock time for task measured so far. */
206
+ Number total_walltime_;
207
+
208
+ /** @name status fields */
209
+ ///@{
210
+ bool enabled_;
211
+ bool start_called_;
212
+ bool end_called_;
213
+ ///@}
214
+
215
+ };
216
+ } // namespace Ipopt
217
+
218
+ #endif