casadi 3.6.5__cp310-none-macosx_11_0_arm64.whl → 3.6.7__cp310-none-macosx_11_0_arm64.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 +739 -308
- casadi/cbc +0 -0
- casadi/clp +0 -0
- casadi/cmake/casadi-config-version.cmake +1 -1
- casadi/cmake/casadi-targets.cmake +10 -6
- casadi/cmake/highs/highs-config.cmake +6 -13
- casadi/cmake/highs/highs-targets-release.cmake +13 -13
- casadi/cmake/highs/highs-targets.cmake +25 -22
- casadi/cmake/osqp/osqp-targets.cmake +10 -6
- casadi/cmake/proxsuite/proxsuiteConfigVersion.cmake +0 -5
- casadi/cmake/proxsuite/proxsuiteTargets.cmake +12 -12
- casadi/cmake/qdldl/qdldl-targets.cmake +10 -6
- casadi/cmake/sleqp/sleqp-config-version.cmake +0 -5
- casadi/cmake/sleqp/sleqp-targets.cmake +10 -6
- casadi/cmake/trlib/trlib-config-release.cmake +1 -1
- casadi/cmake/trlib/trlib-config-version.cmake +0 -5
- casadi/cmake/trlib/trlib-config.cmake +12 -12
- casadi/highs +0 -0
- casadi/include/casadi/casadi.i +3 -0
- casadi/include/casadi/casadi_c.h +2 -0
- casadi/include/casadi/config.h +9 -9
- casadi/include/casadi/core/casadi_common.hpp +1 -0
- casadi/include/casadi/core/casadi_export.h +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 +8 -7
- 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 +43 -0
- casadi/include/licenses/daqp-external/LICENSE +21 -0
- casadi/include/licenses/{alpaqa-external/LICENSE → fatrop-external/LICENSE.txt} +2 -2
- casadi/include/licenses/fatrop-external/external/blasfeo/LICENSE.txt +26 -0
- casadi/include/licenses/fatrop-external/external/pybind11/LICENSE +29 -0
- casadi/include/licenses/fatrop-external/misc/license_header.txt +17 -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 +4 -4
- casadi/include/sleqp/export.h +1 -0
- casadi/lib/cmake/tinyxml2/tinyxml2-config-version.cmake +0 -5
- casadi/lib/cmake/tinyxml2/tinyxml2-static-targets.cmake +10 -6
- casadi/lib/libtinyxml2.a +0 -0
- casadi/lib/pkgconfig/tinyxml2.pc +1 -1
- casadi/libCbc.3.10.11.dylib +0 -0
- casadi/libCbc.3.dylib +0 -0
- casadi/libCbc.dylib +0 -0
- casadi/libCbc.la +2 -2
- casadi/libCbcSolver.3.10.11.dylib +0 -0
- casadi/libCbcSolver.3.dylib +0 -0
- casadi/libCbcSolver.dylib +0 -0
- casadi/libCbcSolver.la +2 -2
- casadi/libCgl.1.10.8.dylib +0 -0
- casadi/libCgl.1.dylib +0 -0
- casadi/libCgl.dylib +0 -0
- casadi/libCgl.la +2 -2
- casadi/libClp.1.14.9.dylib +0 -0
- casadi/libClp.1.dylib +0 -0
- casadi/libClp.dylib +0 -0
- casadi/libClp.la +2 -2
- casadi/libClpSolver.1.14.9.dylib +0 -0
- casadi/libClpSolver.1.dylib +0 -0
- casadi/libClpSolver.dylib +0 -0
- casadi/libClpSolver.la +2 -2
- casadi/libCoinUtils.3.11.10.dylib +0 -0
- casadi/libCoinUtils.3.dylib +0 -0
- casadi/libCoinUtils.dylib +0 -0
- casadi/libCoinUtils.la +1 -1
- casadi/libOsi.1.13.9.dylib +0 -0
- casadi/libOsi.1.dylib +0 -0
- casadi/libOsi.dylib +0 -0
- casadi/libOsi.la +2 -2
- casadi/libOsiCbc.3.10.11.dylib +0 -0
- casadi/libOsiCbc.3.dylib +0 -0
- casadi/libOsiCbc.dylib +0 -0
- casadi/libOsiCbc.la +2 -2
- casadi/libOsiClp.1.14.9.dylib +0 -0
- casadi/libOsiClp.1.dylib +0 -0
- casadi/libOsiClp.dylib +0 -0
- casadi/libOsiClp.la +2 -2
- casadi/libOsiCommonTests.1.13.9.dylib +0 -0
- casadi/libOsiCommonTests.1.dylib +0 -0
- casadi/libOsiCommonTests.dylib +0 -0
- casadi/libOsiCommonTests.la +2 -2
- casadi/libblasfeo.dylib +0 -0
- casadi/libbonmin.4.8.9.dylib +0 -0
- casadi/libbonmin.4.dylib +0 -0
- casadi/libbonmin.dylib +0 -0
- casadi/libbonmin.la +2 -2
- casadi/libc++.1.0.dylib +0 -0
- casadi/libcasadi.3.7.dylib +0 -0
- casadi/libcasadi.dylib +0 -0
- casadi/libcasadi_conic_cbc.3.7.dylib +0 -0
- casadi/libcasadi_conic_cbc.dylib +0 -0
- casadi/libcasadi_conic_clp.3.7.dylib +0 -0
- casadi/libcasadi_conic_clp.dylib +0 -0
- casadi/libcasadi_conic_cplex.3.7.dylib +0 -0
- casadi/libcasadi_conic_cplex.dylib +0 -0
- casadi/libcasadi_conic_daqp.3.7.dylib +0 -0
- casadi/libcasadi_conic_daqp.dylib +0 -0
- casadi/libcasadi_conic_fatrop.3.7.dylib +0 -0
- casadi/libcasadi_conic_fatrop.dylib +0 -0
- casadi/libcasadi_conic_gurobi.3.7.dylib +0 -0
- casadi/libcasadi_conic_gurobi.dylib +0 -0
- casadi/libcasadi_conic_highs.3.7.dylib +0 -0
- casadi/libcasadi_conic_highs.dylib +0 -0
- casadi/libcasadi_conic_ipqp.3.7.dylib +0 -0
- casadi/libcasadi_conic_ipqp.dylib +0 -0
- casadi/libcasadi_conic_nlpsol.3.7.dylib +0 -0
- casadi/libcasadi_conic_nlpsol.dylib +0 -0
- casadi/libcasadi_conic_osqp.3.7.dylib +0 -0
- casadi/libcasadi_conic_osqp.dylib +0 -0
- casadi/libcasadi_conic_proxqp.3.7.dylib +0 -0
- casadi/libcasadi_conic_proxqp.dylib +0 -0
- casadi/libcasadi_conic_qpoases.3.7.dylib +0 -0
- casadi/libcasadi_conic_qpoases.dylib +0 -0
- casadi/libcasadi_conic_qrqp.3.7.dylib +0 -0
- casadi/libcasadi_conic_qrqp.dylib +0 -0
- casadi/libcasadi_conic_superscs.3.7.dylib +0 -0
- casadi/libcasadi_conic_superscs.dylib +0 -0
- casadi/libcasadi_importer_shell.3.7.dylib +0 -0
- casadi/libcasadi_importer_shell.dylib +0 -0
- casadi/libcasadi_integrator_collocation.3.7.dylib +0 -0
- casadi/libcasadi_integrator_collocation.dylib +0 -0
- casadi/libcasadi_integrator_cvodes.3.7.dylib +0 -0
- casadi/libcasadi_integrator_cvodes.dylib +0 -0
- casadi/libcasadi_integrator_idas.3.7.dylib +0 -0
- casadi/libcasadi_integrator_idas.dylib +0 -0
- casadi/libcasadi_integrator_rk.3.7.dylib +0 -0
- casadi/libcasadi_integrator_rk.dylib +0 -0
- casadi/libcasadi_interpolant_bspline.3.7.dylib +0 -0
- casadi/libcasadi_interpolant_bspline.dylib +0 -0
- casadi/libcasadi_interpolant_linear.3.7.dylib +0 -0
- casadi/libcasadi_interpolant_linear.dylib +0 -0
- casadi/libcasadi_linsol_csparse.3.7.dylib +0 -0
- casadi/libcasadi_linsol_csparse.dylib +0 -0
- casadi/libcasadi_linsol_csparsecholesky.3.7.dylib +0 -0
- casadi/libcasadi_linsol_csparsecholesky.dylib +0 -0
- casadi/libcasadi_linsol_lapacklu.3.7.dylib +0 -0
- casadi/libcasadi_linsol_lapacklu.dylib +0 -0
- casadi/libcasadi_linsol_lapackqr.3.7.dylib +0 -0
- casadi/libcasadi_linsol_lapackqr.dylib +0 -0
- casadi/libcasadi_linsol_ldl.3.7.dylib +0 -0
- casadi/libcasadi_linsol_ldl.dylib +0 -0
- casadi/libcasadi_linsol_lsqr.3.7.dylib +0 -0
- casadi/libcasadi_linsol_lsqr.dylib +0 -0
- casadi/libcasadi_linsol_ma27.3.7.dylib +0 -0
- casadi/libcasadi_linsol_ma27.dylib +0 -0
- casadi/libcasadi_linsol_mumps.3.7.dylib +0 -0
- casadi/libcasadi_linsol_mumps.dylib +0 -0
- casadi/libcasadi_linsol_qr.3.7.dylib +0 -0
- casadi/libcasadi_linsol_qr.dylib +0 -0
- casadi/libcasadi_linsol_symbolicqr.3.7.dylib +0 -0
- casadi/libcasadi_linsol_symbolicqr.dylib +0 -0
- casadi/libcasadi_linsol_tridiag.3.7.dylib +0 -0
- casadi/libcasadi_linsol_tridiag.dylib +0 -0
- casadi/libcasadi_nlpsol_ampl.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_ampl.dylib +0 -0
- casadi/libcasadi_nlpsol_blocksqp.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_blocksqp.dylib +0 -0
- casadi/libcasadi_nlpsol_bonmin.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_bonmin.dylib +0 -0
- casadi/libcasadi_nlpsol_fatrop.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_fatrop.dylib +0 -0
- casadi/libcasadi_nlpsol_feasiblesqpmethod.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_feasiblesqpmethod.dylib +0 -0
- casadi/libcasadi_nlpsol_ipopt.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_ipopt.dylib +0 -0
- casadi/libcasadi_nlpsol_knitro.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_knitro.dylib +0 -0
- casadi/libcasadi_nlpsol_madnlp.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_madnlp.dylib +0 -0
- casadi/libcasadi_nlpsol_qrsqp.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_qrsqp.dylib +0 -0
- casadi/libcasadi_nlpsol_scpgen.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_scpgen.dylib +0 -0
- casadi/libcasadi_nlpsol_sleqp.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_sleqp.dylib +0 -0
- casadi/libcasadi_nlpsol_snopt.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_snopt.dylib +0 -0
- casadi/libcasadi_nlpsol_sqpmethod.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_sqpmethod.dylib +0 -0
- casadi/libcasadi_rootfinder_fast_newton.3.7.dylib +0 -0
- casadi/libcasadi_rootfinder_fast_newton.dylib +0 -0
- casadi/libcasadi_rootfinder_kinsol.3.7.dylib +0 -0
- casadi/libcasadi_rootfinder_kinsol.dylib +0 -0
- casadi/libcasadi_rootfinder_newton.3.7.dylib +0 -0
- casadi/libcasadi_rootfinder_newton.dylib +0 -0
- casadi/libcasadi_rootfinder_nlpsol.3.7.dylib +0 -0
- casadi/libcasadi_rootfinder_nlpsol.dylib +0 -0
- casadi/libcasadi_sundials_common.3.7.dylib +0 -0
- casadi/libcasadi_sundials_common.dylib +0 -0
- casadi/libcasadi_xmlfile_tinyxml.3.7.dylib +0 -0
- casadi/libcasadi_xmlfile_tinyxml.dylib +0 -0
- casadi/libcoinmetis.2.dylib +0 -0
- casadi/libcoinmetis.dylib +0 -0
- casadi/libcoinmetis.la +1 -1
- casadi/libcoinmumps.3.dylib +0 -0
- casadi/libcoinmumps.dylib +0 -0
- casadi/libcoinmumps.la +2 -2
- casadi/libcplex_adaptor.dylib +0 -0
- casadi/{libamd.3.0.3.dylib → libdaqp.dylib} +0 -0
- casadi/libdaqpstat.a +0 -0
- casadi/libfatrop.dylib +0 -0
- casadi/libgcc_s.1.1.dylib +0 -0
- casadi/libgfortran.5.dylib +0 -0
- casadi/libgurobi_adaptor.dylib +0 -0
- casadi/libhighs.1.7.dylib +0 -0
- casadi/libhighs.1.dylib +0 -0
- casadi/libhighs.dylib +0 -0
- casadi/libindirect.a +0 -0
- casadi/libipopt.3.dylib +0 -0
- casadi/libipopt.dylib +0 -0
- casadi/libipopt.la +2 -2
- casadi/liblinsys.a +0 -0
- casadi/{libsuitesparseconfig.7.0.1.dylib → libmatlab_ipc.dylib} +0 -0
- casadi/libosqp.a +0 -0
- casadi/libosqp.dylib +0 -0
- casadi/libqdldl.a +0 -0
- casadi/libqdldl.dylib +0 -0
- casadi/libquadmath.0.dylib +0 -0
- casadi/libsipopt.3.dylib +0 -0
- casadi/libsipopt.dylib +0 -0
- casadi/libsipopt.la +2 -2
- casadi/libsleqp.1.0.1.dylib +0 -0
- casadi/libsleqp.dylib +0 -0
- casadi/libsuperscs.a +0 -0
- casadi/libtrlib.0.4.dylib +0 -0
- casadi/libtrlib.dylib +0 -0
- casadi/libz.1.2.13.dylib +0 -0
- casadi/pkgconfig/bonmin.pc +1 -1
- casadi/pkgconfig/casadi.pc +5 -5
- casadi/pkgconfig/cbc.pc +1 -1
- casadi/pkgconfig/cgl.pc +1 -1
- casadi/pkgconfig/clp.pc +1 -1
- casadi/pkgconfig/coinmetis.pc +1 -1
- casadi/pkgconfig/coinmumps.pc +2 -2
- casadi/pkgconfig/coinutils.pc +2 -2
- casadi/pkgconfig/highs.pc +4 -4
- casadi/pkgconfig/ipopt.pc +2 -2
- casadi/pkgconfig/osi-cbc.pc +1 -1
- casadi/pkgconfig/osi-clp.pc +1 -1
- casadi/pkgconfig/osi-unittests.pc +1 -1
- casadi/pkgconfig/osi.pc +1 -1
- casadi/pkgconfig/sleqp.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 +532 -477
- casadi/cmake/alpaqa/alpaqaConfig.cmake +0 -24
- casadi/cmake/alpaqa/alpaqaConfigVersion.cmake +0 -70
- casadi/cmake/alpaqa/alpaqaTargets-release.cmake +0 -19
- casadi/cmake/alpaqa/alpaqaTargets.cmake +0 -116
- casadi/include/alpaqa/accelerators/anderson.hpp +0 -133
- casadi/include/alpaqa/accelerators/internal/anderson-helpers.hpp +0 -92
- casadi/include/alpaqa/accelerators/internal/limited-memory-qr.hpp +0 -295
- casadi/include/alpaqa/accelerators/lbfgs.hpp +0 -244
- casadi/include/alpaqa/accelerators/steihaugcg.hpp +0 -143
- casadi/include/alpaqa/alpaqa.hpp +0 -3
- casadi/include/alpaqa/casadi/CasADiControlProblem.hpp +0 -185
- casadi/include/alpaqa/casadi/CasADiFunctionWrapper.hpp +0 -104
- casadi/include/alpaqa/casadi/CasADiProblem.hpp +0 -102
- casadi/include/alpaqa/casadi-loader-export.hpp +0 -15
- casadi/include/alpaqa/casadi-ocp-loader-export.hpp +0 -15
- casadi/include/alpaqa/config/config.hpp +0 -165
- casadi/include/alpaqa/dl/dl-problem.h +0 -476
- casadi/include/alpaqa/dl/dl-problem.hpp +0 -301
- casadi/include/alpaqa/export.h +0 -42
- casadi/include/alpaqa/export.hpp +0 -30
- casadi/include/alpaqa/implementation/accelerators/lbfgs.tpp +0 -240
- casadi/include/alpaqa/implementation/casadi/CasADiControlProblem.tpp +0 -594
- casadi/include/alpaqa/implementation/casadi/CasADiLoader-util.hpp +0 -50
- casadi/include/alpaqa/implementation/casadi/CasADiProblem.tpp +0 -425
- casadi/include/alpaqa/implementation/inner/directions/panoc/structured-lbfgs.tpp +0 -164
- casadi/include/alpaqa/implementation/inner/panoc-helpers.tpp +0 -389
- casadi/include/alpaqa/implementation/inner/panoc-ocp.tpp +0 -798
- casadi/include/alpaqa/implementation/inner/panoc.tpp +0 -448
- casadi/include/alpaqa/implementation/inner/pantr.tpp +0 -474
- casadi/include/alpaqa/implementation/inner/zerofpr.tpp +0 -482
- casadi/include/alpaqa/implementation/outer/alm.tpp +0 -228
- casadi/include/alpaqa/implementation/outer/internal/alm-helpers.tpp +0 -80
- casadi/include/alpaqa/implementation/params/params.tpp +0 -158
- casadi/include/alpaqa/implementation/problem/ocproblem.tpp +0 -56
- casadi/include/alpaqa/implementation/problem/type-erased-problem.tpp +0 -211
- casadi/include/alpaqa/implementation/util/io/csv.tpp +0 -120
- casadi/include/alpaqa/implementation/util/print.tpp +0 -151
- casadi/include/alpaqa/inner/directions/panoc/anderson.hpp +0 -98
- casadi/include/alpaqa/inner/directions/panoc/lbfgs.hpp +0 -94
- casadi/include/alpaqa/inner/directions/panoc/structured-lbfgs.hpp +0 -146
- casadi/include/alpaqa/inner/directions/panoc/structured-newton.hpp +0 -264
- casadi/include/alpaqa/inner/directions/panoc-direction-update.hpp +0 -96
- casadi/include/alpaqa/inner/directions/panoc-ocp/lqr.hpp +0 -181
- casadi/include/alpaqa/inner/directions/panoc-ocp/ocp-vars.hpp +0 -492
- casadi/include/alpaqa/inner/directions/pantr/newton-tr.hpp +0 -192
- casadi/include/alpaqa/inner/directions/pantr/pantr-direction.hpp +0 -99
- casadi/include/alpaqa/inner/inner-solve-options.hpp +0 -30
- casadi/include/alpaqa/inner/internal/lipschitz.hpp +0 -27
- casadi/include/alpaqa/inner/internal/panoc-helpers.hpp +0 -10
- casadi/include/alpaqa/inner/internal/panoc-stop-crit.hpp +0 -124
- casadi/include/alpaqa/inner/internal/solverstatus.hpp +0 -42
- casadi/include/alpaqa/inner/panoc-ocp.hpp +0 -302
- casadi/include/alpaqa/inner/panoc.hpp +0 -274
- casadi/include/alpaqa/inner/pantr.hpp +0 -284
- casadi/include/alpaqa/inner/zerofpr.hpp +0 -274
- casadi/include/alpaqa/ipopt/ipopt-adapter.hpp +0 -81
- casadi/include/alpaqa/ipopt/ipopt-enums.hpp +0 -35
- casadi/include/alpaqa/lbfgsb/lbfgsb-adapter.hpp +0 -111
- casadi/include/alpaqa/newton-tr-pantr-alm.hpp +0 -27
- casadi/include/alpaqa/outer/alm.hpp +0 -190
- casadi/include/alpaqa/outer/internal/alm-helpers.hpp +0 -10
- casadi/include/alpaqa/panoc-alm.hpp +0 -27
- casadi/include/alpaqa/panoc-anderson-alm.hpp +0 -27
- casadi/include/alpaqa/params/params.hpp +0 -60
- casadi/include/alpaqa/problem/box-constr-problem.hpp +0 -220
- casadi/include/alpaqa/problem/box.hpp +0 -82
- casadi/include/alpaqa/problem/functional-problem.hpp +0 -73
- casadi/include/alpaqa/problem/kkt-error.hpp +0 -43
- casadi/include/alpaqa/problem/ocproblem-counters.hpp +0 -116
- casadi/include/alpaqa/problem/ocproblem.hpp +0 -662
- casadi/include/alpaqa/problem/problem-counters.hpp +0 -116
- casadi/include/alpaqa/problem/problem-with-counters.hpp +0 -141
- casadi/include/alpaqa/problem/type-erased-problem.hpp +0 -874
- casadi/include/alpaqa/problem/unconstr-problem.hpp +0 -37
- casadi/include/alpaqa/structured-panoc-alm.hpp +0 -27
- casadi/include/alpaqa/structured-zerofpr-alm.hpp +0 -27
- casadi/include/alpaqa/util/alloc-check.hpp +0 -23
- casadi/include/alpaqa/util/atomic-stop-signal.hpp +0 -24
- casadi/include/alpaqa/util/check-dim.hpp +0 -64
- casadi/include/alpaqa/util/copyable_unique_ptr.hpp +0 -32
- casadi/include/alpaqa/util/demangled-typename.hpp +0 -9
- casadi/include/alpaqa/util/enumerate.hpp +0 -70
- casadi/include/alpaqa/util/float.hpp +0 -25
- casadi/include/alpaqa/util/index-set.hpp +0 -97
- casadi/include/alpaqa/util/io/csv.hpp +0 -43
- casadi/include/alpaqa/util/iter-adapter.hpp +0 -68
- casadi/include/alpaqa/util/max-history.hpp +0 -47
- casadi/include/alpaqa/util/noop-delete.hpp +0 -15
- casadi/include/alpaqa/util/not-implemented.hpp +0 -12
- casadi/include/alpaqa/util/print.hpp +0 -78
- casadi/include/alpaqa/util/quadmath/quadmath-print.hpp +0 -20
- casadi/include/alpaqa/util/quadmath/quadmath.hpp +0 -137
- casadi/include/alpaqa/util/required-method.hpp +0 -29
- casadi/include/alpaqa/util/ringbuffer.hpp +0 -212
- casadi/include/alpaqa/util/set-intersection.hpp +0 -129
- casadi/include/alpaqa/util/sparse-ops.hpp +0 -164
- casadi/include/alpaqa/util/timed.hpp +0 -22
- casadi/include/alpaqa/util/type-erasure.hpp +0 -568
- casadi/include/alpaqa/util/type-traits.hpp +0 -58
- casadi/include/alpaqa/zerofpr-alm.hpp +0 -27
- casadi/include/alpaqa/zerofpr-anderson-alm.hpp +0 -27
- casadi/include/alpaqa-version.h +0 -8
- casadi/include/highs/fortran/highs_fortran_api.mod +0 -0
- casadi/include/licenses/alpaqa-external/src/thirdparty/lbfgsb/Lbfgsb.3.0/License.txt +0 -71
- casadi/libFortranHighs.dylib +0 -0
- casadi/libalpaqa.1.0.0.dylib +0 -0
- casadi/libalpaqa.dylib +0 -0
- casadi/libcamd.3.0.3.dylib +0 -0
- casadi/libcasadi_nlpsol_alpaqa.3.7.dylib +0 -0
- casadi/libcasadi_nlpsol_alpaqa.dylib +0 -0
- casadi/libccolamd.3.0.3.dylib +0 -0
- casadi/libcholmod.4.0.3.dylib +0 -0
- casadi/libcholmod_cuda.4.0.3.dylib +0 -0
- casadi/libcolamd.3.0.3.dylib +0 -0
- casadi/libhighs.1.6.0.dylib +0 -0
- casadi/libhighs.1.6.dylib +0 -0
- casadi/libumfpack.6.1.0.dylib +0 -0
- {casadi-3.6.5.dist-info → casadi-3.6.7.dist-info}/WHEEL +0 -0
@@ -1,228 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <alpaqa/outer/alm.hpp>
|
4
|
-
|
5
|
-
#include <algorithm>
|
6
|
-
#include <iomanip>
|
7
|
-
#include <iostream>
|
8
|
-
#include <utility>
|
9
|
-
|
10
|
-
#include <alpaqa/config/config.hpp>
|
11
|
-
#include <alpaqa/implementation/outer/internal/alm-helpers.tpp>
|
12
|
-
#include <alpaqa/implementation/util/print.tpp>
|
13
|
-
#include <alpaqa/inner/inner-solve-options.hpp>
|
14
|
-
#include <alpaqa/inner/internal/solverstatus.hpp>
|
15
|
-
#include <alpaqa/util/quadmath/quadmath-print.hpp>
|
16
|
-
|
17
|
-
namespace alpaqa {
|
18
|
-
|
19
|
-
template <class InnerSolverT>
|
20
|
-
typename ALMSolver<InnerSolverT>::Stats
|
21
|
-
ALMSolver<InnerSolverT>::operator()(const Problem &p, rvec x, rvec y) {
|
22
|
-
using std::chrono::duration_cast;
|
23
|
-
using std::chrono::nanoseconds;
|
24
|
-
auto start_time = std::chrono::steady_clock::now();
|
25
|
-
|
26
|
-
// Check the problem dimensions etc.
|
27
|
-
p.check();
|
28
|
-
|
29
|
-
auto m = p.get_m();
|
30
|
-
if (m == 0) { // No general constraints, only box constraints
|
31
|
-
Stats s;
|
32
|
-
vec Σ(0), error(0);
|
33
|
-
InnerSolveOptions<config_t> opts{
|
34
|
-
.always_overwrite_results = true,
|
35
|
-
.max_time = params.max_time,
|
36
|
-
.tolerance = params.tolerance,
|
37
|
-
.os = os,
|
38
|
-
.check = false,
|
39
|
-
};
|
40
|
-
auto ps = inner_solver(p, opts, x, y, Σ, error);
|
41
|
-
bool inner_converged = ps.status == SolverStatus::Converged;
|
42
|
-
auto time_elapsed = std::chrono::steady_clock::now() - start_time;
|
43
|
-
s.inner_convergence_failures = not inner_converged;
|
44
|
-
s.inner += ps;
|
45
|
-
s.ε = ps.ε;
|
46
|
-
s.δ = 0;
|
47
|
-
s.norm_penalty = 0;
|
48
|
-
s.outer_iterations = 1;
|
49
|
-
s.elapsed_time = duration_cast<nanoseconds>(time_elapsed);
|
50
|
-
s.status = ps.status;
|
51
|
-
return s;
|
52
|
-
}
|
53
|
-
|
54
|
-
constexpr auto NaN = alpaqa::NaN<config_t>;
|
55
|
-
vec Σ = vec::Constant(m, NaN);
|
56
|
-
vec Σ_old = vec::Constant(m, NaN);
|
57
|
-
vec error_1 = vec::Constant(m, NaN);
|
58
|
-
vec error_2 = vec::Constant(m, NaN);
|
59
|
-
[[maybe_unused]] real_t norm_e_1 = NaN;
|
60
|
-
[[maybe_unused]] real_t norm_e_2 = NaN;
|
61
|
-
|
62
|
-
std::array<char, 64> printbuf;
|
63
|
-
auto print_real = [&](real_t x) {
|
64
|
-
return float_to_str_vw(printbuf, x, params.print_precision);
|
65
|
-
};
|
66
|
-
|
67
|
-
Stats s;
|
68
|
-
|
69
|
-
// Initialize the penalty weights
|
70
|
-
if (params.initial_penalty > 0) {
|
71
|
-
Σ.fill(params.initial_penalty);
|
72
|
-
}
|
73
|
-
// Initial penalty weights from problem
|
74
|
-
else {
|
75
|
-
Helpers::initialize_penalty(p, params, x, Σ);
|
76
|
-
}
|
77
|
-
|
78
|
-
real_t ε = params.initial_tolerance;
|
79
|
-
[[maybe_unused]] real_t ε_old = NaN;
|
80
|
-
real_t Δ = params.penalty_update_factor;
|
81
|
-
real_t ρ = params.tolerance_update_factor;
|
82
|
-
|
83
|
-
unsigned num_successful_iters = 0;
|
84
|
-
|
85
|
-
for (unsigned i = 0; i < params.max_iter; ++i) {
|
86
|
-
// TODO: this is unnecessary when the previous iteration lowered the
|
87
|
-
// penalty update factor.
|
88
|
-
p.eval_proj_multipliers(y, params.max_multiplier);
|
89
|
-
// Check if we're allowed to lower the penalty factor even further.
|
90
|
-
bool out_of_penalty_factor_updates =
|
91
|
-
(num_successful_iters == 0
|
92
|
-
? s.initial_penalty_reduced == params.max_num_initial_retries
|
93
|
-
: s.penalty_reduced == params.max_num_retries) ||
|
94
|
-
(s.initial_penalty_reduced + s.penalty_reduced ==
|
95
|
-
params.max_total_num_retries);
|
96
|
-
bool out_of_iter = i + 1 == params.max_iter;
|
97
|
-
// If this is the final iteration, or the final chance to reduce the
|
98
|
-
// penalty update factor, the inner solver can just return its results,
|
99
|
-
// even if it doesn't converge.
|
100
|
-
bool overwrite_results = out_of_iter || out_of_penalty_factor_updates;
|
101
|
-
|
102
|
-
// Inner solver
|
103
|
-
// ------------
|
104
|
-
|
105
|
-
auto time_elapsed = std::chrono::steady_clock::now() - start_time;
|
106
|
-
InnerSolveOptions<config_t> opts{
|
107
|
-
.always_overwrite_results = overwrite_results,
|
108
|
-
.max_time = params.max_time - time_elapsed,
|
109
|
-
.tolerance = ε,
|
110
|
-
.os = os,
|
111
|
-
.outer_iter = i,
|
112
|
-
.check = false,
|
113
|
-
};
|
114
|
-
// Call the inner solver to minimize the augmented lagrangian for fixed
|
115
|
-
// Lagrange multipliers y.
|
116
|
-
auto ps = inner_solver(p, opts, x, y, Σ, error_2);
|
117
|
-
// Check if the inner solver converged
|
118
|
-
bool inner_converged = ps.status == SolverStatus::Converged;
|
119
|
-
// Accumulate the inner solver statistics
|
120
|
-
s.inner_convergence_failures += not inner_converged;
|
121
|
-
s.inner += ps;
|
122
|
-
|
123
|
-
time_elapsed = std::chrono::steady_clock::now() - start_time;
|
124
|
-
bool out_of_time = time_elapsed > params.max_time;
|
125
|
-
bool backtrack =
|
126
|
-
not inner_converged && not overwrite_results && not out_of_time;
|
127
|
-
|
128
|
-
// Print statistics of current iteration
|
129
|
-
if (params.print_interval != 0 && i % params.print_interval == 0) {
|
130
|
-
real_t δ = backtrack ? NaN : vec_util::norm_inf(error_2);
|
131
|
-
const char *color = inner_converged ? "\x1b[0;32m" : "\x1b[0;31m";
|
132
|
-
const char *color_end = "\x1b[0m";
|
133
|
-
*os << "[\x1b[0;34mALM\x1b[0m] " << std::setw(5) << i
|
134
|
-
<< ": ‖Σ‖ = " << print_real(Σ.norm())
|
135
|
-
<< ", ‖y‖ = " << print_real(y.norm())
|
136
|
-
<< ", δ = " << print_real(δ) << ", ε = " << print_real(ps.ε)
|
137
|
-
<< ", Δ = " << print_real(Δ) << ", status = " << color
|
138
|
-
<< std::setw(13) << ps.status << color_end
|
139
|
-
<< ", iter = " << std::setw(13) << ps.iterations
|
140
|
-
<< std::endl; // Flush for Python buffering
|
141
|
-
}
|
142
|
-
|
143
|
-
// TODO: check penalty size?
|
144
|
-
if (ps.status == SolverStatus::Interrupted) {
|
145
|
-
s.ε = ps.ε;
|
146
|
-
s.δ = vec_util::norm_inf(error_2);
|
147
|
-
s.norm_penalty = Σ.norm();
|
148
|
-
s.outer_iterations = i + 1;
|
149
|
-
s.elapsed_time = duration_cast<nanoseconds>(time_elapsed);
|
150
|
-
s.status = ps.status;
|
151
|
-
return s;
|
152
|
-
}
|
153
|
-
|
154
|
-
// Backtrack and lower penalty if inner solver did not converge
|
155
|
-
if (backtrack) {
|
156
|
-
// This means the inner solver didn't produce a solution that
|
157
|
-
// satisfies the required tolerance.
|
158
|
-
// The best thing we can do now is to restore the penalty to its
|
159
|
-
// previous value (when the inner solver did converge), then lower
|
160
|
-
// the penalty update factor Δ, and update the penalty with this
|
161
|
-
// smaller factor.
|
162
|
-
// On convergence failure, error_2 is not overwritten by the inner
|
163
|
-
// solver, so it still contains the error from the iteration before
|
164
|
-
// the previous successful iteration. error_1 contains the error of
|
165
|
-
// the last successful iteration. (Unless, of course, there hasn't
|
166
|
-
// been a successful iteration yet, which is covered by the second
|
167
|
-
// branch of the following if statement.)
|
168
|
-
if (num_successful_iters > 0) {
|
169
|
-
// We have a previous Σ and error
|
170
|
-
// Recompute penalty with smaller Δ
|
171
|
-
Δ = std::fmax(params.min_penalty_update_factor,
|
172
|
-
Δ * params.penalty_update_factor_lower);
|
173
|
-
Helpers::update_penalty_weights(params, Δ, false, error_1,
|
174
|
-
error_2, norm_e_1, norm_e_2,
|
175
|
-
Σ_old, Σ, true);
|
176
|
-
// Recompute the primal tolerance with larger ρ
|
177
|
-
ρ = std::fmin(params.ρ_max, ρ * params.ρ_increase);
|
178
|
-
ε = std::fmax(ρ * ε_old, params.tolerance);
|
179
|
-
++s.penalty_reduced;
|
180
|
-
} else {
|
181
|
-
// We don't have a previous Σ, simply lower the current Σ and
|
182
|
-
// increase ε
|
183
|
-
Σ *= params.initial_penalty_lower;
|
184
|
-
ε *= params.initial_tolerance_increase;
|
185
|
-
++s.initial_penalty_reduced;
|
186
|
-
}
|
187
|
-
}
|
188
|
-
|
189
|
-
// If the inner solver did converge, increase penalty
|
190
|
-
else {
|
191
|
-
// After this line, error_1 contains the error of the current
|
192
|
-
// (successful) iteration, and error_2 contains the error of the
|
193
|
-
// previous successful iteration.
|
194
|
-
error_2.swap(error_1);
|
195
|
-
norm_e_2 = std::exchange(norm_e_1, vec_util::norm_inf(error_1));
|
196
|
-
|
197
|
-
// Check the termination criteria
|
198
|
-
bool alm_converged = ps.ε <= params.tolerance && inner_converged &&
|
199
|
-
norm_e_1 <= params.dual_tolerance;
|
200
|
-
bool exit = alm_converged || out_of_iter || out_of_time;
|
201
|
-
if (exit) {
|
202
|
-
s.ε = ps.ε;
|
203
|
-
s.δ = norm_e_1;
|
204
|
-
s.norm_penalty = Σ.norm();
|
205
|
-
s.outer_iterations = i + 1;
|
206
|
-
s.elapsed_time = duration_cast<nanoseconds>(time_elapsed);
|
207
|
-
s.status = alm_converged ? SolverStatus::Converged
|
208
|
-
: out_of_time ? SolverStatus::MaxTime
|
209
|
-
: out_of_iter ? SolverStatus::MaxIter
|
210
|
-
: SolverStatus::Busy;
|
211
|
-
return s;
|
212
|
-
}
|
213
|
-
// After this line, Σ_old contains the penalty used in the current
|
214
|
-
// (successful) iteration.
|
215
|
-
Σ_old.swap(Σ);
|
216
|
-
// Update Σ to contain the penalty to use on the next iteration.
|
217
|
-
Helpers::update_penalty_weights(
|
218
|
-
params, Δ, num_successful_iters == 0, error_1, error_2,
|
219
|
-
norm_e_1, norm_e_2, Σ_old, Σ, true);
|
220
|
-
// Lower the primal tolerance for the inner solver.
|
221
|
-
ε_old = std::exchange(ε, std::fmax(ρ * ε, params.tolerance));
|
222
|
-
++num_successful_iters;
|
223
|
-
}
|
224
|
-
}
|
225
|
-
throw std::logic_error("[ALM] loop error");
|
226
|
-
}
|
227
|
-
|
228
|
-
} // namespace alpaqa
|
@@ -1,80 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <alpaqa/outer/alm.hpp>
|
4
|
-
#if ALPAQA_WITH_OCP
|
5
|
-
#include <alpaqa/problem/ocproblem.hpp>
|
6
|
-
#endif
|
7
|
-
|
8
|
-
#include <algorithm>
|
9
|
-
|
10
|
-
namespace alpaqa::detail {
|
11
|
-
|
12
|
-
template <Config Conf>
|
13
|
-
struct ALMHelpers {
|
14
|
-
USING_ALPAQA_CONFIG(Conf);
|
15
|
-
|
16
|
-
static void update_penalty_weights(const ALMParams<config_t> ¶ms,
|
17
|
-
real_t Δ, bool first_iter, rvec e,
|
18
|
-
rvec old_e, real_t norm_e,
|
19
|
-
real_t old_norm_e, crvec Σ_old, rvec Σ,
|
20
|
-
bool monotone) {
|
21
|
-
const real_t θ = params.rel_penalty_increase_threshold;
|
22
|
-
if (norm_e <= params.dual_tolerance) {
|
23
|
-
Σ = Σ_old;
|
24
|
-
return;
|
25
|
-
}
|
26
|
-
if (params.single_penalty_factor) {
|
27
|
-
if (first_iter || norm_e > θ * old_norm_e) {
|
28
|
-
real_t new_Σ = std::fmin(params.max_penalty, Δ * Σ_old(0));
|
29
|
-
Σ.setConstant(new_Σ);
|
30
|
-
} else {
|
31
|
-
Σ = Σ_old;
|
32
|
-
}
|
33
|
-
} else {
|
34
|
-
for (index_t i = 0; i < e.rows(); ++i) {
|
35
|
-
if (first_iter || std::abs(e(i)) > θ * std::abs(old_e(i))) {
|
36
|
-
Σ(i) = std::fmin(params.max_penalty,
|
37
|
-
std::fmax(Δ * std::abs(e(i)) / norm_e,
|
38
|
-
real_t(1) * monotone) *
|
39
|
-
Σ_old(i));
|
40
|
-
} else {
|
41
|
-
Σ(i) = Σ_old(i);
|
42
|
-
}
|
43
|
-
}
|
44
|
-
}
|
45
|
-
}
|
46
|
-
|
47
|
-
static void initialize_penalty(const TypeErasedProblem<config_t> &p,
|
48
|
-
const ALMParams<config_t> ¶ms, crvec x0,
|
49
|
-
rvec Σ) {
|
50
|
-
real_t f0 = p.eval_f(x0);
|
51
|
-
vec g0(p.get_m());
|
52
|
-
p.eval_g(x0, g0);
|
53
|
-
// TODO: reuse evaluations of f ang g in PANOC?
|
54
|
-
real_t σ = params.initial_penalty_factor *
|
55
|
-
std::max(real_t(1), std::abs(f0)) /
|
56
|
-
std::max(real_t(1), real_t(0.5) * g0.squaredNorm());
|
57
|
-
σ = std::clamp(σ, params.min_penalty, params.max_penalty);
|
58
|
-
Σ.fill(σ);
|
59
|
-
}
|
60
|
-
|
61
|
-
#if ALPAQA_WITH_OCP
|
62
|
-
static void initialize_penalty(
|
63
|
-
[[maybe_unused]] const TypeErasedControlProblem<config_t> &p,
|
64
|
-
const ALMParams<config_t> ¶ms, [[maybe_unused]] crvec x0, rvec Σ) {
|
65
|
-
real_t σ = 1;
|
66
|
-
σ = std::clamp(σ, params.min_penalty, params.max_penalty);
|
67
|
-
Σ.fill(σ);
|
68
|
-
}
|
69
|
-
#endif
|
70
|
-
};
|
71
|
-
|
72
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(struct, ALMHelpers, DefaultConfig);
|
73
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(struct, ALMHelpers, EigenConfigf);
|
74
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(struct, ALMHelpers, EigenConfigd);
|
75
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(struct, ALMHelpers, EigenConfigl);
|
76
|
-
#ifdef ALPAQA_WITH_QUAD_PRECISION
|
77
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(struct, ALMHelpers, EigenConfigq);
|
78
|
-
#endif
|
79
|
-
|
80
|
-
} // namespace alpaqa::detail
|
@@ -1,158 +0,0 @@
|
|
1
|
-
#include <alpaqa/params/params.hpp>
|
2
|
-
|
3
|
-
#include <alpaqa/config/config.hpp>
|
4
|
-
#include <alpaqa/util/demangled-typename.hpp>
|
5
|
-
|
6
|
-
#include <charconv>
|
7
|
-
#include <chrono>
|
8
|
-
#include <concepts>
|
9
|
-
#include <map>
|
10
|
-
#include <numeric>
|
11
|
-
#include <stdexcept>
|
12
|
-
#include <string_view>
|
13
|
-
#include <system_error>
|
14
|
-
#include <tuple>
|
15
|
-
#include <type_traits>
|
16
|
-
|
17
|
-
namespace alpaqa::params {
|
18
|
-
|
19
|
-
using config_t = DefaultConfig;
|
20
|
-
|
21
|
-
/// Throw a meaningful error when `s.key` is not empty, to indicate that
|
22
|
-
/// the given type @p T is not of struct type and cannot be indexed into.
|
23
|
-
template <class T>
|
24
|
-
void assert_key_empty(ParamString s) {
|
25
|
-
if (!s.key.empty())
|
26
|
-
throw invalid_param("Type '" + demangled_typename(typeid(T)) +
|
27
|
-
"' cannot be indexed in '" +
|
28
|
-
std::string(s.full_key) + "'");
|
29
|
-
}
|
30
|
-
|
31
|
-
/// Throw a meaningful error to indicate that parameters of type @p T are not
|
32
|
-
/// supported or implemented.
|
33
|
-
template <class T>
|
34
|
-
void unsupported_type(T &, [[maybe_unused]] ParamString s) {
|
35
|
-
throw invalid_param("Unknown parameter type '" +
|
36
|
-
demangled_typename(typeid(T)) + "' in '" +
|
37
|
-
std::string(s.full_key) + "'");
|
38
|
-
}
|
39
|
-
|
40
|
-
template <>
|
41
|
-
void set_param(bool &b, ParamString s);
|
42
|
-
|
43
|
-
template <>
|
44
|
-
void set_param(std::string_view &v, ParamString s);
|
45
|
-
|
46
|
-
template <>
|
47
|
-
void set_param(std::string &v, ParamString s);
|
48
|
-
|
49
|
-
template <class T>
|
50
|
-
requires((std::floating_point<T> || std::integral<T>) && !std::is_enum_v<T>)
|
51
|
-
void set_param(T &f, ParamString s);
|
52
|
-
|
53
|
-
template <>
|
54
|
-
void set_param(vec<config_t> &v, ParamString s);
|
55
|
-
|
56
|
-
template <>
|
57
|
-
void set_param(vec_from_file<config_t> &v, ParamString s);
|
58
|
-
|
59
|
-
template <class Rep, class Period>
|
60
|
-
void set_param(std::chrono::duration<Rep, Period> &t, ParamString s);
|
61
|
-
|
62
|
-
/// Return a function that applies @ref set_param to the given attribute of a
|
63
|
-
/// value of type @p T.
|
64
|
-
template <class T, class A>
|
65
|
-
auto param_setter(A T::*attr) {
|
66
|
-
return [attr](T &t, ParamString s) { return set_param(t.*attr, s); };
|
67
|
-
}
|
68
|
-
|
69
|
-
/// Function wrapper to set attributes of a struct, type-erasing the type of the
|
70
|
-
/// attribute.
|
71
|
-
template <class T>
|
72
|
-
struct param_setter_fun_t {
|
73
|
-
template <class A>
|
74
|
-
param_setter_fun_t(A T::*attr) : set(param_setter(attr)) {}
|
75
|
-
std::function<void(T &, ParamString)> set;
|
76
|
-
void operator()(T &t, ParamString s) const { return set(t, s); }
|
77
|
-
};
|
78
|
-
|
79
|
-
/// Dictionary that maps struct attribute names to type-erased functions that
|
80
|
-
/// set those attributes.
|
81
|
-
template <class T>
|
82
|
-
using dict_to_struct_table_t =
|
83
|
-
std::map<std::string_view, param_setter_fun_t<T>>;
|
84
|
-
|
85
|
-
/// Specialize this type to define the attribute name to attribute setters
|
86
|
-
/// dictionaries for a struct type @p T.
|
87
|
-
template <class T>
|
88
|
-
struct dict_to_struct_table {};
|
89
|
-
|
90
|
-
/// Return a string enumerating the possible attribute names for the struct type
|
91
|
-
/// @p T.
|
92
|
-
template <class T>
|
93
|
-
auto possible_keys() {
|
94
|
-
const auto &tbl = dict_to_struct_table<T>::table;
|
95
|
-
if (tbl.empty())
|
96
|
-
return std::string{};
|
97
|
-
auto penult = std::prev(tbl.end());
|
98
|
-
auto quote_concat = [](std::string &&a, auto b) {
|
99
|
-
return a + "'" + std::string(b.first) + "', ";
|
100
|
-
};
|
101
|
-
return std::accumulate(tbl.begin(), penult, std::string{}, quote_concat) +
|
102
|
-
"'" + std::string(penult->first) + "'";
|
103
|
-
}
|
104
|
-
|
105
|
-
/// Use @p s to index into the struct type @p T and overwrite the attribute
|
106
|
-
/// given by @p s.key.
|
107
|
-
template <class T>
|
108
|
-
requires requires { dict_to_struct_table<T>::table; }
|
109
|
-
void set_param(T &t, ParamString s) {
|
110
|
-
const auto &m = dict_to_struct_table<T>::table;
|
111
|
-
auto [key, remainder] = split_key(s.key);
|
112
|
-
auto it = m.find(key);
|
113
|
-
if (it == m.end())
|
114
|
-
throw invalid_param("Invalid key '" + std::string(key) +
|
115
|
-
"' for type '" + demangled_typename(typeid(T)) +
|
116
|
-
"' in '" + std::string(s.full_key) +
|
117
|
-
"',\n possible keys are: " + possible_keys<T>());
|
118
|
-
s.key = remainder;
|
119
|
-
it->second.set(t, s);
|
120
|
-
}
|
121
|
-
|
122
|
-
/// Overwrites @p t based on the @p options that start with @p prefix.
|
123
|
-
/// If @p used is not `nullopt`, sets corresponding flag of the options that
|
124
|
-
/// were used.
|
125
|
-
template <class T>
|
126
|
-
void set_params(
|
127
|
-
T &t, std::string_view prefix, std::span<const std::string_view> options,
|
128
|
-
std::optional<std::span<bool>> used) {
|
129
|
-
|
130
|
-
size_t index = 0;
|
131
|
-
for (const auto &kv : options) {
|
132
|
-
auto [key, value] = split_key(kv, '=');
|
133
|
-
auto [pfx, remainder] = split_key(key);
|
134
|
-
auto curr_index = index++;
|
135
|
-
if (pfx != prefix)
|
136
|
-
continue;
|
137
|
-
if (used)
|
138
|
-
(*used)[curr_index] = true;
|
139
|
-
set_param(t, {.full_key = kv, .key = remainder, .value = value});
|
140
|
-
}
|
141
|
-
}
|
142
|
-
|
143
|
-
/// Helper macro to easily specialize @ref alpaqa::params::dict_to_struct_table.
|
144
|
-
#define PARAMS_TABLE(type_, ...) \
|
145
|
-
template <> \
|
146
|
-
struct dict_to_struct_table<type_> { \
|
147
|
-
using type = type_; \
|
148
|
-
inline static const dict_to_struct_table_t<type> table{__VA_ARGS__}; \
|
149
|
-
}
|
150
|
-
|
151
|
-
/// Helper macro to easily initialize a
|
152
|
-
/// @ref alpaqa::params::dict_to_struct_table_t.
|
153
|
-
#define PARAMS_MEMBER(name) \
|
154
|
-
{ \
|
155
|
-
#name, &type::name \
|
156
|
-
}
|
157
|
-
|
158
|
-
} // namespace alpaqa::params
|
@@ -1,56 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <alpaqa/problem/ocproblem.hpp>
|
4
|
-
|
5
|
-
namespace alpaqa {
|
6
|
-
|
7
|
-
template <Config Conf>
|
8
|
-
void ControlProblemVTable<Conf>::default_get_D_N(const void *self, Box &D,
|
9
|
-
const ControlProblemVTable &vtable) {
|
10
|
-
vtable.get_D(self, D, vtable);
|
11
|
-
}
|
12
|
-
template <Config Conf>
|
13
|
-
void ControlProblemVTable<Conf>::default_eval_add_Q_N(const void *self, crvec x, crvec h, rmat Q,
|
14
|
-
const ControlProblemVTable &vtable) {
|
15
|
-
vtable.eval_add_Q(self, vtable.N, x, h, Q);
|
16
|
-
}
|
17
|
-
template <Config Conf>
|
18
|
-
void ControlProblemVTable<Conf>::default_eval_add_R_prod_masked(const void *, index_t, crvec, crvec,
|
19
|
-
crindexvec, crindexvec, crvec, rvec,
|
20
|
-
rvec,
|
21
|
-
const ControlProblemVTable &) {
|
22
|
-
throw not_implemented_error("default_eval_add_R_prod_masked");
|
23
|
-
}
|
24
|
-
template <Config Conf>
|
25
|
-
void ControlProblemVTable<Conf>::default_eval_add_S_prod_masked(const void *, index_t, crvec, crvec,
|
26
|
-
crindexvec, crvec, rvec, rvec,
|
27
|
-
const ControlProblemVTable &) {
|
28
|
-
throw not_implemented_error("default_eval_add_S_prod_masked");
|
29
|
-
}
|
30
|
-
template <Config Conf>
|
31
|
-
auto ControlProblemVTable<Conf>::default_get_R_work_size(const void *, const ControlProblemVTable &)
|
32
|
-
-> length_t {
|
33
|
-
return 0;
|
34
|
-
}
|
35
|
-
template <Config Conf>
|
36
|
-
auto ControlProblemVTable<Conf>::default_get_S_work_size(const void *, const ControlProblemVTable &)
|
37
|
-
-> length_t {
|
38
|
-
return 0;
|
39
|
-
}
|
40
|
-
template <Config Conf>
|
41
|
-
void ControlProblemVTable<Conf>::default_eval_constr_N(const void *self, crvec x, rvec c,
|
42
|
-
const ControlProblemVTable &vtable) {
|
43
|
-
vtable.eval_constr(self, vtable.N, x, c, vtable);
|
44
|
-
}
|
45
|
-
template <Config Conf>
|
46
|
-
void ControlProblemVTable<Conf>::default_eval_grad_constr_prod_N(
|
47
|
-
const void *self, crvec x, crvec p, rvec grad_cx_p, const ControlProblemVTable &vtable) {
|
48
|
-
vtable.eval_grad_constr_prod(self, vtable.N, x, p, grad_cx_p, vtable);
|
49
|
-
}
|
50
|
-
template <Config Conf>
|
51
|
-
void ControlProblemVTable<Conf>::default_eval_add_gn_hess_constr_N(
|
52
|
-
const void *self, crvec x, crvec M, rmat out, const ControlProblemVTable &vtable) {
|
53
|
-
vtable.eval_add_gn_hess_constr(self, vtable.N, x, M, out, vtable);
|
54
|
-
}
|
55
|
-
|
56
|
-
} // namespace alpaqa
|