casadi 3.7.2__cp314-none-manylinux2014_i686.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- casadi/__init__.py +92 -0
- casadi/_casadi.so +0 -0
- casadi/casadi-cli +0 -0
- casadi/casadi.py +54468 -0
- casadi/cbc +0 -0
- casadi/clp +0 -0
- casadi/cmake/alpaqa/alpaqaConfig.cmake +24 -0
- casadi/cmake/alpaqa/alpaqaConfigVersion.cmake +65 -0
- casadi/cmake/alpaqa/alpaqaTargets-release.cmake +29 -0
- casadi/cmake/alpaqa/alpaqaTargets.cmake +131 -0
- casadi/cmake/casadi-config-version.cmake +11 -0
- casadi/cmake/casadi-config.cmake +8 -0
- casadi/cmake/casadi-targets-release.cmake +19 -0
- casadi/cmake/casadi-targets.cmake +107 -0
- casadi/cmake/ghc_filesystem/ghc_filesystem-config-version.cmake +85 -0
- casadi/cmake/ghc_filesystem/ghc_filesystem-config.cmake +30 -0
- casadi/cmake/ghc_filesystem/ghc_filesystem-targets.cmake +107 -0
- casadi/cmake/highs/highs-config.cmake +17 -0
- casadi/cmake/highs/highs-targets-release.cmake +28 -0
- casadi/cmake/highs/highs-targets.cmake +117 -0
- casadi/cmake/libzip/libzip-config-version.cmake +43 -0
- casadi/cmake/libzip/libzip-config.cmake +69 -0
- casadi/cmake/libzip/libzip-targets-release.cmake +19 -0
- casadi/cmake/libzip/libzip-targets.cmake +107 -0
- casadi/cmake/libzip/modules/FindMbedTLS.cmake +141 -0
- casadi/cmake/libzip/modules/FindNettle.cmake +141 -0
- casadi/cmake/libzip/modules/Findzstd.cmake +186 -0
- casadi/cmake/osqp/osqp-config.cmake +1 -0
- casadi/cmake/osqp/osqp-targets-noconfig.cmake +29 -0
- casadi/cmake/osqp/osqp-targets.cmake +113 -0
- casadi/cmake/proxsuite/find-external/Simde/FindSimde.cmake +39 -0
- casadi/cmake/proxsuite/proxsuiteConfig.cmake +177 -0
- casadi/cmake/proxsuite/proxsuiteConfigVersion.cmake +65 -0
- casadi/cmake/proxsuite/proxsuiteTargets.cmake +115 -0
- casadi/cmake/qdldl/qdldl-config.cmake +1 -0
- casadi/cmake/qdldl/qdldl-targets-noconfig.cmake +29 -0
- casadi/cmake/qdldl/qdldl-targets.cmake +113 -0
- casadi/cmake/sleqp/sleqp-config-version.cmake +65 -0
- casadi/cmake/sleqp/sleqp-config.cmake +1 -0
- casadi/cmake/sleqp/sleqp-targets-release.cmake +20 -0
- casadi/cmake/sleqp/sleqp-targets.cmake +106 -0
- casadi/cmake/trlib/trlib-config-release.cmake +19 -0
- casadi/cmake/trlib/trlib-config-version.cmake +83 -0
- casadi/cmake/trlib/trlib-config.cmake +107 -0
- casadi/highs +0 -0
- casadi/include/casadi/casadi.hpp +31 -0
- casadi/include/casadi/casadi.i +4920 -0
- casadi/include/casadi/casadi_c.h +138 -0
- casadi/include/casadi/casadi_numpy.hpp +97 -0
- casadi/include/casadi/config.h +46 -0
- casadi/include/casadi/core/archiver.hpp +58 -0
- casadi/include/casadi/core/blazing_spline.hpp +47 -0
- casadi/include/casadi/core/calculus.hpp +1805 -0
- casadi/include/casadi/core/callback.hpp +235 -0
- casadi/include/casadi/core/casadi_common.hpp +355 -0
- casadi/include/casadi/core/casadi_enum.hpp +90 -0
- casadi/include/casadi/core/casadi_export.h +43 -0
- casadi/include/casadi/core/casadi_interrupt.hpp +83 -0
- casadi/include/casadi/core/casadi_limits.hpp +104 -0
- casadi/include/casadi/core/casadi_logger.hpp +134 -0
- casadi/include/casadi/core/casadi_meta.hpp +122 -0
- casadi/include/casadi/core/casadi_misc.hpp +1022 -0
- casadi/include/casadi/core/casadi_types.hpp +66 -0
- casadi/include/casadi/core/code_generator.hpp +1071 -0
- casadi/include/casadi/core/conic.hpp +213 -0
- casadi/include/casadi/core/core.hpp +75 -0
- casadi/include/casadi/core/dae_builder.hpp +885 -0
- casadi/include/casadi/core/dm.hpp +90 -0
- casadi/include/casadi/core/dm_fwd.hpp +39 -0
- casadi/include/casadi/core/dple.hpp +138 -0
- casadi/include/casadi/core/exception.hpp +167 -0
- casadi/include/casadi/core/expm.hpp +84 -0
- casadi/include/casadi/core/external.hpp +70 -0
- casadi/include/casadi/core/filesystem.hpp +58 -0
- casadi/include/casadi/core/fmu.hpp +270 -0
- casadi/include/casadi/core/function.hpp +1389 -0
- casadi/include/casadi/core/generic_expression.hpp +760 -0
- casadi/include/casadi/core/generic_matrix.hpp +1805 -0
- casadi/include/casadi/core/generic_shared.hpp +395 -0
- casadi/include/casadi/core/generic_shared_impl.hpp +218 -0
- casadi/include/casadi/core/generic_shared_internal.hpp +215 -0
- casadi/include/casadi/core/generic_type.hpp +314 -0
- casadi/include/casadi/core/global_options.hpp +107 -0
- casadi/include/casadi/core/im.hpp +52 -0
- casadi/include/casadi/core/im_fwd.hpp +35 -0
- casadi/include/casadi/core/importer.hpp +221 -0
- casadi/include/casadi/core/integration_tools.hpp +292 -0
- casadi/include/casadi/core/integrator.hpp +290 -0
- casadi/include/casadi/core/interpolant.hpp +163 -0
- casadi/include/casadi/core/linsol.hpp +171 -0
- casadi/include/casadi/core/matrix_decl.hpp +1423 -0
- casadi/include/casadi/core/matrix_fwd.hpp +37 -0
- casadi/include/casadi/core/mx.hpp +1014 -0
- casadi/include/casadi/core/nlp_builder.hpp +163 -0
- casadi/include/casadi/core/nlp_tools.hpp +124 -0
- casadi/include/casadi/core/nlpsol.hpp +234 -0
- casadi/include/casadi/core/nonzeros.hpp +111 -0
- casadi/include/casadi/core/options.hpp +122 -0
- casadi/include/casadi/core/optistack.hpp +704 -0
- casadi/include/casadi/core/polynomial.hpp +126 -0
- casadi/include/casadi/core/printable.hpp +81 -0
- casadi/include/casadi/core/resource.hpp +107 -0
- casadi/include/casadi/core/rootfinder.hpp +176 -0
- casadi/include/casadi/core/runtime/casadi_axpy.hpp +8 -0
- casadi/include/casadi/core/runtime/casadi_bfgs.hpp +49 -0
- casadi/include/casadi/core/runtime/casadi_bilin.hpp +42 -0
- casadi/include/casadi/core/runtime/casadi_blazing_1d_boor_eval.hpp +112 -0
- casadi/include/casadi/core/runtime/casadi_blazing_2d_boor_eval.hpp +311 -0
- casadi/include/casadi/core/runtime/casadi_blazing_3d_boor_eval.hpp +645 -0
- casadi/include/casadi/core/runtime/casadi_blazing_de_boor.hpp +101 -0
- casadi/include/casadi/core/runtime/casadi_bound_consistency.hpp +51 -0
- casadi/include/casadi/core/runtime/casadi_cache.hpp +59 -0
- casadi/include/casadi/core/runtime/casadi_clear.hpp +27 -0
- casadi/include/casadi/core/runtime/casadi_clip_max.hpp +33 -0
- casadi/include/casadi/core/runtime/casadi_clip_min.hpp +33 -0
- casadi/include/casadi/core/runtime/casadi_convexify.hpp +182 -0
- casadi/include/casadi/core/runtime/casadi_copy.hpp +31 -0
- casadi/include/casadi/core/runtime/casadi_cvx.hpp +463 -0
- casadi/include/casadi/core/runtime/casadi_de_boor.hpp +36 -0
- casadi/include/casadi/core/runtime/casadi_dense_lsqr.hpp +247 -0
- casadi/include/casadi/core/runtime/casadi_densify.hpp +48 -0
- casadi/include/casadi/core/runtime/casadi_dot.hpp +27 -0
- casadi/include/casadi/core/runtime/casadi_feasiblesqpmethod.hpp +208 -0
- casadi/include/casadi/core/runtime/casadi_file_slurp.hpp +32 -0
- casadi/include/casadi/core/runtime/casadi_fill.hpp +27 -0
- casadi/include/casadi/core/runtime/casadi_finite_diff.hpp +345 -0
- casadi/include/casadi/core/runtime/casadi_flip.hpp +33 -0
- casadi/include/casadi/core/runtime/casadi_getu.hpp +35 -0
- casadi/include/casadi/core/runtime/casadi_iamax.hpp +36 -0
- casadi/include/casadi/core/runtime/casadi_interpn.hpp +39 -0
- casadi/include/casadi/core/runtime/casadi_interpn_grad.hpp +72 -0
- casadi/include/casadi/core/runtime/casadi_interpn_interpolate.hpp +43 -0
- casadi/include/casadi/core/runtime/casadi_interpn_weights.hpp +39 -0
- casadi/include/casadi/core/runtime/casadi_ipqp.hpp +868 -0
- casadi/include/casadi/core/runtime/casadi_jac.hpp +186 -0
- casadi/include/casadi/core/runtime/casadi_kkt.hpp +67 -0
- casadi/include/casadi/core/runtime/casadi_kron.hpp +50 -0
- casadi/include/casadi/core/runtime/casadi_ldl.hpp +109 -0
- casadi/include/casadi/core/runtime/casadi_logsumexp.hpp +41 -0
- casadi/include/casadi/core/runtime/casadi_low.hpp +65 -0
- casadi/include/casadi/core/runtime/casadi_lsqr.hpp +247 -0
- casadi/include/casadi/core/runtime/casadi_masked_norm_inf.hpp +33 -0
- casadi/include/casadi/core/runtime/casadi_max_viol.hpp +37 -0
- casadi/include/casadi/core/runtime/casadi_mmax.hpp +28 -0
- casadi/include/casadi/core/runtime/casadi_mmin.hpp +29 -0
- casadi/include/casadi/core/runtime/casadi_mtimes.hpp +75 -0
- casadi/include/casadi/core/runtime/casadi_mv.hpp +46 -0
- casadi/include/casadi/core/runtime/casadi_mv_dense.hpp +39 -0
- casadi/include/casadi/core/runtime/casadi_nd_boor_dual_eval.hpp +127 -0
- casadi/include/casadi/core/runtime/casadi_nd_boor_eval.hpp +120 -0
- casadi/include/casadi/core/runtime/casadi_newton.hpp +66 -0
- casadi/include/casadi/core/runtime/casadi_nlp.hpp +295 -0
- casadi/include/casadi/core/runtime/casadi_norm_1.hpp +29 -0
- casadi/include/casadi/core/runtime/casadi_norm_2.hpp +24 -0
- casadi/include/casadi/core/runtime/casadi_norm_inf.hpp +28 -0
- casadi/include/casadi/core/runtime/casadi_norm_inf_mul.hpp +105 -0
- 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_polyval.hpp +29 -0
- casadi/include/casadi/core/runtime/casadi_print_canonical.hpp +55 -0
- casadi/include/casadi/core/runtime/casadi_print_scalar.hpp +25 -0
- casadi/include/casadi/core/runtime/casadi_print_vector.hpp +32 -0
- casadi/include/casadi/core/runtime/casadi_printme.hpp +26 -0
- casadi/include/casadi/core/runtime/casadi_project.hpp +39 -0
- casadi/include/casadi/core/runtime/casadi_qp.hpp +86 -0
- casadi/include/casadi/core/runtime/casadi_qr.hpp +272 -0
- casadi/include/casadi/core/runtime/casadi_qrqp.hpp +1239 -0
- casadi/include/casadi/core/runtime/casadi_rank1.hpp +40 -0
- casadi/include/casadi/core/runtime/casadi_regularize.hpp +73 -0
- casadi/include/casadi/core/runtime/casadi_runtime.hpp +318 -0
- casadi/include/casadi/core/runtime/casadi_scal.hpp +26 -0
- casadi/include/casadi/core/runtime/casadi_scaled_copy.hpp +31 -0
- casadi/include/casadi/core/runtime/casadi_sparsify.hpp +42 -0
- casadi/include/casadi/core/runtime/casadi_sparsity.hpp +24 -0
- casadi/include/casadi/core/runtime/casadi_sqpmethod.hpp +178 -0
- casadi/include/casadi/core/runtime/casadi_sum.hpp +31 -0
- casadi/include/casadi/core/runtime/casadi_sum_viol.hpp +37 -0
- casadi/include/casadi/core/runtime/casadi_swap.hpp +32 -0
- casadi/include/casadi/core/runtime/casadi_trans.hpp +35 -0
- casadi/include/casadi/core/runtime/casadi_tri_project.hpp +37 -0
- casadi/include/casadi/core/runtime/casadi_trilsolve.hpp +81 -0
- casadi/include/casadi/core/runtime/casadi_triusolve.hpp +81 -0
- casadi/include/casadi/core/runtime/casadi_vector_fmax.hpp +28 -0
- casadi/include/casadi/core/runtime/casadi_vector_fmin.hpp +28 -0
- casadi/include/casadi/core/runtime/casadi_vfmax.hpp +28 -0
- casadi/include/casadi/core/runtime/casadi_vfmin.hpp +28 -0
- casadi/include/casadi/core/runtime/shared.hpp +261 -0
- casadi/include/casadi/core/serializer.hpp +264 -0
- casadi/include/casadi/core/serializing_stream.hpp +336 -0
- casadi/include/casadi/core/shared_object.hpp +182 -0
- casadi/include/casadi/core/slice.hpp +149 -0
- casadi/include/casadi/core/sparsity.hpp +1507 -0
- casadi/include/casadi/core/sparsity_interface.hpp +763 -0
- casadi/include/casadi/core/submatrix.hpp +156 -0
- casadi/include/casadi/core/sx.hpp +244 -0
- casadi/include/casadi/core/sx_elem.hpp +376 -0
- casadi/include/casadi/core/sx_fwd.hpp +45 -0
- casadi/include/casadi/core/timing.hpp +98 -0
- casadi/include/casadi/core/tools.hpp +67 -0
- casadi/include/casadi/core/xml_file.hpp +93 -0
- casadi/include/casadi/core/xml_node.hpp +212 -0
- casadi/include/casadi/doc.i +62244 -0
- casadi/include/casadi/doc_merged.i +38499 -0
- casadi/include/casadi/mem.h +311 -0
- casadi/include/casadi/valgrind-casadi.supp +649 -0
- casadi/include/casadi/valgrind-python.supp +3886 -0
- casadi/include/coin-or/IpAlgBuilder.hpp +417 -0
- casadi/include/coin-or/IpAlgStrategy.hpp +201 -0
- casadi/include/coin-or/IpAlgTypes.hpp +64 -0
- casadi/include/coin-or/IpAugSystemSolver.hpp +212 -0
- casadi/include/coin-or/IpBlas.hpp +426 -0
- casadi/include/coin-or/IpCachedResults.hpp +897 -0
- casadi/include/coin-or/IpCompoundMatrix.hpp +423 -0
- casadi/include/coin-or/IpCompoundSymMatrix.hpp +348 -0
- casadi/include/coin-or/IpCompoundVector.hpp +395 -0
- casadi/include/coin-or/IpConvCheck.hpp +97 -0
- casadi/include/coin-or/IpDebug.hpp +167 -0
- casadi/include/coin-or/IpDenseVector.hpp +626 -0
- casadi/include/coin-or/IpDiagMatrix.hpp +158 -0
- casadi/include/coin-or/IpEqMultCalculator.hpp +76 -0
- casadi/include/coin-or/IpException.hpp +156 -0
- casadi/include/coin-or/IpExpansionMatrix.hpp +245 -0
- casadi/include/coin-or/IpGenTMatrix.hpp +290 -0
- casadi/include/coin-or/IpHessianUpdater.hpp +73 -0
- casadi/include/coin-or/IpIdentityMatrix.hpp +167 -0
- casadi/include/coin-or/IpIpoptAlg.hpp +257 -0
- casadi/include/coin-or/IpIpoptApplication.hpp +367 -0
- casadi/include/coin-or/IpIpoptCalculatedQuantities.hpp +1009 -0
- casadi/include/coin-or/IpIpoptData.hpp +966 -0
- casadi/include/coin-or/IpIpoptNLP.hpp +328 -0
- casadi/include/coin-or/IpIterateInitializer.hpp +68 -0
- casadi/include/coin-or/IpIteratesVector.hpp +840 -0
- casadi/include/coin-or/IpIterationOutput.hpp +78 -0
- casadi/include/coin-or/IpJournalist.hpp +573 -0
- casadi/include/coin-or/IpLapack.hpp +227 -0
- casadi/include/coin-or/IpLibraryLoader.hpp +76 -0
- casadi/include/coin-or/IpLineSearch.hpp +106 -0
- casadi/include/coin-or/IpLinearSolvers.h +46 -0
- casadi/include/coin-or/IpMatrix.hpp +434 -0
- casadi/include/coin-or/IpMuUpdate.hpp +77 -0
- casadi/include/coin-or/IpNLP.hpp +306 -0
- casadi/include/coin-or/IpNLPScaling.hpp +582 -0
- casadi/include/coin-or/IpObserver.hpp +422 -0
- casadi/include/coin-or/IpOptionsList.hpp +412 -0
- casadi/include/coin-or/IpOrigIpoptNLP.hpp +603 -0
- casadi/include/coin-or/IpPDSystemSolver.hpp +137 -0
- casadi/include/coin-or/IpReferenced.hpp +262 -0
- casadi/include/coin-or/IpRegOptions.hpp +1152 -0
- casadi/include/coin-or/IpReturnCodes.h +23 -0
- casadi/include/coin-or/IpReturnCodes.hpp +18 -0
- casadi/include/coin-or/IpReturnCodes.inc +71 -0
- casadi/include/coin-or/IpReturnCodes_inc.h +45 -0
- casadi/include/coin-or/IpScaledMatrix.hpp +291 -0
- casadi/include/coin-or/IpSearchDirCalculator.hpp +72 -0
- casadi/include/coin-or/IpSmartPtr.hpp +865 -0
- casadi/include/coin-or/IpSolveStatistics.hpp +210 -0
- casadi/include/coin-or/IpSparseSymLinearSolverInterface.hpp +260 -0
- casadi/include/coin-or/IpStdAugSystemSolver.cpp +555 -0
- casadi/include/coin-or/IpStdCInterface.h +428 -0
- casadi/include/coin-or/IpSumSymMatrix.hpp +186 -0
- casadi/include/coin-or/IpSymLinearSolver.hpp +141 -0
- casadi/include/coin-or/IpSymMatrix.hpp +167 -0
- casadi/include/coin-or/IpSymScaledMatrix.hpp +255 -0
- casadi/include/coin-or/IpSymTMatrix.hpp +275 -0
- casadi/include/coin-or/IpTNLP.hpp +820 -0
- casadi/include/coin-or/IpTNLPAdapter.hpp +648 -0
- casadi/include/coin-or/IpTNLPReducer.hpp +274 -0
- casadi/include/coin-or/IpTaggedObject.hpp +128 -0
- casadi/include/coin-or/IpTimedTask.hpp +218 -0
- casadi/include/coin-or/IpTimingStatistics.hpp +323 -0
- casadi/include/coin-or/IpTripletHelper.hpp +308 -0
- casadi/include/coin-or/IpTypes.h +81 -0
- casadi/include/coin-or/IpTypes.hpp +30 -0
- casadi/include/coin-or/IpUtils.hpp +166 -0
- casadi/include/coin-or/IpVector.hpp +892 -0
- casadi/include/coin-or/IpZeroSymMatrix.hpp +155 -0
- casadi/include/coin-or/IpoptConfig.h +45 -0
- casadi/include/coin-or/SensAlgorithm.hpp +114 -0
- casadi/include/coin-or/SensApplication.hpp +188 -0
- casadi/include/coin-or/SensBacksolver.hpp +36 -0
- casadi/include/coin-or/SensMeasurement.hpp +56 -0
- casadi/include/coin-or/SensPCalculator.hpp +137 -0
- casadi/include/coin-or/SensRegOp.hpp +21 -0
- casadi/include/coin-or/SensSchurData.hpp +182 -0
- casadi/include/coin-or/SensSchurDriver.hpp +118 -0
- casadi/include/coin-or/SensSimpleBacksolver.hpp +49 -0
- casadi/include/coin-or/SensStepCalc.hpp +85 -0
- casadi/include/coin-or/SensUtils.hpp +63 -0
- casadi/include/coin-or/metis/defs.h +161 -0
- casadi/include/coin-or/metis/macros.h +143 -0
- casadi/include/coin-or/metis/metis.h +37 -0
- casadi/include/coin-or/metis/proto.h +505 -0
- casadi/include/coin-or/metis/rename.h +418 -0
- casadi/include/coin-or/metis/struct.h +251 -0
- casadi/include/coin-or/mumps/dmumps_c.h +142 -0
- casadi/include/coin-or/mumps/mumps_c_types.h +72 -0
- casadi/include/coin-or/mumps/mumps_compat.h +27 -0
- casadi/include/coin-or/mumps/mumps_int_def.h +11 -0
- casadi/include/coin-or/mumps/mumps_mpi.h +67 -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/eigen3/Eigen/Cholesky +45 -0
- casadi/include/eigen3/Eigen/CholmodSupport +48 -0
- casadi/include/eigen3/Eigen/Core +384 -0
- casadi/include/eigen3/Eigen/Dense +7 -0
- casadi/include/eigen3/Eigen/Eigen +2 -0
- casadi/include/eigen3/Eigen/Eigenvalues +60 -0
- casadi/include/eigen3/Eigen/Geometry +59 -0
- casadi/include/eigen3/Eigen/Householder +29 -0
- casadi/include/eigen3/Eigen/IterativeLinearSolvers +48 -0
- casadi/include/eigen3/Eigen/Jacobi +32 -0
- casadi/include/eigen3/Eigen/KLUSupport +41 -0
- casadi/include/eigen3/Eigen/LU +47 -0
- casadi/include/eigen3/Eigen/MetisSupport +35 -0
- casadi/include/eigen3/Eigen/OrderingMethods +70 -0
- casadi/include/eigen3/Eigen/PaStiXSupport +49 -0
- casadi/include/eigen3/Eigen/PardisoSupport +35 -0
- casadi/include/eigen3/Eigen/QR +50 -0
- casadi/include/eigen3/Eigen/QtAlignedMalloc +39 -0
- casadi/include/eigen3/Eigen/SPQRSupport +34 -0
- casadi/include/eigen3/Eigen/SVD +50 -0
- casadi/include/eigen3/Eigen/Sparse +34 -0
- casadi/include/eigen3/Eigen/SparseCholesky +37 -0
- casadi/include/eigen3/Eigen/SparseCore +69 -0
- casadi/include/eigen3/Eigen/SparseLU +50 -0
- casadi/include/eigen3/Eigen/SparseQR +36 -0
- casadi/include/eigen3/Eigen/StdDeque +27 -0
- casadi/include/eigen3/Eigen/StdList +26 -0
- casadi/include/eigen3/Eigen/StdVector +27 -0
- casadi/include/eigen3/Eigen/SuperLUSupport +64 -0
- casadi/include/eigen3/Eigen/UmfPackSupport +40 -0
- casadi/include/eigen3/Eigen/src/Cholesky/LDLT.h +688 -0
- casadi/include/eigen3/Eigen/src/Cholesky/LLT.h +558 -0
- casadi/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
- casadi/include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
- casadi/include/eigen3/Eigen/src/Core/ArithmeticSequence.h +413 -0
- casadi/include/eigen3/Eigen/src/Core/Array.h +417 -0
- casadi/include/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
- casadi/include/eigen3/Eigen/src/Core/ArrayWrapper.h +209 -0
- casadi/include/eigen3/Eigen/src/Core/Assign.h +90 -0
- casadi/include/eigen3/Eigen/src/Core/AssignEvaluator.h +1010 -0
- casadi/include/eigen3/Eigen/src/Core/Assign_MKL.h +178 -0
- casadi/include/eigen3/Eigen/src/Core/BandMatrix.h +353 -0
- casadi/include/eigen3/Eigen/src/Core/Block.h +448 -0
- casadi/include/eigen3/Eigen/src/Core/BooleanRedux.h +162 -0
- casadi/include/eigen3/Eigen/src/Core/CommaInitializer.h +164 -0
- casadi/include/eigen3/Eigen/src/Core/ConditionEstimator.h +175 -0
- casadi/include/eigen3/Eigen/src/Core/CoreEvaluators.h +1741 -0
- casadi/include/eigen3/Eigen/src/Core/CoreIterators.h +132 -0
- casadi/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +183 -0
- casadi/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
- casadi/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +197 -0
- casadi/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +103 -0
- casadi/include/eigen3/Eigen/src/Core/CwiseUnaryView.h +132 -0
- casadi/include/eigen3/Eigen/src/Core/DenseBase.h +701 -0
- casadi/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +685 -0
- casadi/include/eigen3/Eigen/src/Core/DenseStorage.h +652 -0
- casadi/include/eigen3/Eigen/src/Core/Diagonal.h +258 -0
- casadi/include/eigen3/Eigen/src/Core/DiagonalMatrix.h +391 -0
- casadi/include/eigen3/Eigen/src/Core/DiagonalProduct.h +28 -0
- casadi/include/eigen3/Eigen/src/Core/Dot.h +318 -0
- casadi/include/eigen3/Eigen/src/Core/EigenBase.h +160 -0
- casadi/include/eigen3/Eigen/src/Core/ForceAlignedAccess.h +150 -0
- casadi/include/eigen3/Eigen/src/Core/Fuzzy.h +155 -0
- casadi/include/eigen3/Eigen/src/Core/GeneralProduct.h +465 -0
- casadi/include/eigen3/Eigen/src/Core/GenericPacketMath.h +1040 -0
- casadi/include/eigen3/Eigen/src/Core/GlobalFunctions.h +194 -0
- casadi/include/eigen3/Eigen/src/Core/IO.h +258 -0
- casadi/include/eigen3/Eigen/src/Core/IndexedView.h +237 -0
- casadi/include/eigen3/Eigen/src/Core/Inverse.h +117 -0
- casadi/include/eigen3/Eigen/src/Core/Map.h +171 -0
- casadi/include/eigen3/Eigen/src/Core/MapBase.h +310 -0
- casadi/include/eigen3/Eigen/src/Core/MathFunctions.h +2057 -0
- casadi/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +200 -0
- casadi/include/eigen3/Eigen/src/Core/Matrix.h +565 -0
- casadi/include/eigen3/Eigen/src/Core/MatrixBase.h +547 -0
- casadi/include/eigen3/Eigen/src/Core/NestByValue.h +85 -0
- casadi/include/eigen3/Eigen/src/Core/NoAlias.h +109 -0
- casadi/include/eigen3/Eigen/src/Core/NumTraits.h +335 -0
- casadi/include/eigen3/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
- casadi/include/eigen3/Eigen/src/Core/PermutationMatrix.h +605 -0
- casadi/include/eigen3/Eigen/src/Core/PlainObjectBase.h +1128 -0
- casadi/include/eigen3/Eigen/src/Core/Product.h +191 -0
- casadi/include/eigen3/Eigen/src/Core/ProductEvaluators.h +1179 -0
- casadi/include/eigen3/Eigen/src/Core/Random.h +218 -0
- casadi/include/eigen3/Eigen/src/Core/Redux.h +515 -0
- casadi/include/eigen3/Eigen/src/Core/Ref.h +381 -0
- casadi/include/eigen3/Eigen/src/Core/Replicate.h +142 -0
- casadi/include/eigen3/Eigen/src/Core/Reshaped.h +454 -0
- casadi/include/eigen3/Eigen/src/Core/ReturnByValue.h +119 -0
- casadi/include/eigen3/Eigen/src/Core/Reverse.h +217 -0
- casadi/include/eigen3/Eigen/src/Core/Select.h +164 -0
- casadi/include/eigen3/Eigen/src/Core/SelfAdjointView.h +365 -0
- casadi/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
- casadi/include/eigen3/Eigen/src/Core/Solve.h +188 -0
- casadi/include/eigen3/Eigen/src/Core/SolveTriangular.h +235 -0
- casadi/include/eigen3/Eigen/src/Core/SolverBase.h +168 -0
- casadi/include/eigen3/Eigen/src/Core/StableNorm.h +251 -0
- casadi/include/eigen3/Eigen/src/Core/StlIterators.h +463 -0
- casadi/include/eigen3/Eigen/src/Core/Stride.h +116 -0
- casadi/include/eigen3/Eigen/src/Core/Swap.h +68 -0
- casadi/include/eigen3/Eigen/src/Core/Transpose.h +464 -0
- casadi/include/eigen3/Eigen/src/Core/Transpositions.h +386 -0
- casadi/include/eigen3/Eigen/src/Core/TriangularMatrix.h +1001 -0
- casadi/include/eigen3/Eigen/src/Core/VectorBlock.h +96 -0
- casadi/include/eigen3/Eigen/src/Core/VectorwiseOp.h +784 -0
- casadi/include/eigen3/Eigen/src/Core/Visitor.h +381 -0
- casadi/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +372 -0
- casadi/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
- casadi/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
- casadi/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
- casadi/include/eigen3/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
- casadi/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
- casadi/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
- casadi/include/eigen3/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
- casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
- casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
- casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
- casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
- casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
- casadi/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
- casadi/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
- casadi/include/eigen3/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
- casadi/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
- casadi/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
- casadi/include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
- casadi/include/eigen3/Eigen/src/Core/arch/Default/Half.h +942 -0
- casadi/include/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
- casadi/include/eigen3/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
- casadi/include/eigen3/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
- casadi/include/eigen3/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
- casadi/include/eigen3/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
- casadi/include/eigen3/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
- casadi/include/eigen3/Eigen/src/Core/arch/MSA/Complex.h +648 -0
- casadi/include/eigen3/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
- casadi/include/eigen3/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
- casadi/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +584 -0
- casadi/include/eigen3/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
- casadi/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
- casadi/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
- casadi/include/eigen3/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
- casadi/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +351 -0
- casadi/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
- casadi/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
- casadi/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
- casadi/include/eigen3/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
- casadi/include/eigen3/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
- casadi/include/eigen3/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
- casadi/include/eigen3/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
- casadi/include/eigen3/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
- casadi/include/eigen3/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
- casadi/include/eigen3/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
- casadi/include/eigen3/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
- casadi/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
- casadi/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
- casadi/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
- casadi/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
- casadi/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
- casadi/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
- casadi/include/eigen3/Eigen/src/Core/functors/StlFunctors.h +166 -0
- casadi/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
- casadi/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
- casadi/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
- casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
- casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
- casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
- casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
- casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
- casadi/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
- casadi/include/eigen3/Eigen/src/Core/products/Parallelizer.h +180 -0
- casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
- casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
- casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
- casadi/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
- casadi/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
- casadi/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
- casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
- casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
- casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
- casadi/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
- casadi/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
- casadi/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
- casadi/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
- casadi/include/eigen3/Eigen/src/Core/util/BlasUtil.h +583 -0
- casadi/include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
- casadi/include/eigen3/Eigen/src/Core/util/Constants.h +563 -0
- casadi/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
- casadi/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
- casadi/include/eigen3/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
- casadi/include/eigen3/Eigen/src/Core/util/IntegralConstant.h +272 -0
- casadi/include/eigen3/Eigen/src/Core/util/MKL_support.h +137 -0
- casadi/include/eigen3/Eigen/src/Core/util/Macros.h +1464 -0
- casadi/include/eigen3/Eigen/src/Core/util/Memory.h +1163 -0
- casadi/include/eigen3/Eigen/src/Core/util/Meta.h +812 -0
- casadi/include/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
- casadi/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
- casadi/include/eigen3/Eigen/src/Core/util/ReshapedHelper.h +51 -0
- casadi/include/eigen3/Eigen/src/Core/util/StaticAssert.h +221 -0
- casadi/include/eigen3/Eigen/src/Core/util/SymbolicIndex.h +293 -0
- casadi/include/eigen3/Eigen/src/Core/util/XprHelper.h +856 -0
- casadi/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
- casadi/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
- casadi/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
- casadi/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
- casadi/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
- casadi/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
- casadi/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
- casadi/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
- casadi/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +657 -0
- casadi/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +558 -0
- casadi/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
- casadi/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
- casadi/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
- casadi/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
- casadi/include/eigen3/Eigen/src/Geometry/AlignedBox.h +486 -0
- casadi/include/eigen3/Eigen/src/Geometry/AngleAxis.h +247 -0
- casadi/include/eigen3/Eigen/src/Geometry/EulerAngles.h +114 -0
- casadi/include/eigen3/Eigen/src/Geometry/Homogeneous.h +501 -0
- casadi/include/eigen3/Eigen/src/Geometry/Hyperplane.h +282 -0
- casadi/include/eigen3/Eigen/src/Geometry/OrthoMethods.h +235 -0
- casadi/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +232 -0
- casadi/include/eigen3/Eigen/src/Geometry/Quaternion.h +870 -0
- casadi/include/eigen3/Eigen/src/Geometry/Rotation2D.h +199 -0
- casadi/include/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
- casadi/include/eigen3/Eigen/src/Geometry/Scaling.h +188 -0
- casadi/include/eigen3/Eigen/src/Geometry/Transform.h +1563 -0
- casadi/include/eigen3/Eigen/src/Geometry/Translation.h +202 -0
- casadi/include/eigen3/Eigen/src/Geometry/Umeyama.h +166 -0
- casadi/include/eigen3/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
- casadi/include/eigen3/Eigen/src/Householder/BlockHouseholder.h +110 -0
- casadi/include/eigen3/Eigen/src/Householder/Householder.h +176 -0
- casadi/include/eigen3/Eigen/src/Householder/HouseholderSequence.h +545 -0
- casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
- casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
- casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
- casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
- casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
- casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
- casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
- casadi/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
- casadi/include/eigen3/Eigen/src/Jacobi/Jacobi.h +483 -0
- casadi/include/eigen3/Eigen/src/KLUSupport/KLUSupport.h +358 -0
- casadi/include/eigen3/Eigen/src/LU/Determinant.h +117 -0
- casadi/include/eigen3/Eigen/src/LU/FullPivLU.h +877 -0
- casadi/include/eigen3/Eigen/src/LU/InverseImpl.h +432 -0
- casadi/include/eigen3/Eigen/src/LU/PartialPivLU.h +624 -0
- casadi/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
- casadi/include/eigen3/Eigen/src/LU/arch/InverseSize4.h +351 -0
- casadi/include/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
- casadi/include/eigen3/Eigen/src/OrderingMethods/Amd.h +435 -0
- casadi/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
- casadi/include/eigen3/Eigen/src/OrderingMethods/Ordering.h +153 -0
- casadi/include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
- casadi/include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
- casadi/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
- casadi/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
- casadi/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
- casadi/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
- casadi/include/eigen3/Eigen/src/QR/HouseholderQR.h +434 -0
- casadi/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
- casadi/include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
- casadi/include/eigen3/Eigen/src/SVD/BDCSVD.h +1366 -0
- casadi/include/eigen3/Eigen/src/SVD/JacobiSVD.h +812 -0
- casadi/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
- casadi/include/eigen3/Eigen/src/SVD/SVDBase.h +376 -0
- casadi/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
- casadi/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
- casadi/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
- casadi/include/eigen3/Eigen/src/SparseCore/AmbiVector.h +378 -0
- casadi/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +274 -0
- casadi/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
- casadi/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseAssign.h +270 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseBlock.h +571 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseDot.h +98 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseMap.h +305 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +178 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseProduct.h +181 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseRedux.h +49 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseRef.h +397 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +92 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseUtil.h +186 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseVector.h +478 -0
- casadi/include/eigen3/Eigen/src/SparseCore/SparseView.h +254 -0
- casadi/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +315 -0
- casadi/include/eigen3/Eigen/src/SparseLU/SparseLU.h +923 -0
- casadi/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
- casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
- casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
- casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
- casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
- casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
- casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
- casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
- casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
- casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
- casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
- casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
- casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
- casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
- casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
- casadi/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
- casadi/include/eigen3/Eigen/src/SparseQR/SparseQR.h +758 -0
- casadi/include/eigen3/Eigen/src/StlSupport/StdDeque.h +116 -0
- casadi/include/eigen3/Eigen/src/StlSupport/StdList.h +106 -0
- casadi/include/eigen3/Eigen/src/StlSupport/StdVector.h +131 -0
- casadi/include/eigen3/Eigen/src/StlSupport/details.h +84 -0
- casadi/include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
- casadi/include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
- casadi/include/eigen3/Eigen/src/misc/Image.h +82 -0
- casadi/include/eigen3/Eigen/src/misc/Kernel.h +79 -0
- casadi/include/eigen3/Eigen/src/misc/RealSvd2x2.h +55 -0
- casadi/include/eigen3/Eigen/src/misc/blas.h +440 -0
- casadi/include/eigen3/Eigen/src/misc/lapack.h +152 -0
- casadi/include/eigen3/Eigen/src/misc/lapacke.h +16292 -0
- casadi/include/eigen3/Eigen/src/misc/lapacke_mangling.h +17 -0
- casadi/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
- casadi/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
- casadi/include/eigen3/Eigen/src/plugins/BlockMethods.h +1442 -0
- casadi/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
- casadi/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
- casadi/include/eigen3/Eigen/src/plugins/IndexedViewMethods.h +262 -0
- casadi/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
- casadi/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
- casadi/include/eigen3/Eigen/src/plugins/ReshapedMethods.h +149 -0
- casadi/include/eigen3/signature_of_eigen3_matrix_library +1 -0
- casadi/include/eigen3/unsupported/Eigen/AdolcForward +159 -0
- casadi/include/eigen3/unsupported/Eigen/AlignedVector3 +234 -0
- casadi/include/eigen3/unsupported/Eigen/ArpackSupport +30 -0
- casadi/include/eigen3/unsupported/Eigen/AutoDiff +46 -0
- casadi/include/eigen3/unsupported/Eigen/BVH +95 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/Tensor +137 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry +42 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/ThreadPool +74 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +554 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +329 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +247 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +1176 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +1559 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +1093 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +518 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +377 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +1023 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +73 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +6 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +1413 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +575 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +1650 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +1679 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +456 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +1132 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +544 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +214 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +347 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +137 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +6 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +104 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +389 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +1048 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +409 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +236 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +490 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +236 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +983 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +703 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +388 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +669 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +379 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +237 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +191 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +488 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +302 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +33 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +99 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +44 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +79 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +603 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +738 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +247 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +82 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +263 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +216 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +98 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +327 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +311 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +1102 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +708 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +291 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +322 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +998 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +6 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +966 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +582 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +454 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +465 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +528 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +513 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +471 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +161 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +346 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +303 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +264 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +249 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +629 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +293 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +236 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +338 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +669 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +67 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +249 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +486 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +236 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +23 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +40 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +301 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +48 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +20 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +537 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +88 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h +261 -0
- casadi/include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +158 -0
- casadi/include/eigen3/unsupported/Eigen/EulerAngles +43 -0
- casadi/include/eigen3/unsupported/Eigen/FFT +419 -0
- casadi/include/eigen3/unsupported/Eigen/IterativeSolvers +51 -0
- casadi/include/eigen3/unsupported/Eigen/KroneckerProduct +36 -0
- casadi/include/eigen3/unsupported/Eigen/LevenbergMarquardt +49 -0
- casadi/include/eigen3/unsupported/Eigen/MPRealSupport +213 -0
- casadi/include/eigen3/unsupported/Eigen/MatrixFunctions +504 -0
- casadi/include/eigen3/unsupported/Eigen/MoreVectorization +24 -0
- casadi/include/eigen3/unsupported/Eigen/NonLinearOptimization +140 -0
- casadi/include/eigen3/unsupported/Eigen/NumericalDiff +56 -0
- casadi/include/eigen3/unsupported/Eigen/OpenGLSupport +322 -0
- casadi/include/eigen3/unsupported/Eigen/Polynomials +137 -0
- casadi/include/eigen3/unsupported/Eigen/Skyline +39 -0
- casadi/include/eigen3/unsupported/Eigen/SparseExtra +54 -0
- casadi/include/eigen3/unsupported/Eigen/SpecialFunctions +103 -0
- casadi/include/eigen3/unsupported/Eigen/Splines +35 -0
- casadi/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +108 -0
- casadi/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +730 -0
- casadi/include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +220 -0
- casadi/include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h +293 -0
- casadi/include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h +223 -0
- casadi/include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +790 -0
- casadi/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h +355 -0
- casadi/include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h +305 -0
- casadi/include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h +261 -0
- casadi/include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +449 -0
- casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +187 -0
- casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +511 -0
- casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h +335 -0
- casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IDRS.h +436 -0
- casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +90 -0
- casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h +154 -0
- casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h +267 -0
- casadi/include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h +193 -0
- casadi/include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +305 -0
- casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +84 -0
- casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +202 -0
- casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +160 -0
- casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +188 -0
- casadi/include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +396 -0
- casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +441 -0
- casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +569 -0
- casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +373 -0
- casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +705 -0
- casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +368 -0
- casadi/include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +117 -0
- casadi/include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +95 -0
- casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +601 -0
- casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +657 -0
- casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h +66 -0
- casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h +70 -0
- casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +107 -0
- casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +79 -0
- casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +298 -0
- casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +91 -0
- casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +30 -0
- casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +99 -0
- casadi/include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +49 -0
- casadi/include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +130 -0
- casadi/include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h +280 -0
- casadi/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +428 -0
- casadi/include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +143 -0
- casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +352 -0
- casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h +862 -0
- casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +212 -0
- casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h +295 -0
- casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h +259 -0
- casadi/include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h +89 -0
- casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +122 -0
- casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +1079 -0
- casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +404 -0
- casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h +282 -0
- casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +247 -0
- casadi/include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h +349 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +286 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +68 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +357 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +66 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +1959 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +118 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +67 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +167 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +58 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +330 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +58 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +2045 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +79 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +46 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +16 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +46 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +16 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +369 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +54 -0
- casadi/include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +34 -0
- casadi/include/eigen3/unsupported/Eigen/src/Splines/Spline.h +507 -0
- casadi/include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h +431 -0
- casadi/include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h +93 -0
- casadi/include/highs/HConfig.h +23 -0
- casadi/include/highs/Highs.h +1703 -0
- casadi/include/highs/filereaderlp/builder.hpp +25 -0
- casadi/include/highs/filereaderlp/def.hpp +19 -0
- casadi/include/highs/filereaderlp/model.hpp +68 -0
- casadi/include/highs/filereaderlp/reader.hpp +10 -0
- casadi/include/highs/interfaces/highs_c_api.h +2456 -0
- casadi/include/highs/io/Filereader.h +45 -0
- casadi/include/highs/io/FilereaderEms.h +30 -0
- casadi/include/highs/io/FilereaderLp.h +51 -0
- casadi/include/highs/io/FilereaderMps.h +27 -0
- casadi/include/highs/io/HMPSIO.h +78 -0
- casadi/include/highs/io/HMpsFF.h +238 -0
- casadi/include/highs/io/HighsIO.h +114 -0
- casadi/include/highs/io/LoadOptions.h +24 -0
- casadi/include/highs/ipm/IpxSolution.h +32 -0
- casadi/include/highs/ipm/IpxWrapper.h +70 -0
- 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 +164 -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 +76 -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 +202 -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 +413 -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 +320 -0
- casadi/include/highs/lp_data/HStruct.h +182 -0
- casadi/include/highs/lp_data/HighsAnalysis.h +23 -0
- casadi/include/highs/lp_data/HighsCallback.h +47 -0
- casadi/include/highs/lp_data/HighsCallbackStruct.h +62 -0
- casadi/include/highs/lp_data/HighsDebug.h +34 -0
- casadi/include/highs/lp_data/HighsIis.h +62 -0
- casadi/include/highs/lp_data/HighsInfo.h +329 -0
- casadi/include/highs/lp_data/HighsInfoDebug.h +27 -0
- casadi/include/highs/lp_data/HighsLp.h +100 -0
- casadi/include/highs/lp_data/HighsLpSolverObject.h +45 -0
- casadi/include/highs/lp_data/HighsLpUtils.h +298 -0
- casadi/include/highs/lp_data/HighsModelUtils.h +112 -0
- casadi/include/highs/lp_data/HighsOptions.h +1469 -0
- casadi/include/highs/lp_data/HighsRanging.h +43 -0
- casadi/include/highs/lp_data/HighsSolution.h +144 -0
- casadi/include/highs/lp_data/HighsSolutionDebug.h +87 -0
- casadi/include/highs/lp_data/HighsSolve.h +23 -0
- casadi/include/highs/lp_data/HighsStatus.h +29 -0
- casadi/include/highs/mip/HighsCliqueTable.h +318 -0
- casadi/include/highs/mip/HighsConflictPool.h +109 -0
- casadi/include/highs/mip/HighsCutGeneration.h +106 -0
- casadi/include/highs/mip/HighsCutPool.h +168 -0
- casadi/include/highs/mip/HighsDebugSol.h +132 -0
- casadi/include/highs/mip/HighsDomain.h +653 -0
- casadi/include/highs/mip/HighsDomainChange.h +48 -0
- casadi/include/highs/mip/HighsDynamicRowMatrix.h +104 -0
- casadi/include/highs/mip/HighsGFkSolve.h +438 -0
- casadi/include/highs/mip/HighsImplications.h +170 -0
- casadi/include/highs/mip/HighsLpAggregator.h +50 -0
- casadi/include/highs/mip/HighsLpRelaxation.h +357 -0
- casadi/include/highs/mip/HighsMipAnalysis.h +52 -0
- casadi/include/highs/mip/HighsMipSolver.h +112 -0
- casadi/include/highs/mip/HighsMipSolverData.h +297 -0
- casadi/include/highs/mip/HighsModkSeparator.h +60 -0
- casadi/include/highs/mip/HighsNodeQueue.h +311 -0
- casadi/include/highs/mip/HighsObjectiveFunction.h +71 -0
- casadi/include/highs/mip/HighsPathSeparator.h +39 -0
- casadi/include/highs/mip/HighsPrimalHeuristics.h +70 -0
- casadi/include/highs/mip/HighsPseudocost.h +360 -0
- casadi/include/highs/mip/HighsRedcostFixing.h +42 -0
- casadi/include/highs/mip/HighsSearch.h +241 -0
- casadi/include/highs/mip/HighsSeparation.h +41 -0
- casadi/include/highs/mip/HighsSeparator.h +52 -0
- casadi/include/highs/mip/HighsTableauSeparator.h +34 -0
- casadi/include/highs/mip/HighsTransformedLp.h +63 -0
- casadi/include/highs/mip/MipTimer.h +471 -0
- casadi/include/highs/model/HighsHessian.h +54 -0
- casadi/include/highs/model/HighsHessianUtils.h +49 -0
- casadi/include/highs/model/HighsModel.h +52 -0
- casadi/include/highs/parallel/HighsBinarySemaphore.h +113 -0
- casadi/include/highs/parallel/HighsCacheAlign.h +87 -0
- casadi/include/highs/parallel/HighsCombinable.h +121 -0
- casadi/include/highs/parallel/HighsMutex.h +129 -0
- casadi/include/highs/parallel/HighsParallel.h +133 -0
- casadi/include/highs/parallel/HighsRaceTimer.h +43 -0
- casadi/include/highs/parallel/HighsSchedulerConstants.h +24 -0
- casadi/include/highs/parallel/HighsSpinMutex.h +53 -0
- casadi/include/highs/parallel/HighsSplitDeque.h +583 -0
- casadi/include/highs/parallel/HighsTask.h +175 -0
- casadi/include/highs/parallel/HighsTaskExecutor.h +222 -0
- casadi/include/highs/pdlp/CupdlpWrapper.h +104 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_cs.h +40 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_defs.h +433 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_linalg.h +189 -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.h +26 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_solver.h +98 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_step.h +37 -0
- casadi/include/highs/pdlp/cupdlp/cupdlp_utils.c +1807 -0
- casadi/include/highs/pdqsort/pdqsort.h +532 -0
- casadi/include/highs/presolve/HPresolve.h +405 -0
- casadi/include/highs/presolve/HPresolveAnalysis.h +51 -0
- casadi/include/highs/presolve/HighsPostsolveStack.h +940 -0
- casadi/include/highs/presolve/HighsSymmetry.h +281 -0
- casadi/include/highs/presolve/ICrash.h +124 -0
- casadi/include/highs/presolve/ICrashUtil.h +62 -0
- casadi/include/highs/presolve/ICrashX.h +23 -0
- casadi/include/highs/presolve/PresolveComponent.h +90 -0
- casadi/include/highs/qpsolver/a_asm.hpp +70 -0
- casadi/include/highs/qpsolver/a_quass.hpp +15 -0
- casadi/include/highs/qpsolver/basis.hpp +152 -0
- casadi/include/highs/qpsolver/crashsolution.hpp +13 -0
- casadi/include/highs/qpsolver/dantzigpricing.hpp +73 -0
- casadi/include/highs/qpsolver/devexpricing.hpp +101 -0
- casadi/include/highs/qpsolver/eventhandler.hpp +23 -0
- casadi/include/highs/qpsolver/factor.hpp +401 -0
- casadi/include/highs/qpsolver/feasibility_bounded.hpp +107 -0
- casadi/include/highs/qpsolver/feasibility_highs.hpp +294 -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/perturbation.hpp +8 -0
- casadi/include/highs/qpsolver/pricing.hpp +15 -0
- casadi/include/highs/qpsolver/qpconst.hpp +27 -0
- casadi/include/highs/qpsolver/qpvector.hpp +235 -0
- casadi/include/highs/qpsolver/quass.hpp +20 -0
- casadi/include/highs/qpsolver/ratiotest.hpp +19 -0
- casadi/include/highs/qpsolver/runtime.hpp +38 -0
- casadi/include/highs/qpsolver/scaling.hpp +8 -0
- casadi/include/highs/qpsolver/settings.hpp +69 -0
- casadi/include/highs/qpsolver/snippets.hpp +29 -0
- casadi/include/highs/qpsolver/statistics.hpp +23 -0
- casadi/include/highs/qpsolver/steepestedgepricing.hpp +166 -0
- casadi/include/highs/simplex/HApp.h +476 -0
- casadi/include/highs/simplex/HEkk.h +416 -0
- casadi/include/highs/simplex/HEkkDual.h +513 -0
- casadi/include/highs/simplex/HEkkDualRHS.h +134 -0
- casadi/include/highs/simplex/HEkkDualRow.h +201 -0
- casadi/include/highs/simplex/HEkkPrimal.h +191 -0
- casadi/include/highs/simplex/HSimplex.h +42 -0
- casadi/include/highs/simplex/HSimplexDebug.h +48 -0
- casadi/include/highs/simplex/HSimplexNla.h +158 -0
- casadi/include/highs/simplex/HSimplexReport.h +21 -0
- casadi/include/highs/simplex/HighsSimplexAnalysis.h +500 -0
- casadi/include/highs/simplex/SimplexConst.h +273 -0
- casadi/include/highs/simplex/SimplexStruct.h +261 -0
- casadi/include/highs/simplex/SimplexTimer.h +409 -0
- casadi/include/highs/test/DevKkt.h +143 -0
- casadi/include/highs/test/KktCh2.h +79 -0
- casadi/include/highs/util/FactorTimer.h +199 -0
- casadi/include/highs/util/HFactor.h +587 -0
- casadi/include/highs/util/HFactorConst.h +81 -0
- casadi/include/highs/util/HFactorDebug.h +55 -0
- casadi/include/highs/util/HSet.h +89 -0
- casadi/include/highs/util/HVector.h +22 -0
- casadi/include/highs/util/HVectorBase.h +102 -0
- casadi/include/highs/util/HighsCDouble.h +319 -0
- casadi/include/highs/util/HighsComponent.h +53 -0
- casadi/include/highs/util/HighsDataStack.h +83 -0
- casadi/include/highs/util/HighsDisjointSets.h +107 -0
- casadi/include/highs/util/HighsHash.h +1274 -0
- casadi/include/highs/util/HighsHashTree.h +1447 -0
- casadi/include/highs/util/HighsInt.h +36 -0
- casadi/include/highs/util/HighsIntegers.h +212 -0
- casadi/include/highs/util/HighsLinearSumBounds.h +157 -0
- casadi/include/highs/util/HighsMatrixPic.h +37 -0
- casadi/include/highs/util/HighsMatrixSlice.h +561 -0
- casadi/include/highs/util/HighsMatrixUtils.h +54 -0
- casadi/include/highs/util/HighsMemoryAllocation.h +63 -0
- casadi/include/highs/util/HighsRandom.h +242 -0
- casadi/include/highs/util/HighsRbTree.h +452 -0
- casadi/include/highs/util/HighsSort.h +131 -0
- casadi/include/highs/util/HighsSparseMatrix.h +150 -0
- casadi/include/highs/util/HighsSparseVectorSum.h +95 -0
- casadi/include/highs/util/HighsSplay.h +135 -0
- casadi/include/highs/util/HighsTimer.h +381 -0
- casadi/include/highs/util/HighsUtils.h +217 -0
- casadi/include/highs/util/stringutil.h +46 -0
- casadi/include/highs/zstr/strict_fstream.hpp +237 -0
- casadi/include/highs/zstr/zstr.hpp +472 -0
- casadi/include/licenses/FMI-Standard-2.0.2/LICENSE.txt +473 -0
- casadi/include/licenses/FMI-Standard-3.0/LICENSE.txt +464 -0
- casadi/include/licenses/alpaqa-external/LICENSE +165 -0
- casadi/include/licenses/bonmin-external/Bonmin/LICENSE +87 -0
- casadi/include/licenses/bonmin-external/LICENSE +3 -0
- casadi/include/licenses/casadi/LICENSE/LICENSE.txt +165 -0
- casadi/include/licenses/casadi-sundials/LICENSE +64 -0
- casadi/include/licenses/casadi-sundials/cvodes/LICENSE +60 -0
- casadi/include/licenses/casadi-sundials/idas/LICENSE +59 -0
- casadi/include/licenses/casadi-sundials/kinsol/LICENSE +59 -0
- casadi/include/licenses/casadi-sundials/sundials/LICENSE +67 -0
- casadi/include/licenses/cbc-external/Cbc/LICENSE +239 -0
- casadi/include/licenses/cbc-external/LICENSE +245 -0
- casadi/include/licenses/cgl-external/Cgl/LICENSE +239 -0
- casadi/include/licenses/cgl-external/LICENSE +245 -0
- casadi/include/licenses/clp-external/Clp/LICENSE +239 -0
- casadi/include/licenses/clp-external/LICENSE +245 -0
- casadi/include/licenses/coinutils-external/CoinUtils/LICENSE +239 -0
- casadi/include/licenses/coinutils-external/LICENSE +245 -0
- casadi/include/licenses/daqp-external/LICENSE +21 -0
- casadi/include/licenses/ghc-external/LICENSE +19 -0
- casadi/include/licenses/highs-external/LICENSE.txt +21 -0
- casadi/include/licenses/highs-external/extern/filereaderlp/LICENSE +19 -0
- casadi/include/licenses/ipopt-external/LICENSE +260 -0
- casadi/include/licenses/libz-external/LICENSE +22 -0
- casadi/include/licenses/libz-external/contrib/dotzlib/LICENSE_1_0.txt +23 -0
- casadi/include/licenses/libzip-external/LICENSE +31 -0
- casadi/include/licenses/metis-external/LICENSE +87 -0
- casadi/include/licenses/metis-external/metis-4.0/LICENSE +18 -0
- casadi/include/licenses/mockups-external/LICENSE +21 -0
- casadi/include/licenses/mumps-external/LICENSE +87 -0
- casadi/include/licenses/mumps-external/MUMPS/LICENSE +50 -0
- casadi/include/licenses/openblas-external/LICENSE +29 -0
- casadi/include/licenses/openblas-external/ctest/LICENSE +23 -0
- casadi/include/licenses/openblas-external/lapack-netlib/LAPACKE/LICENSE +26 -0
- casadi/include/licenses/openblas-external/lapack-netlib/LICENSE +48 -0
- casadi/include/licenses/openblas-external/reference/LICENSE +23 -0
- casadi/include/licenses/openblas-external/relapack/LICENSE +22 -0
- casadi/include/licenses/openblas-external/test/LICENSE +23 -0
- casadi/include/licenses/osi-external/LICENSE +245 -0
- casadi/include/licenses/osi-external/Osi/LICENSE +239 -0
- casadi/include/licenses/osqp-external/LICENSE +201 -0
- casadi/include/licenses/osqp-external/lin_sys/direct/qdldl/amd/LICENSE +36 -0
- casadi/include/licenses/osqp-external/lin_sys/direct/qdldl/qdldl_sources/LICENSE +201 -0
- casadi/include/licenses/proxqp-external/LICENSE +25 -0
- casadi/include/licenses/proxqp-external/bindings/python/external/pybind11/LICENSE +29 -0
- casadi/include/licenses/proxqp-external/cmake-module/LICENSE +4 -0
- casadi/include/licenses/proxqp-external/cmake-module/doxygen/MathJax/LICENSE +202 -0
- casadi/include/licenses/proxqp-external/external/cereal/LICENSE +24 -0
- casadi/include/licenses/proxqp-external/external/cereal/include/cereal/external/LICENSE +21 -0
- casadi/include/licenses/proxqp-external/external/cereal/include/cereal/external/rapidjson/LICENSE +13 -0
- casadi/include/licenses/proxqp-external/external/cereal/include/cereal/external/rapidjson/msinttypes/LICENSE +29 -0
- casadi/include/licenses/qpOASES/LICENSE.txt +503 -0
- casadi/include/licenses/sleqp-external/LICENSE +165 -0
- casadi/include/licenses/superscs-external/LICENSE.txt +24 -0
- casadi/include/licenses/tinyxml2-9.0.0/LICENSE.txt +18 -0
- casadi/include/licenses/trlib-external/LICENSE +21 -0
- casadi/include/osqp/auxil.h +181 -0
- casadi/include/osqp/constants.h +128 -0
- casadi/include/osqp/cs.h +180 -0
- casadi/include/osqp/ctrlc.h +56 -0
- casadi/include/osqp/error.h +38 -0
- casadi/include/osqp/glob_opts.h +167 -0
- casadi/include/osqp/lin_alg.h +216 -0
- casadi/include/osqp/lin_sys.h +54 -0
- casadi/include/osqp/osqp.h +430 -0
- casadi/include/osqp/osqp_configure.h +49 -0
- casadi/include/osqp/polish.h +25 -0
- casadi/include/osqp/proj.h +37 -0
- casadi/include/osqp/scaling.h +44 -0
- casadi/include/osqp/types.h +326 -0
- casadi/include/osqp/util.h +222 -0
- casadi/include/osqp/version.h +9 -0
- casadi/include/proxsuite/config.hpp +68 -0
- casadi/include/proxsuite/deprecated.hpp +56 -0
- casadi/include/proxsuite/fwd.hpp +52 -0
- casadi/include/proxsuite/helpers/common.hpp +70 -0
- casadi/include/proxsuite/helpers/instruction-set.hpp +275 -0
- casadi/include/proxsuite/helpers/optional.hpp +46 -0
- casadi/include/proxsuite/helpers/tl-optional.hpp +2472 -0
- casadi/include/proxsuite/helpers/version.hpp +39 -0
- casadi/include/proxsuite/linalg/dense/core.hpp +863 -0
- casadi/include/proxsuite/linalg/dense/factorize.hpp +375 -0
- casadi/include/proxsuite/linalg/dense/ldlt.hpp +817 -0
- casadi/include/proxsuite/linalg/dense/modify.hpp +333 -0
- casadi/include/proxsuite/linalg/dense/solve.hpp +38 -0
- casadi/include/proxsuite/linalg/dense/update.hpp +330 -0
- casadi/include/proxsuite/linalg/sparse/core.hpp +531 -0
- casadi/include/proxsuite/linalg/sparse/factorize.hpp +1303 -0
- casadi/include/proxsuite/linalg/sparse/rowmod.hpp +443 -0
- casadi/include/proxsuite/linalg/sparse/update.hpp +348 -0
- casadi/include/proxsuite/linalg/veg/internal/assert_impl.hpp +20 -0
- casadi/include/proxsuite/linalg/veg/internal/collection_algo.hpp +93 -0
- casadi/include/proxsuite/linalg/veg/internal/dbg.hpp +15 -0
- casadi/include/proxsuite/linalg/veg/internal/delete_special_members.hpp +77 -0
- casadi/include/proxsuite/linalg/veg/internal/dyn_index.hpp +292 -0
- casadi/include/proxsuite/linalg/veg/internal/epilogue.hpp +31 -0
- casadi/include/proxsuite/linalg/veg/internal/external/hedley.ext.hpp +2074 -0
- casadi/include/proxsuite/linalg/veg/internal/external/unhedley.ext.hpp +148 -0
- casadi/include/proxsuite/linalg/veg/internal/fix_index.hpp +339 -0
- casadi/include/proxsuite/linalg/veg/internal/has_asan.hpp +17 -0
- casadi/include/proxsuite/linalg/veg/internal/integer_seq.hpp +248 -0
- casadi/include/proxsuite/linalg/veg/internal/macros.hpp +1312 -0
- casadi/include/proxsuite/linalg/veg/internal/narrow.hpp +46 -0
- casadi/include/proxsuite/linalg/veg/internal/preprocessor.hpp +434 -0
- casadi/include/proxsuite/linalg/veg/internal/prologue.hpp +157 -0
- casadi/include/proxsuite/linalg/veg/internal/std.hpp +13 -0
- casadi/include/proxsuite/linalg/veg/internal/terminate.hpp +22 -0
- casadi/include/proxsuite/linalg/veg/internal/typedefs.hpp +58 -0
- casadi/include/proxsuite/linalg/veg/memory/address.hpp +97 -0
- casadi/include/proxsuite/linalg/veg/memory/alloc.hpp +352 -0
- casadi/include/proxsuite/linalg/veg/memory/dynamic_stack.hpp +504 -0
- casadi/include/proxsuite/linalg/veg/memory/placement.hpp +202 -0
- casadi/include/proxsuite/linalg/veg/memory/stack_alloc.hpp +239 -0
- casadi/include/proxsuite/linalg/veg/ref.hpp +148 -0
- casadi/include/proxsuite/linalg/veg/slice.hpp +240 -0
- casadi/include/proxsuite/linalg/veg/tuple.hpp +876 -0
- casadi/include/proxsuite/linalg/veg/type_traits/alloc.hpp +169 -0
- casadi/include/proxsuite/linalg/veg/type_traits/assignable.hpp +53 -0
- casadi/include/proxsuite/linalg/veg/type_traits/constructible.hpp +217 -0
- casadi/include/proxsuite/linalg/veg/type_traits/core.hpp +298 -0
- casadi/include/proxsuite/linalg/veg/type_traits/invocable.hpp +47 -0
- casadi/include/proxsuite/linalg/veg/type_traits/primitives.hpp +43 -0
- casadi/include/proxsuite/linalg/veg/type_traits/tags.hpp +47 -0
- casadi/include/proxsuite/linalg/veg/util/assert.hpp +48 -0
- casadi/include/proxsuite/linalg/veg/util/dbg.hpp +6 -0
- casadi/include/proxsuite/linalg/veg/util/defer.hpp +57 -0
- casadi/include/proxsuite/linalg/veg/util/dynstack_alloc.hpp +19 -0
- casadi/include/proxsuite/linalg/veg/util/get.hpp +153 -0
- casadi/include/proxsuite/linalg/veg/util/index.hpp +6 -0
- casadi/include/proxsuite/linalg/veg/util/unreachable.hpp +41 -0
- casadi/include/proxsuite/linalg/veg/vec.hpp +1034 -0
- casadi/include/proxsuite/proxqp/dense/dense.hpp +10 -0
- casadi/include/proxsuite/proxqp/dense/fwd.hpp +55 -0
- casadi/include/proxsuite/proxqp/dense/helpers.hpp +520 -0
- casadi/include/proxsuite/proxqp/dense/linesearch.hpp +517 -0
- casadi/include/proxsuite/proxqp/dense/model.hpp +147 -0
- casadi/include/proxsuite/proxqp/dense/preconditioner/identity.hpp +113 -0
- casadi/include/proxsuite/proxqp/dense/preconditioner/ruiz.hpp +571 -0
- casadi/include/proxsuite/proxqp/dense/solver.hpp +1330 -0
- casadi/include/proxsuite/proxqp/dense/utils.hpp +415 -0
- casadi/include/proxsuite/proxqp/dense/views.hpp +1466 -0
- casadi/include/proxsuite/proxqp/dense/workspace.hpp +264 -0
- casadi/include/proxsuite/proxqp/dense/wrapper.hpp +491 -0
- casadi/include/proxsuite/proxqp/results.hpp +212 -0
- casadi/include/proxsuite/proxqp/settings.hpp +302 -0
- casadi/include/proxsuite/proxqp/sparse/fwd.hpp +58 -0
- casadi/include/proxsuite/proxqp/sparse/helpers.hpp +309 -0
- casadi/include/proxsuite/proxqp/sparse/model.hpp +228 -0
- casadi/include/proxsuite/proxqp/sparse/preconditioner/identity.hpp +64 -0
- casadi/include/proxsuite/proxqp/sparse/preconditioner/ruiz.hpp +569 -0
- casadi/include/proxsuite/proxqp/sparse/solver.hpp +1441 -0
- casadi/include/proxsuite/proxqp/sparse/sparse.hpp +10 -0
- casadi/include/proxsuite/proxqp/sparse/utils.hpp +815 -0
- casadi/include/proxsuite/proxqp/sparse/views.hpp +63 -0
- casadi/include/proxsuite/proxqp/sparse/workspace.hpp +790 -0
- casadi/include/proxsuite/proxqp/sparse/wrapper.hpp +772 -0
- casadi/include/proxsuite/proxqp/status.hpp +46 -0
- casadi/include/proxsuite/proxqp/timings.hpp +101 -0
- casadi/include/proxsuite/proxqp/utils/prints.hpp +47 -0
- casadi/include/proxsuite/proxqp/utils/random_qp_problems.hpp +669 -0
- casadi/include/proxsuite/serialization/archive.hpp +231 -0
- casadi/include/proxsuite/serialization/eigen.hpp +107 -0
- casadi/include/proxsuite/serialization/model.hpp +34 -0
- casadi/include/proxsuite/serialization/results.hpp +74 -0
- casadi/include/proxsuite/serialization/settings.hpp +60 -0
- casadi/include/proxsuite/serialization/wrapper.hpp +24 -0
- casadi/include/proxsuite/warning.hpp +35 -0
- casadi/include/simde/arm/neon/aba.h +208 -0
- casadi/include/simde/arm/neon/abd.h +384 -0
- casadi/include/simde/arm/neon/abdl.h +147 -0
- casadi/include/simde/arm/neon/abs.h +408 -0
- casadi/include/simde/arm/neon/add.h +681 -0
- casadi/include/simde/arm/neon/addl.h +127 -0
- casadi/include/simde/arm/neon/addl_high.h +127 -0
- casadi/include/simde/arm/neon/addlv.h +317 -0
- casadi/include/simde/arm/neon/addv.h +447 -0
- casadi/include/simde/arm/neon/addw.h +222 -0
- casadi/include/simde/arm/neon/addw_high.h +193 -0
- casadi/include/simde/arm/neon/and.h +552 -0
- casadi/include/simde/arm/neon/bic.h +472 -0
- casadi/include/simde/arm/neon/bsl.h +448 -0
- casadi/include/simde/arm/neon/cagt.h +168 -0
- casadi/include/simde/arm/neon/ceq.h +711 -0
- casadi/include/simde/arm/neon/ceqz.h +335 -0
- casadi/include/simde/arm/neon/cge.h +677 -0
- casadi/include/simde/arm/neon/cgez.h +378 -0
- casadi/include/simde/arm/neon/cgt.h +686 -0
- casadi/include/simde/arm/neon/cgtz.h +380 -0
- casadi/include/simde/arm/neon/cle.h +677 -0
- casadi/include/simde/arm/neon/clez.h +378 -0
- casadi/include/simde/arm/neon/cls.h +148 -0
- casadi/include/simde/arm/neon/clt.h +679 -0
- casadi/include/simde/arm/neon/cltz.h +263 -0
- casadi/include/simde/arm/neon/clz.h +423 -0
- casadi/include/simde/arm/neon/cnt.h +145 -0
- casadi/include/simde/arm/neon/combine.h +343 -0
- casadi/include/simde/arm/neon/create.h +186 -0
- casadi/include/simde/arm/neon/cvt.h +492 -0
- casadi/include/simde/arm/neon/dot.h +171 -0
- casadi/include/simde/arm/neon/dot_lane.h +196 -0
- casadi/include/simde/arm/neon/dup_lane.h +702 -0
- casadi/include/simde/arm/neon/dup_n.h +534 -0
- casadi/include/simde/arm/neon/eor.h +552 -0
- casadi/include/simde/arm/neon/ext.h +887 -0
- casadi/include/simde/arm/neon/get_high.h +260 -0
- casadi/include/simde/arm/neon/get_lane.h +499 -0
- casadi/include/simde/arm/neon/get_low.h +276 -0
- casadi/include/simde/arm/neon/hadd.h +287 -0
- casadi/include/simde/arm/neon/hsub.h +287 -0
- casadi/include/simde/arm/neon/ld1.h +399 -0
- casadi/include/simde/arm/neon/ld3.h +609 -0
- casadi/include/simde/arm/neon/ld4.h +448 -0
- casadi/include/simde/arm/neon/max.h +614 -0
- casadi/include/simde/arm/neon/maxnm.h +215 -0
- casadi/include/simde/arm/neon/maxv.h +400 -0
- casadi/include/simde/arm/neon/min.h +660 -0
- casadi/include/simde/arm/neon/minnm.h +215 -0
- casadi/include/simde/arm/neon/minv.h +424 -0
- casadi/include/simde/arm/neon/mla.h +530 -0
- casadi/include/simde/arm/neon/mla_n.h +333 -0
- casadi/include/simde/arm/neon/mlal.h +156 -0
- casadi/include/simde/arm/neon/mlal_high.h +156 -0
- casadi/include/simde/arm/neon/mlal_n.h +128 -0
- casadi/include/simde/arm/neon/mls.h +264 -0
- casadi/include/simde/arm/neon/mlsl.h +124 -0
- casadi/include/simde/arm/neon/mlsl_high.h +124 -0
- casadi/include/simde/arm/neon/mlsl_n.h +96 -0
- casadi/include/simde/arm/neon/movl.h +208 -0
- casadi/include/simde/arm/neon/movl_high.h +126 -0
- casadi/include/simde/arm/neon/movn.h +195 -0
- casadi/include/simde/arm/neon/movn_high.h +125 -0
- casadi/include/simde/arm/neon/mul.h +594 -0
- casadi/include/simde/arm/neon/mul_lane.h +472 -0
- casadi/include/simde/arm/neon/mul_n.h +383 -0
- casadi/include/simde/arm/neon/mull.h +236 -0
- casadi/include/simde/arm/neon/mull_high.h +125 -0
- casadi/include/simde/arm/neon/mull_n.h +158 -0
- casadi/include/simde/arm/neon/mvn.h +426 -0
- casadi/include/simde/arm/neon/neg.h +393 -0
- casadi/include/simde/arm/neon/orn.h +505 -0
- casadi/include/simde/arm/neon/orr.h +552 -0
- casadi/include/simde/arm/neon/padal.h +211 -0
- casadi/include/simde/arm/neon/padd.h +293 -0
- casadi/include/simde/arm/neon/paddl.h +239 -0
- casadi/include/simde/arm/neon/pmax.h +253 -0
- casadi/include/simde/arm/neon/pmin.h +260 -0
- casadi/include/simde/arm/neon/qabs.h +281 -0
- casadi/include/simde/arm/neon/qadd.h +553 -0
- casadi/include/simde/arm/neon/qdmulh.h +125 -0
- casadi/include/simde/arm/neon/qdmull.h +125 -0
- casadi/include/simde/arm/neon/qmovn.h +273 -0
- casadi/include/simde/arm/neon/qmovn_high.h +127 -0
- casadi/include/simde/arm/neon/qmovun.h +159 -0
- casadi/include/simde/arm/neon/qneg.h +301 -0
- casadi/include/simde/arm/neon/qrdmulh.h +165 -0
- casadi/include/simde/arm/neon/qrdmulh_n.h +136 -0
- casadi/include/simde/arm/neon/qshl.h +732 -0
- casadi/include/simde/arm/neon/qsub.h +549 -0
- casadi/include/simde/arm/neon/qtbl.h +455 -0
- casadi/include/simde/arm/neon/qtbx.h +470 -0
- casadi/include/simde/arm/neon/rbit.h +165 -0
- casadi/include/simde/arm/neon/reinterpret.h +3101 -0
- casadi/include/simde/arm/neon/rev16.h +137 -0
- casadi/include/simde/arm/neon/rev32.h +235 -0
- casadi/include/simde/arm/neon/rev64.h +358 -0
- casadi/include/simde/arm/neon/rhadd.h +406 -0
- casadi/include/simde/arm/neon/rnd.h +143 -0
- casadi/include/simde/arm/neon/rndi.h +135 -0
- casadi/include/simde/arm/neon/rndm.h +143 -0
- casadi/include/simde/arm/neon/rndn.h +135 -0
- casadi/include/simde/arm/neon/rndp.h +143 -0
- casadi/include/simde/arm/neon/rshl.h +903 -0
- casadi/include/simde/arm/neon/rshr_n.h +471 -0
- casadi/include/simde/arm/neon/rsra_n.h +209 -0
- casadi/include/simde/arm/neon/set_lane.h +422 -0
- casadi/include/simde/arm/neon/shl.h +805 -0
- casadi/include/simde/arm/neon/shl_n.h +560 -0
- casadi/include/simde/arm/neon/shr_n.h +612 -0
- casadi/include/simde/arm/neon/sra_n.h +202 -0
- casadi/include/simde/arm/neon/st1.h +353 -0
- casadi/include/simde/arm/neon/st1_lane.h +363 -0
- casadi/include/simde/arm/neon/st3.h +426 -0
- casadi/include/simde/arm/neon/st4.h +445 -0
- casadi/include/simde/arm/neon/sub.h +659 -0
- casadi/include/simde/arm/neon/subl.h +127 -0
- casadi/include/simde/arm/neon/subw.h +221 -0
- casadi/include/simde/arm/neon/subw_high.h +222 -0
- casadi/include/simde/arm/neon/tbl.h +224 -0
- casadi/include/simde/arm/neon/tbx.h +247 -0
- casadi/include/simde/arm/neon/trn.h +252 -0
- casadi/include/simde/arm/neon/trn1.h +500 -0
- casadi/include/simde/arm/neon/trn2.h +499 -0
- casadi/include/simde/arm/neon/tst.h +540 -0
- casadi/include/simde/arm/neon/types.h +683 -0
- casadi/include/simde/arm/neon/uqadd.h +325 -0
- casadi/include/simde/arm/neon/uzp.h +252 -0
- casadi/include/simde/arm/neon/uzp1.h +643 -0
- casadi/include/simde/arm/neon/uzp2.h +647 -0
- casadi/include/simde/arm/neon/zip.h +252 -0
- casadi/include/simde/arm/neon/zip1.h +625 -0
- casadi/include/simde/arm/neon/zip2.h +625 -0
- casadi/include/simde/arm/neon.h +166 -0
- casadi/include/simde/check.h +276 -0
- casadi/include/simde/debug-trap.h +85 -0
- casadi/include/simde/hedley.h +1971 -0
- casadi/include/simde/simde-align.h +449 -0
- casadi/include/simde/simde-arch.h +532 -0
- casadi/include/simde/simde-common.h +890 -0
- casadi/include/simde/simde-complex.h +148 -0
- casadi/include/simde/simde-constify.h +397 -0
- casadi/include/simde/simde-detect-clang.h +109 -0
- casadi/include/simde/simde-diagnostic.h +428 -0
- casadi/include/simde/simde-features.h +522 -0
- casadi/include/simde/simde-math.h +1805 -0
- casadi/include/simde/x86/avx.h +6193 -0
- casadi/include/simde/x86/avx2.h +5660 -0
- casadi/include/simde/x86/avx512/2intersect.h +250 -0
- casadi/include/simde/x86/avx512/abs.h +562 -0
- casadi/include/simde/x86/avx512/add.h +641 -0
- casadi/include/simde/x86/avx512/adds.h +390 -0
- casadi/include/simde/x86/avx512/and.h +305 -0
- casadi/include/simde/x86/avx512/andnot.h +193 -0
- casadi/include/simde/x86/avx512/avg.h +258 -0
- casadi/include/simde/x86/avx512/blend.h +293 -0
- casadi/include/simde/x86/avx512/broadcast.h +897 -0
- casadi/include/simde/x86/avx512/cast.h +324 -0
- casadi/include/simde/x86/avx512/cmp.h +587 -0
- casadi/include/simde/x86/avx512/cmpeq.h +179 -0
- casadi/include/simde/x86/avx512/cmpge.h +104 -0
- casadi/include/simde/x86/avx512/cmpgt.h +189 -0
- casadi/include/simde/x86/avx512/cmple.h +103 -0
- casadi/include/simde/x86/avx512/cmplt.h +123 -0
- casadi/include/simde/x86/avx512/copysign.h +86 -0
- casadi/include/simde/x86/avx512/cvt.h +122 -0
- casadi/include/simde/x86/avx512/cvts.h +723 -0
- casadi/include/simde/x86/avx512/div.h +162 -0
- casadi/include/simde/x86/avx512/extract.h +198 -0
- casadi/include/simde/x86/avx512/fmadd.h +136 -0
- casadi/include/simde/x86/avx512/fmsub.h +108 -0
- casadi/include/simde/x86/avx512/fnmadd.h +108 -0
- casadi/include/simde/x86/avx512/fnmsub.h +108 -0
- casadi/include/simde/x86/avx512/insert.h +193 -0
- casadi/include/simde/x86/avx512/kshift.h +152 -0
- casadi/include/simde/x86/avx512/load.h +67 -0
- casadi/include/simde/x86/avx512/loadu.h +113 -0
- casadi/include/simde/x86/avx512/lzcnt.h +209 -0
- casadi/include/simde/x86/avx512/madd.h +155 -0
- casadi/include/simde/x86/avx512/maddubs.h +159 -0
- casadi/include/simde/x86/avx512/max.h +587 -0
- casadi/include/simde/x86/avx512/min.h +587 -0
- casadi/include/simde/x86/avx512/mov.h +859 -0
- casadi/include/simde/x86/avx512/mov_mask.h +372 -0
- casadi/include/simde/x86/avx512/movm.h +460 -0
- casadi/include/simde/x86/avx512/mul.h +279 -0
- casadi/include/simde/x86/avx512/mulhi.h +65 -0
- casadi/include/simde/x86/avx512/mulhrs.h +65 -0
- casadi/include/simde/x86/avx512/mullo.h +117 -0
- casadi/include/simde/x86/avx512/negate.h +88 -0
- casadi/include/simde/x86/avx512/or.h +252 -0
- casadi/include/simde/x86/avx512/packs.h +122 -0
- casadi/include/simde/x86/avx512/packus.h +122 -0
- casadi/include/simde/x86/avx512/permutex2var.h +1645 -0
- casadi/include/simde/x86/avx512/permutexvar.h +1180 -0
- casadi/include/simde/x86/avx512/sad.h +77 -0
- casadi/include/simde/x86/avx512/set.h +477 -0
- casadi/include/simde/x86/avx512/set1.h +331 -0
- casadi/include/simde/x86/avx512/set4.h +140 -0
- casadi/include/simde/x86/avx512/setone.h +66 -0
- casadi/include/simde/x86/avx512/setr.h +144 -0
- casadi/include/simde/x86/avx512/setr4.h +140 -0
- casadi/include/simde/x86/avx512/setzero.h +90 -0
- casadi/include/simde/x86/avx512/shuffle.h +176 -0
- casadi/include/simde/x86/avx512/sll.h +247 -0
- casadi/include/simde/x86/avx512/slli.h +179 -0
- casadi/include/simde/x86/avx512/sllv.h +68 -0
- casadi/include/simde/x86/avx512/sqrt.h +127 -0
- casadi/include/simde/x86/avx512/sra.h +81 -0
- casadi/include/simde/x86/avx512/srai.h +70 -0
- casadi/include/simde/x86/avx512/srav.h +67 -0
- casadi/include/simde/x86/avx512/srl.h +216 -0
- casadi/include/simde/x86/avx512/srli.h +180 -0
- casadi/include/simde/x86/avx512/srlv.h +282 -0
- casadi/include/simde/x86/avx512/store.h +93 -0
- casadi/include/simde/x86/avx512/storeu.h +93 -0
- casadi/include/simde/x86/avx512/sub.h +351 -0
- casadi/include/simde/x86/avx512/subs.h +222 -0
- casadi/include/simde/x86/avx512/test.h +193 -0
- casadi/include/simde/x86/avx512/types.h +380 -0
- casadi/include/simde/x86/avx512/unpackhi.h +380 -0
- casadi/include/simde/x86/avx512/unpacklo.h +104 -0
- casadi/include/simde/x86/avx512/xor.h +263 -0
- casadi/include/simde/x86/avx512/xorsign.h +72 -0
- casadi/include/simde/x86/avx512.h +108 -0
- casadi/include/simde/x86/clmul.h +414 -0
- casadi/include/simde/x86/fma.h +724 -0
- casadi/include/simde/x86/gfni.h +802 -0
- casadi/include/simde/x86/mmx.h +2399 -0
- casadi/include/simde/x86/sse.h +4471 -0
- casadi/include/simde/x86/sse2.h +7389 -0
- casadi/include/simde/x86/sse3.h +499 -0
- casadi/include/simde/x86/sse4.1.h +2216 -0
- casadi/include/simde/x86/sse4.2.h +347 -0
- casadi/include/simde/x86/ssse3.h +1032 -0
- casadi/include/simde/x86/svml.h +12139 -0
- casadi/include/simde/x86/xop.h +3644 -0
- casadi/include/superscs/cones.h +185 -0
- casadi/include/superscs/constants.h +144 -0
- casadi/include/superscs/cs.h +109 -0
- casadi/include/superscs/ctrlc.h +77 -0
- casadi/include/superscs/directions.h +125 -0
- casadi/include/superscs/glbopts.h +240 -0
- casadi/include/superscs/linAlg.h +437 -0
- casadi/include/superscs/linSys.h +205 -0
- casadi/include/superscs/linsys/amatrix.h +77 -0
- casadi/include/superscs/linsys/common.h +49 -0
- casadi/include/superscs/normalize.h +138 -0
- casadi/include/superscs/scs.h +656 -0
- casadi/include/superscs/scs_blas.h +79 -0
- casadi/include/superscs/scs_parser.h +187 -0
- casadi/include/superscs/unit_test_util.h +210 -0
- casadi/include/superscs/util.h +354 -0
- casadi/include/trlib/trlib_eigen_inverse.h +118 -0
- casadi/include/trlib/trlib_krylov.h +493 -0
- casadi/include/trlib/trlib_leftmost.h +181 -0
- casadi/include/trlib/trlib_private.h +109 -0
- casadi/include/trlib/trlib_quadratic_zero.h +57 -0
- casadi/include/trlib/trlib_tri_factor.h +409 -0
- casadi/include/trlib/trlib_types.h +36 -0
- casadi/libCbc.la +35 -0
- casadi/libCbc.so +0 -0
- casadi/libCbc.so.3 +0 -0
- casadi/libCbc.so.3.10.11 +0 -0
- casadi/libCbcSolver.la +35 -0
- casadi/libCbcSolver.so +0 -0
- casadi/libCbcSolver.so.3 +0 -0
- casadi/libCbcSolver.so.3.10.11 +0 -0
- casadi/libCgl.la +35 -0
- casadi/libCgl.so +0 -0
- casadi/libCgl.so.1 +0 -0
- casadi/libCgl.so.1.10.8 +0 -0
- casadi/libClp.la +35 -0
- casadi/libClp.so +0 -0
- casadi/libClp.so.1 +0 -0
- casadi/libClp.so.1.14.9 +0 -0
- casadi/libClpSolver.la +35 -0
- casadi/libClpSolver.so +0 -0
- casadi/libClpSolver.so.1 +0 -0
- casadi/libClpSolver.so.1.14.9 +0 -0
- casadi/libCoinUtils.la +35 -0
- casadi/libCoinUtils.so +0 -0
- casadi/libCoinUtils.so.3 +0 -0
- casadi/libCoinUtils.so.3.11.10 +0 -0
- casadi/libOsi.la +35 -0
- casadi/libOsi.so +0 -0
- casadi/libOsi.so.1 +0 -0
- casadi/libOsi.so.1.13.9 +0 -0
- casadi/libOsiCbc.la +35 -0
- casadi/libOsiCbc.so +0 -0
- casadi/libOsiCbc.so.3 +0 -0
- casadi/libOsiCbc.so.3.10.11 +0 -0
- casadi/libOsiClp.la +35 -0
- casadi/libOsiClp.so +0 -0
- casadi/libOsiClp.so.1 +0 -0
- casadi/libOsiClp.so.1.14.9 +0 -0
- casadi/libOsiCommonTests.la +35 -0
- casadi/libOsiCommonTests.so +0 -0
- casadi/libOsiCommonTests.so.1 +0 -0
- casadi/libOsiCommonTests.so.1.13.9 +0 -0
- casadi/libalpaqa-dl-loader.so +0 -0
- casadi/libalpaqa-dl-loader.so.1.0.0 +0 -0
- casadi/libalpaqa.so +0 -0
- casadi/libalpaqa.so.1.0.0 +0 -0
- casadi/libbonmin.la +35 -0
- casadi/libbonmin.so +0 -0
- casadi/libbonmin.so.4 +0 -0
- casadi/libbonmin.so.4.8.9 +0 -0
- casadi/libcasadi-tp-openblas.so +0 -0
- casadi/libcasadi-tp-openblas.so.0 +0 -0
- casadi/libcasadi-tp-openblas.so.0.3 +0 -0
- casadi/libcasadi.so +0 -0
- casadi/libcasadi.so.3.7 +0 -0
- casadi/libcasadi_archiver_libzip.so +0 -0
- casadi/libcasadi_archiver_libzip.so.3.7 +0 -0
- casadi/libcasadi_conic_cbc.so +0 -0
- casadi/libcasadi_conic_cbc.so.3.7 +0 -0
- casadi/libcasadi_conic_clp.so +0 -0
- casadi/libcasadi_conic_clp.so.3.7 +0 -0
- casadi/libcasadi_conic_daqp.so +0 -0
- casadi/libcasadi_conic_daqp.so.3.7 +0 -0
- casadi/libcasadi_conic_gurobi.so +0 -0
- casadi/libcasadi_conic_gurobi.so.3.7 +0 -0
- casadi/libcasadi_conic_highs.so +0 -0
- casadi/libcasadi_conic_highs.so.3.7 +0 -0
- casadi/libcasadi_conic_ipqp.so +0 -0
- casadi/libcasadi_conic_ipqp.so.3.7 +0 -0
- casadi/libcasadi_conic_nlpsol.so +0 -0
- casadi/libcasadi_conic_nlpsol.so.3.7 +0 -0
- casadi/libcasadi_conic_osqp.so +0 -0
- casadi/libcasadi_conic_osqp.so.3.7 +0 -0
- casadi/libcasadi_conic_proxqp.so +0 -0
- casadi/libcasadi_conic_proxqp.so.3.7 +0 -0
- casadi/libcasadi_conic_qpoases.so +0 -0
- casadi/libcasadi_conic_qpoases.so.3.7 +0 -0
- casadi/libcasadi_conic_qrqp.so +0 -0
- casadi/libcasadi_conic_qrqp.so.3.7 +0 -0
- casadi/libcasadi_conic_superscs.so +0 -0
- casadi/libcasadi_conic_superscs.so.3.7 +0 -0
- casadi/libcasadi_filesystem_ghc.so +0 -0
- casadi/libcasadi_filesystem_ghc.so.3.7 +0 -0
- casadi/libcasadi_importer_shell.so +0 -0
- casadi/libcasadi_importer_shell.so.3.7 +0 -0
- casadi/libcasadi_integrator_collocation.so +0 -0
- casadi/libcasadi_integrator_collocation.so.3.7 +0 -0
- casadi/libcasadi_integrator_cvodes.so +0 -0
- casadi/libcasadi_integrator_cvodes.so.3.7 +0 -0
- casadi/libcasadi_integrator_idas.so +0 -0
- casadi/libcasadi_integrator_idas.so.3.7 +0 -0
- casadi/libcasadi_integrator_rk.so +0 -0
- casadi/libcasadi_integrator_rk.so.3.7 +0 -0
- casadi/libcasadi_interpolant_bspline.so +0 -0
- casadi/libcasadi_interpolant_bspline.so.3.7 +0 -0
- casadi/libcasadi_interpolant_linear.so +0 -0
- casadi/libcasadi_interpolant_linear.so.3.7 +0 -0
- casadi/libcasadi_linsol_csparse.so +0 -0
- casadi/libcasadi_linsol_csparse.so.3.7 +0 -0
- casadi/libcasadi_linsol_csparsecholesky.so +0 -0
- casadi/libcasadi_linsol_csparsecholesky.so.3.7 +0 -0
- casadi/libcasadi_linsol_lapacklu.so +0 -0
- casadi/libcasadi_linsol_lapacklu.so.3.7 +0 -0
- casadi/libcasadi_linsol_lapackqr.so +0 -0
- casadi/libcasadi_linsol_lapackqr.so.3.7 +0 -0
- casadi/libcasadi_linsol_ldl.so +0 -0
- casadi/libcasadi_linsol_ldl.so.3.7 +0 -0
- casadi/libcasadi_linsol_lsqr.so +0 -0
- casadi/libcasadi_linsol_lsqr.so.3.7 +0 -0
- casadi/libcasadi_linsol_ma27.so +0 -0
- casadi/libcasadi_linsol_ma27.so.3.7 +0 -0
- casadi/libcasadi_linsol_mumps.so +0 -0
- casadi/libcasadi_linsol_mumps.so.3.7 +0 -0
- casadi/libcasadi_linsol_qr.so +0 -0
- casadi/libcasadi_linsol_qr.so.3.7 +0 -0
- casadi/libcasadi_linsol_symbolicqr.so +0 -0
- casadi/libcasadi_linsol_symbolicqr.so.3.7 +0 -0
- casadi/libcasadi_linsol_tridiag.so +0 -0
- casadi/libcasadi_linsol_tridiag.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_alpaqa.so +0 -0
- casadi/libcasadi_nlpsol_alpaqa.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_ampl.so +0 -0
- casadi/libcasadi_nlpsol_ampl.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_blocksqp.so +0 -0
- casadi/libcasadi_nlpsol_blocksqp.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_bonmin.so +0 -0
- casadi/libcasadi_nlpsol_bonmin.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_feasiblesqpmethod.so +0 -0
- casadi/libcasadi_nlpsol_feasiblesqpmethod.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_ipopt.so +0 -0
- casadi/libcasadi_nlpsol_ipopt.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_knitro.so +0 -0
- casadi/libcasadi_nlpsol_knitro.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_madnlp.so +0 -0
- casadi/libcasadi_nlpsol_madnlp.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_qrsqp.so +0 -0
- casadi/libcasadi_nlpsol_qrsqp.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_scpgen.so +0 -0
- casadi/libcasadi_nlpsol_scpgen.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_sleqp.so +0 -0
- casadi/libcasadi_nlpsol_sleqp.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_snopt.so +0 -0
- casadi/libcasadi_nlpsol_snopt.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_sqpmethod.so +0 -0
- casadi/libcasadi_nlpsol_sqpmethod.so.3.7 +0 -0
- casadi/libcasadi_nlpsol_worhp.so +0 -0
- casadi/libcasadi_nlpsol_worhp.so.3.7 +0 -0
- casadi/libcasadi_rootfinder_fast_newton.so +0 -0
- casadi/libcasadi_rootfinder_fast_newton.so.3.7 +0 -0
- casadi/libcasadi_rootfinder_kinsol.so +0 -0
- casadi/libcasadi_rootfinder_kinsol.so.3.7 +0 -0
- casadi/libcasadi_rootfinder_newton.so +0 -0
- casadi/libcasadi_rootfinder_newton.so.3.7 +0 -0
- casadi/libcasadi_rootfinder_nlpsol.so +0 -0
- casadi/libcasadi_rootfinder_nlpsol.so.3.7 +0 -0
- casadi/libcasadi_sundials_common.so +0 -0
- casadi/libcasadi_sundials_common.so.3.7 +0 -0
- casadi/libcasadi_xmlfile_tinyxml.so +0 -0
- casadi/libcasadi_xmlfile_tinyxml.so.3.7 +0 -0
- casadi/libcoinmetis.la +41 -0
- casadi/libcoinmetis.so +0 -0
- casadi/libcoinmetis.so.2 +0 -0
- casadi/libcoinmetis.so.2.0.0 +0 -0
- casadi/libcoinmumps.la +41 -0
- casadi/libcoinmumps.so +0 -0
- casadi/libcoinmumps.so.3 +0 -0
- casadi/libcoinmumps.so.3.0.1 +0 -0
- casadi/libdaqp.so +0 -0
- casadi/libdaqpstat.a +0 -0
- casadi/libgfortran-a8535147.so.5.0.0 +0 -0
- casadi/libgurobi_adaptor.so +0 -0
- casadi/libhighs.so +0 -0
- casadi/libhighs.so.1 +0 -0
- casadi/libhighs.so.1.10.0 +0 -0
- casadi/libindirect.a +0 -0
- casadi/libipopt.la +41 -0
- casadi/libipopt.so +0 -0
- casadi/libipopt.so.3 +0 -0
- casadi/libipopt.so.3.14.11 +0 -0
- casadi/liblinsys.a +0 -0
- casadi/libmatlab_ipc.so +0 -0
- casadi/libosqp.a +0 -0
- casadi/libosqp.so +0 -0
- casadi/libqdldl.a +0 -0
- casadi/libqdldl.so +0 -0
- casadi/libquadmath-e2ac3af2.so.0.0.0 +0 -0
- casadi/libsipopt.la +41 -0
- casadi/libsipopt.so +0 -0
- casadi/libsipopt.so.3 +0 -0
- casadi/libsipopt.so.3.14.11 +0 -0
- casadi/libsleqp.so +0 -0
- casadi/libsleqp.so.1.0.1 +0 -0
- casadi/libspral.a +0 -0
- casadi/libsuperscs.a +0 -0
- casadi/libtrlib.so +0 -0
- casadi/libtrlib.so.0.4 +0 -0
- casadi/libz.a +0 -0
- casadi/libz.so +0 -0
- casadi/libz.so.1 +0 -0
- casadi/libz.so.1.3.1 +0 -0
- casadi/libzip.a +0 -0
- casadi/pkgconfig/blas.pc +11 -0
- casadi/pkgconfig/bonmin.pc +12 -0
- casadi/pkgconfig/casadi.pc +12 -0
- casadi/pkgconfig/cbc.pc +12 -0
- casadi/pkgconfig/cgl.pc +12 -0
- casadi/pkgconfig/clp.pc +12 -0
- casadi/pkgconfig/coinmetis.pc +13 -0
- casadi/pkgconfig/coinmumps.pc +15 -0
- casadi/pkgconfig/coinutils.pc +12 -0
- casadi/pkgconfig/highs.pc +12 -0
- casadi/pkgconfig/ipopt.pc +15 -0
- casadi/pkgconfig/lapack.pc +11 -0
- casadi/pkgconfig/libzip.pc +14 -0
- casadi/pkgconfig/openblas.pc +11 -0
- casadi/pkgconfig/osi-cbc.pc +12 -0
- casadi/pkgconfig/osi-clp.pc +12 -0
- casadi/pkgconfig/osi-unittests.pc +12 -0
- casadi/pkgconfig/osi.pc +12 -0
- casadi/pkgconfig/proxsuite.pc +22 -0
- casadi/pkgconfig/sleqp.pc +10 -0
- casadi/tools/__init__.py +54 -0
- casadi/tools/bounds.py +107 -0
- casadi/tools/graph/__init__.py +35 -0
- casadi/tools/graph/graph.py +747 -0
- casadi/tools/in_out.py +89 -0
- casadi/tools/structure3.py +1441 -0
- casadi-3.7.2.dist-info/METADATA +45 -0
- casadi-3.7.2.dist-info/RECORD +1726 -0
- casadi-3.7.2.dist-info/WHEEL +4 -0
- dummy.txt +1 -0
@@ -0,0 +1,1274 @@
|
|
1
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
2
|
+
/* */
|
3
|
+
/* This file is part of the HiGHS linear optimization suite */
|
4
|
+
/* */
|
5
|
+
/* Available as open-source under the MIT License */
|
6
|
+
/* */
|
7
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
8
|
+
#ifndef HIGHS_UTIL_HASH_H_
|
9
|
+
#define HIGHS_UTIL_HASH_H_
|
10
|
+
|
11
|
+
#include <array>
|
12
|
+
#include <cassert>
|
13
|
+
#include <cmath>
|
14
|
+
#include <cstddef>
|
15
|
+
#include <cstdint>
|
16
|
+
#include <cstring>
|
17
|
+
#include <functional>
|
18
|
+
#include <iterator>
|
19
|
+
#include <memory>
|
20
|
+
#include <type_traits>
|
21
|
+
#include <utility>
|
22
|
+
#include <vector>
|
23
|
+
|
24
|
+
#include "util/HighsInt.h"
|
25
|
+
|
26
|
+
#ifdef HIGHS_HAVE_BITSCAN_REVERSE
|
27
|
+
#include <intrin.h>
|
28
|
+
#pragma intrinsic(_BitScanReverse)
|
29
|
+
#ifdef _WIN64
|
30
|
+
#pragma intrinsic(_BitScanReverse64)
|
31
|
+
#pragma intrinsic(__popcnt64)
|
32
|
+
#else
|
33
|
+
#pragma intrinsic(__popcnt)
|
34
|
+
#endif
|
35
|
+
#endif
|
36
|
+
|
37
|
+
#if __GNUG__ && __GNUC__ < 5 && !defined(__clang__)
|
38
|
+
#define IS_TRIVIALLY_COPYABLE(T) __has_trivial_copy(T)
|
39
|
+
#else
|
40
|
+
#define IS_TRIVIALLY_COPYABLE(T) std::is_trivially_copyable<T>::value
|
41
|
+
#endif
|
42
|
+
|
43
|
+
template <typename T>
|
44
|
+
struct HighsHashable : std::integral_constant<bool, IS_TRIVIALLY_COPYABLE(T)> {
|
45
|
+
};
|
46
|
+
|
47
|
+
template <typename U, typename V>
|
48
|
+
struct HighsHashable<std::pair<U, V>>
|
49
|
+
: public std::integral_constant<bool, HighsHashable<U>::value &&
|
50
|
+
HighsHashable<V>::value> {};
|
51
|
+
|
52
|
+
template <typename U, typename V>
|
53
|
+
struct HighsHashable<std::tuple<U, V>> : public HighsHashable<std::pair<U, V>> {
|
54
|
+
};
|
55
|
+
template <typename U, typename V, typename W, typename... Args>
|
56
|
+
struct HighsHashable<std::tuple<U, V, W, Args...>>
|
57
|
+
: public std::integral_constant<
|
58
|
+
bool, HighsHashable<U>::value &&
|
59
|
+
HighsHashable<std::tuple<V, W, Args...>>::value> {};
|
60
|
+
|
61
|
+
struct HighsHashHelpers {
|
62
|
+
using u8 = std::uint8_t;
|
63
|
+
using i8 = std::int8_t;
|
64
|
+
|
65
|
+
using u16 = std::uint16_t;
|
66
|
+
using i16 = std::int16_t;
|
67
|
+
|
68
|
+
using u32 = std::uint32_t;
|
69
|
+
using i32 = std::int32_t;
|
70
|
+
|
71
|
+
using u64 = std::uint64_t;
|
72
|
+
using i64 = std::uint64_t;
|
73
|
+
|
74
|
+
static constexpr u64 c[] = {
|
75
|
+
u64{0xc8497d2a400d9551}, u64{0x80c8963be3e4c2f3}, u64{0x042d8680e260ae5b},
|
76
|
+
u64{0x8a183895eeac1536}, u64{0xa94e9c75f80ad6de}, u64{0x7e92251dec62835e},
|
77
|
+
u64{0x07294165cb671455}, u64{0x89b0f6212b0a4292}, u64{0x31900011b96bf554},
|
78
|
+
u64{0xa44540f8eee2094f}, u64{0xce7ffd372e4c64fc}, u64{0x51c9d471bfe6a10f},
|
79
|
+
u64{0x758c2a674483826f}, u64{0xf91a20abe63f8b02}, u64{0xc2a069024a1fcc6f},
|
80
|
+
u64{0xd5bb18b70c5dbd59}, u64{0xd510adac6d1ae289}, u64{0x571d069b23050a79},
|
81
|
+
u64{0x60873b8872933e06}, u64{0x780481cc19670350}, u64{0x7a48551760216885},
|
82
|
+
u64{0xb5d68b918231e6ca}, u64{0xa7e5571699aa5274}, u64{0x7b6d309b2cfdcf01},
|
83
|
+
u64{0x04e77c3d474daeff}, u64{0x4dbf099fd7247031}, u64{0x5d70dca901130beb},
|
84
|
+
u64{0x9f8b5f0df4182499}, u64{0x293a74c9686092da}, u64{0xd09bdab6840f52b3},
|
85
|
+
u64{0xc05d47f3ab302263}, u64{0x6b79e62b884b65d6}, u64{0xa581106fc980c34d},
|
86
|
+
u64{0xf081b7145ea2293e}, u64{0xfb27243dd7c3f5ad}, u64{0x5211bf8860ea667f},
|
87
|
+
u64{0x9455e65cb2385e7f}, u64{0x0dfaf6731b449b33}, u64{0x4ec98b3c6f5e68c7},
|
88
|
+
u64{0x007bfd4a42ae936b}, u64{0x65c93061f8674518}, u64{0x640816f17127c5d1},
|
89
|
+
u64{0x6dd4bab17b7c3a74}, u64{0x34d9268c256fa1ba}, u64{0x0b4d0c6b5b50d7f4},
|
90
|
+
u64{0x30aa965bc9fadaff}, u64{0xc0ac1d0c2771404d}, u64{0xc5e64509abb76ef2},
|
91
|
+
u64{0xd606b11990624a36}, u64{0x0d3f05d242ce2fb7}, u64{0x469a803cb276fe32},
|
92
|
+
u64{0xa4a44d177a3e23f4}, u64{0xb9d9a120dcc1ca03}, u64{0x2e15af8165234a2e},
|
93
|
+
u64{0x10609ba2720573d4}, u64{0xaa4191b60368d1d5}, u64{0x333dd2300bc57762},
|
94
|
+
u64{0xdf6ec48f79fb402f}, u64{0x5ed20fcef1b734fa}, u64{0x4c94924ec8be21ee},
|
95
|
+
u64{0x5abe6ad9d131e631}, u64{0xbe10136a522e602d}, u64{0x53671115c340e779},
|
96
|
+
u64{0x9f392fe43e2144da}};
|
97
|
+
|
98
|
+
/// mersenne prime 2^61 - 1
|
99
|
+
static constexpr u64 M61() { return u64{0x1fffffffffffffff}; };
|
100
|
+
|
101
|
+
#ifdef HIGHS_HAVE_BUILTIN_CLZ
|
102
|
+
static int log2i(uint64_t n) { return 63 - __builtin_clzll(n); }
|
103
|
+
|
104
|
+
static int log2i(uint32_t n) { return 31 - __builtin_clz(n); }
|
105
|
+
|
106
|
+
static int popcnt(uint64_t x) { return __builtin_popcountll(x); }
|
107
|
+
|
108
|
+
#elif defined(HIGHS_HAVE_BITSCAN_REVERSE)
|
109
|
+
static int log2i(uint64_t n) {
|
110
|
+
unsigned long result;
|
111
|
+
#ifdef _WIN64
|
112
|
+
_BitScanReverse64(&result, n);
|
113
|
+
#else
|
114
|
+
if (_BitScanReverse(&result, (n >> 32)))
|
115
|
+
result += 32;
|
116
|
+
else
|
117
|
+
_BitScanReverse(&result, (n & 0xffffffffu));
|
118
|
+
#endif
|
119
|
+
return static_cast<int>(result);
|
120
|
+
}
|
121
|
+
|
122
|
+
static int log2i(uint32_t n) {
|
123
|
+
unsigned long result;
|
124
|
+
_BitScanReverse(&result, static_cast<unsigned long>(n));
|
125
|
+
return static_cast<int>(result);
|
126
|
+
}
|
127
|
+
|
128
|
+
static int popcnt(uint64_t x) {
|
129
|
+
#ifdef _WIN64
|
130
|
+
return static_cast<int>(__popcnt64(x));
|
131
|
+
#else
|
132
|
+
return __popcnt(x & 0xffffffffu) + __popcnt(x >> 32);
|
133
|
+
#endif
|
134
|
+
}
|
135
|
+
#else
|
136
|
+
// integer log2 algorithm without floating point arithmetic. It uses an
|
137
|
+
// unrolled loop and requires few instructions that can be well optimized.
|
138
|
+
static int log2i(uint64_t n) {
|
139
|
+
int x = 0;
|
140
|
+
|
141
|
+
auto log2Iteration = [&](int p) {
|
142
|
+
if (n >= uint64_t{1} << p) {
|
143
|
+
x += p;
|
144
|
+
n >>= p;
|
145
|
+
}
|
146
|
+
};
|
147
|
+
|
148
|
+
log2Iteration(32);
|
149
|
+
log2Iteration(16);
|
150
|
+
log2Iteration(8);
|
151
|
+
log2Iteration(4);
|
152
|
+
log2Iteration(2);
|
153
|
+
log2Iteration(1);
|
154
|
+
|
155
|
+
return x;
|
156
|
+
}
|
157
|
+
|
158
|
+
static int log2i(uint32_t n) {
|
159
|
+
int x = 0;
|
160
|
+
|
161
|
+
auto log2Iteration = [&](int p) {
|
162
|
+
if (n >= 1u << p) {
|
163
|
+
x += p;
|
164
|
+
n >>= p;
|
165
|
+
}
|
166
|
+
};
|
167
|
+
|
168
|
+
log2Iteration(16);
|
169
|
+
log2Iteration(8);
|
170
|
+
log2Iteration(4);
|
171
|
+
log2Iteration(2);
|
172
|
+
log2Iteration(1);
|
173
|
+
|
174
|
+
return x;
|
175
|
+
}
|
176
|
+
|
177
|
+
static int popcnt(uint64_t x) {
|
178
|
+
constexpr uint64_t m1 = 0x5555555555555555ull;
|
179
|
+
constexpr uint64_t m2 = 0x3333333333333333ull;
|
180
|
+
constexpr uint64_t m4 = 0x0f0f0f0f0f0f0f0full;
|
181
|
+
constexpr uint64_t h01 = 0x0101010101010101ull;
|
182
|
+
|
183
|
+
x -= (x >> 1) & m1;
|
184
|
+
x = (x & m2) + ((x >> 2) & m2);
|
185
|
+
x = (x + (x >> 4)) & m4;
|
186
|
+
|
187
|
+
return (x * h01) >> 56;
|
188
|
+
}
|
189
|
+
|
190
|
+
#endif
|
191
|
+
|
192
|
+
/// compute a * b mod 2^61-1
|
193
|
+
static u64 multiply_modM61(u64 a, u64 b) {
|
194
|
+
u64 ahi = a >> 32;
|
195
|
+
u64 bhi = b >> 32;
|
196
|
+
u64 alo = a & 0xffffffffu;
|
197
|
+
u64 blo = b & 0xffffffffu;
|
198
|
+
|
199
|
+
// compute the different order terms with adicities 2^64, 2^32, 2^0
|
200
|
+
u64 term_64 = ahi * bhi;
|
201
|
+
u64 term_32 = ahi * blo + bhi * alo;
|
202
|
+
u64 term_0 = alo * blo;
|
203
|
+
|
204
|
+
// Partially reduce term_0 and term_32 modulo M61() individually to not deal
|
205
|
+
// with a possible carry bit (thanks @https://github.com/WTFHCN for catching
|
206
|
+
// the bug with this). We do not need to completely reduce by an additional
|
207
|
+
// check for the range of the resulting term as this is done in the end in
|
208
|
+
// any case and the reduced sizes do not cause troubles with the available
|
209
|
+
// 64 bits.
|
210
|
+
term_0 = (term_0 & M61()) + (term_0 >> 61);
|
211
|
+
term_0 += ((term_32 >> 29) + (term_32 << 32)) & M61();
|
212
|
+
|
213
|
+
// The lower 61 bits of term_0 are now the lower 61 bits of the result that
|
214
|
+
// we need. Now extract the upper 61 of the result so that we can compute
|
215
|
+
// the result of the multiplication modulo M61()
|
216
|
+
u64 ab61 = (term_64 << 3) | (term_0 >> 61);
|
217
|
+
|
218
|
+
// finally take the result modulo M61 which is computed by exploiting
|
219
|
+
// that M61 is a mersenne prime, particularly, if a * b = q * 2^61 + r
|
220
|
+
// then a * b = (q + r) (mod 2^61 - 1)
|
221
|
+
u64 result = (term_0 & M61()) + ab61;
|
222
|
+
if (result >= M61()) result -= M61();
|
223
|
+
return result;
|
224
|
+
}
|
225
|
+
|
226
|
+
static u64 modexp_M61(u64 a, u64 e) {
|
227
|
+
// the exponent need to be greater than zero
|
228
|
+
assert(e > 0);
|
229
|
+
u64 result = a;
|
230
|
+
|
231
|
+
while (e != 1) {
|
232
|
+
// square
|
233
|
+
result = multiply_modM61(result, result);
|
234
|
+
|
235
|
+
// multiply with a if exponent is odd
|
236
|
+
if (e & 1) result = multiply_modM61(result, a);
|
237
|
+
|
238
|
+
// shift to next bit
|
239
|
+
e = e >> 1;
|
240
|
+
}
|
241
|
+
|
242
|
+
return result;
|
243
|
+
}
|
244
|
+
|
245
|
+
/// mersenne prime 2^31 - 1
|
246
|
+
static constexpr u64 M31() { return u32{0x7fffffff}; };
|
247
|
+
|
248
|
+
/// compute a * b mod 2^31-1
|
249
|
+
static u32 multiply_modM31(u32 a, u32 b) {
|
250
|
+
u64 result = u64(a) * u64(b);
|
251
|
+
result = (result >> 31) + (result & M31());
|
252
|
+
if (result >= M31()) result -= M31();
|
253
|
+
return static_cast<u32>(result);
|
254
|
+
}
|
255
|
+
|
256
|
+
static u32 modexp_M31(u32 a, u64 e) {
|
257
|
+
// the exponent need to be greater than zero
|
258
|
+
assert(e > 0);
|
259
|
+
u32 result = a;
|
260
|
+
|
261
|
+
while (e != 1) {
|
262
|
+
// square
|
263
|
+
result = multiply_modM31(result, result);
|
264
|
+
|
265
|
+
// multiply with a if exponent is odd
|
266
|
+
if (e & 1) result = multiply_modM31(result, a);
|
267
|
+
|
268
|
+
// shift to next bit
|
269
|
+
e = e >> 1;
|
270
|
+
}
|
271
|
+
|
272
|
+
return result;
|
273
|
+
}
|
274
|
+
|
275
|
+
template <HighsInt k>
|
276
|
+
static u64 pair_hash(u32 a, u32 b) {
|
277
|
+
return (static_cast<u64>(a) + c[2 * k]) *
|
278
|
+
(static_cast<u64>(b) + c[2 * k + 1]);
|
279
|
+
}
|
280
|
+
|
281
|
+
static void sparse_combine(u64& hash, HighsInt index, u64 value) {
|
282
|
+
// we take each value of the sparse hash as coefficient for a polynomial
|
283
|
+
// of the finite field modulo the mersenne prime 2^61-1 where the monomial
|
284
|
+
// for a sparse entry has the degree of its index. We evaluate the
|
285
|
+
// polynomial at a random constant. This allows to compute the hashes of
|
286
|
+
// sparse vectors independently of each others nonzero contribution and
|
287
|
+
// therefore allows to use the order of best access patterns for cache
|
288
|
+
// performance. E.g. we can compute a strong hash value for parallel row and
|
289
|
+
// column detection and only need to loop over the nonzeros once in
|
290
|
+
// arbitrary order. This comes at the expense of more expensive hash
|
291
|
+
// calculations as it would be more efficient to evaluate the polynomial
|
292
|
+
// with horners scheme, but allows for parallelization and arbitrary order.
|
293
|
+
// Since we have 64 random constants available, we slightly improve
|
294
|
+
// the scheme by using a lower degree polynomial with 64 variables
|
295
|
+
// which we evaluate at the random vector of 64.
|
296
|
+
|
297
|
+
// make sure input value is never zero and at most 61bits are used
|
298
|
+
value = ((value << 1) & M61()) | 1;
|
299
|
+
|
300
|
+
// make sure that the constant has at most 61 bits, as otherwise the modulo
|
301
|
+
// algorithm for multiplication mod M61 might not work properly due to
|
302
|
+
// overflow
|
303
|
+
u64 a = c[index & 63] & M61();
|
304
|
+
u64 degree = (static_cast<u64>(index) >> 6) + 1;
|
305
|
+
|
306
|
+
hash += multiply_modM61(value, modexp_M61(a, degree));
|
307
|
+
hash = (hash >> 61) + (hash & M61());
|
308
|
+
if (hash >= M61()) hash -= M61();
|
309
|
+
assert(hash < M61());
|
310
|
+
}
|
311
|
+
|
312
|
+
static void sparse_inverse_combine(u64& hash, HighsInt index, u64 value) {
|
313
|
+
// same hash algorithm as sparse_combine(), but for updating a hash value to
|
314
|
+
// the state before it was changed with a call to sparse_combine(). This is
|
315
|
+
// easily possible as the hash value just uses finite field arithmetic. We
|
316
|
+
// can simply add the additive inverse of the previous hash value. This is a
|
317
|
+
// very useful routine for symmetry detection. During partition refinement
|
318
|
+
// the hashes do not need to be recomputed but can be updated with this
|
319
|
+
// procedure.
|
320
|
+
|
321
|
+
// make sure input value is never zero and at most 61bits are used
|
322
|
+
value = ((value << 1) & M61()) | 1;
|
323
|
+
|
324
|
+
u64 a = c[index & 63] & M61();
|
325
|
+
u64 degree = (static_cast<u64>(index) >> 6) + 1;
|
326
|
+
// add the additive inverse (M61() - hashvalue) instead of the hash value
|
327
|
+
// itself
|
328
|
+
hash += M61() - multiply_modM61(value, modexp_M61(a, degree));
|
329
|
+
hash = (hash >> 61) + (hash & M61());
|
330
|
+
if (hash >= M61()) hash -= M61();
|
331
|
+
assert(hash < M61());
|
332
|
+
}
|
333
|
+
|
334
|
+
/// overload that is not taking a value and saves one multiplication call
|
335
|
+
/// useful for sparse hashing of bit vectors
|
336
|
+
static void sparse_combine(u64& hash, HighsInt index) {
|
337
|
+
u64 a = c[index & 63] & M61();
|
338
|
+
u64 degree = (static_cast<u64>(index) >> 6) + 1;
|
339
|
+
|
340
|
+
hash += modexp_M61(a, degree);
|
341
|
+
hash = (hash >> 61) + (hash & M61());
|
342
|
+
if (hash >= M61()) hash -= M61();
|
343
|
+
assert(hash < M61());
|
344
|
+
}
|
345
|
+
|
346
|
+
/// overload that is not taking a value and saves one multiplication call
|
347
|
+
/// useful for sparse hashing of bit vectors
|
348
|
+
static void sparse_inverse_combine(u64& hash, HighsInt index) {
|
349
|
+
// same hash algorithm as sparse_combine(), but for updating a hash value to
|
350
|
+
// the state before it was changed with a call to sparse_combine(). This is
|
351
|
+
// easily possible as the hash value just uses finite field arithmetic. We
|
352
|
+
// can simply add the additive inverse of the previous hash value. This is a
|
353
|
+
// very useful routine for symmetry detection. During partition refinement
|
354
|
+
// the hashes do not need to be recomputed but can be updated with this
|
355
|
+
// procedure.
|
356
|
+
|
357
|
+
u64 a = c[index & 63] & M61();
|
358
|
+
u64 degree = (static_cast<u64>(index) >> 6) + 1;
|
359
|
+
// add the additive inverse (M61() - hashvalue) instead of the hash value
|
360
|
+
// itself
|
361
|
+
hash += M61() - modexp_M61(a, degree);
|
362
|
+
hash = (hash >> 61) + (hash & M61());
|
363
|
+
if (hash >= M61()) hash -= M61();
|
364
|
+
assert(hash < M61());
|
365
|
+
}
|
366
|
+
|
367
|
+
static void sparse_combine32(u32& hash, HighsInt index, u64 value) {
|
368
|
+
// we take each value of the sparse hash as coefficient for a polynomial
|
369
|
+
// of the finite field modulo the mersenne prime 2^61-1 where the monomial
|
370
|
+
// for a sparse entry has the degree of its index. We evaluate the
|
371
|
+
// polynomial at a random constant. This allows to compute the hashes of
|
372
|
+
// sparse vectors independently of each others nonzero contribution and
|
373
|
+
// therefore allows to use the order of best access patterns for cache
|
374
|
+
// performance. E.g. we can compute a strong hash value for parallel row and
|
375
|
+
// column detection and only need to loop over the nonzeros once in
|
376
|
+
// arbitrary order. This comes at the expense of more expensive hash
|
377
|
+
// calculations as it would be more efficient to evaluate the polynomial
|
378
|
+
// with horners scheme, but allows for parallelization and arbitrary order.
|
379
|
+
// Since we have 16 random constants available, we slightly improve
|
380
|
+
// the scheme by using a lower degree polynomial with 16 variables
|
381
|
+
// which we evaluate at the random vector of 16.
|
382
|
+
|
383
|
+
// make sure input value is never zero and at most 31bits are used
|
384
|
+
value = (pair_hash<0>(static_cast<u32>(value), value >> 32) >> 33) | 1;
|
385
|
+
|
386
|
+
// make sure that the constant has at most 31 bits, as otherwise the modulo
|
387
|
+
// algorithm for multiplication mod M31 might not work properly due to
|
388
|
+
// overflow
|
389
|
+
u32 a = static_cast<u32>(c[index & 63] & M31());
|
390
|
+
u64 degree = (static_cast<u64>(index) >> 6) + 1;
|
391
|
+
|
392
|
+
u64 result = hash;
|
393
|
+
result += multiply_modM31(static_cast<u32>(value), modexp_M31(a, degree));
|
394
|
+
result = (result >> 31) + (result & M31());
|
395
|
+
if (result >= M31()) result -= M31();
|
396
|
+
assert(result < M31());
|
397
|
+
hash = static_cast<u32>(result);
|
398
|
+
}
|
399
|
+
|
400
|
+
static void sparse_inverse_combine32(u32& hash, HighsInt index, u64 value) {
|
401
|
+
// same hash algorithm as sparse_combine(), but for updating a hash value to
|
402
|
+
// the state before it was changed with a call to sparse_combine(). This is
|
403
|
+
// easily possible as the hash value just uses finite field arithmetic. We
|
404
|
+
// can simply add the additive inverse of the previous hash value. This is a
|
405
|
+
// very useful routine for symmetry detection. During partition refinement
|
406
|
+
// the hashes do not need to be recomputed but can be updated with this
|
407
|
+
// procedure.
|
408
|
+
|
409
|
+
// make sure input value is never zero and at most 31bits are used
|
410
|
+
value = (pair_hash<0>(static_cast<u32>(value), value >> 32) >> 33) | 1;
|
411
|
+
|
412
|
+
u32 a = static_cast<u32>(c[index & 63] & M31());
|
413
|
+
u64 degree = (static_cast<u64>(index) >> 6) + 1;
|
414
|
+
// add the additive inverse (M31() - hashvalue) instead of the hash value
|
415
|
+
// itself
|
416
|
+
u64 result = hash;
|
417
|
+
result +=
|
418
|
+
M31() - multiply_modM31(static_cast<u32>(value), modexp_M31(a, degree));
|
419
|
+
result = (result >> 31) + (result & M31());
|
420
|
+
if (result >= M31()) result -= M31();
|
421
|
+
assert(result < M31());
|
422
|
+
hash = static_cast<u32>(result);
|
423
|
+
}
|
424
|
+
|
425
|
+
static constexpr u64 fibonacci_muliplier() { return u64{0x9e3779b97f4a7c15}; }
|
426
|
+
|
427
|
+
template <typename T,
|
428
|
+
typename std::enable_if<HighsHashable<T>::value, int>::type = 0>
|
429
|
+
static u64 vector_hash(const T* vals, size_t numvals) {
|
430
|
+
std::array<u32, 2> pair{};
|
431
|
+
u64 hash = 0;
|
432
|
+
HighsInt k = 0;
|
433
|
+
|
434
|
+
const char* dataptr = (const char*)vals;
|
435
|
+
const char* dataend = (const char*)(vals + numvals);
|
436
|
+
|
437
|
+
while (dataptr != dataend) {
|
438
|
+
using std::size_t;
|
439
|
+
size_t numBytes = std::min(size_t(dataend - dataptr), size_t{256});
|
440
|
+
size_t numPairs = (numBytes + 7) / 8;
|
441
|
+
size_t lastPairBytes = numBytes - (numPairs - 1) * 8;
|
442
|
+
u64 chunkhash[] = {u64{0}, u64{0}};
|
443
|
+
|
444
|
+
#define HIGHS_VECHASH_CASE_N(N, B) \
|
445
|
+
std::memcpy(&pair[0], dataptr, B); \
|
446
|
+
chunkhash[N & 1] += pair_hash<32 - N>(pair[0], pair[1]); \
|
447
|
+
dataptr += B;
|
448
|
+
|
449
|
+
switch (numPairs) {
|
450
|
+
case 32:
|
451
|
+
if (hash != 0) {
|
452
|
+
// make sure hash is reduced mod M61() before multiplying with the
|
453
|
+
// next random constant. For vectors at most 240 bytes we never
|
454
|
+
// get here and only use the fast pair hashing scheme
|
455
|
+
// for vectors with 240 bytes to 256 bytes we do have the one
|
456
|
+
// additional check for hash != 0 above which will return false
|
457
|
+
// and only for longer vectors we ever reduce modulo M61
|
458
|
+
if (hash >= M61()) hash -= M61();
|
459
|
+
hash = multiply_modM61(hash, c[(k++) & 63] & M61());
|
460
|
+
}
|
461
|
+
HIGHS_VECHASH_CASE_N(32, 8)
|
462
|
+
// fall through
|
463
|
+
case 31:
|
464
|
+
HIGHS_VECHASH_CASE_N(31, 8)
|
465
|
+
// fall through
|
466
|
+
case 30:
|
467
|
+
HIGHS_VECHASH_CASE_N(30, 8)
|
468
|
+
// fall through
|
469
|
+
case 29:
|
470
|
+
HIGHS_VECHASH_CASE_N(29, 8)
|
471
|
+
// fall through
|
472
|
+
case 28:
|
473
|
+
HIGHS_VECHASH_CASE_N(28, 8)
|
474
|
+
// fall through
|
475
|
+
case 27:
|
476
|
+
HIGHS_VECHASH_CASE_N(27, 8)
|
477
|
+
// fall through
|
478
|
+
case 26:
|
479
|
+
HIGHS_VECHASH_CASE_N(26, 8)
|
480
|
+
// fall through
|
481
|
+
case 25:
|
482
|
+
HIGHS_VECHASH_CASE_N(25, 8)
|
483
|
+
// fall through
|
484
|
+
case 24:
|
485
|
+
HIGHS_VECHASH_CASE_N(24, 8)
|
486
|
+
// fall through
|
487
|
+
case 23:
|
488
|
+
HIGHS_VECHASH_CASE_N(23, 8)
|
489
|
+
// fall through
|
490
|
+
case 22:
|
491
|
+
HIGHS_VECHASH_CASE_N(22, 8)
|
492
|
+
// fall through
|
493
|
+
case 21:
|
494
|
+
HIGHS_VECHASH_CASE_N(21, 8)
|
495
|
+
// fall through
|
496
|
+
case 20:
|
497
|
+
HIGHS_VECHASH_CASE_N(20, 8)
|
498
|
+
// fall through
|
499
|
+
case 19:
|
500
|
+
HIGHS_VECHASH_CASE_N(19, 8)
|
501
|
+
// fall through
|
502
|
+
case 18:
|
503
|
+
HIGHS_VECHASH_CASE_N(18, 8)
|
504
|
+
// fall through
|
505
|
+
case 17:
|
506
|
+
HIGHS_VECHASH_CASE_N(17, 8)
|
507
|
+
// fall through
|
508
|
+
case 16:
|
509
|
+
HIGHS_VECHASH_CASE_N(16, 8)
|
510
|
+
// fall through
|
511
|
+
case 15:
|
512
|
+
HIGHS_VECHASH_CASE_N(15, 8)
|
513
|
+
// fall through
|
514
|
+
case 14:
|
515
|
+
HIGHS_VECHASH_CASE_N(14, 8)
|
516
|
+
// fall through
|
517
|
+
case 13:
|
518
|
+
HIGHS_VECHASH_CASE_N(13, 8)
|
519
|
+
// fall through
|
520
|
+
case 12:
|
521
|
+
HIGHS_VECHASH_CASE_N(12, 8)
|
522
|
+
// fall through
|
523
|
+
case 11:
|
524
|
+
HIGHS_VECHASH_CASE_N(11, 8)
|
525
|
+
// fall through
|
526
|
+
case 10:
|
527
|
+
HIGHS_VECHASH_CASE_N(10, 8)
|
528
|
+
// fall through
|
529
|
+
case 9:
|
530
|
+
HIGHS_VECHASH_CASE_N(9, 8)
|
531
|
+
// fall through
|
532
|
+
case 8:
|
533
|
+
HIGHS_VECHASH_CASE_N(8, 8)
|
534
|
+
// fall through
|
535
|
+
case 7:
|
536
|
+
HIGHS_VECHASH_CASE_N(7, 8)
|
537
|
+
// fall through
|
538
|
+
case 6:
|
539
|
+
HIGHS_VECHASH_CASE_N(6, 8)
|
540
|
+
// fall through
|
541
|
+
case 5:
|
542
|
+
HIGHS_VECHASH_CASE_N(5, 8)
|
543
|
+
// fall through
|
544
|
+
case 4:
|
545
|
+
HIGHS_VECHASH_CASE_N(4, 8)
|
546
|
+
// fall through
|
547
|
+
case 3:
|
548
|
+
HIGHS_VECHASH_CASE_N(3, 8)
|
549
|
+
// fall through
|
550
|
+
case 2:
|
551
|
+
HIGHS_VECHASH_CASE_N(2, 8)
|
552
|
+
// fall through
|
553
|
+
case 1:
|
554
|
+
HIGHS_VECHASH_CASE_N(1, lastPairBytes)
|
555
|
+
}
|
556
|
+
|
557
|
+
hash += (chunkhash[0] >> 3) ^ (chunkhash[1] >> 32);
|
558
|
+
}
|
559
|
+
|
560
|
+
#undef HIGHS_VECHASH_CASE_N
|
561
|
+
|
562
|
+
return hash * fibonacci_muliplier();
|
563
|
+
}
|
564
|
+
|
565
|
+
template <typename T,
|
566
|
+
typename std::enable_if<HighsHashable<T>::value &&
|
567
|
+
(sizeof(T) <= 8) && (sizeof(T) >= 1),
|
568
|
+
int>::type = 0>
|
569
|
+
static u64 hash(const T& val) {
|
570
|
+
std::array<u32, 2> bytes;
|
571
|
+
if (sizeof(T) < 4) bytes[0] = 0;
|
572
|
+
if (sizeof(T) < 8) bytes[1] = 0;
|
573
|
+
std::memcpy(&bytes[0], &val, sizeof(T));
|
574
|
+
return pair_hash<1>(bytes[0], bytes[1]) ^
|
575
|
+
pair_hash<0>(bytes[0], bytes[1]) >> 32;
|
576
|
+
}
|
577
|
+
|
578
|
+
template <typename T,
|
579
|
+
typename std::enable_if<HighsHashable<T>::value &&
|
580
|
+
(sizeof(T) >= 9) && (sizeof(T) <= 16),
|
581
|
+
int>::type = 0>
|
582
|
+
static u64 hash(const T& val) {
|
583
|
+
std::array<u32, 4> bytes;
|
584
|
+
if (sizeof(T) < 12) bytes[2] = 0;
|
585
|
+
if (sizeof(T) < 16) bytes[3] = 0;
|
586
|
+
std::memcpy(&bytes[0], &val, sizeof(T));
|
587
|
+
return (pair_hash<0>(bytes[0], bytes[1]) ^
|
588
|
+
(pair_hash<1>(bytes[2], bytes[3]) >> 32)) *
|
589
|
+
fibonacci_muliplier();
|
590
|
+
}
|
591
|
+
|
592
|
+
template <typename T,
|
593
|
+
typename std::enable_if<HighsHashable<T>::value &&
|
594
|
+
(sizeof(T) >= 17) && (sizeof(T) <= 24),
|
595
|
+
int>::type = 0>
|
596
|
+
static u64 hash(const T& val) {
|
597
|
+
std::array<u32, 6> bytes;
|
598
|
+
if (sizeof(T) < 20) bytes[4] = 0;
|
599
|
+
if (sizeof(T) < 24) bytes[5] = 0;
|
600
|
+
std::memcpy(&bytes[0], &val, sizeof(T));
|
601
|
+
return (pair_hash<0>(bytes[0], bytes[1]) ^
|
602
|
+
((pair_hash<1>(bytes[2], bytes[3]) +
|
603
|
+
pair_hash<2>(bytes[4], bytes[5])) >>
|
604
|
+
32)) *
|
605
|
+
fibonacci_muliplier();
|
606
|
+
}
|
607
|
+
|
608
|
+
template <typename T,
|
609
|
+
typename std::enable_if<HighsHashable<T>::value &&
|
610
|
+
(sizeof(T) >= 25) && (sizeof(T) <= 32),
|
611
|
+
int>::type = 0>
|
612
|
+
static u64 hash(const T& val) {
|
613
|
+
std::array<u32, 8> bytes;
|
614
|
+
if (sizeof(T) < 28) bytes[6] = 0;
|
615
|
+
if (sizeof(T) < 32) bytes[7] = 0;
|
616
|
+
std::memcpy(&bytes[0], &val, sizeof(T));
|
617
|
+
return ((pair_hash<0>(bytes[0], bytes[1]) +
|
618
|
+
pair_hash<1>(bytes[2], bytes[3])) ^
|
619
|
+
((pair_hash<2>(bytes[4], bytes[5]) +
|
620
|
+
pair_hash<3>(bytes[6], bytes[7])) >>
|
621
|
+
32)) *
|
622
|
+
fibonacci_muliplier();
|
623
|
+
}
|
624
|
+
|
625
|
+
template <typename T,
|
626
|
+
typename std::enable_if<HighsHashable<T>::value &&
|
627
|
+
(sizeof(T) >= 33) && (sizeof(T) <= 40),
|
628
|
+
int>::type = 0>
|
629
|
+
static u64 hash(const T& val) {
|
630
|
+
std::array<u32, 10> bytes;
|
631
|
+
if (sizeof(T) < 36) bytes[8] = 0;
|
632
|
+
if (sizeof(T) < 40) bytes[9] = 0;
|
633
|
+
std::memcpy(&bytes[0], &val, sizeof(T));
|
634
|
+
return ((pair_hash<0>(bytes[0], bytes[1]) +
|
635
|
+
pair_hash<1>(bytes[2], bytes[3])) ^
|
636
|
+
((pair_hash<2>(bytes[4], bytes[5]) +
|
637
|
+
pair_hash<3>(bytes[6], bytes[7]) +
|
638
|
+
pair_hash<4>(bytes[8], bytes[9])) >>
|
639
|
+
32)) *
|
640
|
+
fibonacci_muliplier();
|
641
|
+
}
|
642
|
+
|
643
|
+
template <typename T,
|
644
|
+
typename std::enable_if<HighsHashable<T>::value &&
|
645
|
+
(sizeof(T) >= 41) && (sizeof(T) <= 48),
|
646
|
+
int>::type = 0>
|
647
|
+
static u64 hash(const T& val) {
|
648
|
+
std::array<u32, 12> bytes;
|
649
|
+
if (sizeof(T) < 44) bytes[10] = 0;
|
650
|
+
if (sizeof(T) < 48) bytes[11] = 0;
|
651
|
+
std::memcpy(&bytes[0], &val, sizeof(T));
|
652
|
+
return ((pair_hash<0>(bytes[0], bytes[1]) +
|
653
|
+
pair_hash<1>(bytes[2], bytes[3]) +
|
654
|
+
pair_hash<2>(bytes[4], bytes[5])) ^
|
655
|
+
((pair_hash<3>(bytes[6], bytes[7]) +
|
656
|
+
pair_hash<4>(bytes[8], bytes[9]) +
|
657
|
+
pair_hash<5>(bytes[10], bytes[11])) >>
|
658
|
+
32)) *
|
659
|
+
fibonacci_muliplier();
|
660
|
+
}
|
661
|
+
|
662
|
+
template <typename T,
|
663
|
+
typename std::enable_if<HighsHashable<T>::value &&
|
664
|
+
(sizeof(T) >= 49) && (sizeof(T) <= 56),
|
665
|
+
int>::type = 0>
|
666
|
+
static u64 hash(const T& val) {
|
667
|
+
std::array<u32, 14> bytes;
|
668
|
+
if (sizeof(T) < 52) bytes[12] = 0;
|
669
|
+
if (sizeof(T) < 56) bytes[13] = 0;
|
670
|
+
std::memcpy(&bytes[0], &val, sizeof(T));
|
671
|
+
return ((pair_hash<0>(bytes[0], bytes[1]) +
|
672
|
+
pair_hash<1>(bytes[2], bytes[3]) +
|
673
|
+
pair_hash<2>(bytes[4], bytes[5])) ^
|
674
|
+
((pair_hash<3>(bytes[6], bytes[7]) +
|
675
|
+
pair_hash<4>(bytes[8], bytes[9]) +
|
676
|
+
pair_hash<5>(bytes[10], bytes[11]) +
|
677
|
+
pair_hash<6>(bytes[12], bytes[13])) >>
|
678
|
+
32)) *
|
679
|
+
fibonacci_muliplier();
|
680
|
+
}
|
681
|
+
|
682
|
+
template <typename T,
|
683
|
+
typename std::enable_if<HighsHashable<T>::value &&
|
684
|
+
(sizeof(T) >= 57) && (sizeof(T) <= 64),
|
685
|
+
int>::type = 0>
|
686
|
+
static u64 hash(const T& val) {
|
687
|
+
std::array<u32, 16> bytes;
|
688
|
+
if (sizeof(T) < 60) bytes[14] = 0;
|
689
|
+
if (sizeof(T) < 64) bytes[15] = 0;
|
690
|
+
std::memcpy(&bytes[0], &val, sizeof(T));
|
691
|
+
return ((pair_hash<0>(bytes[0], bytes[1]) +
|
692
|
+
pair_hash<1>(bytes[2], bytes[3]) +
|
693
|
+
pair_hash<2>(bytes[4], bytes[5]) +
|
694
|
+
pair_hash<3>(bytes[6], bytes[7])) ^
|
695
|
+
((pair_hash<4>(bytes[8], bytes[9]) +
|
696
|
+
pair_hash<5>(bytes[10], bytes[11]) +
|
697
|
+
pair_hash<6>(bytes[12], bytes[13]) +
|
698
|
+
pair_hash<7>(bytes[14], bytes[15])) >>
|
699
|
+
32)) *
|
700
|
+
fibonacci_muliplier();
|
701
|
+
}
|
702
|
+
|
703
|
+
template <typename T,
|
704
|
+
typename std::enable_if<HighsHashable<T>::value && (sizeof(T) > 64),
|
705
|
+
int>::type = 0>
|
706
|
+
static u64 hash(const T& val) {
|
707
|
+
return vector_hash(&val, 1);
|
708
|
+
}
|
709
|
+
|
710
|
+
template <typename T,
|
711
|
+
typename std::enable_if<HighsHashable<T>::value, int>::type = 0>
|
712
|
+
static u64 hash(const std::vector<T>& val) {
|
713
|
+
return vector_hash(val.data(), val.size());
|
714
|
+
}
|
715
|
+
|
716
|
+
template <typename T, typename std::enable_if<
|
717
|
+
std::is_same<decltype(*reinterpret_cast<T*>(0) ==
|
718
|
+
*reinterpret_cast<T*>(0)),
|
719
|
+
bool>::value,
|
720
|
+
int>::type = 0>
|
721
|
+
static bool equal(const T& a, const T& b) {
|
722
|
+
return a == b;
|
723
|
+
}
|
724
|
+
|
725
|
+
template <typename T,
|
726
|
+
typename std::enable_if<HighsHashable<T>::value, int>::type = 0>
|
727
|
+
static bool equal(const std::vector<T>& a, const std::vector<T>& b) {
|
728
|
+
if (a.size() != b.size()) return false;
|
729
|
+
return std::memcmp(a.data(), b.data(), sizeof(T) * a.size()) == 0;
|
730
|
+
}
|
731
|
+
|
732
|
+
static constexpr double golden_ratio_reciprocal() {
|
733
|
+
return 0.61803398874989484;
|
734
|
+
}
|
735
|
+
|
736
|
+
static u32 double_hash_code(double val) {
|
737
|
+
// we multiply by some irrational number, so that the buckets in which we
|
738
|
+
// put the real numbers do not break on a power of two pattern. E.g.
|
739
|
+
// consider the use case for detecting parallel rows when we have two
|
740
|
+
// parallel rows scaled to have their largest coefficient 1.0 and another
|
741
|
+
// coefficient which is 0.5
|
742
|
+
// +- epsilon. Clearly we want to detect those rows as parallel and give
|
743
|
+
// them the same hash value for small enough epsilon. The exponent,
|
744
|
+
// however will switch to -2 for the value just below 0.5 and the hashcodes
|
745
|
+
// will differ. when multiplying with the reciprocal of the golden ratio the
|
746
|
+
// exact 0.5 will yield 0.30901699437494742 and 0.5 - 1e-9 will yield
|
747
|
+
// 0.3090169937569134 which has the same exponent and matches in the most
|
748
|
+
// significant bits. Hence it yields the same hashcode. Obviously there will
|
749
|
+
// now be different values which exhibit the same pattern as the 0.5 case,
|
750
|
+
// but they do not have a small denominator like 1/2 in their rational
|
751
|
+
// representation but are power of two multiples of the golden ratio and
|
752
|
+
// therefore irrational, which we do not expect in non-artificial input
|
753
|
+
// data.
|
754
|
+
int exponent;
|
755
|
+
double hashbits = std::frexp(val * golden_ratio_reciprocal(), &exponent);
|
756
|
+
|
757
|
+
// some extra casts to be more verbose about what is happening.
|
758
|
+
// We want the exponent to use only 16bits so that the remaining 16 bits
|
759
|
+
// are used for the most significant bits of the mantissa and the sign bit.
|
760
|
+
// casting to unsigned 16bits first ensures that the value after the cast is
|
761
|
+
// defined to be UINT16_MAX - |exponent| when the exponent is negative.
|
762
|
+
// casting the exponent to a uint32_t directly would give wrong promotion
|
763
|
+
// of negative exponents as UINT32_MAX - |exponent| and take up to many bits
|
764
|
+
// or possibly lose information after the 16 bit shift. For the mantissa we
|
765
|
+
// take the 15 most significant bits, even though we could squeeze out a few
|
766
|
+
// more of the exponent. We don't need more bits as this would make the
|
767
|
+
// buckets very small and might miss more values that are equal within
|
768
|
+
// epsilon. Therefore the most significant 15 bits of the mantissa and the
|
769
|
+
// sign is encoded in the 16 lower bits of the hashcode and the upper 16bits
|
770
|
+
// encode the sign and value of the exponent.
|
771
|
+
u32 hashvalue = (u32)(u16)(i16)exponent;
|
772
|
+
hashvalue = (hashvalue << 16) | (u32)(u16)(i16)std::ldexp(hashbits, 15);
|
773
|
+
|
774
|
+
return hashvalue;
|
775
|
+
}
|
776
|
+
};
|
777
|
+
|
778
|
+
struct HighsHasher {
|
779
|
+
template <typename T>
|
780
|
+
size_t operator()(const T& x) const {
|
781
|
+
return HighsHashHelpers::hash(x);
|
782
|
+
}
|
783
|
+
};
|
784
|
+
|
785
|
+
struct HighsVectorHasher {
|
786
|
+
template <typename T>
|
787
|
+
size_t operator()(const std::vector<T>& vec) const {
|
788
|
+
return HighsHashHelpers::vector_hash(vec.data(), vec.size());
|
789
|
+
}
|
790
|
+
};
|
791
|
+
|
792
|
+
struct HighsVectorEqual {
|
793
|
+
template <typename T>
|
794
|
+
bool operator()(const std::vector<T>& vec1,
|
795
|
+
const std::vector<T>& vec2) const {
|
796
|
+
if (vec1.size() != vec2.size()) return false;
|
797
|
+
return std::equal(vec1.begin(), vec1.end(), vec2.begin());
|
798
|
+
}
|
799
|
+
};
|
800
|
+
|
801
|
+
template <typename K, typename V = void>
|
802
|
+
struct HighsHashTableEntry {
|
803
|
+
private:
|
804
|
+
K key_;
|
805
|
+
V value_;
|
806
|
+
|
807
|
+
public:
|
808
|
+
HighsHashTableEntry(HighsHashTableEntry<K, V>&&) = default;
|
809
|
+
HighsHashTableEntry(const HighsHashTableEntry<K, V>&) = default;
|
810
|
+
~HighsHashTableEntry() = default;
|
811
|
+
HighsHashTableEntry() = default;
|
812
|
+
HighsHashTableEntry<K, V>& operator=(HighsHashTableEntry<K, V>&&) = default;
|
813
|
+
HighsHashTableEntry<K, V>& operator=(const HighsHashTableEntry<K, V>&) =
|
814
|
+
default;
|
815
|
+
|
816
|
+
// add a constructor to pass an argument to initialize the key with a value
|
817
|
+
// and the value as default
|
818
|
+
// the enable if statement makes sure this overload is never selected
|
819
|
+
// when the type of the single argument is HighsHashTableEntry<K,V> so that
|
820
|
+
// the default move and copy constructors are preferred when they match
|
821
|
+
// and this is only used to initialize the key type from a single argument.
|
822
|
+
template <
|
823
|
+
typename K_,
|
824
|
+
typename std::enable_if<
|
825
|
+
!std::is_same<typename std::remove_cv<
|
826
|
+
typename std::remove_reference<K_>::type>::type,
|
827
|
+
HighsHashTableEntry<K, V>>::value,
|
828
|
+
int>::type = 0>
|
829
|
+
HighsHashTableEntry(K_&& k) : key_(std::forward<K_>(k)), value_() {}
|
830
|
+
|
831
|
+
template <typename K_, typename V_>
|
832
|
+
HighsHashTableEntry(K_&& k, V_&& v)
|
833
|
+
: key_(std::forward<K_>(k)), value_(std::forward<V_>(v)) {}
|
834
|
+
|
835
|
+
const K& key() const { return key_; }
|
836
|
+
const V& value() const { return value_; }
|
837
|
+
V& value() { return value_; }
|
838
|
+
|
839
|
+
template <typename Func>
|
840
|
+
auto forward(Func&& f) -> decltype(f(key_, value_)) {
|
841
|
+
const K& keyRef = key_;
|
842
|
+
return f(keyRef, value_);
|
843
|
+
}
|
844
|
+
|
845
|
+
template <typename Func>
|
846
|
+
auto forward(Func&& f) const -> decltype(f(key_)) {
|
847
|
+
const K& keyRef = key_;
|
848
|
+
return f(keyRef);
|
849
|
+
}
|
850
|
+
|
851
|
+
template <typename Func>
|
852
|
+
auto forward(Func&& f) const -> decltype(f(key_, value_)) {
|
853
|
+
return f(key_, value_);
|
854
|
+
}
|
855
|
+
};
|
856
|
+
|
857
|
+
template <typename T>
|
858
|
+
struct HighsHashTableEntry<T, void> {
|
859
|
+
private:
|
860
|
+
T value_;
|
861
|
+
|
862
|
+
public:
|
863
|
+
HighsHashTableEntry(HighsHashTableEntry<T, void>&&) = default;
|
864
|
+
HighsHashTableEntry(const HighsHashTableEntry<T, void>&) = default;
|
865
|
+
~HighsHashTableEntry() = default;
|
866
|
+
HighsHashTableEntry() = default;
|
867
|
+
HighsHashTableEntry<T, void>& operator=(HighsHashTableEntry<T, void>&&) =
|
868
|
+
default;
|
869
|
+
HighsHashTableEntry<T, void>& operator=(const HighsHashTableEntry<T, void>&) =
|
870
|
+
default;
|
871
|
+
|
872
|
+
// Add a constructor to accept an arbitrary argument pack for initialize the
|
873
|
+
// underlying value of type T. The enable if statement makes sure this
|
874
|
+
// overload is never selected when the type of the single argument is
|
875
|
+
// HighsHashTableEntry<T,void> so that the default move and copy constructors
|
876
|
+
// are preferred when they match and this is only used to initialize the value
|
877
|
+
// of type from a set of arguments which are properly forwarded.
|
878
|
+
// The std::tuple usage in enable_if is a work-around to make the statement
|
879
|
+
// legal when multiple arguments are passed in, since std::is_same expects a
|
880
|
+
// single type. In that case is_same will obviously return false and the
|
881
|
+
// overload is appropriate to initialize the value_ with multiple forwarded
|
882
|
+
// arguments.
|
883
|
+
template <typename... Args,
|
884
|
+
typename std::enable_if<
|
885
|
+
!std::is_same<
|
886
|
+
std::tuple<typename std::remove_cv<
|
887
|
+
typename std::remove_reference<Args>::type>::type...>,
|
888
|
+
std::tuple<HighsHashTableEntry<T, void>>>::value,
|
889
|
+
int>::type = 0>
|
890
|
+
HighsHashTableEntry(Args&&... args) : value_(std::forward<Args>(args)...) {}
|
891
|
+
|
892
|
+
const T& key() const { return value_; }
|
893
|
+
const T& value() const { return value_; }
|
894
|
+
|
895
|
+
template <typename Func>
|
896
|
+
auto forward(Func&& f) -> decltype(f(value_)) {
|
897
|
+
return f(value_);
|
898
|
+
}
|
899
|
+
|
900
|
+
template <typename Func>
|
901
|
+
auto forward(Func&& f) const -> decltype(f(value_)) {
|
902
|
+
return f(value_);
|
903
|
+
}
|
904
|
+
};
|
905
|
+
|
906
|
+
template <typename K, typename V = void>
|
907
|
+
class HighsHashTable {
|
908
|
+
struct OpNewDeleter {
|
909
|
+
void operator()(void* ptr) { ::operator delete(ptr); }
|
910
|
+
};
|
911
|
+
|
912
|
+
public:
|
913
|
+
using u8 = std::uint8_t;
|
914
|
+
using i8 = std::int8_t;
|
915
|
+
|
916
|
+
using u16 = std::uint16_t;
|
917
|
+
using i16 = std::int16_t;
|
918
|
+
|
919
|
+
using u32 = std::uint32_t;
|
920
|
+
using i32 = std::int32_t;
|
921
|
+
|
922
|
+
using u64 = std::uint64_t;
|
923
|
+
using i64 = std::int64_t;
|
924
|
+
|
925
|
+
using Entry = HighsHashTableEntry<K, V>;
|
926
|
+
using KeyType = K;
|
927
|
+
using ValueType =
|
928
|
+
typename std::remove_reference<decltype(Entry().value())>::type;
|
929
|
+
|
930
|
+
std::unique_ptr<Entry, OpNewDeleter> entries;
|
931
|
+
std::unique_ptr<u8[]> metadata;
|
932
|
+
u64 tableSizeMask;
|
933
|
+
u64 numHashShift;
|
934
|
+
u64 numElements = 0;
|
935
|
+
|
936
|
+
template <typename IterType>
|
937
|
+
class HashTableIterator {
|
938
|
+
u8* pos;
|
939
|
+
u8* end;
|
940
|
+
Entry* entryEnd;
|
941
|
+
|
942
|
+
public:
|
943
|
+
using difference_type = std::ptrdiff_t;
|
944
|
+
using value_type = IterType;
|
945
|
+
using pointer = IterType*;
|
946
|
+
using reference = IterType&;
|
947
|
+
using iterator_category = std::forward_iterator_tag;
|
948
|
+
HashTableIterator(u8* pos_, u8* end_, Entry* entryEnd_)
|
949
|
+
: pos(pos_), end(end_), entryEnd(entryEnd_) {}
|
950
|
+
HashTableIterator() = default;
|
951
|
+
|
952
|
+
HashTableIterator<IterType> operator++(int) {
|
953
|
+
// postfix
|
954
|
+
HashTableIterator<IterType> oldpos = *this;
|
955
|
+
for (++pos; pos != end; ++pos)
|
956
|
+
if ((*pos) & 0x80u) break;
|
957
|
+
|
958
|
+
return oldpos;
|
959
|
+
}
|
960
|
+
|
961
|
+
HashTableIterator<IterType>& operator++() {
|
962
|
+
// prefix
|
963
|
+
for (++pos; pos != end; ++pos)
|
964
|
+
if ((*pos) & 0x80u) break;
|
965
|
+
|
966
|
+
return *this;
|
967
|
+
}
|
968
|
+
|
969
|
+
reference operator*() const { return *(entryEnd - (end - pos)); }
|
970
|
+
pointer operator->() const { return (entryEnd - (end - pos)); }
|
971
|
+
HashTableIterator<IterType> operator+(difference_type v) const {
|
972
|
+
for (difference_type k = 0; k != v; ++k) ++(*this);
|
973
|
+
}
|
974
|
+
|
975
|
+
bool operator==(const HashTableIterator<IterType>& rhs) const {
|
976
|
+
return pos == rhs.pos;
|
977
|
+
}
|
978
|
+
bool operator!=(const HashTableIterator<IterType>& rhs) const {
|
979
|
+
return pos != rhs.pos;
|
980
|
+
}
|
981
|
+
};
|
982
|
+
|
983
|
+
using const_iterator = HashTableIterator<const Entry>;
|
984
|
+
using iterator = HashTableIterator<Entry>;
|
985
|
+
|
986
|
+
HighsHashTable() { makeEmptyTable(128); }
|
987
|
+
HighsHashTable(u64 minCapacity) {
|
988
|
+
u64 initCapacity = u64{1} << (u64)std::ceil(std::log2(std::max(
|
989
|
+
128.0, 8 * static_cast<double>(minCapacity) / 7)));
|
990
|
+
makeEmptyTable(initCapacity);
|
991
|
+
}
|
992
|
+
|
993
|
+
iterator end() {
|
994
|
+
u64 capacity = tableSizeMask + 1;
|
995
|
+
return iterator{metadata.get() + capacity, metadata.get() + capacity,
|
996
|
+
entries.get() + capacity};
|
997
|
+
};
|
998
|
+
|
999
|
+
const_iterator end() const {
|
1000
|
+
u64 capacity = tableSizeMask + 1;
|
1001
|
+
return const_iterator{metadata.get() + capacity, metadata.get() + capacity,
|
1002
|
+
entries.get() + capacity};
|
1003
|
+
};
|
1004
|
+
|
1005
|
+
const_iterator begin() const {
|
1006
|
+
if (numElements == 0) return end();
|
1007
|
+
u64 capacity = tableSizeMask + 1;
|
1008
|
+
const_iterator iter{metadata.get(), metadata.get() + capacity,
|
1009
|
+
entries.get() + capacity};
|
1010
|
+
if (!occupied(metadata[0])) ++iter;
|
1011
|
+
|
1012
|
+
return iter;
|
1013
|
+
};
|
1014
|
+
|
1015
|
+
iterator begin() {
|
1016
|
+
if (numElements == 0) return end();
|
1017
|
+
u64 capacity = tableSizeMask + 1;
|
1018
|
+
iterator iter{metadata.get(), metadata.get() + capacity,
|
1019
|
+
entries.get() + capacity};
|
1020
|
+
if (!occupied(metadata[0])) ++iter;
|
1021
|
+
|
1022
|
+
return iter;
|
1023
|
+
};
|
1024
|
+
|
1025
|
+
private:
|
1026
|
+
u8 toMetadata(u64 hash) const { return (hash >> numHashShift) | 0x80u; }
|
1027
|
+
|
1028
|
+
static constexpr u64 maxDistance() { return 127; }
|
1029
|
+
|
1030
|
+
void makeEmptyTable(u64 capacity) {
|
1031
|
+
tableSizeMask = capacity - 1;
|
1032
|
+
numHashShift = 64 - HighsHashHelpers::log2i(capacity);
|
1033
|
+
assert(capacity == (u64{1} << (64 - numHashShift)));
|
1034
|
+
numElements = 0;
|
1035
|
+
|
1036
|
+
metadata = decltype(metadata)(new u8[capacity]{});
|
1037
|
+
entries =
|
1038
|
+
decltype(entries)((Entry*)::operator new(sizeof(Entry) * capacity));
|
1039
|
+
}
|
1040
|
+
|
1041
|
+
bool occupied(u8 meta) const { return meta & 0x80; }
|
1042
|
+
|
1043
|
+
u64 distanceFromIdealSlot(u64 pos) const {
|
1044
|
+
// we store 7 bits of the hash in the metadata. Assuming a decent
|
1045
|
+
// hashfunction it is practically never happening that an item travels more
|
1046
|
+
// than 127 slots from its ideal position, therefore, we can compute the
|
1047
|
+
// distance from the ideal position just as it would normally be done
|
1048
|
+
// assuming there is at most one overflow. Consider using 3 bits which gives
|
1049
|
+
// values from 0 to 7. When an item is at a position with lower bits 7 and
|
1050
|
+
// is placed 3 positions after its ideal position, the lower bits of the
|
1051
|
+
// hash value will overflow and yield the value 2. With the assumption that
|
1052
|
+
// an item never cycles through one full cycle of the range 0 to 7, its
|
1053
|
+
// position would never be placed in a position with lower bits 7 other than
|
1054
|
+
// its ideal position. This allows us to compute the distance from its ideal
|
1055
|
+
// position by simply ignoring an overflow. In our case the correct answer
|
1056
|
+
// would be 3, but we get (2 - 7)=-5. This, however, is the correct result 3
|
1057
|
+
// when promoting to an unsigned value and looking at the lower 3 bits.
|
1058
|
+
|
1059
|
+
return ((pos - metadata[pos])) & 0x7f;
|
1060
|
+
}
|
1061
|
+
|
1062
|
+
void growTable() {
|
1063
|
+
decltype(entries) oldEntries = std::move(entries);
|
1064
|
+
decltype(metadata) oldMetadata = std::move(metadata);
|
1065
|
+
u64 oldCapactiy = tableSizeMask + 1;
|
1066
|
+
|
1067
|
+
makeEmptyTable(2 * oldCapactiy);
|
1068
|
+
|
1069
|
+
for (u64 i = 0; i != oldCapactiy; ++i)
|
1070
|
+
if (occupied(oldMetadata[i])) insert(std::move(oldEntries.get()[i]));
|
1071
|
+
}
|
1072
|
+
|
1073
|
+
void shrinkTable() {
|
1074
|
+
decltype(entries) oldEntries = std::move(entries);
|
1075
|
+
decltype(metadata) oldMetadata = std::move(metadata);
|
1076
|
+
u64 oldCapactiy = tableSizeMask + 1;
|
1077
|
+
|
1078
|
+
makeEmptyTable(oldCapactiy / 2);
|
1079
|
+
|
1080
|
+
for (u64 i = 0; i != oldCapactiy; ++i)
|
1081
|
+
if (occupied(oldMetadata[i])) insert(std::move(oldEntries.get()[i]));
|
1082
|
+
}
|
1083
|
+
|
1084
|
+
bool findPosition(const KeyType& key, u8& meta, u64& startPos, u64& maxPos,
|
1085
|
+
u64& pos) const {
|
1086
|
+
u64 hash = HighsHashHelpers::hash(key);
|
1087
|
+
startPos = hash >> numHashShift;
|
1088
|
+
maxPos = (startPos + maxDistance()) & tableSizeMask;
|
1089
|
+
meta = toMetadata(hash);
|
1090
|
+
|
1091
|
+
const Entry* entryArray = entries.get();
|
1092
|
+
pos = startPos;
|
1093
|
+
do {
|
1094
|
+
if (!occupied(metadata[pos])) return false;
|
1095
|
+
if (metadata[pos] == meta &&
|
1096
|
+
HighsHashHelpers::equal(key, entryArray[pos].key()))
|
1097
|
+
return true;
|
1098
|
+
|
1099
|
+
u64 currentDistance = (pos - startPos) & tableSizeMask;
|
1100
|
+
if (currentDistance > distanceFromIdealSlot(pos)) return false;
|
1101
|
+
|
1102
|
+
pos = (pos + 1) & tableSizeMask;
|
1103
|
+
} while (pos != maxPos);
|
1104
|
+
|
1105
|
+
return false;
|
1106
|
+
}
|
1107
|
+
|
1108
|
+
public:
|
1109
|
+
void clear() {
|
1110
|
+
if (numElements) {
|
1111
|
+
u64 capacity = tableSizeMask + 1;
|
1112
|
+
if (!std::is_trivially_destructible<Entry>::value) {
|
1113
|
+
for (u64 i = 0; i < capacity; ++i)
|
1114
|
+
if (occupied(metadata[i])) entries.get()[i].~Entry();
|
1115
|
+
}
|
1116
|
+
if (capacity == 128) {
|
1117
|
+
std::memset(metadata.get(), 0, 128);
|
1118
|
+
numElements = 0;
|
1119
|
+
} else
|
1120
|
+
makeEmptyTable(128);
|
1121
|
+
}
|
1122
|
+
}
|
1123
|
+
|
1124
|
+
const ValueType* find(const KeyType& key) const {
|
1125
|
+
u64 pos, startPos, maxPos;
|
1126
|
+
u8 meta;
|
1127
|
+
if (findPosition(key, meta, startPos, maxPos, pos))
|
1128
|
+
return &(entries.get()[pos].value());
|
1129
|
+
|
1130
|
+
return nullptr;
|
1131
|
+
}
|
1132
|
+
|
1133
|
+
ValueType* find(const KeyType& key) {
|
1134
|
+
u64 pos, startPos, maxPos;
|
1135
|
+
u8 meta;
|
1136
|
+
if (findPosition(key, meta, startPos, maxPos, pos))
|
1137
|
+
return &(entries.get()[pos].value());
|
1138
|
+
|
1139
|
+
return nullptr;
|
1140
|
+
}
|
1141
|
+
|
1142
|
+
ValueType& operator[](const KeyType& key) {
|
1143
|
+
Entry* entryArray = entries.get();
|
1144
|
+
u64 pos, startPos, maxPos;
|
1145
|
+
u8 meta;
|
1146
|
+
if (findPosition(key, meta, startPos, maxPos, pos))
|
1147
|
+
return entryArray[pos].value();
|
1148
|
+
|
1149
|
+
if (numElements == ((tableSizeMask + 1) * 7) / 8 || pos == maxPos) {
|
1150
|
+
growTable();
|
1151
|
+
return (*this)[key];
|
1152
|
+
}
|
1153
|
+
|
1154
|
+
using std::swap;
|
1155
|
+
ValueType& insertLocation = entryArray[pos].value();
|
1156
|
+
Entry entry(key);
|
1157
|
+
++numElements;
|
1158
|
+
|
1159
|
+
do {
|
1160
|
+
if (!occupied(metadata[pos])) {
|
1161
|
+
metadata[pos] = meta;
|
1162
|
+
new (&entryArray[pos]) Entry{std::move(entry)};
|
1163
|
+
return insertLocation;
|
1164
|
+
}
|
1165
|
+
|
1166
|
+
u64 currentDistance = (pos - startPos) & tableSizeMask;
|
1167
|
+
u64 distanceOfCurrentOccupant = distanceFromIdealSlot(pos);
|
1168
|
+
if (currentDistance > distanceOfCurrentOccupant) {
|
1169
|
+
// steal the position
|
1170
|
+
swap(entry, entryArray[pos]);
|
1171
|
+
swap(meta, metadata[pos]);
|
1172
|
+
|
1173
|
+
startPos = (pos - distanceOfCurrentOccupant) & tableSizeMask;
|
1174
|
+
maxPos = (startPos + maxDistance()) & tableSizeMask;
|
1175
|
+
}
|
1176
|
+
pos = (pos + 1) & tableSizeMask;
|
1177
|
+
} while (pos != maxPos);
|
1178
|
+
|
1179
|
+
growTable();
|
1180
|
+
insert(std::move(entry));
|
1181
|
+
return (*this)[key];
|
1182
|
+
}
|
1183
|
+
|
1184
|
+
template <typename... Args>
|
1185
|
+
bool insert(Args&&... args) {
|
1186
|
+
Entry entry(std::forward<Args>(args)...);
|
1187
|
+
|
1188
|
+
u64 pos, startPos, maxPos;
|
1189
|
+
u8 meta;
|
1190
|
+
if (findPosition(entry.key(), meta, startPos, maxPos, pos)) return false;
|
1191
|
+
|
1192
|
+
if (numElements == ((tableSizeMask + 1) * 7) / 8 || pos == maxPos) {
|
1193
|
+
growTable();
|
1194
|
+
return insert(std::move(entry));
|
1195
|
+
}
|
1196
|
+
|
1197
|
+
using std::swap;
|
1198
|
+
Entry* entryArray = entries.get();
|
1199
|
+
++numElements;
|
1200
|
+
|
1201
|
+
do {
|
1202
|
+
if (!occupied(metadata[pos])) {
|
1203
|
+
metadata[pos] = meta;
|
1204
|
+
new (&entryArray[pos]) Entry{std::move(entry)};
|
1205
|
+
return true;
|
1206
|
+
}
|
1207
|
+
|
1208
|
+
u64 currentDistance = (pos - startPos) & tableSizeMask;
|
1209
|
+
u64 distanceOfCurrentOccupant = distanceFromIdealSlot(pos);
|
1210
|
+
if (currentDistance > distanceOfCurrentOccupant) {
|
1211
|
+
// steal the position
|
1212
|
+
swap(entry, entryArray[pos]);
|
1213
|
+
swap(meta, metadata[pos]);
|
1214
|
+
|
1215
|
+
startPos = (pos - distanceOfCurrentOccupant) & tableSizeMask;
|
1216
|
+
maxPos = (startPos + maxDistance()) & tableSizeMask;
|
1217
|
+
}
|
1218
|
+
pos = (pos + 1) & tableSizeMask;
|
1219
|
+
} while (pos != maxPos);
|
1220
|
+
|
1221
|
+
growTable();
|
1222
|
+
insert(std::move(entry));
|
1223
|
+
return true;
|
1224
|
+
}
|
1225
|
+
|
1226
|
+
bool erase(const KeyType& key) {
|
1227
|
+
u64 pos, startPos, maxPos;
|
1228
|
+
u8 meta;
|
1229
|
+
if (!findPosition(key, meta, startPos, maxPos, pos)) return false;
|
1230
|
+
// delete element at position pos
|
1231
|
+
Entry* entryArray = entries.get();
|
1232
|
+
entryArray[pos].~Entry();
|
1233
|
+
metadata[pos] = 0;
|
1234
|
+
|
1235
|
+
// retain at least a quarter of slots occupied, otherwise shrink the table
|
1236
|
+
// if its not at its minimum size already
|
1237
|
+
--numElements;
|
1238
|
+
u64 capacity = tableSizeMask + 1;
|
1239
|
+
if (capacity != 128 && numElements < capacity / 4) {
|
1240
|
+
shrinkTable();
|
1241
|
+
return true;
|
1242
|
+
}
|
1243
|
+
|
1244
|
+
// shift elements after pos backwards
|
1245
|
+
while (true) {
|
1246
|
+
u64 shift = (pos + 1) & tableSizeMask;
|
1247
|
+
if (!occupied(metadata[shift])) return true;
|
1248
|
+
|
1249
|
+
u64 dist = distanceFromIdealSlot(shift);
|
1250
|
+
if (dist == 0) return true;
|
1251
|
+
|
1252
|
+
entryArray[pos] = std::move(entryArray[shift]);
|
1253
|
+
metadata[pos] = metadata[shift];
|
1254
|
+
metadata[shift] = 0;
|
1255
|
+
pos = shift;
|
1256
|
+
}
|
1257
|
+
}
|
1258
|
+
|
1259
|
+
i64 size() const { return numElements; }
|
1260
|
+
|
1261
|
+
HighsHashTable(HighsHashTable<K, V>&&) = default;
|
1262
|
+
HighsHashTable<K, V>& operator=(HighsHashTable<K, V>&&) = default;
|
1263
|
+
|
1264
|
+
~HighsHashTable() {
|
1265
|
+
if (!std::is_trivially_destructible<Entry>::value && metadata) {
|
1266
|
+
u64 capacity = tableSizeMask + 1;
|
1267
|
+
for (u64 i = 0; i < capacity; ++i) {
|
1268
|
+
if (occupied(metadata[i])) entries.get()[i].~Entry();
|
1269
|
+
}
|
1270
|
+
}
|
1271
|
+
}
|
1272
|
+
};
|
1273
|
+
|
1274
|
+
#endif
|