casadi 3.6.5__cp312-none-manylinux2014_x86_64.whl → 3.6.7__cp312-none-manylinux2014_x86_64.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.py +739 -308
- casadi/cbc +0 -0
- casadi/clp +0 -0
- casadi/cmake/casadi-config-version.cmake +1 -1
- casadi/cmake/highs/highs-config.cmake +6 -13
- casadi/cmake/highs/highs-targets-release.cmake +13 -13
- casadi/cmake/highs/highs-targets.cmake +13 -10
- casadi/highs +0 -0
- casadi/include/casadi/casadi.i +3 -0
- casadi/include/casadi/casadi_c.h +2 -0
- casadi/include/casadi/config.h +8 -8
- casadi/include/casadi/core/casadi_common.hpp +1 -0
- casadi/include/casadi/core/casadi_misc.hpp +52 -0
- casadi/include/casadi/core/casadi_types.hpp +3 -2
- casadi/include/casadi/core/code_generator.hpp +30 -1
- casadi/include/casadi/core/global_options.hpp +2 -0
- casadi/include/casadi/core/mx.hpp +18 -3
- casadi/include/casadi/core/optistack.hpp +23 -0
- casadi/include/casadi/core/runtime/casadi_nlp.hpp +19 -4
- casadi/include/casadi/core/runtime/casadi_ocp_block.hpp +55 -0
- casadi/include/casadi/core/runtime/casadi_oracle.hpp +44 -0
- casadi/include/casadi/core/runtime/casadi_oracle_callback.hpp +39 -0
- casadi/include/casadi/core/runtime/casadi_runtime.hpp +4 -1
- casadi/include/casadi/core/runtime/casadi_scaled_copy.hpp +31 -0
- casadi/include/casadi/core/serializing_stream.hpp +2 -2
- casadi/include/casadi/core/sparsity.hpp +7 -0
- casadi/include/casadi/doc.i +1513 -1016
- casadi/include/casadi/doc_merged.i +965 -719
- casadi/include/casadi/mem.h +1 -0
- casadi/include/daqp/api.h +46 -0
- casadi/include/daqp/auxiliary.h +29 -0
- casadi/include/daqp/bnb.h +32 -0
- casadi/include/daqp/codegen.h +18 -0
- casadi/include/daqp/constants.h +92 -0
- casadi/include/daqp/daqp.h +22 -0
- casadi/include/daqp/daqp_prox.h +18 -0
- casadi/include/daqp/factorization.h +18 -0
- casadi/include/daqp/types.h +161 -0
- casadi/include/daqp/utils.h +44 -0
- casadi/include/fatrop/auxiliary/Common.hpp +34 -0
- casadi/include/fatrop/auxiliary/DynamicLib.hpp +34 -0
- casadi/include/fatrop/auxiliary/FatropOptions.hpp +68 -0
- casadi/include/fatrop/auxiliary/FatropVector.hpp +143 -0
- casadi/include/fatrop/auxiliary/LinearAlgebra.hpp +88 -0
- casadi/include/fatrop/auxiliary/VectorUtils.hpp +54 -0
- casadi/include/fatrop/blasfeo_wrapper/LinearAlgebraBlasfeo.hpp +493 -0
- casadi/include/fatrop/fatrop.hpp +39 -0
- casadi/include/fatrop/function_evaluation/CasadiCodegen.hpp +104 -0
- casadi/include/fatrop/function_evaluation/FunctionEvaluation.hpp +60 -0
- casadi/include/fatrop/json/json.h +946 -0
- casadi/include/fatrop/ocp/CasadiCApiUserdataWrap.hpp +87 -0
- casadi/include/fatrop/ocp/DuInfEvaluator.hpp +38 -0
- casadi/include/fatrop/ocp/FatropOCP.hpp +161 -0
- casadi/include/fatrop/ocp/FatropOCPBuilder.hpp +52 -0
- casadi/include/fatrop/ocp/FatropOCPResto.hpp +299 -0
- casadi/include/fatrop/ocp/OCP.hpp +82 -0
- casadi/include/fatrop/ocp/OCPAbstract.hpp +254 -0
- casadi/include/fatrop/ocp/OCPAdapter.hpp +197 -0
- casadi/include/fatrop/ocp/OCPCInterface.h +289 -0
- casadi/include/fatrop/ocp/OCPDims.hpp +60 -0
- casadi/include/fatrop/ocp/OCPInitializer.hpp +41 -0
- casadi/include/fatrop/ocp/OCPKKT.hpp +69 -0
- casadi/include/fatrop/ocp/OCPLSRiccati.hpp +198 -0
- casadi/include/fatrop/ocp/OCPLSScaler.hpp +66 -0
- casadi/include/fatrop/ocp/OCPLinearSolver.hpp +75 -0
- casadi/include/fatrop/ocp/OCPNoScaling.hpp +42 -0
- casadi/include/fatrop/ocp/OCPScalingMethod.hpp +42 -0
- casadi/include/fatrop/ocp/StageOCP.hpp +592 -0
- casadi/include/fatrop/ocp/StageOCPApplication.hpp +242 -0
- casadi/include/fatrop/ocp/StageOCPExpressions.hpp +182 -0
- casadi/include/fatrop/ocp/UStageEvalAbstract.hpp +168 -0
- casadi/include/fatrop/ocp/UStageOCPImpl.hpp +152 -0
- casadi/include/fatrop/quasi_newton/bfgs.hpp +159 -0
- casadi/include/fatrop/solver/AlgBuilder.hpp +76 -0
- casadi/include/fatrop/solver/AlgStrategy.hpp +33 -0
- casadi/include/fatrop/solver/FatropAlg.hpp +121 -0
- casadi/include/fatrop/solver/FatropData.hpp +188 -0
- casadi/include/fatrop/solver/FatropOptions.hpp +95 -0
- casadi/include/fatrop/solver/FatropPrinter.hpp +65 -0
- casadi/include/fatrop/solver/FatropStats.hpp +63 -0
- casadi/include/fatrop/solver/Filter.hpp +54 -0
- casadi/include/fatrop/solver/IterationData.hpp +56 -0
- casadi/include/fatrop/solver/LineSearch.hpp +86 -0
- casadi/include/fatrop/solver/NLPL1.hpp +263 -0
- casadi/include/fatrop/templates/NLPAlg.hpp +104 -0
- casadi/include/highs/HConfig.h +6 -5
- casadi/include/highs/Highs.h +93 -23
- casadi/include/highs/filereaderlp/def.hpp +19 -0
- casadi/include/highs/interfaces/highs_c_api.h +200 -24
- casadi/include/highs/io/Filereader.h +1 -1
- casadi/include/highs/io/FilereaderEms.h +1 -1
- casadi/include/highs/io/FilereaderLp.h +1 -1
- casadi/include/highs/io/FilereaderMps.h +1 -1
- casadi/include/highs/io/HMPSIO.h +1 -1
- casadi/include/highs/io/HMpsFF.h +5 -3
- casadi/include/highs/io/HighsIO.h +18 -8
- casadi/include/highs/io/LoadOptions.h +1 -1
- casadi/include/highs/ipm/IpxSolution.h +35 -0
- casadi/include/highs/ipm/IpxWrapper.h +1 -1
- casadi/include/highs/ipm/basiclu/basiclu.h +161 -0
- casadi/include/highs/ipm/basiclu/basiclu_factorize.h +247 -0
- casadi/include/highs/ipm/basiclu/basiclu_get_factors.h +108 -0
- casadi/include/highs/ipm/basiclu/basiclu_initialize.h +119 -0
- casadi/include/highs/ipm/basiclu/basiclu_obj_factorize.h +34 -0
- casadi/include/highs/ipm/basiclu/basiclu_obj_free.h +19 -0
- casadi/include/highs/ipm/basiclu/basiclu_obj_get_factors.h +34 -0
- casadi/include/highs/ipm/basiclu/basiclu_obj_initialize.h +46 -0
- casadi/include/highs/ipm/basiclu/basiclu_obj_solve_dense.h +29 -0
- casadi/include/highs/ipm/basiclu/basiclu_obj_solve_for_update.h +42 -0
- casadi/include/highs/ipm/basiclu/basiclu_obj_solve_sparse.h +32 -0
- casadi/include/highs/ipm/basiclu/basiclu_obj_update.h +31 -0
- casadi/include/highs/ipm/basiclu/basiclu_object.h +30 -0
- casadi/include/highs/ipm/basiclu/basiclu_solve_dense.h +75 -0
- casadi/include/highs/ipm/basiclu/basiclu_solve_for_update.h +169 -0
- casadi/include/highs/ipm/basiclu/basiclu_solve_sparse.h +112 -0
- casadi/include/highs/ipm/basiclu/basiclu_update.h +125 -0
- casadi/include/highs/ipm/basiclu/lu_def.h +39 -0
- casadi/include/highs/ipm/basiclu/lu_file.h +21 -0
- casadi/include/highs/ipm/basiclu/lu_internal.h +220 -0
- casadi/include/highs/ipm/basiclu/lu_list.h +168 -0
- casadi/include/highs/ipm/ipx/basiclu_kernel.h +20 -0
- casadi/include/highs/ipm/ipx/basiclu_wrapper.h +47 -0
- casadi/include/highs/ipm/ipx/basis.h +351 -0
- casadi/include/highs/ipm/ipx/conjugate_residuals.h +74 -0
- casadi/include/highs/ipm/ipx/control.h +163 -0
- casadi/include/highs/ipm/ipx/crossover.h +157 -0
- casadi/include/highs/ipm/ipx/diagonal_precond.h +45 -0
- casadi/include/highs/ipm/ipx/forrest_tomlin.h +102 -0
- casadi/include/highs/ipm/ipx/guess_basis.h +21 -0
- casadi/include/highs/ipm/ipx/indexed_vector.h +113 -0
- casadi/include/highs/ipm/ipx/info.h +27 -0
- casadi/include/highs/ipm/ipx/ipm.h +94 -0
- casadi/include/highs/ipm/ipx/ipx_c.h +47 -0
- casadi/include/highs/ipm/ipx/ipx_config.h +9 -0
- casadi/include/highs/ipm/ipx/ipx_info.h +111 -0
- casadi/include/highs/ipm/ipx/ipx_internal.h +88 -0
- casadi/include/highs/ipm/ipx/ipx_parameters.h +75 -0
- casadi/include/highs/ipm/ipx/ipx_status.h +57 -0
- casadi/include/highs/ipm/ipx/iterate.h +328 -0
- casadi/include/highs/ipm/ipx/kkt_solver.h +70 -0
- casadi/include/highs/ipm/ipx/kkt_solver_basis.h +66 -0
- casadi/include/highs/ipm/ipx/kkt_solver_diag.h +48 -0
- casadi/include/highs/ipm/ipx/linear_operator.h +26 -0
- casadi/include/highs/ipm/ipx/lp_solver.h +201 -0
- casadi/include/highs/ipm/ipx/lu_factorization.h +79 -0
- casadi/include/highs/ipm/ipx/lu_update.h +129 -0
- casadi/include/highs/ipm/ipx/maxvolume.h +54 -0
- casadi/include/highs/ipm/ipx/model.h +409 -0
- casadi/include/highs/ipm/ipx/multistream.h +52 -0
- casadi/include/highs/ipm/ipx/normal_matrix.h +44 -0
- casadi/include/highs/ipm/ipx/power_method.h +44 -0
- casadi/include/highs/ipm/ipx/sparse_matrix.h +195 -0
- casadi/include/highs/ipm/ipx/sparse_utils.h +58 -0
- casadi/include/highs/ipm/ipx/splitted_normal_matrix.h +63 -0
- casadi/include/highs/ipm/ipx/starting_basis.h +39 -0
- casadi/include/highs/ipm/ipx/symbolic_invert.h +29 -0
- casadi/include/highs/ipm/ipx/timer.h +24 -0
- casadi/include/highs/ipm/ipx/utils.h +39 -0
- casadi/include/highs/lp_data/HConst.h +20 -10
- casadi/include/highs/lp_data/HStruct.h +23 -1
- casadi/include/highs/lp_data/HighsAnalysis.h +1 -1
- casadi/include/highs/lp_data/HighsCallback.h +10 -3
- casadi/include/highs/lp_data/HighsCallbackStruct.h +31 -5
- casadi/include/highs/lp_data/HighsDebug.h +1 -1
- casadi/include/highs/lp_data/HighsInfo.h +20 -2
- casadi/include/highs/lp_data/HighsInfoDebug.h +1 -1
- casadi/include/highs/lp_data/HighsLp.h +17 -1
- casadi/include/highs/lp_data/HighsLpSolverObject.h +1 -1
- casadi/include/highs/lp_data/HighsLpUtils.h +19 -19
- casadi/include/highs/lp_data/HighsModelUtils.h +1 -1
- casadi/include/highs/lp_data/HighsOptions.h +237 -10
- casadi/include/highs/lp_data/HighsRanging.h +1 -1
- casadi/include/highs/lp_data/HighsRuntimeOptions.h +2 -2
- casadi/include/highs/lp_data/HighsSolution.h +2 -2
- casadi/include/highs/lp_data/HighsSolutionDebug.h +1 -1
- casadi/include/highs/lp_data/HighsSolve.h +3 -1
- casadi/include/highs/lp_data/HighsStatus.h +1 -1
- casadi/include/highs/mip/HighsCliqueTable.h +4 -4
- casadi/include/highs/mip/HighsConflictPool.h +1 -1
- casadi/include/highs/mip/HighsCutGeneration.h +1 -1
- casadi/include/highs/mip/HighsCutPool.h +2 -2
- casadi/include/highs/mip/HighsDebugSol.h +22 -29
- casadi/include/highs/mip/HighsDomain.h +10 -2
- casadi/include/highs/mip/HighsDomainChange.h +1 -1
- casadi/include/highs/mip/HighsDynamicRowMatrix.h +5 -3
- casadi/include/highs/mip/HighsGFkSolve.h +3 -3
- casadi/include/highs/mip/HighsImplications.h +3 -3
- casadi/include/highs/mip/HighsLpAggregator.h +1 -1
- casadi/include/highs/mip/HighsLpRelaxation.h +6 -1
- casadi/include/highs/mip/HighsMipSolver.h +4 -2
- casadi/include/highs/mip/HighsMipSolverData.h +47 -4
- casadi/include/highs/mip/HighsModkSeparator.h +2 -2
- casadi/include/highs/mip/HighsNodeQueue.h +5 -3
- casadi/include/highs/mip/HighsObjectiveFunction.h +1 -1
- casadi/include/highs/mip/HighsPathSeparator.h +2 -2
- casadi/include/highs/mip/HighsPrimalHeuristics.h +1 -1
- casadi/include/highs/mip/HighsPseudocost.h +35 -23
- casadi/include/highs/mip/HighsRedcostFixing.h +1 -1
- casadi/include/highs/mip/HighsSearch.h +2 -1
- casadi/include/highs/mip/HighsSeparation.h +1 -1
- casadi/include/highs/mip/HighsSeparator.h +1 -1
- casadi/include/highs/mip/HighsTableauSeparator.h +1 -1
- casadi/include/highs/mip/HighsTransformedLp.h +1 -1
- casadi/include/highs/model/HighsHessian.h +5 -0
- casadi/include/highs/model/HighsHessianUtils.h +2 -0
- casadi/include/highs/model/HighsModel.h +10 -1
- casadi/include/highs/parallel/HighsMutex.h +2 -1
- casadi/include/highs/parallel/HighsParallel.h +7 -2
- casadi/include/highs/parallel/HighsTask.h +1 -2
- casadi/include/highs/pdlp/CupdlpWrapper.h +93 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +41 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +423 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +183 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_proj.h +19 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_restart.h +31 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_scaling_cuda.h +28 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +98 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +33 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +1726 -0
- casadi/include/highs/pdqsort/pdqsort.h +532 -0
- casadi/include/highs/presolve/HPresolve.h +27 -14
- casadi/include/highs/presolve/HPresolveAnalysis.h +1 -1
- casadi/include/highs/presolve/HighsPostsolveStack.h +92 -68
- casadi/include/highs/presolve/HighsSymmetry.h +6 -5
- casadi/include/highs/presolve/ICrash.h +8 -2
- casadi/include/highs/presolve/ICrashUtil.h +1 -1
- casadi/include/highs/presolve/ICrashX.h +1 -1
- casadi/include/highs/presolve/PresolveComponent.h +1 -1
- casadi/include/highs/qpsolver/a_asm.hpp +23 -12
- casadi/include/highs/qpsolver/a_quass.hpp +8 -1
- casadi/include/highs/qpsolver/basis.hpp +150 -0
- casadi/include/highs/qpsolver/crashsolution.hpp +12 -0
- casadi/include/highs/qpsolver/dantzigpricing.hpp +72 -0
- casadi/include/highs/qpsolver/devexpricing.hpp +99 -0
- casadi/include/highs/qpsolver/eventhandler.hpp +23 -0
- casadi/include/highs/qpsolver/factor.hpp +400 -0
- casadi/include/highs/qpsolver/feasibility_bounded.hpp +105 -0
- casadi/include/highs/qpsolver/feasibility_highs.hpp +270 -0
- casadi/include/highs/qpsolver/gradient.hpp +39 -0
- casadi/include/highs/qpsolver/instance.hpp +63 -0
- casadi/include/highs/qpsolver/matrix.hpp +335 -0
- casadi/include/highs/qpsolver/pricing.hpp +15 -0
- casadi/include/highs/qpsolver/qpconst.hpp +27 -0
- casadi/include/highs/qpsolver/{vector.hpp → qpvector.hpp} +25 -25
- casadi/include/highs/qpsolver/quass.hpp +1 -1
- casadi/include/highs/qpsolver/ratiotest.hpp +19 -0
- casadi/include/highs/qpsolver/runtime.hpp +38 -0
- casadi/include/highs/qpsolver/settings.hpp +57 -0
- casadi/include/highs/qpsolver/snippets.hpp +29 -0
- casadi/include/highs/qpsolver/statistics.hpp +23 -0
- casadi/include/highs/qpsolver/steepestedgepricing.hpp +167 -0
- casadi/include/highs/simplex/HApp.h +1 -1
- casadi/include/highs/simplex/HEkk.h +52 -18
- casadi/include/highs/simplex/HEkkDual.h +1 -1
- casadi/include/highs/simplex/HEkkDualRHS.h +6 -7
- casadi/include/highs/simplex/HEkkDualRow.h +2 -2
- casadi/include/highs/simplex/HEkkPrimal.h +6 -1
- casadi/include/highs/simplex/HSimplex.h +1 -3
- casadi/include/highs/simplex/HSimplexDebug.h +1 -1
- casadi/include/highs/simplex/HSimplexNla.h +1 -1
- casadi/include/highs/simplex/HSimplexReport.h +1 -1
- casadi/include/highs/simplex/HighsSimplexAnalysis.h +228 -100
- casadi/include/highs/simplex/SimplexConst.h +1 -1
- casadi/include/highs/simplex/SimplexStruct.h +2 -2
- casadi/include/highs/simplex/SimplexTimer.h +1 -1
- casadi/include/highs/test/DevKkt.h +1 -1
- casadi/include/highs/test/KktCh2.h +1 -1
- casadi/include/highs/util/FactorTimer.h +1 -1
- casadi/include/highs/util/HFactor.h +35 -6
- casadi/include/highs/util/HFactorConst.h +1 -1
- casadi/include/highs/util/HFactorDebug.h +1 -1
- casadi/include/highs/util/HSet.h +1 -1
- casadi/include/highs/util/HVector.h +1 -1
- casadi/include/highs/util/HVectorBase.h +1 -1
- casadi/include/highs/util/HighsCDouble.h +3 -3
- casadi/include/highs/util/HighsComponent.h +1 -1
- casadi/include/highs/util/HighsDataStack.h +4 -4
- casadi/include/highs/util/HighsDisjointSets.h +1 -1
- casadi/include/highs/util/HighsHash.h +28 -21
- casadi/include/highs/util/HighsHashTree.h +63 -63
- casadi/include/highs/util/HighsInt.h +1 -1
- casadi/include/highs/util/HighsIntegers.h +8 -9
- casadi/include/highs/util/HighsLinearSumBounds.h +1 -1
- casadi/include/highs/util/HighsMatrixPic.h +1 -1
- casadi/include/highs/util/HighsMatrixSlice.h +9 -6
- casadi/include/highs/util/HighsMatrixUtils.h +1 -1
- casadi/include/highs/util/HighsMemoryAllocation.h +55 -0
- casadi/include/highs/util/HighsRandom.h +27 -15
- casadi/include/highs/util/HighsRbTree.h +2 -2
- casadi/include/highs/util/HighsSort.h +7 -7
- casadi/include/highs/util/HighsSparseMatrix.h +5 -2
- casadi/include/highs/util/HighsSparseVectorSum.h +2 -2
- casadi/include/highs/util/HighsSplay.h +1 -1
- casadi/include/highs/util/HighsTimer.h +18 -9
- casadi/include/highs/util/HighsUtils.h +15 -8
- casadi/include/highs/util/stringutil.h +9 -4
- casadi/include/highs/zstr/strict_fstream.hpp +237 -0
- casadi/include/highs/zstr/zstr.hpp +472 -0
- casadi/include/highs_export.h +42 -0
- casadi/include/licenses/daqp-external/LICENSE +21 -0
- casadi/include/licenses/fatrop-external/LICENSE.txt +165 -0
- casadi/include/licenses/fatrop-external/external/blasfeo/LICENSE.txt +26 -0
- casadi/include/licenses/fatrop-external/external/pybind11/LICENSE +29 -0
- casadi/include/licenses/highs-external/{LICENSE → LICENSE.txt} +1 -1
- casadi/include/osqp/constants.h +2 -3
- casadi/include/osqp/version.h +9 -0
- casadi/include/sleqp/defs.h +2 -2
- casadi/lib64/libtinyxml2.a +0 -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_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_cplex.so +0 -0
- casadi/libcasadi_conic_cplex.so.3.7 +0 -0
- casadi/libcasadi_conic_daqp.so +0 -0
- casadi/libcasadi_conic_daqp.so.3.7 +0 -0
- casadi/libcasadi_conic_fatrop.so +0 -0
- casadi/libcasadi_conic_fatrop.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_hpipm.so +0 -0
- casadi/libcasadi_conic_hpipm.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_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_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_fatrop.so +0 -0
- casadi/libcasadi_nlpsol_fatrop.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/libcoinmetis.la +1 -1
- casadi/libcoinmetis.so +0 -0
- casadi/libcoinmetis.so.2 +0 -0
- casadi/libcoinmetis.so.2.0.0 +0 -0
- casadi/libdaqp.so +0 -0
- casadi/libdaqpstat.a +0 -0
- casadi/libfatrop.so +0 -0
- casadi/libhighs.so +0 -0
- casadi/libhighs.so.1 +0 -0
- casadi/libhighs.so.1.7.2 +0 -0
- casadi/libindirect.a +0 -0
- casadi/liblinsys.a +0 -0
- casadi/libmatlab_ipc.so +0 -0
- casadi/libosqp.a +0 -0
- casadi/libosqp.so +0 -0
- casadi/libqdldl.a +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/pkgconfig/casadi.pc +1 -1
- casadi/pkgconfig/highs.pc +1 -1
- casadi/tools/__init__.py +4 -0
- casadi/tools/bounds.py +3 -3
- {casadi-3.6.5.dist-info → casadi-3.6.7.dist-info}/METADATA +2 -2
- {casadi-3.6.5.dist-info → casadi-3.6.7.dist-info}/RECORD +425 -255
- casadi/include/highs/fortran/highs_fortran_api.mod +0 -0
- casadi/libFortranHighs.so +0 -0
- casadi/libhighs.so.1.6 +0 -0
- casadi/libhighs.so.1.6.0 +0 -0
- {casadi-3.6.5.dist-info → casadi-3.6.7.dist-info}/WHEEL +0 -0
casadi/include/casadi/mem.h
CHANGED
@@ -46,6 +46,7 @@ extern "C" {
|
|
46
46
|
#endif
|
47
47
|
|
48
48
|
/* Function types corresponding to entry points in CasADi's C API */
|
49
|
+
typedef int (*casadi_config_t)(int, const char**);
|
49
50
|
typedef void (*casadi_signal_t)(void);
|
50
51
|
typedef casadi_int (*casadi_getint_t)(void);
|
51
52
|
typedef int (*casadi_checkout_t)(void);
|
@@ -0,0 +1,46 @@
|
|
1
|
+
#ifndef DAQP_API_H
|
2
|
+
# define DAQP_API_H
|
3
|
+
|
4
|
+
# ifdef __cplusplus
|
5
|
+
extern "C" {
|
6
|
+
# endif // ifdef __cplusplus
|
7
|
+
|
8
|
+
#include "daqp.h"
|
9
|
+
#include "daqp_prox.h"
|
10
|
+
#include "bnb.h"
|
11
|
+
|
12
|
+
typedef struct{
|
13
|
+
c_float *x;
|
14
|
+
c_float *lam;
|
15
|
+
c_float fval;
|
16
|
+
c_float soft_slack;
|
17
|
+
|
18
|
+
int exitflag;
|
19
|
+
int iter;
|
20
|
+
int nodes;
|
21
|
+
c_float solve_time;
|
22
|
+
c_float setup_time;
|
23
|
+
|
24
|
+
}DAQPResult;
|
25
|
+
|
26
|
+
void daqp_solve(DAQPResult* res, DAQPWorkspace *work);
|
27
|
+
void daqp_quadprog(DAQPResult* res, DAQPProblem* qp,DAQPSettings* settings);
|
28
|
+
|
29
|
+
int setup_daqp(DAQPProblem *qp, DAQPWorkspace* work, c_float* setup_time);
|
30
|
+
int setup_daqp_ldp(DAQPWorkspace *work, DAQPProblem* qp);
|
31
|
+
int setup_daqp_bnb(DAQPWorkspace* work, int nb, int ns);
|
32
|
+
void allocate_daqp_settings(DAQPWorkspace *work);
|
33
|
+
void allocate_daqp_workspace(DAQPWorkspace *work, int n, int ns);
|
34
|
+
|
35
|
+
void free_daqp_ldp(DAQPWorkspace *work);
|
36
|
+
void free_daqp_workspace(DAQPWorkspace *work);
|
37
|
+
void free_daqp_bnb(DAQPWorkspace* work);
|
38
|
+
|
39
|
+
void daqp_extract_result(DAQPResult* res, DAQPWorkspace* work);
|
40
|
+
void daqp_default_settings(DAQPSettings *settings);
|
41
|
+
|
42
|
+
# ifdef __cplusplus
|
43
|
+
}
|
44
|
+
# endif // ifdef __cplusplus
|
45
|
+
|
46
|
+
#endif //ifndef DAQP_API_H
|
@@ -0,0 +1,29 @@
|
|
1
|
+
#ifndef DAQP_AUX_H
|
2
|
+
# define DAQP_AUX_H
|
3
|
+
|
4
|
+
# ifdef __cplusplus
|
5
|
+
extern "C" {
|
6
|
+
# endif // ifdef __cplusplus
|
7
|
+
|
8
|
+
#include "types.h"
|
9
|
+
#include "constants.h"
|
10
|
+
|
11
|
+
void remove_constraint(DAQPWorkspace* work, const int rm_ind);
|
12
|
+
void add_constraint(DAQPWorkspace *work, const int add_ind, c_float lam);
|
13
|
+
void compute_primal_and_fval(DAQPWorkspace *work);
|
14
|
+
int add_infeasible(DAQPWorkspace *work);
|
15
|
+
int remove_blocking(DAQPWorkspace *work);
|
16
|
+
void compute_CSP(DAQPWorkspace *work);
|
17
|
+
void compute_singular_direction(DAQPWorkspace *work);
|
18
|
+
|
19
|
+
void reorder_LDL(DAQPWorkspace *work);
|
20
|
+
void pivot_last(DAQPWorkspace *work);
|
21
|
+
|
22
|
+
int activate_constraints(DAQPWorkspace *work);
|
23
|
+
void deactivate_constraints(DAQPWorkspace *work);
|
24
|
+
|
25
|
+
# ifdef __cplusplus
|
26
|
+
}
|
27
|
+
# endif // ifdef __cplusplus
|
28
|
+
|
29
|
+
#endif //ifndef DAQP_AUX_H
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#ifndef DAQP_BNB_H
|
2
|
+
# define DAQP_BNB_H
|
3
|
+
|
4
|
+
# ifdef __cplusplus
|
5
|
+
extern "C" {
|
6
|
+
# endif // ifdef __cplusplus
|
7
|
+
|
8
|
+
#include "types.h"
|
9
|
+
#include "constants.h"
|
10
|
+
#include "daqp.h"
|
11
|
+
|
12
|
+
int daqp_bnb(DAQPWorkspace* work);
|
13
|
+
int process_node(DAQPNode* node, DAQPWorkspace* work);
|
14
|
+
int get_branch_id(DAQPWorkspace* work);
|
15
|
+
void spawn_children(DAQPNode* node, const int branch_id, DAQPWorkspace* work);
|
16
|
+
|
17
|
+
void node_cleanup_workspace(int n_clean, DAQPWorkspace* work);
|
18
|
+
void warmstart_node(DAQPNode* node, DAQPWorkspace* work);
|
19
|
+
void save_warmstart(DAQPNode* node, DAQPWorkspace* work);
|
20
|
+
int add_upper_lower(const int add_id, DAQPWorkspace* work);
|
21
|
+
|
22
|
+
#define LOWER_BIT 16
|
23
|
+
#define EXTRACT_LOWER_FLAG(x) (x>>(LOWER_BIT-1))
|
24
|
+
#define REMOVE_LOWER_FLAG(x) (x&~(1<<LOWER_BIT))
|
25
|
+
#define ADD_LOWER_FLAG(x) (x|(1<<LOWER_BIT))
|
26
|
+
#define TOGGLE_LOWER_FLAG(x) (x^(1<<LOWER_BIT))
|
27
|
+
|
28
|
+
# ifdef __cplusplus
|
29
|
+
}
|
30
|
+
# endif // ifdef __cplusplus
|
31
|
+
|
32
|
+
#endif //ifndef DAQP_BNB_H
|
@@ -0,0 +1,18 @@
|
|
1
|
+
#ifndef DAQP_CODEGEN_H
|
2
|
+
#define DAQP_CODEGEN_H
|
3
|
+
|
4
|
+
#include <stdio.h>
|
5
|
+
#include "types.h"
|
6
|
+
|
7
|
+
void render_daqp_workspace(DAQPWorkspace* work, const char *fname, const char* dir);
|
8
|
+
|
9
|
+
void write_daqp_workspace_h(FILE *f, DAQPWorkspace *work);
|
10
|
+
void write_daqp_workspace_src(FILE *f, DAQPWorkspace *work);
|
11
|
+
void write_daqp_settings_src(FILE* f, DAQPSettings* settings);
|
12
|
+
void write_daqp_bnb_h(FILE* f, DAQPBnB* bnb, const int n);
|
13
|
+
void write_daqp_bnb_src(FILE* f, DAQPBnB* bnb, const int n);
|
14
|
+
|
15
|
+
void write_float_array(FILE *f, c_float* a, const int N, const char *name);
|
16
|
+
void write_int_array(FILE *f, int* a, const int N, const char *name);
|
17
|
+
|
18
|
+
#endif //ifndef DAQP_CODEGEN_H
|
@@ -0,0 +1,92 @@
|
|
1
|
+
#ifndef DAQP_CONSTANTS_H
|
2
|
+
#define DAQP_CONSTANTS_H
|
3
|
+
|
4
|
+
# ifdef __cplusplus
|
5
|
+
extern "C" {
|
6
|
+
# endif // ifdef __cplusplus
|
7
|
+
|
8
|
+
#include <stddef.h>
|
9
|
+
|
10
|
+
#define EMPTY_IND -1
|
11
|
+
#define NX work->n
|
12
|
+
#define N_CONSTR work->m
|
13
|
+
#define N_SIMPLE work->ms
|
14
|
+
#define DAQP_INF ((c_float)1e30)
|
15
|
+
|
16
|
+
// DEFAULT SETTINGS
|
17
|
+
#define DEFAULT_PRIM_TOL 1e-6
|
18
|
+
#define DEFAULT_DUAL_TOL 1e-12
|
19
|
+
#define DEFAULT_ZERO_TOL 1e-11
|
20
|
+
#define DEFAULT_PROG_TOL 1e-14
|
21
|
+
#define DEFAULT_PIVOT_TOL 1e-6
|
22
|
+
#define DEFAULT_CYCLE_TOL 10
|
23
|
+
#define DEFAULT_ETA 1e-6
|
24
|
+
#define DEFAULT_ITER_LIMIT 1000
|
25
|
+
#define DEFAULT_RHO_SOFT 1e-3
|
26
|
+
#define DEFAULT_REL_SUBOPT 0
|
27
|
+
#define DEFAULT_ABS_SUBOPT 0
|
28
|
+
|
29
|
+
// MACROS
|
30
|
+
#define SQUARE(x) ((x)*(x))
|
31
|
+
#define ARSUM(x) ((x)*(x+1)/2)
|
32
|
+
#define R_OFFSET(X,Y) (((2*Y-X-1)*X)/2)
|
33
|
+
|
34
|
+
// EXIT FLAGS
|
35
|
+
#define EXIT_SOFT_OPTIMAL 2
|
36
|
+
#define EXIT_OPTIMAL 1
|
37
|
+
#define EXIT_INFEASIBLE -1
|
38
|
+
#define EXIT_CYCLE -2
|
39
|
+
#define EXIT_UNBOUNDED -3
|
40
|
+
#define EXIT_ITERLIMIT -4
|
41
|
+
#define EXIT_NONCONVEX -5
|
42
|
+
#define EXIT_OVERDETERMINED_INITIAL -6
|
43
|
+
|
44
|
+
// UPDATE LDP MASKS
|
45
|
+
#define UPDATE_Rinv 1
|
46
|
+
#define UPDATE_M 2
|
47
|
+
#define UPDATE_v 4
|
48
|
+
#define UPDATE_d 8
|
49
|
+
#define UPDATE_sense 16
|
50
|
+
|
51
|
+
// CONSTRAINT MASKS
|
52
|
+
#define ACTIVE 1
|
53
|
+
#define IS_ACTIVE(x) (work->sense[x]&1)
|
54
|
+
#define SET_ACTIVE(x) (work->sense[x]|=1)
|
55
|
+
#define SET_INACTIVE(x) (work->sense[x]&=~1)
|
56
|
+
|
57
|
+
// marks if a constraints is active at its lower bound
|
58
|
+
#define LOWER 2
|
59
|
+
#define IS_LOWER(x) (work->sense[x]&2)
|
60
|
+
#define SET_LOWER(x) (work->sense[x]|=2)
|
61
|
+
#define SET_UPPER(x) (work->sense[x]&=~2)
|
62
|
+
|
63
|
+
// marks if a constraint cannot be activated/deactivated
|
64
|
+
#define IMMUTABLE 4
|
65
|
+
#define IS_IMMUTABLE(x) (work->sense[x]&4)
|
66
|
+
#define SET_IMMUTABLE(x) (work->sense[x]|=4)
|
67
|
+
#define SET_MUTABLE(x) (work->sense[x]&=~4)
|
68
|
+
|
69
|
+
// marks that a constraint might be violated (but the slack is penalized)
|
70
|
+
#define SOFT 8
|
71
|
+
#define IS_SOFT(x) (work->sense[x]&8)
|
72
|
+
#define SET_SOFT(x) (work->sense[x]|=8)
|
73
|
+
#define SET_HARD(x) (work->sense[x]&=~8)
|
74
|
+
|
75
|
+
// marks that a constraint has to be active at either its upper or lower bound
|
76
|
+
#define BINARY 16
|
77
|
+
#define IS_BINARY(x) (work->sense[x]&16)
|
78
|
+
|
79
|
+
// marks that the soft slack is at its lower bound (d_ls or d_us)
|
80
|
+
#define SLACK_FIXED 32
|
81
|
+
#define IS_SLACK_FIXED(x) (work->sense[x]&32)
|
82
|
+
#define IS_SLACK_FREE(x) ((work->sense[x]&32)==0)
|
83
|
+
#define SET_SLACK_FIXED(x) (work->sense[x]|=32)
|
84
|
+
#define SET_SLACK_FREE(x) (work->sense[x]&=~32)
|
85
|
+
|
86
|
+
#define IS_SIMPLE(x) (x < work->ms)
|
87
|
+
|
88
|
+
# ifdef __cplusplus
|
89
|
+
}
|
90
|
+
# endif // ifdef __cplusplus
|
91
|
+
|
92
|
+
#endif //ifndef DAQP_CONSTANTS_H
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#ifndef DAQP_H
|
2
|
+
# define DAQP_H
|
3
|
+
|
4
|
+
# ifdef __cplusplus
|
5
|
+
extern "C" {
|
6
|
+
# endif // ifdef __cplusplus
|
7
|
+
|
8
|
+
#include "factorization.h"
|
9
|
+
#include "constants.h"
|
10
|
+
#include "auxiliary.h"
|
11
|
+
|
12
|
+
int daqp_ldp(DAQPWorkspace *work);
|
13
|
+
void ldp2qp_solution(DAQPWorkspace *work);
|
14
|
+
|
15
|
+
void warmstart_workspace(DAQPWorkspace* work, int* WS, const int n_active);
|
16
|
+
void reset_daqp_workspace(DAQPWorkspace *work);
|
17
|
+
|
18
|
+
# ifdef __cplusplus
|
19
|
+
}
|
20
|
+
# endif // ifdef __cplusplus
|
21
|
+
|
22
|
+
#endif //ifndef DAQP_H
|
@@ -0,0 +1,18 @@
|
|
1
|
+
#ifndef DAQP_PROX_H
|
2
|
+
# define DAQP_PROX_H
|
3
|
+
|
4
|
+
# ifdef __cplusplus
|
5
|
+
extern "C" {
|
6
|
+
# endif // ifdef __cplusplus
|
7
|
+
|
8
|
+
#include "types.h"
|
9
|
+
#include "constants.h"
|
10
|
+
#include "daqp.h"
|
11
|
+
|
12
|
+
int daqp_prox(DAQPWorkspace *work);
|
13
|
+
|
14
|
+
# ifdef __cplusplus
|
15
|
+
}
|
16
|
+
# endif // ifdef __cplusplus
|
17
|
+
|
18
|
+
#endif //ifndef DAQP_PROX_H
|
@@ -0,0 +1,18 @@
|
|
1
|
+
#ifndef DAQP_FACTORIZATION_H
|
2
|
+
# define DAQP_FACTORIZATION_H
|
3
|
+
|
4
|
+
# ifdef __cplusplus
|
5
|
+
extern "C" {
|
6
|
+
# endif // ifdef __cplusplus
|
7
|
+
|
8
|
+
#include "types.h"
|
9
|
+
#include "constants.h"
|
10
|
+
|
11
|
+
void update_LDL_add(DAQPWorkspace *work, const int add_ind);
|
12
|
+
void update_LDL_remove(DAQPWorkspace *work, const int rm_ind);
|
13
|
+
|
14
|
+
# ifdef __cplusplus
|
15
|
+
}
|
16
|
+
# endif // ifdef __cplusplus
|
17
|
+
|
18
|
+
#endif //ifndef DAQP_FACTORIZATION_H
|
@@ -0,0 +1,161 @@
|
|
1
|
+
#ifndef DAQP_TYPES_H
|
2
|
+
# define DAQP_TYPES_H
|
3
|
+
|
4
|
+
# ifdef __cplusplus
|
5
|
+
extern "C" {
|
6
|
+
# endif // ifdef __cplusplus
|
7
|
+
|
8
|
+
#ifdef DAQP_SINGLE_PRECISION
|
9
|
+
typedef float c_float;
|
10
|
+
#else
|
11
|
+
typedef double c_float;
|
12
|
+
#endif
|
13
|
+
|
14
|
+
typedef struct{
|
15
|
+
|
16
|
+
// Data for the QP problem
|
17
|
+
//
|
18
|
+
// min 0.5 x'*H*x + f'x
|
19
|
+
// s.t lbA <= A*x <= ubA
|
20
|
+
// lb <= x <= ub
|
21
|
+
//
|
22
|
+
// n - dimension of x
|
23
|
+
// m - total number of constraints
|
24
|
+
// ms - number of simple bounds
|
25
|
+
// blower = [lb; lbA];
|
26
|
+
// bupper = [ub; ubA];
|
27
|
+
// (The number of rows in A is hence m-ms)
|
28
|
+
|
29
|
+
// sense define the state of the constraints
|
30
|
+
// (active, immutable, upper/lower, soft, binary).
|
31
|
+
|
32
|
+
int n;
|
33
|
+
int m;
|
34
|
+
int ms;
|
35
|
+
|
36
|
+
c_float* H;
|
37
|
+
c_float* f;
|
38
|
+
|
39
|
+
c_float* A;
|
40
|
+
c_float* bupper;
|
41
|
+
c_float* blower;
|
42
|
+
|
43
|
+
int* sense;
|
44
|
+
|
45
|
+
}DAQPProblem;
|
46
|
+
|
47
|
+
typedef struct{
|
48
|
+
c_float primal_tol;
|
49
|
+
c_float dual_tol;
|
50
|
+
c_float zero_tol;
|
51
|
+
c_float pivot_tol;
|
52
|
+
c_float progress_tol;
|
53
|
+
|
54
|
+
int cycle_tol;
|
55
|
+
int iter_limit;
|
56
|
+
c_float fval_bound;
|
57
|
+
|
58
|
+
c_float eps_prox;
|
59
|
+
c_float eta_prox;
|
60
|
+
|
61
|
+
c_float rho_soft;
|
62
|
+
|
63
|
+
c_float rel_subopt;
|
64
|
+
c_float abs_subopt;
|
65
|
+
}DAQPSettings;
|
66
|
+
|
67
|
+
|
68
|
+
typedef struct{
|
69
|
+
int bin_id;
|
70
|
+
int depth;
|
71
|
+
int WS_start;
|
72
|
+
int WS_end;
|
73
|
+
}DAQPNode;
|
74
|
+
|
75
|
+
typedef struct{
|
76
|
+
int* bin_ids;
|
77
|
+
int nb;
|
78
|
+
int neq;
|
79
|
+
|
80
|
+
DAQPNode* tree;
|
81
|
+
int n_nodes;
|
82
|
+
|
83
|
+
int* tree_WS;
|
84
|
+
int nWS;
|
85
|
+
int n_clean;
|
86
|
+
int* fixed_ids;
|
87
|
+
|
88
|
+
int nodecount;
|
89
|
+
int itercount;
|
90
|
+
}DAQPBnB;
|
91
|
+
|
92
|
+
typedef struct{
|
93
|
+
DAQPProblem* qp;
|
94
|
+
// LDP data
|
95
|
+
int n; // Number of primal variables
|
96
|
+
int m; // Number of constraints
|
97
|
+
int ms; // Number of simple bounds
|
98
|
+
c_float *M; // M' M is the Hessian of the dual objective function (dimensions: n x m)
|
99
|
+
c_float *dupper; // Linear part of dual objective function (dimensions: m x 1)
|
100
|
+
c_float *dlower; // Linear part of dual objective function (dimensions: m x 1)
|
101
|
+
c_float *Rinv; // Inverse of upper cholesky factor of primal Hessian
|
102
|
+
c_float *v; // v = R'\f (used to transform QP to LDP
|
103
|
+
int *sense; // State of constraints
|
104
|
+
c_float *scaling; // normalizations
|
105
|
+
c_float *RinvD; // in case Rinv is diagonal
|
106
|
+
|
107
|
+
|
108
|
+
// Iterates
|
109
|
+
c_float *x; // The final primal solution
|
110
|
+
c_float *xold; // The latest primal solution (used for proximal-point iteratios)
|
111
|
+
|
112
|
+
c_float* lam; // Dual iterate
|
113
|
+
c_float* lam_star; // Current constrained stationary point
|
114
|
+
c_float* u; // Stores Mk' lam_star
|
115
|
+
c_float fval;
|
116
|
+
|
117
|
+
// LDL factors (Mk Mk' = L D L')
|
118
|
+
c_float *L;
|
119
|
+
c_float *D;
|
120
|
+
// Intermittent variables (LDL')
|
121
|
+
c_float* xldl; // Solution to L xdldl = -dk
|
122
|
+
c_float* zldl; // zldl_i = xldl_i/D_i
|
123
|
+
int reuse_ind; // How much work that can be saved when solving Mk Mk' lam* = -dk
|
124
|
+
|
125
|
+
int *WS; // Working set, size: maximum number of constraints (n+ns+1)
|
126
|
+
int n_active; // Number of active contraints
|
127
|
+
|
128
|
+
int iterations;
|
129
|
+
int sing_ind; // Flag for denoting whether Mk Mk' is singular or not
|
130
|
+
|
131
|
+
|
132
|
+
// Soft constraint
|
133
|
+
c_float soft_slack;
|
134
|
+
#ifdef SOFT_WEIGHTS
|
135
|
+
// The softened objective is given by
|
136
|
+
// min 0.5 x'*H*x + f'x + 0.5 su'su+0.5*sl'sl,
|
137
|
+
// and the softened constraints are given by (similar for simple bounds)
|
138
|
+
// lbA-rho_ls*sl <= A*x <= ubA+rho_us*su,
|
139
|
+
// with the bounds sl >= d_ls, su >= d_us
|
140
|
+
// note that lbA/ubA is assumed to be shifted with rho_ls*d_ls and rho_us*d_us
|
141
|
+
// since the slacks are assumed to be active at their bounds by default.
|
142
|
+
|
143
|
+
// size of the following is m; values are only used if index set to SOFT.
|
144
|
+
c_float *d_ls;
|
145
|
+
c_float *d_us;
|
146
|
+
c_float *rho_ls;
|
147
|
+
c_float *rho_us;
|
148
|
+
#endif
|
149
|
+
|
150
|
+
// Settings
|
151
|
+
DAQPSettings* settings;
|
152
|
+
|
153
|
+
// BnB
|
154
|
+
DAQPBnB* bnb;
|
155
|
+
}DAQPWorkspace;
|
156
|
+
|
157
|
+
# ifdef __cplusplus
|
158
|
+
}
|
159
|
+
# endif // ifdef __cplusplus
|
160
|
+
|
161
|
+
#endif //ifndef DAQP_TYPES_H
|
@@ -0,0 +1,44 @@
|
|
1
|
+
#ifndef DAQP_UTILS_H
|
2
|
+
# define DAQP_UTILS_H
|
3
|
+
|
4
|
+
# ifdef __cplusplus
|
5
|
+
extern "C" {
|
6
|
+
# endif // ifdef __cplusplus
|
7
|
+
|
8
|
+
#include "daqp.h"
|
9
|
+
// Utils for transforming QP to LDP
|
10
|
+
int update_ldp(const int mask, DAQPWorkspace *work);
|
11
|
+
int update_Rinv(DAQPWorkspace *work);
|
12
|
+
void update_M(DAQPWorkspace *work, const int mask);
|
13
|
+
void update_v(c_float *f, DAQPWorkspace *work, const int mask);
|
14
|
+
void update_d(DAQPWorkspace *work);
|
15
|
+
void normalize_Rinv(DAQPWorkspace *work);
|
16
|
+
void normalize_M(DAQPWorkspace *work);
|
17
|
+
//
|
18
|
+
// Utils for profiling
|
19
|
+
#ifdef PROFILING
|
20
|
+
#ifdef _WIN32
|
21
|
+
#include <windows.h>
|
22
|
+
typedef struct{
|
23
|
+
LARGE_INTEGER start;
|
24
|
+
LARGE_INTEGER stop;
|
25
|
+
}DAQPtimer;
|
26
|
+
#else // not _WIN32
|
27
|
+
#include <time.h>
|
28
|
+
typedef struct{
|
29
|
+
struct timespec start;
|
30
|
+
struct timespec stop;
|
31
|
+
}DAQPtimer;
|
32
|
+
#endif // _WIN32
|
33
|
+
|
34
|
+
|
35
|
+
void tic(DAQPtimer *timer);
|
36
|
+
void toc(DAQPtimer *timer);
|
37
|
+
double get_time(DAQPtimer *timer);
|
38
|
+
#endif // PROFILING
|
39
|
+
|
40
|
+
# ifdef __cplusplus
|
41
|
+
}
|
42
|
+
# endif // ifdef __cplusplus
|
43
|
+
|
44
|
+
#endif //ifndef DAQP_UTILS_H
|
@@ -0,0 +1,34 @@
|
|
1
|
+
/*
|
2
|
+
* Fatrop - A fast trajectory optimization solver
|
3
|
+
* Copyright (C) 2022 - 2024 Lander Vanroye, KU Leuven. All rights reserved.
|
4
|
+
*
|
5
|
+
* This file is part of Fatrop.
|
6
|
+
*
|
7
|
+
* Fatrop is free software: you can redistribute it and/or modify
|
8
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
9
|
+
* the Free Software Foundation, either version 3 of the License, or
|
10
|
+
* (at your option) any later version.
|
11
|
+
*
|
12
|
+
* Fatrop is distributed in the hope that it will be useful,
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
* GNU Lesser General Public License for more details.
|
16
|
+
*
|
17
|
+
* You should have received a copy of the GNU Lesser General Public License
|
18
|
+
* along with Fatrop. If not, see <http://www.gnu.org/licenses/>. */
|
19
|
+
#ifndef COMMONINCLUDED
|
20
|
+
#define COMMONINCLUDED
|
21
|
+
#include <cassert>
|
22
|
+
#if DEBUG
|
23
|
+
#define DBGASSERT(assertion) assert(assertion);
|
24
|
+
#else
|
25
|
+
#define DBGASSERT(assertion)
|
26
|
+
#endif
|
27
|
+
|
28
|
+
#define fatrop_int int
|
29
|
+
namespace fatrop
|
30
|
+
{
|
31
|
+
bool CompareLessEqual(double lhs, double rhs);
|
32
|
+
bool CompareLessEqual(double lhs, double rhs, double ref);
|
33
|
+
} // namespace fatrop
|
34
|
+
#endif // COMMONINCLUDED
|
@@ -0,0 +1,34 @@
|
|
1
|
+
/*
|
2
|
+
* Fatrop - A fast trajectory optimization solver
|
3
|
+
* Copyright (C) 2022 - 2024 Lander Vanroye, KU Leuven. All rights reserved.
|
4
|
+
*
|
5
|
+
* This file is part of Fatrop.
|
6
|
+
*
|
7
|
+
* Fatrop is free software: you can redistribute it and/or modify
|
8
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
9
|
+
* the Free Software Foundation, either version 3 of the License, or
|
10
|
+
* (at your option) any later version.
|
11
|
+
*
|
12
|
+
* Fatrop is distributed in the hope that it will be useful,
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
* GNU Lesser General Public License for more details.
|
16
|
+
*
|
17
|
+
* You should have received a copy of the GNU Lesser General Public License
|
18
|
+
* along with Fatrop. If not, see <http://www.gnu.org/licenses/>. */
|
19
|
+
#ifndef DYNAMICLIBINCLUDED
|
20
|
+
#define DYNAMICLIBINCLUDED
|
21
|
+
#include <dlfcn.h>
|
22
|
+
#include <string>
|
23
|
+
namespace fatrop
|
24
|
+
{
|
25
|
+
class DLHandler
|
26
|
+
{
|
27
|
+
public:
|
28
|
+
DLHandler(const std::string &filename);
|
29
|
+
~DLHandler();
|
30
|
+
void *handle;
|
31
|
+
};
|
32
|
+
|
33
|
+
}; // namespace fatrop
|
34
|
+
#endif // DYNAMICLIBINCLUDED
|
@@ -0,0 +1,68 @@
|
|
1
|
+
/*
|
2
|
+
* Fatrop - A fast trajectory optimization solver
|
3
|
+
* Copyright (C) 2022 - 2024 Lander Vanroye, KU Leuven. All rights reserved.
|
4
|
+
*
|
5
|
+
* This file is part of Fatrop.
|
6
|
+
*
|
7
|
+
* Fatrop is free software: you can redistribute it and/or modify
|
8
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
9
|
+
* the Free Software Foundation, either version 3 of the License, or
|
10
|
+
* (at your option) any later version.
|
11
|
+
*
|
12
|
+
* Fatrop is distributed in the hope that it will be useful,
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
15
|
+
* GNU Lesser General Public License for more details.
|
16
|
+
*
|
17
|
+
* You should have received a copy of the GNU Lesser General Public License
|
18
|
+
* along with Fatrop. If not, see <http://www.gnu.org/licenses/>. */
|
19
|
+
#ifndef FATROPOPTIONSINCLUDED
|
20
|
+
#define FATROPOPTIONSINCLUDED
|
21
|
+
#include <string>
|
22
|
+
namespace fatrop
|
23
|
+
{
|
24
|
+
class FatropOption
|
25
|
+
{
|
26
|
+
public:
|
27
|
+
FatropOption(const std::string &name, const std::string &descr) :name_(name), description_(descr){
|
28
|
+
|
29
|
+
};
|
30
|
+
std::string name_;
|
31
|
+
std::string description_;
|
32
|
+
};
|
33
|
+
class NumericOption : public FatropOption
|
34
|
+
{
|
35
|
+
public:
|
36
|
+
NumericOption(const std::string &name, const std::string &descr, double default_value) : FatropOption(name, descr), value_(default_value), default_value_(default_value) {}
|
37
|
+
virtual void set_value(double value)
|
38
|
+
{
|
39
|
+
value_ = value;
|
40
|
+
}
|
41
|
+
double GetValue()
|
42
|
+
{
|
43
|
+
return value_;
|
44
|
+
}
|
45
|
+
|
46
|
+
private:
|
47
|
+
double value_;
|
48
|
+
double default_value_;
|
49
|
+
};
|
50
|
+
class NumericOptionBounded : public NumericOption
|
51
|
+
{
|
52
|
+
// decorator for NumericOption that also checks bounds
|
53
|
+
public:
|
54
|
+
NumericOptionBounded(const std::string &name, const std::string &descr, double default_value, double lower_bound, double upper_bound) : NumericOption(name, descr, default_value), lower_bound_(lower_bound), upper_bound_(upper_bound){};
|
55
|
+
virtual void set_value(double value)
|
56
|
+
{
|
57
|
+
if ((value > lower_bound_) && (value < upper_bound_))
|
58
|
+
{
|
59
|
+
NumericOption::set_value(value);
|
60
|
+
}
|
61
|
+
}
|
62
|
+
|
63
|
+
private:
|
64
|
+
double lower_bound_;
|
65
|
+
double upper_bound_;
|
66
|
+
};
|
67
|
+
} // namespace fatrop
|
68
|
+
#endif
|