casadi 3.6.5__cp312-none-macosx_11_0_arm64.whl → 3.6.7__cp312-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,37 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <alpaqa/config/config.hpp>
|
4
|
-
|
5
|
-
namespace alpaqa {
|
6
|
-
|
7
|
-
/// Implements common problem functions for minimization problems without
|
8
|
-
/// constraints. Meant to be used as a base class for custom problem
|
9
|
-
/// implementations.
|
10
|
-
/// @ingroup grp_Problems
|
11
|
-
template <Config Conf>
|
12
|
-
class UnconstrProblem {
|
13
|
-
public:
|
14
|
-
USING_ALPAQA_CONFIG(Conf);
|
15
|
-
/// Number of constraints
|
16
|
-
length_t get_m() const { return 0; }
|
17
|
-
|
18
|
-
void eval_g(crvec, rvec) const {}
|
19
|
-
void eval_grad_g_prod(crvec, crvec, rvec grad) const { grad.setZero(); }
|
20
|
-
void eval_jac_g(crvec, rindexvec, rindexvec, rvec) const {}
|
21
|
-
void eval_grad_gi(crvec, index_t, rvec grad_gi) const { grad_gi.setZero(); }
|
22
|
-
|
23
|
-
/// @see @ref TypeErasedProblem::eval_prox_grad_step
|
24
|
-
real_t eval_prox_grad_step(real_t γ, crvec x, crvec grad_ψ, rvec x̂, rvec p) const {
|
25
|
-
p = -γ * grad_ψ;
|
26
|
-
x̂ = x + p;
|
27
|
-
return 0;
|
28
|
-
}
|
29
|
-
|
30
|
-
/// @see @ref TypeErasedProblem::eval_proj_diff_g
|
31
|
-
void eval_proj_diff_g(crvec, rvec) const {}
|
32
|
-
|
33
|
-
/// @see @ref TypeErasedProblem::eval_proj_multipliers
|
34
|
-
void eval_proj_multipliers(rvec, real_t) const {}
|
35
|
-
};
|
36
|
-
|
37
|
-
} // namespace alpaqa
|
@@ -1,27 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <alpaqa/inner/directions/panoc/structured-lbfgs.hpp>
|
4
|
-
#include <alpaqa/inner/panoc.hpp>
|
5
|
-
#include <alpaqa/outer/alm.hpp>
|
6
|
-
|
7
|
-
namespace alpaqa {
|
8
|
-
|
9
|
-
// clang-format off
|
10
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, PANOCSolver, StructuredLBFGSDirection<DefaultConfig>);
|
11
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, PANOCSolver, StructuredLBFGSDirection<EigenConfigf>);
|
12
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, PANOCSolver, StructuredLBFGSDirection<EigenConfigd>);
|
13
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, PANOCSolver, StructuredLBFGSDirection<EigenConfigl>);
|
14
|
-
#ifdef ALPAQA_WITH_QUAD_PRECISION
|
15
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, PANOCSolver, StructuredLBFGSDirection<EigenConfigq>);
|
16
|
-
#endif
|
17
|
-
|
18
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, ALMSolver, PANOCSolver<StructuredLBFGSDirection<DefaultConfig>>);
|
19
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, ALMSolver, PANOCSolver<StructuredLBFGSDirection<EigenConfigf>>);
|
20
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, ALMSolver, PANOCSolver<StructuredLBFGSDirection<EigenConfigd>>);
|
21
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, ALMSolver, PANOCSolver<StructuredLBFGSDirection<EigenConfigl>>);
|
22
|
-
#ifdef ALPAQA_WITH_QUAD_PRECISION
|
23
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, ALMSolver, PANOCSolver<StructuredLBFGSDirection<EigenConfigq>>);
|
24
|
-
#endif
|
25
|
-
// clang-format on
|
26
|
-
|
27
|
-
} // namespace alpaqa
|
@@ -1,27 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <alpaqa/inner/directions/panoc/structured-lbfgs.hpp>
|
4
|
-
#include <alpaqa/inner/zerofpr.hpp>
|
5
|
-
#include <alpaqa/outer/alm.hpp>
|
6
|
-
|
7
|
-
namespace alpaqa {
|
8
|
-
|
9
|
-
// clang-format off
|
10
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, ZeroFPRSolver, StructuredLBFGSDirection<DefaultConfig>);
|
11
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, ZeroFPRSolver, StructuredLBFGSDirection<EigenConfigf>);
|
12
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, ZeroFPRSolver, StructuredLBFGSDirection<EigenConfigd>);
|
13
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, ZeroFPRSolver, StructuredLBFGSDirection<EigenConfigl>);
|
14
|
-
#ifdef ALPAQA_WITH_QUAD_PRECISION
|
15
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, ZeroFPRSolver, StructuredLBFGSDirection<EigenConfigq>);
|
16
|
-
#endif
|
17
|
-
|
18
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, ALMSolver, ZeroFPRSolver<StructuredLBFGSDirection<DefaultConfig>>);
|
19
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, ALMSolver, ZeroFPRSolver<StructuredLBFGSDirection<EigenConfigf>>);
|
20
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, ALMSolver, ZeroFPRSolver<StructuredLBFGSDirection<EigenConfigd>>);
|
21
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, ALMSolver, ZeroFPRSolver<StructuredLBFGSDirection<EigenConfigl>>);
|
22
|
-
#ifdef ALPAQA_WITH_QUAD_PRECISION
|
23
|
-
ALPAQA_EXPORT_EXTERN_TEMPLATE(class, ALMSolver, ZeroFPRSolver<StructuredLBFGSDirection<EigenConfigq>>);
|
24
|
-
#endif
|
25
|
-
// clang-format on
|
26
|
-
|
27
|
-
} // namespace alpaqa
|
@@ -1,23 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <Eigen/Core>
|
4
|
-
|
5
|
-
namespace alpaqa {
|
6
|
-
|
7
|
-
#ifdef EIGEN_RUNTIME_NO_MALLOC
|
8
|
-
template <bool Allow>
|
9
|
-
struct ScopedMallocChecker {
|
10
|
-
ScopedMallocChecker() : prev(Eigen::internal::is_malloc_allowed()) {
|
11
|
-
Eigen::internal::set_is_malloc_allowed(Allow);
|
12
|
-
}
|
13
|
-
~ScopedMallocChecker() { Eigen::internal::set_is_malloc_allowed(prev); }
|
14
|
-
bool prev;
|
15
|
-
};
|
16
|
-
#else
|
17
|
-
template <bool>
|
18
|
-
struct [[maybe_unused]] ScopedMallocChecker {};
|
19
|
-
#endif
|
20
|
-
struct [[maybe_unused]] ScopedMallocBlocker : ScopedMallocChecker<false> {};
|
21
|
-
struct [[maybe_unused]] ScopedMallocAllower : ScopedMallocChecker<true> {};
|
22
|
-
|
23
|
-
} // namespace alpaqa
|
@@ -1,24 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <atomic>
|
4
|
-
|
5
|
-
namespace alpaqa {
|
6
|
-
|
7
|
-
class AtomicStopSignal {
|
8
|
-
public:
|
9
|
-
AtomicStopSignal() = default;
|
10
|
-
AtomicStopSignal(const AtomicStopSignal &) : AtomicStopSignal() {}
|
11
|
-
AtomicStopSignal &operator=(const AtomicStopSignal &) = delete;
|
12
|
-
AtomicStopSignal(AtomicStopSignal &&) : AtomicStopSignal() {}
|
13
|
-
AtomicStopSignal &operator=(AtomicStopSignal &&) { return *this; }
|
14
|
-
|
15
|
-
void stop() { stop_flag.store(true, std::memory_order_relaxed); }
|
16
|
-
bool stop_requested() const {
|
17
|
-
return stop_flag.load(std::memory_order_relaxed);
|
18
|
-
}
|
19
|
-
|
20
|
-
private:
|
21
|
-
std::atomic<bool> stop_flag{false};
|
22
|
-
};
|
23
|
-
|
24
|
-
} // namespace alpaqa
|
@@ -1,64 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <alpaqa/config/config.hpp>
|
4
|
-
#include <optional>
|
5
|
-
#include <stdexcept>
|
6
|
-
#include <string>
|
7
|
-
|
8
|
-
namespace alpaqa::util {
|
9
|
-
|
10
|
-
template <Config Conf>
|
11
|
-
void check_dim_msg(crvec<Conf> v, auto sz, std::string msg) {
|
12
|
-
if (v.size() != sz) {
|
13
|
-
msg += "\n(should be ";
|
14
|
-
msg += std::to_string(sz);
|
15
|
-
msg += ", got ";
|
16
|
-
msg += std::to_string(v.size());
|
17
|
-
msg += ")";
|
18
|
-
throw std::invalid_argument(msg);
|
19
|
-
}
|
20
|
-
}
|
21
|
-
|
22
|
-
template <Config Conf>
|
23
|
-
void check_dim_msg(std::optional<vec<Conf>> &v, auto sz, std::string msg) {
|
24
|
-
if (!v) {
|
25
|
-
v = vec<Conf>::Zero(sz);
|
26
|
-
} else if (v->size() != sz) {
|
27
|
-
msg += "\n(should be ";
|
28
|
-
msg += std::to_string(sz);
|
29
|
-
msg += ", got ";
|
30
|
-
msg += std::to_string(v->size());
|
31
|
-
msg += ")";
|
32
|
-
throw std::invalid_argument(msg);
|
33
|
-
}
|
34
|
-
}
|
35
|
-
|
36
|
-
template <Config Conf, class V>
|
37
|
-
void check_dim(std::string name, V &&v, auto sz) {
|
38
|
-
name += ": dimension mismatch";
|
39
|
-
check_dim_msg<Conf>(std::forward<V>(v), sz, name);
|
40
|
-
}
|
41
|
-
|
42
|
-
template <Config Conf>
|
43
|
-
void check_dim_msg(crmat<Conf> m, auto rows, auto cols, std::string msg) {
|
44
|
-
if (m.cols() != cols || m.rows() != rows) {
|
45
|
-
msg += "\n(should be ";
|
46
|
-
msg += std::to_string(rows);
|
47
|
-
msg += "×";
|
48
|
-
msg += std::to_string(cols);
|
49
|
-
msg += ", got ";
|
50
|
-
msg += std::to_string(m.rows());
|
51
|
-
msg += "×";
|
52
|
-
msg += std::to_string(m.cols());
|
53
|
-
msg += ")";
|
54
|
-
throw std::invalid_argument(msg);
|
55
|
-
}
|
56
|
-
}
|
57
|
-
|
58
|
-
template <Config Conf>
|
59
|
-
void check_dim(std::string name, crmat<Conf> m, auto rows, auto cols) {
|
60
|
-
name += ": dimension mismatch";
|
61
|
-
check_dim_msg<Conf>(m, rows, cols, name);
|
62
|
-
}
|
63
|
-
|
64
|
-
} // namespace alpaqa::util
|
@@ -1,32 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <memory>
|
4
|
-
|
5
|
-
namespace alpaqa::util {
|
6
|
-
|
7
|
-
template <class T>
|
8
|
-
struct copyable_unique_ptr {
|
9
|
-
copyable_unique_ptr(std::unique_ptr<T> ptr) : ptr{std::move(ptr)} {}
|
10
|
-
copyable_unique_ptr() = default;
|
11
|
-
copyable_unique_ptr(const copyable_unique_ptr &o)
|
12
|
-
: ptr{o.ptr ? std::make_unique<T>(*o.ptr) : nullptr} {}
|
13
|
-
copyable_unique_ptr &operator=(const copyable_unique_ptr &o) {
|
14
|
-
this->ptr = o.ptr ? std::make_unique<T>(*o.ptr) : nullptr;
|
15
|
-
return *this;
|
16
|
-
}
|
17
|
-
copyable_unique_ptr(copyable_unique_ptr &&) noexcept = default;
|
18
|
-
copyable_unique_ptr &operator=(copyable_unique_ptr &&) noexcept = default;
|
19
|
-
|
20
|
-
operator std::unique_ptr<T> &() & { return ptr; }
|
21
|
-
operator const std::unique_ptr<T> &() const & { return ptr; }
|
22
|
-
operator std::unique_ptr<T> &&() && { return std::move(ptr); }
|
23
|
-
|
24
|
-
std::unique_ptr<T> &operator->() { return ptr; }
|
25
|
-
const std::unique_ptr<T> &operator->() const { return ptr; }
|
26
|
-
auto &operator*() { return *ptr; }
|
27
|
-
auto &operator*() const { return *ptr; }
|
28
|
-
|
29
|
-
std::unique_ptr<T> ptr;
|
30
|
-
};
|
31
|
-
|
32
|
-
} // namespace alpaqa::util
|
@@ -1,70 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <ranges>
|
4
|
-
#include <utility>
|
5
|
-
|
6
|
-
namespace alpaqa::util {
|
7
|
-
|
8
|
-
template <class Rng>
|
9
|
-
struct enumerate_t : std::ranges::view_interface<enumerate_t<Rng>> {
|
10
|
-
Rng rng;
|
11
|
-
|
12
|
-
// P2325R3: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html
|
13
|
-
enumerate_t() = default;
|
14
|
-
enumerate_t(Rng rng) : rng{std::forward<Rng>(rng)} {}
|
15
|
-
|
16
|
-
using begin_t = decltype(std::ranges::begin(std::as_const(rng)));
|
17
|
-
using end_t = decltype(std::ranges::end(std::as_const(rng)));
|
18
|
-
|
19
|
-
struct sentinel_t {
|
20
|
-
end_t it;
|
21
|
-
};
|
22
|
-
|
23
|
-
struct iter_t {
|
24
|
-
// P2325R3: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html
|
25
|
-
iter_t() = default;
|
26
|
-
iter_t(begin_t &&it) : it{std::forward<begin_t>(it)} {}
|
27
|
-
|
28
|
-
using index_t = std::ranges::range_difference_t<Rng>;
|
29
|
-
index_t index{};
|
30
|
-
begin_t it;
|
31
|
-
|
32
|
-
using difference_type = std::ptrdiff_t;
|
33
|
-
using value_type = std::tuple<index_t, decltype(*it)>;
|
34
|
-
|
35
|
-
bool operator!=(sentinel_t s) const { return s.it != it; }
|
36
|
-
bool operator==(sentinel_t s) const { return s.it == it; }
|
37
|
-
// TODO: For Clang bug
|
38
|
-
friend bool operator!=(sentinel_t s, const iter_t &i) { return i != s; }
|
39
|
-
friend bool operator==(sentinel_t s, const iter_t &i) { return i == s; }
|
40
|
-
|
41
|
-
iter_t &operator++() {
|
42
|
-
++it;
|
43
|
-
++index;
|
44
|
-
return *this;
|
45
|
-
}
|
46
|
-
iter_t operator++(int) const {
|
47
|
-
auto tmp = *this;
|
48
|
-
++*this;
|
49
|
-
return tmp;
|
50
|
-
}
|
51
|
-
|
52
|
-
value_type operator*() const { return {index, *it}; }
|
53
|
-
};
|
54
|
-
|
55
|
-
auto begin() const -> std::input_or_output_iterator auto{
|
56
|
-
return iter_t{std::ranges::begin(rng)};
|
57
|
-
}
|
58
|
-
auto end() const
|
59
|
-
// -> std::sentinel_for<iter_t> auto
|
60
|
-
{
|
61
|
-
return sentinel_t{std::ranges::end(rng)};
|
62
|
-
}
|
63
|
-
};
|
64
|
-
|
65
|
-
template <class Rng>
|
66
|
-
auto enumerate(Rng &&rng) {
|
67
|
-
return enumerate_t<std::views::all_t<Rng>>{std::forward<Rng>(rng)};
|
68
|
-
}
|
69
|
-
|
70
|
-
} // namespace alpaqa::util
|
@@ -1,25 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <alpaqa/util/quadmath/quadmath.hpp>
|
4
|
-
|
5
|
-
#include <cmath>
|
6
|
-
#include <complex>
|
7
|
-
#include <concepts>
|
8
|
-
#include <type_traits>
|
9
|
-
|
10
|
-
namespace alpaqa {
|
11
|
-
|
12
|
-
template <typename T>
|
13
|
-
struct is_complex_float : std::false_type {};
|
14
|
-
|
15
|
-
template <std::floating_point T>
|
16
|
-
struct is_complex_float<std::complex<T>> : std::true_type {};
|
17
|
-
|
18
|
-
template <class T>
|
19
|
-
inline constexpr bool is_complex_float_v = is_complex_float<T>::value;
|
20
|
-
|
21
|
-
template <typename T>
|
22
|
-
concept float_or_complex_float =
|
23
|
-
std::floating_point<T> || is_complex_float_v<T>;
|
24
|
-
|
25
|
-
} // namespace alpaqa
|
@@ -1,97 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <alpaqa/config/config.hpp>
|
4
|
-
#include <span>
|
5
|
-
|
6
|
-
namespace alpaqa::detail {
|
7
|
-
|
8
|
-
template <Config Conf>
|
9
|
-
struct IndexSet {
|
10
|
-
USING_ALPAQA_CONFIG(Conf);
|
11
|
-
|
12
|
-
IndexSet(length_t N, length_t n) : N{N}, n{n}, storage{N + N * n} {}
|
13
|
-
|
14
|
-
length_t N;
|
15
|
-
length_t n;
|
16
|
-
indexvec storage;
|
17
|
-
|
18
|
-
auto sizes() { return storage.segment(0, N); }
|
19
|
-
auto sizes() const { return storage.segment(0, N); }
|
20
|
-
auto indices() { return storage.segment(N, N * n); }
|
21
|
-
auto indices() const { return storage.segment(N, N * n); }
|
22
|
-
|
23
|
-
crindexvec indices(index_t i) const {
|
24
|
-
length_t nJ = sizes()(i);
|
25
|
-
return indices().segment(n * i, nJ);
|
26
|
-
}
|
27
|
-
|
28
|
-
crindexvec compl_indices(index_t i) const {
|
29
|
-
length_t nJ = sizes()(i);
|
30
|
-
length_t nK = n - nJ;
|
31
|
-
return indices().segment(n * i + nJ, nK);
|
32
|
-
}
|
33
|
-
|
34
|
-
// Compute the complement of the index set `in`. Write the indices not in
|
35
|
-
// the input to 'out'.
|
36
|
-
static void compute_complement(std::span<const index_t> in,
|
37
|
-
std::span<index_t> out) {
|
38
|
-
compute_complement(in, out.data(),
|
39
|
-
static_cast<length_t>(in.size() + out.size()));
|
40
|
-
}
|
41
|
-
static void compute_complement(std::span<const index_t> in,
|
42
|
-
std::span<index_t> out, length_t n) {
|
43
|
-
assert(in.size() + out.size() == static_cast<size_t>(n));
|
44
|
-
compute_complement(in, out.data(), n);
|
45
|
-
}
|
46
|
-
static void compute_complement(crindexvec in, rindexvec out, length_t n) {
|
47
|
-
assert(in.size() + out.size() == n);
|
48
|
-
compute_complement(std::span{in.data(), static_cast<size_t>(in.size())},
|
49
|
-
out.data(), n);
|
50
|
-
}
|
51
|
-
|
52
|
-
template <class F>
|
53
|
-
void update(const F &condition) {
|
54
|
-
// Evaluate the condition for all indices in the given 'time_step',
|
55
|
-
// append the indices evaluating to true to 'out', and return the number
|
56
|
-
// of indices that were appended.
|
57
|
-
auto build_Jt = [&](index_t time_step, index_t *out) {
|
58
|
-
index_t j = 0; // index into the array of inactive indices
|
59
|
-
for (index_t c = 0; c < n; ++c) { // components within time step
|
60
|
-
if (condition(time_step, c)) // if the component is active,
|
61
|
-
out[j++] = c; // append the index of this component to J
|
62
|
-
}
|
63
|
-
return j; // return the number of elements in J
|
64
|
-
};
|
65
|
-
|
66
|
-
auto sizes = this->sizes();
|
67
|
-
auto *indices = this->indices().data();
|
68
|
-
for (index_t t = 0; t < N; ++t) { // time steps
|
69
|
-
// Generate the set of inactive indices, J
|
70
|
-
index_t num_J = build_Jt(t, indices);
|
71
|
-
sizes(t) = num_J; // save number of inactive indices for later
|
72
|
-
std::span J{indices, static_cast<size_t>(num_J)};
|
73
|
-
// Generate the complement, the set of active indices, K
|
74
|
-
compute_complement(J, indices + num_J, n);
|
75
|
-
// Prepare for next time step
|
76
|
-
indices += n;
|
77
|
-
}
|
78
|
-
}
|
79
|
-
|
80
|
-
private:
|
81
|
-
static void compute_complement(std::span<const index_t> in, index_t *out,
|
82
|
-
length_t n) {
|
83
|
-
length_t c = 0; // components within time step
|
84
|
-
length_t k = 0; // index into the array of active indices
|
85
|
-
// iterate over the array with indices 'in'
|
86
|
-
for (index_t j : in) { //
|
87
|
-
for (; c < j; ++c) // for all indices not in J
|
88
|
-
out[k++] = c; // append the index of this component
|
89
|
-
++c; // skip indices in J, i.e. c == j
|
90
|
-
}
|
91
|
-
// add final indices not in J
|
92
|
-
for (; c < n; ++c)
|
93
|
-
out[k++] = c;
|
94
|
-
}
|
95
|
-
};
|
96
|
-
|
97
|
-
} // namespace alpaqa::detail
|
@@ -1,43 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <alpaqa/config/config.hpp>
|
4
|
-
#include <alpaqa/export.h>
|
5
|
-
#include <iosfwd>
|
6
|
-
#include <stdexcept>
|
7
|
-
#include <vector>
|
8
|
-
|
9
|
-
namespace alpaqa::csv {
|
10
|
-
|
11
|
-
struct ALPAQA_EXPORT read_error : std::runtime_error {
|
12
|
-
using std::runtime_error::runtime_error;
|
13
|
-
};
|
14
|
-
|
15
|
-
template <std::floating_point F>
|
16
|
-
void ALPAQA_EXPORT read_row_impl(std::istream &is,
|
17
|
-
Eigen::Ref<Eigen::VectorX<F>> v,
|
18
|
-
char sep = ',');
|
19
|
-
|
20
|
-
template <std::floating_point F>
|
21
|
-
std::vector<F> ALPAQA_EXPORT read_row_std_vector(std::istream &is,
|
22
|
-
char sep = ',');
|
23
|
-
|
24
|
-
#define ALPAQA_READ_ROW_OVL(type) \
|
25
|
-
inline void read_row(std::istream &is, Eigen::Ref<Eigen::VectorX<type>> v, \
|
26
|
-
char sep) { \
|
27
|
-
return read_row_impl<type>(is, v, sep); \
|
28
|
-
} \
|
29
|
-
inline void read_row(std::istream &is, \
|
30
|
-
Eigen::Ref<Eigen::VectorX<type>> v) { \
|
31
|
-
return read_row_impl<type>(is, v); \
|
32
|
-
}
|
33
|
-
|
34
|
-
ALPAQA_READ_ROW_OVL(float)
|
35
|
-
ALPAQA_READ_ROW_OVL(double)
|
36
|
-
ALPAQA_READ_ROW_OVL(long double)
|
37
|
-
// #ifdef ALPAQA_WITH_QUAD_PRECISION
|
38
|
-
// ALPAQA_READ_ROW_OVL(__float128)
|
39
|
-
// #endif
|
40
|
-
|
41
|
-
#undef ALPAQA_READ_ROW_OVL
|
42
|
-
|
43
|
-
} // namespace alpaqa::csv
|
@@ -1,68 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <concepts>
|
4
|
-
#include <iterator>
|
5
|
-
#include <ranges>
|
6
|
-
#include <type_traits>
|
7
|
-
#include <utility>
|
8
|
-
|
9
|
-
#if defined(__clang_major__) && __clang_major__ <= 15 && !defined(__clangd__)
|
10
|
-
#error "Better ranges support required"
|
11
|
-
#endif
|
12
|
-
|
13
|
-
namespace alpaqa::util {
|
14
|
-
|
15
|
-
template <class It>
|
16
|
-
struct iter_range_adapter {
|
17
|
-
// P2325R3: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html
|
18
|
-
iter_range_adapter() = default;
|
19
|
-
iter_range_adapter(It it) : it{std::forward<It>(it)} {}
|
20
|
-
It it;
|
21
|
-
|
22
|
-
struct sentinel_t {};
|
23
|
-
|
24
|
-
struct iter_t : std::remove_cvref_t<It> {
|
25
|
-
// P2325R3: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html
|
26
|
-
iter_t() = default;
|
27
|
-
iter_t(It it) : std::remove_cvref_t<It>{std::forward<It>(it)} {}
|
28
|
-
|
29
|
-
bool operator!=(sentinel_t) const { return static_cast<bool>(*this); }
|
30
|
-
bool operator==(sentinel_t) const { return !static_cast<bool>(*this); }
|
31
|
-
// TODO: For Clang bug
|
32
|
-
friend bool operator!=(sentinel_t s, const iter_t &i) { return i != s; }
|
33
|
-
friend bool operator==(sentinel_t s, const iter_t &i) { return i == s; }
|
34
|
-
|
35
|
-
iter_t &operator++() {
|
36
|
-
this->std::remove_cvref_t<It>::operator++();
|
37
|
-
return *this;
|
38
|
-
}
|
39
|
-
iter_t operator++(int i) const {
|
40
|
-
this->std::remove_cvref_t<It>::operator++(i);
|
41
|
-
return *this;
|
42
|
-
}
|
43
|
-
const iter_t &operator*() const { return *this; }
|
44
|
-
using value_type = iter_t;
|
45
|
-
using pointer = iter_t *;
|
46
|
-
using reference = iter_t &;
|
47
|
-
using difference_type = std::ptrdiff_t;
|
48
|
-
};
|
49
|
-
|
50
|
-
auto begin() const & -> std::input_or_output_iterator auto{
|
51
|
-
return iter_t{it};
|
52
|
-
}
|
53
|
-
auto begin() && -> std::input_or_output_iterator auto{
|
54
|
-
return iter_t{std::forward<It>(it)};
|
55
|
-
}
|
56
|
-
auto end() const -> std::sentinel_for<iter_t> auto{ return sentinel_t{}; }
|
57
|
-
};
|
58
|
-
|
59
|
-
} // namespace alpaqa::util
|
60
|
-
|
61
|
-
// Make iter_range_adapter available as an std::ranges view.
|
62
|
-
// Iterators remain valid even if the range is destroyed.
|
63
|
-
// Assume that the user takes care of lifetime, similar to std::span.
|
64
|
-
#ifndef DOXYGEN
|
65
|
-
template <class It>
|
66
|
-
inline constexpr bool ::std::ranges::enable_borrowed_range<
|
67
|
-
alpaqa::util::iter_range_adapter<It>> = true;
|
68
|
-
#endif
|
@@ -1,47 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <algorithm>
|
4
|
-
#include <cstddef>
|
5
|
-
#include <vector>
|
6
|
-
|
7
|
-
namespace alpaqa {
|
8
|
-
|
9
|
-
/// Keep track of the maximum value over a specified horizon length.
|
10
|
-
template <class T>
|
11
|
-
class MaxHistory {
|
12
|
-
public:
|
13
|
-
MaxHistory(size_t memory) : buffer(std::vector<T>(memory)) {}
|
14
|
-
|
15
|
-
void add(T newt) {
|
16
|
-
if (full) {
|
17
|
-
T oldt = std::move(*it);
|
18
|
-
*it = std::move(newt);
|
19
|
-
if (*it > max_)
|
20
|
-
max_ = *it;
|
21
|
-
else if (oldt == max_)
|
22
|
-
max_ = *std::max_element(buffer.begin(), buffer.end());
|
23
|
-
++it;
|
24
|
-
if (it == buffer.end())
|
25
|
-
it = buffer.begin();
|
26
|
-
} else {
|
27
|
-
if (it == buffer.begin() || newt > max_)
|
28
|
-
max_ = newt;
|
29
|
-
*it = std::move(newt);
|
30
|
-
++it;
|
31
|
-
if (it == buffer.end()) {
|
32
|
-
it = buffer.begin();
|
33
|
-
full = true;
|
34
|
-
}
|
35
|
-
}
|
36
|
-
}
|
37
|
-
|
38
|
-
const T &max() const { return max_; }
|
39
|
-
|
40
|
-
private:
|
41
|
-
std::vector<T> buffer;
|
42
|
-
bool full = false;
|
43
|
-
decltype(buffer.begin()) it = buffer.begin();
|
44
|
-
T max_{};
|
45
|
-
};
|
46
|
-
|
47
|
-
} // namespace alpaqa
|
@@ -1,15 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
namespace alpaqa::util {
|
4
|
-
|
5
|
-
/// Deleter for `std::unique_ptr` that just destructs the object, without
|
6
|
-
/// deallocating.
|
7
|
-
template <class T>
|
8
|
-
struct noop_delete {
|
9
|
-
constexpr noop_delete() noexcept = default;
|
10
|
-
template <class U>
|
11
|
-
constexpr noop_delete(const noop_delete<U> &) noexcept {}
|
12
|
-
constexpr void operator()(T *t) const noexcept { t->~T(); }
|
13
|
-
};
|
14
|
-
|
15
|
-
} // namespace alpaqa::util
|