casadi 3.6.4__cp310-none-manylinux2014_i686.whl → 3.6.6__cp310-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
casadi/cbc CHANGED
Binary file
casadi/clp CHANGED
Binary file
@@ -1,4 +1,4 @@
1
- set(PACKAGE_VERSION "3.6.4")
1
+ set(PACKAGE_VERSION "3.6.6")
2
2
 
3
3
  # Check whether the requested PACKAGE_FIND_VERSION is compatible
4
4
  if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
@@ -2,23 +2,16 @@
2
2
 
3
3
  set(HIGHS_DIR "")
4
4
 
5
- if (FAST_BUILD)
6
- if(NOT TARGET highs)
7
- include("${CMAKE_CURRENT_LIST_DIR}/highs-targets.cmake")
8
- endif()
5
+ if(NOT TARGET highs)
6
+ include("${CMAKE_CURRENT_LIST_DIR}/highs-targets.cmake")
7
+ endif()
9
8
 
10
- set(HIGHS_LIBRARIES highs)
11
- else()
12
- if(NOT TARGET libhighs)
13
- include("${CMAKE_CURRENT_LIST_DIR}/highs-targets.cmake")
14
- endif()
9
+ set(HIGHS_LIBRARIES highs)
15
10
 
16
- set(HIGHS_LIBRARIES libhighs)
17
- endif()
18
-
19
- set(HIGHS_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../../include/highs")
11
+ set(HIGHS_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../../include")
20
12
 
21
13
  set(HIGHS_FOUND TRUE)
22
14
 
23
15
  include(CMakeFindDependencyMacro)
16
+ find_dependency(Threads)
24
17
  find_dependency(ZLIB)
@@ -5,24 +5,24 @@
5
5
  # Commands may need to know the format version.
6
6
  set(CMAKE_IMPORT_FILE_VERSION 1)
7
7
 
8
- # Import target "highs" for configuration "Release"
9
- set_property(TARGET highs APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
10
- set_target_properties(highs PROPERTIES
11
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/highs"
8
+ # Import target "highs::highs" for configuration "Release"
9
+ set_property(TARGET highs::highs APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
10
+ set_target_properties(highs::highs PROPERTIES
11
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libhighs.so.1.7.2"
12
+ IMPORTED_SONAME_RELEASE "libhighs.so.1"
12
13
  )
13
14
 
14
- list(APPEND _cmake_import_check_targets highs )
15
- list(APPEND _cmake_import_check_files_for_highs "${_IMPORT_PREFIX}/bin/highs" )
15
+ list(APPEND _cmake_import_check_targets highs::highs )
16
+ list(APPEND _cmake_import_check_files_for_highs::highs "${_IMPORT_PREFIX}/lib/libhighs.so.1.7.2" )
16
17
 
17
- # Import target "libhighs" for configuration "Release"
18
- set_property(TARGET libhighs APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
19
- set_target_properties(libhighs PROPERTIES
20
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libhighs.so.1.6.0"
21
- IMPORTED_SONAME_RELEASE "libhighs.so.1.6"
18
+ # Import target "highs::highs-bin" for configuration "Release"
19
+ set_property(TARGET highs::highs-bin APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
20
+ set_target_properties(highs::highs-bin PROPERTIES
21
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/highs"
22
22
  )
23
23
 
24
- list(APPEND _cmake_import_check_targets libhighs )
25
- list(APPEND _cmake_import_check_files_for_libhighs "${_IMPORT_PREFIX}/lib/libhighs.so.1.6.0" )
24
+ list(APPEND _cmake_import_check_targets highs::highs-bin )
25
+ list(APPEND _cmake_import_check_files_for_highs::highs-bin "${_IMPORT_PREFIX}/bin/highs" )
26
26
 
27
27
  # Commands beyond this point should not need to know the version.
28
28
  set(CMAKE_IMPORT_FILE_VERSION)
@@ -19,7 +19,7 @@ set(CMAKE_IMPORT_FILE_VERSION 1)
19
19
  set(_cmake_targets_defined "")
20
20
  set(_cmake_targets_not_defined "")
21
21
  set(_cmake_expected_targets "")
22
- foreach(_cmake_expected_target IN ITEMS highs libhighs)
22
+ foreach(_cmake_expected_target IN ITEMS highs::highs highs::highs-bin)
23
23
  list(APPEND _cmake_expected_targets "${_cmake_expected_target}")
24
24
  if(TARGET "${_cmake_expected_target}")
25
25
  list(APPEND _cmake_targets_defined "${_cmake_expected_target}")
@@ -55,19 +55,22 @@ if(_IMPORT_PREFIX STREQUAL "/")
55
55
  set(_IMPORT_PREFIX "")
56
56
  endif()
57
57
 
58
- # Create imported target highs
59
- add_executable(highs IMPORTED)
58
+ # Create imported target highs::highs
59
+ add_library(highs::highs SHARED IMPORTED)
60
60
 
61
- set_target_properties(highs PROPERTIES
62
- INTERFACE_COMPILE_OPTIONS "-Wno-unused-variable;-Wno-unused-const-variable"
61
+ set_target_properties(highs::highs PROPERTIES
62
+ COMPATIBLE_INTERFACE_STRING "HIGHS_MAJOR_VERSION"
63
+ INTERFACE_HIGHS_MAJOR_VERSION "1"
64
+ INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include/highs"
65
+ INTERFACE_LINK_LIBRARIES "ZLIB::ZLIB;Threads::Threads"
66
+ INTERFACE_POSITION_INDEPENDENT_CODE "ON"
63
67
  )
64
68
 
65
- # Create imported target libhighs
66
- add_library(libhighs SHARED IMPORTED)
69
+ # Create imported target highs::highs-bin
70
+ add_executable(highs::highs-bin IMPORTED)
67
71
 
68
- set_target_properties(libhighs PROPERTIES
69
- INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include/highs"
70
- INTERFACE_LINK_LIBRARIES "ZLIB::ZLIB;Threads::Threads"
72
+ set_target_properties(highs::highs-bin PROPERTIES
73
+ INTERFACE_COMPILE_OPTIONS "-Wno-unused-variable;-Wno-unused-const-variable"
71
74
  )
72
75
 
73
76
  if(CMAKE_VERSION VERSION_LESS 2.8.12)
casadi/highs CHANGED
Binary file
@@ -80,6 +80,19 @@
80
80
  return PyErr_CheckSignals();
81
81
  }
82
82
 
83
+ std::string python_string_to_std_string(PyObject *str_py) {
84
+ #if SWIG_VERSION < 0x040200
85
+ const char *str_char = SWIG_Python_str_AsChar(str_py);
86
+ std::string str(str_char);
87
+ SWIG_Python_str_DelForPy3(str_char);
88
+ #else
89
+ PyObject *bytes = NULL;
90
+ std::string str(SWIG_PyUnicode_AsUTF8AndSize(str_py, NULL, &bytes));
91
+ Py_XDECREF(bytes);
92
+ #endif
93
+ return str;
94
+ }
95
+
83
96
  void handle_director_exception() {
84
97
  std::string msg = "Exception in SWIG director ";
85
98
  SWIG_PYTHON_THREAD_BEGIN_BLOCK;
@@ -91,9 +104,7 @@
91
104
  PyObject *ptype, *pvalue, *ptraceback;
92
105
  PyErr_Fetch(&ptype, &pvalue, &ptraceback);
93
106
  PyObject* msg_py = PyObject_Str(pvalue);
94
- char *msg_char = SWIG_Python_str_AsChar(msg_py);
95
- msg = msg_char;
96
- SWIG_Python_str_DelForPy3(msg_char);
107
+ msg = python_string_to_std_string(msg_py);
97
108
  Py_DECREF(msg_py);
98
109
  PyErr_Restore(ptype, pvalue, ptraceback);
99
110
  PyErr_Print();
@@ -1441,11 +1452,15 @@ namespace std {
1441
1452
  || to_generic<std::vector<double> >(p, m)
1442
1453
  || to_generic<std::vector<bool> >(p, m)
1443
1454
  || to_generic<std::vector<std::string> >(p, m)
1455
+ || to_generic<std::vector<std::vector<std::string> > >(p, m)
1444
1456
  || to_generic<std::vector<std::vector<casadi_int> > >(p, m)
1445
1457
  || to_generic<std::vector<std::vector<double> > >(p, m)
1446
1458
  || to_generic<casadi::Function>(p, m)
1447
1459
  || to_generic<std::vector<casadi::Function> >(p, m)
1448
- || to_generic<casadi::GenericType::Dict>(p, m)) {
1460
+ || to_generic<casadi::GenericType::Dict>(p, m)
1461
+ || to_generic<std::vector<casadi::GenericType::Dict> >(p, m)
1462
+ || to_generic<std::vector<std::vector<casadi::GenericType> > >(p, m)
1463
+ || to_generic<std::vector<casadi::GenericType> >(p, m)) {
1449
1464
  return true;
1450
1465
  }
1451
1466
 
@@ -1468,7 +1483,11 @@ namespace std {
1468
1483
  case OT_DOUBLEVECTOR: return from_tmp(a->as_double_vector());
1469
1484
  case OT_DOUBLEVECTORVECTOR: return from_tmp(a->as_double_vector_vector());
1470
1485
  case OT_STRINGVECTOR: return from_tmp(a->as_string_vector());
1486
+ case OT_STRINGVECTORVECTOR: return from_tmp(a->as_string_vector_vector());
1471
1487
  case OT_DICT: return from_tmp(a->as_dict());
1488
+ case OT_DICTVECTOR: return from_tmp(a->as_dict_vector());
1489
+ case OT_VECTORVECTOR: return from_tmp(a->as_vector_vector());
1490
+ case OT_VECTOR: return from_tmp(a->as_vector());
1472
1491
  case OT_FUNCTION: return from_tmp(a->as_function());
1473
1492
  case OT_FUNCTIONVECTOR: return from_tmp(a->as_function_vector());
1474
1493
  #ifdef SWIGPYTHON
@@ -1500,10 +1519,10 @@ namespace std {
1500
1519
 
1501
1520
  #ifdef SWIGPYTHON
1502
1521
  if (PyString_Check(p) || PyUnicode_Check(p)) {
1503
- if (m) (*m)->clear();
1504
- char* my_char = SWIG_Python_str_AsChar(p);
1505
- if (m) (*m)->append(my_char);
1506
- SWIG_Python_str_DelForPy3(my_char);
1522
+ if (m) {
1523
+ (*m)->clear();
1524
+ (*m)->append(python_string_to_std_string(p));
1525
+ }
1507
1526
  return true;
1508
1527
  }
1509
1528
  #endif // SWIGPYTHON
@@ -1594,9 +1613,7 @@ namespace std {
1594
1613
  while (PyDict_Next(p, &pos, &key, &value)) {
1595
1614
  if (!(PyString_Check(key) || PyUnicode_Check(key))) return false;
1596
1615
  if (m) {
1597
- char* c_key = SWIG_Python_str_AsChar(key);
1598
- M *v=&(**m)[std::string(c_key)], *v2=v;
1599
- SWIG_Python_str_DelForPy3(c_key);
1616
+ M *v=&(**m)[python_string_to_std_string(key)], *v2=v;
1600
1617
  if (!casadi::to_ptr(value, &v)) return false;
1601
1618
  if (v!=v2) *v2=*v; // if only pointer changed
1602
1619
  } else {
@@ -1857,11 +1874,8 @@ namespace std {
1857
1874
  PyObject * classo = PyObject_GetAttrString( p, "__class__");
1858
1875
  PyObject * classname = PyObject_GetAttrString( classo, "__name__");
1859
1876
 
1860
- char* c_classname = SWIG_Python_str_AsChar(classname);
1861
- bool ret = strcmp(c_classname, name)==0;
1862
-
1877
+ bool ret = python_string_to_std_string(classname) == name;
1863
1878
  Py_DECREF(classo);Py_DECREF(classname);
1864
- SWIG_Python_str_DelForPy3(c_classname);
1865
1879
  return ret;
1866
1880
  }
1867
1881
  #endif // SWIGPYTHON
@@ -3680,6 +3694,9 @@ DECL M casadi_stop_diff(const M& expr, casadi_int order) {
3680
3694
  DECL M casadi_stop_diff(const M& expr, const M& var, casadi_int order) {
3681
3695
  return stop_diff(expr, var, order);
3682
3696
  }
3697
+ DECL std::vector< M > casadi_difference(const std::vector< M >& a, const std::vector< M >& b) {
3698
+ return difference(a, b);
3699
+ }
3683
3700
  DECL M casadi_no_hess(const M& expr) {
3684
3701
  return no_hess(expr);
3685
3702
  }
@@ -4420,6 +4437,7 @@ namespace casadi {
4420
4437
  %include <casadi/core/casadi_meta.hpp>
4421
4438
  %include <casadi/core/integration_tools.hpp>
4422
4439
  %include <casadi/core/nlp_tools.hpp>
4440
+ %include <casadi/core/tools.hpp>
4423
4441
  %include <casadi/core/nlp_builder.hpp>
4424
4442
  %include <casadi/core/dae_builder.hpp>
4425
4443
  %include <casadi/core/xml_file.hpp>
@@ -128,6 +128,8 @@ CASADI_EXPORT int casadi_c_work_id(int id, casadi_int *sz_arg, casadi_int* sz_re
128
128
  CASADI_EXPORT int casadi_c_eval_id(int id, const double** arg, double** res,
129
129
  casadi_int* iw, double* w, int mem);
130
130
 
131
+ CASADI_EXPORT void casadi_c_logger_write(const char* msg, int num);
132
+ CASADI_EXPORT void casadi_c_logger_flush(void);
131
133
 
132
134
  #ifdef __cplusplus
133
135
  }
@@ -26,18 +26,18 @@
26
26
 
27
27
  #define CASADI_MAJOR_VERSION 3
28
28
  #define CASADI_MINOR_VERSION 6
29
- #define CASADI_PATCH_VERSION 4
29
+ #define CASADI_PATCH_VERSION 6
30
30
  #define CASADI_IS_RELEASE 1
31
- #define CASADI_VERSION_STRING "3.6.4"
32
- #define CASADI_GIT_REVISION "329e2282664f584b17fd6319f8ce765a111a6022" // NOLINT(whitespace/line_length)
33
- #define CASADI_GIT_DESCRIBE "3.6.3-116.329e22826" // NOLINT(whitespace/line_length)
34
- #define CASADI_FEATURE_LIST "\n * dynamic-loading, Support for import of FMI 2.0 binaries\n * sundials-interface, Interface to the ODE/DAE integrator suite SUNDIALS.\n * csparse-interface, Interface to the sparse direct linear solver CSparse.\n * superscs-interface, Interface to QP solver SUPERSCS.\n * osqp-interface, Interface to QP solver OSQP.\n * tinyxml-interface, Interface to the XML parser TinyXML.\n * qpoases-interface, Interface to the active-set QP solver qpOASES.\n * blocksqp-interface, Interface to the NLP solver blockSQP.\n * snopt-mockup-build, Use mockup SNOPT (BUILD_MOCKUPS_VERSION=v65) from downloaded source (BUILD_MOCKUPS_GIT_REPO=https://github.com/casadi/mockups.git).\n * knitro-mockup-build, Use mockup KNITRO (BUILD_MOCKUPS_VERSION=v65) from downloaded source (BUILD_MOCKUPS_GIT_REPO=https://github.com/casadi/mockups.git).\n * gurobi-mockup-build, Use mockup GUROBI (BUILD_MOCKUPS_VERSION=v65) from downloaded source (BUILD_MOCKUPS_GIT_REPO=https://github.com/casadi/mockups.git).\n * worhp-mockup-build, Use mockup WORHP (BUILD_MOCKUPS_VERSION=v65) from downloaded source (BUILD_MOCKUPS_GIT_REPO=https://github.com/casadi/mockups.git).\n * hsl-mockup-build, Use mockup WORHP (BUILD_MOCKUPS_VERSION=v65) from downloaded source (BUILD_MOCKUPS_GIT_REPO=https://github.com/casadi/mockups.git).\n * alpaqa-sourcebuild, Build Alpaqa (BUILD_ALPAQA_VERSION=develop) from downloaded source (BUILD_ALPAQA_GIT_REPO=https://github.com/jgillis/alpaqa).\n * highs-sourcebuild, Build HiGHS (BUILD_HIGHS_VERSION=v1.6.0) from downloaded source (BUILD_HIGHS_GIT_REPO=https://github.com/ERGO-Code/HiGHS).\n * proxqp-sourcebuild, Build PROXQP (BUILD_PROXQP_VERSION=v0.3.2) from downloaded source (BUILD_PROXQP_GIT_REPO=https://github.com/Simple-Robotics/proxsuite.git).\n * osqp-sourcebuild, Build OSQP (BUILD_OSQP_VERSION=v0.6.2) from downloaded source (BUILD_OSQP_GIT_REPO=https://github.com/osqp/osqp.git).\n * superscs-sourcebuild, Build SuperSCS (BUILD_SUPERSCS_VERSION=4d2d1bd03ed4cf93e684a880b233760ce34ca69c) from downloaded source (BUILD_SUPERSCS_GIT_REPO=https://github.com/jgillis/scs.git).\n * sleqp-sourcebuild, Build SLEQP (BUILD_SLEQP_VERSION=patch-1) from downloaded source (BUILD_SLEQP_GIT_REPO=https://github.com/jgillis/sleqp.git).\n * bonmin-sourcebuild, Build BONMIN (BUILD_BONMIN_VERSION=releases/1.8.9) from downloaded source (BUILD_BONMIN_GIT_REPO=https://github.com/coin-or/Bonmin.git).\n * ipopt-sourcebuild, Build IPOPT (BUILD_IPOPT_VERSION=3.14.11.mod) from downloaded source (BUILD_IPOPT_GIT_REPO=https://github.com/jgillis/Ipopt-1.git).\n * cbc-sourcebuild, Build CBC (BUILD_CBC_VERSION=releases/2.10.11) from downloaded source.\n * clp-sourcebuild, Build CLP (BUILD_CLP_VERSION=releases/1.17.9) from downloaded source (BUILD_CLP_GIT_REPO=https://github.com/coin-or/Clp.git).\n * mumps-sourcebuild, Build MUMPS (BUILD_MUMPS_TP_VERSION=releases/3.0.2) from downloaded source (BUILD_MUMPS_TP_GIT_REPO=https://github.com/coin-or-tools/ThirdParty-Mumps.git).\n * spral-sourcebuild, Build SPRAL (BUILD_SPRAL_VERSION=d385d2c9e858366d257cafaaf05760ffa6543e26) from downloaded source (BUILD_SPRAL_GIT_REPO=https://github.com/ralna/spral.git).\n * metis-sourcebuild, Build METIS (BUILD_METIS_TP_VERSION=releases/2.0.0) from downloaded source.\n * trlib-sourcebuild, Build TRLIB (BUILD_TRLIB_VERSION=c7632b8b14152e78bc21721a3bd1a2432586b824) from downloaded source (BUILD_TRLIB_GIT_REPO=https://github.com/jgillis/trlib.git).\n * lapack-sourcebuild, Download and install OpenBLAS for LAPACK+BLAS\n * eigen3-sourcebuild, Build Eigen (BUILD_EIGEN3_VERSION=3.4.0) from downloaded source (BUILD_EIGEN3_GIT_REPO=https://gitlab.com/libeigen/eigen.git).\n * simde-sourcebuild, Build Simde (BUILD_SIMDE_VERSION=v0.7.2) from downloaded source (BUILD_SIMDE_GIT_REPO=https://github.com/simd-everywhere/simde.git).\n * gurobi-interface, Interface to the (mixed-integer) QP solver GUROBI\n * knitro-interface, Interface to the NLP solver KNITRO.\n * snopt-interface, Interface to the NLP solver KNITRO.\n * worhp-interface, Interface to the NLP solver Worhp (requires gfortran, gomp).\n * lapack-interface, Interface to LAPACK.\n * mumps-interface, Interface to MUMPS.\n * spral-interface, Interface to SPRAL.\n * coinutils-sourcebuild, Build COINUTILS (BUILD_COINUTILS_VERSION=releases/2.11.10) from downloaded source.\n * osi-sourcebuild, Build OSI (BUILD_OSI_VERSION=releases/0.108.9) from downloaded source.\n * clp-interface, Interface to the LP solver CLP.\n * cgl-sourcebuild, Build CGL (BUILD_CGL_VERSION=releases/0.60.8) from downloaded source.\n * cbc-interface, Interface to the LP solver CBC.\n * ipopt-interface, Interface to the NLP solver Ipopt.\n * bonmin-interface, Interface to the MINLP framework Bonmin.\n * highs-interface, Interface to the MILP / QP solver HiGHS.\n * sleqp-interface, Interface to the NLP solver SLEQP.\n * alpaqa-interface, Interface to the NLP solver Alpaqa.\n * proxqp-interface, Interface to QP solver PROXQP.\n * ampl-interface, Interface to the AMPL solver library.\n" // NOLINT(whitespace/line_length)
31
+ #define CASADI_VERSION_STRING "3.6.6"
32
+ #define CASADI_GIT_REVISION "279e0b80886dc5eb43a9d12a1056c550dc3b786e" // NOLINT(whitespace/line_length)
33
+ #define CASADI_GIT_DESCRIBE "3.6.3-275.279e0b808" // NOLINT(whitespace/line_length)
34
+ #define CASADI_FEATURE_LIST "\n * dynamic-loading, Support for import of FMI 2.0 binaries\n * sundials-interface, Interface to the ODE/DAE integrator suite SUNDIALS.\n * csparse-interface, Interface to the sparse direct linear solver CSparse.\n * superscs-interface, Interface to QP solver SUPERSCS.\n * osqp-interface, Interface to QP solver OSQP.\n * tinyxml-interface, Interface to the XML parser TinyXML.\n * qpoases-interface, Interface to the active-set QP solver qpOASES.\n * blocksqp-interface, Interface to the NLP solver blockSQP.\n * snopt-mockup-build, Use mockup SNOPT (BUILD_MOCKUPS_VERSION=master) from downloaded source (BUILD_MOCKUPS_GIT_REPO=https://github.com/casadi/mockups.git).\n * knitro-mockup-build, Use mockup KNITRO (BUILD_MOCKUPS_VERSION=master) from downloaded source (BUILD_MOCKUPS_GIT_REPO=https://github.com/casadi/mockups.git).\n * gurobi-mockup-build, Use mockup GUROBI (BUILD_MOCKUPS_VERSION=master) from downloaded source (BUILD_MOCKUPS_GIT_REPO=https://github.com/casadi/mockups.git).\n * worhp-mockup-build, Use mockup WORHP (BUILD_MOCKUPS_VERSION=master) from downloaded source (BUILD_MOCKUPS_GIT_REPO=https://github.com/casadi/mockups.git).\n * hsl-mockup-build, Use mockup WORHP (BUILD_MOCKUPS_VERSION=master) from downloaded source (BUILD_MOCKUPS_GIT_REPO=https://github.com/casadi/mockups.git).\n * madnlp-mockup-build, Use mockup MadNLP (BUILD_MOCKUPS_VERSION=master) from downloaded source (BUILD_MOCKUPS_GIT_REPO=https://github.com/casadi/mockups.git).\n * alpaqa-sourcebuild, Build Alpaqa (BUILD_ALPAQA_VERSION=develop) from downloaded source (BUILD_ALPAQA_GIT_REPO=https://github.com/jgillis/alpaqa).\n * highs-sourcebuild, Build HiGHS (BUILD_HIGHS_VERSION=v1.7.2) from downloaded source (BUILD_HIGHS_GIT_REPO=https://github.com/ERGO-Code/HiGHS).\n * daqp-sourcebuild, Build DAQP (BUILD_DAQP_VERSION=master) from downloaded source (BUILD_DAQP_GIT_REPO=https://github.com/jgillis/daqp.git).\n * proxqp-sourcebuild, Build PROXQP (BUILD_PROXQP_VERSION=v0.3.2) from downloaded source (BUILD_PROXQP_GIT_REPO=https://github.com/Simple-Robotics/proxsuite.git).\n * osqp-sourcebuild, Build OSQP (BUILD_OSQP_VERSION=v0.6.3) from downloaded source (BUILD_OSQP_GIT_REPO=https://github.com/osqp/osqp.git).\n * superscs-sourcebuild, Build SuperSCS (BUILD_SUPERSCS_VERSION=4d2d1bd03ed4cf93e684a880b233760ce34ca69c) from downloaded source (BUILD_SUPERSCS_GIT_REPO=https://github.com/jgillis/scs.git).\n * sleqp-sourcebuild, Build SLEQP (BUILD_SLEQP_VERSION=patch-1) from downloaded source (BUILD_SLEQP_GIT_REPO=https://github.com/jgillis/sleqp.git).\n * bonmin-sourcebuild, Build BONMIN (BUILD_BONMIN_VERSION=releases/1.8.9) from downloaded source (BUILD_BONMIN_GIT_REPO=https://github.com/coin-or/Bonmin.git).\n * ipopt-sourcebuild, Build IPOPT (BUILD_IPOPT_VERSION=3.14.11.mod) from downloaded source (BUILD_IPOPT_GIT_REPO=https://github.com/jgillis/Ipopt-1.git).\n * cbc-sourcebuild, Build CBC (BUILD_CBC_VERSION=releases/2.10.11) from downloaded source.\n * clp-sourcebuild, Build CLP (BUILD_CLP_VERSION=releases/1.17.9) from downloaded source (BUILD_CLP_GIT_REPO=https://github.com/coin-or/Clp.git).\n * mumps-sourcebuild, Build MUMPS (BUILD_MUMPS_TP_VERSION=releases/3.0.2) from downloaded source (BUILD_MUMPS_TP_GIT_REPO=https://github.com/coin-or-tools/ThirdParty-Mumps.git).\n * spral-sourcebuild, Build SPRAL (BUILD_SPRAL_VERSION=d385d2c9e858366d257cafaaf05760ffa6543e26) from downloaded source (BUILD_SPRAL_GIT_REPO=https://github.com/ralna/spral.git).\n * metis-sourcebuild, Build METIS (BUILD_METIS_TP_VERSION=releases/2.0.0) from downloaded source.\n * trlib-sourcebuild, Build TRLIB (BUILD_TRLIB_VERSION=c7632b8b14152e78bc21721a3bd1a2432586b824) from downloaded source (BUILD_TRLIB_GIT_REPO=https://github.com/jgillis/trlib.git).\n * lapack-sourcebuild, Download and install OpenBLAS for LAPACK+BLAS\n * eigen3-sourcebuild, Build Eigen (BUILD_EIGEN3_VERSION=3.4.0) from downloaded source (BUILD_EIGEN3_GIT_REPO=https://gitlab.com/libeigen/eigen.git).\n * simde-sourcebuild, Build Simde (BUILD_SIMDE_VERSION=v0.7.2) from downloaded source (BUILD_SIMDE_GIT_REPO=https://github.com/simd-everywhere/simde.git).\n * gurobi-interface, Interface to the (mixed-integer) QP solver GUROBI\n * knitro-interface, Interface to the NLP solver KNITRO.\n * madnlp-interface, Interface to the NLP solver MadNLP.\n * snopt-interface, Interface to the NLP solver KNITRO.\n * worhp-interface, Interface to the NLP solver Worhp (requires gfortran, gomp).\n * lapack-interface, Interface to LAPACK.\n * mumps-interface, Interface to MUMPS.\n * spral-interface, Interface to SPRAL.\n * coinutils-sourcebuild, Build COINUTILS (BUILD_COINUTILS_VERSION=releases/2.11.10) from downloaded source.\n * osi-sourcebuild, Build OSI (BUILD_OSI_VERSION=releases/0.108.9) from downloaded source.\n * clp-interface, Interface to the LP solver CLP.\n * cgl-sourcebuild, Build CGL (BUILD_CGL_VERSION=releases/0.60.8) from downloaded source.\n * cbc-interface, Interface to the LP solver CBC.\n * ipopt-interface, Interface to the NLP solver Ipopt.\n * bonmin-interface, Interface to the MINLP framework Bonmin.\n * highs-interface, Interface to the MILP / QP solver HiGHS.\n * daqp-interface, Interface to the MILP / QP solver HiGHS.\n * sleqp-interface, Interface to the NLP solver SLEQP.\n * alpaqa-interface, Interface to the NLP solver Alpaqa.\n * proxqp-interface, Interface to QP solver PROXQP.\n * ampl-interface, Interface to the AMPL solver library.\n" // NOLINT(whitespace/line_length)
35
35
  #define CASADI_BUILD_TYPE "Release" // NOLINT(whitespace/line_length)
36
36
  #define CASADI_COMPILER_ID "GNU" // NOLINT(whitespace/line_length)
37
37
  #define CASADI_COMPILER "/opt/rh/devtoolset-10/root/usr/bin/g++" // NOLINT(whitespace/line_length)
38
- #define CASADI_COMPILER_FLAGS " -pthread -DUSE_CXX11 -DHAVE_MKSTEMPS -DCASADI_WITH_THREAD -DWITH_DEEPBIND -DCASADI_MAJOR_VERSION=3 -DCASADI_MINOR_VERSION=6 -DCASADI_PATCH_VERSION=4 -DCASADI_IS_RELEASE=1 -DCASADI_VERSION=31 -D_USE_MATH_DEFINES -D_SCL_SECURE_NO_WARNINGS -DWITH_DL -DWITH_DEPRECATED_FEATURES -DCASADI_DEFAULT_COMPILER_PLUGIN=shell" // NOLINT(whitespace/line_length)
39
- #define CASADI_MODULES "casadi;casadi_linsol_lapacklu;casadi_linsol_lapackqr;casadi_sundials_common;casadi_integrator_cvodes;casadi_integrator_idas;casadi_rootfinder_kinsol;casadi_nlpsol_sleqp;casadi_nlpsol_ipopt;casadi_nlpsol_bonmin;casadi_conic_qpoases;casadi_nlpsol_knitro;casadi_conic_clp;casadi_conic_cbc;casadi_linsol_csparse;casadi_linsol_csparsecholesky;casadi_conic_highs;casadi_linsol_ma27;casadi_linsol_mumps;casadi_conic_gurobi;casadi_nlpsol_worhp;casadi_nlpsol_snopt;casadi_xmlfile_tinyxml;casadi_nlpsol_blocksqp;casadi_conic_superscs;casadi_nlpsol_ampl;casadi_conic_proxqp;casadi_conic_osqp;casadi_nlpsol_alpaqa;casadi_conic_nlpsol;casadi_conic_qrqp;casadi_conic_ipqp;casadi_nlpsol_qrsqp;casadi_importer_shell;casadi_integrator_rk;casadi_integrator_collocation;casadi_interpolant_linear;casadi_interpolant_bspline;casadi_linsol_symbolicqr;casadi_linsol_qr;casadi_linsol_ldl;casadi_linsol_tridiag;casadi_linsol_lsqr;casadi_nlpsol_sqpmethod;casadi_nlpsol_feasiblesqpmethod;casadi_nlpsol_scpgen;casadi_rootfinder_newton;casadi_rootfinder_fast_newton;casadi_rootfinder_nlpsol" // NOLINT(whitespace/line_length)
40
- #define CASADI_PLUGINS "Linsol::lapacklu;Linsol::lapackqr;Integrator::cvodes;Integrator::idas;Rootfinder::kinsol;Nlpsol::sleqp;Nlpsol::ipopt;Nlpsol::bonmin;Conic::qpoases;Nlpsol::knitro;Conic::clp;Conic::cbc;Linsol::csparse;Linsol::csparsecholesky;Conic::highs;Linsol::ma27;Linsol::mumps;Conic::gurobi;Nlpsol::worhp;Nlpsol::snopt;XmlFile::tinyxml;Nlpsol::blocksqp;Conic::superscs;Nlpsol::ampl;Conic::proxqp;Conic::osqp;Nlpsol::alpaqa;Conic::nlpsol;Conic::qrqp;Conic::ipqp;Nlpsol::qrsqp;Importer::shell;Integrator::rk;Integrator::collocation;Interpolant::linear;Interpolant::bspline;Linsol::symbolicqr;Linsol::qr;Linsol::ldl;Linsol::tridiag;Linsol::lsqr;Nlpsol::sqpmethod;Nlpsol::feasiblesqpmethod;Nlpsol::scpgen;Rootfinder::newton;Rootfinder::fast_newton;Rootfinder::nlpsol" // NOLINT(whitespace/line_length)
38
+ #define CASADI_COMPILER_FLAGS " -pthread -DUSE_CXX11 -DHAVE_MKSTEMPS -DCASADI_WITH_THREAD -DWITH_DEEPBIND -DCASADI_MAJOR_VERSION=3 -DCASADI_MINOR_VERSION=6 -DCASADI_PATCH_VERSION=6 -DCASADI_IS_RELEASE=1 -DCASADI_VERSION=31 -D_USE_MATH_DEFINES -D_SCL_SECURE_NO_WARNINGS -DWITH_DL -DWITH_DEPRECATED_FEATURES -DCASADI_DEFAULT_COMPILER_PLUGIN=shell" // NOLINT(whitespace/line_length)
39
+ #define CASADI_MODULES "casadi;casadi_linsol_lapacklu;casadi_linsol_lapackqr;casadi_sundials_common;casadi_integrator_cvodes;casadi_integrator_idas;casadi_rootfinder_kinsol;casadi_nlpsol_sleqp;casadi_nlpsol_ipopt;casadi_nlpsol_madnlp;casadi_nlpsol_bonmin;casadi_conic_qpoases;casadi_nlpsol_knitro;casadi_conic_clp;casadi_conic_cbc;casadi_linsol_csparse;casadi_linsol_csparsecholesky;casadi_conic_highs;casadi_conic_daqp;casadi_linsol_ma27;casadi_linsol_mumps;casadi_conic_gurobi;casadi_nlpsol_worhp;casadi_nlpsol_snopt;casadi_xmlfile_tinyxml;casadi_nlpsol_blocksqp;casadi_conic_superscs;casadi_nlpsol_ampl;casadi_conic_proxqp;casadi_conic_osqp;casadi_nlpsol_alpaqa;casadi_conic_nlpsol;casadi_conic_qrqp;casadi_conic_ipqp;casadi_nlpsol_qrsqp;casadi_importer_shell;casadi_integrator_rk;casadi_integrator_collocation;casadi_interpolant_linear;casadi_interpolant_bspline;casadi_linsol_symbolicqr;casadi_linsol_qr;casadi_linsol_ldl;casadi_linsol_tridiag;casadi_linsol_lsqr;casadi_nlpsol_sqpmethod;casadi_nlpsol_feasiblesqpmethod;casadi_nlpsol_scpgen;casadi_rootfinder_newton;casadi_rootfinder_fast_newton;casadi_rootfinder_nlpsol" // NOLINT(whitespace/line_length)
40
+ #define CASADI_PLUGINS "Linsol::lapacklu;Linsol::lapackqr;Integrator::cvodes;Integrator::idas;Rootfinder::kinsol;Nlpsol::sleqp;Nlpsol::ipopt;Nlpsol::madnlp;Nlpsol::bonmin;Conic::qpoases;Nlpsol::knitro;Conic::clp;Conic::cbc;Linsol::csparse;Linsol::csparsecholesky;Conic::highs;Conic::daqp;Linsol::ma27;Linsol::mumps;Conic::gurobi;Nlpsol::worhp;Nlpsol::snopt;XmlFile::tinyxml;Nlpsol::blocksqp;Conic::superscs;Nlpsol::ampl;Conic::proxqp;Conic::osqp;Nlpsol::alpaqa;Conic::nlpsol;Conic::qrqp;Conic::ipqp;Nlpsol::qrsqp;Importer::shell;Integrator::rk;Integrator::collocation;Interpolant::linear;Interpolant::bspline;Linsol::symbolicqr;Linsol::qr;Linsol::ldl;Linsol::tridiag;Linsol::lsqr;Nlpsol::sqpmethod;Nlpsol::feasiblesqpmethod;Nlpsol::scpgen;Rootfinder::newton;Rootfinder::fast_newton;Rootfinder::nlpsol" // NOLINT(whitespace/line_length)
41
41
  #define CASADI_INSTALL_PREFIX "/usr/local" // NOLINT(whitespace/line_length)
42
42
  #define CASADI_SHARED_LIBRARY_PREFIX "lib" // NOLINT(whitespace/line_length)
43
43
  #define CASADI_SHARED_LIBRARY_SUFFIX ".so" // NOLINT(whitespace/line_length)
@@ -135,6 +135,7 @@ namespace casadi {
135
135
  /** \brief Function pointer types for the C API
136
136
 
137
137
  \identifier{7j} */
138
+ typedef int (*config_t)(int, const char**);
138
139
  typedef void (*signal_t)(void);
139
140
  typedef casadi_int (*getint_t)(void);
140
141
  typedef double (*default_t)(casadi_int i);
@@ -144,6 +144,12 @@ private:
144
144
  template<typename T>
145
145
  std::vector<T> vector_slice(const std::vector<T> &v, const std::vector<casadi_int> &i);
146
146
 
147
+ /** \brief Return all but the first element of a vector
148
+
149
+ \identifier{27y} */
150
+ template<typename T>
151
+ std::vector<T> vector_tail(const std::vector<T> &v);
152
+
147
153
  /** \brief Reverse a list
148
154
 
149
155
  \identifier{1la} */
@@ -526,6 +532,13 @@ namespace casadi {
526
532
  return ret;
527
533
  }
528
534
 
535
+ template<typename T>
536
+ std::vector<T> vector_tail(const std::vector<T> &v) {
537
+ std::vector<T> ret;
538
+ ret.insert(ret.begin(), v.begin()+1, v.end());
539
+ return ret;
540
+ }
541
+
529
542
  template<typename T>
530
543
  std::vector<T> reverse(const std::vector<T> &v) {
531
544
  std::vector<T> ret(v.size());
@@ -57,9 +57,10 @@ namespace casadi {
57
57
  SOLVER_RET_UNKNOWN,
58
58
  SOLVER_RET_LIMITED, // Out of time
59
59
  SOLVER_RET_NAN,
60
- SOLVER_RET_INFEASIBLE
60
+ SOLVER_RET_INFEASIBLE,
61
+ SOLVER_RET_EXCEPTION
61
62
  };
62
- }
63
+ } // namespace casadi
63
64
 
64
65
 
65
66
  #endif // CASADI_TYPES_HPP
@@ -103,6 +103,16 @@ namespace casadi {
103
103
  \identifier{ry} */
104
104
  casadi_int get_constant(const std::vector<casadi_int>& v, bool allow_adding=false);
105
105
 
106
+ /** \brief Get or add a char constant
107
+
108
+ \identifier{27l} */
109
+ casadi_int get_constant(const std::vector<char>& v, bool allow_adding=false);
110
+
111
+ /** \brief Get or add a vector<string> constant
112
+
113
+ \identifier{27z} */
114
+ casadi_int get_constant(const std::vector<std::string>& v, bool allow_adding=false);
115
+
106
116
  /** \brief Represent an array constant; adding it when new
107
117
 
108
118
  \identifier{rz} */
@@ -128,6 +138,16 @@ namespace casadi {
128
138
  \identifier{s1} */
129
139
  std::string constant(const std::vector<double>& v);
130
140
 
141
+ /** \brief Represent an array constant; adding it when new
142
+
143
+ \identifier{27m} */
144
+ std::string constant(const std::vector<char>& v);
145
+
146
+ /** \brief Represent an array constant; adding it when new
147
+
148
+ \identifier{280} */
149
+ std::string constant(const std::vector<std::string>& v);
150
+
131
151
  /** \brief Allocate file scope double read-only memory
132
152
 
133
153
  \identifier{s2} */
@@ -143,6 +163,10 @@ namespace casadi {
143
163
  \identifier{s4} */
144
164
  void define_rom_integer(const void* id, casadi_int size);
145
165
 
166
+ /** \brief Setup a callback
167
+
168
+ \identifier{27s} */
169
+ void setup_callback(const std::string& s, const Function& f);
146
170
  /** \brief Access file scope integer read-only memory
147
171
 
148
172
  \identifier{s5} */
@@ -153,7 +177,7 @@ namespace casadi {
153
177
  \identifier{s6} */
154
178
  std::string operator()(const Function& f, const std::string& arg,
155
179
  const std::string& res, const std::string& iw,
156
- const std::string& w);
180
+ const std::string& w, const std::string& failure_ret="1");
157
181
 
158
182
  /** \brief Print a string to buffer
159
183
 
@@ -232,6 +256,8 @@ namespace casadi {
232
256
  \identifier{sk} */
233
257
  std::string initializer(const std::vector<double>& v);
234
258
  std::string initializer(const std::vector<casadi_int>& v);
259
+ std::string initializer(const std::vector<char>& v);
260
+ std::string initializer(const std::vector<std::string>& v);
235
261
 
236
262
  /** \brief Sanitize source files for codegen
237
263
 
@@ -603,7 +629,12 @@ namespace casadi {
603
629
  AUX_MMIN,
604
630
  AUX_MMAX,
605
631
  AUX_LOGSUMEXP,
606
- AUX_SPARSITY
632
+ AUX_SPARSITY,
633
+ AUX_BFGS,
634
+ AUX_ORACLE_CALLBACK,
635
+ AUX_OCP_BLOCK,
636
+ AUX_ORACLE,
637
+ AUX_SCALED_COPY
607
638
  };
608
639
 
609
640
  /** \brief Add a built-in auxiliary function
@@ -634,12 +665,24 @@ namespace casadi {
634
665
  void print_vector(std::ostream &s, const std::string& name,
635
666
  const std::vector<casadi_int>& v);
636
667
 
668
+ /** \brief Print char vector to a c file
669
+
670
+ \identifier{27n} */
671
+ void print_vector(std::ostream &s, const std::string& name,
672
+ const std::vector<char>& v);
673
+
637
674
  /** \brief Print real vector to a c file
638
675
 
639
676
  \identifier{ts} */
640
677
  void print_vector(std::ostream &s, const std::string& name,
641
678
  const std::vector<double>& v);
642
679
 
680
+ /** \brief Print string vector to a c file
681
+
682
+ \identifier{281} */
683
+ void print_vector(std::ostream &s, const std::string& name,
684
+ const std::vector<std::string>& v);
685
+
643
686
  /** \brief Create a copy operation
644
687
 
645
688
  \identifier{tt} */
@@ -810,6 +853,9 @@ namespace casadi {
810
853
  bool with_sfunction;
811
854
  std::vector<std::string> added_sfunctions;
812
855
 
856
+ // Unroll arguments?
857
+ bool unroll_args;
858
+
813
859
  // Verbose codegen?
814
860
  bool verbose;
815
861
 
@@ -874,6 +920,8 @@ namespace casadi {
874
920
  std::multimap<Auxiliary, std::vector<std::string>> added_auxiliaries_;
875
921
  std::multimap<size_t, size_t> added_double_constants_;
876
922
  std::multimap<size_t, size_t> added_integer_constants_;
923
+ std::multimap<size_t, size_t> added_char_constants_;
924
+ std::multimap<size_t, size_t> added_string_constants_;
877
925
  std::map<std::string, std::pair<std::string, std::string> > local_variables_;
878
926
  std::map<std::string, std::string> local_default_;
879
927
  std::map<const void *, casadi_int> file_scope_double_;
@@ -888,9 +936,14 @@ namespace casadi {
888
936
  };
889
937
  std::vector<FunctionMeta> added_functions_;
890
938
 
939
+ // Counters for creating unique identifiers
940
+ std::map<std::string, std::map<FunctionInternal*, casadi_int> > added_wrappers_;
941
+
891
942
  // Constants
892
943
  std::vector<std::vector<double> > double_constants_;
893
944
  std::vector<std::vector<casadi_int> > integer_constants_;
945
+ std::vector<std::vector<char> > char_constants_;
946
+ std::vector<std::vector<std::string> > string_constants_;
894
947
 
895
948
  // Does any function need thread-local memory?
896
949
  bool needs_mem_;
@@ -898,6 +951,10 @@ namespace casadi {
898
951
  // Hash a vector
899
952
  static size_t hash(const std::vector<double>& v);
900
953
  static size_t hash(const std::vector<casadi_int>& v);
954
+ static size_t hash(const std::vector<char>& v);
955
+ static size_t hash(const std::vector<std::string>& v);
956
+
957
+ std::string wrapper(const Function& base, const std::string& name);
901
958
 
902
959
  // Compare two vectors
903
960
  template<typename T>
@@ -65,5 +65,6 @@
65
65
  #include "xml_file.hpp"
66
66
  #include "optistack.hpp"
67
67
  #include "serializer.hpp"
68
+ #include "tools.hpp"
68
69
 
69
70
  #endif // CASADI_CORE_HPP
@@ -170,7 +170,7 @@ class GenericExpression : public GenericExpressionCommon {
170
170
  ///@}
171
171
 
172
172
  ///@{
173
- /** \brief Logical greater or equal to: (x,y) -> x <= y
173
+ /** \brief Logical greater or equal to: (x,y) -> x >= y
174
174
 
175
175
  \identifier{ou} */
176
176
  static ExType ge(const ExType &x, const ExType &y) {
@@ -56,7 +56,11 @@ namespace casadi {
56
56
  OT_FUNCTION,
57
57
  OT_FUNCTIONVECTOR,
58
58
  OT_VOIDPTR,
59
- OT_UNKNOWN};
59
+ OT_UNKNOWN,
60
+ OT_STRINGVECTORVECTOR,
61
+ OT_DICTVECTOR,
62
+ OT_VECTORVECTOR,
63
+ OT_VECTOR};
60
64
  #endif // SWIG
61
65
 
62
66
  /** \brief Generic data type, can hold different types such as bool, casadi_int, std::string etc.
@@ -93,10 +97,14 @@ namespace casadi {
93
97
  GenericType(const std::vector<double>& dv);
94
98
  GenericType(const std::vector< std::vector<double> >& dv);
95
99
  GenericType(const std::vector<std::string>& sv);
100
+ GenericType(const std::vector<std::vector<std::string> >& sv);
96
101
  GenericType(const char s[]);
97
102
  GenericType(const Function& f);
98
103
  GenericType(const std::vector<Function>& f);
99
104
  GenericType(const Dict& dict);
105
+ GenericType(const std::vector<Dict>& dictv);
106
+ GenericType(const std::vector<std::vector<GenericType> >& gvv);
107
+ GenericType(const std::vector<GenericType>& gv);
100
108
  GenericType(void* ptr);
101
109
 
102
110
  /// Public class name
@@ -140,9 +148,13 @@ namespace casadi {
140
148
  return to_double_vector_vector();
141
149
  }
142
150
  operator std::vector<std::string>() const { return to_string_vector();}
151
+ operator std::vector<std::vector<std::string> >() const { return to_string_vector_vector();}
143
152
  operator const Function&() const { return as_function();}
144
153
  operator const std::vector<Function>&() const { return as_function_vector();}
145
154
  operator const Dict&() const { return as_dict();}
155
+ operator const std::vector<Dict>&() const { return as_dict_vector();}
156
+ operator const std::vector<std::vector<GenericType> >&() const { return as_vector_vector();}
157
+ operator const std::vector<GenericType>&() const { return as_vector();}
146
158
  ///@}
147
159
 
148
160
  bool can_cast_to(TypeID other) const;
@@ -169,7 +181,11 @@ namespace casadi {
169
181
  bool is_double_vector_vector() const;
170
182
  bool is_bool_vector() const;
171
183
  bool is_string_vector() const;
184
+ bool is_string_vector_vector() const;
172
185
  bool is_dict() const;
186
+ bool is_dict_vector() const;
187
+ bool is_vector_vector() const;
188
+ bool is_vector() const;
173
189
  bool is_function() const;
174
190
  bool is_function_vector() const;
175
191
  bool is_void_pointer() const;
@@ -189,7 +205,11 @@ namespace casadi {
189
205
  const std::vector<double>& as_double_vector() const;
190
206
  const std::vector< std::vector<double> >& as_double_vector_vector() const;
191
207
  const std::vector<std::string>& as_string_vector() const;
208
+ const std::vector<std::vector<std::string> >& as_string_vector_vector() const;
192
209
  const Dict& as_dict() const;
210
+ const std::vector<Dict>& as_dict_vector() const;
211
+ const std::vector<std::vector< GenericType> >& as_vector_vector() const;
212
+ const std::vector<GenericType>& as_vector() const;
193
213
  const Function& as_function() const;
194
214
  const std::vector<Function>& as_function_vector() const;
195
215
  void* const & as_void_pointer() const;
@@ -207,7 +227,11 @@ namespace casadi {
207
227
  std::vector<double> to_double_vector() const;
208
228
  std::vector< std::vector<double> > to_double_vector_vector() const;
209
229
  std::vector<std::string> to_string_vector() const;
230
+ std::vector<std::vector<std::string> > to_string_vector_vector() const;
210
231
  Dict to_dict() const;
232
+ std::vector<Dict> to_dict_vector() const;
233
+ std::vector<GenericType> to_vector() const;
234
+ std::vector< std::vector< GenericType> > to_vector_vector() const;
211
235
  Function to_function() const;
212
236
  std::vector<Function> to_function_vector() const;
213
237
  void* to_void_pointer() const;
@@ -70,6 +70,8 @@ namespace casadi {
70
70
 
71
71
  static casadi_int start_index;
72
72
 
73
+ static bool julia_initialized;
74
+
73
75
  #endif //SWIG
74
76
  // Setter and getter for simplification_on_the_fly
75
77
  static void setSimplificationOnTheFly(bool flag) { simplification_on_the_fly = flag; }
@@ -1050,15 +1050,30 @@ namespace casadi {
1050
1050
 
1051
1051
  /** \brief Check if symbolic (Dense)
1052
1052
 
1053
+ Check if an expression is a pure symbol.
1054
+ Pure means that no operations should happen on the symbol
1055
+ (not even vec, transpose, index, concatenation, ...)
1056
+ By consequence, a slice of a vector-shaped MX symbol is not a symbol.
1057
+ However, the SX type is really a container format with scalar entries.
1058
+ Therefore, a slice of a vector-shaped SX symbol is still a symbol.
1059
+
1053
1060
  Sparse matrices invariable return false
1054
1061
 
1062
+ \seealso is_valid_input
1063
+
1055
1064
  \identifier{19r} */
1056
1065
  bool is_symbolic() const;
1057
1066
 
1058
1067
  /** \brief Check if matrix can be used to define function inputs.
1059
1068
 
1069
+
1070
+ is_valid_input is more forgiving than is_symbolic.
1071
+ Some compositions are allowed: vec, vertcat.
1072
+
1060
1073
  Sparse matrices can return true if all non-zero elements are symbolic
1061
1074
 
1075
+ \seealso is_symbolic
1076
+
1062
1077
  \identifier{19s} */
1063
1078
  bool is_valid_input() const;
1064
1079