casadi 3.7.2__cp314-none-win_amd64.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 (2398) hide show
  1. casadi/__init__.py +92 -0
  2. casadi/_casadi.pyd +0 -0
  3. casadi/blasfeo.lib +0 -0
  4. casadi/casadi-cli.exe +0 -0
  5. casadi/casadi.lib +0 -0
  6. casadi/casadi.py +54468 -0
  7. casadi/cbc.exe +0 -0
  8. casadi/clp.exe +0 -0
  9. casadi/cmake/alpaqa/alpaqaConfig.cmake +24 -0
  10. casadi/cmake/alpaqa/alpaqaConfigVersion.cmake +67 -0
  11. casadi/cmake/alpaqa/alpaqaTargets-release.cmake +19 -0
  12. casadi/cmake/alpaqa/alpaqaTargets.cmake +108 -0
  13. casadi/cmake/casadi-config-version.cmake +11 -0
  14. casadi/cmake/casadi-config.cmake +8 -0
  15. casadi/cmake/casadi-targets-release.cmake +19 -0
  16. casadi/cmake/casadi-targets.cmake +94 -0
  17. casadi/cmake/ghc_filesystem/ghc_filesystem-config-version.cmake +76 -0
  18. casadi/cmake/ghc_filesystem/ghc_filesystem-config.cmake +30 -0
  19. casadi/cmake/ghc_filesystem/ghc_filesystem-targets.cmake +99 -0
  20. casadi/cmake/highs/highs-config.cmake +17 -0
  21. casadi/cmake/highs/highs-targets-release.cmake +28 -0
  22. casadi/cmake/highs/highs-targets.cmake +105 -0
  23. casadi/cmake/libzip/libzip-config-version.cmake +48 -0
  24. casadi/cmake/libzip/libzip-config.cmake +69 -0
  25. casadi/cmake/libzip/libzip-targets-release.cmake +19 -0
  26. casadi/cmake/libzip/libzip-targets.cmake +99 -0
  27. casadi/cmake/libzip/modules/FindMbedTLS.cmake +141 -0
  28. casadi/cmake/libzip/modules/FindNettle.cmake +141 -0
  29. casadi/cmake/libzip/modules/Findzstd.cmake +186 -0
  30. casadi/cmake/osqp/osqp-config.cmake +1 -0
  31. casadi/cmake/osqp/osqp-targets-release.cmake +29 -0
  32. casadi/cmake/osqp/osqp-targets.cmake +101 -0
  33. casadi/cmake/proxsuite/find-external/Simde/FindSimde.cmake +39 -0
  34. casadi/cmake/proxsuite/proxsuiteConfig.cmake +177 -0
  35. casadi/cmake/proxsuite/proxsuiteConfigVersion.cmake +67 -0
  36. casadi/cmake/proxsuite/proxsuiteTargets.cmake +107 -0
  37. casadi/cmake/qdldl/qdldl-config.cmake +1 -0
  38. casadi/cmake/qdldl/qdldl-targets-release.cmake +29 -0
  39. casadi/cmake/qdldl/qdldl-targets.cmake +101 -0
  40. casadi/cmake/sleqp/sleqp-config-version.cmake +67 -0
  41. casadi/cmake/sleqp/sleqp-config.cmake +1 -0
  42. casadi/cmake/sleqp/sleqp-targets-release.cmake +20 -0
  43. casadi/cmake/sleqp/sleqp-targets.cmake +94 -0
  44. casadi/cmake/trlib/trlib-config-release.cmake +19 -0
  45. casadi/cmake/trlib/trlib-config-version.cmake +59 -0
  46. casadi/cmake/trlib/trlib-config.cmake +99 -0
  47. casadi/daqp.lib +0 -0
  48. casadi/fatrop.lib +0 -0
  49. casadi/highs.exe +0 -0
  50. casadi/highs.lib +0 -0
  51. casadi/hpipm.lib +0 -0
  52. casadi/include/alpaqa/accelerators/anderson.hpp +133 -0
  53. casadi/include/alpaqa/accelerators/internal/anderson-helpers.hpp +92 -0
  54. casadi/include/alpaqa/accelerators/internal/limited-memory-qr.hpp +295 -0
  55. casadi/include/alpaqa/accelerators/lbfgs.hpp +244 -0
  56. casadi/include/alpaqa/accelerators/steihaugcg.hpp +143 -0
  57. casadi/include/alpaqa/alpaqa.hpp +3 -0
  58. casadi/include/alpaqa/casadi/CasADiControlProblem.hpp +185 -0
  59. casadi/include/alpaqa/casadi/CasADiFunctionWrapper.hpp +104 -0
  60. casadi/include/alpaqa/casadi/CasADiProblem.hpp +102 -0
  61. casadi/include/alpaqa/casadi-loader-export.hpp +15 -0
  62. casadi/include/alpaqa/casadi-ocp-loader-export.hpp +15 -0
  63. casadi/include/alpaqa/config/config.hpp +165 -0
  64. casadi/include/alpaqa/dl/dl-problem.h +476 -0
  65. casadi/include/alpaqa/dl/dl-problem.hpp +301 -0
  66. casadi/include/alpaqa/export.h +42 -0
  67. casadi/include/alpaqa/export.hpp +30 -0
  68. casadi/include/alpaqa/implementation/accelerators/lbfgs.tpp +240 -0
  69. casadi/include/alpaqa/implementation/casadi/CasADiControlProblem.tpp +594 -0
  70. casadi/include/alpaqa/implementation/casadi/CasADiLoader-util.hpp +50 -0
  71. casadi/include/alpaqa/implementation/casadi/CasADiProblem.tpp +425 -0
  72. casadi/include/alpaqa/implementation/inner/directions/panoc/structured-lbfgs.tpp +164 -0
  73. casadi/include/alpaqa/implementation/inner/panoc-helpers.tpp +389 -0
  74. casadi/include/alpaqa/implementation/inner/panoc-ocp.tpp +798 -0
  75. casadi/include/alpaqa/implementation/inner/panoc.tpp +448 -0
  76. casadi/include/alpaqa/implementation/inner/pantr.tpp +474 -0
  77. casadi/include/alpaqa/implementation/inner/zerofpr.tpp +482 -0
  78. casadi/include/alpaqa/implementation/outer/alm.tpp +228 -0
  79. casadi/include/alpaqa/implementation/outer/internal/alm-helpers.tpp +80 -0
  80. casadi/include/alpaqa/implementation/params/params.tpp +158 -0
  81. casadi/include/alpaqa/implementation/problem/ocproblem.tpp +56 -0
  82. casadi/include/alpaqa/implementation/problem/type-erased-problem.tpp +211 -0
  83. casadi/include/alpaqa/implementation/util/io/csv.tpp +120 -0
  84. casadi/include/alpaqa/implementation/util/print.tpp +151 -0
  85. casadi/include/alpaqa/inner/directions/panoc/anderson.hpp +98 -0
  86. casadi/include/alpaqa/inner/directions/panoc/lbfgs.hpp +94 -0
  87. casadi/include/alpaqa/inner/directions/panoc/structured-lbfgs.hpp +146 -0
  88. casadi/include/alpaqa/inner/directions/panoc/structured-newton.hpp +264 -0
  89. casadi/include/alpaqa/inner/directions/panoc-direction-update.hpp +96 -0
  90. casadi/include/alpaqa/inner/directions/panoc-ocp/lqr.hpp +181 -0
  91. casadi/include/alpaqa/inner/directions/panoc-ocp/ocp-vars.hpp +492 -0
  92. casadi/include/alpaqa/inner/directions/pantr/newton-tr.hpp +192 -0
  93. casadi/include/alpaqa/inner/directions/pantr/pantr-direction.hpp +99 -0
  94. casadi/include/alpaqa/inner/inner-solve-options.hpp +30 -0
  95. casadi/include/alpaqa/inner/internal/lipschitz.hpp +27 -0
  96. casadi/include/alpaqa/inner/internal/panoc-helpers.hpp +10 -0
  97. casadi/include/alpaqa/inner/internal/panoc-stop-crit.hpp +124 -0
  98. casadi/include/alpaqa/inner/internal/solverstatus.hpp +42 -0
  99. casadi/include/alpaqa/inner/panoc-ocp.hpp +302 -0
  100. casadi/include/alpaqa/inner/panoc.hpp +274 -0
  101. casadi/include/alpaqa/inner/pantr.hpp +284 -0
  102. casadi/include/alpaqa/inner/zerofpr.hpp +274 -0
  103. casadi/include/alpaqa/ipopt/ipopt-adapter.hpp +81 -0
  104. casadi/include/alpaqa/ipopt/ipopt-enums.hpp +35 -0
  105. casadi/include/alpaqa/lbfgsb/lbfgsb-adapter.hpp +111 -0
  106. casadi/include/alpaqa/newton-tr-pantr-alm.hpp +27 -0
  107. casadi/include/alpaqa/outer/alm.hpp +190 -0
  108. casadi/include/alpaqa/outer/internal/alm-helpers.hpp +10 -0
  109. casadi/include/alpaqa/panoc-alm.hpp +27 -0
  110. casadi/include/alpaqa/panoc-anderson-alm.hpp +27 -0
  111. casadi/include/alpaqa/params/params.hpp +60 -0
  112. casadi/include/alpaqa/problem/box-constr-problem.hpp +220 -0
  113. casadi/include/alpaqa/problem/box.hpp +82 -0
  114. casadi/include/alpaqa/problem/functional-problem.hpp +73 -0
  115. casadi/include/alpaqa/problem/kkt-error.hpp +43 -0
  116. casadi/include/alpaqa/problem/ocproblem-counters.hpp +116 -0
  117. casadi/include/alpaqa/problem/ocproblem.hpp +662 -0
  118. casadi/include/alpaqa/problem/problem-counters.hpp +116 -0
  119. casadi/include/alpaqa/problem/problem-with-counters.hpp +141 -0
  120. casadi/include/alpaqa/problem/type-erased-problem.hpp +874 -0
  121. casadi/include/alpaqa/problem/unconstr-problem.hpp +37 -0
  122. casadi/include/alpaqa/structured-panoc-alm.hpp +27 -0
  123. casadi/include/alpaqa/structured-zerofpr-alm.hpp +27 -0
  124. casadi/include/alpaqa/util/alloc-check.hpp +23 -0
  125. casadi/include/alpaqa/util/atomic-stop-signal.hpp +24 -0
  126. casadi/include/alpaqa/util/check-dim.hpp +64 -0
  127. casadi/include/alpaqa/util/copyable_unique_ptr.hpp +32 -0
  128. casadi/include/alpaqa/util/demangled-typename.hpp +9 -0
  129. casadi/include/alpaqa/util/enumerate.hpp +70 -0
  130. casadi/include/alpaqa/util/float.hpp +25 -0
  131. casadi/include/alpaqa/util/index-set.hpp +97 -0
  132. casadi/include/alpaqa/util/io/csv.hpp +43 -0
  133. casadi/include/alpaqa/util/iter-adapter.hpp +68 -0
  134. casadi/include/alpaqa/util/max-history.hpp +47 -0
  135. casadi/include/alpaqa/util/noop-delete.hpp +15 -0
  136. casadi/include/alpaqa/util/not-implemented.hpp +12 -0
  137. casadi/include/alpaqa/util/print.hpp +78 -0
  138. casadi/include/alpaqa/util/quadmath/quadmath-print.hpp +20 -0
  139. casadi/include/alpaqa/util/quadmath/quadmath.hpp +137 -0
  140. casadi/include/alpaqa/util/required-method.hpp +29 -0
  141. casadi/include/alpaqa/util/ringbuffer.hpp +212 -0
  142. casadi/include/alpaqa/util/set-intersection.hpp +129 -0
  143. casadi/include/alpaqa/util/sparse-ops.hpp +164 -0
  144. casadi/include/alpaqa/util/timed.hpp +22 -0
  145. casadi/include/alpaqa/util/type-erasure.hpp +568 -0
  146. casadi/include/alpaqa/util/type-traits.hpp +58 -0
  147. casadi/include/alpaqa/zerofpr-alm.hpp +27 -0
  148. casadi/include/alpaqa/zerofpr-anderson-alm.hpp +27 -0
  149. casadi/include/alpaqa-version.h +8 -0
  150. casadi/include/blasfeo.h +52 -0
  151. casadi/include/blasfeo_block_size.h +447 -0
  152. casadi/include/blasfeo_common.h +274 -0
  153. casadi/include/blasfeo_d_aux.h +255 -0
  154. casadi/include/blasfeo_d_aux_ext_dep.h +145 -0
  155. casadi/include/blasfeo_d_aux_ext_dep_ref.h +84 -0
  156. casadi/include/blasfeo_d_aux_old.h +75 -0
  157. casadi/include/blasfeo_d_aux_ref.h +208 -0
  158. casadi/include/blasfeo_d_aux_test.h +226 -0
  159. casadi/include/blasfeo_d_blas.h +46 -0
  160. casadi/include/blasfeo_d_blas_api.h +281 -0
  161. casadi/include/blasfeo_d_blasfeo_api.h +364 -0
  162. casadi/include/blasfeo_d_blasfeo_api_ref.h +147 -0
  163. casadi/include/blasfeo_d_blasfeo_hp_api.h +84 -0
  164. casadi/include/blasfeo_d_blasfeo_ref_api.h +283 -0
  165. casadi/include/blasfeo_d_kernel.h +1321 -0
  166. casadi/include/blasfeo_i_aux_ext_dep.h +69 -0
  167. casadi/include/blasfeo_m_aux.h +57 -0
  168. casadi/include/blasfeo_memory.h +62 -0
  169. casadi/include/blasfeo_naming.h +77 -0
  170. casadi/include/blasfeo_processor_features.h +88 -0
  171. casadi/include/blasfeo_s_aux.h +168 -0
  172. casadi/include/blasfeo_s_aux_ext_dep.h +141 -0
  173. casadi/include/blasfeo_s_aux_ext_dep_ref.h +82 -0
  174. casadi/include/blasfeo_s_aux_old.h +64 -0
  175. casadi/include/blasfeo_s_aux_ref.h +147 -0
  176. casadi/include/blasfeo_s_aux_test.h +177 -0
  177. casadi/include/blasfeo_s_blas.h +46 -0
  178. casadi/include/blasfeo_s_blas_api.h +182 -0
  179. casadi/include/blasfeo_s_blasfeo_api.h +284 -0
  180. casadi/include/blasfeo_s_blasfeo_api_ref.h +135 -0
  181. casadi/include/blasfeo_s_blasfeo_ref_api.h +252 -0
  182. casadi/include/blasfeo_s_kernel.h +692 -0
  183. casadi/include/blasfeo_stdlib.h +62 -0
  184. casadi/include/blasfeo_target.h +73 -0
  185. casadi/include/blasfeo_timing.h +114 -0
  186. casadi/include/blasfeo_v_aux_ext_dep.h +83 -0
  187. casadi/include/casadi/casadi.hpp +31 -0
  188. casadi/include/casadi/casadi.i +4920 -0
  189. casadi/include/casadi/casadi_c.h +138 -0
  190. casadi/include/casadi/casadi_numpy.hpp +97 -0
  191. casadi/include/casadi/config.h +46 -0
  192. casadi/include/casadi/core/archiver.hpp +58 -0
  193. casadi/include/casadi/core/blazing_spline.hpp +47 -0
  194. casadi/include/casadi/core/calculus.hpp +1805 -0
  195. casadi/include/casadi/core/callback.hpp +235 -0
  196. casadi/include/casadi/core/casadi_common.hpp +355 -0
  197. casadi/include/casadi/core/casadi_enum.hpp +90 -0
  198. casadi/include/casadi/core/casadi_export.h +42 -0
  199. casadi/include/casadi/core/casadi_interrupt.hpp +83 -0
  200. casadi/include/casadi/core/casadi_limits.hpp +104 -0
  201. casadi/include/casadi/core/casadi_logger.hpp +134 -0
  202. casadi/include/casadi/core/casadi_meta.hpp +122 -0
  203. casadi/include/casadi/core/casadi_misc.hpp +1022 -0
  204. casadi/include/casadi/core/casadi_types.hpp +66 -0
  205. casadi/include/casadi/core/code_generator.hpp +1071 -0
  206. casadi/include/casadi/core/conic.hpp +213 -0
  207. casadi/include/casadi/core/core.hpp +75 -0
  208. casadi/include/casadi/core/dae_builder.hpp +885 -0
  209. casadi/include/casadi/core/dm.hpp +90 -0
  210. casadi/include/casadi/core/dm_fwd.hpp +39 -0
  211. casadi/include/casadi/core/dple.hpp +138 -0
  212. casadi/include/casadi/core/exception.hpp +167 -0
  213. casadi/include/casadi/core/expm.hpp +84 -0
  214. casadi/include/casadi/core/external.hpp +70 -0
  215. casadi/include/casadi/core/filesystem.hpp +58 -0
  216. casadi/include/casadi/core/fmu.hpp +270 -0
  217. casadi/include/casadi/core/function.hpp +1389 -0
  218. casadi/include/casadi/core/generic_expression.hpp +760 -0
  219. casadi/include/casadi/core/generic_matrix.hpp +1805 -0
  220. casadi/include/casadi/core/generic_shared.hpp +395 -0
  221. casadi/include/casadi/core/generic_shared_impl.hpp +218 -0
  222. casadi/include/casadi/core/generic_shared_internal.hpp +215 -0
  223. casadi/include/casadi/core/generic_type.hpp +314 -0
  224. casadi/include/casadi/core/global_options.hpp +107 -0
  225. casadi/include/casadi/core/im.hpp +52 -0
  226. casadi/include/casadi/core/im_fwd.hpp +35 -0
  227. casadi/include/casadi/core/importer.hpp +221 -0
  228. casadi/include/casadi/core/integration_tools.hpp +292 -0
  229. casadi/include/casadi/core/integrator.hpp +290 -0
  230. casadi/include/casadi/core/interpolant.hpp +163 -0
  231. casadi/include/casadi/core/linsol.hpp +171 -0
  232. casadi/include/casadi/core/matrix_decl.hpp +1423 -0
  233. casadi/include/casadi/core/matrix_fwd.hpp +37 -0
  234. casadi/include/casadi/core/mx.hpp +1014 -0
  235. casadi/include/casadi/core/nlp_builder.hpp +163 -0
  236. casadi/include/casadi/core/nlp_tools.hpp +124 -0
  237. casadi/include/casadi/core/nlpsol.hpp +234 -0
  238. casadi/include/casadi/core/nonzeros.hpp +111 -0
  239. casadi/include/casadi/core/options.hpp +122 -0
  240. casadi/include/casadi/core/optistack.hpp +704 -0
  241. casadi/include/casadi/core/polynomial.hpp +126 -0
  242. casadi/include/casadi/core/printable.hpp +81 -0
  243. casadi/include/casadi/core/resource.hpp +107 -0
  244. casadi/include/casadi/core/rootfinder.hpp +176 -0
  245. casadi/include/casadi/core/runtime/casadi_axpy.hpp +8 -0
  246. casadi/include/casadi/core/runtime/casadi_bfgs.hpp +49 -0
  247. casadi/include/casadi/core/runtime/casadi_bilin.hpp +42 -0
  248. casadi/include/casadi/core/runtime/casadi_blazing_1d_boor_eval.hpp +112 -0
  249. casadi/include/casadi/core/runtime/casadi_blazing_2d_boor_eval.hpp +311 -0
  250. casadi/include/casadi/core/runtime/casadi_blazing_3d_boor_eval.hpp +645 -0
  251. casadi/include/casadi/core/runtime/casadi_blazing_de_boor.hpp +101 -0
  252. casadi/include/casadi/core/runtime/casadi_bound_consistency.hpp +51 -0
  253. casadi/include/casadi/core/runtime/casadi_cache.hpp +59 -0
  254. casadi/include/casadi/core/runtime/casadi_clear.hpp +27 -0
  255. casadi/include/casadi/core/runtime/casadi_clip_max.hpp +33 -0
  256. casadi/include/casadi/core/runtime/casadi_clip_min.hpp +33 -0
  257. casadi/include/casadi/core/runtime/casadi_convexify.hpp +182 -0
  258. casadi/include/casadi/core/runtime/casadi_copy.hpp +31 -0
  259. casadi/include/casadi/core/runtime/casadi_cvx.hpp +463 -0
  260. casadi/include/casadi/core/runtime/casadi_de_boor.hpp +36 -0
  261. casadi/include/casadi/core/runtime/casadi_dense_lsqr.hpp +247 -0
  262. casadi/include/casadi/core/runtime/casadi_densify.hpp +48 -0
  263. casadi/include/casadi/core/runtime/casadi_dot.hpp +27 -0
  264. casadi/include/casadi/core/runtime/casadi_feasiblesqpmethod.hpp +208 -0
  265. casadi/include/casadi/core/runtime/casadi_file_slurp.hpp +32 -0
  266. casadi/include/casadi/core/runtime/casadi_fill.hpp +27 -0
  267. casadi/include/casadi/core/runtime/casadi_finite_diff.hpp +345 -0
  268. casadi/include/casadi/core/runtime/casadi_flip.hpp +33 -0
  269. casadi/include/casadi/core/runtime/casadi_getu.hpp +35 -0
  270. casadi/include/casadi/core/runtime/casadi_iamax.hpp +36 -0
  271. casadi/include/casadi/core/runtime/casadi_interpn.hpp +39 -0
  272. casadi/include/casadi/core/runtime/casadi_interpn_grad.hpp +72 -0
  273. casadi/include/casadi/core/runtime/casadi_interpn_interpolate.hpp +43 -0
  274. casadi/include/casadi/core/runtime/casadi_interpn_weights.hpp +39 -0
  275. casadi/include/casadi/core/runtime/casadi_ipqp.hpp +868 -0
  276. casadi/include/casadi/core/runtime/casadi_jac.hpp +186 -0
  277. casadi/include/casadi/core/runtime/casadi_kkt.hpp +67 -0
  278. casadi/include/casadi/core/runtime/casadi_kron.hpp +50 -0
  279. casadi/include/casadi/core/runtime/casadi_ldl.hpp +109 -0
  280. casadi/include/casadi/core/runtime/casadi_logsumexp.hpp +41 -0
  281. casadi/include/casadi/core/runtime/casadi_low.hpp +65 -0
  282. casadi/include/casadi/core/runtime/casadi_lsqr.hpp +247 -0
  283. casadi/include/casadi/core/runtime/casadi_masked_norm_inf.hpp +33 -0
  284. casadi/include/casadi/core/runtime/casadi_max_viol.hpp +37 -0
  285. casadi/include/casadi/core/runtime/casadi_mmax.hpp +28 -0
  286. casadi/include/casadi/core/runtime/casadi_mmin.hpp +29 -0
  287. casadi/include/casadi/core/runtime/casadi_mtimes.hpp +75 -0
  288. casadi/include/casadi/core/runtime/casadi_mv.hpp +46 -0
  289. casadi/include/casadi/core/runtime/casadi_mv_dense.hpp +39 -0
  290. casadi/include/casadi/core/runtime/casadi_nd_boor_dual_eval.hpp +127 -0
  291. casadi/include/casadi/core/runtime/casadi_nd_boor_eval.hpp +120 -0
  292. casadi/include/casadi/core/runtime/casadi_newton.hpp +66 -0
  293. casadi/include/casadi/core/runtime/casadi_nlp.hpp +295 -0
  294. casadi/include/casadi/core/runtime/casadi_norm_1.hpp +29 -0
  295. casadi/include/casadi/core/runtime/casadi_norm_2.hpp +24 -0
  296. casadi/include/casadi/core/runtime/casadi_norm_inf.hpp +28 -0
  297. casadi/include/casadi/core/runtime/casadi_norm_inf_mul.hpp +105 -0
  298. casadi/include/casadi/core/runtime/casadi_ocp_block.hpp +55 -0
  299. casadi/include/casadi/core/runtime/casadi_oracle.hpp +44 -0
  300. casadi/include/casadi/core/runtime/casadi_oracle_callback.hpp +39 -0
  301. casadi/include/casadi/core/runtime/casadi_polyval.hpp +29 -0
  302. casadi/include/casadi/core/runtime/casadi_print_canonical.hpp +55 -0
  303. casadi/include/casadi/core/runtime/casadi_print_scalar.hpp +25 -0
  304. casadi/include/casadi/core/runtime/casadi_print_vector.hpp +32 -0
  305. casadi/include/casadi/core/runtime/casadi_printme.hpp +26 -0
  306. casadi/include/casadi/core/runtime/casadi_project.hpp +39 -0
  307. casadi/include/casadi/core/runtime/casadi_qp.hpp +86 -0
  308. casadi/include/casadi/core/runtime/casadi_qr.hpp +272 -0
  309. casadi/include/casadi/core/runtime/casadi_qrqp.hpp +1239 -0
  310. casadi/include/casadi/core/runtime/casadi_rank1.hpp +40 -0
  311. casadi/include/casadi/core/runtime/casadi_regularize.hpp +73 -0
  312. casadi/include/casadi/core/runtime/casadi_runtime.hpp +318 -0
  313. casadi/include/casadi/core/runtime/casadi_scal.hpp +26 -0
  314. casadi/include/casadi/core/runtime/casadi_scaled_copy.hpp +31 -0
  315. casadi/include/casadi/core/runtime/casadi_sparsify.hpp +42 -0
  316. casadi/include/casadi/core/runtime/casadi_sparsity.hpp +24 -0
  317. casadi/include/casadi/core/runtime/casadi_sqpmethod.hpp +178 -0
  318. casadi/include/casadi/core/runtime/casadi_sum.hpp +31 -0
  319. casadi/include/casadi/core/runtime/casadi_sum_viol.hpp +37 -0
  320. casadi/include/casadi/core/runtime/casadi_swap.hpp +32 -0
  321. casadi/include/casadi/core/runtime/casadi_trans.hpp +35 -0
  322. casadi/include/casadi/core/runtime/casadi_tri_project.hpp +37 -0
  323. casadi/include/casadi/core/runtime/casadi_trilsolve.hpp +81 -0
  324. casadi/include/casadi/core/runtime/casadi_triusolve.hpp +81 -0
  325. casadi/include/casadi/core/runtime/casadi_vector_fmax.hpp +28 -0
  326. casadi/include/casadi/core/runtime/casadi_vector_fmin.hpp +28 -0
  327. casadi/include/casadi/core/runtime/casadi_vfmax.hpp +28 -0
  328. casadi/include/casadi/core/runtime/casadi_vfmin.hpp +28 -0
  329. casadi/include/casadi/core/runtime/shared.hpp +261 -0
  330. casadi/include/casadi/core/serializer.hpp +264 -0
  331. casadi/include/casadi/core/serializing_stream.hpp +336 -0
  332. casadi/include/casadi/core/shared_object.hpp +182 -0
  333. casadi/include/casadi/core/slice.hpp +149 -0
  334. casadi/include/casadi/core/sparsity.hpp +1507 -0
  335. casadi/include/casadi/core/sparsity_interface.hpp +763 -0
  336. casadi/include/casadi/core/submatrix.hpp +156 -0
  337. casadi/include/casadi/core/sx.hpp +244 -0
  338. casadi/include/casadi/core/sx_elem.hpp +376 -0
  339. casadi/include/casadi/core/sx_fwd.hpp +45 -0
  340. casadi/include/casadi/core/timing.hpp +98 -0
  341. casadi/include/casadi/core/tools.hpp +67 -0
  342. casadi/include/casadi/core/xml_file.hpp +93 -0
  343. casadi/include/casadi/core/xml_node.hpp +212 -0
  344. casadi/include/casadi/doc.i +62244 -0
  345. casadi/include/casadi/doc_merged.i +38499 -0
  346. casadi/include/casadi/mem.h +311 -0
  347. casadi/include/casadi/valgrind-casadi.supp +649 -0
  348. casadi/include/casadi/valgrind-python.supp +3886 -0
  349. casadi/include/coin/BonArraysHelpers.hpp +52 -0
  350. casadi/include/coin/BonAuxInfos.hpp +110 -0
  351. casadi/include/coin/BonBabInfos.hpp +57 -0
  352. casadi/include/coin/BonBabSetupBase.hpp +386 -0
  353. casadi/include/coin/BonBonminSetup.hpp +95 -0
  354. casadi/include/coin/BonBranchingTQP.hpp +197 -0
  355. casadi/include/coin/BonCbc.hpp +127 -0
  356. casadi/include/coin/BonCbcLpStrategy.hpp +45 -0
  357. casadi/include/coin/BonCbcNlpStrategy.hpp +98 -0
  358. casadi/include/coin/BonCbcNode.hpp +133 -0
  359. casadi/include/coin/BonChooseVariable.hpp +345 -0
  360. casadi/include/coin/BonCurvBranchingSolver.hpp +77 -0
  361. casadi/include/coin/BonCutStrengthener.hpp +244 -0
  362. casadi/include/coin/BonDiver.hpp +424 -0
  363. casadi/include/coin/BonDummyHeuristic.hpp +53 -0
  364. casadi/include/coin/BonDummyPump.hpp +43 -0
  365. casadi/include/coin/BonEcpCuts.hpp +97 -0
  366. casadi/include/coin/BonExitCodes.hpp +12 -0
  367. casadi/include/coin/BonFixAndSolveHeuristic.hpp +43 -0
  368. casadi/include/coin/BonGuessHeuristic.hpp +46 -0
  369. casadi/include/coin/BonHeuristicDive.hpp +88 -0
  370. casadi/include/coin/BonHeuristicDiveFractional.hpp +67 -0
  371. casadi/include/coin/BonHeuristicDiveMIP.hpp +83 -0
  372. casadi/include/coin/BonHeuristicDiveMIPFractional.hpp +67 -0
  373. casadi/include/coin/BonHeuristicDiveMIPVectorLength.hpp +74 -0
  374. casadi/include/coin/BonHeuristicDiveVectorLength.hpp +74 -0
  375. casadi/include/coin/BonHeuristicFPump.hpp +111 -0
  376. casadi/include/coin/BonHeuristicLocalBranching.hpp +59 -0
  377. casadi/include/coin/BonHeuristicRINS.hpp +55 -0
  378. casadi/include/coin/BonIpoptInteriorWarmStarter.hpp +103 -0
  379. casadi/include/coin/BonIpoptSolver.hpp +188 -0
  380. casadi/include/coin/BonIpoptWarmStart.hpp +148 -0
  381. casadi/include/coin/BonLinearCutsGenerator.hpp +75 -0
  382. casadi/include/coin/BonLocalSolverBasedHeuristic.hpp +102 -0
  383. casadi/include/coin/BonLpBranchingSolver.hpp +80 -0
  384. casadi/include/coin/BonMilpRounding.hpp +74 -0
  385. casadi/include/coin/BonOACutGenerator2.hpp +56 -0
  386. casadi/include/coin/BonOAMessages.hpp +44 -0
  387. casadi/include/coin/BonOaDecBase.hpp +297 -0
  388. casadi/include/coin/BonOaFeasChecker.hpp +73 -0
  389. casadi/include/coin/BonOaNlpOptim.hpp +116 -0
  390. casadi/include/coin/BonOsiTMINLPInterface.hpp +1342 -0
  391. casadi/include/coin/BonOuterApprox.hpp +123 -0
  392. casadi/include/coin/BonPseudoCosts.hpp +91 -0
  393. casadi/include/coin/BonPumpForMinlp.hpp +45 -0
  394. casadi/include/coin/BonQuadCut.hpp +217 -0
  395. casadi/include/coin/BonQuadRow.hpp +122 -0
  396. casadi/include/coin/BonRegisteredOptions.hpp +225 -0
  397. casadi/include/coin/BonStrongBranchingSolver.hpp +69 -0
  398. casadi/include/coin/BonSubMipSolver.hpp +143 -0
  399. casadi/include/coin/BonTMINLP.hpp +420 -0
  400. casadi/include/coin/BonTMINLP2OsiLP.hpp +164 -0
  401. casadi/include/coin/BonTMINLP2Quad.hpp +191 -0
  402. casadi/include/coin/BonTMINLP2TNLP.hpp +509 -0
  403. casadi/include/coin/BonTMINLPLinObj.hpp +216 -0
  404. casadi/include/coin/BonTMatrix.hpp +167 -0
  405. casadi/include/coin/BonTNLP2FPNLP.hpp +264 -0
  406. casadi/include/coin/BonTNLPSolver.hpp +241 -0
  407. casadi/include/coin/BonTypes.hpp +95 -0
  408. casadi/include/coin/BonminConfig.h +19 -0
  409. casadi/include/coin/CbcBranchActual.hpp +26 -0
  410. casadi/include/coin/CbcBranchAllDifferent.hpp +61 -0
  411. casadi/include/coin/CbcBranchBase.hpp +79 -0
  412. casadi/include/coin/CbcBranchCut.hpp +182 -0
  413. casadi/include/coin/CbcBranchDecision.hpp +135 -0
  414. casadi/include/coin/CbcBranchDefaultDecision.hpp +101 -0
  415. casadi/include/coin/CbcBranchDynamic.hpp +210 -0
  416. casadi/include/coin/CbcBranchLotsize.hpp +249 -0
  417. casadi/include/coin/CbcBranchToFixLots.hpp +94 -0
  418. casadi/include/coin/CbcBranchingObject.hpp +245 -0
  419. casadi/include/coin/CbcClique.hpp +309 -0
  420. casadi/include/coin/CbcCompare.hpp +46 -0
  421. casadi/include/coin/CbcCompareActual.hpp +16 -0
  422. casadi/include/coin/CbcCompareBase.hpp +155 -0
  423. casadi/include/coin/CbcCompareDefault.hpp +129 -0
  424. casadi/include/coin/CbcCompareDepth.hpp +48 -0
  425. casadi/include/coin/CbcCompareEstimate.hpp +48 -0
  426. casadi/include/coin/CbcCompareObjective.hpp +50 -0
  427. casadi/include/coin/CbcConfig.h +18 -0
  428. casadi/include/coin/CbcConsequence.hpp +50 -0
  429. casadi/include/coin/CbcCountRowCut.hpp +176 -0
  430. casadi/include/coin/CbcCutGenerator.hpp +550 -0
  431. casadi/include/coin/CbcCutModifier.hpp +59 -0
  432. casadi/include/coin/CbcCutSubsetModifier.hpp +69 -0
  433. casadi/include/coin/CbcDummyBranchingObject.hpp +83 -0
  434. casadi/include/coin/CbcEventHandler.hpp +250 -0
  435. casadi/include/coin/CbcFathom.hpp +136 -0
  436. casadi/include/coin/CbcFathomDynamicProgramming.hpp +177 -0
  437. casadi/include/coin/CbcFeasibilityBase.hpp +60 -0
  438. casadi/include/coin/CbcFixVariable.hpp +68 -0
  439. casadi/include/coin/CbcFollowOn.hpp +207 -0
  440. casadi/include/coin/CbcFullNodeInfo.hpp +171 -0
  441. casadi/include/coin/CbcGeneral.hpp +60 -0
  442. casadi/include/coin/CbcGeneralDepth.hpp +289 -0
  443. casadi/include/coin/CbcHeuristic.hpp +735 -0
  444. casadi/include/coin/CbcHeuristicDINS.hpp +98 -0
  445. casadi/include/coin/CbcHeuristicDW.hpp +374 -0
  446. casadi/include/coin/CbcHeuristicDive.hpp +198 -0
  447. casadi/include/coin/CbcHeuristicDiveCoefficient.hpp +52 -0
  448. casadi/include/coin/CbcHeuristicDiveFractional.hpp +52 -0
  449. casadi/include/coin/CbcHeuristicDiveGuided.hpp +55 -0
  450. casadi/include/coin/CbcHeuristicDiveLineSearch.hpp +52 -0
  451. casadi/include/coin/CbcHeuristicDivePseudoCost.hpp +60 -0
  452. casadi/include/coin/CbcHeuristicDiveVectorLength.hpp +52 -0
  453. casadi/include/coin/CbcHeuristicFPump.hpp +375 -0
  454. casadi/include/coin/CbcHeuristicGreedy.hpp +289 -0
  455. casadi/include/coin/CbcHeuristicLocal.hpp +276 -0
  456. casadi/include/coin/CbcHeuristicPivotAndFix.hpp +58 -0
  457. casadi/include/coin/CbcHeuristicRENS.hpp +79 -0
  458. casadi/include/coin/CbcHeuristicRINS.hpp +106 -0
  459. casadi/include/coin/CbcHeuristicRandRound.hpp +58 -0
  460. casadi/include/coin/CbcHeuristicVND.hpp +95 -0
  461. casadi/include/coin/CbcLinked.hpp +1443 -0
  462. casadi/include/coin/CbcMessage.hpp +94 -0
  463. casadi/include/coin/CbcMipStartIO.hpp +29 -0
  464. casadi/include/coin/CbcModel.hpp +3296 -0
  465. casadi/include/coin/CbcNWay.hpp +171 -0
  466. casadi/include/coin/CbcNode.hpp +380 -0
  467. casadi/include/coin/CbcNodeInfo.hpp +377 -0
  468. casadi/include/coin/CbcObject.hpp +288 -0
  469. casadi/include/coin/CbcObjectUpdateData.hpp +63 -0
  470. casadi/include/coin/CbcOrClpParam.cpp +4321 -0
  471. casadi/include/coin/CbcOrClpParam.hpp +585 -0
  472. casadi/include/coin/CbcParam.hpp +338 -0
  473. casadi/include/coin/CbcPartialNodeInfo.hpp +116 -0
  474. casadi/include/coin/CbcSOS.hpp +290 -0
  475. casadi/include/coin/CbcSimpleInteger.hpp +299 -0
  476. casadi/include/coin/CbcSimpleIntegerDynamicPseudoCost.hpp +619 -0
  477. casadi/include/coin/CbcSimpleIntegerPseudoCost.hpp +122 -0
  478. casadi/include/coin/CbcSolver.hpp +460 -0
  479. casadi/include/coin/CbcStrategy.hpp +269 -0
  480. casadi/include/coin/CbcSubProblem.hpp +84 -0
  481. casadi/include/coin/CbcTree.hpp +493 -0
  482. casadi/include/coin/CbcTreeLocal.hpp +393 -0
  483. casadi/include/coin/Cbc_C_Interface.h +904 -0
  484. casadi/include/coin/Cgl012cut.hpp +464 -0
  485. casadi/include/coin/CglAllDifferent.hpp +115 -0
  486. casadi/include/coin/CglClique.hpp +312 -0
  487. casadi/include/coin/CglConfig.h +19 -0
  488. casadi/include/coin/CglCutGenerator.hpp +133 -0
  489. casadi/include/coin/CglDuplicateRow.hpp +189 -0
  490. casadi/include/coin/CglFlowCover.hpp +371 -0
  491. casadi/include/coin/CglGMI.hpp +364 -0
  492. casadi/include/coin/CglGMIParam.hpp +313 -0
  493. casadi/include/coin/CglGomory.hpp +204 -0
  494. casadi/include/coin/CglKnapsackCover.hpp +310 -0
  495. casadi/include/coin/CglLandP.hpp +306 -0
  496. casadi/include/coin/CglLandPValidator.hpp +130 -0
  497. casadi/include/coin/CglLiftAndProject.hpp +104 -0
  498. casadi/include/coin/CglMessage.hpp +49 -0
  499. casadi/include/coin/CglMixedIntegerRounding.hpp +429 -0
  500. casadi/include/coin/CglMixedIntegerRounding2.hpp +427 -0
  501. casadi/include/coin/CglOddHole.hpp +160 -0
  502. casadi/include/coin/CglParam.hpp +93 -0
  503. casadi/include/coin/CglPreProcess.hpp +600 -0
  504. casadi/include/coin/CglProbing.hpp +543 -0
  505. casadi/include/coin/CglRedSplit.hpp +448 -0
  506. casadi/include/coin/CglRedSplit2.hpp +494 -0
  507. casadi/include/coin/CglRedSplit2Param.hpp +495 -0
  508. casadi/include/coin/CglRedSplitParam.hpp +272 -0
  509. casadi/include/coin/CglResidualCapacity.hpp +240 -0
  510. casadi/include/coin/CglSimpleRounding.hpp +174 -0
  511. casadi/include/coin/CglStored.hpp +140 -0
  512. casadi/include/coin/CglTreeInfo.hpp +216 -0
  513. casadi/include/coin/CglTwomir.hpp +562 -0
  514. casadi/include/coin/CglZeroHalf.hpp +133 -0
  515. casadi/include/coin/ClpAmplObjective.hpp +113 -0
  516. casadi/include/coin/ClpCholeskyBase.hpp +321 -0
  517. casadi/include/coin/ClpCholeskyDense.hpp +157 -0
  518. casadi/include/coin/ClpCholeskyMumps.hpp +65 -0
  519. casadi/include/coin/ClpCholeskyPardiso.hpp +67 -0
  520. casadi/include/coin/ClpConfig.h +17 -0
  521. casadi/include/coin/ClpConstraint.hpp +129 -0
  522. casadi/include/coin/ClpConstraintAmpl.hpp +109 -0
  523. casadi/include/coin/ClpConstraintLinear.hpp +113 -0
  524. casadi/include/coin/ClpConstraintQuadratic.hpp +123 -0
  525. casadi/include/coin/ClpDualRowDantzig.hpp +72 -0
  526. casadi/include/coin/ClpDualRowPivot.hpp +136 -0
  527. casadi/include/coin/ClpDualRowSteepest.hpp +160 -0
  528. casadi/include/coin/ClpDummyMatrix.hpp +186 -0
  529. casadi/include/coin/ClpDynamicExampleMatrix.hpp +199 -0
  530. casadi/include/coin/ClpDynamicMatrix.hpp +420 -0
  531. casadi/include/coin/ClpEventHandler.hpp +193 -0
  532. casadi/include/coin/ClpFactorization.hpp +556 -0
  533. casadi/include/coin/ClpGubDynamicMatrix.hpp +270 -0
  534. casadi/include/coin/ClpGubMatrix.hpp +373 -0
  535. casadi/include/coin/ClpInterior.hpp +622 -0
  536. casadi/include/coin/ClpLinearObjective.hpp +104 -0
  537. casadi/include/coin/ClpMatrixBase.hpp +561 -0
  538. casadi/include/coin/ClpMessage.hpp +131 -0
  539. casadi/include/coin/ClpModel.hpp +1442 -0
  540. casadi/include/coin/ClpNetworkMatrix.hpp +235 -0
  541. casadi/include/coin/ClpNode.hpp +364 -0
  542. casadi/include/coin/ClpNonLinearCost.hpp +432 -0
  543. casadi/include/coin/ClpObjective.hpp +142 -0
  544. casadi/include/coin/ClpPEDualRowDantzig.hpp +84 -0
  545. casadi/include/coin/ClpPEDualRowSteepest.hpp +100 -0
  546. casadi/include/coin/ClpPEPrimalColumnDantzig.hpp +71 -0
  547. casadi/include/coin/ClpPEPrimalColumnSteepest.hpp +107 -0
  548. casadi/include/coin/ClpPESimplex.hpp +231 -0
  549. casadi/include/coin/ClpPackedMatrix.hpp +778 -0
  550. casadi/include/coin/ClpParameters.hpp +132 -0
  551. casadi/include/coin/ClpPdcoBase.hpp +110 -0
  552. casadi/include/coin/ClpPlusMinusOneMatrix.hpp +565 -0
  553. casadi/include/coin/ClpPresolve.hpp +379 -0
  554. casadi/include/coin/ClpPrimalColumnDantzig.hpp +74 -0
  555. casadi/include/coin/ClpPrimalColumnPivot.hpp +163 -0
  556. casadi/include/coin/ClpPrimalColumnSteepest.hpp +281 -0
  557. casadi/include/coin/ClpQuadraticObjective.hpp +161 -0
  558. casadi/include/coin/ClpSimplex.hpp +2137 -0
  559. casadi/include/coin/ClpSimplexDual.hpp +304 -0
  560. casadi/include/coin/ClpSimplexNonlinear.hpp +117 -0
  561. casadi/include/coin/ClpSimplexOther.hpp +282 -0
  562. casadi/include/coin/ClpSimplexPrimal.hpp +244 -0
  563. casadi/include/coin/ClpSolve.hpp +505 -0
  564. casadi/include/coin/Clp_C_Interface.h +554 -0
  565. casadi/include/coin/CoinAlloc.hpp +179 -0
  566. casadi/include/coin/CoinBuild.hpp +159 -0
  567. casadi/include/coin/CoinDenseFactorization.hpp +452 -0
  568. casadi/include/coin/CoinDenseVector.hpp +401 -0
  569. casadi/include/coin/CoinDistance.hpp +51 -0
  570. casadi/include/coin/CoinError.hpp +274 -0
  571. casadi/include/coin/CoinFactorization.hpp +2178 -0
  572. casadi/include/coin/CoinFileIO.hpp +185 -0
  573. casadi/include/coin/CoinFinite.hpp +37 -0
  574. casadi/include/coin/CoinFloatEqual.hpp +204 -0
  575. casadi/include/coin/CoinHelperFunctions.hpp +1270 -0
  576. casadi/include/coin/CoinIndexedVector.hpp +1437 -0
  577. casadi/include/coin/CoinLpIO.hpp +836 -0
  578. casadi/include/coin/CoinMessage.hpp +95 -0
  579. casadi/include/coin/CoinMessageHandler.hpp +717 -0
  580. casadi/include/coin/CoinModel.hpp +1214 -0
  581. casadi/include/coin/CoinModelUseful.hpp +518 -0
  582. casadi/include/coin/CoinMpsIO.hpp +1142 -0
  583. casadi/include/coin/CoinOslFactorization.hpp +287 -0
  584. casadi/include/coin/CoinPackedMatrix.hpp +956 -0
  585. casadi/include/coin/CoinPackedVector.hpp +670 -0
  586. casadi/include/coin/CoinPackedVectorBase.hpp +274 -0
  587. casadi/include/coin/CoinParam.hpp +644 -0
  588. casadi/include/coin/CoinPragma.hpp +29 -0
  589. casadi/include/coin/CoinPresolveDoubleton.hpp +76 -0
  590. casadi/include/coin/CoinPresolveDual.hpp +84 -0
  591. casadi/include/coin/CoinPresolveDupcol.hpp +259 -0
  592. casadi/include/coin/CoinPresolveEmpty.hpp +120 -0
  593. casadi/include/coin/CoinPresolveFixed.hpp +185 -0
  594. casadi/include/coin/CoinPresolveForcing.hpp +69 -0
  595. casadi/include/coin/CoinPresolveImpliedFree.hpp +66 -0
  596. casadi/include/coin/CoinPresolveIsolated.hpp +59 -0
  597. casadi/include/coin/CoinPresolveMatrix.hpp +1996 -0
  598. casadi/include/coin/CoinPresolveMonitor.hpp +105 -0
  599. casadi/include/coin/CoinPresolvePsdebug.hpp +169 -0
  600. casadi/include/coin/CoinPresolveSingleton.hpp +115 -0
  601. casadi/include/coin/CoinPresolveSubst.hpp +103 -0
  602. casadi/include/coin/CoinPresolveTighten.hpp +58 -0
  603. casadi/include/coin/CoinPresolveTripleton.hpp +69 -0
  604. casadi/include/coin/CoinPresolveUseless.hpp +63 -0
  605. casadi/include/coin/CoinPresolveZeros.hpp +65 -0
  606. casadi/include/coin/CoinRational.hpp +43 -0
  607. casadi/include/coin/CoinSearchTree.hpp +523 -0
  608. casadi/include/coin/CoinShallowPackedVector.hpp +149 -0
  609. casadi/include/coin/CoinSignal.hpp +127 -0
  610. casadi/include/coin/CoinSimpFactorization.hpp +432 -0
  611. casadi/include/coin/CoinSmartPtr.hpp +548 -0
  612. casadi/include/coin/CoinSnapshot.hpp +572 -0
  613. casadi/include/coin/CoinSort.hpp +753 -0
  614. casadi/include/coin/CoinStructuredModel.hpp +270 -0
  615. casadi/include/coin/CoinTime.hpp +350 -0
  616. casadi/include/coin/CoinTypes.hpp +67 -0
  617. casadi/include/coin/CoinUtility.hpp +26 -0
  618. casadi/include/coin/CoinUtilsConfig.h +34 -0
  619. casadi/include/coin/CoinWarmStart.hpp +56 -0
  620. casadi/include/coin/CoinWarmStartBasis.hpp +468 -0
  621. casadi/include/coin/CoinWarmStartDual.hpp +180 -0
  622. casadi/include/coin/CoinWarmStartPrimalDual.hpp +233 -0
  623. casadi/include/coin/CoinWarmStartVector.hpp +523 -0
  624. casadi/include/coin/Coin_C_defines.h +149 -0
  625. casadi/include/coin/Idiot.hpp +327 -0
  626. casadi/include/coin/OsiAuxInfo.hpp +261 -0
  627. casadi/include/coin/OsiBranchingObject.hpp +1097 -0
  628. casadi/include/coin/OsiCbcSolverInterface.hpp +791 -0
  629. casadi/include/coin/OsiChooseVariable.hpp +645 -0
  630. casadi/include/coin/OsiClpSolverInterface.hpp +1604 -0
  631. casadi/include/coin/OsiColCut.hpp +322 -0
  632. casadi/include/coin/OsiCollections.hpp +34 -0
  633. casadi/include/coin/OsiConfig.h +19 -0
  634. casadi/include/coin/OsiCut.hpp +251 -0
  635. casadi/include/coin/OsiCuts.hpp +505 -0
  636. casadi/include/coin/OsiPresolve.hpp +272 -0
  637. casadi/include/coin/OsiRowCut.hpp +345 -0
  638. casadi/include/coin/OsiRowCutDebugger.hpp +190 -0
  639. casadi/include/coin/OsiSolverBranch.hpp +169 -0
  640. casadi/include/coin/OsiSolverInterface.hpp +2221 -0
  641. casadi/include/coin/OsiSolverParameters.hpp +144 -0
  642. casadi/include/coin/OsiUnitTests.hpp +390 -0
  643. casadi/include/coin-or/IpAlgBuilder.hpp +417 -0
  644. casadi/include/coin-or/IpAlgStrategy.hpp +201 -0
  645. casadi/include/coin-or/IpAlgTypes.hpp +64 -0
  646. casadi/include/coin-or/IpAugSystemSolver.hpp +212 -0
  647. casadi/include/coin-or/IpBlas.hpp +426 -0
  648. casadi/include/coin-or/IpCachedResults.hpp +897 -0
  649. casadi/include/coin-or/IpCompoundMatrix.hpp +423 -0
  650. casadi/include/coin-or/IpCompoundSymMatrix.hpp +348 -0
  651. casadi/include/coin-or/IpCompoundVector.hpp +395 -0
  652. casadi/include/coin-or/IpConvCheck.hpp +97 -0
  653. casadi/include/coin-or/IpDebug.hpp +167 -0
  654. casadi/include/coin-or/IpDenseVector.hpp +626 -0
  655. casadi/include/coin-or/IpDiagMatrix.hpp +158 -0
  656. casadi/include/coin-or/IpEqMultCalculator.hpp +76 -0
  657. casadi/include/coin-or/IpException.hpp +156 -0
  658. casadi/include/coin-or/IpExpansionMatrix.hpp +245 -0
  659. casadi/include/coin-or/IpGenTMatrix.hpp +290 -0
  660. casadi/include/coin-or/IpHessianUpdater.hpp +73 -0
  661. casadi/include/coin-or/IpIdentityMatrix.hpp +167 -0
  662. casadi/include/coin-or/IpIpoptAlg.hpp +257 -0
  663. casadi/include/coin-or/IpIpoptApplication.hpp +367 -0
  664. casadi/include/coin-or/IpIpoptCalculatedQuantities.hpp +1009 -0
  665. casadi/include/coin-or/IpIpoptData.hpp +966 -0
  666. casadi/include/coin-or/IpIpoptNLP.hpp +328 -0
  667. casadi/include/coin-or/IpIterateInitializer.hpp +68 -0
  668. casadi/include/coin-or/IpIteratesVector.hpp +840 -0
  669. casadi/include/coin-or/IpIterationOutput.hpp +78 -0
  670. casadi/include/coin-or/IpJournalist.hpp +573 -0
  671. casadi/include/coin-or/IpLapack.hpp +227 -0
  672. casadi/include/coin-or/IpLibraryLoader.hpp +76 -0
  673. casadi/include/coin-or/IpLineSearch.hpp +106 -0
  674. casadi/include/coin-or/IpLinearSolvers.h +46 -0
  675. casadi/include/coin-or/IpMatrix.hpp +434 -0
  676. casadi/include/coin-or/IpMuUpdate.hpp +77 -0
  677. casadi/include/coin-or/IpNLP.hpp +306 -0
  678. casadi/include/coin-or/IpNLPScaling.hpp +582 -0
  679. casadi/include/coin-or/IpObserver.hpp +422 -0
  680. casadi/include/coin-or/IpOptionsList.hpp +412 -0
  681. casadi/include/coin-or/IpOrigIpoptNLP.hpp +603 -0
  682. casadi/include/coin-or/IpPDSystemSolver.hpp +137 -0
  683. casadi/include/coin-or/IpReferenced.hpp +262 -0
  684. casadi/include/coin-or/IpRegOptions.hpp +1152 -0
  685. casadi/include/coin-or/IpReturnCodes.h +23 -0
  686. casadi/include/coin-or/IpReturnCodes.hpp +18 -0
  687. casadi/include/coin-or/IpReturnCodes.inc +71 -0
  688. casadi/include/coin-or/IpReturnCodes_inc.h +45 -0
  689. casadi/include/coin-or/IpScaledMatrix.hpp +291 -0
  690. casadi/include/coin-or/IpSearchDirCalculator.hpp +72 -0
  691. casadi/include/coin-or/IpSmartPtr.hpp +865 -0
  692. casadi/include/coin-or/IpSolveStatistics.hpp +210 -0
  693. casadi/include/coin-or/IpSparseSymLinearSolverInterface.hpp +260 -0
  694. casadi/include/coin-or/IpStdAugSystemSolver.cpp +555 -0
  695. casadi/include/coin-or/IpStdCInterface.h +428 -0
  696. casadi/include/coin-or/IpSumSymMatrix.hpp +186 -0
  697. casadi/include/coin-or/IpSymLinearSolver.hpp +141 -0
  698. casadi/include/coin-or/IpSymMatrix.hpp +167 -0
  699. casadi/include/coin-or/IpSymScaledMatrix.hpp +255 -0
  700. casadi/include/coin-or/IpSymTMatrix.hpp +275 -0
  701. casadi/include/coin-or/IpTNLP.hpp +820 -0
  702. casadi/include/coin-or/IpTNLPAdapter.hpp +648 -0
  703. casadi/include/coin-or/IpTNLPReducer.hpp +274 -0
  704. casadi/include/coin-or/IpTaggedObject.hpp +128 -0
  705. casadi/include/coin-or/IpTimedTask.hpp +218 -0
  706. casadi/include/coin-or/IpTimingStatistics.hpp +323 -0
  707. casadi/include/coin-or/IpTripletHelper.hpp +308 -0
  708. casadi/include/coin-or/IpTypes.h +81 -0
  709. casadi/include/coin-or/IpTypes.hpp +30 -0
  710. casadi/include/coin-or/IpUtils.hpp +166 -0
  711. casadi/include/coin-or/IpVector.hpp +892 -0
  712. casadi/include/coin-or/IpZeroSymMatrix.hpp +155 -0
  713. casadi/include/coin-or/IpoptConfig.h +45 -0
  714. casadi/include/coin-or/SensAlgorithm.hpp +114 -0
  715. casadi/include/coin-or/SensApplication.hpp +188 -0
  716. casadi/include/coin-or/SensBacksolver.hpp +36 -0
  717. casadi/include/coin-or/SensMeasurement.hpp +56 -0
  718. casadi/include/coin-or/SensPCalculator.hpp +137 -0
  719. casadi/include/coin-or/SensRegOp.hpp +21 -0
  720. casadi/include/coin-or/SensSchurData.hpp +182 -0
  721. casadi/include/coin-or/SensSchurDriver.hpp +118 -0
  722. casadi/include/coin-or/SensSimpleBacksolver.hpp +49 -0
  723. casadi/include/coin-or/SensStepCalc.hpp +85 -0
  724. casadi/include/coin-or/SensUtils.hpp +63 -0
  725. casadi/include/coin-or/metis/defs.h +161 -0
  726. casadi/include/coin-or/metis/macros.h +143 -0
  727. casadi/include/coin-or/metis/metis.h +37 -0
  728. casadi/include/coin-or/metis/proto.h +505 -0
  729. casadi/include/coin-or/metis/rename.h +418 -0
  730. casadi/include/coin-or/metis/struct.h +251 -0
  731. casadi/include/coin-or/mumps/dmumps_c.h +142 -0
  732. casadi/include/coin-or/mumps/mumps_c_types.h +72 -0
  733. casadi/include/coin-or/mumps/mumps_compat.h +27 -0
  734. casadi/include/coin-or/mumps/mumps_int_def.h +11 -0
  735. casadi/include/coin-or/mumps/mumps_mpi.h +67 -0
  736. casadi/include/d_blas.h +78 -0
  737. casadi/include/d_blas_64.h +73 -0
  738. casadi/include/daqp/api.h +46 -0
  739. casadi/include/daqp/auxiliary.h +29 -0
  740. casadi/include/daqp/bnb.h +32 -0
  741. casadi/include/daqp/codegen.h +18 -0
  742. casadi/include/daqp/constants.h +92 -0
  743. casadi/include/daqp/daqp.h +22 -0
  744. casadi/include/daqp/daqp_prox.h +18 -0
  745. casadi/include/daqp/factorization.h +18 -0
  746. casadi/include/daqp/types.h +161 -0
  747. casadi/include/daqp/utils.h +44 -0
  748. casadi/include/dlfcn.h +94 -0
  749. casadi/include/eigen3/Eigen/Cholesky +45 -0
  750. casadi/include/eigen3/Eigen/CholmodSupport +48 -0
  751. casadi/include/eigen3/Eigen/Core +384 -0
  752. casadi/include/eigen3/Eigen/Dense +7 -0
  753. casadi/include/eigen3/Eigen/Eigen +2 -0
  754. casadi/include/eigen3/Eigen/Eigenvalues +60 -0
  755. casadi/include/eigen3/Eigen/Geometry +59 -0
  756. casadi/include/eigen3/Eigen/Householder +29 -0
  757. casadi/include/eigen3/Eigen/IterativeLinearSolvers +48 -0
  758. casadi/include/eigen3/Eigen/Jacobi +32 -0
  759. casadi/include/eigen3/Eigen/KLUSupport +41 -0
  760. casadi/include/eigen3/Eigen/LU +47 -0
  761. casadi/include/eigen3/Eigen/MetisSupport +35 -0
  762. casadi/include/eigen3/Eigen/OrderingMethods +70 -0
  763. casadi/include/eigen3/Eigen/PaStiXSupport +49 -0
  764. casadi/include/eigen3/Eigen/PardisoSupport +35 -0
  765. casadi/include/eigen3/Eigen/QR +50 -0
  766. casadi/include/eigen3/Eigen/QtAlignedMalloc +39 -0
  767. casadi/include/eigen3/Eigen/SPQRSupport +34 -0
  768. casadi/include/eigen3/Eigen/SVD +50 -0
  769. casadi/include/eigen3/Eigen/Sparse +34 -0
  770. casadi/include/eigen3/Eigen/SparseCholesky +37 -0
  771. casadi/include/eigen3/Eigen/SparseCore +69 -0
  772. casadi/include/eigen3/Eigen/SparseLU +50 -0
  773. casadi/include/eigen3/Eigen/SparseQR +36 -0
  774. casadi/include/eigen3/Eigen/StdDeque +27 -0
  775. casadi/include/eigen3/Eigen/StdList +26 -0
  776. casadi/include/eigen3/Eigen/StdVector +27 -0
  777. casadi/include/eigen3/Eigen/SuperLUSupport +64 -0
  778. casadi/include/eigen3/Eigen/UmfPackSupport +40 -0
  779. casadi/include/eigen3/Eigen/src/Cholesky/LDLT.h +688 -0
  780. casadi/include/eigen3/Eigen/src/Cholesky/LLT.h +558 -0
  781. casadi/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
  782. casadi/include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
  783. casadi/include/eigen3/Eigen/src/Core/ArithmeticSequence.h +413 -0
  784. casadi/include/eigen3/Eigen/src/Core/Array.h +417 -0
  785. casadi/include/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
  786. casadi/include/eigen3/Eigen/src/Core/ArrayWrapper.h +209 -0
  787. casadi/include/eigen3/Eigen/src/Core/Assign.h +90 -0
  788. casadi/include/eigen3/Eigen/src/Core/AssignEvaluator.h +1010 -0
  789. casadi/include/eigen3/Eigen/src/Core/Assign_MKL.h +178 -0
  790. casadi/include/eigen3/Eigen/src/Core/BandMatrix.h +353 -0
  791. casadi/include/eigen3/Eigen/src/Core/Block.h +448 -0
  792. casadi/include/eigen3/Eigen/src/Core/BooleanRedux.h +162 -0
  793. casadi/include/eigen3/Eigen/src/Core/CommaInitializer.h +164 -0
  794. casadi/include/eigen3/Eigen/src/Core/ConditionEstimator.h +175 -0
  795. casadi/include/eigen3/Eigen/src/Core/CoreEvaluators.h +1741 -0
  796. casadi/include/eigen3/Eigen/src/Core/CoreIterators.h +132 -0
  797. casadi/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +183 -0
  798. casadi/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
  799. casadi/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +197 -0
  800. casadi/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +103 -0
  801. casadi/include/eigen3/Eigen/src/Core/CwiseUnaryView.h +132 -0
  802. casadi/include/eigen3/Eigen/src/Core/DenseBase.h +701 -0
  803. casadi/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +685 -0
  804. casadi/include/eigen3/Eigen/src/Core/DenseStorage.h +652 -0
  805. casadi/include/eigen3/Eigen/src/Core/Diagonal.h +258 -0
  806. casadi/include/eigen3/Eigen/src/Core/DiagonalMatrix.h +391 -0
  807. casadi/include/eigen3/Eigen/src/Core/DiagonalProduct.h +28 -0
  808. casadi/include/eigen3/Eigen/src/Core/Dot.h +318 -0
  809. casadi/include/eigen3/Eigen/src/Core/EigenBase.h +160 -0
  810. casadi/include/eigen3/Eigen/src/Core/ForceAlignedAccess.h +150 -0
  811. casadi/include/eigen3/Eigen/src/Core/Fuzzy.h +155 -0
  812. casadi/include/eigen3/Eigen/src/Core/GeneralProduct.h +465 -0
  813. casadi/include/eigen3/Eigen/src/Core/GenericPacketMath.h +1040 -0
  814. casadi/include/eigen3/Eigen/src/Core/GlobalFunctions.h +194 -0
  815. casadi/include/eigen3/Eigen/src/Core/IO.h +258 -0
  816. casadi/include/eigen3/Eigen/src/Core/IndexedView.h +237 -0
  817. casadi/include/eigen3/Eigen/src/Core/Inverse.h +117 -0
  818. casadi/include/eigen3/Eigen/src/Core/Map.h +171 -0
  819. casadi/include/eigen3/Eigen/src/Core/MapBase.h +310 -0
  820. casadi/include/eigen3/Eigen/src/Core/MathFunctions.h +2057 -0
  821. casadi/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +200 -0
  822. casadi/include/eigen3/Eigen/src/Core/Matrix.h +565 -0
  823. casadi/include/eigen3/Eigen/src/Core/MatrixBase.h +547 -0
  824. casadi/include/eigen3/Eigen/src/Core/NestByValue.h +85 -0
  825. casadi/include/eigen3/Eigen/src/Core/NoAlias.h +109 -0
  826. casadi/include/eigen3/Eigen/src/Core/NumTraits.h +335 -0
  827. casadi/include/eigen3/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
  828. casadi/include/eigen3/Eigen/src/Core/PermutationMatrix.h +605 -0
  829. casadi/include/eigen3/Eigen/src/Core/PlainObjectBase.h +1128 -0
  830. casadi/include/eigen3/Eigen/src/Core/Product.h +191 -0
  831. casadi/include/eigen3/Eigen/src/Core/ProductEvaluators.h +1179 -0
  832. casadi/include/eigen3/Eigen/src/Core/Random.h +218 -0
  833. casadi/include/eigen3/Eigen/src/Core/Redux.h +515 -0
  834. casadi/include/eigen3/Eigen/src/Core/Ref.h +381 -0
  835. casadi/include/eigen3/Eigen/src/Core/Replicate.h +142 -0
  836. casadi/include/eigen3/Eigen/src/Core/Reshaped.h +454 -0
  837. casadi/include/eigen3/Eigen/src/Core/ReturnByValue.h +119 -0
  838. casadi/include/eigen3/Eigen/src/Core/Reverse.h +217 -0
  839. casadi/include/eigen3/Eigen/src/Core/Select.h +164 -0
  840. casadi/include/eigen3/Eigen/src/Core/SelfAdjointView.h +365 -0
  841. casadi/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
  842. casadi/include/eigen3/Eigen/src/Core/Solve.h +188 -0
  843. casadi/include/eigen3/Eigen/src/Core/SolveTriangular.h +235 -0
  844. casadi/include/eigen3/Eigen/src/Core/SolverBase.h +168 -0
  845. casadi/include/eigen3/Eigen/src/Core/StableNorm.h +251 -0
  846. casadi/include/eigen3/Eigen/src/Core/StlIterators.h +463 -0
  847. casadi/include/eigen3/Eigen/src/Core/Stride.h +116 -0
  848. casadi/include/eigen3/Eigen/src/Core/Swap.h +68 -0
  849. casadi/include/eigen3/Eigen/src/Core/Transpose.h +464 -0
  850. casadi/include/eigen3/Eigen/src/Core/Transpositions.h +386 -0
  851. casadi/include/eigen3/Eigen/src/Core/TriangularMatrix.h +1001 -0
  852. casadi/include/eigen3/Eigen/src/Core/VectorBlock.h +96 -0
  853. casadi/include/eigen3/Eigen/src/Core/VectorwiseOp.h +784 -0
  854. casadi/include/eigen3/Eigen/src/Core/Visitor.h +381 -0
  855. casadi/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +372 -0
  856. casadi/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
  857. casadi/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
  858. casadi/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
  859. casadi/include/eigen3/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
  860. casadi/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
  861. casadi/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
  862. casadi/include/eigen3/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
  863. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
  864. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
  865. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
  866. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
  867. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
  868. casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
  869. casadi/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
  870. casadi/include/eigen3/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
  871. casadi/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
  872. casadi/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
  873. casadi/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
  874. casadi/include/eigen3/Eigen/src/Core/arch/Default/Half.h +942 -0
  875. casadi/include/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
  876. casadi/include/eigen3/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
  877. casadi/include/eigen3/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
  878. casadi/include/eigen3/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
  879. casadi/include/eigen3/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
  880. casadi/include/eigen3/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  881. casadi/include/eigen3/Eigen/src/Core/arch/MSA/Complex.h +648 -0
  882. casadi/include/eigen3/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
  883. casadi/include/eigen3/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
  884. casadi/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +584 -0
  885. casadi/include/eigen3/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
  886. casadi/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
  887. casadi/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
  888. casadi/include/eigen3/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
  889. casadi/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +351 -0
  890. casadi/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
  891. casadi/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
  892. casadi/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
  893. casadi/include/eigen3/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
  894. casadi/include/eigen3/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
  895. casadi/include/eigen3/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
  896. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
  897. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
  898. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
  899. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
  900. casadi/include/eigen3/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
  901. casadi/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
  902. casadi/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
  903. casadi/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
  904. casadi/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
  905. casadi/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
  906. casadi/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
  907. casadi/include/eigen3/Eigen/src/Core/functors/StlFunctors.h +166 -0
  908. casadi/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
  909. casadi/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
  910. casadi/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
  911. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
  912. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
  913. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
  914. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
  915. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
  916. casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
  917. casadi/include/eigen3/Eigen/src/Core/products/Parallelizer.h +180 -0
  918. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
  919. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
  920. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
  921. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
  922. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
  923. casadi/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
  924. casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
  925. casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
  926. casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
  927. casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
  928. casadi/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
  929. casadi/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
  930. casadi/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
  931. casadi/include/eigen3/Eigen/src/Core/util/BlasUtil.h +583 -0
  932. casadi/include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
  933. casadi/include/eigen3/Eigen/src/Core/util/Constants.h +563 -0
  934. casadi/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
  935. casadi/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
  936. casadi/include/eigen3/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
  937. casadi/include/eigen3/Eigen/src/Core/util/IntegralConstant.h +272 -0
  938. casadi/include/eigen3/Eigen/src/Core/util/MKL_support.h +137 -0
  939. casadi/include/eigen3/Eigen/src/Core/util/Macros.h +1464 -0
  940. casadi/include/eigen3/Eigen/src/Core/util/Memory.h +1163 -0
  941. casadi/include/eigen3/Eigen/src/Core/util/Meta.h +812 -0
  942. casadi/include/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
  943. casadi/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
  944. casadi/include/eigen3/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  945. casadi/include/eigen3/Eigen/src/Core/util/StaticAssert.h +221 -0
  946. casadi/include/eigen3/Eigen/src/Core/util/SymbolicIndex.h +293 -0
  947. casadi/include/eigen3/Eigen/src/Core/util/XprHelper.h +856 -0
  948. casadi/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
  949. casadi/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
  950. casadi/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
  951. casadi/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
  952. casadi/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
  953. casadi/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
  954. casadi/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
  955. casadi/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
  956. casadi/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +657 -0
  957. casadi/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +558 -0
  958. casadi/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
  959. casadi/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
  960. casadi/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
  961. casadi/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
  962. casadi/include/eigen3/Eigen/src/Geometry/AlignedBox.h +486 -0
  963. casadi/include/eigen3/Eigen/src/Geometry/AngleAxis.h +247 -0
  964. casadi/include/eigen3/Eigen/src/Geometry/EulerAngles.h +114 -0
  965. casadi/include/eigen3/Eigen/src/Geometry/Homogeneous.h +501 -0
  966. casadi/include/eigen3/Eigen/src/Geometry/Hyperplane.h +282 -0
  967. casadi/include/eigen3/Eigen/src/Geometry/OrthoMethods.h +235 -0
  968. casadi/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +232 -0
  969. casadi/include/eigen3/Eigen/src/Geometry/Quaternion.h +870 -0
  970. casadi/include/eigen3/Eigen/src/Geometry/Rotation2D.h +199 -0
  971. casadi/include/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
  972. casadi/include/eigen3/Eigen/src/Geometry/Scaling.h +188 -0
  973. casadi/include/eigen3/Eigen/src/Geometry/Transform.h +1563 -0
  974. casadi/include/eigen3/Eigen/src/Geometry/Translation.h +202 -0
  975. casadi/include/eigen3/Eigen/src/Geometry/Umeyama.h +166 -0
  976. casadi/include/eigen3/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
  977. casadi/include/eigen3/Eigen/src/Householder/BlockHouseholder.h +110 -0
  978. casadi/include/eigen3/Eigen/src/Householder/Householder.h +176 -0
  979. casadi/include/eigen3/Eigen/src/Householder/HouseholderSequence.h +545 -0
  980. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
  981. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
  982. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
  983. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
  984. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
  985. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
  986. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
  987. casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
  988. casadi/include/eigen3/Eigen/src/Jacobi/Jacobi.h +483 -0
  989. casadi/include/eigen3/Eigen/src/KLUSupport/KLUSupport.h +358 -0
  990. casadi/include/eigen3/Eigen/src/LU/Determinant.h +117 -0
  991. casadi/include/eigen3/Eigen/src/LU/FullPivLU.h +877 -0
  992. casadi/include/eigen3/Eigen/src/LU/InverseImpl.h +432 -0
  993. casadi/include/eigen3/Eigen/src/LU/PartialPivLU.h +624 -0
  994. casadi/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
  995. casadi/include/eigen3/Eigen/src/LU/arch/InverseSize4.h +351 -0
  996. casadi/include/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
  997. casadi/include/eigen3/Eigen/src/OrderingMethods/Amd.h +435 -0
  998. casadi/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
  999. casadi/include/eigen3/Eigen/src/OrderingMethods/Ordering.h +153 -0
  1000. casadi/include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
  1001. casadi/include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
  1002. casadi/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
  1003. casadi/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
  1004. casadi/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
  1005. casadi/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
  1006. casadi/include/eigen3/Eigen/src/QR/HouseholderQR.h +434 -0
  1007. casadi/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
  1008. casadi/include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
  1009. casadi/include/eigen3/Eigen/src/SVD/BDCSVD.h +1366 -0
  1010. casadi/include/eigen3/Eigen/src/SVD/JacobiSVD.h +812 -0
  1011. casadi/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
  1012. casadi/include/eigen3/Eigen/src/SVD/SVDBase.h +376 -0
  1013. casadi/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
  1014. casadi/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
  1015. casadi/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
  1016. casadi/include/eigen3/Eigen/src/SparseCore/AmbiVector.h +378 -0
  1017. casadi/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +274 -0
  1018. casadi/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
  1019. casadi/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
  1020. casadi/include/eigen3/Eigen/src/SparseCore/SparseAssign.h +270 -0
  1021. casadi/include/eigen3/Eigen/src/SparseCore/SparseBlock.h +571 -0
  1022. casadi/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
  1023. casadi/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
  1024. casadi/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
  1025. casadi/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
  1026. casadi/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
  1027. casadi/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
  1028. casadi/include/eigen3/Eigen/src/SparseCore/SparseDot.h +98 -0
  1029. casadi/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
  1030. casadi/include/eigen3/Eigen/src/SparseCore/SparseMap.h +305 -0
  1031. casadi/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
  1032. casadi/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
  1033. casadi/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +178 -0
  1034. casadi/include/eigen3/Eigen/src/SparseCore/SparseProduct.h +181 -0
  1035. casadi/include/eigen3/Eigen/src/SparseCore/SparseRedux.h +49 -0
  1036. casadi/include/eigen3/Eigen/src/SparseCore/SparseRef.h +397 -0
  1037. casadi/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
  1038. casadi/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
  1039. casadi/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
  1040. casadi/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +92 -0
  1041. casadi/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
  1042. casadi/include/eigen3/Eigen/src/SparseCore/SparseUtil.h +186 -0
  1043. casadi/include/eigen3/Eigen/src/SparseCore/SparseVector.h +478 -0
  1044. casadi/include/eigen3/Eigen/src/SparseCore/SparseView.h +254 -0
  1045. casadi/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +315 -0
  1046. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU.h +923 -0
  1047. casadi/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
  1048. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
  1049. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
  1050. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
  1051. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
  1052. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
  1053. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
  1054. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
  1055. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
  1056. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
  1057. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
  1058. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
  1059. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
  1060. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
  1061. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
  1062. casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
  1063. casadi/include/eigen3/Eigen/src/SparseQR/SparseQR.h +758 -0
  1064. casadi/include/eigen3/Eigen/src/StlSupport/StdDeque.h +116 -0
  1065. casadi/include/eigen3/Eigen/src/StlSupport/StdList.h +106 -0
  1066. casadi/include/eigen3/Eigen/src/StlSupport/StdVector.h +131 -0
  1067. casadi/include/eigen3/Eigen/src/StlSupport/details.h +84 -0
  1068. casadi/include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
  1069. casadi/include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
  1070. casadi/include/eigen3/Eigen/src/misc/Image.h +82 -0
  1071. casadi/include/eigen3/Eigen/src/misc/Kernel.h +79 -0
  1072. casadi/include/eigen3/Eigen/src/misc/RealSvd2x2.h +55 -0
  1073. casadi/include/eigen3/Eigen/src/misc/blas.h +440 -0
  1074. casadi/include/eigen3/Eigen/src/misc/lapack.h +152 -0
  1075. casadi/include/eigen3/Eigen/src/misc/lapacke.h +16292 -0
  1076. casadi/include/eigen3/Eigen/src/misc/lapacke_mangling.h +17 -0
  1077. casadi/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
  1078. casadi/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
  1079. casadi/include/eigen3/Eigen/src/plugins/BlockMethods.h +1442 -0
  1080. casadi/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
  1081. casadi/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
  1082. casadi/include/eigen3/Eigen/src/plugins/IndexedViewMethods.h +262 -0
  1083. casadi/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
  1084. casadi/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
  1085. casadi/include/eigen3/Eigen/src/plugins/ReshapedMethods.h +149 -0
  1086. casadi/include/eigen3/signature_of_eigen3_matrix_library +1 -0
  1087. casadi/include/eigen3/unsupported/Eigen/AdolcForward +159 -0
  1088. casadi/include/eigen3/unsupported/Eigen/AlignedVector3 +234 -0
  1089. casadi/include/eigen3/unsupported/Eigen/ArpackSupport +30 -0
  1090. casadi/include/eigen3/unsupported/Eigen/AutoDiff +46 -0
  1091. casadi/include/eigen3/unsupported/Eigen/BVH +95 -0
  1092. casadi/include/eigen3/unsupported/Eigen/CXX11/Tensor +137 -0
  1093. casadi/include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry +42 -0
  1094. casadi/include/eigen3/unsupported/Eigen/CXX11/ThreadPool +74 -0
  1095. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +554 -0
  1096. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +329 -0
  1097. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +247 -0
  1098. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +1176 -0
  1099. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +1559 -0
  1100. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +1093 -0
  1101. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +518 -0
  1102. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +377 -0
  1103. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +1023 -0
  1104. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +73 -0
  1105. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +6 -0
  1106. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +1413 -0
  1107. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +575 -0
  1108. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +1650 -0
  1109. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +1679 -0
  1110. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +456 -0
  1111. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +1132 -0
  1112. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +544 -0
  1113. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +214 -0
  1114. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +347 -0
  1115. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +137 -0
  1116. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +6 -0
  1117. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +104 -0
  1118. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +389 -0
  1119. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +1048 -0
  1120. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +409 -0
  1121. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +236 -0
  1122. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +490 -0
  1123. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +236 -0
  1124. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +983 -0
  1125. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +703 -0
  1126. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +388 -0
  1127. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +669 -0
  1128. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +379 -0
  1129. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +237 -0
  1130. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +191 -0
  1131. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +488 -0
  1132. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +302 -0
  1133. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +33 -0
  1134. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +99 -0
  1135. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +44 -0
  1136. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +79 -0
  1137. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +603 -0
  1138. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +738 -0
  1139. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +247 -0
  1140. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +82 -0
  1141. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +263 -0
  1142. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +216 -0
  1143. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +98 -0
  1144. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +327 -0
  1145. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +311 -0
  1146. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +1102 -0
  1147. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +708 -0
  1148. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +291 -0
  1149. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +322 -0
  1150. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +998 -0
  1151. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +6 -0
  1152. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +966 -0
  1153. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +582 -0
  1154. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +454 -0
  1155. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +465 -0
  1156. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +528 -0
  1157. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +513 -0
  1158. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +471 -0
  1159. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +161 -0
  1160. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +346 -0
  1161. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +303 -0
  1162. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +264 -0
  1163. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +249 -0
  1164. casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +629 -0
  1165. casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +293 -0
  1166. casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +236 -0
  1167. casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +338 -0
  1168. casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +669 -0
  1169. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +67 -0
  1170. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +249 -0
  1171. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +486 -0
  1172. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +236 -0
  1173. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +23 -0
  1174. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +40 -0
  1175. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +301 -0
  1176. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +48 -0
  1177. casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +20 -0
  1178. casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +537 -0
  1179. casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +88 -0
  1180. casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h +261 -0
  1181. casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +158 -0
  1182. casadi/include/eigen3/unsupported/Eigen/EulerAngles +43 -0
  1183. casadi/include/eigen3/unsupported/Eigen/FFT +419 -0
  1184. casadi/include/eigen3/unsupported/Eigen/IterativeSolvers +51 -0
  1185. casadi/include/eigen3/unsupported/Eigen/KroneckerProduct +36 -0
  1186. casadi/include/eigen3/unsupported/Eigen/LevenbergMarquardt +49 -0
  1187. casadi/include/eigen3/unsupported/Eigen/MPRealSupport +213 -0
  1188. casadi/include/eigen3/unsupported/Eigen/MatrixFunctions +504 -0
  1189. casadi/include/eigen3/unsupported/Eigen/MoreVectorization +24 -0
  1190. casadi/include/eigen3/unsupported/Eigen/NonLinearOptimization +140 -0
  1191. casadi/include/eigen3/unsupported/Eigen/NumericalDiff +56 -0
  1192. casadi/include/eigen3/unsupported/Eigen/OpenGLSupport +322 -0
  1193. casadi/include/eigen3/unsupported/Eigen/Polynomials +137 -0
  1194. casadi/include/eigen3/unsupported/Eigen/Skyline +39 -0
  1195. casadi/include/eigen3/unsupported/Eigen/SparseExtra +54 -0
  1196. casadi/include/eigen3/unsupported/Eigen/SpecialFunctions +103 -0
  1197. casadi/include/eigen3/unsupported/Eigen/Splines +35 -0
  1198. casadi/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +108 -0
  1199. casadi/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +730 -0
  1200. casadi/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +220 -0
  1201. casadi/include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h +293 -0
  1202. casadi/include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h +223 -0
  1203. casadi/include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +790 -0
  1204. casadi/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h +355 -0
  1205. casadi/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h +305 -0
  1206. casadi/include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h +261 -0
  1207. casadi/include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +449 -0
  1208. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +187 -0
  1209. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +511 -0
  1210. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h +335 -0
  1211. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IDRS.h +436 -0
  1212. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +90 -0
  1213. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h +154 -0
  1214. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h +267 -0
  1215. casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h +193 -0
  1216. casadi/include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +305 -0
  1217. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +84 -0
  1218. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +202 -0
  1219. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +160 -0
  1220. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +188 -0
  1221. casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +396 -0
  1222. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +441 -0
  1223. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +569 -0
  1224. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +373 -0
  1225. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +705 -0
  1226. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +368 -0
  1227. casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +117 -0
  1228. casadi/include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +95 -0
  1229. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +601 -0
  1230. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +657 -0
  1231. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h +66 -0
  1232. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h +70 -0
  1233. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +107 -0
  1234. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +79 -0
  1235. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +298 -0
  1236. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +91 -0
  1237. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +30 -0
  1238. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +99 -0
  1239. casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +49 -0
  1240. casadi/include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +130 -0
  1241. casadi/include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h +280 -0
  1242. casadi/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +428 -0
  1243. casadi/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +143 -0
  1244. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +352 -0
  1245. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h +862 -0
  1246. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +212 -0
  1247. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h +295 -0
  1248. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h +259 -0
  1249. casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h +89 -0
  1250. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +122 -0
  1251. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +1079 -0
  1252. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +404 -0
  1253. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h +282 -0
  1254. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +247 -0
  1255. casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h +349 -0
  1256. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +286 -0
  1257. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +68 -0
  1258. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +357 -0
  1259. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +66 -0
  1260. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +1959 -0
  1261. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +118 -0
  1262. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +67 -0
  1263. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +167 -0
  1264. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +58 -0
  1265. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +330 -0
  1266. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +58 -0
  1267. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +2045 -0
  1268. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +79 -0
  1269. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +46 -0
  1270. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +16 -0
  1271. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +46 -0
  1272. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +16 -0
  1273. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +369 -0
  1274. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +54 -0
  1275. casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +34 -0
  1276. casadi/include/eigen3/unsupported/Eigen/src/Splines/Spline.h +507 -0
  1277. casadi/include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h +431 -0
  1278. casadi/include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h +93 -0
  1279. casadi/include/fatrop/auxiliary/Common.hpp +34 -0
  1280. casadi/include/fatrop/auxiliary/DynamicLib.hpp +34 -0
  1281. casadi/include/fatrop/auxiliary/FatropOptions.hpp +68 -0
  1282. casadi/include/fatrop/auxiliary/FatropVector.hpp +143 -0
  1283. casadi/include/fatrop/auxiliary/LinearAlgebra.hpp +88 -0
  1284. casadi/include/fatrop/auxiliary/VectorUtils.hpp +54 -0
  1285. casadi/include/fatrop/blasfeo_wrapper/LinearAlgebraBlasfeo.hpp +496 -0
  1286. casadi/include/fatrop/fatrop.hpp +39 -0
  1287. casadi/include/fatrop/function_evaluation/CasadiCodegen.hpp +104 -0
  1288. casadi/include/fatrop/function_evaluation/FunctionEvaluation.hpp +60 -0
  1289. casadi/include/fatrop/json/json.h +946 -0
  1290. casadi/include/fatrop/ocp/CasadiCApiUserdataWrap.hpp +87 -0
  1291. casadi/include/fatrop/ocp/DuInfEvaluator.hpp +38 -0
  1292. casadi/include/fatrop/ocp/FatropOCP.hpp +161 -0
  1293. casadi/include/fatrop/ocp/FatropOCPBuilder.hpp +52 -0
  1294. casadi/include/fatrop/ocp/FatropOCPResto.hpp +299 -0
  1295. casadi/include/fatrop/ocp/OCP.hpp +82 -0
  1296. casadi/include/fatrop/ocp/OCPAbstract.hpp +254 -0
  1297. casadi/include/fatrop/ocp/OCPAdapter.hpp +197 -0
  1298. casadi/include/fatrop/ocp/OCPCInterface.h +289 -0
  1299. casadi/include/fatrop/ocp/OCPDims.hpp +60 -0
  1300. casadi/include/fatrop/ocp/OCPInitializer.hpp +41 -0
  1301. casadi/include/fatrop/ocp/OCPKKT.hpp +69 -0
  1302. casadi/include/fatrop/ocp/OCPLSRiccati.hpp +198 -0
  1303. casadi/include/fatrop/ocp/OCPLSScaler.hpp +66 -0
  1304. casadi/include/fatrop/ocp/OCPLinearSolver.hpp +75 -0
  1305. casadi/include/fatrop/ocp/OCPNoScaling.hpp +42 -0
  1306. casadi/include/fatrop/ocp/OCPScalingMethod.hpp +42 -0
  1307. casadi/include/fatrop/ocp/StageOCP.hpp +592 -0
  1308. casadi/include/fatrop/ocp/StageOCPApplication.hpp +242 -0
  1309. casadi/include/fatrop/ocp/StageOCPExpressions.hpp +182 -0
  1310. casadi/include/fatrop/ocp/UStageEvalAbstract.hpp +168 -0
  1311. casadi/include/fatrop/ocp/UStageOCPImpl.hpp +152 -0
  1312. casadi/include/fatrop/quasi_newton/bfgs.hpp +159 -0
  1313. casadi/include/fatrop/solver/AlgBuilder.hpp +76 -0
  1314. casadi/include/fatrop/solver/AlgStrategy.hpp +33 -0
  1315. casadi/include/fatrop/solver/FatropAlg.hpp +121 -0
  1316. casadi/include/fatrop/solver/FatropData.hpp +188 -0
  1317. casadi/include/fatrop/solver/FatropOptions.hpp +95 -0
  1318. casadi/include/fatrop/solver/FatropPrinter.hpp +65 -0
  1319. casadi/include/fatrop/solver/FatropStats.hpp +63 -0
  1320. casadi/include/fatrop/solver/Filter.hpp +54 -0
  1321. casadi/include/fatrop/solver/IterationData.hpp +56 -0
  1322. casadi/include/fatrop/solver/LineSearch.hpp +86 -0
  1323. casadi/include/fatrop/solver/NLPL1.hpp +263 -0
  1324. casadi/include/fatrop/templates/NLPAlg.hpp +104 -0
  1325. casadi/include/ghc/filesystem.hpp +6083 -0
  1326. casadi/include/ghc/fs_fwd.hpp +38 -0
  1327. casadi/include/ghc/fs_impl.hpp +35 -0
  1328. casadi/include/ghc/fs_std.hpp +60 -0
  1329. casadi/include/ghc/fs_std_fwd.hpp +63 -0
  1330. casadi/include/ghc/fs_std_impl.hpp +46 -0
  1331. casadi/include/highs/HConfig.h +23 -0
  1332. casadi/include/highs/Highs.h +1703 -0
  1333. casadi/include/highs/filereaderlp/builder.hpp +25 -0
  1334. casadi/include/highs/filereaderlp/def.hpp +19 -0
  1335. casadi/include/highs/filereaderlp/model.hpp +68 -0
  1336. casadi/include/highs/filereaderlp/reader.hpp +10 -0
  1337. casadi/include/highs/interfaces/highs_c_api.h +2456 -0
  1338. casadi/include/highs/io/Filereader.h +45 -0
  1339. casadi/include/highs/io/FilereaderEms.h +30 -0
  1340. casadi/include/highs/io/FilereaderLp.h +51 -0
  1341. casadi/include/highs/io/FilereaderMps.h +27 -0
  1342. casadi/include/highs/io/HMPSIO.h +78 -0
  1343. casadi/include/highs/io/HMpsFF.h +238 -0
  1344. casadi/include/highs/io/HighsIO.h +114 -0
  1345. casadi/include/highs/io/LoadOptions.h +24 -0
  1346. casadi/include/highs/ipm/IpxSolution.h +32 -0
  1347. casadi/include/highs/ipm/IpxWrapper.h +70 -0
  1348. casadi/include/highs/ipm/basiclu/basiclu.h +161 -0
  1349. casadi/include/highs/ipm/basiclu/basiclu_factorize.h +247 -0
  1350. casadi/include/highs/ipm/basiclu/basiclu_get_factors.h +108 -0
  1351. casadi/include/highs/ipm/basiclu/basiclu_initialize.h +119 -0
  1352. casadi/include/highs/ipm/basiclu/basiclu_obj_factorize.h +34 -0
  1353. casadi/include/highs/ipm/basiclu/basiclu_obj_free.h +19 -0
  1354. casadi/include/highs/ipm/basiclu/basiclu_obj_get_factors.h +34 -0
  1355. casadi/include/highs/ipm/basiclu/basiclu_obj_initialize.h +46 -0
  1356. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_dense.h +29 -0
  1357. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_for_update.h +42 -0
  1358. casadi/include/highs/ipm/basiclu/basiclu_obj_solve_sparse.h +32 -0
  1359. casadi/include/highs/ipm/basiclu/basiclu_obj_update.h +31 -0
  1360. casadi/include/highs/ipm/basiclu/basiclu_object.h +30 -0
  1361. casadi/include/highs/ipm/basiclu/basiclu_solve_dense.h +75 -0
  1362. casadi/include/highs/ipm/basiclu/basiclu_solve_for_update.h +169 -0
  1363. casadi/include/highs/ipm/basiclu/basiclu_solve_sparse.h +112 -0
  1364. casadi/include/highs/ipm/basiclu/basiclu_update.h +125 -0
  1365. casadi/include/highs/ipm/basiclu/lu_def.h +39 -0
  1366. casadi/include/highs/ipm/basiclu/lu_file.h +21 -0
  1367. casadi/include/highs/ipm/basiclu/lu_internal.h +220 -0
  1368. casadi/include/highs/ipm/basiclu/lu_list.h +168 -0
  1369. casadi/include/highs/ipm/ipx/basiclu_kernel.h +20 -0
  1370. casadi/include/highs/ipm/ipx/basiclu_wrapper.h +47 -0
  1371. casadi/include/highs/ipm/ipx/basis.h +351 -0
  1372. casadi/include/highs/ipm/ipx/conjugate_residuals.h +74 -0
  1373. casadi/include/highs/ipm/ipx/control.h +164 -0
  1374. casadi/include/highs/ipm/ipx/crossover.h +157 -0
  1375. casadi/include/highs/ipm/ipx/diagonal_precond.h +45 -0
  1376. casadi/include/highs/ipm/ipx/forrest_tomlin.h +102 -0
  1377. casadi/include/highs/ipm/ipx/guess_basis.h +21 -0
  1378. casadi/include/highs/ipm/ipx/indexed_vector.h +113 -0
  1379. casadi/include/highs/ipm/ipx/info.h +27 -0
  1380. casadi/include/highs/ipm/ipx/ipm.h +94 -0
  1381. casadi/include/highs/ipm/ipx/ipx_c.h +47 -0
  1382. casadi/include/highs/ipm/ipx/ipx_config.h +9 -0
  1383. casadi/include/highs/ipm/ipx/ipx_info.h +111 -0
  1384. casadi/include/highs/ipm/ipx/ipx_internal.h +88 -0
  1385. casadi/include/highs/ipm/ipx/ipx_parameters.h +76 -0
  1386. casadi/include/highs/ipm/ipx/ipx_status.h +57 -0
  1387. casadi/include/highs/ipm/ipx/iterate.h +328 -0
  1388. casadi/include/highs/ipm/ipx/kkt_solver.h +70 -0
  1389. casadi/include/highs/ipm/ipx/kkt_solver_basis.h +66 -0
  1390. casadi/include/highs/ipm/ipx/kkt_solver_diag.h +48 -0
  1391. casadi/include/highs/ipm/ipx/linear_operator.h +26 -0
  1392. casadi/include/highs/ipm/ipx/lp_solver.h +202 -0
  1393. casadi/include/highs/ipm/ipx/lu_factorization.h +79 -0
  1394. casadi/include/highs/ipm/ipx/lu_update.h +129 -0
  1395. casadi/include/highs/ipm/ipx/maxvolume.h +54 -0
  1396. casadi/include/highs/ipm/ipx/model.h +413 -0
  1397. casadi/include/highs/ipm/ipx/multistream.h +52 -0
  1398. casadi/include/highs/ipm/ipx/normal_matrix.h +44 -0
  1399. casadi/include/highs/ipm/ipx/power_method.h +44 -0
  1400. casadi/include/highs/ipm/ipx/sparse_matrix.h +195 -0
  1401. casadi/include/highs/ipm/ipx/sparse_utils.h +58 -0
  1402. casadi/include/highs/ipm/ipx/splitted_normal_matrix.h +63 -0
  1403. casadi/include/highs/ipm/ipx/starting_basis.h +39 -0
  1404. casadi/include/highs/ipm/ipx/symbolic_invert.h +29 -0
  1405. casadi/include/highs/ipm/ipx/timer.h +24 -0
  1406. casadi/include/highs/ipm/ipx/utils.h +39 -0
  1407. casadi/include/highs/lp_data/HConst.h +320 -0
  1408. casadi/include/highs/lp_data/HStruct.h +182 -0
  1409. casadi/include/highs/lp_data/HighsAnalysis.h +23 -0
  1410. casadi/include/highs/lp_data/HighsCallback.h +47 -0
  1411. casadi/include/highs/lp_data/HighsCallbackStruct.h +62 -0
  1412. casadi/include/highs/lp_data/HighsDebug.h +34 -0
  1413. casadi/include/highs/lp_data/HighsIis.h +62 -0
  1414. casadi/include/highs/lp_data/HighsInfo.h +329 -0
  1415. casadi/include/highs/lp_data/HighsInfoDebug.h +27 -0
  1416. casadi/include/highs/lp_data/HighsLp.h +100 -0
  1417. casadi/include/highs/lp_data/HighsLpSolverObject.h +45 -0
  1418. casadi/include/highs/lp_data/HighsLpUtils.h +298 -0
  1419. casadi/include/highs/lp_data/HighsModelUtils.h +112 -0
  1420. casadi/include/highs/lp_data/HighsOptions.h +1469 -0
  1421. casadi/include/highs/lp_data/HighsRanging.h +43 -0
  1422. casadi/include/highs/lp_data/HighsSolution.h +144 -0
  1423. casadi/include/highs/lp_data/HighsSolutionDebug.h +87 -0
  1424. casadi/include/highs/lp_data/HighsSolve.h +23 -0
  1425. casadi/include/highs/lp_data/HighsStatus.h +29 -0
  1426. casadi/include/highs/mip/HighsCliqueTable.h +318 -0
  1427. casadi/include/highs/mip/HighsConflictPool.h +109 -0
  1428. casadi/include/highs/mip/HighsCutGeneration.h +106 -0
  1429. casadi/include/highs/mip/HighsCutPool.h +168 -0
  1430. casadi/include/highs/mip/HighsDebugSol.h +132 -0
  1431. casadi/include/highs/mip/HighsDomain.h +653 -0
  1432. casadi/include/highs/mip/HighsDomainChange.h +48 -0
  1433. casadi/include/highs/mip/HighsDynamicRowMatrix.h +104 -0
  1434. casadi/include/highs/mip/HighsGFkSolve.h +438 -0
  1435. casadi/include/highs/mip/HighsImplications.h +170 -0
  1436. casadi/include/highs/mip/HighsLpAggregator.h +50 -0
  1437. casadi/include/highs/mip/HighsLpRelaxation.h +357 -0
  1438. casadi/include/highs/mip/HighsMipAnalysis.h +52 -0
  1439. casadi/include/highs/mip/HighsMipSolver.h +112 -0
  1440. casadi/include/highs/mip/HighsMipSolverData.h +297 -0
  1441. casadi/include/highs/mip/HighsModkSeparator.h +60 -0
  1442. casadi/include/highs/mip/HighsNodeQueue.h +311 -0
  1443. casadi/include/highs/mip/HighsObjectiveFunction.h +71 -0
  1444. casadi/include/highs/mip/HighsPathSeparator.h +39 -0
  1445. casadi/include/highs/mip/HighsPrimalHeuristics.h +70 -0
  1446. casadi/include/highs/mip/HighsPseudocost.h +360 -0
  1447. casadi/include/highs/mip/HighsRedcostFixing.h +42 -0
  1448. casadi/include/highs/mip/HighsSearch.h +241 -0
  1449. casadi/include/highs/mip/HighsSeparation.h +41 -0
  1450. casadi/include/highs/mip/HighsSeparator.h +52 -0
  1451. casadi/include/highs/mip/HighsTableauSeparator.h +34 -0
  1452. casadi/include/highs/mip/HighsTransformedLp.h +63 -0
  1453. casadi/include/highs/mip/MipTimer.h +471 -0
  1454. casadi/include/highs/model/HighsHessian.h +54 -0
  1455. casadi/include/highs/model/HighsHessianUtils.h +49 -0
  1456. casadi/include/highs/model/HighsModel.h +52 -0
  1457. casadi/include/highs/parallel/HighsBinarySemaphore.h +113 -0
  1458. casadi/include/highs/parallel/HighsCacheAlign.h +87 -0
  1459. casadi/include/highs/parallel/HighsCombinable.h +121 -0
  1460. casadi/include/highs/parallel/HighsMutex.h +129 -0
  1461. casadi/include/highs/parallel/HighsParallel.h +133 -0
  1462. casadi/include/highs/parallel/HighsRaceTimer.h +43 -0
  1463. casadi/include/highs/parallel/HighsSchedulerConstants.h +24 -0
  1464. casadi/include/highs/parallel/HighsSpinMutex.h +53 -0
  1465. casadi/include/highs/parallel/HighsSplitDeque.h +583 -0
  1466. casadi/include/highs/parallel/HighsTask.h +175 -0
  1467. casadi/include/highs/parallel/HighsTaskExecutor.h +222 -0
  1468. casadi/include/highs/pdlp/CupdlpWrapper.h +104 -0
  1469. casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +40 -0
  1470. casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +433 -0
  1471. casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +189 -0
  1472. casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +19 -0
  1473. casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +31 -0
  1474. casadi/include/highs/pdlp/cupdlp/cupdlp_scaling.h +26 -0
  1475. casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +98 -0
  1476. casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +37 -0
  1477. casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +1807 -0
  1478. casadi/include/highs/pdqsort/pdqsort.h +532 -0
  1479. casadi/include/highs/presolve/HPresolve.h +405 -0
  1480. casadi/include/highs/presolve/HPresolveAnalysis.h +51 -0
  1481. casadi/include/highs/presolve/HighsPostsolveStack.h +940 -0
  1482. casadi/include/highs/presolve/HighsSymmetry.h +281 -0
  1483. casadi/include/highs/presolve/ICrash.h +124 -0
  1484. casadi/include/highs/presolve/ICrashUtil.h +62 -0
  1485. casadi/include/highs/presolve/ICrashX.h +23 -0
  1486. casadi/include/highs/presolve/PresolveComponent.h +90 -0
  1487. casadi/include/highs/qpsolver/a_asm.hpp +70 -0
  1488. casadi/include/highs/qpsolver/a_quass.hpp +15 -0
  1489. casadi/include/highs/qpsolver/basis.hpp +152 -0
  1490. casadi/include/highs/qpsolver/crashsolution.hpp +13 -0
  1491. casadi/include/highs/qpsolver/dantzigpricing.hpp +73 -0
  1492. casadi/include/highs/qpsolver/devexpricing.hpp +101 -0
  1493. casadi/include/highs/qpsolver/eventhandler.hpp +23 -0
  1494. casadi/include/highs/qpsolver/factor.hpp +401 -0
  1495. casadi/include/highs/qpsolver/feasibility_bounded.hpp +107 -0
  1496. casadi/include/highs/qpsolver/feasibility_highs.hpp +294 -0
  1497. casadi/include/highs/qpsolver/gradient.hpp +39 -0
  1498. casadi/include/highs/qpsolver/instance.hpp +63 -0
  1499. casadi/include/highs/qpsolver/matrix.hpp +335 -0
  1500. casadi/include/highs/qpsolver/perturbation.hpp +8 -0
  1501. casadi/include/highs/qpsolver/pricing.hpp +15 -0
  1502. casadi/include/highs/qpsolver/qpconst.hpp +27 -0
  1503. casadi/include/highs/qpsolver/qpvector.hpp +235 -0
  1504. casadi/include/highs/qpsolver/quass.hpp +20 -0
  1505. casadi/include/highs/qpsolver/ratiotest.hpp +19 -0
  1506. casadi/include/highs/qpsolver/runtime.hpp +38 -0
  1507. casadi/include/highs/qpsolver/scaling.hpp +8 -0
  1508. casadi/include/highs/qpsolver/settings.hpp +69 -0
  1509. casadi/include/highs/qpsolver/snippets.hpp +29 -0
  1510. casadi/include/highs/qpsolver/statistics.hpp +23 -0
  1511. casadi/include/highs/qpsolver/steepestedgepricing.hpp +166 -0
  1512. casadi/include/highs/simplex/HApp.h +476 -0
  1513. casadi/include/highs/simplex/HEkk.h +416 -0
  1514. casadi/include/highs/simplex/HEkkDual.h +513 -0
  1515. casadi/include/highs/simplex/HEkkDualRHS.h +134 -0
  1516. casadi/include/highs/simplex/HEkkDualRow.h +201 -0
  1517. casadi/include/highs/simplex/HEkkPrimal.h +191 -0
  1518. casadi/include/highs/simplex/HSimplex.h +42 -0
  1519. casadi/include/highs/simplex/HSimplexDebug.h +48 -0
  1520. casadi/include/highs/simplex/HSimplexNla.h +158 -0
  1521. casadi/include/highs/simplex/HSimplexReport.h +21 -0
  1522. casadi/include/highs/simplex/HighsSimplexAnalysis.h +500 -0
  1523. casadi/include/highs/simplex/SimplexConst.h +273 -0
  1524. casadi/include/highs/simplex/SimplexStruct.h +261 -0
  1525. casadi/include/highs/simplex/SimplexTimer.h +409 -0
  1526. casadi/include/highs/test/DevKkt.h +143 -0
  1527. casadi/include/highs/test/KktCh2.h +79 -0
  1528. casadi/include/highs/util/FactorTimer.h +199 -0
  1529. casadi/include/highs/util/HFactor.h +587 -0
  1530. casadi/include/highs/util/HFactorConst.h +81 -0
  1531. casadi/include/highs/util/HFactorDebug.h +55 -0
  1532. casadi/include/highs/util/HSet.h +89 -0
  1533. casadi/include/highs/util/HVector.h +22 -0
  1534. casadi/include/highs/util/HVectorBase.h +102 -0
  1535. casadi/include/highs/util/HighsCDouble.h +319 -0
  1536. casadi/include/highs/util/HighsComponent.h +53 -0
  1537. casadi/include/highs/util/HighsDataStack.h +83 -0
  1538. casadi/include/highs/util/HighsDisjointSets.h +107 -0
  1539. casadi/include/highs/util/HighsHash.h +1274 -0
  1540. casadi/include/highs/util/HighsHashTree.h +1447 -0
  1541. casadi/include/highs/util/HighsInt.h +36 -0
  1542. casadi/include/highs/util/HighsIntegers.h +212 -0
  1543. casadi/include/highs/util/HighsLinearSumBounds.h +157 -0
  1544. casadi/include/highs/util/HighsMatrixPic.h +37 -0
  1545. casadi/include/highs/util/HighsMatrixSlice.h +561 -0
  1546. casadi/include/highs/util/HighsMatrixUtils.h +54 -0
  1547. casadi/include/highs/util/HighsMemoryAllocation.h +63 -0
  1548. casadi/include/highs/util/HighsRandom.h +242 -0
  1549. casadi/include/highs/util/HighsRbTree.h +452 -0
  1550. casadi/include/highs/util/HighsSort.h +131 -0
  1551. casadi/include/highs/util/HighsSparseMatrix.h +150 -0
  1552. casadi/include/highs/util/HighsSparseVectorSum.h +95 -0
  1553. casadi/include/highs/util/HighsSplay.h +135 -0
  1554. casadi/include/highs/util/HighsTimer.h +381 -0
  1555. casadi/include/highs/util/HighsUtils.h +217 -0
  1556. casadi/include/highs/util/stringutil.h +46 -0
  1557. casadi/include/highs/zstr/strict_fstream.hpp +237 -0
  1558. casadi/include/highs/zstr/zstr.hpp +472 -0
  1559. casadi/include/highs_export.h +42 -0
  1560. casadi/include/hpipm_aux_mem.h +52 -0
  1561. casadi/include/hpipm_aux_string.h +50 -0
  1562. casadi/include/hpipm_common.h +76 -0
  1563. casadi/include/hpipm_d_cast_qcqp.h +71 -0
  1564. casadi/include/hpipm_d_cond.h +135 -0
  1565. casadi/include/hpipm_d_cond_aux.h +92 -0
  1566. casadi/include/hpipm_d_cond_qcqp.h +129 -0
  1567. casadi/include/hpipm_d_core_qp_ipm.h +101 -0
  1568. casadi/include/hpipm_d_core_qp_ipm_aux.h +68 -0
  1569. casadi/include/hpipm_d_dense_qcqp.h +199 -0
  1570. casadi/include/hpipm_d_dense_qcqp_dim.h +98 -0
  1571. casadi/include/hpipm_d_dense_qcqp_ipm.h +193 -0
  1572. casadi/include/hpipm_d_dense_qcqp_res.h +108 -0
  1573. casadi/include/hpipm_d_dense_qcqp_sol.h +85 -0
  1574. casadi/include/hpipm_d_dense_qcqp_utils.h +82 -0
  1575. casadi/include/hpipm_d_dense_qp.h +207 -0
  1576. casadi/include/hpipm_d_dense_qp_dim.h +92 -0
  1577. casadi/include/hpipm_d_dense_qp_ipm.h +260 -0
  1578. casadi/include/hpipm_d_dense_qp_kkt.h +72 -0
  1579. casadi/include/hpipm_d_dense_qp_res.h +106 -0
  1580. casadi/include/hpipm_d_dense_qp_sol.h +94 -0
  1581. casadi/include/hpipm_d_dense_qp_utils.h +83 -0
  1582. casadi/include/hpipm_d_ocp_qcqp.h +322 -0
  1583. casadi/include/hpipm_d_ocp_qcqp_dim.h +130 -0
  1584. casadi/include/hpipm_d_ocp_qcqp_ipm.h +192 -0
  1585. casadi/include/hpipm_d_ocp_qcqp_red.h +118 -0
  1586. casadi/include/hpipm_d_ocp_qcqp_res.h +115 -0
  1587. casadi/include/hpipm_d_ocp_qcqp_sol.h +114 -0
  1588. casadi/include/hpipm_d_ocp_qcqp_utils.h +81 -0
  1589. casadi/include/hpipm_d_ocp_qp.h +306 -0
  1590. casadi/include/hpipm_d_ocp_qp_dim.h +142 -0
  1591. casadi/include/hpipm_d_ocp_qp_ipm.h +252 -0
  1592. casadi/include/hpipm_d_ocp_qp_kkt.h +66 -0
  1593. casadi/include/hpipm_d_ocp_qp_red.h +117 -0
  1594. casadi/include/hpipm_d_ocp_qp_res.h +113 -0
  1595. casadi/include/hpipm_d_ocp_qp_sol.h +128 -0
  1596. casadi/include/hpipm_d_ocp_qp_utils.h +82 -0
  1597. casadi/include/hpipm_d_part_cond.h +115 -0
  1598. casadi/include/hpipm_d_part_cond_qcqp.h +106 -0
  1599. casadi/include/hpipm_d_sim_erk.h +122 -0
  1600. casadi/include/hpipm_d_sim_rk.h +71 -0
  1601. casadi/include/hpipm_d_tree_ocp_qcqp.h +213 -0
  1602. casadi/include/hpipm_d_tree_ocp_qcqp_dim.h +117 -0
  1603. casadi/include/hpipm_d_tree_ocp_qcqp_ipm.h +191 -0
  1604. casadi/include/hpipm_d_tree_ocp_qcqp_res.h +109 -0
  1605. casadi/include/hpipm_d_tree_ocp_qcqp_sol.h +99 -0
  1606. casadi/include/hpipm_d_tree_ocp_qcqp_utils.h +84 -0
  1607. casadi/include/hpipm_d_tree_ocp_qp.h +195 -0
  1608. casadi/include/hpipm_d_tree_ocp_qp_dim.h +111 -0
  1609. casadi/include/hpipm_d_tree_ocp_qp_ipm.h +209 -0
  1610. casadi/include/hpipm_d_tree_ocp_qp_kkt.h +52 -0
  1611. casadi/include/hpipm_d_tree_ocp_qp_res.h +107 -0
  1612. casadi/include/hpipm_d_tree_ocp_qp_sol.h +100 -0
  1613. casadi/include/hpipm_d_tree_ocp_qp_utils.h +83 -0
  1614. casadi/include/hpipm_m_dense_qp.h +68 -0
  1615. casadi/include/hpipm_m_dense_qp_dim.h +68 -0
  1616. casadi/include/hpipm_m_ocp_qp.h +49 -0
  1617. casadi/include/hpipm_m_ocp_qp_ipm_hard.h +115 -0
  1618. casadi/include/hpipm_m_ocp_qp_kkt.h +45 -0
  1619. casadi/include/hpipm_s_cast_qcqp.h +72 -0
  1620. casadi/include/hpipm_s_cond.h +137 -0
  1621. casadi/include/hpipm_s_cond_aux.h +92 -0
  1622. casadi/include/hpipm_s_cond_qcqp.h +130 -0
  1623. casadi/include/hpipm_s_core_qp_ipm.h +101 -0
  1624. casadi/include/hpipm_s_core_qp_ipm_aux.h +68 -0
  1625. casadi/include/hpipm_s_dense_qcqp.h +200 -0
  1626. casadi/include/hpipm_s_dense_qcqp_dim.h +99 -0
  1627. casadi/include/hpipm_s_dense_qcqp_ipm.h +204 -0
  1628. casadi/include/hpipm_s_dense_qcqp_res.h +109 -0
  1629. casadi/include/hpipm_s_dense_qcqp_sol.h +86 -0
  1630. casadi/include/hpipm_s_dense_qcqp_utils.h +83 -0
  1631. casadi/include/hpipm_s_dense_qp.h +207 -0
  1632. casadi/include/hpipm_s_dense_qp_dim.h +94 -0
  1633. casadi/include/hpipm_s_dense_qp_ipm.h +260 -0
  1634. casadi/include/hpipm_s_dense_qp_kkt.h +72 -0
  1635. casadi/include/hpipm_s_dense_qp_res.h +107 -0
  1636. casadi/include/hpipm_s_dense_qp_sol.h +94 -0
  1637. casadi/include/hpipm_s_dense_qp_utils.h +84 -0
  1638. casadi/include/hpipm_s_ocp_qcqp.h +322 -0
  1639. casadi/include/hpipm_s_ocp_qcqp_dim.h +131 -0
  1640. casadi/include/hpipm_s_ocp_qcqp_ipm.h +193 -0
  1641. casadi/include/hpipm_s_ocp_qcqp_red.h +119 -0
  1642. casadi/include/hpipm_s_ocp_qcqp_res.h +116 -0
  1643. casadi/include/hpipm_s_ocp_qcqp_sol.h +115 -0
  1644. casadi/include/hpipm_s_ocp_qcqp_utils.h +82 -0
  1645. casadi/include/hpipm_s_ocp_qp.h +306 -0
  1646. casadi/include/hpipm_s_ocp_qp_dim.h +141 -0
  1647. casadi/include/hpipm_s_ocp_qp_ipm.h +252 -0
  1648. casadi/include/hpipm_s_ocp_qp_kkt.h +66 -0
  1649. casadi/include/hpipm_s_ocp_qp_red.h +118 -0
  1650. casadi/include/hpipm_s_ocp_qp_res.h +115 -0
  1651. casadi/include/hpipm_s_ocp_qp_sol.h +128 -0
  1652. casadi/include/hpipm_s_ocp_qp_utils.h +83 -0
  1653. casadi/include/hpipm_s_part_cond.h +115 -0
  1654. casadi/include/hpipm_s_part_cond_qcqp.h +107 -0
  1655. casadi/include/hpipm_s_sim_erk.h +121 -0
  1656. casadi/include/hpipm_s_sim_rk.h +72 -0
  1657. casadi/include/hpipm_s_tree_ocp_qcqp.h +213 -0
  1658. casadi/include/hpipm_s_tree_ocp_qcqp_dim.h +118 -0
  1659. casadi/include/hpipm_s_tree_ocp_qcqp_ipm.h +192 -0
  1660. casadi/include/hpipm_s_tree_ocp_qcqp_res.h +110 -0
  1661. casadi/include/hpipm_s_tree_ocp_qcqp_sol.h +97 -0
  1662. casadi/include/hpipm_s_tree_ocp_qcqp_utils.h +85 -0
  1663. casadi/include/hpipm_s_tree_ocp_qp.h +196 -0
  1664. casadi/include/hpipm_s_tree_ocp_qp_dim.h +111 -0
  1665. casadi/include/hpipm_s_tree_ocp_qp_ipm.h +208 -0
  1666. casadi/include/hpipm_s_tree_ocp_qp_kkt.h +54 -0
  1667. casadi/include/hpipm_s_tree_ocp_qp_res.h +108 -0
  1668. casadi/include/hpipm_s_tree_ocp_qp_sol.h +98 -0
  1669. casadi/include/hpipm_s_tree_ocp_qp_utils.h +84 -0
  1670. casadi/include/hpipm_scenario_tree.h +70 -0
  1671. casadi/include/hpipm_timing.h +67 -0
  1672. casadi/include/hpipm_tree.h +76 -0
  1673. casadi/include/licenses/FMI-Standard-2.0.2/LICENSE.txt +473 -0
  1674. casadi/include/licenses/FMI-Standard-3.0/LICENSE.txt +464 -0
  1675. casadi/include/licenses/alpaqa-external/LICENSE +165 -0
  1676. casadi/include/licenses/blasfeo-external/LICENSE.txt +26 -0
  1677. casadi/include/licenses/bonmin-external/Bonmin/LICENSE +87 -0
  1678. casadi/include/licenses/bonmin-external/LICENSE +3 -0
  1679. casadi/include/licenses/casadi/LICENSE/LICENSE.txt +165 -0
  1680. casadi/include/licenses/casadi-sundials/LICENSE +64 -0
  1681. casadi/include/licenses/casadi-sundials/cvodes/LICENSE +60 -0
  1682. casadi/include/licenses/casadi-sundials/idas/LICENSE +59 -0
  1683. casadi/include/licenses/casadi-sundials/kinsol/LICENSE +59 -0
  1684. casadi/include/licenses/casadi-sundials/sundials/LICENSE +67 -0
  1685. casadi/include/licenses/cbc-external/Cbc/LICENSE +239 -0
  1686. casadi/include/licenses/cbc-external/LICENSE +245 -0
  1687. casadi/include/licenses/cgl-external/Cgl/LICENSE +239 -0
  1688. casadi/include/licenses/cgl-external/LICENSE +245 -0
  1689. casadi/include/licenses/clp-external/Clp/LICENSE +239 -0
  1690. casadi/include/licenses/clp-external/LICENSE +245 -0
  1691. casadi/include/licenses/coinutils-external/CoinUtils/LICENSE +239 -0
  1692. casadi/include/licenses/coinutils-external/LICENSE +245 -0
  1693. casadi/include/licenses/daqp-external/LICENSE +21 -0
  1694. casadi/include/licenses/fatrop-external/LICENSE.txt +165 -0
  1695. casadi/include/licenses/fatrop-external/external/blasfeo/LICENSE.txt +26 -0
  1696. casadi/include/licenses/fatrop-external/external/pybind11/LICENSE +29 -0
  1697. casadi/include/licenses/ghc-external/LICENSE +19 -0
  1698. casadi/include/licenses/highs-external/LICENSE.txt +21 -0
  1699. casadi/include/licenses/highs-external/extern/filereaderlp/LICENSE +19 -0
  1700. casadi/include/licenses/hpipm-external/LICENSE.txt +26 -0
  1701. casadi/include/licenses/ipopt-external/LICENSE +260 -0
  1702. casadi/include/licenses/libz-external/LICENSE +22 -0
  1703. casadi/include/licenses/libz-external/contrib/dotzlib/LICENSE_1_0.txt +23 -0
  1704. casadi/include/licenses/libzip-external/LICENSE +31 -0
  1705. casadi/include/licenses/metis-external/LICENSE +87 -0
  1706. casadi/include/licenses/metis-external/metis-4.0/LICENSE +18 -0
  1707. casadi/include/licenses/mockups-external/LICENSE +21 -0
  1708. casadi/include/licenses/mumps-external/LICENSE +87 -0
  1709. casadi/include/licenses/mumps-external/MUMPS/LICENSE +50 -0
  1710. casadi/include/licenses/openblas-external/LICENSE +29 -0
  1711. casadi/include/licenses/openblas-external/ctest/LICENSE +23 -0
  1712. casadi/include/licenses/openblas-external/lapack-netlib/LAPACKE/LICENSE +26 -0
  1713. casadi/include/licenses/openblas-external/lapack-netlib/LICENSE +48 -0
  1714. casadi/include/licenses/openblas-external/reference/LICENSE +23 -0
  1715. casadi/include/licenses/openblas-external/relapack/LICENSE +22 -0
  1716. casadi/include/licenses/openblas-external/test/LICENSE +23 -0
  1717. casadi/include/licenses/osi-external/LICENSE +245 -0
  1718. casadi/include/licenses/osi-external/Osi/LICENSE +239 -0
  1719. casadi/include/licenses/osqp-external/LICENSE +201 -0
  1720. casadi/include/licenses/osqp-external/lin_sys/direct/qdldl/amd/LICENSE +36 -0
  1721. casadi/include/licenses/osqp-external/lin_sys/direct/qdldl/qdldl_sources/LICENSE +201 -0
  1722. casadi/include/licenses/proxqp-external/LICENSE +25 -0
  1723. casadi/include/licenses/proxqp-external/bindings/python/external/pybind11/LICENSE +29 -0
  1724. casadi/include/licenses/proxqp-external/cmake-module/LICENSE +4 -0
  1725. casadi/include/licenses/proxqp-external/cmake-module/doxygen/MathJax/LICENSE +202 -0
  1726. casadi/include/licenses/proxqp-external/external/cereal/LICENSE +24 -0
  1727. casadi/include/licenses/proxqp-external/external/cereal/include/cereal/external/LICENSE +21 -0
  1728. casadi/include/licenses/proxqp-external/external/cereal/include/cereal/external/rapidjson/LICENSE +13 -0
  1729. casadi/include/licenses/proxqp-external/external/cereal/include/cereal/external/rapidjson/msinttypes/LICENSE +29 -0
  1730. casadi/include/licenses/qpOASES/LICENSE.txt +503 -0
  1731. casadi/include/licenses/sleqp-external/LICENSE +165 -0
  1732. casadi/include/licenses/superscs-external/LICENSE.txt +24 -0
  1733. casadi/include/licenses/tinyxml2-9.0.0/LICENSE.txt +18 -0
  1734. casadi/include/licenses/trlib-external/LICENSE +21 -0
  1735. casadi/include/openblas/cblas.h +411 -0
  1736. casadi/include/openblas/f77blas.h +796 -0
  1737. casadi/include/openblas/lapack.h +22997 -0
  1738. casadi/include/openblas/lapacke.h +12665 -0
  1739. casadi/include/openblas/lapacke_config.h +119 -0
  1740. casadi/include/openblas/lapacke_example_aux.h +9 -0
  1741. casadi/include/openblas/lapacke_mangling.h +17 -0
  1742. casadi/include/openblas/lapacke_utils.h +582 -0
  1743. casadi/include/openblas/openblas/lapacke_mangling.h +17 -0
  1744. casadi/include/openblas/openblas_config.h +140 -0
  1745. casadi/include/osqp/auxil.h +181 -0
  1746. casadi/include/osqp/constants.h +128 -0
  1747. casadi/include/osqp/cs.h +180 -0
  1748. casadi/include/osqp/ctrlc.h +56 -0
  1749. casadi/include/osqp/error.h +38 -0
  1750. casadi/include/osqp/glob_opts.h +167 -0
  1751. casadi/include/osqp/lin_alg.h +216 -0
  1752. casadi/include/osqp/lin_sys.h +54 -0
  1753. casadi/include/osqp/osqp.h +430 -0
  1754. casadi/include/osqp/osqp_configure.h +49 -0
  1755. casadi/include/osqp/polish.h +25 -0
  1756. casadi/include/osqp/proj.h +37 -0
  1757. casadi/include/osqp/scaling.h +44 -0
  1758. casadi/include/osqp/types.h +326 -0
  1759. casadi/include/osqp/util.h +222 -0
  1760. casadi/include/osqp/version.h +9 -0
  1761. casadi/include/proxsuite/config.hpp +68 -0
  1762. casadi/include/proxsuite/deprecated.hpp +56 -0
  1763. casadi/include/proxsuite/fwd.hpp +52 -0
  1764. casadi/include/proxsuite/helpers/common.hpp +70 -0
  1765. casadi/include/proxsuite/helpers/instruction-set.hpp +275 -0
  1766. casadi/include/proxsuite/helpers/optional.hpp +46 -0
  1767. casadi/include/proxsuite/helpers/tl-optional.hpp +2472 -0
  1768. casadi/include/proxsuite/helpers/version.hpp +39 -0
  1769. casadi/include/proxsuite/linalg/dense/core.hpp +863 -0
  1770. casadi/include/proxsuite/linalg/dense/factorize.hpp +375 -0
  1771. casadi/include/proxsuite/linalg/dense/ldlt.hpp +817 -0
  1772. casadi/include/proxsuite/linalg/dense/modify.hpp +333 -0
  1773. casadi/include/proxsuite/linalg/dense/solve.hpp +38 -0
  1774. casadi/include/proxsuite/linalg/dense/update.hpp +330 -0
  1775. casadi/include/proxsuite/linalg/sparse/core.hpp +531 -0
  1776. casadi/include/proxsuite/linalg/sparse/factorize.hpp +1303 -0
  1777. casadi/include/proxsuite/linalg/sparse/rowmod.hpp +443 -0
  1778. casadi/include/proxsuite/linalg/sparse/update.hpp +348 -0
  1779. casadi/include/proxsuite/linalg/veg/internal/assert_impl.hpp +20 -0
  1780. casadi/include/proxsuite/linalg/veg/internal/collection_algo.hpp +93 -0
  1781. casadi/include/proxsuite/linalg/veg/internal/dbg.hpp +15 -0
  1782. casadi/include/proxsuite/linalg/veg/internal/delete_special_members.hpp +77 -0
  1783. casadi/include/proxsuite/linalg/veg/internal/dyn_index.hpp +292 -0
  1784. casadi/include/proxsuite/linalg/veg/internal/epilogue.hpp +31 -0
  1785. casadi/include/proxsuite/linalg/veg/internal/external/hedley.ext.hpp +2074 -0
  1786. casadi/include/proxsuite/linalg/veg/internal/external/unhedley.ext.hpp +148 -0
  1787. casadi/include/proxsuite/linalg/veg/internal/fix_index.hpp +339 -0
  1788. casadi/include/proxsuite/linalg/veg/internal/has_asan.hpp +17 -0
  1789. casadi/include/proxsuite/linalg/veg/internal/integer_seq.hpp +248 -0
  1790. casadi/include/proxsuite/linalg/veg/internal/macros.hpp +1312 -0
  1791. casadi/include/proxsuite/linalg/veg/internal/narrow.hpp +46 -0
  1792. casadi/include/proxsuite/linalg/veg/internal/preprocessor.hpp +434 -0
  1793. casadi/include/proxsuite/linalg/veg/internal/prologue.hpp +157 -0
  1794. casadi/include/proxsuite/linalg/veg/internal/std.hpp +13 -0
  1795. casadi/include/proxsuite/linalg/veg/internal/terminate.hpp +22 -0
  1796. casadi/include/proxsuite/linalg/veg/internal/typedefs.hpp +58 -0
  1797. casadi/include/proxsuite/linalg/veg/memory/address.hpp +97 -0
  1798. casadi/include/proxsuite/linalg/veg/memory/alloc.hpp +352 -0
  1799. casadi/include/proxsuite/linalg/veg/memory/dynamic_stack.hpp +504 -0
  1800. casadi/include/proxsuite/linalg/veg/memory/placement.hpp +202 -0
  1801. casadi/include/proxsuite/linalg/veg/memory/stack_alloc.hpp +239 -0
  1802. casadi/include/proxsuite/linalg/veg/ref.hpp +148 -0
  1803. casadi/include/proxsuite/linalg/veg/slice.hpp +240 -0
  1804. casadi/include/proxsuite/linalg/veg/tuple.hpp +876 -0
  1805. casadi/include/proxsuite/linalg/veg/type_traits/alloc.hpp +169 -0
  1806. casadi/include/proxsuite/linalg/veg/type_traits/assignable.hpp +53 -0
  1807. casadi/include/proxsuite/linalg/veg/type_traits/constructible.hpp +217 -0
  1808. casadi/include/proxsuite/linalg/veg/type_traits/core.hpp +298 -0
  1809. casadi/include/proxsuite/linalg/veg/type_traits/invocable.hpp +47 -0
  1810. casadi/include/proxsuite/linalg/veg/type_traits/primitives.hpp +43 -0
  1811. casadi/include/proxsuite/linalg/veg/type_traits/tags.hpp +47 -0
  1812. casadi/include/proxsuite/linalg/veg/util/assert.hpp +48 -0
  1813. casadi/include/proxsuite/linalg/veg/util/dbg.hpp +6 -0
  1814. casadi/include/proxsuite/linalg/veg/util/defer.hpp +57 -0
  1815. casadi/include/proxsuite/linalg/veg/util/dynstack_alloc.hpp +19 -0
  1816. casadi/include/proxsuite/linalg/veg/util/get.hpp +153 -0
  1817. casadi/include/proxsuite/linalg/veg/util/index.hpp +6 -0
  1818. casadi/include/proxsuite/linalg/veg/util/unreachable.hpp +41 -0
  1819. casadi/include/proxsuite/linalg/veg/vec.hpp +1034 -0
  1820. casadi/include/proxsuite/proxqp/dense/dense.hpp +10 -0
  1821. casadi/include/proxsuite/proxqp/dense/fwd.hpp +55 -0
  1822. casadi/include/proxsuite/proxqp/dense/helpers.hpp +520 -0
  1823. casadi/include/proxsuite/proxqp/dense/linesearch.hpp +517 -0
  1824. casadi/include/proxsuite/proxqp/dense/model.hpp +147 -0
  1825. casadi/include/proxsuite/proxqp/dense/preconditioner/identity.hpp +113 -0
  1826. casadi/include/proxsuite/proxqp/dense/preconditioner/ruiz.hpp +571 -0
  1827. casadi/include/proxsuite/proxqp/dense/solver.hpp +1330 -0
  1828. casadi/include/proxsuite/proxqp/dense/utils.hpp +415 -0
  1829. casadi/include/proxsuite/proxqp/dense/views.hpp +1466 -0
  1830. casadi/include/proxsuite/proxqp/dense/workspace.hpp +264 -0
  1831. casadi/include/proxsuite/proxqp/dense/wrapper.hpp +491 -0
  1832. casadi/include/proxsuite/proxqp/results.hpp +212 -0
  1833. casadi/include/proxsuite/proxqp/settings.hpp +302 -0
  1834. casadi/include/proxsuite/proxqp/sparse/fwd.hpp +58 -0
  1835. casadi/include/proxsuite/proxqp/sparse/helpers.hpp +309 -0
  1836. casadi/include/proxsuite/proxqp/sparse/model.hpp +228 -0
  1837. casadi/include/proxsuite/proxqp/sparse/preconditioner/identity.hpp +64 -0
  1838. casadi/include/proxsuite/proxqp/sparse/preconditioner/ruiz.hpp +569 -0
  1839. casadi/include/proxsuite/proxqp/sparse/solver.hpp +1441 -0
  1840. casadi/include/proxsuite/proxqp/sparse/sparse.hpp +10 -0
  1841. casadi/include/proxsuite/proxqp/sparse/utils.hpp +815 -0
  1842. casadi/include/proxsuite/proxqp/sparse/views.hpp +63 -0
  1843. casadi/include/proxsuite/proxqp/sparse/workspace.hpp +790 -0
  1844. casadi/include/proxsuite/proxqp/sparse/wrapper.hpp +772 -0
  1845. casadi/include/proxsuite/proxqp/status.hpp +46 -0
  1846. casadi/include/proxsuite/proxqp/timings.hpp +101 -0
  1847. casadi/include/proxsuite/proxqp/utils/prints.hpp +47 -0
  1848. casadi/include/proxsuite/proxqp/utils/random_qp_problems.hpp +669 -0
  1849. casadi/include/proxsuite/serialization/archive.hpp +231 -0
  1850. casadi/include/proxsuite/serialization/eigen.hpp +107 -0
  1851. casadi/include/proxsuite/serialization/model.hpp +34 -0
  1852. casadi/include/proxsuite/serialization/results.hpp +74 -0
  1853. casadi/include/proxsuite/serialization/settings.hpp +60 -0
  1854. casadi/include/proxsuite/serialization/wrapper.hpp +24 -0
  1855. casadi/include/proxsuite/warning.hpp +35 -0
  1856. casadi/include/qdldl/qdldl.h +169 -0
  1857. casadi/include/qdldl/qdldl_types.h +23 -0
  1858. casadi/include/s_blas.h +78 -0
  1859. casadi/include/s_blas_64.h +73 -0
  1860. casadi/include/simde/arm/neon/aba.h +208 -0
  1861. casadi/include/simde/arm/neon/abd.h +384 -0
  1862. casadi/include/simde/arm/neon/abdl.h +147 -0
  1863. casadi/include/simde/arm/neon/abs.h +408 -0
  1864. casadi/include/simde/arm/neon/add.h +681 -0
  1865. casadi/include/simde/arm/neon/addl.h +127 -0
  1866. casadi/include/simde/arm/neon/addl_high.h +127 -0
  1867. casadi/include/simde/arm/neon/addlv.h +317 -0
  1868. casadi/include/simde/arm/neon/addv.h +447 -0
  1869. casadi/include/simde/arm/neon/addw.h +222 -0
  1870. casadi/include/simde/arm/neon/addw_high.h +193 -0
  1871. casadi/include/simde/arm/neon/and.h +552 -0
  1872. casadi/include/simde/arm/neon/bic.h +472 -0
  1873. casadi/include/simde/arm/neon/bsl.h +448 -0
  1874. casadi/include/simde/arm/neon/cagt.h +168 -0
  1875. casadi/include/simde/arm/neon/ceq.h +711 -0
  1876. casadi/include/simde/arm/neon/ceqz.h +335 -0
  1877. casadi/include/simde/arm/neon/cge.h +677 -0
  1878. casadi/include/simde/arm/neon/cgez.h +378 -0
  1879. casadi/include/simde/arm/neon/cgt.h +686 -0
  1880. casadi/include/simde/arm/neon/cgtz.h +380 -0
  1881. casadi/include/simde/arm/neon/cle.h +677 -0
  1882. casadi/include/simde/arm/neon/clez.h +378 -0
  1883. casadi/include/simde/arm/neon/cls.h +148 -0
  1884. casadi/include/simde/arm/neon/clt.h +679 -0
  1885. casadi/include/simde/arm/neon/cltz.h +263 -0
  1886. casadi/include/simde/arm/neon/clz.h +423 -0
  1887. casadi/include/simde/arm/neon/cnt.h +145 -0
  1888. casadi/include/simde/arm/neon/combine.h +343 -0
  1889. casadi/include/simde/arm/neon/create.h +186 -0
  1890. casadi/include/simde/arm/neon/cvt.h +492 -0
  1891. casadi/include/simde/arm/neon/dot.h +171 -0
  1892. casadi/include/simde/arm/neon/dot_lane.h +196 -0
  1893. casadi/include/simde/arm/neon/dup_lane.h +702 -0
  1894. casadi/include/simde/arm/neon/dup_n.h +534 -0
  1895. casadi/include/simde/arm/neon/eor.h +552 -0
  1896. casadi/include/simde/arm/neon/ext.h +887 -0
  1897. casadi/include/simde/arm/neon/get_high.h +260 -0
  1898. casadi/include/simde/arm/neon/get_lane.h +499 -0
  1899. casadi/include/simde/arm/neon/get_low.h +276 -0
  1900. casadi/include/simde/arm/neon/hadd.h +287 -0
  1901. casadi/include/simde/arm/neon/hsub.h +287 -0
  1902. casadi/include/simde/arm/neon/ld1.h +399 -0
  1903. casadi/include/simde/arm/neon/ld3.h +609 -0
  1904. casadi/include/simde/arm/neon/ld4.h +448 -0
  1905. casadi/include/simde/arm/neon/max.h +614 -0
  1906. casadi/include/simde/arm/neon/maxnm.h +215 -0
  1907. casadi/include/simde/arm/neon/maxv.h +400 -0
  1908. casadi/include/simde/arm/neon/min.h +660 -0
  1909. casadi/include/simde/arm/neon/minnm.h +215 -0
  1910. casadi/include/simde/arm/neon/minv.h +424 -0
  1911. casadi/include/simde/arm/neon/mla.h +530 -0
  1912. casadi/include/simde/arm/neon/mla_n.h +333 -0
  1913. casadi/include/simde/arm/neon/mlal.h +156 -0
  1914. casadi/include/simde/arm/neon/mlal_high.h +156 -0
  1915. casadi/include/simde/arm/neon/mlal_n.h +128 -0
  1916. casadi/include/simde/arm/neon/mls.h +264 -0
  1917. casadi/include/simde/arm/neon/mlsl.h +124 -0
  1918. casadi/include/simde/arm/neon/mlsl_high.h +124 -0
  1919. casadi/include/simde/arm/neon/mlsl_n.h +96 -0
  1920. casadi/include/simde/arm/neon/movl.h +208 -0
  1921. casadi/include/simde/arm/neon/movl_high.h +126 -0
  1922. casadi/include/simde/arm/neon/movn.h +195 -0
  1923. casadi/include/simde/arm/neon/movn_high.h +125 -0
  1924. casadi/include/simde/arm/neon/mul.h +594 -0
  1925. casadi/include/simde/arm/neon/mul_lane.h +472 -0
  1926. casadi/include/simde/arm/neon/mul_n.h +383 -0
  1927. casadi/include/simde/arm/neon/mull.h +236 -0
  1928. casadi/include/simde/arm/neon/mull_high.h +125 -0
  1929. casadi/include/simde/arm/neon/mull_n.h +158 -0
  1930. casadi/include/simde/arm/neon/mvn.h +426 -0
  1931. casadi/include/simde/arm/neon/neg.h +393 -0
  1932. casadi/include/simde/arm/neon/orn.h +505 -0
  1933. casadi/include/simde/arm/neon/orr.h +552 -0
  1934. casadi/include/simde/arm/neon/padal.h +211 -0
  1935. casadi/include/simde/arm/neon/padd.h +293 -0
  1936. casadi/include/simde/arm/neon/paddl.h +239 -0
  1937. casadi/include/simde/arm/neon/pmax.h +253 -0
  1938. casadi/include/simde/arm/neon/pmin.h +260 -0
  1939. casadi/include/simde/arm/neon/qabs.h +281 -0
  1940. casadi/include/simde/arm/neon/qadd.h +553 -0
  1941. casadi/include/simde/arm/neon/qdmulh.h +125 -0
  1942. casadi/include/simde/arm/neon/qdmull.h +125 -0
  1943. casadi/include/simde/arm/neon/qmovn.h +273 -0
  1944. casadi/include/simde/arm/neon/qmovn_high.h +127 -0
  1945. casadi/include/simde/arm/neon/qmovun.h +159 -0
  1946. casadi/include/simde/arm/neon/qneg.h +301 -0
  1947. casadi/include/simde/arm/neon/qrdmulh.h +165 -0
  1948. casadi/include/simde/arm/neon/qrdmulh_n.h +136 -0
  1949. casadi/include/simde/arm/neon/qshl.h +732 -0
  1950. casadi/include/simde/arm/neon/qsub.h +549 -0
  1951. casadi/include/simde/arm/neon/qtbl.h +455 -0
  1952. casadi/include/simde/arm/neon/qtbx.h +470 -0
  1953. casadi/include/simde/arm/neon/rbit.h +165 -0
  1954. casadi/include/simde/arm/neon/reinterpret.h +3101 -0
  1955. casadi/include/simde/arm/neon/rev16.h +137 -0
  1956. casadi/include/simde/arm/neon/rev32.h +235 -0
  1957. casadi/include/simde/arm/neon/rev64.h +358 -0
  1958. casadi/include/simde/arm/neon/rhadd.h +406 -0
  1959. casadi/include/simde/arm/neon/rnd.h +143 -0
  1960. casadi/include/simde/arm/neon/rndi.h +135 -0
  1961. casadi/include/simde/arm/neon/rndm.h +143 -0
  1962. casadi/include/simde/arm/neon/rndn.h +135 -0
  1963. casadi/include/simde/arm/neon/rndp.h +143 -0
  1964. casadi/include/simde/arm/neon/rshl.h +903 -0
  1965. casadi/include/simde/arm/neon/rshr_n.h +471 -0
  1966. casadi/include/simde/arm/neon/rsra_n.h +209 -0
  1967. casadi/include/simde/arm/neon/set_lane.h +422 -0
  1968. casadi/include/simde/arm/neon/shl.h +805 -0
  1969. casadi/include/simde/arm/neon/shl_n.h +560 -0
  1970. casadi/include/simde/arm/neon/shr_n.h +612 -0
  1971. casadi/include/simde/arm/neon/sra_n.h +202 -0
  1972. casadi/include/simde/arm/neon/st1.h +353 -0
  1973. casadi/include/simde/arm/neon/st1_lane.h +363 -0
  1974. casadi/include/simde/arm/neon/st3.h +426 -0
  1975. casadi/include/simde/arm/neon/st4.h +445 -0
  1976. casadi/include/simde/arm/neon/sub.h +659 -0
  1977. casadi/include/simde/arm/neon/subl.h +127 -0
  1978. casadi/include/simde/arm/neon/subw.h +221 -0
  1979. casadi/include/simde/arm/neon/subw_high.h +222 -0
  1980. casadi/include/simde/arm/neon/tbl.h +224 -0
  1981. casadi/include/simde/arm/neon/tbx.h +247 -0
  1982. casadi/include/simde/arm/neon/trn.h +252 -0
  1983. casadi/include/simde/arm/neon/trn1.h +500 -0
  1984. casadi/include/simde/arm/neon/trn2.h +499 -0
  1985. casadi/include/simde/arm/neon/tst.h +540 -0
  1986. casadi/include/simde/arm/neon/types.h +683 -0
  1987. casadi/include/simde/arm/neon/uqadd.h +325 -0
  1988. casadi/include/simde/arm/neon/uzp.h +252 -0
  1989. casadi/include/simde/arm/neon/uzp1.h +643 -0
  1990. casadi/include/simde/arm/neon/uzp2.h +647 -0
  1991. casadi/include/simde/arm/neon/zip.h +252 -0
  1992. casadi/include/simde/arm/neon/zip1.h +625 -0
  1993. casadi/include/simde/arm/neon/zip2.h +625 -0
  1994. casadi/include/simde/arm/neon.h +166 -0
  1995. casadi/include/simde/check.h +276 -0
  1996. casadi/include/simde/debug-trap.h +85 -0
  1997. casadi/include/simde/hedley.h +1971 -0
  1998. casadi/include/simde/simde-align.h +449 -0
  1999. casadi/include/simde/simde-arch.h +532 -0
  2000. casadi/include/simde/simde-common.h +890 -0
  2001. casadi/include/simde/simde-complex.h +148 -0
  2002. casadi/include/simde/simde-constify.h +397 -0
  2003. casadi/include/simde/simde-detect-clang.h +109 -0
  2004. casadi/include/simde/simde-diagnostic.h +428 -0
  2005. casadi/include/simde/simde-features.h +522 -0
  2006. casadi/include/simde/simde-math.h +1805 -0
  2007. casadi/include/simde/x86/avx.h +6193 -0
  2008. casadi/include/simde/x86/avx2.h +5660 -0
  2009. casadi/include/simde/x86/avx512/2intersect.h +250 -0
  2010. casadi/include/simde/x86/avx512/abs.h +562 -0
  2011. casadi/include/simde/x86/avx512/add.h +641 -0
  2012. casadi/include/simde/x86/avx512/adds.h +390 -0
  2013. casadi/include/simde/x86/avx512/and.h +305 -0
  2014. casadi/include/simde/x86/avx512/andnot.h +193 -0
  2015. casadi/include/simde/x86/avx512/avg.h +258 -0
  2016. casadi/include/simde/x86/avx512/blend.h +293 -0
  2017. casadi/include/simde/x86/avx512/broadcast.h +897 -0
  2018. casadi/include/simde/x86/avx512/cast.h +324 -0
  2019. casadi/include/simde/x86/avx512/cmp.h +587 -0
  2020. casadi/include/simde/x86/avx512/cmpeq.h +179 -0
  2021. casadi/include/simde/x86/avx512/cmpge.h +104 -0
  2022. casadi/include/simde/x86/avx512/cmpgt.h +189 -0
  2023. casadi/include/simde/x86/avx512/cmple.h +103 -0
  2024. casadi/include/simde/x86/avx512/cmplt.h +123 -0
  2025. casadi/include/simde/x86/avx512/copysign.h +86 -0
  2026. casadi/include/simde/x86/avx512/cvt.h +122 -0
  2027. casadi/include/simde/x86/avx512/cvts.h +723 -0
  2028. casadi/include/simde/x86/avx512/div.h +162 -0
  2029. casadi/include/simde/x86/avx512/extract.h +198 -0
  2030. casadi/include/simde/x86/avx512/fmadd.h +136 -0
  2031. casadi/include/simde/x86/avx512/fmsub.h +108 -0
  2032. casadi/include/simde/x86/avx512/fnmadd.h +108 -0
  2033. casadi/include/simde/x86/avx512/fnmsub.h +108 -0
  2034. casadi/include/simde/x86/avx512/insert.h +193 -0
  2035. casadi/include/simde/x86/avx512/kshift.h +152 -0
  2036. casadi/include/simde/x86/avx512/load.h +67 -0
  2037. casadi/include/simde/x86/avx512/loadu.h +113 -0
  2038. casadi/include/simde/x86/avx512/lzcnt.h +209 -0
  2039. casadi/include/simde/x86/avx512/madd.h +155 -0
  2040. casadi/include/simde/x86/avx512/maddubs.h +159 -0
  2041. casadi/include/simde/x86/avx512/max.h +587 -0
  2042. casadi/include/simde/x86/avx512/min.h +587 -0
  2043. casadi/include/simde/x86/avx512/mov.h +859 -0
  2044. casadi/include/simde/x86/avx512/mov_mask.h +372 -0
  2045. casadi/include/simde/x86/avx512/movm.h +460 -0
  2046. casadi/include/simde/x86/avx512/mul.h +279 -0
  2047. casadi/include/simde/x86/avx512/mulhi.h +65 -0
  2048. casadi/include/simde/x86/avx512/mulhrs.h +65 -0
  2049. casadi/include/simde/x86/avx512/mullo.h +117 -0
  2050. casadi/include/simde/x86/avx512/negate.h +88 -0
  2051. casadi/include/simde/x86/avx512/or.h +252 -0
  2052. casadi/include/simde/x86/avx512/packs.h +122 -0
  2053. casadi/include/simde/x86/avx512/packus.h +122 -0
  2054. casadi/include/simde/x86/avx512/permutex2var.h +1645 -0
  2055. casadi/include/simde/x86/avx512/permutexvar.h +1180 -0
  2056. casadi/include/simde/x86/avx512/sad.h +77 -0
  2057. casadi/include/simde/x86/avx512/set.h +477 -0
  2058. casadi/include/simde/x86/avx512/set1.h +331 -0
  2059. casadi/include/simde/x86/avx512/set4.h +140 -0
  2060. casadi/include/simde/x86/avx512/setone.h +66 -0
  2061. casadi/include/simde/x86/avx512/setr.h +144 -0
  2062. casadi/include/simde/x86/avx512/setr4.h +140 -0
  2063. casadi/include/simde/x86/avx512/setzero.h +90 -0
  2064. casadi/include/simde/x86/avx512/shuffle.h +176 -0
  2065. casadi/include/simde/x86/avx512/sll.h +247 -0
  2066. casadi/include/simde/x86/avx512/slli.h +179 -0
  2067. casadi/include/simde/x86/avx512/sllv.h +68 -0
  2068. casadi/include/simde/x86/avx512/sqrt.h +127 -0
  2069. casadi/include/simde/x86/avx512/sra.h +81 -0
  2070. casadi/include/simde/x86/avx512/srai.h +70 -0
  2071. casadi/include/simde/x86/avx512/srav.h +67 -0
  2072. casadi/include/simde/x86/avx512/srl.h +216 -0
  2073. casadi/include/simde/x86/avx512/srli.h +180 -0
  2074. casadi/include/simde/x86/avx512/srlv.h +282 -0
  2075. casadi/include/simde/x86/avx512/store.h +93 -0
  2076. casadi/include/simde/x86/avx512/storeu.h +93 -0
  2077. casadi/include/simde/x86/avx512/sub.h +351 -0
  2078. casadi/include/simde/x86/avx512/subs.h +222 -0
  2079. casadi/include/simde/x86/avx512/test.h +193 -0
  2080. casadi/include/simde/x86/avx512/types.h +380 -0
  2081. casadi/include/simde/x86/avx512/unpackhi.h +380 -0
  2082. casadi/include/simde/x86/avx512/unpacklo.h +104 -0
  2083. casadi/include/simde/x86/avx512/xor.h +263 -0
  2084. casadi/include/simde/x86/avx512/xorsign.h +72 -0
  2085. casadi/include/simde/x86/avx512.h +108 -0
  2086. casadi/include/simde/x86/clmul.h +414 -0
  2087. casadi/include/simde/x86/fma.h +724 -0
  2088. casadi/include/simde/x86/gfni.h +802 -0
  2089. casadi/include/simde/x86/mmx.h +2399 -0
  2090. casadi/include/simde/x86/sse.h +4471 -0
  2091. casadi/include/simde/x86/sse2.h +7389 -0
  2092. casadi/include/simde/x86/sse3.h +499 -0
  2093. casadi/include/simde/x86/sse4.1.h +2216 -0
  2094. casadi/include/simde/x86/sse4.2.h +347 -0
  2095. casadi/include/simde/x86/ssse3.h +1032 -0
  2096. casadi/include/simde/x86/svml.h +12139 -0
  2097. casadi/include/simde/x86/xop.h +3644 -0
  2098. casadi/include/sleqp/defs.h +58 -0
  2099. casadi/include/sleqp/export.h +42 -0
  2100. casadi/include/sleqp/pub_cmp.h +18 -0
  2101. casadi/include/sleqp/pub_dyn.h +140 -0
  2102. casadi/include/sleqp/pub_error.h +50 -0
  2103. casadi/include/sleqp/pub_func.h +257 -0
  2104. casadi/include/sleqp/pub_hess_struct.h +105 -0
  2105. casadi/include/sleqp/pub_iterate.h +88 -0
  2106. casadi/include/sleqp/pub_log.h +88 -0
  2107. casadi/include/sleqp/pub_lsq.h +158 -0
  2108. casadi/include/sleqp/pub_mem.h +52 -0
  2109. casadi/include/sleqp/pub_problem.h +213 -0
  2110. casadi/include/sleqp/pub_scale.h +150 -0
  2111. casadi/include/sleqp/pub_settings.h +162 -0
  2112. casadi/include/sleqp/pub_solver.h +155 -0
  2113. casadi/include/sleqp/pub_types.h +230 -0
  2114. casadi/include/sleqp/pub_working_set.h +135 -0
  2115. casadi/include/sleqp/sparse/pub_mat.h +153 -0
  2116. casadi/include/sleqp/sparse/pub_vec.h +336 -0
  2117. casadi/include/sleqp.h +38 -0
  2118. casadi/include/spral.h +13 -0
  2119. casadi/include/spral_lsmr.h +57 -0
  2120. casadi/include/spral_matrix_util.h +40 -0
  2121. casadi/include/spral_random.h +26 -0
  2122. casadi/include/spral_random_matrix.h +27 -0
  2123. casadi/include/spral_rutherford_boeing.h +51 -0
  2124. casadi/include/spral_scaling.h +139 -0
  2125. casadi/include/spral_ssids.h +121 -0
  2126. casadi/include/spral_ssmfe.h +268 -0
  2127. casadi/include/superscs/cones.h +185 -0
  2128. casadi/include/superscs/constants.h +144 -0
  2129. casadi/include/superscs/cs.h +109 -0
  2130. casadi/include/superscs/ctrlc.h +77 -0
  2131. casadi/include/superscs/directions.h +125 -0
  2132. casadi/include/superscs/glbopts.h +240 -0
  2133. casadi/include/superscs/linAlg.h +437 -0
  2134. casadi/include/superscs/linSys.h +205 -0
  2135. casadi/include/superscs/linsys/amatrix.h +77 -0
  2136. casadi/include/superscs/linsys/common.h +49 -0
  2137. casadi/include/superscs/normalize.h +138 -0
  2138. casadi/include/superscs/scs.h +656 -0
  2139. casadi/include/superscs/scs_blas.h +79 -0
  2140. casadi/include/superscs/scs_parser.h +187 -0
  2141. casadi/include/superscs/unit_test_util.h +210 -0
  2142. casadi/include/superscs/util.h +354 -0
  2143. casadi/include/trlib/trlib_eigen_inverse.h +118 -0
  2144. casadi/include/trlib/trlib_krylov.h +493 -0
  2145. casadi/include/trlib/trlib_leftmost.h +181 -0
  2146. casadi/include/trlib/trlib_private.h +109 -0
  2147. casadi/include/trlib/trlib_quadratic_zero.h +57 -0
  2148. casadi/include/trlib/trlib_tri_factor.h +409 -0
  2149. casadi/include/trlib/trlib_types.h +36 -0
  2150. casadi/include/trlib.h +44 -0
  2151. casadi/include/zconf.h +545 -0
  2152. casadi/include/zip.h +528 -0
  2153. casadi/include/zipconf.h +48 -0
  2154. casadi/include/zlib.h +1938 -0
  2155. casadi/ipopt.lib +0 -0
  2156. casadi/lapack.lib +0 -0
  2157. casadi/libCbc-3.dll +0 -0
  2158. casadi/libCbc.dll.a +0 -0
  2159. casadi/libCbc.la +35 -0
  2160. casadi/libCbcSolver-3.dll +0 -0
  2161. casadi/libCbcSolver.dll.a +0 -0
  2162. casadi/libCbcSolver.la +35 -0
  2163. casadi/libCgl-1.dll +0 -0
  2164. casadi/libCgl.dll.a +0 -0
  2165. casadi/libCgl.la +35 -0
  2166. casadi/libClp-1.dll +0 -0
  2167. casadi/libClp.dll.a +0 -0
  2168. casadi/libClp.la +35 -0
  2169. casadi/libClpSolver-1.dll +0 -0
  2170. casadi/libClpSolver.dll.a +0 -0
  2171. casadi/libClpSolver.la +35 -0
  2172. casadi/libCoinUtils-3.dll +0 -0
  2173. casadi/libCoinUtils.dll.a +0 -0
  2174. casadi/libCoinUtils.la +35 -0
  2175. casadi/libOsi-1.dll +0 -0
  2176. casadi/libOsi.dll.a +0 -0
  2177. casadi/libOsi.la +35 -0
  2178. casadi/libOsiCbc-3.dll +0 -0
  2179. casadi/libOsiCbc.dll.a +0 -0
  2180. casadi/libOsiCbc.la +35 -0
  2181. casadi/libOsiClp-1.dll +0 -0
  2182. casadi/libOsiClp.dll.a +0 -0
  2183. casadi/libOsiClp.la +35 -0
  2184. casadi/libOsiCommonTests-1.dll +0 -0
  2185. casadi/libOsiCommonTests.dll.a +0 -0
  2186. casadi/libOsiCommonTests.la +35 -0
  2187. casadi/libalpaqa.dll +0 -0
  2188. casadi/libalpaqa.dll.a +0 -0
  2189. casadi/libatomic-1.dll +0 -0
  2190. casadi/libblasfeo.dll +0 -0
  2191. casadi/libblasfeo.dll.a +0 -0
  2192. casadi/libbonmin-4.dll +0 -0
  2193. casadi/libbonmin.dll.a +0 -0
  2194. casadi/libbonmin.la +35 -0
  2195. casadi/libcasadi-tp-openblas.dll +0 -0
  2196. casadi/libcasadi-tp-openblas.dll.a +0 -0
  2197. casadi/libcasadi.dll +0 -0
  2198. casadi/libcasadi.dll.a +0 -0
  2199. casadi/libcasadi.lib +0 -0
  2200. casadi/libcasadi_archiver_libzip.dll +0 -0
  2201. casadi/libcasadi_archiver_libzip.dll.a +0 -0
  2202. casadi/libcasadi_conic_cbc.dll +0 -0
  2203. casadi/libcasadi_conic_cbc.dll.a +0 -0
  2204. casadi/libcasadi_conic_clp.dll +0 -0
  2205. casadi/libcasadi_conic_clp.dll.a +0 -0
  2206. casadi/libcasadi_conic_cplex.dll +0 -0
  2207. casadi/libcasadi_conic_cplex.dll.a +0 -0
  2208. casadi/libcasadi_conic_daqp.dll +0 -0
  2209. casadi/libcasadi_conic_daqp.dll.a +0 -0
  2210. casadi/libcasadi_conic_fatrop.dll +0 -0
  2211. casadi/libcasadi_conic_fatrop.dll.a +0 -0
  2212. casadi/libcasadi_conic_gurobi.dll +0 -0
  2213. casadi/libcasadi_conic_gurobi.dll.a +0 -0
  2214. casadi/libcasadi_conic_highs.dll +0 -0
  2215. casadi/libcasadi_conic_highs.dll.a +0 -0
  2216. casadi/libcasadi_conic_hpipm.dll +0 -0
  2217. casadi/libcasadi_conic_hpipm.dll.a +0 -0
  2218. casadi/libcasadi_conic_ipqp.dll +0 -0
  2219. casadi/libcasadi_conic_ipqp.dll.a +0 -0
  2220. casadi/libcasadi_conic_nlpsol.dll +0 -0
  2221. casadi/libcasadi_conic_nlpsol.dll.a +0 -0
  2222. casadi/libcasadi_conic_osqp.dll +0 -0
  2223. casadi/libcasadi_conic_osqp.dll.a +0 -0
  2224. casadi/libcasadi_conic_proxqp.dll +0 -0
  2225. casadi/libcasadi_conic_proxqp.dll.a +0 -0
  2226. casadi/libcasadi_conic_qpoases.dll +0 -0
  2227. casadi/libcasadi_conic_qpoases.dll.a +0 -0
  2228. casadi/libcasadi_conic_qrqp.dll +0 -0
  2229. casadi/libcasadi_conic_qrqp.dll.a +0 -0
  2230. casadi/libcasadi_conic_superscs.dll +0 -0
  2231. casadi/libcasadi_conic_superscs.dll.a +0 -0
  2232. casadi/libcasadi_filesystem_ghc.dll +0 -0
  2233. casadi/libcasadi_filesystem_ghc.dll.a +0 -0
  2234. casadi/libcasadi_importer_shell.dll +0 -0
  2235. casadi/libcasadi_importer_shell.dll.a +0 -0
  2236. casadi/libcasadi_integrator_collocation.dll +0 -0
  2237. casadi/libcasadi_integrator_collocation.dll.a +0 -0
  2238. casadi/libcasadi_integrator_cvodes.dll +0 -0
  2239. casadi/libcasadi_integrator_cvodes.dll.a +0 -0
  2240. casadi/libcasadi_integrator_idas.dll +0 -0
  2241. casadi/libcasadi_integrator_idas.dll.a +0 -0
  2242. casadi/libcasadi_integrator_rk.dll +0 -0
  2243. casadi/libcasadi_integrator_rk.dll.a +0 -0
  2244. casadi/libcasadi_interpolant_bspline.dll +0 -0
  2245. casadi/libcasadi_interpolant_bspline.dll.a +0 -0
  2246. casadi/libcasadi_interpolant_linear.dll +0 -0
  2247. casadi/libcasadi_interpolant_linear.dll.a +0 -0
  2248. casadi/libcasadi_linsol_csparse.dll +0 -0
  2249. casadi/libcasadi_linsol_csparse.dll.a +0 -0
  2250. casadi/libcasadi_linsol_csparsecholesky.dll +0 -0
  2251. casadi/libcasadi_linsol_csparsecholesky.dll.a +0 -0
  2252. casadi/libcasadi_linsol_lapacklu.dll +0 -0
  2253. casadi/libcasadi_linsol_lapacklu.dll.a +0 -0
  2254. casadi/libcasadi_linsol_lapackqr.dll +0 -0
  2255. casadi/libcasadi_linsol_lapackqr.dll.a +0 -0
  2256. casadi/libcasadi_linsol_ldl.dll +0 -0
  2257. casadi/libcasadi_linsol_ldl.dll.a +0 -0
  2258. casadi/libcasadi_linsol_lsqr.dll +0 -0
  2259. casadi/libcasadi_linsol_lsqr.dll.a +0 -0
  2260. casadi/libcasadi_linsol_ma27.dll +0 -0
  2261. casadi/libcasadi_linsol_ma27.dll.a +0 -0
  2262. casadi/libcasadi_linsol_mumps.dll +0 -0
  2263. casadi/libcasadi_linsol_mumps.dll.a +0 -0
  2264. casadi/libcasadi_linsol_qr.dll +0 -0
  2265. casadi/libcasadi_linsol_qr.dll.a +0 -0
  2266. casadi/libcasadi_linsol_symbolicqr.dll +0 -0
  2267. casadi/libcasadi_linsol_symbolicqr.dll.a +0 -0
  2268. casadi/libcasadi_linsol_tridiag.dll +0 -0
  2269. casadi/libcasadi_linsol_tridiag.dll.a +0 -0
  2270. casadi/libcasadi_nlpsol_alpaqa.dll +0 -0
  2271. casadi/libcasadi_nlpsol_alpaqa.dll.a +0 -0
  2272. casadi/libcasadi_nlpsol_ampl.dll +0 -0
  2273. casadi/libcasadi_nlpsol_ampl.dll.a +0 -0
  2274. casadi/libcasadi_nlpsol_blocksqp.dll +0 -0
  2275. casadi/libcasadi_nlpsol_blocksqp.dll.a +0 -0
  2276. casadi/libcasadi_nlpsol_bonmin.dll +0 -0
  2277. casadi/libcasadi_nlpsol_bonmin.dll.a +0 -0
  2278. casadi/libcasadi_nlpsol_fatrop.dll +0 -0
  2279. casadi/libcasadi_nlpsol_fatrop.dll.a +0 -0
  2280. casadi/libcasadi_nlpsol_feasiblesqpmethod.dll +0 -0
  2281. casadi/libcasadi_nlpsol_feasiblesqpmethod.dll.a +0 -0
  2282. casadi/libcasadi_nlpsol_ipopt.dll +0 -0
  2283. casadi/libcasadi_nlpsol_ipopt.dll.a +0 -0
  2284. casadi/libcasadi_nlpsol_knitro.dll +0 -0
  2285. casadi/libcasadi_nlpsol_knitro.dll.a +0 -0
  2286. casadi/libcasadi_nlpsol_madnlp.dll +0 -0
  2287. casadi/libcasadi_nlpsol_madnlp.dll.a +0 -0
  2288. casadi/libcasadi_nlpsol_qrsqp.dll +0 -0
  2289. casadi/libcasadi_nlpsol_qrsqp.dll.a +0 -0
  2290. casadi/libcasadi_nlpsol_scpgen.dll +0 -0
  2291. casadi/libcasadi_nlpsol_scpgen.dll.a +0 -0
  2292. casadi/libcasadi_nlpsol_sleqp.dll +0 -0
  2293. casadi/libcasadi_nlpsol_sleqp.dll.a +0 -0
  2294. casadi/libcasadi_nlpsol_snopt.dll +0 -0
  2295. casadi/libcasadi_nlpsol_snopt.dll.a +0 -0
  2296. casadi/libcasadi_nlpsol_sqpmethod.dll +0 -0
  2297. casadi/libcasadi_nlpsol_sqpmethod.dll.a +0 -0
  2298. casadi/libcasadi_nlpsol_worhp.dll +0 -0
  2299. casadi/libcasadi_nlpsol_worhp.dll.a +0 -0
  2300. casadi/libcasadi_rootfinder_fast_newton.dll +0 -0
  2301. casadi/libcasadi_rootfinder_fast_newton.dll.a +0 -0
  2302. casadi/libcasadi_rootfinder_kinsol.dll +0 -0
  2303. casadi/libcasadi_rootfinder_kinsol.dll.a +0 -0
  2304. casadi/libcasadi_rootfinder_newton.dll +0 -0
  2305. casadi/libcasadi_rootfinder_newton.dll.a +0 -0
  2306. casadi/libcasadi_rootfinder_nlpsol.dll +0 -0
  2307. casadi/libcasadi_rootfinder_nlpsol.dll.a +0 -0
  2308. casadi/libcasadi_sundials_common.dll +0 -0
  2309. casadi/libcasadi_sundials_common.dll.a +0 -0
  2310. casadi/libcasadi_xmlfile_tinyxml.dll +0 -0
  2311. casadi/libcasadi_xmlfile_tinyxml.dll.a +0 -0
  2312. casadi/libcoinmetis-2.dll +0 -0
  2313. casadi/libcoinmetis.dll.a +0 -0
  2314. casadi/libcoinmetis.la +41 -0
  2315. casadi/libcoinmumps-3.dll +0 -0
  2316. casadi/libcoinmumps.dll.a +0 -0
  2317. casadi/libcoinmumps.la +41 -0
  2318. casadi/libcplex_adaptor.dll +0 -0
  2319. casadi/libdaqp.dll +0 -0
  2320. casadi/libdaqp.dll.a +0 -0
  2321. casadi/libdaqpstat.a +0 -0
  2322. casadi/libdl.dll +0 -0
  2323. casadi/libdl.dll.a +0 -0
  2324. casadi/libfatrop.dll +0 -0
  2325. casadi/libfatrop.dll.a +0 -0
  2326. casadi/libgcc_s_seh-1.dll +0 -0
  2327. casadi/libgfortran-5.dll +0 -0
  2328. casadi/libgomp-1.dll +0 -0
  2329. casadi/libgurobi_adaptor.dll +0 -0
  2330. casadi/libhighs.dll +0 -0
  2331. casadi/libhighs.dll.a +0 -0
  2332. casadi/libhpipm.dll +0 -0
  2333. casadi/libhpipm.dll.a +0 -0
  2334. casadi/libindirect.a +0 -0
  2335. casadi/libipopt-3.dll +0 -0
  2336. casadi/libipopt.dll.a +0 -0
  2337. casadi/libipopt.la +41 -0
  2338. casadi/liblinsys.a +0 -0
  2339. casadi/libmatlab_ipc.dll +0 -0
  2340. casadi/libmatlab_ipc.dll.a +0 -0
  2341. casadi/libosqp.a +0 -0
  2342. casadi/libosqp.dll +0 -0
  2343. casadi/libosqp.dll.a +0 -0
  2344. casadi/libqdldl.a +0 -0
  2345. casadi/libqdldl.dll +0 -0
  2346. casadi/libqdldl.dll.a +0 -0
  2347. casadi/libquadmath-0.dll +0 -0
  2348. casadi/libsipopt-3.dll +0 -0
  2349. casadi/libsipopt.dll.a +0 -0
  2350. casadi/libsipopt.la +41 -0
  2351. casadi/libsleqp.dll +0 -0
  2352. casadi/libsleqp.dll.a +0 -0
  2353. casadi/libspral.a +0 -0
  2354. casadi/libssp-0.dll +0 -0
  2355. casadi/libstdc++-6.dll +0 -0
  2356. casadi/libsuperscs.a +0 -0
  2357. casadi/libtrlib.dll +0 -0
  2358. casadi/libtrlib.dll.a +0 -0
  2359. casadi/libwinpthread-1.dll +0 -0
  2360. casadi/libzip.a +0 -0
  2361. casadi/libzlib.dll +0 -0
  2362. casadi/libzlib.dll.a +0 -0
  2363. casadi/libzlibstatic.a +0 -0
  2364. casadi/matlab_ipc.lib +0 -0
  2365. casadi/osqp.lib +0 -0
  2366. casadi/pkgconfig/blas.pc +11 -0
  2367. casadi/pkgconfig/bonmin.pc +12 -0
  2368. casadi/pkgconfig/casadi.pc +12 -0
  2369. casadi/pkgconfig/cbc.pc +12 -0
  2370. casadi/pkgconfig/cgl.pc +12 -0
  2371. casadi/pkgconfig/clp.pc +12 -0
  2372. casadi/pkgconfig/coinmetis.pc +13 -0
  2373. casadi/pkgconfig/coinmumps.pc +15 -0
  2374. casadi/pkgconfig/coinutils.pc +12 -0
  2375. casadi/pkgconfig/highs.pc +12 -0
  2376. casadi/pkgconfig/ipopt.pc +15 -0
  2377. casadi/pkgconfig/lapack.pc +11 -0
  2378. casadi/pkgconfig/libzip.pc +14 -0
  2379. casadi/pkgconfig/openblas.pc +11 -0
  2380. casadi/pkgconfig/osi-cbc.pc +12 -0
  2381. casadi/pkgconfig/osi-clp.pc +12 -0
  2382. casadi/pkgconfig/osi-unittests.pc +12 -0
  2383. casadi/pkgconfig/osi.pc +12 -0
  2384. casadi/pkgconfig/proxsuite.pc +22 -0
  2385. casadi/pkgconfig/sleqp.pc +10 -0
  2386. casadi/sleqp.lib +0 -0
  2387. casadi/spral_ssids.exe +0 -0
  2388. casadi/std-e414687e404555e5.dll +0 -0
  2389. casadi/tools/__init__.py +54 -0
  2390. casadi/tools/bounds.py +107 -0
  2391. casadi/tools/graph/__init__.py +35 -0
  2392. casadi/tools/graph/graph.py +747 -0
  2393. casadi/tools/in_out.py +89 -0
  2394. casadi/tools/structure3.py +1441 -0
  2395. casadi-3.7.2.dist-info/METADATA +45 -0
  2396. casadi-3.7.2.dist-info/RECORD +2398 -0
  2397. casadi-3.7.2.dist-info/WHEEL +4 -0
  2398. dummy.txt +1 -0
@@ -0,0 +1,3296 @@
1
+ /* $Id$ */
2
+ // Copyright (C) 2002, International Business Machines
3
+ // Corporation and others. All Rights Reserved.
4
+ // This code is licensed under the terms of the Eclipse Public License (EPL).
5
+
6
+ #ifndef CbcModel_H
7
+ #define CbcModel_H
8
+ #include <string>
9
+ #include <vector>
10
+ #include "CoinMessageHandler.hpp"
11
+ #include "OsiSolverInterface.hpp"
12
+ #include "OsiBranchingObject.hpp"
13
+ #include "OsiCuts.hpp"
14
+ #include "CoinWarmStartBasis.hpp"
15
+ #include "CbcCompareBase.hpp"
16
+ #include "CbcCountRowCut.hpp"
17
+ #include "CbcMessage.hpp"
18
+ #include "CbcEventHandler.hpp"
19
+ #include "ClpDualRowPivot.hpp"
20
+
21
+ class CbcCutGenerator;
22
+ class CbcBaseModel;
23
+ class OsiRowCut;
24
+ class OsiBabSolver;
25
+ class OsiRowCutDebugger;
26
+ class CglCutGenerator;
27
+ class CglStored;
28
+ class CbcCutModifier;
29
+ class CglTreeProbingInfo;
30
+ class CbcHeuristic;
31
+ class OsiObject;
32
+ class CbcThread;
33
+ class CbcTree;
34
+ class CbcStrategy;
35
+ class CbcSymmetry;
36
+ class CbcFeasibilityBase;
37
+ class CbcStatistics;
38
+ class CbcFullNodeInfo;
39
+ class CbcEventHandler;
40
+ class CglPreProcess;
41
+ class OsiClpSolverInterface;
42
+ class ClpNodeStuff;
43
+
44
+ // #define CBC_CHECK_BASIS 1
45
+
46
+ //#############################################################################
47
+
48
+ /** Simple Branch and bound class
49
+
50
+ The initialSolve() method solves the initial LP relaxation of the MIP
51
+ problem. The branchAndBound() method can then be called to finish using
52
+ a branch and cut algorithm.
53
+
54
+ <h3>Search Tree Traversal</h3>
55
+
56
+ Subproblems (aka nodes) requiring additional evaluation are stored using
57
+ the CbcNode and CbcNodeInfo objects. Ancestry linkage is maintained in the
58
+ CbcNodeInfo object. Evaluation of a subproblem within branchAndBound()
59
+ proceeds as follows:
60
+ <ul>
61
+ <li> The node representing the most promising parent subproblem is popped
62
+ from the heap which holds the set of subproblems requiring further
63
+ evaluation.
64
+ <li> Using branching instructions stored in the node, and information in
65
+ its ancestors, the model and solver are adjusted to create the
66
+ active subproblem.
67
+ <li> If the parent subproblem will require further evaluation
68
+ (<i>i.e.</i>, there are branches remaining) its node is pushed back
69
+ on the heap. Otherwise, the node is deleted. This may trigger
70
+ recursive deletion of ancestors.
71
+ <li> The newly created subproblem is evaluated.
72
+ <li> If the subproblem requires further evaluation, a node is created.
73
+ All information needed to recreate the subproblem (branching
74
+ information, row and column cuts) is placed in the node and the node
75
+ is added to the set of subproblems awaiting further evaluation.
76
+ </ul>
77
+ Note that there is never a node representing the active subproblem; the model
78
+ and solver represent the active subproblem.
79
+
80
+ <h3>Row (Constraint) Cut Handling</h3>
81
+
82
+ For a typical subproblem, the sequence of events is as follows:
83
+ <ul>
84
+ <li> The subproblem is rebuilt for further evaluation: One result of a
85
+ call to addCuts() is a traversal of ancestors, leaving a list of all
86
+ cuts used in the ancestors in #addedCuts_. This list is then scanned
87
+ to construct a basis that includes only tight cuts. Entries for
88
+ loose cuts are set to NULL.
89
+ <li> The subproblem is evaluated: One result of a call to solveWithCuts()
90
+ is the return of a set of newly generated cuts for the subproblem.
91
+ #addedCuts_ is also kept up-to-date as old cuts become loose.
92
+ <li> The subproblem is stored for further processing: A call to
93
+ CbcNodeInfo::addCuts() adds the newly generated cuts to the
94
+ CbcNodeInfo object associated with this node.
95
+ </ul>
96
+ See CbcCountRowCut for details of the bookkeeping associated with cut
97
+ management.
98
+ */
99
+
100
+ class CbcModel {
101
+
102
+ public:
103
+ enum CbcIntParam {
104
+ /** The maximum number of nodes before terminating */
105
+ CbcMaxNumNode = 0,
106
+ /** The maximum number of solutions before terminating */
107
+ CbcMaxNumSol,
108
+ /** Fathoming discipline
109
+
110
+ Controls objective function comparisons for purposes of fathoming by bound
111
+ or determining monotonic variables.
112
+
113
+ If 1, action is taken only when the current objective is strictly worse
114
+ than the target. Implementation is handled by adding a small tolerance to
115
+ the target.
116
+ */
117
+ CbcFathomDiscipline,
118
+ /** Adjusts printout
119
+ 1 does different node message with number unsatisfied on last branch
120
+ */
121
+ CbcPrinting,
122
+ /** Number of branches (may be more than number of nodes as may
123
+ include strong branching) */
124
+ CbcNumberBranches,
125
+ /** Just a marker, so that a static sized array can store parameters. */
126
+ CbcLastIntParam
127
+ };
128
+
129
+ enum CbcDblParam {
130
+ /** The maximum amount the value of an integer variable can vary from
131
+ integer and still be considered feasible. */
132
+ CbcIntegerTolerance = 0,
133
+ /** The objective is assumed to worsen by this amount for each
134
+ integer infeasibility. */
135
+ CbcInfeasibilityWeight,
136
+ /** The amount by which to tighten the objective function cutoff when
137
+ a new solution is discovered. */
138
+ CbcCutoffIncrement,
139
+ /** Stop when the gap between the objective value of the best known solution
140
+ and the best bound on the objective of any solution is less than this.
141
+
142
+ This is an absolute value. Conversion from a percentage is left to the
143
+ client.
144
+ */
145
+ CbcAllowableGap,
146
+ /** Stop when the gap between the objective value of the best known solution
147
+ and the best bound on the objective of any solution is less than this
148
+ fraction of of the absolute value of best known solution.
149
+
150
+ Code stops if either this test or CbcAllowableGap test succeeds
151
+ */
152
+ CbcAllowableFractionGap,
153
+ /** \brief The maximum number of seconds before terminating.
154
+ A double should be adequate! */
155
+ CbcMaximumSeconds,
156
+ /// Cutoff - stored for speed
157
+ CbcCurrentCutoff,
158
+ /// Optimization direction - stored for speed
159
+ CbcOptimizationDirection,
160
+ /// Current objective value
161
+ CbcCurrentObjectiveValue,
162
+ /// Current minimization objective value
163
+ CbcCurrentMinimizationObjectiveValue,
164
+ /** \brief The time at start of model.
165
+ So that other pieces of code can access */
166
+ CbcStartSeconds,
167
+ /** Stop doing heuristics when the gap between the objective value of the
168
+ best known solution and the best bound on the objective of any solution
169
+ is less than this.
170
+
171
+ This is an absolute value. Conversion from a percentage is left to the
172
+ client.
173
+ */
174
+ CbcHeuristicGap,
175
+ /** Stop doing heuristics when the gap between the objective value of the
176
+ best known solution and the best bound on the objective of any solution
177
+ is less than this fraction of of the absolute value of best known
178
+ solution.
179
+
180
+ Code stops if either this test or CbcAllowableGap test succeeds
181
+ */
182
+ CbcHeuristicFractionGap,
183
+ /// Smallest non-zero change on a branch
184
+ CbcSmallestChange,
185
+ /// Sum of non-zero changes on a branch
186
+ CbcSumChange,
187
+ /// Largest non-zero change on a branch
188
+ CbcLargestChange,
189
+ /// Small non-zero change on a branch to be used as guess
190
+ CbcSmallChange,
191
+ /** Just a marker, so that a static sized array can store parameters. */
192
+ CbcLastDblParam
193
+ };
194
+
195
+ //---------------------------------------------------------------------------
196
+
197
+ public:
198
+ ///@name Solve methods
199
+ //@{
200
+ /** \brief Solve the initial LP relaxation
201
+
202
+ Invoke the solver's %initialSolve() method.
203
+ */
204
+ void initialSolve();
205
+
206
+ /** \brief Invoke the branch \& cut algorithm
207
+
208
+ The method assumes that initialSolve() has been called to solve the
209
+ LP relaxation. It processes the root node, then proceeds to explore the
210
+ branch & cut search tree. The search ends when the tree is exhausted or
211
+ one of several execution limits is reached.
212
+ If doStatistics is 1 summary statistics are printed
213
+ if 2 then also the path to best solution (if found by branching)
214
+ if 3 then also one line per node
215
+ */
216
+ void branchAndBound(int doStatistics = 0);
217
+
218
+ private:
219
+ /** \brief Evaluate a subproblem using cutting planes and heuristics
220
+
221
+ The method invokes a main loop which generates cuts, applies heuristics,
222
+ and reoptimises using the solver's native %resolve() method.
223
+ It returns true if the subproblem remains feasible at the end of the
224
+ evaluation.
225
+ */
226
+ bool solveWithCuts(OsiCuts &cuts, int numberTries, CbcNode *node);
227
+ /** Generate one round of cuts - serial mode
228
+ returns -
229
+ 0 - normal
230
+ 1 - must keep going
231
+ 2 - set numberTries to zero
232
+ -1 - infeasible
233
+ */
234
+ int serialCuts(OsiCuts &cuts, CbcNode *node, OsiCuts &slackCuts, int lastNumberCuts);
235
+ /** Generate one round of cuts - parallel mode
236
+ returns -
237
+ 0 - normal
238
+ 1 - must keep going
239
+ 2 - set numberTries to zero
240
+ -1 - infeasible
241
+ */
242
+ int parallelCuts(CbcBaseModel *master, OsiCuts &cuts, CbcNode *node, OsiCuts &slackCuts, int lastNumberCuts);
243
+ /** Input one node output N nodes to put on tree and optional solution update
244
+ This should be able to operate in parallel so is given a solver and is const(ish)
245
+ However we will need to keep an array of solver_ and bases and more
246
+ status is 0 for normal, 1 if solution
247
+ Calling code should always push nodes back on tree
248
+ */
249
+ CbcNode **solveOneNode(int whichSolver, CbcNode *node,
250
+ int &numberNodesOutput, int &status);
251
+ /// Update size of whichGenerator
252
+ void resizeWhichGenerator(int numberNow, int numberAfter);
253
+
254
+ public:
255
+ #ifdef CBC_KEEP_DEPRECATED
256
+ // See if anyone is using these any more!!
257
+ /** \brief create a clean model from partially fixed problem
258
+
259
+ The method creates a new model with given bounds and with no tree.
260
+ */
261
+ CbcModel *cleanModel(const double *lower, const double *upper);
262
+ /** \brief Invoke the branch \& cut algorithm on partially fixed problem
263
+
264
+ The method presolves the given model and does branch and cut. The search
265
+ ends when the tree is exhausted or maximum nodes is reached.
266
+
267
+ If better solution found then it is saved.
268
+
269
+ Returns 0 if search completed and solution, 1 if not completed and solution,
270
+ 2 if completed and no solution, 3 if not completed and no solution.
271
+
272
+ Normally okay to do cleanModel immediately followed by subBranchandBound
273
+ (== other form of subBranchAndBound)
274
+ but may need to get at model for advanced features.
275
+
276
+ Deletes model2
277
+ */
278
+ int subBranchAndBound(CbcModel *model2,
279
+ CbcModel *presolvedModel,
280
+ int maximumNodes);
281
+ /** \brief Invoke the branch \& cut algorithm on partially fixed problem
282
+
283
+ The method creates a new model with given bounds, presolves it
284
+ then proceeds to explore the branch & cut search tree. The search
285
+ ends when the tree is exhausted or maximum nodes is reached.
286
+
287
+ If better solution found then it is saved.
288
+
289
+ Returns 0 if search completed and solution, 1 if not completed and solution,
290
+ 2 if completed and no solution, 3 if not completed and no solution.
291
+
292
+ This is just subModel immediately followed by other version of
293
+ subBranchandBound.
294
+
295
+ */
296
+ int subBranchAndBound(const double *lower, const double *upper,
297
+ int maximumNodes);
298
+
299
+ /** \brief Process root node and return a strengthened model
300
+
301
+ The method assumes that initialSolve() has been called to solve the
302
+ LP relaxation. It processes the root node and then returns a pointer
303
+ to the strengthened model (or NULL if infeasible)
304
+ */
305
+ OsiSolverInterface *strengthenedModel();
306
+ /** preProcess problem - replacing solver
307
+ If makeEquality true then <= cliques converted to ==.
308
+ Presolve will be done numberPasses times.
309
+
310
+ Returns NULL if infeasible
311
+
312
+ If makeEquality is 1 add slacks to get cliques,
313
+ if 2 add slacks to get sos (but only if looks plausible) and keep sos info
314
+ */
315
+ CglPreProcess *preProcess(int makeEquality = 0, int numberPasses = 5,
316
+ int tuning = 5);
317
+ /** Does postprocessing - original solver back.
318
+ User has to delete process */
319
+ void postProcess(CglPreProcess *process);
320
+ #endif
321
+ /// Returns CglPreProcess used before branch and bound
322
+ inline CglPreProcess *preProcess() const
323
+ {
324
+ return preProcess_;
325
+ }
326
+ /// Set CglPreProcess used before branch and bound
327
+ inline void setPreProcess(CglPreProcess *preProcess)
328
+ {
329
+ preProcess_ = preProcess;
330
+ }
331
+ /// Adds an update information object
332
+ void addUpdateInformation(const CbcObjectUpdateData &data);
333
+ /** Do one node - broken out for clarity?
334
+ also for parallel (when baseModel!=this)
335
+ Returns 1 if solution found
336
+ node NULL on return if no branches left
337
+ newNode NULL if no new node created
338
+ */
339
+ int doOneNode(CbcModel *baseModel, CbcNode *&node, CbcNode *&newNode);
340
+
341
+ public:
342
+ /** \brief Reoptimise an LP relaxation
343
+
344
+ Invoke the solver's %resolve() method.
345
+ whereFrom -
346
+ 0 - initial continuous
347
+ 1 - resolve on branch (before new cuts)
348
+ 2 - after new cuts
349
+ 3 - obsolete code or something modified problem in unexpected way
350
+ 10 - after strong branching has fixed variables at root
351
+ 11 - after strong branching has fixed variables in tree
352
+
353
+ returns 1 feasible, 0 infeasible, -1 feasible but skip cuts
354
+ */
355
+ int resolve(CbcNodeInfo *parent, int whereFrom,
356
+ double *saveSolution = NULL,
357
+ double *saveLower = NULL,
358
+ double *saveUpper = NULL);
359
+ /// Make given rows (L or G) into global cuts and remove from lp
360
+ void makeGlobalCuts(int numberRows, const int *which);
361
+ /// Make given cut into a global cut
362
+ int makeGlobalCut(const OsiRowCut *cut);
363
+ /// Make given cut into a global cut
364
+ int makeGlobalCut(const OsiRowCut &cut);
365
+ /// Make given column cut into a global cut
366
+ void makeGlobalCut(const OsiColCut *cut);
367
+ /// Make given column cut into a global cut
368
+ void makeGlobalCut(const OsiColCut &cut);
369
+ /// Make partial cut into a global cut and save
370
+ void makePartialCut(const OsiRowCut *cut, const OsiSolverInterface *solver = NULL);
371
+ /// Make partial cuts into global cuts
372
+ void makeGlobalCuts();
373
+ /// Which cut generator generated this cut
374
+ inline const int *whichGenerator() const
375
+ {
376
+ return whichGenerator_;
377
+ }
378
+ //@}
379
+
380
+ /** \name Presolve methods */
381
+ //@{
382
+
383
+ /** Identify cliques and construct corresponding objects.
384
+
385
+ Find cliques with size in the range
386
+ [\p atLeastThisMany, \p lessThanThis] and construct corresponding
387
+ CbcClique objects.
388
+ If \p makeEquality is true then a new model may be returned if
389
+ modifications had to be made, otherwise \c this is returned.
390
+ If the problem is infeasible #numberObjects_ is set to -1.
391
+ A client must use deleteObjects() before a second call to findCliques().
392
+ If priorities exist, clique priority is set to the default.
393
+ */
394
+ CbcModel *findCliques(bool makeEquality, int atLeastThisMany,
395
+ int lessThanThis, int defaultValue = 1000);
396
+
397
+ /** Do integer presolve, creating a new (presolved) model.
398
+
399
+ Returns the new model, or NULL if feasibility is lost.
400
+ If weak is true then just does a normal presolve
401
+
402
+ \todo It remains to work out the cleanest way of getting a solution to
403
+ the original problem at the end. So this is very preliminary.
404
+ */
405
+ CbcModel *integerPresolve(bool weak = false);
406
+
407
+ /** Do integer presolve, modifying the current model.
408
+
409
+ Returns true if the model remains feasible after presolve.
410
+ */
411
+ bool integerPresolveThisModel(OsiSolverInterface *originalSolver, bool weak = false);
412
+
413
+ /// Put back information into the original model after integer presolve.
414
+ void originalModel(CbcModel *presolvedModel, bool weak);
415
+
416
+ /** \brief For variables involved in VUB constraints, see if we can tighten
417
+ bounds by solving lp's
418
+
419
+ Returns false if feasibility is lost.
420
+ If CglProbing is available, it will be tried as well to see if it can
421
+ tighten bounds.
422
+ This routine is just a front end for tightenVubs(int,const int*,double).
423
+
424
+ If <tt>type = -1</tt> all variables are processed (could be very slow).
425
+ If <tt>type = 0</tt> only variables involved in VUBs are processed.
426
+ If <tt>type = n > 0</tt>, only the n most expensive VUB variables
427
+ are processed, where it is assumed that x is at its maximum so delta
428
+ would have to go to 1 (if x not at bound).
429
+
430
+ If \p allowMultipleBinary is true, then a VUB constraint is a row with
431
+ one continuous variable and any number of binary variables.
432
+
433
+ If <tt>useCutoff < 1.0e30</tt>, the original objective is installed as a
434
+ constraint with \p useCutoff as a bound.
435
+ */
436
+ bool tightenVubs(int type, bool allowMultipleBinary = false,
437
+ double useCutoff = 1.0e50);
438
+
439
+ /** \brief For variables involved in VUB constraints, see if we can tighten
440
+ bounds by solving lp's
441
+
442
+ This version is just handed a list of variables to be processed.
443
+ */
444
+ bool tightenVubs(int numberVubs, const int *which,
445
+ double useCutoff = 1.0e50);
446
+ /**
447
+ Analyze problem to find a minimum change in the objective function.
448
+ */
449
+ void analyzeObjective();
450
+ /** Returns postProcessed solution in solver(called from event handler)
451
+ Normally used for integer solution (not really tested otherwise)
452
+ solutionType 1 is best integer so far, 0 is current solution
453
+ (may not be integer) */
454
+ const OsiSolverInterface *postProcessedSolver(int solutionType = 1);
455
+
456
+ /**
457
+ Add additional integers.
458
+ */
459
+ void AddIntegers();
460
+ /**
461
+ Save copy of the model.
462
+ */
463
+ void saveModel(OsiSolverInterface *saveSolver, double *checkCutoffForRestart, bool *feasible);
464
+ /**
465
+ Flip direction of optimization on all models
466
+ */
467
+ void flipModel();
468
+ /**
469
+ Clean model i.e. make SOS/integer variables exactly at bound if needed.
470
+ Only if moreSpecialOptions2_ 15 bit set (32768) as there is a small
471
+ overhead (more2 in standalone cbc).
472
+ Fine tuning can be done in configure with -DCLEAN_INTEGER_VARIABLES
473
+ and -DZERO_ODD_TOLERANCE=1.0e-nn
474
+ If CLEAN_INTEGER_VARIABLES not defined then cleaning is only done for
475
+ SOS variables.
476
+ If ZERO_ODD_TOLERANCE not defined then 1.0e-14 used. You can define as
477
+ 0.0 if you are paranoid.
478
+ Returns number of variables forced out
479
+ cleanVariables array will be used if exists
480
+ */
481
+ int cleanBounds(OsiSolverInterface *solver, char *cleanVariables);
482
+ /// Sets up cleanVariables array (i.e. ones to be careful about)
483
+ char *setupCleanVariables();
484
+ //@}
485
+
486
+ /** \name Object manipulation routines
487
+
488
+ See OsiObject for an explanation of `object' in the context of CbcModel.
489
+ */
490
+ //@{
491
+
492
+ /// Get the number of objects
493
+ inline int numberObjects() const
494
+ {
495
+ return numberObjects_;
496
+ }
497
+ /// Set the number of objects
498
+ inline void setNumberObjects(int number)
499
+ {
500
+ numberObjects_ = number;
501
+ }
502
+
503
+ /// Get the array of objects
504
+ inline OsiObject **objects() const
505
+ {
506
+ return object_;
507
+ }
508
+
509
+ /// Get the specified object
510
+ const inline OsiObject *object(int which) const
511
+ {
512
+ return object_[which];
513
+ }
514
+ /// Get the specified object
515
+ inline OsiObject *modifiableObject(int which) const
516
+ {
517
+ return object_[which];
518
+ }
519
+
520
+ void setOptionalInteger(int index);
521
+
522
+ /// Delete all object information (and just back to integers if true)
523
+ void deleteObjects(bool findIntegers = true);
524
+
525
+ /** Add in object information.
526
+
527
+ Objects are cloned; the owner can delete the originals.
528
+ */
529
+ void addObjects(int numberObjects, OsiObject **objects);
530
+
531
+ /** Add in object information.
532
+
533
+ Objects are cloned; the owner can delete the originals.
534
+ */
535
+ void addObjects(int numberObjects, CbcObject **objects);
536
+
537
+ /// Ensure attached objects point to this model.
538
+ void synchronizeModel();
539
+
540
+ /** \brief Identify integer variables and create corresponding objects.
541
+
542
+ Record integer variables and create an CbcSimpleInteger object for each
543
+ one.
544
+ If \p startAgain is true, a new scan is forced, overwriting any existing
545
+ integer variable information.
546
+ If type > 0 then 1==PseudoCost, 2 new ones low priority
547
+ */
548
+
549
+ void findIntegers(bool startAgain, int type = 0);
550
+ /** Add SOS info to solver -
551
+ Overwrites SOS information in solver with information
552
+ in CbcModel. Has no effect with some solvers.
553
+ Also updates integer info. */
554
+ void addSOSEtcToSolver();
555
+
556
+ #ifdef SWITCH_VARIABLES
557
+ /// Convert Dynamic to Switching
558
+ int findSwitching();
559
+ /// Fix associated variables
560
+ int fixAssociated(OsiSolverInterface *solver, int cleanBasis);
561
+ /// Debug associated variables
562
+ int checkAssociated(const OsiSolverInterface *solver,
563
+ const double *solution, int printLevel);
564
+ #endif
565
+ //@}
566
+
567
+ //---------------------------------------------------------------------------
568
+
569
+ /**@name Parameter set/get methods
570
+
571
+ The set methods return true if the parameter was set to the given value,
572
+ false if the value of the parameter is out of range.
573
+
574
+ The get methods return the value of the parameter.
575
+
576
+ */
577
+ //@{
578
+ /// Set an integer parameter
579
+ inline bool setIntParam(CbcIntParam key, int value)
580
+ {
581
+ intParam_[key] = value;
582
+ return true;
583
+ }
584
+ /// Set a double parameter
585
+ inline bool setDblParam(CbcDblParam key, double value)
586
+ {
587
+ dblParam_[key] = value;
588
+ return true;
589
+ }
590
+ /// Get an integer parameter
591
+ inline int getIntParam(CbcIntParam key) const
592
+ {
593
+ return intParam_[key];
594
+ }
595
+ /// Get a double parameter
596
+ inline double getDblParam(CbcDblParam key) const
597
+ {
598
+ return dblParam_[key];
599
+ }
600
+ /*! \brief Set cutoff bound on the objective function.
601
+
602
+ When using strict comparison, the bound is adjusted by a tolerance to
603
+ avoid accidentally cutting off the optimal solution.
604
+ */
605
+ void setCutoff(double value);
606
+
607
+ /// Get the cutoff bound on the objective function - always as minimize
608
+ inline double getCutoff() const
609
+ { //double value ;
610
+ //solver_->getDblParam(OsiDualObjectiveLimit,value) ;
611
+ //assert( dblParam_[CbcCurrentCutoff]== value * solver_->getObjSense());
612
+ return dblParam_[CbcCurrentCutoff];
613
+ }
614
+
615
+ /// Set the \link CbcModel::CbcMaxNumNode maximum node limit \endlink
616
+ inline bool setMaximumNodes(int value)
617
+ {
618
+ return setIntParam(CbcMaxNumNode, value);
619
+ }
620
+
621
+ /// Get the \link CbcModel::CbcMaxNumNode maximum node limit \endlink
622
+ inline int getMaximumNodes() const
623
+ {
624
+ return getIntParam(CbcMaxNumNode);
625
+ }
626
+
627
+ /** Set the
628
+ \link CbcModel::CbcMaxNumSol maximum number of solutions \endlink
629
+ desired.
630
+ */
631
+ inline bool setMaximumSolutions(int value)
632
+ {
633
+ return setIntParam(CbcMaxNumSol, value);
634
+ }
635
+ /** Get the
636
+ \link CbcModel::CbcMaxNumSol maximum number of solutions \endlink
637
+ desired.
638
+ */
639
+ inline int getMaximumSolutions() const
640
+ {
641
+ return getIntParam(CbcMaxNumSol);
642
+ }
643
+ /// Set the printing mode
644
+ inline bool setPrintingMode(int value)
645
+ {
646
+ return setIntParam(CbcPrinting, value);
647
+ }
648
+
649
+ /// Get the printing mode
650
+ inline int getPrintingMode() const
651
+ {
652
+ return getIntParam(CbcPrinting);
653
+ }
654
+
655
+ /** Set the
656
+ \link CbcModel::CbcMaximumSeconds maximum number of seconds \endlink
657
+ desired.
658
+ */
659
+ inline bool setMaximumSeconds(double value)
660
+ {
661
+ return setDblParam(CbcMaximumSeconds, value);
662
+ }
663
+ /** Get the
664
+ \link CbcModel::CbcMaximumSeconds maximum number of seconds \endlink
665
+ desired.
666
+ */
667
+ inline double getMaximumSeconds() const
668
+ {
669
+ return getDblParam(CbcMaximumSeconds);
670
+ }
671
+ /// Current time since start of branchAndbound
672
+ double getCurrentSeconds() const;
673
+
674
+ /// Return true if maximum time reached
675
+ bool maximumSecondsReached() const;
676
+
677
+ /** Set the
678
+ \link CbcModel::CbcIntegerTolerance integrality tolerance \endlink
679
+ */
680
+ inline bool setIntegerTolerance(double value)
681
+ {
682
+ return setDblParam(CbcIntegerTolerance, value);
683
+ }
684
+ /** Get the
685
+ \link CbcModel::CbcIntegerTolerance integrality tolerance \endlink
686
+ */
687
+ inline double getIntegerTolerance() const
688
+ {
689
+ return getDblParam(CbcIntegerTolerance);
690
+ }
691
+
692
+ /** Set the
693
+ \link CbcModel::CbcInfeasibilityWeight
694
+ weight per integer infeasibility \endlink
695
+ */
696
+ inline bool setInfeasibilityWeight(double value)
697
+ {
698
+ return setDblParam(CbcInfeasibilityWeight, value);
699
+ }
700
+ /** Get the
701
+ \link CbcModel::CbcInfeasibilityWeight
702
+ weight per integer infeasibility \endlink
703
+ */
704
+ inline double getInfeasibilityWeight() const
705
+ {
706
+ return getDblParam(CbcInfeasibilityWeight);
707
+ }
708
+
709
+ /** Set the \link CbcModel::CbcAllowableGap allowable gap \endlink
710
+ between the best known solution and the best possible solution.
711
+ */
712
+ inline bool setAllowableGap(double value)
713
+ {
714
+ return setDblParam(CbcAllowableGap, value);
715
+ }
716
+ /** Get the \link CbcModel::CbcAllowableGap allowable gap \endlink
717
+ between the best known solution and the best possible solution.
718
+ */
719
+ inline double getAllowableGap() const
720
+ {
721
+ return getDblParam(CbcAllowableGap);
722
+ }
723
+
724
+ /** Set the \link CbcModel::CbcAllowableFractionGap fraction allowable gap \endlink
725
+ between the best known solution and the best possible solution.
726
+ */
727
+ inline bool setAllowableFractionGap(double value)
728
+ {
729
+ return setDblParam(CbcAllowableFractionGap, value);
730
+ }
731
+ /** Get the \link CbcModel::CbcAllowableFractionGap fraction allowable gap \endlink
732
+ between the best known solution and the best possible solution.
733
+ */
734
+ inline double getAllowableFractionGap() const
735
+ {
736
+ return getDblParam(CbcAllowableFractionGap);
737
+ }
738
+ /** Set the \link CbcModel::CbcAllowableFractionGap percentage allowable gap \endlink
739
+ between the best known solution and the best possible solution.
740
+ */
741
+ inline bool setAllowablePercentageGap(double value)
742
+ {
743
+ return setDblParam(CbcAllowableFractionGap, value * 0.01);
744
+ }
745
+ /** Get the \link CbcModel::CbcAllowableFractionGap percentage allowable gap \endlink
746
+ between the best known solution and the best possible solution.
747
+ */
748
+ inline double getAllowablePercentageGap() const
749
+ {
750
+ return 100.0 * getDblParam(CbcAllowableFractionGap);
751
+ }
752
+ /** Set the \link CbcModel::CbcHeuristicGap heuristic gap \endlink
753
+ between the best known solution and the best possible solution.
754
+ */
755
+ inline bool setHeuristicGap(double value)
756
+ {
757
+ return setDblParam(CbcHeuristicGap, value);
758
+ }
759
+ /** Get the \link CbcModel::CbcHeuristicGap heuristic gap \endlink
760
+ between the best known solution and the best possible solution.
761
+ */
762
+ inline double getHeuristicGap() const
763
+ {
764
+ return getDblParam(CbcHeuristicGap);
765
+ }
766
+
767
+ /** Set the \link CbcModel::CbcHeuristicFractionGap fraction heuristic gap \endlink
768
+ between the best known solution and the best possible solution.
769
+ */
770
+ inline bool setHeuristicFractionGap(double value)
771
+ {
772
+ return setDblParam(CbcHeuristicFractionGap, value);
773
+ }
774
+ /** Get the \link CbcModel::CbcHeuristicFractionGap fraction heuristic gap \endlink
775
+ between the best known solution and the best possible solution.
776
+ */
777
+ inline double getHeuristicFractionGap() const
778
+ {
779
+ return getDblParam(CbcHeuristicFractionGap);
780
+ }
781
+ /** Set the
782
+ \link CbcModel::CbcCutoffIncrement \endlink
783
+ desired.
784
+ */
785
+ inline bool setCutoffIncrement(double value)
786
+ {
787
+ return setDblParam(CbcCutoffIncrement, value);
788
+ }
789
+ /** Get the
790
+ \link CbcModel::CbcCutoffIncrement \endlink
791
+ desired.
792
+ */
793
+ inline double getCutoffIncrement() const
794
+ {
795
+ return getDblParam(CbcCutoffIncrement);
796
+ }
797
+ /// See if can stop on gap
798
+ bool canStopOnGap() const;
799
+
800
+ /** Pass in target solution and optional priorities.
801
+ If priorities then >0 means only branch if incorrect
802
+ while <0 means branch even if correct. +1 or -1 are
803
+ highest priority */
804
+ void setHotstartSolution(const double *solution, const int *priorities = NULL);
805
+
806
+ /// Set the minimum drop to continue cuts
807
+ inline void setMinimumDrop(double value)
808
+ {
809
+ minimumDrop_ = value;
810
+ }
811
+ /// Get the minimum drop to continue cuts
812
+ inline double getMinimumDrop() const
813
+ {
814
+ return minimumDrop_;
815
+ }
816
+
817
+ /** Set the maximum number of cut passes at root node (default 20)
818
+ Minimum drop can also be used for fine tuning */
819
+ inline void setMaximumCutPassesAtRoot(int value)
820
+ {
821
+ maximumCutPassesAtRoot_ = value;
822
+ }
823
+ /** Get the maximum number of cut passes at root node */
824
+ inline int getMaximumCutPassesAtRoot() const
825
+ {
826
+ return maximumCutPassesAtRoot_;
827
+ }
828
+
829
+ /** Set the maximum number of cut passes at other nodes (default 10)
830
+ Minimum drop can also be used for fine tuning */
831
+ inline void setMaximumCutPasses(int value)
832
+ {
833
+ maximumCutPasses_ = value;
834
+ }
835
+ /** Get the maximum number of cut passes at other nodes (default 10) */
836
+ inline int getMaximumCutPasses() const
837
+ {
838
+ return maximumCutPasses_;
839
+ }
840
+ /** Get current cut pass number in this round of cuts.
841
+ (1 is first pass) */
842
+ inline int getCurrentPassNumber() const
843
+ {
844
+ return currentPassNumber_;
845
+ }
846
+ /** Set current cut pass number in this round of cuts.
847
+ (1 is first pass) */
848
+ inline void setCurrentPassNumber(int value)
849
+ {
850
+ currentPassNumber_ = value;
851
+ }
852
+
853
+ /** Set the maximum number of candidates to be evaluated for strong
854
+ branching.
855
+
856
+ A value of 0 disables strong branching.
857
+ */
858
+ void setNumberStrong(int number);
859
+ /** Get the maximum number of candidates to be evaluated for strong
860
+ branching.
861
+ */
862
+ inline int numberStrong() const
863
+ {
864
+ return numberStrong_;
865
+ }
866
+ /** Set global preferred way to branch
867
+ -1 down, +1 up, 0 no preference */
868
+ inline void setPreferredWay(int value)
869
+ {
870
+ preferredWay_ = value;
871
+ }
872
+ /** Get the preferred way to branch (default 0) */
873
+ inline int getPreferredWay() const
874
+ {
875
+ return preferredWay_;
876
+ }
877
+ /// Get at which depths to do cuts
878
+ inline int whenCuts() const
879
+ {
880
+ return whenCuts_;
881
+ }
882
+ /// Set at which depths to do cuts
883
+ inline void setWhenCuts(int value)
884
+ {
885
+ whenCuts_ = value;
886
+ }
887
+ /** Return true if we want to do cuts
888
+ If allowForTopOfTree zero then just does on multiples of depth
889
+ if 1 then allows for doing at top of tree
890
+ if 2 then says if cuts allowed anywhere apart from root
891
+ */
892
+ bool doCutsNow(int allowForTopOfTree) const;
893
+
894
+ /** Set the number of branches before pseudo costs believed
895
+ in dynamic strong branching.
896
+
897
+ A value of 0 disables dynamic strong branching.
898
+ */
899
+ void setNumberBeforeTrust(int number);
900
+ /** get the number of branches before pseudo costs believed
901
+ in dynamic strong branching. */
902
+ inline int numberBeforeTrust() const
903
+ {
904
+ return numberBeforeTrust_;
905
+ }
906
+ /** Set the number of variables for which to compute penalties
907
+ in dynamic strong branching.
908
+
909
+ A value of 0 disables penalties.
910
+ */
911
+ void setNumberPenalties(int number);
912
+ /** get the number of variables for which to compute penalties
913
+ in dynamic strong branching. */
914
+ inline int numberPenalties() const
915
+ {
916
+ return numberPenalties_;
917
+ }
918
+ /// Pointer to top of tree
919
+ inline const CbcFullNodeInfo *topOfTree() const
920
+ {
921
+ return topOfTree_;
922
+ }
923
+ /// Number of analyze iterations to do
924
+ inline void setNumberAnalyzeIterations(int number)
925
+ {
926
+ numberAnalyzeIterations_ = number;
927
+ }
928
+ inline int numberAnalyzeIterations() const
929
+ {
930
+ return numberAnalyzeIterations_;
931
+ }
932
+ /** Get scale factor to make penalties match strong.
933
+ Should/will be computed */
934
+ inline double penaltyScaleFactor() const
935
+ {
936
+ return penaltyScaleFactor_;
937
+ }
938
+ /** Set scale factor to make penalties match strong.
939
+ Should/will be computed */
940
+ void setPenaltyScaleFactor(double value);
941
+ /** Problem type as set by user or found by analysis. This will be extended
942
+ 0 - not known
943
+ 1 - Set partitioning <=
944
+ 2 - Set partitioning ==
945
+ 3 - Set covering
946
+ 4 - all +- 1 or all +1 and odd
947
+ */
948
+ void inline setProblemType(int number)
949
+ {
950
+ problemType_ = number;
951
+ }
952
+ inline int problemType() const
953
+ {
954
+ return problemType_;
955
+ }
956
+ /// Current depth
957
+ inline int currentDepth() const
958
+ {
959
+ return currentDepth_;
960
+ }
961
+
962
+ /// Set how often to scan global cuts
963
+ void setHowOftenGlobalScan(int number);
964
+ /// Get how often to scan global cuts
965
+ inline int howOftenGlobalScan() const
966
+ {
967
+ return howOftenGlobalScan_;
968
+ }
969
+ /// Original columns as created by integerPresolve or preprocessing
970
+ inline int *originalColumns() const
971
+ {
972
+ return originalColumns_;
973
+ }
974
+ /// Set original columns as created by preprocessing
975
+ void setOriginalColumns(const int *originalColumns,
976
+ int numberGood = COIN_INT_MAX);
977
+ /// Create conflict cut (well - most of)
978
+ OsiRowCut *conflictCut(const OsiSolverInterface *solver, bool &localCuts);
979
+
980
+ /** Set the print frequency.
981
+
982
+ Controls the number of nodes evaluated between status prints.
983
+ If <tt>number <=0</tt> the print frequency is set to 100 nodes for large
984
+ problems, 1000 for small problems.
985
+ Print frequency has very slight overhead if small.
986
+ */
987
+ inline void setPrintFrequency(int number)
988
+ {
989
+ printFrequency_ = number;
990
+ }
991
+ /// Get the print frequency
992
+ inline int printFrequency() const
993
+ {
994
+ return printFrequency_;
995
+ }
996
+ //@}
997
+
998
+ //---------------------------------------------------------------------------
999
+ ///@name Methods returning info on how the solution process terminated
1000
+ //@{
1001
+ /// Are there a numerical difficulties?
1002
+ bool isAbandoned() const;
1003
+ /// Is optimality proven?
1004
+ bool isProvenOptimal() const;
1005
+ /// Is infeasiblity proven (or none better than cutoff)?
1006
+ bool isProvenInfeasible() const;
1007
+ /// Was continuous solution unbounded
1008
+ bool isContinuousUnbounded() const;
1009
+ /// Was continuous solution unbounded
1010
+ bool isProvenDualInfeasible() const;
1011
+ /// Node limit reached?
1012
+ bool isNodeLimitReached() const;
1013
+ /// Time limit reached?
1014
+ bool isSecondsLimitReached() const;
1015
+ /// Solution limit reached?
1016
+ bool isSolutionLimitReached() const;
1017
+ /// Get how many iterations it took to solve the problem.
1018
+ inline int getIterationCount() const
1019
+ {
1020
+ return numberIterations_;
1021
+ }
1022
+ /// Increment how many iterations it took to solve the problem.
1023
+ inline void incrementIterationCount(int value)
1024
+ {
1025
+ numberIterations_ += value;
1026
+ }
1027
+ /// Get how many Nodes it took to solve the problem (including those in complete fathoming B&B inside CLP).
1028
+ inline int getNodeCount() const
1029
+ {
1030
+ return numberNodes_;
1031
+ }
1032
+ /// Increment how many nodes it took to solve the problem.
1033
+ inline void incrementNodeCount(int value)
1034
+ {
1035
+ numberNodes_ += value;
1036
+ }
1037
+ /// Get how many Nodes were enumerated in complete fathoming B&B inside CLP
1038
+ inline int getExtraNodeCount() const
1039
+ {
1040
+ return numberExtraNodes_;
1041
+ }
1042
+ /// Get how many times complete fathoming B&B was done
1043
+ inline int getFathomCount() const
1044
+ {
1045
+ return numberFathoms_;
1046
+ }
1047
+ /** Final status of problem
1048
+ Some of these can be found out by is...... functions
1049
+ -1 before branchAndBound
1050
+ 0 finished - check isProvenOptimal or isProvenInfeasible to see if solution found
1051
+ (or check value of best solution)
1052
+ 1 stopped - on maxnodes, maxsols, maxtime
1053
+ 2 difficulties so run was abandoned
1054
+ (5 event user programmed event occurred)
1055
+ */
1056
+ inline int status() const
1057
+ {
1058
+ return status_;
1059
+ }
1060
+ inline void setProblemStatus(int value)
1061
+ {
1062
+ status_ = value;
1063
+ }
1064
+ /** Secondary status of problem
1065
+ -1 unset (status_ will also be -1)
1066
+ 0 search completed with solution
1067
+ 1 linear relaxation not feasible (or worse than cutoff)
1068
+ 2 stopped on gap
1069
+ 3 stopped on nodes
1070
+ 4 stopped on time
1071
+ 5 stopped on user event
1072
+ 6 stopped on solutions
1073
+ 7 linear relaxation unbounded
1074
+ 8 stopped on iteration limit
1075
+ */
1076
+ inline int secondaryStatus() const
1077
+ {
1078
+ return secondaryStatus_;
1079
+ }
1080
+ inline void setSecondaryStatus(int value)
1081
+ {
1082
+ secondaryStatus_ = value;
1083
+ }
1084
+ /// Are there numerical difficulties (for initialSolve) ?
1085
+ bool isInitialSolveAbandoned() const;
1086
+ /// Is optimality proven (for initialSolve) ?
1087
+ bool isInitialSolveProvenOptimal() const;
1088
+ /// Is primal infeasiblity proven (for initialSolve) ?
1089
+ bool isInitialSolveProvenPrimalInfeasible() const;
1090
+ /// Is dual infeasiblity proven (for initialSolve) ?
1091
+ bool isInitialSolveProvenDualInfeasible() const;
1092
+
1093
+ //@}
1094
+
1095
+ //---------------------------------------------------------------------------
1096
+ /**@name Problem information methods
1097
+
1098
+ These methods call the solver's query routines to return
1099
+ information about the problem referred to by the current object.
1100
+ Querying a problem that has no data associated with it result in
1101
+ zeros for the number of rows and columns, and NULL pointers from
1102
+ the methods that return vectors.
1103
+
1104
+ Const pointers returned from any data-query method are valid as
1105
+ long as the data is unchanged and the solver is not called.
1106
+ */
1107
+ //@{
1108
+ /// Number of rows in continuous (root) problem.
1109
+ inline int numberRowsAtContinuous() const
1110
+ {
1111
+ return numberRowsAtContinuous_;
1112
+ }
1113
+
1114
+ /// Get number of columns
1115
+ inline int getNumCols() const
1116
+ {
1117
+ return solver_->getNumCols();
1118
+ }
1119
+
1120
+ /// Get number of rows
1121
+ inline int getNumRows() const
1122
+ {
1123
+ return solver_->getNumRows();
1124
+ }
1125
+
1126
+ /// Get number of nonzero elements
1127
+ inline CoinBigIndex getNumElements() const
1128
+ {
1129
+ return solver_->getNumElements();
1130
+ }
1131
+
1132
+ /// Number of integers in problem
1133
+ inline int numberIntegers() const
1134
+ {
1135
+ return numberIntegers_;
1136
+ }
1137
+ // Integer variables
1138
+ inline const int *integerVariable() const
1139
+ {
1140
+ return integerVariable_;
1141
+ }
1142
+ /// Whether or not integer
1143
+ inline char integerType(int i) const
1144
+ {
1145
+ assert(integerInfo_);
1146
+ assert(integerInfo_[i] == 0 || integerInfo_[i] == 1);
1147
+ return integerInfo_[i];
1148
+ }
1149
+ /// Whether or not integer
1150
+ inline const char *integerType() const
1151
+ {
1152
+ return integerInfo_;
1153
+ }
1154
+
1155
+ /// Get pointer to array[getNumCols()] of column lower bounds
1156
+ inline const double *getColLower() const
1157
+ {
1158
+ return solver_->getColLower();
1159
+ }
1160
+
1161
+ /// Get pointer to array[getNumCols()] of column upper bounds
1162
+ inline const double *getColUpper() const
1163
+ {
1164
+ return solver_->getColUpper();
1165
+ }
1166
+
1167
+ /** Get pointer to array[getNumRows()] of row constraint senses.
1168
+ <ul>
1169
+ <li>'L': <= constraint
1170
+ <li>'E': = constraint
1171
+ <li>'G': >= constraint
1172
+ <li>'R': ranged constraint
1173
+ <li>'N': free constraint
1174
+ </ul>
1175
+ */
1176
+ inline const char *getRowSense() const
1177
+ {
1178
+ return solver_->getRowSense();
1179
+ }
1180
+
1181
+ /** Get pointer to array[getNumRows()] of rows right-hand sides
1182
+ <ul>
1183
+ <li> if rowsense()[i] == 'L' then rhs()[i] == rowupper()[i]
1184
+ <li> if rowsense()[i] == 'G' then rhs()[i] == rowlower()[i]
1185
+ <li> if rowsense()[i] == 'R' then rhs()[i] == rowupper()[i]
1186
+ <li> if rowsense()[i] == 'N' then rhs()[i] == 0.0
1187
+ </ul>
1188
+ */
1189
+ inline const double *getRightHandSide() const
1190
+ {
1191
+ return solver_->getRightHandSide();
1192
+ }
1193
+
1194
+ /** Get pointer to array[getNumRows()] of row ranges.
1195
+ <ul>
1196
+ <li> if rowsense()[i] == 'R' then
1197
+ rowrange()[i] == rowupper()[i] - rowlower()[i]
1198
+ <li> if rowsense()[i] != 'R' then
1199
+ rowrange()[i] is 0.0
1200
+ </ul>
1201
+ */
1202
+ inline const double *getRowRange() const
1203
+ {
1204
+ return solver_->getRowRange();
1205
+ }
1206
+
1207
+ /// Get pointer to array[getNumRows()] of row lower bounds
1208
+ inline const double *getRowLower() const
1209
+ {
1210
+ return solver_->getRowLower();
1211
+ }
1212
+
1213
+ /// Get pointer to array[getNumRows()] of row upper bounds
1214
+ inline const double *getRowUpper() const
1215
+ {
1216
+ return solver_->getRowUpper();
1217
+ }
1218
+
1219
+ /// Get pointer to array[getNumCols()] of objective function coefficients
1220
+ inline const double *getObjCoefficients() const
1221
+ {
1222
+ return solver_->getObjCoefficients();
1223
+ }
1224
+
1225
+ /// Get objective function sense (1 for min (default), -1 for max)
1226
+ inline double getObjSense() const
1227
+ {
1228
+ //assert (dblParam_[CbcOptimizationDirection]== solver_->getObjSense());
1229
+ return dblParam_[CbcOptimizationDirection];
1230
+ }
1231
+
1232
+ /// Return true if variable is continuous
1233
+ inline bool isContinuous(int colIndex) const
1234
+ {
1235
+ return solver_->isContinuous(colIndex);
1236
+ }
1237
+
1238
+ /// Return true if variable is binary
1239
+ inline bool isBinary(int colIndex) const
1240
+ {
1241
+ return solver_->isBinary(colIndex);
1242
+ }
1243
+
1244
+ /** Return true if column is integer.
1245
+ Note: This function returns true if the the column
1246
+ is binary or a general integer.
1247
+ */
1248
+ inline bool isInteger(int colIndex) const
1249
+ {
1250
+ return solver_->isInteger(colIndex);
1251
+ }
1252
+
1253
+ /// Return true if variable is general integer
1254
+ inline bool isIntegerNonBinary(int colIndex) const
1255
+ {
1256
+ return solver_->isIntegerNonBinary(colIndex);
1257
+ }
1258
+
1259
+ /// Return true if variable is binary and not fixed at either bound
1260
+ inline bool isFreeBinary(int colIndex) const
1261
+ {
1262
+ return solver_->isFreeBinary(colIndex);
1263
+ }
1264
+
1265
+ /// Get pointer to row-wise copy of matrix
1266
+ inline const CoinPackedMatrix *getMatrixByRow() const
1267
+ {
1268
+ return solver_->getMatrixByRow();
1269
+ }
1270
+
1271
+ /// Get pointer to column-wise copy of matrix
1272
+ inline const CoinPackedMatrix *getMatrixByCol() const
1273
+ {
1274
+ return solver_->getMatrixByCol();
1275
+ }
1276
+
1277
+ /// Get solver's value for infinity
1278
+ inline double getInfinity() const
1279
+ {
1280
+ return solver_->getInfinity();
1281
+ }
1282
+ /// Get pointer to array[getNumCols()] (for speed) of column lower bounds
1283
+ inline const double *getCbcColLower() const
1284
+ {
1285
+ return cbcColLower_;
1286
+ }
1287
+ /// Get pointer to array[getNumCols()] (for speed) of column upper bounds
1288
+ inline const double *getCbcColUpper() const
1289
+ {
1290
+ return cbcColUpper_;
1291
+ }
1292
+ /// Get pointer to array[getNumRows()] (for speed) of row lower bounds
1293
+ inline const double *getCbcRowLower() const
1294
+ {
1295
+ return cbcRowLower_;
1296
+ }
1297
+ /// Get pointer to array[getNumRows()] (for speed) of row upper bounds
1298
+ inline const double *getCbcRowUpper() const
1299
+ {
1300
+ return cbcRowUpper_;
1301
+ }
1302
+ /// Get pointer to array[getNumCols()] (for speed) of primal solution vector
1303
+ inline const double *getCbcColSolution() const
1304
+ {
1305
+ return cbcColSolution_;
1306
+ }
1307
+ /// Get pointer to array[getNumRows()] (for speed) of dual prices
1308
+ inline const double *getCbcRowPrice() const
1309
+ {
1310
+ return cbcRowPrice_;
1311
+ }
1312
+ /// Get a pointer to array[getNumCols()] (for speed) of reduced costs
1313
+ inline const double *getCbcReducedCost() const
1314
+ {
1315
+ return cbcReducedCost_;
1316
+ }
1317
+ /// Get pointer to array[getNumRows()] (for speed) of row activity levels.
1318
+ inline const double *getCbcRowActivity() const
1319
+ {
1320
+ return cbcRowActivity_;
1321
+ }
1322
+ //@}
1323
+
1324
+ /**@name Methods related to querying the solution */
1325
+ //@{
1326
+ /// Holds solution at continuous (after cuts if branchAndBound called)
1327
+ inline double *continuousSolution() const
1328
+ {
1329
+ return continuousSolution_;
1330
+ }
1331
+ /** Array marked whenever a solution is found if non-zero.
1332
+ Code marks if heuristic returns better so heuristic
1333
+ need only mark if it wants to on solutions which
1334
+ are worse than current */
1335
+ inline int *usedInSolution() const
1336
+ {
1337
+ return usedInSolution_;
1338
+ }
1339
+ /// Increases usedInSolution for nonzeros
1340
+ void incrementUsed(const double *solution);
1341
+ /// Record a new incumbent solution and update objectiveValue
1342
+ void setBestSolution(CBC_Message how,
1343
+ double &objectiveValue, const double *solution,
1344
+ int fixVariables = 0);
1345
+ /// Just update objectiveValue
1346
+ void setBestObjectiveValue(double objectiveValue);
1347
+ /// Deals with event handler and solution
1348
+ CbcEventHandler::CbcAction dealWithEventHandler(CbcEventHandler::CbcEvent event,
1349
+ double objValue,
1350
+ const double *solution);
1351
+
1352
+ /** Call this to really test if a valid solution can be feasible
1353
+ Solution is number columns in size.
1354
+ If fixVariables true then bounds of continuous solver updated.
1355
+ Returns objective value (worse than cutoff if not feasible)
1356
+ Previously computed objective value is now passed in (in case user does not do solve)
1357
+ virtual so user can override
1358
+ */
1359
+ virtual double checkSolution(double cutoff, double *solution,
1360
+ int fixVariables, double originalObjValue);
1361
+ /** Test the current solution for feasiblility.
1362
+
1363
+ Scan all objects for indications of infeasibility. This is broken down
1364
+ into simple integer infeasibility (\p numberIntegerInfeasibilities)
1365
+ and all other reports of infeasibility (\p numberObjectInfeasibilities).
1366
+ */
1367
+ bool feasibleSolution(int &numberIntegerInfeasibilities,
1368
+ int &numberObjectInfeasibilities) const;
1369
+
1370
+ /** Solution to the most recent lp relaxation.
1371
+
1372
+ The solver's solution to the most recent lp relaxation.
1373
+ */
1374
+
1375
+ inline double *currentSolution() const
1376
+ {
1377
+ return currentSolution_;
1378
+ }
1379
+ /** For testing infeasibilities - will point to
1380
+ currentSolution_ or solver-->getColSolution()
1381
+ */
1382
+ inline const double *testSolution() const
1383
+ {
1384
+ return testSolution_;
1385
+ }
1386
+ inline void setTestSolution(const double *solution)
1387
+ {
1388
+ testSolution_ = solution;
1389
+ }
1390
+ /// Make sure region there and optionally copy solution
1391
+ void reserveCurrentSolution(const double *solution = NULL);
1392
+
1393
+ /// Get pointer to array[getNumCols()] of primal solution vector
1394
+ inline const double *getColSolution() const
1395
+ {
1396
+ return solver_->getColSolution();
1397
+ }
1398
+
1399
+ /// Get pointer to array[getNumRows()] of dual prices
1400
+ inline const double *getRowPrice() const
1401
+ {
1402
+ return solver_->getRowPrice();
1403
+ }
1404
+
1405
+ /// Get a pointer to array[getNumCols()] of reduced costs
1406
+ inline const double *getReducedCost() const
1407
+ {
1408
+ return solver_->getReducedCost();
1409
+ }
1410
+
1411
+ /// Get pointer to array[getNumRows()] of row activity levels.
1412
+ inline const double *getRowActivity() const
1413
+ {
1414
+ return solver_->getRowActivity();
1415
+ }
1416
+ /// Return true if model flipped to make minimize (for printing)
1417
+ inline bool modelFlipped() const
1418
+ {
1419
+ return (moreSpecialOptions2_&67108864)!=0;
1420
+ }
1421
+ /// Return objective function value with sign corrected
1422
+ inline double trueObjValue(double value) const
1423
+ {
1424
+ return (moreSpecialOptions2_&67108864)==0 ? value : -value;
1425
+ }
1426
+ inline double trueBestObjValue() const
1427
+ {
1428
+ return (moreSpecialOptions2_&67108864)==0 ? bestObjective_ : -bestObjective_;
1429
+ }
1430
+ /// Return cutoff value with sign corrected
1431
+ inline double trueCutoff() const
1432
+ {
1433
+ return (moreSpecialOptions2_&67108864)==0 ?
1434
+ dblParam_[CbcCurrentCutoff] : -dblParam_[CbcCurrentCutoff];
1435
+ }
1436
+
1437
+ /// Get current objective function value
1438
+ inline double getCurrentObjValue() const
1439
+ {
1440
+ return dblParam_[CbcCurrentObjectiveValue];
1441
+ }
1442
+ /// Get current minimization objective function value
1443
+ inline double getCurrentMinimizationObjValue() const
1444
+ {
1445
+ return dblParam_[CbcCurrentMinimizationObjectiveValue];
1446
+ }
1447
+
1448
+ /// Get best objective function value as minimization
1449
+ inline double getMinimizationObjValue() const
1450
+ {
1451
+ return bestObjective_;
1452
+ }
1453
+ /// Set best objective function value as minimization
1454
+ inline void setMinimizationObjValue(double value)
1455
+ {
1456
+ bestObjective_ = value;
1457
+ }
1458
+
1459
+ /// Get best objective function value
1460
+ inline double getObjValue() const
1461
+ {
1462
+ return bestObjective_ * solver_->getObjSense();
1463
+ }
1464
+ /** Get best possible objective function value.
1465
+ This is better of best possible left on tree
1466
+ and best solution found.
1467
+ If called from within branch and cut may be optimistic.
1468
+ */
1469
+ double getBestPossibleObjValue() const;
1470
+ /// Set best objective function value
1471
+ inline void setObjValue(double value)
1472
+ {
1473
+ bestObjective_ = value * solver_->getObjSense();
1474
+ }
1475
+ /// Get solver objective function value (as minimization)
1476
+ inline double getSolverObjValue() const
1477
+ {
1478
+ return solver_->getObjValue() * solver_->getObjSense();
1479
+ }
1480
+
1481
+ /** The best solution to the integer programming problem.
1482
+
1483
+ The best solution to the integer programming problem found during
1484
+ the search. If no solution is found, the method returns null.
1485
+ */
1486
+
1487
+ inline double *bestSolution() const
1488
+ {
1489
+ return bestSolution_;
1490
+ }
1491
+ /** User callable setBestSolution.
1492
+ If check false does not check valid
1493
+ If true then sees if feasible and warns if objective value
1494
+ worse than given (so just set to COIN_DBL_MAX if you don't care).
1495
+ If check true then does not save solution if not feasible
1496
+ */
1497
+ void setBestSolution(const double *solution, int numberColumns,
1498
+ double objectiveValue, bool check = false);
1499
+
1500
+ /// Get number of solutions
1501
+ inline int getSolutionCount() const
1502
+ {
1503
+ return numberSolutions_;
1504
+ }
1505
+
1506
+ /// Set number of solutions (so heuristics will be different)
1507
+ inline void setSolutionCount(int value)
1508
+ {
1509
+ numberSolutions_ = value;
1510
+ }
1511
+ /// Number of saved solutions (including best)
1512
+ int numberSavedSolutions() const;
1513
+ /// Maximum number of extra saved solutions
1514
+ inline int maximumSavedSolutions() const
1515
+ {
1516
+ return maximumSavedSolutions_;
1517
+ }
1518
+ /// Set maximum number of extra saved solutions
1519
+ void setMaximumSavedSolutions(int value);
1520
+ /// Return a saved solution (0==best) - NULL if off end
1521
+ const double *savedSolution(int which) const;
1522
+ /// Return a saved solution objective (0==best) - COIN_DBL_MAX if off end
1523
+ double savedSolutionObjective(int which) const;
1524
+ /// Delete a saved solution and move others up
1525
+ void deleteSavedSolution(int which);
1526
+
1527
+ /** Current phase (so heuristics etc etc can find out).
1528
+ 0 - initial solve
1529
+ 1 - solve with cuts at root
1530
+ 2 - solve with cuts
1531
+ 3 - other e.g. strong branching
1532
+ 4 - trying to validate a solution
1533
+ 5 - at end of search
1534
+ */
1535
+ inline int phase() const
1536
+ {
1537
+ return phase_;
1538
+ }
1539
+
1540
+ /// Get number of heuristic solutions
1541
+ inline int getNumberHeuristicSolutions() const
1542
+ {
1543
+ return numberHeuristicSolutions_;
1544
+ }
1545
+ /// Set number of heuristic solutions
1546
+ inline void setNumberHeuristicSolutions(int value)
1547
+ {
1548
+ numberHeuristicSolutions_ = value;
1549
+ }
1550
+
1551
+ /// Set objective function sense (1 for min (default), -1 for max,)
1552
+ inline void setObjSense(double s)
1553
+ {
1554
+ dblParam_[CbcOptimizationDirection] = s;
1555
+ solver_->setObjSense(s);
1556
+ }
1557
+
1558
+ /// Value of objective at continuous
1559
+ inline double getContinuousObjective() const
1560
+ {
1561
+ return originalContinuousObjective_;
1562
+ }
1563
+ inline void setContinuousObjective(double value)
1564
+ {
1565
+ originalContinuousObjective_ = value;
1566
+ }
1567
+ /// Number of infeasibilities at continuous
1568
+ inline int getContinuousInfeasibilities() const
1569
+ {
1570
+ return continuousInfeasibilities_;
1571
+ }
1572
+ inline void setContinuousInfeasibilities(int value)
1573
+ {
1574
+ continuousInfeasibilities_ = value;
1575
+ }
1576
+ /// Value of objective after root node cuts added
1577
+ inline double rootObjectiveAfterCuts() const
1578
+ {
1579
+ return continuousObjective_;
1580
+ }
1581
+ /// Sum of Changes to objective by first solve
1582
+ inline double sumChangeObjective() const
1583
+ {
1584
+ return sumChangeObjective1_;
1585
+ }
1586
+ /** Number of times global cuts violated. When global cut pool then this
1587
+ should be kept for each cut and type of cut */
1588
+ inline int numberGlobalViolations() const
1589
+ {
1590
+ return numberGlobalViolations_;
1591
+ }
1592
+ inline void clearNumberGlobalViolations()
1593
+ {
1594
+ numberGlobalViolations_ = 0;
1595
+ }
1596
+ /// Whether to force a resolve after takeOffCuts
1597
+ inline bool resolveAfterTakeOffCuts() const
1598
+ {
1599
+ return resolveAfterTakeOffCuts_;
1600
+ }
1601
+ inline void setResolveAfterTakeOffCuts(bool yesNo)
1602
+ {
1603
+ resolveAfterTakeOffCuts_ = yesNo;
1604
+ }
1605
+ /// Maximum number of rows
1606
+ inline int maximumRows() const
1607
+ {
1608
+ return maximumRows_;
1609
+ }
1610
+ /// Work basis for temporary use
1611
+ inline CoinWarmStartBasis &workingBasis()
1612
+ {
1613
+ return workingBasis_;
1614
+ }
1615
+ /// Get number of "iterations" to stop after
1616
+ inline int getStopNumberIterations() const
1617
+ {
1618
+ return stopNumberIterations_;
1619
+ }
1620
+ /// Set number of "iterations" to stop after
1621
+ inline void setStopNumberIterations(int value)
1622
+ {
1623
+ stopNumberIterations_ = value;
1624
+ }
1625
+ /// A pointer to model from CbcHeuristic
1626
+ inline CbcModel *heuristicModel() const
1627
+ {
1628
+ return heuristicModel_;
1629
+ }
1630
+ /// Set a pointer to model from CbcHeuristic
1631
+ inline void setHeuristicModel(CbcModel *model)
1632
+ {
1633
+ heuristicModel_ = model;
1634
+ }
1635
+ //@}
1636
+
1637
+ /** \name Node selection */
1638
+ //@{
1639
+ // Comparison functions (which may be overridden by inheritance)
1640
+ inline CbcCompareBase *nodeComparison() const
1641
+ {
1642
+ return nodeCompare_;
1643
+ }
1644
+ void setNodeComparison(CbcCompareBase *compare);
1645
+ void setNodeComparison(CbcCompareBase &compare);
1646
+ //@}
1647
+
1648
+ /** \name Problem feasibility checking */
1649
+ //@{
1650
+ // Feasibility functions (which may be overridden by inheritance)
1651
+ inline CbcFeasibilityBase *problemFeasibility() const
1652
+ {
1653
+ return problemFeasibility_;
1654
+ }
1655
+ void setProblemFeasibility(CbcFeasibilityBase *feasibility);
1656
+ void setProblemFeasibility(CbcFeasibilityBase &feasibility);
1657
+ //@}
1658
+
1659
+ /** \name Tree methods and subtree methods */
1660
+ //@{
1661
+ /// Tree method e.g. heap (which may be overridden by inheritance)
1662
+ inline CbcTree *tree() const
1663
+ {
1664
+ return tree_;
1665
+ }
1666
+ /// For modifying tree handling (original is cloned)
1667
+ void passInTreeHandler(CbcTree &tree);
1668
+ /** For passing in an CbcModel to do a sub Tree (with derived tree handlers).
1669
+ Passed in model must exist for duration of branch and bound
1670
+ */
1671
+ void passInSubTreeModel(CbcModel &model);
1672
+ /** For retrieving a copy of subtree model with given OsiSolver.
1673
+ If no subtree model will use self (up to user to reset cutoff etc).
1674
+ If solver NULL uses current
1675
+ */
1676
+ CbcModel *subTreeModel(OsiSolverInterface *solver = NULL) const;
1677
+ /// Returns number of times any subtree stopped on nodes, time etc
1678
+ inline int numberStoppedSubTrees() const
1679
+ {
1680
+ return numberStoppedSubTrees_;
1681
+ }
1682
+ /// Says a sub tree was stopped
1683
+ inline void incrementSubTreeStopped()
1684
+ {
1685
+ numberStoppedSubTrees_++;
1686
+ }
1687
+ /** Whether to automatically do presolve before branch and bound (subTrees).
1688
+ 0 - no
1689
+ 1 - ordinary presolve
1690
+ 2 - integer presolve (dodgy)
1691
+ */
1692
+ inline int typePresolve() const
1693
+ {
1694
+ return presolve_;
1695
+ }
1696
+ inline void setTypePresolve(int value)
1697
+ {
1698
+ presolve_ = value;
1699
+ }
1700
+
1701
+ //@}
1702
+
1703
+ /** \name Branching Decisions
1704
+
1705
+ See the CbcBranchDecision class for additional information.
1706
+ */
1707
+ //@{
1708
+
1709
+ /// Get the current branching decision method.
1710
+ inline CbcBranchDecision *branchingMethod() const
1711
+ {
1712
+ return branchingMethod_;
1713
+ }
1714
+ /// Set the branching decision method.
1715
+ inline void setBranchingMethod(CbcBranchDecision *method)
1716
+ {
1717
+ delete branchingMethod_;
1718
+ branchingMethod_ = method->clone();
1719
+ }
1720
+ /** Set the branching method
1721
+
1722
+ \overload
1723
+ */
1724
+ inline void setBranchingMethod(CbcBranchDecision &method)
1725
+ {
1726
+ delete branchingMethod_;
1727
+ branchingMethod_ = method.clone();
1728
+ }
1729
+ /// Get the current cut modifier method
1730
+ inline CbcCutModifier *cutModifier() const
1731
+ {
1732
+ return cutModifier_;
1733
+ }
1734
+ /// Set the cut modifier method
1735
+ void setCutModifier(CbcCutModifier *modifier);
1736
+ /** Set the cut modifier method
1737
+
1738
+ \overload
1739
+ */
1740
+ void setCutModifier(CbcCutModifier &modifier);
1741
+ //@}
1742
+
1743
+ /** \name Row (constraint) and Column (variable) cut generation */
1744
+ //@{
1745
+
1746
+ /** State of search
1747
+ 0 - no solution
1748
+ 1 - only heuristic solutions
1749
+ 2 - branched to a solution
1750
+ 3 - no solution but many nodes
1751
+ */
1752
+ inline int stateOfSearch() const
1753
+ {
1754
+ return stateOfSearch_;
1755
+ }
1756
+ inline void setStateOfSearch(int state)
1757
+ {
1758
+ stateOfSearch_ = state;
1759
+ }
1760
+ /// Strategy worked out - mainly at root node for use by CbcNode
1761
+ inline int searchStrategy() const
1762
+ {
1763
+ return searchStrategy_;
1764
+ }
1765
+ /// Set strategy worked out - mainly at root node for use by CbcNode
1766
+ inline void setSearchStrategy(int value)
1767
+ {
1768
+ searchStrategy_ = value;
1769
+ }
1770
+ /// Stong branching strategy
1771
+ inline int strongStrategy() const
1772
+ {
1773
+ return strongStrategy_;
1774
+ }
1775
+ /// Set strong branching strategy
1776
+ inline void setStrongStrategy(int value)
1777
+ {
1778
+ strongStrategy_ = value;
1779
+ }
1780
+
1781
+ /// Get the number of cut generators
1782
+ inline int numberCutGenerators() const
1783
+ {
1784
+ return numberCutGenerators_;
1785
+ }
1786
+ /// Get the list of cut generators
1787
+ inline CbcCutGenerator **cutGenerators() const
1788
+ {
1789
+ return generator_;
1790
+ }
1791
+ ///Get the specified cut generator
1792
+ inline CbcCutGenerator *cutGenerator(int i) const
1793
+ {
1794
+ return generator_[i];
1795
+ }
1796
+ ///Get the specified cut generator before any changes
1797
+ inline CbcCutGenerator *virginCutGenerator(int i) const
1798
+ {
1799
+ return virginGenerator_[i];
1800
+ }
1801
+ /** Add one generator - up to user to delete generators.
1802
+ howoften affects how generator is used. 0 or 1 means always,
1803
+ >1 means every that number of nodes. Negative values have same
1804
+ meaning as positive but they may be switched off (-> -100) by code if
1805
+ not many cuts generated at continuous. -99 is just done at root.
1806
+ Name is just for printout.
1807
+ If depth >0 overrides how often generator is called (if howOften==-1 or >0).
1808
+ */
1809
+ void addCutGenerator(CglCutGenerator *generator,
1810
+ int howOften = 1, const char *name = NULL,
1811
+ bool normal = true, bool atSolution = false,
1812
+ bool infeasible = false, int howOftenInSub = -100,
1813
+ int whatDepth = -1, int whatDepthInSub = -1);
1814
+ //@}
1815
+ /** \name Strategy and sub models
1816
+
1817
+ See the CbcStrategy class for additional information.
1818
+ */
1819
+ //@{
1820
+
1821
+ /// Get the current strategy
1822
+ inline CbcStrategy *strategy() const
1823
+ {
1824
+ return strategy_;
1825
+ }
1826
+ /// Set the strategy. Clones
1827
+ void setStrategy(CbcStrategy &strategy);
1828
+ /// Set the strategy. assigns
1829
+ inline void setStrategy(CbcStrategy *strategy)
1830
+ {
1831
+ strategy_ = strategy;
1832
+ }
1833
+ /// Get the current parent model
1834
+ inline CbcModel *parentModel() const
1835
+ {
1836
+ return parentModel_;
1837
+ }
1838
+ /// Set the parent model
1839
+ inline void setParentModel(CbcModel &parentModel)
1840
+ {
1841
+ parentModel_ = &parentModel;
1842
+ }
1843
+ //@}
1844
+
1845
+ /** \name Heuristics and priorities */
1846
+ //@{
1847
+ /*! \brief Add one heuristic - up to user to delete
1848
+
1849
+ The name is just used for print messages.
1850
+ */
1851
+ void addHeuristic(CbcHeuristic *generator, const char *name = NULL,
1852
+ int before = -1);
1853
+ ///Get the specified heuristic
1854
+ inline CbcHeuristic *heuristic(int i) const
1855
+ {
1856
+ return heuristic_[i];
1857
+ }
1858
+ /// Get the number of heuristics
1859
+ inline int numberHeuristics() const
1860
+ {
1861
+ return numberHeuristics_;
1862
+ }
1863
+ /// Set the number of heuristics
1864
+ inline void setNumberHeuristics(int value)
1865
+ {
1866
+ numberHeuristics_ = value;
1867
+ }
1868
+ /// Pointer to heuristic solver which found last solution (or NULL)
1869
+ inline CbcHeuristic *lastHeuristic() const
1870
+ {
1871
+ return lastHeuristic_;
1872
+ }
1873
+ /// set last heuristic which found a solution
1874
+ inline void setLastHeuristic(CbcHeuristic *last)
1875
+ {
1876
+ lastHeuristic_ = last;
1877
+ }
1878
+
1879
+ /** Pass in branching priorities.
1880
+
1881
+ If ifClique then priorities are on cliques otherwise priorities are
1882
+ on integer variables.
1883
+ Other type (if exists set to default)
1884
+ 1 is highest priority. (well actually -INT_MAX is but that's ugly)
1885
+ If hotstart > 0 then branches are created to force
1886
+ the variable to the value given by best solution. This enables a
1887
+ sort of hot start. The node choice should be greatest depth
1888
+ and hotstart should normally be switched off after a solution.
1889
+
1890
+ If ifNotSimpleIntegers true then appended to normal integers
1891
+
1892
+ This is now deprecated except for simple usage. If user
1893
+ creates Cbcobjects then set priority in them
1894
+
1895
+ \internal Added for Kurt Spielberg.
1896
+ */
1897
+ void passInPriorities(const int *priorities, bool ifNotSimpleIntegers);
1898
+
1899
+ /// Returns priority level for an object (or 1000 if no priorities exist)
1900
+ inline int priority(int sequence) const
1901
+ {
1902
+ return object_[sequence]->priority();
1903
+ }
1904
+
1905
+ /*! \brief Set an event handler
1906
+
1907
+ A clone of the handler passed as a parameter is stored in CbcModel.
1908
+ */
1909
+ void passInEventHandler(const CbcEventHandler *eventHandler);
1910
+
1911
+ /*! \brief Retrieve a pointer to the event handler */
1912
+ inline CbcEventHandler *getEventHandler() const
1913
+ {
1914
+ return (eventHandler_);
1915
+ }
1916
+
1917
+ //@}
1918
+
1919
+ /**@name Setting/Accessing application data */
1920
+ //@{
1921
+ /** Set application data.
1922
+
1923
+ This is a pointer that the application can store into and
1924
+ retrieve from the solver interface.
1925
+ This field is available for the application to optionally
1926
+ define and use.
1927
+ */
1928
+ void setApplicationData(void *appData);
1929
+
1930
+ /// Get application data
1931
+ void *getApplicationData() const;
1932
+ /**
1933
+ For advanced applications you may wish to modify the behavior of Cbc
1934
+ e.g. if the solver is a NLP solver then you may not have an exact
1935
+ optimum solution at each step. Information could be built into
1936
+ OsiSolverInterface but this is an alternative so that that interface
1937
+ does not have to be changed. If something similar is useful to
1938
+ enough solvers then it could be migrated
1939
+ You can also pass in by using solver->setAuxiliaryInfo.
1940
+ You should do that if solver is odd - if solver is normal simplex
1941
+ then use this.
1942
+ NOTE - characteristics are not cloned
1943
+ */
1944
+ void passInSolverCharacteristics(OsiBabSolver *solverCharacteristics);
1945
+ /// Get solver characteristics
1946
+ inline const OsiBabSolver *solverCharacteristics() const
1947
+ {
1948
+ return solverCharacteristics_;
1949
+ }
1950
+ //@}
1951
+
1952
+ //---------------------------------------------------------------------------
1953
+
1954
+ /**@name Message handling etc */
1955
+ //@{
1956
+ /// Pass in Message handler (not deleted at end)
1957
+ void passInMessageHandler(CoinMessageHandler *handler);
1958
+ /// Set language
1959
+ void newLanguage(CoinMessages::Language language);
1960
+ inline void setLanguage(CoinMessages::Language language)
1961
+ {
1962
+ newLanguage(language);
1963
+ }
1964
+ /// Return handler
1965
+ inline CoinMessageHandler *messageHandler() const
1966
+ {
1967
+ return handler_;
1968
+ }
1969
+ /// Return messages
1970
+ inline CoinMessages &messages()
1971
+ {
1972
+ return messages_;
1973
+ }
1974
+ /// Return pointer to messages
1975
+ inline CoinMessages *messagesPointer()
1976
+ {
1977
+ return &messages_;
1978
+ }
1979
+ /// Set log level
1980
+ void setLogLevel(int value);
1981
+ /// Get log level
1982
+ inline int logLevel() const
1983
+ {
1984
+ return handler_->logLevel();
1985
+ }
1986
+ /** Set flag to say if handler_ is the default handler.
1987
+
1988
+ The default handler is deleted when the model is deleted. Other
1989
+ handlers (supplied by the client) will not be deleted.
1990
+ */
1991
+ inline void setDefaultHandler(bool yesNo)
1992
+ {
1993
+ defaultHandler_ = yesNo;
1994
+ }
1995
+ /// Check default handler
1996
+ inline bool defaultHandler() const
1997
+ {
1998
+ return defaultHandler_;
1999
+ }
2000
+ //@}
2001
+ //---------------------------------------------------------------------------
2002
+ ///@name Specialized
2003
+ //@{
2004
+
2005
+ /**
2006
+ Set special options
2007
+ 0 bit (1) - check if cuts valid (if on debugger list)
2008
+ 1 bit (2) - use current basis to check integer solution (rather than all slack)
2009
+ 2 bit (4) - don't check integer solution (by solving LP)
2010
+ 3 bit (8) - fast analyze
2011
+ 4 bit (16) - non-linear model - so no well defined CoinPackedMatrix
2012
+ 5 bit (32) - keep names
2013
+ 6 bit (64) - try for dominated columns
2014
+ 7 bit (128) - SOS type 1 but all declared integer
2015
+ 8 bit (256) - Set to say solution just found, unset by doing cuts
2016
+ 9 bit (512) - Try reduced model after 100 nodes
2017
+ 10 bit (1024) - Switch on some heuristics even if seems unlikely
2018
+ 11 bit (2048) - Mark as in small branch and bound
2019
+ 12 bit (4096) - Funny cuts so do slow way (in some places)
2020
+ 13 bit (8192) - Funny cuts so do slow way (in other places)
2021
+ 14 bit (16384) - Use Cplex! for fathoming
2022
+ 15 bit (32768) - Try reduced model after 0 nodes
2023
+ 16 bit (65536) - Original model had integer bounds
2024
+ 17 bit (131072) - Perturbation switched off
2025
+ 18 bit (262144) - donor CbcModel
2026
+ 19 bit (524288) - recipient CbcModel
2027
+ 20 bit (1048576) - waiting for sub model to return
2028
+ 22 bit (4194304) - do not initialize random seed in solver (user has)
2029
+ 23 bit (8388608) - leave solver_ with cuts
2030
+ 24 bit (16777216) - just get feasible if no cutoff
2031
+ 25 bit (33554432) - feasibility pump after root cuts
2032
+ 26 bit (67108864) - child model but going for complete search
2033
+ */
2034
+ inline void setSpecialOptions(int value)
2035
+ {
2036
+ specialOptions_ = value;
2037
+ }
2038
+ /// Get special options
2039
+ inline int specialOptions() const
2040
+ {
2041
+ return specialOptions_;
2042
+ }
2043
+ /// Set random seed
2044
+ inline void setRandomSeed(int value)
2045
+ {
2046
+ randomSeed_ = value;
2047
+ }
2048
+ /// Get random seed
2049
+ inline int getRandomSeed() const
2050
+ {
2051
+ return randomSeed_;
2052
+ }
2053
+ /// Set multiple root tries
2054
+ inline void setMultipleRootTries(int value)
2055
+ {
2056
+ multipleRootTries_ = value;
2057
+ }
2058
+ /// Get multiple root tries
2059
+ inline int getMultipleRootTries() const
2060
+ {
2061
+ return multipleRootTries_;
2062
+ }
2063
+ /// Tell model to stop on event
2064
+ inline void sayEventHappened()
2065
+ {
2066
+ eventHappened_ = true;
2067
+ }
2068
+ /// Says if normal solver i.e. has well defined CoinPackedMatrix
2069
+ inline bool normalSolver() const
2070
+ {
2071
+ return (specialOptions_ & 16) == 0;
2072
+ }
2073
+ /** Says if model is sitting there waiting for mini branch and bound to finish
2074
+ This is because an event handler may only have access to parent model in
2075
+ mini branch and bound
2076
+ */
2077
+ inline bool waitingForMiniBranchAndBound() const
2078
+ {
2079
+ return (specialOptions_ & 1048576) != 0;
2080
+ }
2081
+ /** Set more special options
2082
+ at present bottom 6 bits used for shadow price mode
2083
+ 1024 for experimental hotstart
2084
+ 2048,4096 breaking out of cuts
2085
+ 8192 slowly increase minimum drop
2086
+ 16384 gomory
2087
+ 32768 more heuristics in sub trees
2088
+ 65536 no cuts in preprocessing
2089
+ 131072 Time limits elapsed
2090
+ 18 bit (262144) - Perturb fathom nodes
2091
+ 19 bit (524288) - No limit on fathom nodes
2092
+ 20 bit (1048576) - Reduce sum of infeasibilities before cuts
2093
+ 21 bit (2097152) - Reduce sum of infeasibilities after cuts
2094
+ 22 bit (4194304) - Conflict analysis
2095
+ 23 bit (8388608) - Conflict analysis - temporary bit
2096
+ 24 bit (16777216) - Add cutoff as LP constraint (out)
2097
+ 25 bit (33554432) - diving/reordering
2098
+ 26 bit (67108864) - load global cuts from file
2099
+ 27 bit (134217728) - append binding global cuts to file
2100
+ 28 bit (268435456) - idiot branching
2101
+ 29 bit (536870912) - don't make fake objective
2102
+ 30 bit (1073741824) - Funny SOS or similar - be careful
2103
+ */
2104
+ inline void setMoreSpecialOptions(int value)
2105
+ {
2106
+ moreSpecialOptions_ = value;
2107
+ }
2108
+ /// Get more special options
2109
+ inline int moreSpecialOptions() const
2110
+ {
2111
+ return moreSpecialOptions_;
2112
+ }
2113
+ /** Set more more special options
2114
+ 0 bit (1) - find switching variables
2115
+ 1 bit (2) - using fake objective until solution
2116
+ 2 bit (4) - switching variables exist
2117
+ 3 bit (8) - skip most of setBestSolution checks
2118
+ 4 bit (16) - very lightweight preprocessing in smallB&B
2119
+ 5 bit (32) - event handler needs to be cloned when parallel
2120
+ 6 bit (64) - testing - use probing to make cliques
2121
+ 7/8 bit (128) - try orbital branching (if nauty)
2122
+ 9 bit (512) - branching on objective (later)
2123
+ 10 bit (1024) - branching on constraints (later)
2124
+ 11/12 bit 2048 - intermittent cuts
2125
+ 13/14 bit 8192 - go to bitter end in strong branching (first time)
2126
+ 15 bit 32768 - take care of very very small values for Integer/SOS variables
2127
+ 24 bit (67108864) - model has been flipped
2128
+ */
2129
+ inline void setMoreSpecialOptions2(int value)
2130
+ {
2131
+ moreSpecialOptions2_ = value;
2132
+ }
2133
+ /// Get more special options2
2134
+ inline int moreSpecialOptions2() const
2135
+ {
2136
+ return moreSpecialOptions2_;
2137
+ }
2138
+ /// Set cutoff as constraint
2139
+ inline void setCutoffAsConstraint(bool yesNo)
2140
+ {
2141
+ cutoffRowNumber_ = (yesNo) ? -2 : -1;
2142
+ }
2143
+ /// Set time method
2144
+ inline void setUseElapsedTime(bool yesNo)
2145
+ {
2146
+ if (yesNo)
2147
+ moreSpecialOptions_ |= 131072;
2148
+ else
2149
+ moreSpecialOptions_ &= ~131072;
2150
+ }
2151
+ /// Get time method
2152
+ inline bool useElapsedTime() const
2153
+ {
2154
+ return (moreSpecialOptions_ & 131072) != 0;
2155
+ }
2156
+ /// Get useful temporary pointer
2157
+ inline void *temporaryPointer() const
2158
+ {
2159
+ return temporaryPointer_;
2160
+ }
2161
+ /// Set useful temporary pointer
2162
+ inline void setTemporaryPointer(void *pointer)
2163
+ {
2164
+ temporaryPointer_ = pointer;
2165
+ }
2166
+ /// Go to dantzig pivot selection if easy problem (clp only)
2167
+ void goToDantzig(int numberNodes, ClpDualRowPivot *&savePivotMethod);
2168
+ /// Now we may not own objects - just point to solver's objects
2169
+ inline bool ownObjects() const
2170
+ {
2171
+ return ownObjects_;
2172
+ }
2173
+ /// Check original model before it gets messed up
2174
+ void checkModel();
2175
+ //@}
2176
+ //---------------------------------------------------------------------------
2177
+
2178
+ ///@name Constructors and destructors etc
2179
+ //@{
2180
+ /// Default Constructor
2181
+ CbcModel();
2182
+
2183
+ /// Constructor from solver
2184
+ CbcModel(const OsiSolverInterface &);
2185
+
2186
+ /** Assign a solver to the model (model assumes ownership)
2187
+
2188
+ On return, \p solver will be NULL.
2189
+ If deleteSolver then current solver deleted (if model owned)
2190
+
2191
+ \note Parameter settings in the outgoing solver are not inherited by
2192
+ the incoming solver.
2193
+ */
2194
+ void assignSolver(OsiSolverInterface *&solver, bool deleteSolver = true);
2195
+
2196
+ /** \brief Set ownership of solver
2197
+
2198
+ A parameter of false tells CbcModel it does not own the solver and
2199
+ should not delete it. Once you claim ownership of the solver, you're
2200
+ responsible for eventually deleting it. Note that CbcModel clones
2201
+ solvers with abandon. Unless you have a deep understanding of the
2202
+ workings of CbcModel, the only time you want to claim ownership is when
2203
+ you're about to delete the CbcModel object but want the solver to
2204
+ continue to exist (as, for example, when branchAndBound has finished
2205
+ and you want to hang on to the answer).
2206
+ */
2207
+ inline void setModelOwnsSolver(bool ourSolver)
2208
+ {
2209
+ ownership_ = ourSolver ? (ownership_ | 0x80000000) : (ownership_ & (~0x80000000));
2210
+ }
2211
+
2212
+ /*! \brief Get ownership of solver
2213
+
2214
+ A return value of true means that CbcModel owns the solver and will
2215
+ take responsibility for deleting it when that becomes necessary.
2216
+ */
2217
+ inline bool modelOwnsSolver()
2218
+ {
2219
+ return ((ownership_ & 0x80000000) != 0);
2220
+ }
2221
+
2222
+ /** Copy constructor .
2223
+ If cloneHandler is true then message handler is cloned
2224
+ */
2225
+ CbcModel(const CbcModel &rhs, bool cloneHandler = false);
2226
+
2227
+ /** Clone */
2228
+ virtual CbcModel *clone(bool cloneHandler);
2229
+
2230
+ /// Assignment operator
2231
+ CbcModel &operator=(const CbcModel &rhs);
2232
+
2233
+ /// Destructor
2234
+ virtual ~CbcModel();
2235
+
2236
+ /// Returns solver - has current state
2237
+ inline OsiSolverInterface *solver() const
2238
+ {
2239
+ return solver_;
2240
+ }
2241
+
2242
+ /// Returns current solver - sets new one
2243
+ inline OsiSolverInterface *swapSolver(OsiSolverInterface *solver)
2244
+ {
2245
+ OsiSolverInterface *returnSolver = solver_;
2246
+ solver_ = solver;
2247
+ return returnSolver;
2248
+ }
2249
+
2250
+ /// Returns solver with continuous state
2251
+ inline OsiSolverInterface *continuousSolver() const
2252
+ {
2253
+ return continuousSolver_;
2254
+ }
2255
+
2256
+ /// Create solver with continuous state
2257
+ inline void createContinuousSolver()
2258
+ {
2259
+ continuousSolver_ = solver_->clone();
2260
+ }
2261
+ /// Clear solver with continuous state
2262
+ inline void clearContinuousSolver()
2263
+ {
2264
+ delete continuousSolver_;
2265
+ continuousSolver_ = NULL;
2266
+ }
2267
+
2268
+ /// A copy of the solver, taken at constructor or by saveReferenceSolver
2269
+ inline OsiSolverInterface *referenceSolver() const
2270
+ {
2271
+ return referenceSolver_;
2272
+ }
2273
+
2274
+ /// Save a copy of the current solver so can be reset to
2275
+ void saveReferenceSolver();
2276
+
2277
+ /** Uses a copy of reference solver to be current solver.
2278
+ Because of possible mismatches all exotic integer information is loat
2279
+ (apart from normal information in OsiSolverInterface)
2280
+ so SOS etc and priorities will have to be redone
2281
+ */
2282
+ void resetToReferenceSolver();
2283
+
2284
+ /// Clears out as much as possible (except solver)
2285
+ void gutsOfDestructor();
2286
+ /** Clears out enough to reset CbcModel as if no branch and bound done
2287
+ */
2288
+ void gutsOfDestructor2();
2289
+ /** Clears out enough to reset CbcModel cutoff etc
2290
+ */
2291
+ void resetModel();
2292
+ /** Most of copy constructor
2293
+ mode - 0 copy but don't delete before
2294
+ 1 copy and delete before
2295
+ 2 copy and delete before (but use virgin generators)
2296
+ */
2297
+ void gutsOfCopy(const CbcModel &rhs, int mode = 0);
2298
+ /// Move status, nodes etc etc across
2299
+ void moveInfo(const CbcModel &rhs);
2300
+ //@}
2301
+
2302
+ ///@name Multithreading
2303
+ //@{
2304
+ /// Indicates whether Cbc library has been compiled with multithreading support
2305
+ static bool haveMultiThreadSupport();
2306
+ /// Get pointer to masterthread
2307
+ CbcThread *masterThread() const
2308
+ {
2309
+ return masterThread_;
2310
+ }
2311
+ /// Get pointer to walkback
2312
+ CbcNodeInfo **walkback() const
2313
+ {
2314
+ return walkback_;
2315
+ }
2316
+ /// Get number of threads
2317
+ inline int getNumberThreads() const
2318
+ {
2319
+ return numberThreads_;
2320
+ }
2321
+ /// Set number of threads
2322
+ inline void setNumberThreads(int value)
2323
+ {
2324
+ numberThreads_ = value;
2325
+ }
2326
+ /// Get thread mode
2327
+ inline int getThreadMode() const
2328
+ {
2329
+ return threadMode_;
2330
+ }
2331
+ /** Set thread mode
2332
+ always use numberThreads for branching
2333
+ 1 set then deterministic
2334
+ 2 set then use numberThreads for root cuts
2335
+ 4 set then use numberThreads in root mini branch and bound
2336
+ 8 set and numberThreads - do heuristics numberThreads at a time
2337
+ 8 set and numberThreads==0 do all heuristics at once
2338
+ default is 0
2339
+ */
2340
+ inline void setThreadMode(int value)
2341
+ {
2342
+ threadMode_ = value;
2343
+ }
2344
+ /** Return
2345
+ -2 if deterministic threaded and main thread
2346
+ -1 if deterministic threaded and serial thread
2347
+ 0 if serial
2348
+ 1 if opportunistic threaded
2349
+ */
2350
+ inline int parallelMode() const
2351
+ {
2352
+ if (!numberThreads_) {
2353
+ if ((threadMode_ & 1) == 0)
2354
+ return 0;
2355
+ else
2356
+ return -1;
2357
+ return 0;
2358
+ } else {
2359
+ if ((threadMode_ & 1) == 0)
2360
+ return 1;
2361
+ else
2362
+ return -2;
2363
+ }
2364
+ }
2365
+ /// Thread stuff for master
2366
+ inline CbcBaseModel *master() const
2367
+ {
2368
+ return master_;
2369
+ }
2370
+ /// From here to end of section - code in CbcThread.cpp until class changed
2371
+ /// Returns true if locked
2372
+ bool isLocked() const;
2373
+ /**
2374
+ Locks a thread if parallel so that stuff like cut pool
2375
+ can be updated and/or used.
2376
+ */
2377
+ void lockThread();
2378
+ /**
2379
+ Unlocks a thread if parallel to say cut pool stuff not needed
2380
+ */
2381
+ void unlockThread();
2382
+ /** Set information in a child
2383
+ -3 pass pointer to child thread info
2384
+ -2 just stop
2385
+ -1 delete simple child stuff
2386
+ 0 delete opportunistic child stuff
2387
+ 1 delete deterministic child stuff
2388
+ */
2389
+ void setInfoInChild(int type, CbcThread *info);
2390
+ /** Move/copy information from one model to another
2391
+ -1 - initialization
2392
+ 0 - from base model
2393
+ 1 - to base model (and reset)
2394
+ 2 - add in final statistics etc (and reset so can do clean destruction)
2395
+ */
2396
+ void moveToModel(CbcModel *baseModel, int mode);
2397
+ /// Split up nodes
2398
+ int splitModel(int numberModels, CbcModel **model,
2399
+ int numberNodes);
2400
+ /// Start threads
2401
+ void startSplitModel(int numberIterations);
2402
+ /// Merge models
2403
+ void mergeModels(int numberModel, CbcModel **model,
2404
+ int numberNodes);
2405
+ //@}
2406
+
2407
+ ///@name semi-private i.e. users should not use
2408
+ //@{
2409
+ /// Get how many Nodes it took to solve the problem.
2410
+ int getNodeCount2() const
2411
+ {
2412
+ return numberNodes2_;
2413
+ }
2414
+ /// Set pointers for speed
2415
+ void setPointers(const OsiSolverInterface *solver);
2416
+ /** Perform reduced cost fixing
2417
+
2418
+ Fixes integer variables at their current value based on reduced cost
2419
+ penalties. Returns number fixed
2420
+ */
2421
+ int reducedCostFix();
2422
+ /** Makes all handlers same. If makeDefault 1 then makes top level
2423
+ default and rest point to that. If 2 then each is copy
2424
+ */
2425
+ void synchronizeHandlers(int makeDefault);
2426
+ /// Save a solution to saved list
2427
+ void saveExtraSolution(const double *solution, double objectiveValue);
2428
+ /// Save a solution to best and move current to saved
2429
+ void saveBestSolution(const double *solution, double objectiveValue);
2430
+ /// Delete best and saved solutions
2431
+ void deleteSolutions();
2432
+ /// Encapsulates solver resolve
2433
+ int resolve(OsiSolverInterface *solver);
2434
+ #ifdef CLP_RESOLVE
2435
+ /// Special purpose resolve
2436
+ int resolveClp(OsiClpSolverInterface *solver, int type);
2437
+ #endif
2438
+
2439
+ /** Encapsulates choosing a variable -
2440
+ anyAction -2, infeasible (-1 round again), 0 done
2441
+ */
2442
+ int chooseBranch(CbcNode *&newNode, int numberPassesLeft,
2443
+ CbcNode *oldNode, OsiCuts &cuts,
2444
+ bool &resolved, CoinWarmStartBasis *lastws,
2445
+ const double *lowerBefore, const double *upperBefore,
2446
+ OsiSolverBranch *&branches);
2447
+
2448
+ /** Return an empty basis object of the specified size
2449
+
2450
+ A useful utility when constructing a basis for a subproblem from scratch.
2451
+ The object returned will be of the requested capacity and appropriate for
2452
+ the solver attached to the model.
2453
+ */
2454
+ CoinWarmStartBasis *getEmptyBasis(int ns = 0, int na = 0) const;
2455
+
2456
+ /** Remove inactive cuts from the model
2457
+
2458
+ An OsiSolverInterface is expected to maintain a valid basis, but not a
2459
+ valid solution, when loose cuts are deleted. Restoring a valid solution
2460
+ requires calling the solver to reoptimise. If it's certain the solution
2461
+ will not be required, set allowResolve to false to suppress
2462
+ reoptimisation.
2463
+ If saveCuts then slack cuts will be saved
2464
+ On input current cuts are cuts and newCuts
2465
+ on exit current cuts will be correct. Returns number dropped
2466
+ */
2467
+ int takeOffCuts(OsiCuts &cuts,
2468
+ bool allowResolve, OsiCuts *saveCuts,
2469
+ int numberNewCuts = 0, const OsiRowCut **newCuts = NULL);
2470
+
2471
+ /** Determine and install the active cuts that need to be added for
2472
+ the current subproblem
2473
+
2474
+ The whole truth is a bit more complicated. The first action is a call to
2475
+ addCuts1(). addCuts() then sorts through the list, installs the tight
2476
+ cuts in the model, and does bookkeeping (adjusts reference counts).
2477
+ The basis returned from addCuts1() is adjusted accordingly.
2478
+
2479
+ If it turns out that the node should really be fathomed by bound,
2480
+ addCuts() simply treats all the cuts as loose as it does the bookkeeping.
2481
+
2482
+ */
2483
+ int addCuts(CbcNode *node, CoinWarmStartBasis *&lastws);
2484
+
2485
+ /** Traverse the tree from node to root and prep the model
2486
+
2487
+ addCuts1() begins the job of prepping the model to match the current
2488
+ subproblem. The model is stripped of all cuts, and the search tree is
2489
+ traversed from node to root to determine the changes required. Appropriate
2490
+ bounds changes are installed, a list of cuts is collected but not
2491
+ installed, and an appropriate basis (minus the cuts, but big enough to
2492
+ accommodate them) is constructed.
2493
+
2494
+ Returns true if new problem similar to old
2495
+
2496
+ \todo addCuts1() is called in contexts where it's known in advance that
2497
+ all that's desired is to determine a list of cuts and do the
2498
+ bookkeeping (adjust the reference counts). The work of installing
2499
+ bounds and building a basis goes to waste.
2500
+ */
2501
+ bool addCuts1(CbcNode *node, CoinWarmStartBasis *&lastws);
2502
+ /** Returns bounds just before where - initially original bounds.
2503
+ Also sets downstream nodes (lower if force 1, upper if 2)
2504
+ */
2505
+ void previousBounds(CbcNode *node, CbcNodeInfo *where, int iColumn,
2506
+ double &lower, double &upper, int force);
2507
+ /** Set objective value in a node. This is separated out so that
2508
+ odd solvers can use. It may look at extra information in
2509
+ solverCharacteriscs_ and will also use bound from parent node
2510
+ */
2511
+ void setObjectiveValue(CbcNode *thisNode, const CbcNode *parentNode) const;
2512
+
2513
+ /** If numberBeforeTrust >0 then we are going to use CbcBranchDynamic.
2514
+ Scan and convert CbcSimpleInteger objects
2515
+ */
2516
+ void convertToDynamic();
2517
+ /// Set numberBeforeTrust in all objects
2518
+ void synchronizeNumberBeforeTrust(int type = 0);
2519
+ /// Zap integer information in problem (may leave object info)
2520
+ void zapIntegerInformation(bool leaveObjects = true);
2521
+ /// Fill in useful estimates
2522
+ void pseudoShadow(int type);
2523
+ /** Return pseudo costs
2524
+ If not all integers or not pseudo costs - returns all zero
2525
+ Length of arrays are numberIntegers() and entries
2526
+ correspond to integerVariable()[i]
2527
+ User must allocate arrays before call
2528
+ */
2529
+ void fillPseudoCosts(double *downCosts, double *upCosts,
2530
+ int *priority = NULL,
2531
+ int *numberDown = NULL, int *numberUp = NULL,
2532
+ int *numberDownInfeasible = NULL,
2533
+ int *numberUpInfeasible = NULL) const;
2534
+ /** Do heuristics at root.
2535
+ 0 - don't delete
2536
+ 1 - delete
2537
+ 2 - just delete - don't even use
2538
+ */
2539
+ void doHeuristicsAtRoot(int deleteHeuristicsAfterwards = 0);
2540
+ /// Adjust heuristics based on model
2541
+ void adjustHeuristics();
2542
+ /// Get the hotstart solution
2543
+ inline const double *hotstartSolution() const
2544
+ {
2545
+ return hotstartSolution_;
2546
+ }
2547
+ /// Get the hotstart priorities
2548
+ inline const int *hotstartPriorities() const
2549
+ {
2550
+ return hotstartPriorities_;
2551
+ }
2552
+
2553
+ /// Return the list of cuts initially collected for this subproblem
2554
+ inline CbcCountRowCut **addedCuts() const
2555
+ {
2556
+ return addedCuts_;
2557
+ }
2558
+ /// Number of entries in the list returned by #addedCuts()
2559
+ inline int currentNumberCuts() const
2560
+ {
2561
+ return currentNumberCuts_;
2562
+ }
2563
+ /// Global cuts
2564
+ inline CbcRowCuts *globalCuts()
2565
+ {
2566
+ return &globalCuts_;
2567
+ }
2568
+ /// Get rid of global cuts
2569
+ inline void zapGlobalCuts()
2570
+ {
2571
+ globalCuts_ = CbcRowCuts();
2572
+ }
2573
+ /// Copy and set a pointer to a row cut which will be added instead of normal branching.
2574
+ void setNextRowCut(const OsiRowCut &cut);
2575
+ /// Get a pointer to current node (be careful)
2576
+ inline CbcNode *currentNode() const
2577
+ {
2578
+ return currentNode_;
2579
+ }
2580
+ /// Delete a node and possibly null out currentNode_
2581
+ void deleteNode(CbcNode * node);
2582
+ /// Get a pointer to probing info
2583
+ inline CglTreeProbingInfo *probingInfo() const
2584
+ {
2585
+ return probingInfo_;
2586
+ }
2587
+ /// Thread specific random number generator
2588
+ inline CoinThreadRandom *randomNumberGenerator()
2589
+ {
2590
+ return &randomNumberGenerator_;
2591
+ }
2592
+ /// Set the number of iterations done in strong branching.
2593
+ inline void setNumberStrongIterations(int number)
2594
+ {
2595
+ numberStrongIterations_ = number;
2596
+ }
2597
+ /// Get the number of iterations done in strong branching.
2598
+ inline int numberStrongIterations() const
2599
+ {
2600
+ return numberStrongIterations_;
2601
+ }
2602
+ /// Get maximum number of iterations (designed to be used in heuristics)
2603
+ inline int maximumNumberIterations() const
2604
+ {
2605
+ return maximumNumberIterations_;
2606
+ }
2607
+ /// Set maximum number of iterations (designed to be used in heuristics)
2608
+ inline void setMaximumNumberIterations(int value)
2609
+ {
2610
+ maximumNumberIterations_ = value;
2611
+ }
2612
+
2613
+ /// Symmetry information
2614
+ inline CbcSymmetry *symmetryInfo() const
2615
+ {
2616
+ return symmetryInfo_;
2617
+ }
2618
+ /// Set symmetry information
2619
+ inline void setSymmetryInfo(CbcSymmetry * info)
2620
+ {
2621
+ symmetryInfo_ = info;
2622
+ }
2623
+ /// get rid of all
2624
+ void zapSymmetry();
2625
+ /// Root symmetry information
2626
+ inline CbcSymmetry *rootSymmetryInfo() const
2627
+ {
2628
+ return rootSymmetryInfo_;
2629
+ }
2630
+ /// Set depth for fast nodes
2631
+ inline void setFastNodeDepth(int value)
2632
+ {
2633
+ fastNodeDepth_ = value;
2634
+ }
2635
+ /// Get depth for fast nodes
2636
+ inline int fastNodeDepth() const
2637
+ {
2638
+ return fastNodeDepth_;
2639
+ }
2640
+ /// Get anything with priority >= this can be treated as continuous
2641
+ inline int continuousPriority() const
2642
+ {
2643
+ return continuousPriority_;
2644
+ }
2645
+ /// Set anything with priority >= this can be treated as continuous
2646
+ inline void setContinuousPriority(int value)
2647
+ {
2648
+ continuousPriority_ = value;
2649
+ }
2650
+ inline void incrementExtra(int nodes, int iterations, int fathoms = 1)
2651
+ {
2652
+ numberExtraNodes_ += nodes;
2653
+ numberExtraIterations_ += iterations;
2654
+ numberFathoms_ += fathoms;
2655
+ }
2656
+ /// Zero extra
2657
+ inline void zeroExtra()
2658
+ {
2659
+ numberExtraNodes_ = 0;
2660
+ numberExtraIterations_ = 0;
2661
+ numberFathoms_ = 0;
2662
+ }
2663
+ /// Number of extra iterations
2664
+ inline int numberExtraIterations() const
2665
+ {
2666
+ return numberExtraIterations_;
2667
+ }
2668
+ /// Increment strong info
2669
+ void incrementStrongInfo(int numberTimes, int numberIterations,
2670
+ int numberFixed, bool ifInfeasible);
2671
+ /// Return strong info
2672
+ inline const int *strongInfo() const
2673
+ {
2674
+ return strongInfo_;
2675
+ }
2676
+
2677
+ /// Return mutable strong info
2678
+ inline int *mutableStrongInfo()
2679
+ {
2680
+ return strongInfo_;
2681
+ }
2682
+ /// Get stored row cuts for donor/recipient CbcModel
2683
+ CglStored *storedRowCuts() const
2684
+ {
2685
+ return storedRowCuts_;
2686
+ }
2687
+ /// Set stored row cuts for donor/recipient CbcModel
2688
+ void setStoredRowCuts(CglStored *cuts)
2689
+ {
2690
+ storedRowCuts_ = cuts;
2691
+ }
2692
+ /// Says whether all dynamic integers
2693
+ inline bool allDynamic() const
2694
+ {
2695
+ return ((ownership_ & 0x40000000) != 0);
2696
+ }
2697
+ /// Create C++ lines to get to current state
2698
+ void generateCpp(FILE *fp, int options);
2699
+ /// Generate an OsiBranchingInformation object
2700
+ OsiBranchingInformation usefulInformation() const;
2701
+ /** Warm start object produced by heuristic or strong branching
2702
+
2703
+ If get a valid integer solution outside branch and bound then it can take
2704
+ a reasonable time to solve LP which produces clean solution. If this object has
2705
+ any size then it will be used in solve.
2706
+ */
2707
+ inline void setBestSolutionBasis(const CoinWarmStartBasis &bestSolutionBasis)
2708
+ {
2709
+ bestSolutionBasis_ = bestSolutionBasis;
2710
+ }
2711
+ /// Redo walkback arrays
2712
+ void redoWalkBack();
2713
+ //@}
2714
+
2715
+ void setMIPStart(const std::vector< std::pair< std::string, double > > &mipstart)
2716
+ {
2717
+ this->mipStart_ = mipstart;
2718
+ }
2719
+
2720
+ /** if original column names will be preserved in preprocessed problem
2721
+ */
2722
+ void setKeepNamesPreproc( bool _keep )
2723
+ {
2724
+ this->keepNamesPreproc = _keep;
2725
+ }
2726
+
2727
+ bool getKeepNamesPreproc() const
2728
+ {
2729
+ return keepNamesPreproc;
2730
+ }
2731
+
2732
+ /** may be safer to use this overload method: c++ string libraries
2733
+ * implementation may not be binary compatible */
2734
+ void setMIPStart(int count, const char **colNames, const double colValues[]);
2735
+
2736
+
2737
+ const std::vector< std::pair< std::string, double > > &getMIPStart()
2738
+ {
2739
+ return this->mipStart_;
2740
+ }
2741
+
2742
+ //---------------------------------------------------------------------------
2743
+
2744
+ private:
2745
+ ///@name Private member data
2746
+ //@{
2747
+
2748
+ /// The solver associated with this model.
2749
+ OsiSolverInterface *solver_;
2750
+
2751
+ /** Ownership of objects and other stuff
2752
+
2753
+ 0x80000000 model owns solver
2754
+ 0x40000000 all variables CbcDynamicPseudoCost
2755
+ */
2756
+ unsigned int ownership_;
2757
+
2758
+ /// A copy of the solver, taken at the continuous (root) node.
2759
+ OsiSolverInterface *continuousSolver_;
2760
+
2761
+ /// A copy of the solver, taken at constructor or by saveReferenceSolver
2762
+ OsiSolverInterface *referenceSolver_;
2763
+
2764
+ /// Message handler
2765
+ CoinMessageHandler *handler_;
2766
+
2767
+ /** Flag to say if handler_ is the default handler.
2768
+
2769
+ The default handler is deleted when the model is deleted. Other
2770
+ handlers (supplied by the client) will not be deleted.
2771
+ */
2772
+ bool defaultHandler_;
2773
+
2774
+ /// Cbc messages
2775
+ CoinMessages messages_;
2776
+
2777
+ /// Array for integer parameters
2778
+ int intParam_[CbcLastIntParam];
2779
+
2780
+ /// Array for double parameters
2781
+ double dblParam_[CbcLastDblParam];
2782
+
2783
+ /** Pointer to an empty warm start object
2784
+
2785
+ It turns out to be useful to have this available as a base from
2786
+ which to build custom warm start objects. This is typed as CoinWarmStart
2787
+ rather than CoinWarmStartBasis to allow for the possibility that a
2788
+ client might want to apply a solver that doesn't use a basis-based warm
2789
+ start. See getEmptyBasis for an example of how this field can be used.
2790
+ */
2791
+ mutable CoinWarmStart *emptyWarmStart_;
2792
+
2793
+ /// Best objective
2794
+ double bestObjective_;
2795
+ /// Best possible objective
2796
+ double bestPossibleObjective_;
2797
+ /// Sum of Changes to objective by first solve
2798
+ double sumChangeObjective1_;
2799
+ /// Sum of Changes to objective by subsequent solves
2800
+ double sumChangeObjective2_;
2801
+
2802
+ /// Array holding the incumbent (best) solution.
2803
+ double *bestSolution_;
2804
+ /// Arrays holding other solutions.
2805
+ double **savedSolutions_;
2806
+
2807
+ /** Array holding the current solution.
2808
+
2809
+ This array is used more as a temporary.
2810
+ */
2811
+ double *currentSolution_;
2812
+ /** For testing infeasibilities - will point to
2813
+ currentSolution_ or solver-->getColSolution()
2814
+ */
2815
+ mutable const double *testSolution_;
2816
+ /** MIPstart values
2817
+ values for integer variables which will be converted to a complete integer initial feasible solution
2818
+ */
2819
+ std::vector< std::pair< std::string, double > > mipStart_;
2820
+
2821
+ /** keepNamesPreproc
2822
+ * if variables names will be preserved in the pre-processed problem
2823
+ * (usefull in callbacks)
2824
+ **/
2825
+ bool keepNamesPreproc;
2826
+
2827
+ /** Warm start object produced by heuristic or strong branching
2828
+
2829
+ If get a valid integer solution outside branch and bound then it can take
2830
+ a reasonable time to solve LP which produces clean solution. If this object has
2831
+ any size then it will be used in solve.
2832
+ */
2833
+ CoinWarmStartBasis bestSolutionBasis_;
2834
+ /// Global cuts
2835
+ CbcRowCuts globalCuts_;
2836
+ /// Global conflict cuts
2837
+ CbcRowCuts *globalConflictCuts_;
2838
+
2839
+ /// Minimum degradation in objective value to continue cut generation
2840
+ double minimumDrop_;
2841
+ /// Number of solutions
2842
+ int numberSolutions_;
2843
+ /// Number of saved solutions
2844
+ int numberSavedSolutions_;
2845
+ /// Maximum number of saved solutions
2846
+ int maximumSavedSolutions_;
2847
+ /** State of search
2848
+ 0 - no solution
2849
+ 1 - only heuristic solutions
2850
+ 2 - branched to a solution
2851
+ 3 - no solution but many nodes
2852
+ */
2853
+ int stateOfSearch_;
2854
+ /// At which depths to do cuts
2855
+ int whenCuts_;
2856
+ /// Hotstart solution
2857
+ double *hotstartSolution_;
2858
+ /// Hotstart priorities
2859
+ int *hotstartPriorities_;
2860
+ /// Number of heuristic solutions
2861
+ int numberHeuristicSolutions_;
2862
+ /// Cumulative number of nodes
2863
+ int numberNodes_;
2864
+ /** Cumulative number of nodes for statistics.
2865
+ Must fix to match up
2866
+ */
2867
+ int numberNodes2_;
2868
+ /// Cumulative number of iterations
2869
+ int numberIterations_;
2870
+ /// Cumulative number of solves
2871
+ int numberSolves_;
2872
+ /// Status of problem - 0 finished, 1 stopped, 2 difficulties
2873
+ int status_;
2874
+ /** Secondary status of problem
2875
+ -1 unset (status_ will also be -1)
2876
+ 0 search completed with solution
2877
+ 1 linear relaxation not feasible (or worse than cutoff)
2878
+ 2 stopped on gap
2879
+ 3 stopped on nodes
2880
+ 4 stopped on time
2881
+ 5 stopped on user event
2882
+ 6 stopped on solutions
2883
+ */
2884
+ int secondaryStatus_;
2885
+ /// Number of integers in problem
2886
+ int numberIntegers_;
2887
+ /// Number of rows at continuous
2888
+ int numberRowsAtContinuous_;
2889
+ /**
2890
+ -1 - cutoff as constraint not activated
2891
+ -2 - waiting to activate
2892
+ >=0 - activated
2893
+ */
2894
+ int cutoffRowNumber_;
2895
+ /// Maximum number of cuts
2896
+ int maximumNumberCuts_;
2897
+ /** Current phase (so heuristics etc etc can find out).
2898
+ 0 - initial solve
2899
+ 1 - solve with cuts at root
2900
+ 2 - solve with cuts
2901
+ 3 - other e.g. strong branching
2902
+ 4 - trying to validate a solution
2903
+ 5 - at end of search
2904
+ */
2905
+ int phase_;
2906
+
2907
+ /// Number of entries in #addedCuts_
2908
+ int currentNumberCuts_;
2909
+
2910
+ /** Current limit on search tree depth
2911
+
2912
+ The allocated size of #walkback_. Increased as needed.
2913
+ */
2914
+ int maximumDepth_;
2915
+ /** Array used to assemble the path between a node and the search tree root
2916
+
2917
+ The array is resized when necessary. #maximumDepth_ is the current
2918
+ allocated size.
2919
+ */
2920
+ CbcNodeInfo **walkback_;
2921
+ /// preProcess used before branch and bound (optional)
2922
+ CglPreProcess *preProcess_;
2923
+ CbcNodeInfo **lastNodeInfo_;
2924
+ const OsiRowCut **lastCut_;
2925
+ int lastDepth_;
2926
+ int lastNumberCuts2_;
2927
+ int maximumCuts_;
2928
+ int *lastNumberCuts_;
2929
+
2930
+ /** The list of cuts initially collected for this subproblem
2931
+
2932
+ When the subproblem at this node is rebuilt, a set of cuts is collected
2933
+ for inclusion in the constraint system. If any of these cuts are
2934
+ subsequently removed because they have become loose, the corresponding
2935
+ entry is set to NULL.
2936
+ */
2937
+ CbcCountRowCut **addedCuts_;
2938
+
2939
+ /** A pointer to a row cut which will be added instead of normal branching.
2940
+ After use it should be set to NULL.
2941
+ */
2942
+ OsiRowCut *nextRowCut_;
2943
+
2944
+ /// Current node so can be used elsewhere
2945
+ CbcNode *currentNode_;
2946
+
2947
+ /// Indices of integer variables
2948
+ int *integerVariable_;
2949
+ /// Whether of not integer
2950
+ char *integerInfo_;
2951
+ /// Holds solution at continuous (after cuts)
2952
+ double *continuousSolution_;
2953
+ /// Array marked whenever a solution is found if non-zero
2954
+ int *usedInSolution_;
2955
+ /**
2956
+ Special options
2957
+ 0 bit (1) - check if cuts valid (if on debugger list)
2958
+ 1 bit (2) - use current basis to check integer solution (rather than all slack)
2959
+ 2 bit (4) - don't check integer solution (by solving LP)
2960
+ 3 bit (8) - fast analyze
2961
+ 4 bit (16) - non-linear model - so no well defined CoinPackedMatrix
2962
+ 5 bit (32) - keep names
2963
+ 6 bit (64) - try for dominated columns
2964
+ 7 bit (128) - SOS type 1 but all declared integer
2965
+ 8 bit (256) - Set to say solution just found, unset by doing cuts
2966
+ 9 bit (512) - Try reduced model after 100 nodes
2967
+ 10 bit (1024) - Switch on some heuristics even if seems unlikely
2968
+ 11 bit (2048) - Mark as in small branch and bound
2969
+ 12 bit (4096) - Funny cuts so do slow way (in some places)
2970
+ 13 bit (8192) - Funny cuts so do slow way (in other places)
2971
+ 14 bit (16384) - Use Cplex! for fathoming
2972
+ 15 bit (32768) - Try reduced model after 0 nodes
2973
+ 16 bit (65536) - Original model had integer bounds
2974
+ 17 bit (131072) - Perturbation switched off
2975
+ 18 bit (262144) - donor CbcModel
2976
+ 19 bit (524288) - recipient CbcModel
2977
+ 20 bit (1048576) - waiting for sub model to return
2978
+ 22 bit (4194304) - do not initialize random seed in solver (user has)
2979
+ 23 bit (8388608) - leave solver_ with cuts
2980
+ 24 bit (16777216) - just get feasible if no cutoff
2981
+ */
2982
+ int specialOptions_;
2983
+ /** More special options
2984
+ at present bottom 6 bits used for shadow price mode
2985
+ 1024 for experimental hotstart
2986
+ 2048,4096 breaking out of cuts
2987
+ 8192 slowly increase minimum drop
2988
+ 16384 gomory
2989
+ 32768 more heuristics in sub trees
2990
+ 65536 no cuts in preprocessing
2991
+ 131072 Time limits elapsed
2992
+ 18 bit (262144) - Perturb fathom nodes
2993
+ 19 bit (524288) - No limit on fathom nodes
2994
+ 20 bit (1048576) - Reduce sum of infeasibilities before cuts
2995
+ 21 bit (2097152) - Reduce sum of infeasibilities after cuts
2996
+ */
2997
+ int moreSpecialOptions_;
2998
+ /** More more special options
2999
+ 0 bit (1) - find switching variables
3000
+ 1 bit (2) - using fake objective until solution
3001
+ 2 bit (4) - switching variables exist
3002
+ 3 bit (8) - skip most of setBestSolution checks
3003
+ 4 bit (16) - very lightweight preprocessing in smallB&B
3004
+ 5 bit (32) - event handler needs to be cloned when parallel
3005
+ 6 bit (64) - testing - use probing to make cliques
3006
+ 7/8 bit (128) - try orbital branching (if nauty)
3007
+ 9 bit (512) - branching on objective (later)
3008
+ 10 bit (1024) - branching on constraints (later)
3009
+ 11/12 bit 2048 - intermittent cuts
3010
+ */
3011
+ int moreSpecialOptions2_;
3012
+ /// User node comparison function
3013
+ CbcCompareBase *nodeCompare_;
3014
+ /// User feasibility function (see CbcFeasibleBase.hpp)
3015
+ CbcFeasibilityBase *problemFeasibility_;
3016
+ /// Tree
3017
+ CbcTree *tree_;
3018
+ /// Pointer to top of tree
3019
+ CbcFullNodeInfo *topOfTree_;
3020
+ /// A pointer to model to be used for subtrees
3021
+ CbcModel *subTreeModel_;
3022
+ /// A pointer to model from CbcHeuristic
3023
+ CbcModel *heuristicModel_;
3024
+ /// Number of times any subtree stopped on nodes, time etc
3025
+ int numberStoppedSubTrees_;
3026
+ /// Variable selection function
3027
+ CbcBranchDecision *branchingMethod_;
3028
+ /// Cut modifier function
3029
+ CbcCutModifier *cutModifier_;
3030
+ /// Strategy
3031
+ CbcStrategy *strategy_;
3032
+ /// Parent model
3033
+ CbcModel *parentModel_;
3034
+ /** Whether to automatically do presolve before branch and bound.
3035
+ 0 - no
3036
+ 1 - ordinary presolve
3037
+ 2 - integer presolve (dodgy)
3038
+ */
3039
+ /// Pointer to array[getNumCols()] (for speed) of column lower bounds
3040
+ const double *cbcColLower_;
3041
+ /// Pointer to array[getNumCols()] (for speed) of column upper bounds
3042
+ const double *cbcColUpper_;
3043
+ /// Pointer to array[getNumRows()] (for speed) of row lower bounds
3044
+ const double *cbcRowLower_;
3045
+ /// Pointer to array[getNumRows()] (for speed) of row upper bounds
3046
+ const double *cbcRowUpper_;
3047
+ /// Pointer to array[getNumCols()] (for speed) of primal solution vector
3048
+ const double *cbcColSolution_;
3049
+ /// Pointer to array[getNumRows()] (for speed) of dual prices
3050
+ const double *cbcRowPrice_;
3051
+ /// Get a pointer to array[getNumCols()] (for speed) of reduced costs
3052
+ const double *cbcReducedCost_;
3053
+ /// Pointer to array[getNumRows()] (for speed) of row activity levels.
3054
+ const double *cbcRowActivity_;
3055
+ /// Pointer to user-defined data structure
3056
+ void *appData_;
3057
+ /// Presolve for CbcTreeLocal
3058
+ int presolve_;
3059
+ /** Maximum number of candidates to consider for strong branching.
3060
+ To disable strong branching, set this to 0.
3061
+ */
3062
+ int numberStrong_;
3063
+ /** \brief The number of branches before pseudo costs believed
3064
+ in dynamic strong branching.
3065
+
3066
+ A value of 0 is off.
3067
+ */
3068
+ int numberBeforeTrust_;
3069
+ /** \brief The number of variables for which to compute penalties
3070
+ in dynamic strong branching.
3071
+ */
3072
+ int numberPenalties_;
3073
+ /// For threads - stop after this many "iterations"
3074
+ int stopNumberIterations_;
3075
+ /** Scale factor to make penalties match strong.
3076
+ Should/will be computed */
3077
+ double penaltyScaleFactor_;
3078
+ /// Number of analyze iterations to do
3079
+ int numberAnalyzeIterations_;
3080
+ /// Arrays with analysis results
3081
+ double *analyzeResults_;
3082
+ /// Useful temporary pointer
3083
+ void *temporaryPointer_;
3084
+ /// Number of nodes infeasible by normal branching (before cuts)
3085
+ int numberInfeasibleNodes_;
3086
+ /** Problem type as set by user or found by analysis. This will be extended
3087
+ 0 - not known
3088
+ 1 - Set partitioning <=
3089
+ 2 - Set partitioning ==
3090
+ 3 - Set covering
3091
+ */
3092
+ int problemType_;
3093
+ /// Print frequency
3094
+ int printFrequency_;
3095
+ /// Number of cut generators
3096
+ int numberCutGenerators_;
3097
+ // Cut generators
3098
+ CbcCutGenerator **generator_;
3099
+ // Cut generators before any changes
3100
+ CbcCutGenerator **virginGenerator_;
3101
+ /// Number of heuristics
3102
+ int numberHeuristics_;
3103
+ /// Heuristic solvers
3104
+ CbcHeuristic **heuristic_;
3105
+ /// Pointer to heuristic solver which found last solution (or NULL)
3106
+ CbcHeuristic *lastHeuristic_;
3107
+ /// Depth for fast nodes
3108
+ int fastNodeDepth_;
3109
+ /*! Pointer to the event handler */
3110
+ #ifdef CBC_ONLY_CLP
3111
+ ClpEventHandler *eventHandler_;
3112
+ #else
3113
+ CbcEventHandler *eventHandler_;
3114
+ #endif
3115
+ /// Symmetry information
3116
+ CbcSymmetry *symmetryInfo_;
3117
+ /// Root symmetry information
3118
+ CbcSymmetry *rootSymmetryInfo_;
3119
+ /// Total number of objects
3120
+ int numberObjects_;
3121
+
3122
+ /** \brief Integer and Clique and ... information
3123
+
3124
+ \note The code assumes that the first objects on the list will be
3125
+ SimpleInteger objects for each integer variable, followed by
3126
+ Clique objects. Portions of the code that understand Clique objects
3127
+ will fail if they do not immediately follow the SimpleIntegers.
3128
+ Large chunks of the code will fail if the first objects are not
3129
+ SimpleInteger. As of 2003.08, SimpleIntegers and Cliques are the only
3130
+ objects.
3131
+ */
3132
+ OsiObject **object_;
3133
+ /// Now we may not own objects - just point to solver's objects
3134
+ bool ownObjects_;
3135
+
3136
+ /// Original columns as created by integerPresolve or preprocessing
3137
+ int *originalColumns_;
3138
+ /// How often to scan global cuts
3139
+ int howOftenGlobalScan_;
3140
+ /** Number of times global cuts violated. When global cut pool then this
3141
+ should be kept for each cut and type of cut */
3142
+ int numberGlobalViolations_;
3143
+ /// Number of extra iterations in fast lp
3144
+ int numberExtraIterations_;
3145
+ /// Number of extra nodes in fast lp
3146
+ int numberExtraNodes_;
3147
+ /// Number of times fast lp entered
3148
+ int numberFathoms_;
3149
+ /** Value of objective at continuous
3150
+ (Well actually after initial round of cuts)
3151
+ */
3152
+ double continuousObjective_;
3153
+ /** Value of objective before root node cuts added
3154
+ */
3155
+ double originalContinuousObjective_;
3156
+ /// Number of infeasibilities at continuous
3157
+ int continuousInfeasibilities_;
3158
+ /// Maximum number of cut passes at root
3159
+ int maximumCutPassesAtRoot_;
3160
+ /// Maximum number of cut passes
3161
+ int maximumCutPasses_;
3162
+ /// Preferred way of branching
3163
+ int preferredWay_;
3164
+ /// Current cut pass number
3165
+ int currentPassNumber_;
3166
+ /// Maximum number of cuts (for whichGenerator_)
3167
+ int maximumWhich_;
3168
+ /// Maximum number of rows
3169
+ int maximumRows_;
3170
+ /// Random seed
3171
+ int randomSeed_;
3172
+ /// Multiple root tries
3173
+ int multipleRootTries_;
3174
+ /// Current depth
3175
+ int currentDepth_;
3176
+ /// Thread specific random number generator
3177
+ mutable CoinThreadRandom randomNumberGenerator_;
3178
+ /// Work basis for temporary use
3179
+ CoinWarmStartBasis workingBasis_;
3180
+ /// Which cut generator generated this cut
3181
+ int *whichGenerator_;
3182
+ /// Maximum number of statistics
3183
+ int maximumStatistics_;
3184
+ /// statistics
3185
+ CbcStatistics **statistics_;
3186
+ /// Maximum depth reached
3187
+ int maximumDepthActual_;
3188
+ /// Number of reduced cost fixings
3189
+ double numberDJFixed_;
3190
+ /// Probing info
3191
+ CglTreeProbingInfo *probingInfo_;
3192
+ /// Number of fixed by analyze at root
3193
+ int numberFixedAtRoot_;
3194
+ /// Number fixed by analyze so far
3195
+ int numberFixedNow_;
3196
+ /// Whether stopping on gap
3197
+ bool stoppedOnGap_;
3198
+ /// Whether event happened
3199
+ mutable bool eventHappened_;
3200
+ /// Number of long strong goes
3201
+ int numberLongStrong_;
3202
+ /// Number of old active cuts
3203
+ int numberOldActiveCuts_;
3204
+ /// Number of new cuts
3205
+ int numberNewCuts_;
3206
+ /// Strategy worked out - mainly at root node
3207
+ int searchStrategy_;
3208
+ /** Strategy for strong branching
3209
+ 0 - normal
3210
+ when to do all fractional
3211
+ 1 - root node
3212
+ 2 - depth less than modifier
3213
+ 4 - if objective == best possible
3214
+ 6 - as 2+4
3215
+ when to do all including satisfied
3216
+ 10 - root node etc.
3217
+ If >=100 then do when depth <= strategy/100 (otherwise 5)
3218
+ */
3219
+ int strongStrategy_;
3220
+ /// Number of iterations in strong branching
3221
+ int numberStrongIterations_;
3222
+ /** 0 - number times strong branching done, 1 - number fixed, 2 - number infeasible
3223
+ Second group of three is a snapshot at node [6] */
3224
+ int strongInfo_[7];
3225
+ /**
3226
+ For advanced applications you may wish to modify the behavior of Cbc
3227
+ e.g. if the solver is a NLP solver then you may not have an exact
3228
+ optimum solution at each step. This gives characteristics - just for one BAB.
3229
+ For actually saving/restoring a solution you need the actual solver one.
3230
+ */
3231
+ OsiBabSolver *solverCharacteristics_;
3232
+ /// Whether to force a resolve after takeOffCuts
3233
+ bool resolveAfterTakeOffCuts_;
3234
+ /// Maximum number of iterations (designed to be used in heuristics)
3235
+ int maximumNumberIterations_;
3236
+ /// Anything with priority >= this can be treated as continuous
3237
+ int continuousPriority_;
3238
+ /// Number of outstanding update information items
3239
+ int numberUpdateItems_;
3240
+ /// Maximum number of outstanding update information items
3241
+ int maximumNumberUpdateItems_;
3242
+ /// Update items
3243
+ CbcObjectUpdateData *updateItems_;
3244
+ /// Stored row cuts for donor/recipient CbcModel
3245
+ CglStored *storedRowCuts_;
3246
+ /**
3247
+ Parallel
3248
+ 0 - off
3249
+ 1 - testing
3250
+ 2-99 threads
3251
+ other special meanings
3252
+ */
3253
+ int numberThreads_;
3254
+ /** thread mode
3255
+ always use numberThreads for branching
3256
+ 1 set then deterministic
3257
+ 2 set then use numberThreads for root cuts
3258
+ 4 set then use numberThreads in root mini branch and bound
3259
+ default is 0
3260
+ */
3261
+ int threadMode_;
3262
+ /// Number of global cuts on entry to a node
3263
+ int numberGlobalCutsIn_;
3264
+ /// Thread stuff for master
3265
+ CbcBaseModel *master_;
3266
+ /// Pointer to masterthread
3267
+ CbcThread *masterThread_;
3268
+ //@}
3269
+ };
3270
+ /// So we can use osiObject or CbcObject during transition
3271
+ void getIntegerInformation(const OsiObject *object, double &originalLower,
3272
+ double &originalUpper);
3273
+ // So we can call from other programs
3274
+ // Real main program
3275
+ class OsiClpSolverInterface;
3276
+ int CbcMain(int argc, const char *argv[], CbcModel &babSolver);
3277
+ // four ways of calling
3278
+ int callCbc(const char *input2, OsiClpSolverInterface &solver1);
3279
+ int callCbc(const char *input2);
3280
+ int callCbc(const std::string input2, OsiClpSolverInterface &solver1);
3281
+ int callCbc(const std::string input2);
3282
+ // When we want to load up CbcModel with options first
3283
+ void CbcMain0(CbcModel &babSolver);
3284
+ int CbcMain1(int argc, const char *argv[], CbcModel &babSolver);
3285
+ // two ways of calling
3286
+ int callCbc(const char *input2, CbcModel &babSolver);
3287
+ int callCbc(const std::string input2, CbcModel &babSolver);
3288
+ // And when CbcMain0 already called to initialize (with call back) (see CbcMain1 for whereFrom)
3289
+ int callCbc1(const char *input2, CbcModel &babSolver, int(CbcModel *currentSolver, int whereFrom));
3290
+ int CbcMain1(int argc, const char *argv[], CbcModel &babSolver, int(CbcModel *currentSolver, int whereFrom));
3291
+ // For uniform setting of cut and heuristic options
3292
+ void setCutAndHeuristicOptions(CbcModel &model);
3293
+ #endif
3294
+
3295
+ /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
3296
+ */