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,158 @@
1
+ // Copyright (C) 2004, 2008 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 __IPDIAGMATRIX_HPP__
8
+ #define __IPDIAGMATRIX_HPP__
9
+
10
+ #include "IpUtils.hpp"
11
+ #include "IpSymMatrix.hpp"
12
+
13
+ namespace Ipopt
14
+ {
15
+
16
+ /** Class for diagonal matrices.
17
+ *
18
+ * The diagonal is stored as a Vector.
19
+ */
20
+ class IPOPTLIB_EXPORT DiagMatrix: public SymMatrix
21
+ {
22
+ public:
23
+
24
+ /**@name Constructors / Destructors */
25
+ ///@{
26
+ /** Constructor, given the corresponding matrix space. */
27
+ DiagMatrix(
28
+ const SymMatrixSpace* owner_space
29
+ );
30
+
31
+ /** Destructor */
32
+ ~DiagMatrix();
33
+ ///@}
34
+
35
+ /** Set the diagonal elements (as a Vector). */
36
+ void SetDiag(
37
+ const Vector& diag
38
+ )
39
+ {
40
+ diag_ = &diag;
41
+ }
42
+
43
+ /** Get the diagonal elements. */
44
+ SmartPtr<const Vector> GetDiag() const
45
+ {
46
+ return diag_;
47
+ }
48
+
49
+ protected:
50
+ /**@name Methods overloaded from matrix */
51
+ ///@{
52
+ virtual void MultVectorImpl(
53
+ Number alpha,
54
+ const Vector& x,
55
+ Number beta,
56
+ Vector& y
57
+ ) const;
58
+
59
+ virtual bool HasValidNumbersImpl() const;
60
+
61
+ virtual void ComputeRowAMaxImpl(
62
+ Vector& rows_norms,
63
+ bool init
64
+ ) const;
65
+
66
+ virtual void PrintImpl(
67
+ const Journalist& jnlst,
68
+ EJournalLevel level,
69
+ EJournalCategory category,
70
+ const std::string& name,
71
+ Index indent,
72
+ const std::string& prefix
73
+ ) const;
74
+ ///@}
75
+
76
+ private:
77
+ /**@name Default Compiler Generated Methods
78
+ * (Hidden to avoid implicit creation/calling).
79
+ * These methods are not implemented and
80
+ * we do not want the compiler to implement
81
+ * them for us, so we declare them private
82
+ * and do not define them. This ensures that
83
+ * they will not be implicitly created/called. */
84
+ ///@{
85
+ /** Default Constructor */
86
+ DiagMatrix();
87
+
88
+ /** Copy Constructor */
89
+ DiagMatrix(
90
+ const DiagMatrix&
91
+ );
92
+
93
+ /** Default Assignment Operator */
94
+ void operator=(
95
+ const DiagMatrix&
96
+ );
97
+ ///@}
98
+
99
+ /** Vector storing the diagonal elements */
100
+ SmartPtr<const Vector> diag_;
101
+ };
102
+
103
+ /** This is the matrix space for DiagMatrix. */
104
+ class IPOPTLIB_EXPORT DiagMatrixSpace: public SymMatrixSpace
105
+ {
106
+ public:
107
+ /** @name Constructors / Destructors */
108
+ ///@{
109
+ /** Constructor, given the dimension of the matrix. */
110
+ DiagMatrixSpace(
111
+ Index dim
112
+ )
113
+ : SymMatrixSpace(dim)
114
+ { }
115
+
116
+ /** Destructor */
117
+ virtual ~DiagMatrixSpace()
118
+ { }
119
+ ///@}
120
+
121
+ virtual SymMatrix* MakeNewSymMatrix() const
122
+ {
123
+ return MakeNewDiagMatrix();
124
+ }
125
+
126
+ /** Method for creating a new matrix of this specific type. */
127
+ DiagMatrix* MakeNewDiagMatrix() const
128
+ {
129
+ return new DiagMatrix(this);
130
+ }
131
+
132
+ private:
133
+ /**@name Default Compiler Generated Methods
134
+ * (Hidden to avoid implicit creation/calling).
135
+ * These methods are not implemented and
136
+ * we do not want the compiler to implement
137
+ * them for us, so we declare them private
138
+ * and do not define them. This ensures that
139
+ * they will not be implicitly created/called. */
140
+ ///@{
141
+ /** Default Constructor */
142
+ DiagMatrixSpace();
143
+
144
+ /** Copy Constructor */
145
+ DiagMatrixSpace(
146
+ const DiagMatrixSpace&
147
+ );
148
+
149
+ /** Default Assignment Operator */
150
+ void operator=(
151
+ const DiagMatrixSpace&
152
+ );
153
+ ///@}
154
+
155
+ };
156
+
157
+ } // namespace Ipopt
158
+ #endif
@@ -0,0 +1,76 @@
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-09-23
6
+
7
+ #ifndef __IPEQMULTCALCULATOR_HPP__
8
+ #define __IPEQMULTCALCULATOR_HPP__
9
+
10
+ #include "IpUtils.hpp"
11
+ #include "IpAlgStrategy.hpp"
12
+
13
+ namespace Ipopt
14
+ {
15
+ /** Base Class for objects that compute estimates for the equality
16
+ * constraint multipliers y_c and y_d.
17
+ *
18
+ * For example, this is the base class for objects for computing
19
+ * least square multipliers or coordinate multipliers.
20
+ */
21
+ class EqMultiplierCalculator: public AlgorithmStrategyObject
22
+ {
23
+ public:
24
+ /**@name Constructors/Destructors */
25
+ ///@{
26
+ /** Default Constructor. */
27
+ EqMultiplierCalculator()
28
+ { }
29
+ /** Destructor */
30
+ virtual ~EqMultiplierCalculator()
31
+ { }
32
+ ///@}
33
+
34
+ /** overloaded from AlgorithmStrategyObject */
35
+ virtual bool InitializeImpl(
36
+ const OptionsList& options,
37
+ const std::string& prefix
38
+ ) = 0;
39
+
40
+ /** This method computes the estimates for y_c and y_d at the
41
+ * current point.
42
+ *
43
+ * If the estimates cannot be computed (e.g. some linear system
44
+ * is singular), the return value of this method is false.
45
+ */
46
+ virtual bool CalculateMultipliers(
47
+ Vector& y_c,
48
+ Vector& y_d
49
+ ) = 0;
50
+
51
+ private:
52
+ /**@name Default Compiler Generated Methods
53
+ * (Hidden to avoid implicit creation/calling).
54
+ *
55
+ * These methods are not implemented and
56
+ * we do not want the compiler to implement
57
+ * them for us, so we declare them private
58
+ * and do not define them. This ensures that
59
+ * they will not be implicitly created/called.
60
+ */
61
+ ///@{
62
+ /** Copy Constructor */
63
+ EqMultiplierCalculator(
64
+ const EqMultiplierCalculator&
65
+ );
66
+
67
+ /** Default Assignment Operator */
68
+ void operator=(
69
+ const EqMultiplierCalculator&
70
+ );
71
+ ///@}
72
+ };
73
+
74
+ } // namespace Ipopt
75
+
76
+ #endif
@@ -0,0 +1,156 @@
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
+ /** This file contains a base class for all exceptions
8
+ * and a set of macros to help with exceptions.
9
+ */
10
+
11
+ #ifndef __IPEXCEPTION_HPP__
12
+ #define __IPEXCEPTION_HPP__
13
+
14
+ #include "IpUtils.hpp"
15
+ #include "IpJournalist.hpp"
16
+
17
+ namespace Ipopt
18
+ {
19
+
20
+ /** This is the base class for all exceptions.
21
+ *
22
+ * The easiest way to
23
+ * use this class is by means of the following macros:
24
+ *
25
+ * \verbatim
26
+
27
+ DECLARE_STD_EXCEPTION(ExceptionType);
28
+ \endverbatim
29
+ *
30
+ * This macro defines a new class with the name ExceptionType,
31
+ * inherited from the base class IpoptException. After this,
32
+ * exceptions of this type can be thrown using
33
+ *
34
+ * \verbatim
35
+
36
+ THROW_EXCEPTION(ExceptionType, Message);
37
+ \endverbatim
38
+ *
39
+ * where Message is a std::string with a message that gives an
40
+ * indication of what caused the exception. Exceptions can also be
41
+ * thrown using the macro
42
+ *
43
+ * \verbatim
44
+
45
+ ASSERT_EXCEPTION(Condition, ExceptionType, Message);
46
+ \endverbatim
47
+ *
48
+ * where Conditions is an expression. If Condition evaluates to
49
+ * false, then the exception of the type ExceptionType is thrown
50
+ * with Message.
51
+ *
52
+ * When an exception is caught, the method ReportException can be
53
+ * used to write the information about the exception to the
54
+ * Journalist, using the level J_ERROR and the category J_MAIN.
55
+ *
56
+ */
57
+ class IPOPTLIB_EXPORT IpoptException
58
+ {
59
+ public:
60
+ /**@name Constructors/Destructors */
61
+ ///@{
62
+ /** Constructor */
63
+ IpoptException(
64
+ const std::string& msg,
65
+ const std::string& file_name,
66
+ Index line_number,
67
+ const std::string& type = "IpoptException"
68
+ )
69
+ : msg_(msg),
70
+ file_name_(file_name),
71
+ line_number_(line_number),
72
+ type_(type)
73
+ { }
74
+
75
+ /** Copy Constructor */
76
+ IpoptException(
77
+ const IpoptException& copy
78
+ )
79
+ : msg_(copy.msg_),
80
+ file_name_(copy.file_name_),
81
+ line_number_(copy.line_number_),
82
+ type_(copy.type_)
83
+ { }
84
+
85
+ /** Default destructor */
86
+ virtual ~IpoptException()
87
+ { }
88
+ ///@}
89
+
90
+ /** Method to report the exception to a journalist */
91
+ void ReportException(
92
+ const Journalist& jnlst,
93
+ EJournalLevel level = J_ERROR
94
+ ) const
95
+ {
96
+ jnlst.Printf(level, J_MAIN,
97
+ "Exception of type: %s in file \"%s\" at line %" IPOPT_INDEX_FORMAT ":\n Exception message: %s\n", type_.c_str(), file_name_.c_str(), line_number_, msg_.c_str());
98
+ }
99
+
100
+ const std::string& Message() const
101
+ {
102
+ return msg_;
103
+ }
104
+
105
+ private:
106
+ /**@name Default Compiler Generated Methods
107
+ * (Hidden to avoid implicit creation/calling).
108
+ *
109
+ * These methods are not implemented and
110
+ * we do not want the compiler to implement
111
+ * them for us, so we declare them private
112
+ * and do not define them. This ensures that
113
+ * they will not be implicitly created/called. */
114
+ ///@{
115
+ /** Default Constructor */
116
+ IpoptException();
117
+
118
+ /** Default Assignment Operator */
119
+ void operator=(
120
+ const IpoptException&
121
+ );
122
+ ///@}
123
+
124
+ std::string msg_;
125
+ std::string file_name_;
126
+ Index line_number_;
127
+ std::string type_;
128
+ };
129
+
130
+ } // namespace Ipopt
131
+
132
+ #define THROW_EXCEPTION(__except_type, __msg) \
133
+ throw __except_type( (__msg), (__FILE__), (__LINE__) );
134
+
135
+ #define ASSERT_EXCEPTION(__condition, __except_type, __msg) \
136
+ if (! (__condition) ) { \
137
+ std::string newmsg = #__condition; \
138
+ newmsg += " evaluated false: "; \
139
+ newmsg += __msg; \
140
+ throw __except_type( (newmsg), (__FILE__), (__LINE__) ); \
141
+ }
142
+
143
+ #define DECLARE_STD_EXCEPTION(__except_type) \
144
+ class IPOPTLIB_EXPORT __except_type : public Ipopt::IpoptException \
145
+ { \
146
+ public: \
147
+ __except_type(const std::string& msg, const std::string& fname, Ipopt::Index line) \
148
+ : Ipopt::IpoptException(msg,fname,line, #__except_type) {} \
149
+ __except_type(const __except_type& copy) \
150
+ : Ipopt::IpoptException(copy) {} \
151
+ private: \
152
+ __except_type(); \
153
+ void operator=(const __except_type&); \
154
+ }
155
+
156
+ #endif
@@ -0,0 +1,245 @@
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 __IPEXPANSIONMATRIX_HPP__
8
+ #define __IPEXPANSIONMATRIX_HPP__
9
+
10
+ #include "IpUtils.hpp"
11
+ #include "IpMatrix.hpp"
12
+
13
+ namespace Ipopt
14
+ {
15
+
16
+ /** forward declarations */
17
+ class ExpansionMatrixSpace;
18
+
19
+ /** Class for expansion/projection matrices.
20
+ *
21
+ * These matrices allow
22
+ * to lift a vector to a vector with larger dimension, keeping
23
+ * some elements of the larger vector zero. This operation is achieved
24
+ * by the MultVector operation. The transpose operation then
25
+ * filters some elements from a large vector into a smaller vector.
26
+ */
27
+ class IPOPTLIB_EXPORT ExpansionMatrix: public Matrix
28
+ {
29
+ public:
30
+ /**@name Constructors / Destructors */
31
+ ///@{
32
+ /** Constructor, taking the owner_space.
33
+ */
34
+ ExpansionMatrix(
35
+ const ExpansionMatrixSpace* owner_space
36
+ );
37
+
38
+ /** Destructor */
39
+ ~ExpansionMatrix();
40
+ ///@}
41
+
42
+ /** Return the vector of indices marking the expanded position.
43
+ *
44
+ * The result is the Index array (of length NSmallVec=NCols())
45
+ * that stores the mapping from the small vector to the large
46
+ * vector. For each element i=0,..,NSmallVec in the small
47
+ * vector, ExpandedPosIndices()[i] give the corresponding index
48
+ * in the large vector.
49
+ */
50
+ const Index* ExpandedPosIndices() const;
51
+
52
+ /** Return the vector of indices marking the compressed position.
53
+ *
54
+ * The result is the Index array (of length NLargeVec=NRows())
55
+ * that stores the mapping from the large vector to the small
56
+ * vector. For each element i=0,..,NLargeVec in the large
57
+ * vector, CompressedPosIndices()[i] gives the corresponding
58
+ * index in the small vector, unless CompressedPosIndices()[i] is
59
+ * negative.
60
+ */
61
+ const Index* CompressedPosIndices() const;
62
+
63
+ protected:
64
+ /**@name Overloaded methods from Matrix base class*/
65
+ ///@{
66
+ virtual void MultVectorImpl(
67
+ Number alpha,
68
+ const Vector& x,
69
+ Number beta,
70
+ Vector& y
71
+ ) const;
72
+
73
+ virtual void TransMultVectorImpl(
74
+ Number alpha,
75
+ const Vector& x,
76
+ Number beta,
77
+ Vector& y
78
+ ) const;
79
+
80
+ virtual void AddMSinvZImpl(
81
+ Number alpha,
82
+ const Vector& S,
83
+ const Vector& Z,
84
+ Vector& X
85
+ ) const;
86
+
87
+ virtual void SinvBlrmZMTdBrImpl(
88
+ Number alpha,
89
+ const Vector& S,
90
+ const Vector& R,
91
+ const Vector& Z,
92
+ const Vector& D,
93
+ Vector& X
94
+ ) const;
95
+
96
+ virtual void ComputeRowAMaxImpl(
97
+ Vector& rows_norms,
98
+ bool init
99
+ ) const;
100
+
101
+ virtual void ComputeColAMaxImpl(
102
+ Vector& cols_norms,
103
+ bool init
104
+ ) const;
105
+
106
+ virtual void PrintImpl(
107
+ const Journalist& jnlst,
108
+ EJournalLevel level,
109
+ EJournalCategory category,
110
+ const std::string& name,
111
+ Index indent,
112
+ const std::string& prefix
113
+ ) const
114
+ {
115
+ PrintImplOffset(jnlst, level, category, name, indent, prefix, 1, 1);
116
+ }
117
+ ///@}
118
+
119
+ void PrintImplOffset(
120
+ const Journalist& jnlst,
121
+ EJournalLevel level,
122
+ EJournalCategory category,
123
+ const std::string& name,
124
+ Index indent,
125
+ const std::string& prefix,
126
+ Index row_offset,
127
+ Index col_offset
128
+ ) const;
129
+
130
+ friend class ParExpansionMatrix;
131
+
132
+ private:
133
+ /**@name Default Compiler Generated Methods
134
+ * (Hidden to avoid implicit creation/calling).
135
+ * These methods are not implemented and
136
+ * we do not want the compiler to implement
137
+ * them for us, so we declare them private
138
+ * and do not define them. This ensures that
139
+ * they will not be implicitly created/called.
140
+ */
141
+ ///@{
142
+ /** Default Constructor */
143
+ ExpansionMatrix();
144
+
145
+ /** Copy Constructor */
146
+ ExpansionMatrix(
147
+ const ExpansionMatrix&
148
+ );
149
+
150
+ /** Default Assignment Operator */
151
+ void operator=(
152
+ const ExpansionMatrix&
153
+ );
154
+ ///@}
155
+
156
+ const ExpansionMatrixSpace* owner_space_;
157
+
158
+ };
159
+
160
+ /** This is the matrix space for ExpansionMatrix. */
161
+ class IPOPTLIB_EXPORT ExpansionMatrixSpace: public MatrixSpace
162
+ {
163
+ public:
164
+ /** @name Constructors / Destructors */
165
+ ///@{
166
+ /** Constructor, given the list of elements of the large vector
167
+ * (of size NLargeVec) to be filtered into the small vector (of
168
+ * size NSmallVec).
169
+ *
170
+ * For each i=0..NSmallVec-1 the i-th element
171
+ * of the small vector will be put into the ExpPos[i] position of
172
+ * the large vector. The position counting in the vector is
173
+ * assumed to start at 0 (C-like array notation).
174
+ */
175
+ ExpansionMatrixSpace(
176
+ Index NLargeVec,
177
+ Index NSmallVec,
178
+ const Index* ExpPos,
179
+ const int offset = 0
180
+ );
181
+
182
+ /** Destructor */
183
+ ~ExpansionMatrixSpace()
184
+ {
185
+ delete[] compressed_pos_;
186
+ delete[] expanded_pos_;
187
+ }
188
+ ///@}
189
+
190
+ /** Method for creating a new matrix of this specific type. */
191
+ ExpansionMatrix* MakeNewExpansionMatrix() const
192
+ {
193
+ return new ExpansionMatrix(this);
194
+ }
195
+
196
+ virtual Matrix* MakeNew() const
197
+ {
198
+ return MakeNewExpansionMatrix();
199
+ }
200
+
201
+ /** Accessor Method to obtain the Index array (of length
202
+ * NSmallVec=NCols()) that stores the mapping from the small
203
+ * vector to the large vector.
204
+ *
205
+ * For each element i=0,..,NSmallVec
206
+ * in the small vector, ExpandedPosIndices()[i] give the
207
+ * corresponding index in the large vector.
208
+ */
209
+ const Index* ExpandedPosIndices() const
210
+ {
211
+ return expanded_pos_;
212
+ }
213
+
214
+ /** Accessor Method to obtain the Index array (of length
215
+ * NLargeVec=NRows()) that stores the mapping from the large
216
+ * vector to the small vector.
217
+ *
218
+ * For each element i=0,..,NLargeVec
219
+ * in the large vector, CompressedPosIndices()[i] gives the
220
+ * corresponding index in the small vector, unless
221
+ * CompressedPosIndices()[i] is negative.
222
+ */
223
+ const Index* CompressedPosIndices() const
224
+ {
225
+ return compressed_pos_;
226
+ }
227
+
228
+ private:
229
+ Index* expanded_pos_;
230
+ Index* compressed_pos_;
231
+ };
232
+
233
+ /* inline methods */
234
+ inline const Index* ExpansionMatrix::ExpandedPosIndices() const
235
+ {
236
+ return owner_space_->ExpandedPosIndices();
237
+ }
238
+
239
+ inline const Index* ExpansionMatrix::CompressedPosIndices() const
240
+ {
241
+ return owner_space_->CompressedPosIndices();
242
+ }
243
+
244
+ } // namespace Ipopt
245
+ #endif