casadi 3.6.4__cp39-none-manylinux2014_i686.whl → 3.6.6__cp39-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,840 @@
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-06-06
6
+
7
+ #ifndef __IPITERATESVECTOR_HPP__
8
+ #define __IPITERATESVECTOR_HPP__
9
+
10
+ #include "IpCompoundVector.hpp"
11
+
12
+ namespace Ipopt
13
+ {
14
+ /* forward declarations */
15
+ class IteratesVectorSpace;
16
+
17
+ /** Specialized CompoundVector class specifically for the algorithm
18
+ * iterates. This class inherits from CompoundVector and is a
19
+ * specialized class for handling the iterates of the Ipopt
20
+ * Algorithm, that is, x, s, y_c, y_d, z_L, z_U, v_L, and v_U. It
21
+ * inherits from CompoundVector so it can behave like a CV in most
22
+ * calculations, but it has fixed dimensions and cannot be
23
+ * customized
24
+ */
25
+ class IPOPTLIB_EXPORT IteratesVector: public CompoundVector
26
+ {
27
+ public:
28
+ /** Constructors / Destructors */
29
+ ///@{
30
+ IteratesVector(
31
+ const IteratesVectorSpace* owner_space,
32
+ bool create_new
33
+ );
34
+
35
+ virtual ~IteratesVector();
36
+ ///@}
37
+
38
+ /** Make New methods */
39
+ ///@{
40
+ /** Use this method to create a new iterates vector.
41
+ *
42
+ * The MakeNew method on the Vector class also works, but it does not give
43
+ * the create_new option.
44
+ */
45
+ SmartPtr<IteratesVector> MakeNewIteratesVector(
46
+ bool create_new = true
47
+ ) const;
48
+
49
+ /** Use this method to create a new iterates vector with a copy of
50
+ * all the data.
51
+ */
52
+ SmartPtr<IteratesVector> MakeNewIteratesVectorCopy() const
53
+ {
54
+ SmartPtr<IteratesVector> ret = MakeNewIteratesVector(true);
55
+ ret->Copy(*this);
56
+ return ret;
57
+ }
58
+
59
+ /** Use this method to create a new iterates vector
60
+ * container.
61
+ *
62
+ * This creates a new NonConst container, but the
63
+ * elements inside the iterates vector may be const. Therefore,
64
+ * the container can be modified to point to new entries, but the
65
+ * existing entries may or may not be modifiable.
66
+ */
67
+ SmartPtr<IteratesVector> MakeNewContainer() const;
68
+ ///@}
69
+
70
+ /** Iterates Set/Get Methods */
71
+ ///@{
72
+ /** Get the x iterate (const) */
73
+ SmartPtr<const Vector> x() const
74
+ {
75
+ return GetIterateFromComp(0);
76
+ }
77
+
78
+ /** Get the x iterate (non-const) - this can only be called if the
79
+ * vector was created internally, or the Set_x_NonConst method was
80
+ * used. */
81
+ SmartPtr<Vector> x_NonConst()
82
+ {
83
+ return GetNonConstIterateFromComp(0);
84
+ }
85
+
86
+ /** Create a new vector in the x entry */
87
+ inline SmartPtr<Vector> create_new_x();
88
+
89
+ /** Create a new vector in the x entry and copy the current values
90
+ * into it.
91
+ */
92
+ SmartPtr<Vector> create_new_x_copy()
93
+ {
94
+ SmartPtr<const Vector> curr_x_ = GetComp(0);
95
+ Set_x_NonConst(*curr_x_->MakeNew());
96
+ x_NonConst()->Copy(*curr_x_);
97
+ return x_NonConst();
98
+ }
99
+
100
+ /** Set the x iterate (const).
101
+ *
102
+ * Sets the pointer, does NOT copy data.
103
+ */
104
+ void Set_x(
105
+ const Vector& vec
106
+ )
107
+ {
108
+ SetComp(0, vec);
109
+ }
110
+
111
+ /** Set the x iterate (non-const).
112
+ *
113
+ * Sets the pointer, does NOT copy data.
114
+ */
115
+ void Set_x_NonConst(
116
+ Vector& vec
117
+ )
118
+ {
119
+ SetCompNonConst(0, vec);
120
+ }
121
+
122
+ /** Get the s iterate (const) */
123
+ SmartPtr<const Vector> s() const
124
+ {
125
+ return GetIterateFromComp(1);
126
+ }
127
+
128
+ /** Get the s iterate (non-const) - this can only be called if the
129
+ * vector was created internally, or the Set_s_NonConst method was
130
+ * used.
131
+ */
132
+ SmartPtr<Vector> s_NonConst()
133
+ {
134
+ return GetNonConstIterateFromComp(1);
135
+ }
136
+
137
+ /** Create a new vector in the s entry */
138
+ inline SmartPtr<Vector> create_new_s();
139
+
140
+ /** Create a new vector in the s entry and copy the current values
141
+ * into it. */
142
+ SmartPtr<Vector> create_new_s_copy()
143
+ {
144
+ SmartPtr<const Vector> curr_s = GetComp(1);
145
+ Set_s_NonConst(*curr_s->MakeNew());
146
+ s_NonConst()->Copy(*curr_s);
147
+ return s_NonConst();
148
+ }
149
+
150
+ /** Set the s iterate (const).
151
+ *
152
+ * Sets the pointer, does NOT copy data.
153
+ */
154
+ void Set_s(
155
+ const Vector& vec
156
+ )
157
+ {
158
+ SetComp(1, vec);
159
+ }
160
+
161
+ /** Set the s iterate (non-const).
162
+ *
163
+ * Sets the pointer, does NOT copy data.
164
+ */
165
+ void Set_s_NonConst(
166
+ Vector& vec
167
+ )
168
+ {
169
+ SetCompNonConst(1, vec);
170
+ }
171
+
172
+ /** Get the y_c iterate (const) */
173
+ SmartPtr<const Vector> y_c() const
174
+ {
175
+ return GetIterateFromComp(2);
176
+ }
177
+
178
+ /** Get the y_c iterate (non-const) - this can only be called if
179
+ * the vector was created internally, or the Set_y_c_NonConst
180
+ * method was used.
181
+ */
182
+ SmartPtr<Vector> y_c_NonConst()
183
+ {
184
+ return GetNonConstIterateFromComp(2);
185
+ }
186
+
187
+ /** Create a new vector in the y_c entry */
188
+ inline SmartPtr<Vector> create_new_y_c();
189
+
190
+ /** Create a new vector in the y_c entry and copy the current
191
+ * values into it.
192
+ */
193
+ SmartPtr<Vector> create_new_y_c_copy()
194
+ {
195
+ SmartPtr<const Vector> curr_y_c_ = GetComp(2);
196
+ Set_y_c_NonConst(*curr_y_c_->MakeNew());
197
+ y_c_NonConst()->Copy(*curr_y_c_);
198
+ return y_c_NonConst();
199
+ }
200
+
201
+ /** Set the y_c iterate (const).
202
+ *
203
+ * Sets the pointer, does NOT copy data.
204
+ */
205
+ void Set_y_c(
206
+ const Vector& vec
207
+ )
208
+ {
209
+ SetComp(2, vec);
210
+ }
211
+
212
+ /** Set the y_c iterate (non-const).
213
+ *
214
+ * Sets the pointer, does NOT copy data.
215
+ */
216
+ void Set_y_c_NonConst(
217
+ Vector& vec
218
+ )
219
+ {
220
+ SetCompNonConst(2, vec);
221
+ }
222
+
223
+ /** Get the y_d iterate (const) */
224
+ SmartPtr<const Vector> y_d() const
225
+ {
226
+ return GetIterateFromComp(3);
227
+ }
228
+
229
+ /** Get the y_d iterate (non-const) - this can only be called if
230
+ * the vector was created internally, or the Set_y_d_NonConst
231
+ * method was used. */
232
+ SmartPtr<Vector> y_d_NonConst()
233
+ {
234
+ return GetNonConstIterateFromComp(3);
235
+ }
236
+
237
+ /** Create a new vector in the y_d entry */
238
+ inline SmartPtr<Vector> create_new_y_d();
239
+
240
+ /** Create a new vector in the y_d entry and copy the current
241
+ * values into it.
242
+ */
243
+ SmartPtr<Vector> create_new_y_d_copy()
244
+ {
245
+ SmartPtr<const Vector> curr_y_d_ = GetComp(3);
246
+ Set_y_d_NonConst(*curr_y_d_->MakeNew());
247
+ y_d_NonConst()->Copy(*curr_y_d_);
248
+ return y_d_NonConst();
249
+ }
250
+
251
+ /** Set the y_d iterate (const).
252
+ *
253
+ * Sets the pointer, does NOT copy data.
254
+ */
255
+ void Set_y_d(
256
+ const Vector& vec
257
+ )
258
+ {
259
+ SetComp(3, vec);
260
+ }
261
+
262
+ /** Set the y_d iterate (non-const).
263
+ *
264
+ * Sets the pointer, does NOT copy data.
265
+ */
266
+ void Set_y_d_NonConst(
267
+ Vector& vec
268
+ )
269
+ {
270
+ SetCompNonConst(3, vec);
271
+ }
272
+
273
+ /** Get the z_L iterate (const) */
274
+ SmartPtr<const Vector> z_L() const
275
+ {
276
+ return GetIterateFromComp(4);
277
+ }
278
+
279
+ /** Get the z_L iterate (non-const) - this can only be called if
280
+ * the vector was created internally, or the Set_z_L_NonConst
281
+ * method was used.
282
+ */
283
+ SmartPtr<Vector> z_L_NonConst()
284
+ {
285
+ return GetNonConstIterateFromComp(4);
286
+ }
287
+
288
+ /** Create a new vector in the z_L entry */
289
+ inline SmartPtr<Vector> create_new_z_L();
290
+
291
+ /** Create a new vector in the z_L entry and copy the current
292
+ * values into it. */
293
+ SmartPtr<Vector> create_new_z_L_copy()
294
+ {
295
+ SmartPtr<const Vector> curr_z_L_ = GetComp(4);
296
+ Set_z_L_NonConst(*curr_z_L_->MakeNew());
297
+ z_L_NonConst()->Copy(*curr_z_L_);
298
+ return z_L_NonConst();
299
+ }
300
+
301
+ /** Set the z_L iterate (const).
302
+ *
303
+ * Sets the pointer, does NOT copy data.
304
+ */
305
+ void Set_z_L(
306
+ const Vector& vec
307
+ )
308
+ {
309
+ SetComp(4, vec);
310
+ }
311
+
312
+ /** Set the z_L iterate (non-const).
313
+ *
314
+ * Sets the pointer, does NOT copy data.
315
+ */
316
+ void Set_z_L_NonConst(
317
+ Vector& vec
318
+ )
319
+ {
320
+ SetCompNonConst(4, vec);
321
+ }
322
+
323
+ /** Get the z_U iterate (const) */
324
+ SmartPtr<const Vector> z_U() const
325
+ {
326
+ return GetIterateFromComp(5);
327
+ }
328
+
329
+ /** Get the z_U iterate (non-const) - this can only be called if
330
+ * the vector was created internally, or the Set_z_U_NonConst
331
+ * method was used. */
332
+ SmartPtr<Vector> z_U_NonConst()
333
+ {
334
+ return GetNonConstIterateFromComp(5);
335
+ }
336
+
337
+ /** Create a new vector in the z_U entry */
338
+ inline SmartPtr<Vector> create_new_z_U();
339
+
340
+ /** Create a new vector in the z_U entry and copy the current
341
+ * values into it.
342
+ */
343
+ SmartPtr<Vector> create_new_z_U_copy()
344
+ {
345
+ SmartPtr<const Vector> curr_z_U_ = GetComp(5);
346
+ Set_z_U_NonConst(*curr_z_U_->MakeNew());
347
+ z_U_NonConst()->Copy(*curr_z_U_);
348
+ return z_U_NonConst();
349
+ }
350
+
351
+ /** Set the z_U iterate (const).
352
+ *
353
+ * Sets the pointer, does NOT copy data.
354
+ */
355
+ void Set_z_U(
356
+ const Vector& vec
357
+ )
358
+ {
359
+ SetComp(5, vec);
360
+ }
361
+
362
+ /** Set the z_U iterate (non-const).
363
+ *
364
+ * Sets the pointer, does NOT copy data.
365
+ */
366
+ void Set_z_U_NonConst(
367
+ Vector& vec
368
+ )
369
+ {
370
+ SetCompNonConst(5, vec);
371
+ }
372
+
373
+ /** Get the v_L iterate (const) */
374
+ SmartPtr<const Vector> v_L() const
375
+ {
376
+ return GetIterateFromComp(6);
377
+ }
378
+
379
+ /** Get the v_L iterate (non-const) - this can only be called if
380
+ * the vector was created internally, or the Set_v_L_NonConst
381
+ * method was used.
382
+ */
383
+ SmartPtr<Vector> v_L_NonConst()
384
+ {
385
+ return GetNonConstIterateFromComp(6);
386
+ }
387
+
388
+ /** Create a new vector in the v_L entry */
389
+ inline SmartPtr<Vector> create_new_v_L();
390
+
391
+ /** Create a new vector in the v_L entry and copy the current
392
+ * values into it.
393
+ */
394
+ SmartPtr<Vector> create_new_v_L_copy()
395
+ {
396
+ SmartPtr<const Vector> curr_v_L = GetComp(6);
397
+ Set_v_L_NonConst(*curr_v_L->MakeNew());
398
+ v_L_NonConst()->Copy(*curr_v_L);
399
+ return v_L_NonConst();
400
+ }
401
+
402
+ /** Set the v_L iterate (const).
403
+ *
404
+ * Sets the pointer, does NOT copy data.
405
+ */
406
+ void Set_v_L(
407
+ const Vector& vec
408
+ )
409
+ {
410
+ SetComp(6, vec);
411
+ }
412
+
413
+ /** Set the v_L iterate (non-const).
414
+ * Sets the pointer, does NOT copy data.
415
+ */
416
+ void Set_v_L_NonConst(
417
+ Vector& vec
418
+ )
419
+ {
420
+ SetCompNonConst(6, vec);
421
+ }
422
+
423
+ /** Get the v_U iterate (const) */
424
+ SmartPtr<const Vector> v_U() const
425
+ {
426
+ return GetIterateFromComp(7);
427
+ }
428
+
429
+ /** Get the v_U iterate (non-const) - this can only be called if
430
+ * the vector was created intenally, or the Set_v_U_NonConst
431
+ * method was used.
432
+ */
433
+ SmartPtr<Vector> v_U_NonConst()
434
+ {
435
+ return GetNonConstIterateFromComp(7);
436
+ }
437
+
438
+ /** Create a new vector in the v_U entry */
439
+ inline SmartPtr<Vector> create_new_v_U();
440
+
441
+ /** Create a new vector in the v_U entry and copy the current
442
+ * values into it.
443
+ */
444
+ SmartPtr<Vector> create_new_v_U_copy()
445
+ {
446
+ SmartPtr<const Vector> curr_v_U = GetComp(7);
447
+ Set_v_U_NonConst(*curr_v_U->MakeNew());
448
+ v_U_NonConst()->Copy(*curr_v_U);
449
+ return v_U_NonConst();
450
+ }
451
+
452
+ /** Set the v_U iterate (const).
453
+ *
454
+ * Sets the pointer, does NOT copy data.
455
+ */
456
+ void Set_v_U(
457
+ const Vector& vec
458
+ )
459
+ {
460
+ SetComp(7, vec);
461
+ }
462
+
463
+ /** Set the v_U iterate (non-const).
464
+ *
465
+ * Sets the pointer, does NOT copy data.
466
+ */
467
+ void Set_v_U_NonConst(
468
+ Vector& vec
469
+ )
470
+ {
471
+ SetCompNonConst(7, vec);
472
+ }
473
+
474
+ /** Set the primal variables all in one shot.
475
+ *
476
+ * Sets the pointers, does NOT copy data.
477
+ */
478
+ void Set_primal(
479
+ const Vector& x,
480
+ const Vector& s
481
+ )
482
+ {
483
+ SetComp(0, x);
484
+ SetComp(1, s);
485
+ }
486
+ void Set_primal_NonConst(
487
+ Vector& x,
488
+ Vector& s
489
+ )
490
+ {
491
+ SetCompNonConst(0, x);
492
+ SetCompNonConst(1, s);
493
+ }
494
+
495
+ /** Set the eq multipliers all in one shot.
496
+ *
497
+ * Sets the pointers, does not copy data.
498
+ */
499
+ void Set_eq_mult(
500
+ const Vector& y_c,
501
+ const Vector& y_d
502
+ )
503
+ {
504
+ SetComp(2, y_c);
505
+ SetComp(3, y_d);
506
+ }
507
+
508
+ /** Set the eq multipliers all in one shot.
509
+ *
510
+ * Sets the pointers, does not copy data.
511
+ */
512
+ void Set_eq_mult_NonConst(
513
+ Vector& y_c,
514
+ Vector& y_d
515
+ )
516
+ {
517
+ SetCompNonConst(2, y_c);
518
+ SetCompNonConst(3, y_d);
519
+ }
520
+
521
+ /** Set the bound multipliers all in one shot.
522
+ *
523
+ * Sets the pointers, does not copy data.
524
+ */
525
+ void Set_bound_mult(
526
+ const Vector& z_L,
527
+ const Vector& z_U,
528
+ const Vector& v_L,
529
+ const Vector& v_U
530
+ )
531
+ {
532
+ SetComp(4, z_L);
533
+ SetComp(5, z_U);
534
+ SetComp(6, v_L);
535
+ SetComp(7, v_U);
536
+ }
537
+
538
+ /** Set the bound multipliers all in one shot.
539
+ *
540
+ * Sets the pointers, does not copy data.
541
+ */
542
+ void Set_bound_mult_NonConst(
543
+ Vector& z_L,
544
+ Vector& z_U,
545
+ Vector& v_L,
546
+ Vector& v_U
547
+ )
548
+ {
549
+ SetCompNonConst(4, z_L);
550
+ SetCompNonConst(5, z_U);
551
+ SetCompNonConst(6, v_L);
552
+ SetCompNonConst(7, v_U);
553
+ }
554
+
555
+ /** Get a sum of the tags of the contained items.
556
+ *
557
+ * There is no
558
+ * guarantee that this is unique, but there is a high chance it
559
+ * is unique and it can be used for debug checks relatively
560
+ * reliably.
561
+ */
562
+ TaggedObject::Tag GetTagSum() const
563
+ {
564
+ TaggedObject::Tag tag = 0;
565
+
566
+ if( IsValid(x()) )
567
+ {
568
+ tag += x()->GetTag();
569
+ }
570
+ if( IsValid(s()) )
571
+ {
572
+ tag += s()->GetTag();
573
+ }
574
+ if( IsValid(y_c()) )
575
+ {
576
+ tag += y_c()->GetTag();
577
+ }
578
+ if( IsValid(y_d()) )
579
+ {
580
+ tag += y_d()->GetTag();
581
+ }
582
+ if( IsValid(z_L()) )
583
+ {
584
+ tag += z_L()->GetTag();
585
+ }
586
+ if( IsValid(z_U()) )
587
+ {
588
+ tag += z_U()->GetTag();
589
+ }
590
+ if( IsValid(v_L()) )
591
+ {
592
+ tag += v_L()->GetTag();
593
+ }
594
+ if( IsValid(v_U()) )
595
+ {
596
+ tag += v_U()->GetTag();
597
+ }
598
+
599
+ return tag;
600
+ }
601
+ ///@}
602
+
603
+ private:
604
+ /**@name Default Compiler Generated Methods (Hidden to avoid
605
+ * implicit creation/calling).
606
+ *
607
+ * These methods are not implemented
608
+ * and we do not want the compiler to implement them for us, so we
609
+ * declare them private and do not define them. This ensures that
610
+ * they will not be implicitly created/called.
611
+ */
612
+ ///@{
613
+ /** Default Constructor */
614
+ IteratesVector();
615
+
616
+ /** Copy Constructor */
617
+ IteratesVector(
618
+ const IteratesVector&
619
+ );
620
+
621
+ /** Default Assignment Operator */
622
+ void operator=(
623
+ const IteratesVector&
624
+ );
625
+ ///@}
626
+
627
+ const IteratesVectorSpace* owner_space_;
628
+
629
+ /** private method to return the const element from the compound vector
630
+ *
631
+ * @return NULL, if none is currently set
632
+ */
633
+ SmartPtr<const Vector> GetIterateFromComp(
634
+ Index i
635
+ ) const
636
+ {
637
+ if( IsCompNull(i) )
638
+ {
639
+ return NULL;
640
+ }
641
+ return GetComp(i);
642
+ }
643
+
644
+ /** private method to return the non-const element from the compound vector
645
+ *
646
+ * @return NULL, if none is currently set
647
+ */
648
+ SmartPtr<Vector> GetNonConstIterateFromComp(
649
+ Index i
650
+ )
651
+ {
652
+ if( IsCompNull(i) )
653
+ {
654
+ return NULL;
655
+ }
656
+ return GetCompNonConst(i);
657
+ }
658
+
659
+ };
660
+
661
+ /** Vector Space for the IteratesVector class.
662
+ *
663
+ * This is a specialized vector space for the IteratesVector class.
664
+ */
665
+ class IPOPTLIB_EXPORT IteratesVectorSpace: public CompoundVectorSpace
666
+ {
667
+ public:
668
+ /** @name Constructors / Destructors */
669
+ ///@{
670
+ /** Constructor that takes the spaces for each of the iterates.
671
+ *
672
+ * @attention None of these can be NULL !
673
+ */
674
+ IteratesVectorSpace(
675
+ const VectorSpace& x_space,
676
+ const VectorSpace& s_space,
677
+ const VectorSpace& y_c_space,
678
+ const VectorSpace& y_d_space,
679
+ const VectorSpace& z_L_space,
680
+ const VectorSpace& z_U_space,
681
+ const VectorSpace& v_L_space,
682
+ const VectorSpace& v_U_space
683
+ );
684
+
685
+ virtual ~IteratesVectorSpace();
686
+ ///@}
687
+
688
+ /** Method for creating vectors . */
689
+ ///@{
690
+ /** Use this to create a new IteratesVector.
691
+ *
692
+ * You can pass-in
693
+ * create_new = false if you only want a container and do not
694
+ * want vectors allocated.
695
+ */
696
+ virtual IteratesVector* MakeNewIteratesVector(
697
+ bool create_new = true
698
+ ) const
699
+ {
700
+ return new IteratesVector(this, create_new);
701
+ }
702
+
703
+ /** Use this method to create a new const IteratesVector.
704
+ *
705
+ * You must pass in valid pointers for all of the entries.
706
+ */
707
+ const SmartPtr<const IteratesVector> MakeNewIteratesVector(
708
+ const Vector& x,
709
+ const Vector& s,
710
+ const Vector& y_c,
711
+ const Vector& y_d,
712
+ const Vector& z_L,
713
+ const Vector& z_U,
714
+ const Vector& v_L,
715
+ const Vector& v_U
716
+ )
717
+ {
718
+ SmartPtr<IteratesVector> newvec = MakeNewIteratesVector(false);
719
+ newvec->Set_x(x);
720
+ newvec->Set_s(s);
721
+ newvec->Set_y_c(y_c);
722
+ newvec->Set_y_d(y_d);
723
+ newvec->Set_z_L(z_L);
724
+ newvec->Set_z_U(z_U);
725
+ newvec->Set_v_L(v_L);
726
+ newvec->Set_v_U(v_U);
727
+ return ConstPtr(newvec);
728
+ }
729
+
730
+ virtual CompoundVector* MakeNewCompoundVector(
731
+ bool create_new = true
732
+ ) const
733
+ {
734
+ return MakeNewIteratesVector(create_new);
735
+ }
736
+
737
+ /** This method creates a new vector (and allocates space in all
738
+ * the contained vectors.
739
+ *
740
+ * This is really only used for code that
741
+ * does not know what type of vector it is dealing with - for
742
+ * example, this method is called from Vector::MakeNew()
743
+ */
744
+ virtual Vector* MakeNew() const
745
+ {
746
+ return MakeNewIteratesVector();
747
+ }
748
+ ///@}
749
+
750
+ /** This method hides the CompoundVectorSpace::SetCompSpace method
751
+ * since the components of the Iterates are fixed at
752
+ * construction.
753
+ */
754
+ virtual void SetCompSpace(
755
+ Index /*icomp*/,
756
+ const VectorSpace& /*vec_space*/
757
+ )
758
+ {
759
+ DBG_ASSERT(false && "This is an IteratesVectorSpace - a special compound vector for Ipopt iterates. The contained spaces should not be modified.");
760
+ }
761
+
762
+ private:
763
+ /**@name Default Compiler Generated Methods (Hidden to avoid
764
+ * implicit creation/calling).
765
+ *
766
+ * These methods are not implemented
767
+ * and we do not want the compiler to implement them for us, so we
768
+ * declare them private and do not define them. This ensures that
769
+ * they will not be implicitly created/called.
770
+ */
771
+ ///@{
772
+ /** Default constructor */
773
+ IteratesVectorSpace();
774
+
775
+ /** Copy Constructor */
776
+ IteratesVectorSpace(
777
+ const IteratesVectorSpace&
778
+ );
779
+
780
+ /** Default Assignment Operator */
781
+ IteratesVectorSpace& operator=(
782
+ const IteratesVectorSpace&
783
+ );
784
+ ///@}
785
+
786
+ /** Contained Spaces */
787
+ SmartPtr<const VectorSpace> x_space_;
788
+ SmartPtr<const VectorSpace> s_space_;
789
+ SmartPtr<const VectorSpace> y_c_space_;
790
+ SmartPtr<const VectorSpace> y_d_space_;
791
+ SmartPtr<const VectorSpace> z_L_space_;
792
+ SmartPtr<const VectorSpace> z_U_space_;
793
+ SmartPtr<const VectorSpace> v_L_space_;
794
+ SmartPtr<const VectorSpace> v_U_space_;
795
+ };
796
+
797
+ inline SmartPtr<Vector> IteratesVector::create_new_x()
798
+ {
799
+ Set_x_NonConst(*owner_space_->GetCompSpace(0)->MakeNew());
800
+ return x_NonConst();
801
+ }
802
+ inline SmartPtr<Vector> IteratesVector::create_new_s()
803
+ {
804
+ Set_s_NonConst(*owner_space_->GetCompSpace(1)->MakeNew());
805
+ return s_NonConst();
806
+ }
807
+ inline SmartPtr<Vector> IteratesVector::create_new_y_c()
808
+ {
809
+ Set_y_c_NonConst(*owner_space_->GetCompSpace(2)->MakeNew());
810
+ return y_c_NonConst();
811
+ }
812
+ inline SmartPtr<Vector> IteratesVector::create_new_y_d()
813
+ {
814
+ Set_y_d_NonConst(*owner_space_->GetCompSpace(3)->MakeNew());
815
+ return y_d_NonConst();
816
+ }
817
+ inline SmartPtr<Vector> IteratesVector::create_new_z_L()
818
+ {
819
+ Set_z_L_NonConst(*owner_space_->GetCompSpace(4)->MakeNew());
820
+ return z_L_NonConst();
821
+ }
822
+ inline SmartPtr<Vector> IteratesVector::create_new_z_U()
823
+ {
824
+ Set_z_U_NonConst(*owner_space_->GetCompSpace(5)->MakeNew());
825
+ return z_U_NonConst();
826
+ }
827
+ inline SmartPtr<Vector> IteratesVector::create_new_v_L()
828
+ {
829
+ Set_v_L_NonConst(*owner_space_->GetCompSpace(6)->MakeNew());
830
+ return v_L_NonConst();
831
+ }
832
+ inline SmartPtr<Vector> IteratesVector::create_new_v_U()
833
+ {
834
+ Set_v_U_NonConst(*owner_space_->GetCompSpace(7)->MakeNew());
835
+ return v_U_NonConst();
836
+ }
837
+
838
+ } // namespace Ipopt
839
+
840
+ #endif