casadi 3.6.7__cp313-none-manylinux2014_i686.whl → 3.7.1__cp313-none-manylinux2014_i686.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- casadi/_casadi.so +0 -0
- casadi/casadi-cli +0 -0
- casadi/casadi.py +6531 -3039
- casadi/cbc +0 -0
- casadi/clp +0 -0
- casadi/cmake/casadi-config-version.cmake +1 -1
- casadi/cmake/casadi-config.cmake +1 -1
- casadi/cmake/casadi-targets-release.cmake +5 -5
- casadi/cmake/casadi-targets.cmake +5 -5
- casadi/{lib/cmake/tinyxml2/tinyxml2-config-version.cmake → cmake/ghc_filesystem/ghc_filesystem-config-version.cmake} +30 -10
- casadi/cmake/ghc_filesystem/ghc_filesystem-config.cmake +30 -0
- casadi/cmake/ghc_filesystem/ghc_filesystem-targets.cmake +107 -0
- casadi/cmake/highs/highs-targets-release.cmake +2 -2
- casadi/cmake/highs/highs-targets.cmake +1 -1
- casadi/cmake/libzip/libzip-config-version.cmake +48 -0
- casadi/cmake/libzip/libzip-config.cmake +69 -0
- casadi/cmake/libzip/libzip-targets-release.cmake +19 -0
- casadi/{lib/cmake/tinyxml2/tinyxml2-static-targets.cmake → cmake/libzip/libzip-targets.cmake} +11 -7
- casadi/cmake/libzip/modules/FindMbedTLS.cmake +141 -0
- casadi/cmake/libzip/modules/FindNettle.cmake +141 -0
- casadi/cmake/libzip/modules/Findzstd.cmake +186 -0
- casadi/highs +0 -0
- casadi/include/casadi/casadi.i +276 -47
- casadi/include/casadi/config.h +11 -11
- casadi/include/casadi/core/archiver.hpp +58 -0
- casadi/include/casadi/core/blazing_spline.hpp +47 -0
- casadi/include/casadi/core/calculus.hpp +57 -2
- casadi/include/casadi/core/callback.hpp +9 -0
- casadi/include/casadi/core/casadi_common.hpp +37 -0
- casadi/include/casadi/core/casadi_meta.hpp +15 -0
- casadi/include/casadi/core/casadi_misc.hpp +21 -0
- casadi/include/casadi/core/code_generator.hpp +115 -19
- casadi/include/casadi/core/core.hpp +5 -0
- casadi/include/casadi/core/dae_builder.hpp +303 -141
- casadi/include/casadi/core/dm.hpp +3 -0
- casadi/include/casadi/core/filesystem.hpp +58 -0
- casadi/include/casadi/core/fmu.hpp +62 -16
- casadi/include/casadi/core/function.hpp +24 -0
- casadi/include/casadi/core/generic_matrix.hpp +214 -7
- casadi/include/casadi/core/generic_shared.hpp +395 -0
- casadi/include/casadi/core/generic_shared_impl.hpp +218 -0
- casadi/include/casadi/core/generic_shared_internal.hpp +215 -0
- casadi/include/casadi/core/generic_type.hpp +3 -0
- casadi/include/casadi/core/global_options.hpp +10 -0
- casadi/include/casadi/core/integrator.hpp +41 -7
- casadi/include/casadi/core/matrix_decl.hpp +71 -0
- casadi/include/casadi/core/mx.hpp +63 -2
- casadi/include/casadi/core/nlp_builder.hpp +2 -1
- casadi/include/casadi/core/options.hpp +6 -3
- casadi/include/casadi/core/optistack.hpp +43 -9
- casadi/include/casadi/core/printable.hpp +8 -0
- casadi/include/casadi/core/resource.hpp +107 -0
- casadi/include/casadi/core/runtime/casadi_blazing_1d_boor_eval.hpp +112 -0
- casadi/include/casadi/core/runtime/casadi_blazing_2d_boor_eval.hpp +311 -0
- casadi/include/casadi/core/runtime/casadi_blazing_3d_boor_eval.hpp +645 -0
- casadi/include/casadi/core/runtime/casadi_blazing_de_boor.hpp +101 -0
- casadi/include/casadi/core/runtime/casadi_finite_diff.hpp +1 -1
- casadi/include/casadi/core/runtime/casadi_nlp.hpp +8 -2
- casadi/include/casadi/core/runtime/casadi_print_canonical.hpp +55 -0
- casadi/include/casadi/core/runtime/casadi_print_scalar.hpp +25 -0
- casadi/include/casadi/core/runtime/casadi_print_vector.hpp +32 -0
- casadi/include/casadi/core/runtime/casadi_printme.hpp +26 -0
- casadi/include/casadi/core/serializer.hpp +13 -5
- casadi/include/casadi/core/serializing_stream.hpp +9 -2
- casadi/include/casadi/core/shared_object.hpp +73 -161
- casadi/include/casadi/core/sparsity.hpp +13 -1
- casadi/include/casadi/core/sparsity_interface.hpp +19 -1
- casadi/include/casadi/core/sx.hpp +41 -0
- casadi/include/casadi/core/sx_elem.hpp +25 -0
- casadi/include/casadi/core/xml_node.hpp +5 -0
- casadi/include/casadi/doc.i +10026 -6513
- casadi/include/casadi/doc_merged.i +6744 -4449
- casadi/include/casadi/valgrind-casadi.supp +138 -0
- casadi/include/casadi/valgrind-python.supp +2470 -0
- casadi/include/highs/HConfig.h +6 -4
- casadi/include/highs/Highs.h +260 -86
- casadi/include/highs/filereaderlp/reader.hpp +10 -10
- casadi/include/highs/interfaces/highs_c_api.h +195 -22
- casadi/include/highs/io/Filereader.h +4 -6
- casadi/include/highs/io/FilereaderEms.h +0 -3
- casadi/include/highs/io/FilereaderLp.h +0 -3
- casadi/include/highs/io/FilereaderMps.h +0 -3
- casadi/include/highs/io/HMPSIO.h +1 -4
- casadi/include/highs/io/HMpsFF.h +8 -5
- casadi/include/highs/io/HighsIO.h +10 -5
- casadi/include/highs/io/LoadOptions.h +0 -3
- casadi/include/highs/ipm/IpxSolution.h +0 -3
- casadi/include/highs/ipm/IpxWrapper.h +4 -7
- casadi/include/highs/ipm/ipx/control.h +1 -0
- casadi/include/highs/ipm/ipx/ipx_parameters.h +1 -0
- casadi/include/highs/ipm/ipx/lp_solver.h +3 -2
- casadi/include/highs/ipm/ipx/model.h +7 -3
- casadi/include/highs/lp_data/HConst.h +21 -6
- casadi/include/highs/lp_data/HStruct.h +40 -4
- casadi/include/highs/lp_data/HighsAnalysis.h +0 -3
- casadi/include/highs/lp_data/HighsCallback.h +10 -3
- casadi/include/highs/lp_data/HighsCallbackStruct.h +3 -3
- casadi/include/highs/lp_data/HighsDebug.h +0 -3
- casadi/include/highs/lp_data/HighsIis.h +62 -0
- casadi/include/highs/lp_data/HighsInfo.h +50 -43
- casadi/include/highs/lp_data/HighsInfoDebug.h +0 -3
- casadi/include/highs/lp_data/HighsLp.h +2 -3
- casadi/include/highs/lp_data/HighsLpSolverObject.h +0 -3
- casadi/include/highs/lp_data/HighsLpUtils.h +38 -6
- casadi/include/highs/lp_data/HighsModelUtils.h +21 -18
- casadi/include/highs/lp_data/HighsOptions.h +134 -22
- casadi/include/highs/lp_data/HighsRanging.h +0 -3
- casadi/include/highs/lp_data/HighsSolution.h +10 -3
- casadi/include/highs/lp_data/HighsSolutionDebug.h +0 -3
- casadi/include/highs/lp_data/HighsSolve.h +0 -3
- casadi/include/highs/lp_data/HighsStatus.h +0 -3
- casadi/include/highs/mip/HighsCliqueTable.h +3 -3
- casadi/include/highs/mip/HighsConflictPool.h +0 -3
- casadi/include/highs/mip/HighsCutGeneration.h +13 -3
- casadi/include/highs/mip/HighsCutPool.h +0 -3
- casadi/include/highs/mip/HighsDebugSol.h +0 -3
- casadi/include/highs/mip/HighsDomain.h +16 -4
- casadi/include/highs/mip/HighsDomainChange.h +0 -3
- casadi/include/highs/mip/HighsDynamicRowMatrix.h +0 -3
- casadi/include/highs/mip/HighsGFkSolve.h +3 -6
- casadi/include/highs/mip/HighsImplications.h +29 -5
- casadi/include/highs/mip/HighsLpAggregator.h +0 -3
- casadi/include/highs/mip/HighsLpRelaxation.h +0 -3
- casadi/include/highs/mip/HighsMipAnalysis.h +52 -0
- casadi/include/highs/mip/HighsMipSolver.h +11 -4
- casadi/include/highs/mip/HighsMipSolverData.h +67 -6
- casadi/include/highs/mip/HighsModkSeparator.h +1 -4
- casadi/include/highs/mip/HighsNodeQueue.h +0 -3
- casadi/include/highs/mip/HighsObjectiveFunction.h +0 -3
- casadi/include/highs/mip/HighsPathSeparator.h +1 -4
- casadi/include/highs/mip/HighsPrimalHeuristics.h +7 -5
- casadi/include/highs/mip/HighsPseudocost.h +0 -3
- casadi/include/highs/mip/HighsRedcostFixing.h +0 -3
- casadi/include/highs/mip/HighsSearch.h +0 -3
- casadi/include/highs/mip/HighsSeparation.h +0 -3
- casadi/include/highs/mip/HighsSeparator.h +1 -5
- casadi/include/highs/mip/HighsTableauSeparator.h +1 -4
- casadi/include/highs/mip/HighsTransformedLp.h +0 -3
- casadi/include/highs/mip/MipTimer.h +471 -0
- casadi/include/highs/parallel/HighsBinarySemaphore.h +1 -1
- casadi/include/highs/parallel/HighsCacheAlign.h +1 -1
- casadi/include/highs/parallel/HighsCombinable.h +1 -1
- casadi/include/highs/parallel/HighsMutex.h +1 -1
- casadi/include/highs/parallel/HighsRaceTimer.h +1 -1
- casadi/include/highs/parallel/HighsSchedulerConstants.h +1 -1
- casadi/include/highs/parallel/HighsSplitDeque.h +1 -1
- casadi/include/highs/parallel/HighsTaskExecutor.h +68 -55
- casadi/include/highs/pdlp/CupdlpWrapper.h +18 -7
- casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +2 -3
- casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +16 -6
- casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +10 -4
- casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +3 -3
- casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +6 -6
- casadi/include/highs/pdlp/cupdlp/cupdlp_scaling.h +26 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +11 -11
- casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +8 -4
- casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +253 -172
- casadi/include/highs/presolve/HPresolve.h +50 -10
- casadi/include/highs/presolve/HPresolveAnalysis.h +0 -3
- casadi/include/highs/presolve/HighsPostsolveStack.h +39 -6
- casadi/include/highs/presolve/HighsSymmetry.h +0 -3
- casadi/include/highs/presolve/ICrash.h +0 -3
- casadi/include/highs/presolve/ICrashUtil.h +1 -4
- casadi/include/highs/presolve/ICrashX.h +0 -3
- casadi/include/highs/presolve/PresolveComponent.h +0 -3
- casadi/include/highs/qpsolver/a_asm.hpp +20 -17
- casadi/include/highs/qpsolver/a_quass.hpp +5 -9
- casadi/include/highs/qpsolver/basis.hpp +12 -10
- casadi/include/highs/qpsolver/crashsolution.hpp +4 -3
- casadi/include/highs/qpsolver/dantzigpricing.hpp +3 -2
- casadi/include/highs/qpsolver/devexpricing.hpp +3 -1
- casadi/include/highs/qpsolver/factor.hpp +6 -5
- casadi/include/highs/qpsolver/feasibility_bounded.hpp +31 -29
- casadi/include/highs/qpsolver/feasibility_highs.hpp +94 -70
- casadi/include/highs/qpsolver/gradient.hpp +1 -1
- casadi/include/highs/qpsolver/instance.hpp +1 -1
- casadi/include/highs/qpsolver/pricing.hpp +2 -2
- casadi/include/highs/qpsolver/qpconst.hpp +2 -2
- casadi/include/highs/qpsolver/quass.hpp +2 -2
- casadi/include/highs/qpsolver/runtime.hpp +2 -2
- casadi/include/highs/qpsolver/settings.hpp +20 -8
- casadi/include/highs/qpsolver/steepestedgepricing.hpp +38 -39
- casadi/include/highs/simplex/HApp.h +88 -34
- casadi/include/highs/simplex/HEkk.h +24 -11
- casadi/include/highs/simplex/HEkkDual.h +2 -4
- casadi/include/highs/simplex/HEkkDualRHS.h +0 -3
- casadi/include/highs/simplex/HEkkDualRow.h +0 -3
- casadi/include/highs/simplex/HEkkPrimal.h +1 -5
- casadi/include/highs/simplex/HSimplex.h +0 -3
- casadi/include/highs/simplex/HSimplexDebug.h +0 -3
- casadi/include/highs/simplex/HSimplexNla.h +0 -26
- casadi/include/highs/simplex/HSimplexReport.h +0 -3
- casadi/include/highs/simplex/HighsSimplexAnalysis.h +5 -8
- casadi/include/highs/simplex/SimplexConst.h +10 -11
- casadi/include/highs/simplex/SimplexStruct.h +9 -12
- casadi/include/highs/simplex/SimplexTimer.h +83 -101
- casadi/include/highs/test/DevKkt.h +0 -3
- casadi/include/highs/test/KktCh2.h +0 -3
- casadi/include/highs/util/FactorTimer.h +39 -64
- casadi/include/highs/util/HFactor.h +4 -4
- casadi/include/highs/util/HFactorConst.h +0 -3
- casadi/include/highs/util/HFactorDebug.h +0 -3
- casadi/include/highs/util/HSet.h +0 -3
- casadi/include/highs/util/HVector.h +0 -3
- casadi/include/highs/util/HVectorBase.h +1 -4
- casadi/include/highs/util/HighsCDouble.h +12 -3
- casadi/include/highs/util/HighsComponent.h +0 -3
- casadi/include/highs/util/HighsDataStack.h +0 -3
- casadi/include/highs/util/HighsDisjointSets.h +0 -3
- casadi/include/highs/util/HighsHash.h +9 -12
- casadi/include/highs/util/HighsHashTree.h +15 -11
- casadi/include/highs/util/HighsInt.h +0 -3
- casadi/include/highs/util/HighsIntegers.h +0 -3
- casadi/include/highs/util/HighsLinearSumBounds.h +0 -3
- casadi/include/highs/util/HighsMatrixPic.h +0 -3
- casadi/include/highs/util/HighsMatrixSlice.h +3 -6
- casadi/include/highs/util/HighsMatrixUtils.h +0 -3
- casadi/include/highs/util/HighsMemoryAllocation.h +11 -3
- casadi/include/highs/util/HighsRandom.h +3 -6
- casadi/include/highs/util/HighsRbTree.h +0 -3
- casadi/include/highs/util/HighsSort.h +0 -3
- casadi/include/highs/util/HighsSparseMatrix.h +6 -3
- casadi/include/highs/util/HighsSparseVectorSum.h +0 -3
- casadi/include/highs/util/HighsSplay.h +0 -3
- casadi/include/highs/util/HighsTimer.h +94 -56
- casadi/include/highs/util/HighsUtils.h +10 -3
- casadi/include/highs/util/stringutil.h +14 -12
- casadi/include/licenses/ghc-external/LICENSE +19 -0
- casadi/include/licenses/libz-external/LICENSE +22 -0
- casadi/include/licenses/libz-external/contrib/dotzlib/LICENSE_1_0.txt +23 -0
- casadi/include/licenses/libzip-external/LICENSE +31 -0
- casadi/libCbcSolver.so +0 -0
- casadi/libCbcSolver.so.3 +0 -0
- casadi/libCbcSolver.so.3.10.11 +0 -0
- casadi/libClpSolver.so +0 -0
- casadi/libClpSolver.so.1 +0 -0
- casadi/libClpSolver.so.1.14.9 +0 -0
- casadi/libbonmin.so +0 -0
- casadi/libbonmin.so.4 +0 -0
- casadi/libbonmin.so.4.8.9 +0 -0
- casadi/libcasadi.so +0 -0
- casadi/libcasadi.so.3.7 +0 -0
- casadi/libcasadi_archiver_libzip.so +0 -0
- casadi/libcasadi_archiver_libzip.so.3.7 +0 -0
- casadi/libcasadi_conic_cbc.so +0 -0
- casadi/libcasadi_conic_cbc.so.3.7 +0 -0
- casadi/libcasadi_conic_clp.so +0 -0
- casadi/libcasadi_conic_clp.so.3.7 +0 -0
- casadi/libcasadi_conic_daqp.so +0 -0
- casadi/libcasadi_conic_daqp.so.3.7 +0 -0
- casadi/libcasadi_conic_gurobi.so +0 -0
- casadi/libcasadi_conic_gurobi.so.3.7 +0 -0
- casadi/libcasadi_conic_highs.so +0 -0
- casadi/libcasadi_conic_highs.so.3.7 +0 -0
- casadi/libcasadi_conic_ipqp.so +0 -0
- casadi/libcasadi_conic_ipqp.so.3.7 +0 -0
- casadi/libcasadi_conic_nlpsol.so +0 -0
- casadi/libcasadi_conic_nlpsol.so.3.7 +0 -0
- casadi/libcasadi_conic_osqp.so +0 -0
- casadi/libcasadi_conic_osqp.so.3.7 +0 -0
- casadi/libcasadi_conic_proxqp.so +0 -0
- casadi/libcasadi_conic_proxqp.so.3.7 +0 -0
- casadi/libcasadi_conic_qpoases.so +0 -0
- casadi/libcasadi_conic_qpoases.so.3.7 +0 -0
- casadi/libcasadi_conic_qrqp.so +0 -0
- casadi/libcasadi_conic_qrqp.so.3.7 +0 -0
- casadi/libcasadi_conic_superscs.so +0 -0
- casadi/libcasadi_conic_superscs.so.3.7 +0 -0
- casadi/libcasadi_filesystem_ghc.so +0 -0
- casadi/libcasadi_filesystem_ghc.so.3.7 +0 -0
- casadi/libcasadi_importer_shell.so +0 -0
- casadi/libcasadi_importer_shell.so.3.7 +0 -0
- casadi/libcasadi_integrator_collocation.so +0 -0
- casadi/libcasadi_integrator_collocation.so.3.7 +0 -0
- casadi/libcasadi_integrator_cvodes.so +0 -0
- casadi/libcasadi_integrator_cvodes.so.3.7 +0 -0
- casadi/libcasadi_integrator_idas.so +0 -0
- casadi/libcasadi_integrator_idas.so.3.7 +0 -0
- casadi/libcasadi_integrator_rk.so +0 -0
- casadi/libcasadi_integrator_rk.so.3.7 +0 -0
- casadi/libcasadi_interpolant_bspline.so +0 -0
- casadi/libcasadi_interpolant_bspline.so.3.7 +0 -0
- casadi/libcasadi_interpolant_linear.so +0 -0
- casadi/libcasadi_interpolant_linear.so.3.7 +0 -0
- casadi/libcasadi_linsol_csparse.so +0 -0
- casadi/libcasadi_linsol_csparse.so.3.7 +0 -0
- casadi/libcasadi_linsol_csparsecholesky.so +0 -0
- casadi/libcasadi_linsol_csparsecholesky.so.3.7 +0 -0
- casadi/libcasadi_linsol_lapacklu.so +0 -0
- casadi/libcasadi_linsol_lapacklu.so.3.7 +0 -0
- casadi/libcasadi_linsol_lapackqr.so +0 -0
- casadi/libcasadi_linsol_lapackqr.so.3.7 +0 -0
- casadi/libcasadi_linsol_ldl.so +0 -0
- casadi/libcasadi_linsol_ldl.so.3.7 +0 -0
- casadi/libcasadi_linsol_lsqr.so +0 -0
- casadi/libcasadi_linsol_lsqr.so.3.7 +0 -0
- casadi/libcasadi_linsol_ma27.so +0 -0
- casadi/libcasadi_linsol_ma27.so.3.7 +0 -0
- casadi/libcasadi_linsol_mumps.so +0 -0
- casadi/libcasadi_linsol_mumps.so.3.7 +0 -0
- casadi/libcasadi_linsol_qr.so +0 -0
- casadi/libcasadi_linsol_qr.so.3.7 +0 -0
- casadi/libcasadi_linsol_symbolicqr.so +0 -0
- casadi/libcasadi_linsol_symbolicqr.so.3.7 +0 -0
- casadi/libcasadi_linsol_tridiag.so +0 -0
- casadi/libcasadi_linsol_tridiag.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_alpaqa.so +0 -0
- casadi/libcasadi_nlpsol_alpaqa.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_ampl.so +0 -0
- casadi/libcasadi_nlpsol_ampl.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_blocksqp.so +0 -0
- casadi/libcasadi_nlpsol_blocksqp.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_bonmin.so +0 -0
- casadi/libcasadi_nlpsol_bonmin.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_feasiblesqpmethod.so +0 -0
- casadi/libcasadi_nlpsol_feasiblesqpmethod.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_ipopt.so +0 -0
- casadi/libcasadi_nlpsol_ipopt.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_knitro.so +0 -0
- casadi/libcasadi_nlpsol_knitro.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_madnlp.so +0 -0
- casadi/libcasadi_nlpsol_madnlp.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_qrsqp.so +0 -0
- casadi/libcasadi_nlpsol_qrsqp.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_scpgen.so +0 -0
- casadi/libcasadi_nlpsol_scpgen.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_sleqp.so +0 -0
- casadi/libcasadi_nlpsol_sleqp.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_snopt.so +0 -0
- casadi/libcasadi_nlpsol_snopt.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_sqpmethod.so +0 -0
- casadi/libcasadi_nlpsol_sqpmethod.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_worhp.so +0 -0
- casadi/libcasadi_nlpsol_worhp.so.3.7 +0 -0
- casadi/libcasadi_rootfinder_fast_newton.so +0 -0
- casadi/libcasadi_rootfinder_fast_newton.so.3.7 +0 -0
- casadi/libcasadi_rootfinder_kinsol.so +0 -0
- casadi/libcasadi_rootfinder_kinsol.so.3.7 +0 -0
- casadi/libcasadi_rootfinder_newton.so +0 -0
- casadi/libcasadi_rootfinder_newton.so.3.7 +0 -0
- casadi/libcasadi_rootfinder_nlpsol.so +0 -0
- casadi/libcasadi_rootfinder_nlpsol.so.3.7 +0 -0
- casadi/libcasadi_sundials_common.so +0 -0
- casadi/libcasadi_sundials_common.so.3.7 +0 -0
- casadi/libcasadi_xmlfile_tinyxml.so +0 -0
- casadi/libcasadi_xmlfile_tinyxml.so.3.7 +0 -0
- casadi/libcoinmumps.so +0 -0
- casadi/libcoinmumps.so.3 +0 -0
- casadi/libcoinmumps.so.3.0.1 +0 -0
- casadi/libdaqpstat.a +0 -0
- casadi/libhighs.so +0 -0
- casadi/libhighs.so.1 +0 -0
- casadi/libhighs.so.1.10.0 +0 -0
- casadi/libindirect.a +0 -0
- casadi/libipopt.so +0 -0
- casadi/libipopt.so.3 +0 -0
- casadi/libipopt.so.3.14.11 +0 -0
- casadi/liblinsys.a +0 -0
- casadi/libosqp.a +0 -0
- casadi/libqdldl.a +0 -0
- casadi/libsipopt.so +0 -0
- casadi/libsipopt.so.3 +0 -0
- casadi/libsipopt.so.3.14.11 +0 -0
- casadi/libsleqp.so +0 -0
- casadi/libsleqp.so.1.0.1 +0 -0
- casadi/libspral.a +0 -0
- casadi/libsuperscs.a +0 -0
- casadi/libz.a +0 -0
- casadi/libz.so +0 -0
- casadi/libz.so.1 +0 -0
- casadi/libz.so.1.3.1 +0 -0
- casadi/libzip.a +0 -0
- casadi/pkgconfig/casadi.pc +1 -1
- casadi/pkgconfig/highs.pc +1 -1
- casadi/pkgconfig/libzip.pc +14 -0
- casadi/tools/__init__.py +3 -1
- casadi/tools/graph/graph.py +1 -1
- casadi/tools/structure3.py +7 -7
- {casadi-3.6.7.dist-info → casadi-3.7.1.dist-info}/METADATA +1 -1
- {casadi-3.6.7.dist-info → casadi-3.7.1.dist-info}/RECORD +380 -347
- casadi/include/highs/lp_data/HighsRuntimeOptions.h +0 -276
- casadi/include/highs/pdlp/cupdlp/cupdlp_scaling_cuda.h +0 -28
- casadi/include/tinyxml2.h +0 -2380
- casadi/lib/cmake/tinyxml2/tinyxml2-config.cmake +0 -57
- casadi/lib/cmake/tinyxml2/tinyxml2-static-targets-release.cmake +0 -19
- casadi/lib/libtinyxml2.a +0 -0
- casadi/lib/pkgconfig/tinyxml2.pc +0 -10
- casadi/libhighs.so.1.7.2 +0 -0
- casadi/tools/structure.py +0 -1446
- {casadi-3.6.7.dist-info → casadi-3.7.1.dist-info}/WHEEL +0 -0
@@ -2,16 +2,16 @@
|
|
2
2
|
// Created by chuwen on 23-11-26.
|
3
3
|
//
|
4
4
|
|
5
|
-
#include "cupdlp_utils.h"
|
5
|
+
#include "pdlp/cupdlp/cupdlp_utils.h"
|
6
6
|
|
7
7
|
#include <limits.h>
|
8
8
|
#include <stdio.h>
|
9
9
|
|
10
10
|
#include <time.h>
|
11
11
|
|
12
|
-
#include "cupdlp_cs.h"
|
13
|
-
#include "cupdlp_linalg.h"
|
14
|
-
#include "glbopts.h"
|
12
|
+
#include "pdlp/cupdlp/cupdlp_cs.h"
|
13
|
+
#include "pdlp/cupdlp/cupdlp_linalg.h"
|
14
|
+
#include "pdlp/cupdlp/glbopts.h"
|
15
15
|
|
16
16
|
#ifndef CUPDLP_CPU
|
17
17
|
|
@@ -44,7 +44,23 @@ cupdlp_int csc_clear(CUPDLPcsc *csc) {
|
|
44
44
|
if (csc->colMatElem) {
|
45
45
|
CUPDLP_FREE_VEC(csc->colMatElem);
|
46
46
|
}
|
47
|
-
|
47
|
+
cupdlp_free(csc);
|
48
|
+
}
|
49
|
+
return 0;
|
50
|
+
}
|
51
|
+
|
52
|
+
cupdlp_int csc_clear_host(CUPDLPcsc *csc) {
|
53
|
+
if (csc) {
|
54
|
+
if (csc->colMatBeg) {
|
55
|
+
cupdlp_free(csc->colMatBeg);
|
56
|
+
}
|
57
|
+
if (csc->colMatIdx) {
|
58
|
+
cupdlp_free(csc->colMatIdx);
|
59
|
+
}
|
60
|
+
if (csc->colMatElem) {
|
61
|
+
cupdlp_free(csc->colMatElem);
|
62
|
+
}
|
63
|
+
cupdlp_free(csc);
|
48
64
|
}
|
49
65
|
return 0;
|
50
66
|
}
|
@@ -65,7 +81,7 @@ cupdlp_int csr_clear(CUPDLPcsr *csr) {
|
|
65
81
|
if (csr->rowMatElem) {
|
66
82
|
CUPDLP_FREE_VEC(csr->rowMatElem);
|
67
83
|
}
|
68
|
-
|
84
|
+
cupdlp_free(csr);
|
69
85
|
}
|
70
86
|
return 0;
|
71
87
|
}
|
@@ -132,7 +148,7 @@ void problem_clear(CUPDLPproblem *problem) {
|
|
132
148
|
if (problem->hasUpper) {
|
133
149
|
CUPDLP_FREE_VEC(problem->hasUpper);
|
134
150
|
}
|
135
|
-
|
151
|
+
cupdlp_free(problem);
|
136
152
|
}
|
137
153
|
}
|
138
154
|
|
@@ -158,21 +174,21 @@ cupdlp_int vec_clear(CUPDLPvec *vec) {
|
|
158
174
|
|
159
175
|
void iterates_clear(CUPDLPiterates *iterates) {
|
160
176
|
if (iterates) {
|
161
|
-
if (iterates->x) {
|
162
|
-
// CUPDLP_FREE_VEC(iterates->x);
|
163
|
-
vec_clear(iterates->x);
|
177
|
+
if (iterates->x[0]) {
|
178
|
+
// CUPDLP_FREE_VEC(iterates->x[0]);
|
179
|
+
vec_clear(iterates->x[0]);
|
164
180
|
}
|
165
|
-
if (iterates->
|
166
|
-
// CUPDLP_FREE_VEC(iterates->
|
167
|
-
vec_clear(iterates->
|
181
|
+
if (iterates->x[1]) {
|
182
|
+
// CUPDLP_FREE_VEC(iterates->x[1]);
|
183
|
+
vec_clear(iterates->x[1]);
|
168
184
|
}
|
169
|
-
if (iterates->
|
170
|
-
// CUPDLP_FREE_VEC(iterates->
|
171
|
-
vec_clear(iterates->
|
185
|
+
if (iterates->y[0]) {
|
186
|
+
// CUPDLP_FREE_VEC(iterates->y[0]);
|
187
|
+
vec_clear(iterates->y[0]);
|
172
188
|
}
|
173
|
-
if (iterates->
|
174
|
-
// CUPDLP_FREE_VEC(iterates->
|
175
|
-
vec_clear(iterates->
|
189
|
+
if (iterates->y[1]) {
|
190
|
+
// CUPDLP_FREE_VEC(iterates->y[1]);
|
191
|
+
vec_clear(iterates->y[1]);
|
176
192
|
}
|
177
193
|
if (iterates->xSum) {
|
178
194
|
CUPDLP_FREE_VEC(iterates->xSum);
|
@@ -194,31 +210,31 @@ void iterates_clear(CUPDLPiterates *iterates) {
|
|
194
210
|
if (iterates->yLastRestart) {
|
195
211
|
CUPDLP_FREE_VEC(iterates->yLastRestart);
|
196
212
|
}
|
197
|
-
if (iterates->ax) {
|
198
|
-
// CUPDLP_FREE_VEC(iterates->ax);
|
199
|
-
vec_clear(iterates->ax);
|
213
|
+
if (iterates->ax[0]) {
|
214
|
+
// CUPDLP_FREE_VEC(iterates->ax[0]);
|
215
|
+
vec_clear(iterates->ax[0]);
|
200
216
|
}
|
201
|
-
if (iterates->
|
202
|
-
// CUPDLP_FREE_VEC(iterates->
|
203
|
-
vec_clear(iterates->
|
217
|
+
if (iterates->ax[1]) {
|
218
|
+
// CUPDLP_FREE_VEC(iterates->ax[1]);
|
219
|
+
vec_clear(iterates->ax[1]);
|
204
220
|
}
|
205
221
|
if (iterates->axAverage) {
|
206
222
|
// CUPDLP_FREE_VEC(iterates->axAverage);
|
207
223
|
vec_clear(iterates->axAverage);
|
208
224
|
}
|
209
|
-
if (iterates->aty) {
|
210
|
-
// CUPDLP_FREE_VEC(iterates->aty);
|
211
|
-
vec_clear(iterates->aty);
|
225
|
+
if (iterates->aty[0]) {
|
226
|
+
// CUPDLP_FREE_VEC(iterates->aty[0]);
|
227
|
+
vec_clear(iterates->aty[0]);
|
212
228
|
}
|
213
|
-
if (iterates->
|
214
|
-
// CUPDLP_FREE_VEC(iterates->
|
215
|
-
vec_clear(iterates->
|
229
|
+
if (iterates->aty[1]) {
|
230
|
+
// CUPDLP_FREE_VEC(iterates->aty[1]);
|
231
|
+
vec_clear(iterates->aty[1]);
|
216
232
|
}
|
217
233
|
if (iterates->atyAverage) {
|
218
234
|
// CUPDLP_FREE_VEC(iterates->atyAverage);
|
219
235
|
vec_clear(iterates->atyAverage);
|
220
236
|
}
|
221
|
-
|
237
|
+
cupdlp_free(iterates);
|
222
238
|
}
|
223
239
|
}
|
224
240
|
|
@@ -278,7 +294,7 @@ void resobj_clear(CUPDLPresobj *resobj) {
|
|
278
294
|
// if (resobj->dualInfeasBound) {
|
279
295
|
// CUPDLP_FREE_VEC(resobj->dualInfeasBound);
|
280
296
|
// }
|
281
|
-
|
297
|
+
cupdlp_free(resobj);
|
282
298
|
}
|
283
299
|
}
|
284
300
|
|
@@ -288,11 +304,13 @@ void stepsize_clear(CUPDLPstepsize *stepsize) {
|
|
288
304
|
}
|
289
305
|
}
|
290
306
|
|
291
|
-
void timers_clear(CUPDLPtimers *timers) {
|
307
|
+
void timers_clear(int log_level, CUPDLPtimers *timers) {
|
292
308
|
#ifndef CUPDLP_CPU
|
293
|
-
|
309
|
+
if (log_level)
|
310
|
+
cupdlp_printf("%20s %e\n\n", "Free Device memory", timers->FreeDeviceMemTime);
|
294
311
|
#endif
|
295
312
|
|
313
|
+
|
296
314
|
if (timers) {
|
297
315
|
cupdlp_free(timers);
|
298
316
|
}
|
@@ -301,12 +319,10 @@ void timers_clear(CUPDLPtimers *timers) {
|
|
301
319
|
void scaling_clear(CUPDLPscaling *scaling) {
|
302
320
|
if (scaling) {
|
303
321
|
if (scaling->colScale) {
|
304
|
-
|
305
|
-
CUPDLP_FREE_VEC(scaling->colScale); // now on gpu
|
322
|
+
cupdlp_free(scaling->colScale);
|
306
323
|
}
|
307
324
|
if (scaling->rowScale) {
|
308
|
-
|
309
|
-
CUPDLP_FREE_VEC(scaling->rowScale); // now on gpu
|
325
|
+
cupdlp_free(scaling->rowScale);
|
310
326
|
}
|
311
327
|
cupdlp_free(scaling);
|
312
328
|
}
|
@@ -321,63 +337,80 @@ cupdlp_int PDHG_Clear(CUPDLPwork *w) {
|
|
321
337
|
CUPDLPtimers *timers = w->timers;
|
322
338
|
CUPDLPscaling *scaling = w->scaling;
|
323
339
|
|
324
|
-
|
325
|
-
|
340
|
+
|
341
|
+
cupdlp_float begin = getTimeStamp();
|
326
342
|
#ifndef CUPDLP_CPU
|
327
343
|
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
344
|
+
// CUDAmv *MV = w->MV;
|
345
|
+
// if (MV)
|
346
|
+
// {
|
347
|
+
// cupdlp_float begin = getTimeStamp();
|
348
|
+
// cuda_free_mv(MV);
|
349
|
+
// timers->FreeDeviceMemTime += getTimeStamp() - begin;
|
350
|
+
// }
|
351
|
+
CHECK_CUBLAS(cublasDestroy(w->cublashandle))
|
352
|
+
CHECK_CUSPARSE(cusparseDestroy(w->cusparsehandle))
|
353
|
+
CHECK_CUDA(cudaFree(w->dBuffer_csc_ATy))
|
354
|
+
CHECK_CUDA(cudaFree(w->dBuffer_csr_Ax))
|
355
|
+
if (w->buffer2) CUPDLP_FREE_VEC(w->buffer2);
|
356
|
+
if (w->buffer3) CUPDLP_FREE_VEC(w->buffer3);
|
340
357
|
#endif
|
341
|
-
|
342
|
-
|
358
|
+
if (w->colScale) CUPDLP_FREE_VEC(w->colScale);
|
359
|
+
if (w->rowScale) CUPDLP_FREE_VEC(w->rowScale);
|
343
360
|
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
361
|
+
if (w->buffer) {
|
362
|
+
// CUPDLP_FREE_VEC(w->buffer);
|
363
|
+
vec_clear(w->buffer);
|
364
|
+
}
|
348
365
|
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
366
|
+
if (w->buffer2 != NULL) {
|
367
|
+
// CUPDLP_FREE_VEC(w->buffer);
|
368
|
+
free(w->buffer2);
|
369
|
+
}
|
353
370
|
|
354
|
-
|
355
|
-
|
356
|
-
|
371
|
+
if (w->buffer3) {
|
372
|
+
// CUPDLP_FREE_VEC(w->buffer);
|
373
|
+
free(w->buffer3);
|
374
|
+
}
|
357
375
|
|
358
|
-
|
359
|
-
|
360
|
-
|
376
|
+
if (problem) {
|
377
|
+
// problem_clear(problem);
|
378
|
+
problem = cupdlp_NULL;
|
379
|
+
}
|
380
|
+
|
381
|
+
if (iterates) {
|
382
|
+
iterates_clear(iterates);
|
383
|
+
}
|
384
|
+
|
385
|
+
if (resobj) {
|
386
|
+
resobj_clear(resobj);
|
387
|
+
}
|
361
388
|
|
362
389
|
#ifndef CUPDLP_CPU
|
363
|
-
|
390
|
+
timers->FreeDeviceMemTime += getTimeStamp() - begin;
|
364
391
|
#endif
|
365
392
|
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
}
|
375
|
-
if (scaling) {
|
376
|
-
// scaling_clear(scaling);
|
377
|
-
scaling = cupdlp_NULL;
|
378
|
-
}
|
379
|
-
cupdlp_free(w);
|
393
|
+
if (settings) {
|
394
|
+
settings_clear(settings);
|
395
|
+
}
|
396
|
+
if (stepsize) {
|
397
|
+
stepsize_clear(stepsize);
|
398
|
+
}
|
399
|
+
if (timers) {
|
400
|
+
timers_clear(w->settings->nLogLevel, timers);
|
380
401
|
}
|
402
|
+
if (scaling) {
|
403
|
+
// scaling_clear(scaling);
|
404
|
+
// if (scaling->colScale) {
|
405
|
+
// cupdlp_free(scaling->colScale);
|
406
|
+
// }
|
407
|
+
// if (scaling->rowScale) {
|
408
|
+
// cupdlp_free(scaling->rowScale);
|
409
|
+
// }
|
410
|
+
// cupdlp_free(scaling);
|
411
|
+
scaling = cupdlp_NULL;
|
412
|
+
}
|
413
|
+
cupdlp_free(w);
|
381
414
|
|
382
415
|
return 0;
|
383
416
|
}
|
@@ -421,7 +454,7 @@ void PDHG_PrintPDHGParam(CUPDLPwork *w) {
|
|
421
454
|
cupdlp_printf("\n");
|
422
455
|
}
|
423
456
|
|
424
|
-
void PDHG_PrintHugeCUPDHG() {
|
457
|
+
void PDHG_PrintHugeCUPDHG(void) {
|
425
458
|
cupdlp_printf("\n");
|
426
459
|
cupdlp_printf(" ____ _ _ ____ ____ _ ____\n");
|
427
460
|
cupdlp_printf(" / ___| | | | _ \\| _ \\| | | _ \\\n");
|
@@ -431,7 +464,7 @@ void PDHG_PrintHugeCUPDHG() {
|
|
431
464
|
cupdlp_printf("\n");
|
432
465
|
}
|
433
466
|
|
434
|
-
void PDHG_PrintUserParamHelper() {
|
467
|
+
void PDHG_PrintUserParamHelper(void) {
|
435
468
|
PDHG_PrintHugeCUPDHG();
|
436
469
|
|
437
470
|
cupdlp_printf("CUPDHG User Parameters:\n");
|
@@ -602,14 +635,14 @@ cupdlp_retcode getUserParam(int argc, char **argv,
|
|
602
635
|
}
|
603
636
|
}
|
604
637
|
|
605
|
-
if (argc>0) {
|
606
|
-
|
607
|
-
|
638
|
+
// if (argc>0) {
|
639
|
+
// if (strcmp(argv[argc - 1], "-h") == 0) {
|
640
|
+
// PDHG_PrintUserParamHelper();
|
608
641
|
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
}
|
642
|
+
// retcode = RETCODE_FAILED;
|
643
|
+
// goto exit_cleanup;
|
644
|
+
// }
|
645
|
+
// }
|
613
646
|
|
614
647
|
exit_cleanup:
|
615
648
|
return retcode;
|
@@ -807,33 +840,52 @@ cupdlp_retcode resobj_Alloc(CUPDLPresobj *resobj, CUPDLPproblem *problem,
|
|
807
840
|
cupdlp_int ncols, cupdlp_int nrows) {
|
808
841
|
cupdlp_retcode retcode = RETCODE_OK;
|
809
842
|
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
|
843
|
+
#if !defined(CUPDLP_CPU) && USE_KERNELS
|
844
|
+
resobj->primalResidual = NULL;
|
845
|
+
resobj->dualResidual = NULL;
|
846
|
+
resobj->primalResidualAverage = NULL;
|
847
|
+
resobj->dualResidualAverage = NULL;
|
848
|
+
#else
|
849
|
+
|
850
|
+
cupdlp_init_zero_vec_double(resobj->primalResidual, nrows);
|
851
|
+
cupdlp_init_zero_vec_double(resobj->dualResidual, ncols);
|
852
|
+
cupdlp_init_zero_vec_double(resobj->primalResidualAverage, nrows);
|
853
|
+
cupdlp_init_zero_vec_double(resobj->dualResidualAverage, ncols);
|
854
|
+
|
855
|
+
#endif
|
856
|
+
|
857
|
+
cupdlp_init_zero_vec_double(resobj->dSlackPos, ncols);
|
858
|
+
cupdlp_init_zero_vec_double(resobj->dSlackNeg, ncols);
|
859
|
+
cupdlp_init_zero_vec_double(resobj->dSlackPosAverage, ncols);
|
860
|
+
cupdlp_init_zero_vec_double(resobj->dSlackNegAverage, ncols);
|
861
|
+
cupdlp_init_zero_vec_double(resobj->dLowerFiltered, ncols);
|
862
|
+
cupdlp_init_zero_vec_double(resobj->dUpperFiltered, ncols);
|
863
|
+
|
864
|
+
#if !defined(CUPDLP_CPU) && USE_KERNELS
|
865
|
+
resobj->primalInfeasRay = NULL;
|
866
|
+
resobj->primalInfeasConstr = NULL;
|
867
|
+
resobj->primalInfeasBound = NULL;
|
868
|
+
resobj->dualInfeasRay = NULL;
|
869
|
+
resobj->dualInfeasLbRay = NULL;
|
870
|
+
resobj->dualInfeasUbRay = NULL;
|
871
|
+
#else
|
872
|
+
|
873
|
+
cupdlp_init_zero_vec_double(resobj->primalInfeasRay, ncols);
|
874
|
+
cupdlp_init_zero_vec_double(resobj->primalInfeasConstr, nrows);
|
875
|
+
cupdlp_init_zero_vec_double(resobj->primalInfeasBound, ncols);
|
876
|
+
cupdlp_init_zero_vec_double(resobj->dualInfeasRay, nrows);
|
877
|
+
cupdlp_init_zero_vec_double(resobj->dualInfeasLbRay, ncols);
|
878
|
+
cupdlp_init_zero_vec_double(resobj->dualInfeasUbRay, ncols);
|
879
|
+
#endif
|
829
880
|
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
881
|
+
|
882
|
+
#if !defined(CUPDLP_CPU) && USE_KERNELS
|
883
|
+
resobj->dualInfeasConstr = NULL;
|
884
|
+
#else
|
885
|
+
cupdlp_init_zero_vec_double(resobj->dualInfeasConstr, ncols);
|
886
|
+
#endif
|
887
|
+
|
888
|
+
// CUPDLP_INIT_DOUBLE_ZERO_VEC(resobj->dualInfeasBound, nrows);
|
837
889
|
|
838
890
|
cupdlp_filterlb(resobj->dLowerFiltered, problem->lower, -INFINITY, ncols);
|
839
891
|
cupdlp_filterub(resobj->dUpperFiltered, problem->upper, +INFINITY, ncols);
|
@@ -891,35 +943,35 @@ cupdlp_retcode iterates_Alloc(CUPDLPiterates *iterates, cupdlp_int ncols,
|
|
891
943
|
iterates->nCols = ncols;
|
892
944
|
iterates->nRows = nrows;
|
893
945
|
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
946
|
+
cupdlp_init_zero_vec_double(iterates->xSum, ncols);
|
947
|
+
cupdlp_init_zero_vec_double(iterates->ySum, nrows);
|
948
|
+
cupdlp_init_zero_vec_double(iterates->xLastRestart, ncols);
|
949
|
+
cupdlp_init_zero_vec_double(iterates->yLastRestart, nrows);
|
898
950
|
|
899
|
-
CUPDLP_INIT_CUPDLP_VEC(iterates->x, 1);
|
900
|
-
CUPDLP_INIT_CUPDLP_VEC(iterates->
|
951
|
+
CUPDLP_INIT_CUPDLP_VEC(iterates->x[0], 1);
|
952
|
+
CUPDLP_INIT_CUPDLP_VEC(iterates->x[1], 1);
|
901
953
|
CUPDLP_INIT_CUPDLP_VEC(iterates->xAverage, 1);
|
902
|
-
CUPDLP_INIT_CUPDLP_VEC(iterates->y, 1);
|
903
|
-
CUPDLP_INIT_CUPDLP_VEC(iterates->
|
954
|
+
CUPDLP_INIT_CUPDLP_VEC(iterates->y[0], 1);
|
955
|
+
CUPDLP_INIT_CUPDLP_VEC(iterates->y[1], 1);
|
904
956
|
CUPDLP_INIT_CUPDLP_VEC(iterates->yAverage, 1);
|
905
|
-
CUPDLP_INIT_CUPDLP_VEC(iterates->ax, 1);
|
906
|
-
CUPDLP_INIT_CUPDLP_VEC(iterates->
|
957
|
+
CUPDLP_INIT_CUPDLP_VEC(iterates->ax[0], 1);
|
958
|
+
CUPDLP_INIT_CUPDLP_VEC(iterates->ax[1], 1);
|
907
959
|
CUPDLP_INIT_CUPDLP_VEC(iterates->axAverage, 1);
|
908
|
-
CUPDLP_INIT_CUPDLP_VEC(iterates->aty, 1);
|
909
|
-
CUPDLP_INIT_CUPDLP_VEC(iterates->
|
960
|
+
CUPDLP_INIT_CUPDLP_VEC(iterates->aty[0], 1);
|
961
|
+
CUPDLP_INIT_CUPDLP_VEC(iterates->aty[1], 1);
|
910
962
|
CUPDLP_INIT_CUPDLP_VEC(iterates->atyAverage, 1);
|
911
963
|
|
912
|
-
CUPDLP_CALL(vec_Alloc(iterates->x, ncols));
|
913
|
-
CUPDLP_CALL(vec_Alloc(iterates->
|
964
|
+
CUPDLP_CALL(vec_Alloc(iterates->x[0], ncols));
|
965
|
+
CUPDLP_CALL(vec_Alloc(iterates->x[1], ncols));
|
914
966
|
CUPDLP_CALL(vec_Alloc(iterates->xAverage, ncols));
|
915
|
-
CUPDLP_CALL(vec_Alloc(iterates->y, nrows));
|
916
|
-
CUPDLP_CALL(vec_Alloc(iterates->
|
967
|
+
CUPDLP_CALL(vec_Alloc(iterates->y[0], nrows));
|
968
|
+
CUPDLP_CALL(vec_Alloc(iterates->y[1], nrows));
|
917
969
|
CUPDLP_CALL(vec_Alloc(iterates->yAverage, nrows));
|
918
|
-
CUPDLP_CALL(vec_Alloc(iterates->ax, nrows));
|
919
|
-
CUPDLP_CALL(vec_Alloc(iterates->
|
970
|
+
CUPDLP_CALL(vec_Alloc(iterates->ax[0], nrows));
|
971
|
+
CUPDLP_CALL(vec_Alloc(iterates->ax[1], nrows));
|
920
972
|
CUPDLP_CALL(vec_Alloc(iterates->axAverage, nrows));
|
921
|
-
CUPDLP_CALL(vec_Alloc(iterates->aty, ncols));
|
922
|
-
CUPDLP_CALL(vec_Alloc(iterates->
|
973
|
+
CUPDLP_CALL(vec_Alloc(iterates->aty[0], ncols));
|
974
|
+
CUPDLP_CALL(vec_Alloc(iterates->aty[1], ncols));
|
923
975
|
CUPDLP_CALL(vec_Alloc(iterates->atyAverage, ncols));
|
924
976
|
|
925
977
|
// initialization
|
@@ -1003,11 +1055,11 @@ exit_cleanup:
|
|
1003
1055
|
|
1004
1056
|
cupdlp_retcode vec_Alloc(CUPDLPvec *vec, cupdlp_int n) {
|
1005
1057
|
cupdlp_retcode retcode = RETCODE_OK;
|
1006
|
-
|
1058
|
+
cupdlp_init_zero_vec_double(vec->data, n);
|
1007
1059
|
vec->len = n;
|
1008
1060
|
#ifndef CUPDLP_CPU
|
1009
1061
|
CHECK_CUSPARSE(
|
1010
|
-
cusparseCreateDnVec(&vec->cuda_vec, n, vec->data, CudaComputeType))
|
1062
|
+
cusparseCreateDnVec(&vec->cuda_vec, n, vec->data, CudaComputeType))
|
1011
1063
|
#endif
|
1012
1064
|
|
1013
1065
|
exit_cleanup:
|
@@ -1029,14 +1081,20 @@ cupdlp_retcode PDHG_Alloc(CUPDLPwork *w) {
|
|
1029
1081
|
// buffer
|
1030
1082
|
CUPDLP_INIT_CUPDLP_VEC(w->buffer, 1);
|
1031
1083
|
CUPDLP_CALL(vec_Alloc(w->buffer, w->problem->data->nRows));
|
1032
|
-
|
1033
|
-
|
1034
|
-
|
1035
|
-
MAX(w->problem->data->nCols, w->problem->data->nRows));
|
1084
|
+
|
1085
|
+
|
1086
|
+
cupdlp_init_zero_vec_double(w->buffer2,
|
1087
|
+
MAX(2048, MAX(w->problem->data->nCols, w->problem->data->nRows)));
|
1088
|
+
#if defined(CUPDLP_CPU) || !(USE_KERNELS) || (CUPDLP_DUMP_LINESEARCH_STATS && CUPDLP_DEBUG)
|
1089
|
+
cupdlp_init_zero_vec_double(w->buffer3,
|
1090
|
+
MAX(2048, MAX(w->problem->data->nCols, w->problem->data->nRows)));
|
1091
|
+
#else
|
1092
|
+
w->buffer3 = NULL;
|
1093
|
+
#endif
|
1036
1094
|
|
1037
1095
|
// for scaling
|
1038
|
-
|
1039
|
-
|
1096
|
+
cupdlp_init_zero_vec_double(w->colScale, w->problem->data->nCols);
|
1097
|
+
cupdlp_init_zero_vec_double(w->rowScale, w->problem->data->nRows);
|
1040
1098
|
|
1041
1099
|
CUPDLP_CALL(settings_Alloc(w->settings));
|
1042
1100
|
CUPDLP_CALL(resobj_Alloc(w->resobj, w->problem, w->problem->data->nCols,
|
@@ -1048,12 +1106,12 @@ cupdlp_retcode PDHG_Alloc(CUPDLPwork *w) {
|
|
1048
1106
|
#ifndef CUPDLP_CPU
|
1049
1107
|
// CHECK_CUSPARSE(cusparseCreate(&w->cusparsehandle));
|
1050
1108
|
// CHECK_CUBLAS(cublasCreate(&w->cublashandle));
|
1051
|
-
cuda_alloc_MVbuffer(
|
1109
|
+
CUPDLP_CALL(cuda_alloc_MVbuffer(
|
1052
1110
|
// w->problem->data->matrix_format,
|
1053
1111
|
w->cusparsehandle, w->problem->data->csc_matrix->cuda_csc,
|
1054
|
-
w->iterates->x->cuda_vec, w->iterates->ax->cuda_vec,
|
1055
|
-
w->problem->data->csr_matrix->cuda_csr, w->iterates->y->cuda_vec,
|
1056
|
-
w->iterates->aty->cuda_vec, &w->
|
1112
|
+
w->iterates->x[0]->cuda_vec, w->iterates->ax[0]->cuda_vec,
|
1113
|
+
w->problem->data->csr_matrix->cuda_csr, w->iterates->y[0]->cuda_vec,
|
1114
|
+
w->iterates->aty[0]->cuda_vec, &w->dBuffer_csc_ATy, &w->dBuffer_csr_Ax))
|
1057
1115
|
w->timers->AllocMem_CopyMatToDeviceTime += getTimeStamp() - begin;
|
1058
1116
|
#endif
|
1059
1117
|
|
@@ -1077,14 +1135,30 @@ exit_cleanup:
|
|
1077
1135
|
void PDHG_Destroy(CUPDLPwork **w) {
|
1078
1136
|
if (w && *w) {
|
1079
1137
|
PDHG_Clear(*w);
|
1080
|
-
#ifndef CUPDLP_CPU
|
1081
|
-
cudaDeviceReset();
|
1082
|
-
#endif
|
1083
1138
|
}
|
1084
1139
|
}
|
1085
1140
|
|
1086
1141
|
void PDHG_Init_Data(CUPDLPwork *work) {}
|
1087
1142
|
|
1143
|
+
// double my_clock(void) {
|
1144
|
+
|
1145
|
+
// #ifdef CUPDLP_TIMER
|
1146
|
+
|
1147
|
+
// #if defined(_WIN32) || defined(_WIN64)
|
1148
|
+
// return (double)clock() / CLOCKS_PER_SEC;
|
1149
|
+
// #else
|
1150
|
+
// struct timeval t;
|
1151
|
+
// gettimeofday(&t, NULL);
|
1152
|
+
// return (1e-06 * t.tv_usec + t.tv_sec);
|
1153
|
+
// #endif
|
1154
|
+
|
1155
|
+
// #else
|
1156
|
+
// return 0;
|
1157
|
+
// #endif
|
1158
|
+
|
1159
|
+
// }
|
1160
|
+
|
1161
|
+
|
1088
1162
|
double my_clock(void) {
|
1089
1163
|
#ifdef CUPDLP_TIMER
|
1090
1164
|
// struct timeval t;
|
@@ -1308,6 +1382,7 @@ exit_cleanup:
|
|
1308
1382
|
|
1309
1383
|
cupdlp_retcode csc_create(CUPDLPcsc **csc) {
|
1310
1384
|
cupdlp_retcode retcode = RETCODE_OK;
|
1385
|
+
|
1311
1386
|
CUPDLP_INIT_CSC_MATRIX(*csc, 1);
|
1312
1387
|
|
1313
1388
|
exit_cleanup:
|
@@ -1318,7 +1393,7 @@ cupdlp_retcode dense_alloc_matrix(CUPDLPdense *dense, cupdlp_int nRows,
|
|
1318
1393
|
cupdlp_int nCols, void *src,
|
1319
1394
|
CUPDLP_MATRIX_FORMAT src_matrix_format) {
|
1320
1395
|
cupdlp_retcode retcode = RETCODE_OK;
|
1321
|
-
|
1396
|
+
cupdlp_init_zero_vec_double(dense->data, nRows * nCols);
|
1322
1397
|
|
1323
1398
|
switch (src_matrix_format) {
|
1324
1399
|
case DENSE:
|
@@ -1356,9 +1431,9 @@ cupdlp_retcode csr_alloc_matrix(CUPDLPcsr *csr, cupdlp_int nRows,
|
|
1356
1431
|
break;
|
1357
1432
|
}
|
1358
1433
|
// todo make sure this is right
|
1359
|
-
|
1360
|
-
|
1361
|
-
|
1434
|
+
cupdlp_init_zero_vec_int(csr->rowMatBeg, nRows + 1);
|
1435
|
+
cupdlp_init_zero_vec_int(csr->rowMatIdx, nnz);
|
1436
|
+
cupdlp_init_zero_vec_double(csr->rowMatElem, nnz);
|
1362
1437
|
|
1363
1438
|
switch (src_matrix_format) {
|
1364
1439
|
case DENSE:
|
@@ -1395,9 +1470,10 @@ cupdlp_retcode csc_alloc_matrix(CUPDLPcsc *csc, cupdlp_int nRows,
|
|
1395
1470
|
default:
|
1396
1471
|
break;
|
1397
1472
|
}
|
1398
|
-
|
1399
|
-
|
1400
|
-
|
1473
|
+
|
1474
|
+
cupdlp_init_zero_vec_int(csc->colMatBeg, nCols + 1);
|
1475
|
+
cupdlp_init_zero_vec_int(csc->colMatIdx, nnz);
|
1476
|
+
cupdlp_init_zero_vec_double(csc->colMatElem, nnz);
|
1401
1477
|
|
1402
1478
|
switch (src_matrix_format) {
|
1403
1479
|
case DENSE:
|
@@ -1422,7 +1498,7 @@ cupdlp_retcode dense_alloc(CUPDLPdense *dense, cupdlp_int nRows,
|
|
1422
1498
|
dense->nRows = nRows;
|
1423
1499
|
dense->nCols = nCols;
|
1424
1500
|
dense->data = cupdlp_NULL;
|
1425
|
-
|
1501
|
+
cupdlp_init_zero_vec_double(dense->data, nRows * nCols);
|
1426
1502
|
|
1427
1503
|
CUPDLP_COPY_VEC(dense->data, val, cupdlp_float, nRows * nCols);
|
1428
1504
|
exit_cleanup:
|
@@ -1440,9 +1516,9 @@ cupdlp_retcode csr_alloc(CUPDLPcsr *csr, cupdlp_int nRows, cupdlp_int nCols,
|
|
1440
1516
|
csr->rowMatIdx = cupdlp_NULL;
|
1441
1517
|
csr->rowMatElem = cupdlp_NULL;
|
1442
1518
|
|
1443
|
-
|
1444
|
-
|
1445
|
-
|
1519
|
+
cupdlp_init_zero_vec_int(csr->rowMatBeg, nRows + 1);
|
1520
|
+
cupdlp_init_zero_vec_int(csr->rowMatIdx, nnz);
|
1521
|
+
cupdlp_init_zero_vec_double(csr->rowMatElem, nnz);
|
1446
1522
|
|
1447
1523
|
CUPDLP_COPY_VEC(csr->rowMatBeg, row_ptr, cupdlp_int, nRows + 1);
|
1448
1524
|
CUPDLP_COPY_VEC(csr->rowMatIdx, col_ind, cupdlp_int, nnz);
|
@@ -1461,9 +1537,9 @@ cupdlp_retcode csc_alloc(CUPDLPcsc *csc, cupdlp_int nRows, cupdlp_int nCols,
|
|
1461
1537
|
csc->colMatBeg = cupdlp_NULL;
|
1462
1538
|
csc->colMatIdx = cupdlp_NULL;
|
1463
1539
|
csc->colMatElem = cupdlp_NULL;
|
1464
|
-
|
1465
|
-
|
1466
|
-
|
1540
|
+
cupdlp_init_zero_vec_int(csc->colMatBeg, nCols + 1);
|
1541
|
+
cupdlp_init_zero_vec_int(csc->colMatIdx, nnz);
|
1542
|
+
cupdlp_init_zero_vec_double(csc->colMatElem, nnz);
|
1467
1543
|
|
1468
1544
|
CUPDLP_COPY_VEC(csc->colMatBeg, col_ptr, cupdlp_int, nCols + 1);
|
1469
1545
|
CUPDLP_COPY_VEC(csc->colMatIdx, row_ind, cupdlp_int, nnz);
|
@@ -1497,12 +1573,17 @@ void PDHG_Dump_Stats(CUPDLPwork *w) {
|
|
1497
1573
|
cupdlp_printf("------------------------------------------------\n");
|
1498
1574
|
cupdlp_printf("Iteration % 3d\n", w->timers->nIter);
|
1499
1575
|
#if CUPDLP_DUMP_ITERATES
|
1500
|
-
|
1501
|
-
|
1576
|
+
cupdlp_int iter = w->timers->nIter;
|
1577
|
+
CUPDLPvec *x = iterates->x[iter % 2];
|
1578
|
+
CUPDLPvec *y = iterates->y[iter % 2];
|
1579
|
+
CUPDLPvec *aty = iterates->aty[iter % 2];
|
1580
|
+
|
1581
|
+
vecPrint("x", x->data, nCols);
|
1582
|
+
vecPrint("y", y->data, nRows);
|
1502
1583
|
vecPrint("xSum", iterates->xSum, nCols);
|
1503
1584
|
vecPrint("ySum", iterates->ySum, nRows);
|
1504
|
-
vecPrint("Ax ",
|
1505
|
-
vecPrint("A'y",
|
1585
|
+
vecPrint("Ax ", ax->data, nRows);
|
1586
|
+
vecPrint("A'y", aty->data, nCols);
|
1506
1587
|
vecPrint("xLastRestart", iterates->xLastRestart, nCols);
|
1507
1588
|
vecPrint("yLastRestart", iterates->yLastRestart, nRows);
|
1508
1589
|
#endif
|