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,1079 @@
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
2
|
+
// for linear algebra.
|
3
|
+
//
|
4
|
+
// Copyright (C) 2013 Desire Nuentsa <desire.nuentsa_wakam@inria.fr>
|
5
|
+
// Copyright (C) 2013 Gael Guennebaud <gael.guennebaud@inria.fr>
|
6
|
+
//
|
7
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
8
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
9
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
10
|
+
|
11
|
+
#ifndef EIGEN_SPARSEBLOCKMATRIX_H
|
12
|
+
#define EIGEN_SPARSEBLOCKMATRIX_H
|
13
|
+
|
14
|
+
namespace Eigen {
|
15
|
+
/** \ingroup SparseCore_Module
|
16
|
+
*
|
17
|
+
* \class BlockSparseMatrix
|
18
|
+
*
|
19
|
+
* \brief A versatile sparse matrix representation where each element is a block
|
20
|
+
*
|
21
|
+
* This class provides routines to manipulate block sparse matrices stored in a
|
22
|
+
* BSR-like representation. There are two main types :
|
23
|
+
*
|
24
|
+
* 1. All blocks have the same number of rows and columns, called block size
|
25
|
+
* in the following. In this case, if this block size is known at compile time,
|
26
|
+
* it can be given as a template parameter like
|
27
|
+
* \code
|
28
|
+
* BlockSparseMatrix<Scalar, 3, ColMajor> bmat(b_rows, b_cols);
|
29
|
+
* \endcode
|
30
|
+
* Here, bmat is a b_rows x b_cols block sparse matrix
|
31
|
+
* where each coefficient is a 3x3 dense matrix.
|
32
|
+
* If the block size is fixed but will be given at runtime,
|
33
|
+
* \code
|
34
|
+
* BlockSparseMatrix<Scalar, Dynamic, ColMajor> bmat(b_rows, b_cols);
|
35
|
+
* bmat.setBlockSize(block_size);
|
36
|
+
* \endcode
|
37
|
+
*
|
38
|
+
* 2. The second case is for variable-block sparse matrices.
|
39
|
+
* Here each block has its own dimensions. The only restriction is that all the blocks
|
40
|
+
* in a row (resp. a column) should have the same number of rows (resp. of columns).
|
41
|
+
* It is thus required in this case to describe the layout of the matrix by calling
|
42
|
+
* setBlockLayout(rowBlocks, colBlocks).
|
43
|
+
*
|
44
|
+
* In any of the previous case, the matrix can be filled by calling setFromTriplets().
|
45
|
+
* A regular sparse matrix can be converted to a block sparse matrix and vice versa.
|
46
|
+
* It is obviously required to describe the block layout beforehand by calling either
|
47
|
+
* setBlockSize() for fixed-size blocks or setBlockLayout for variable-size blocks.
|
48
|
+
*
|
49
|
+
* \tparam _Scalar The Scalar type
|
50
|
+
* \tparam _BlockAtCompileTime The block layout option. It takes the following values
|
51
|
+
* Dynamic : block size known at runtime
|
52
|
+
* a numeric number : fixed-size block known at compile time
|
53
|
+
*/
|
54
|
+
template<typename _Scalar, int _BlockAtCompileTime=Dynamic, int _Options=ColMajor, typename _StorageIndex=int> class BlockSparseMatrix;
|
55
|
+
|
56
|
+
template<typename BlockSparseMatrixT> class BlockSparseMatrixView;
|
57
|
+
|
58
|
+
namespace internal {
|
59
|
+
template<typename _Scalar, int _BlockAtCompileTime, int _Options, typename _Index>
|
60
|
+
struct traits<BlockSparseMatrix<_Scalar,_BlockAtCompileTime,_Options, _Index> >
|
61
|
+
{
|
62
|
+
typedef _Scalar Scalar;
|
63
|
+
typedef _Index Index;
|
64
|
+
typedef Sparse StorageKind; // FIXME Where is it used ??
|
65
|
+
typedef MatrixXpr XprKind;
|
66
|
+
enum {
|
67
|
+
RowsAtCompileTime = Dynamic,
|
68
|
+
ColsAtCompileTime = Dynamic,
|
69
|
+
MaxRowsAtCompileTime = Dynamic,
|
70
|
+
MaxColsAtCompileTime = Dynamic,
|
71
|
+
BlockSize = _BlockAtCompileTime,
|
72
|
+
Flags = _Options | NestByRefBit | LvalueBit,
|
73
|
+
CoeffReadCost = NumTraits<Scalar>::ReadCost,
|
74
|
+
SupportedAccessPatterns = InnerRandomAccessPattern
|
75
|
+
};
|
76
|
+
};
|
77
|
+
template<typename BlockSparseMatrixT>
|
78
|
+
struct traits<BlockSparseMatrixView<BlockSparseMatrixT> >
|
79
|
+
{
|
80
|
+
typedef Ref<Matrix<typename BlockSparseMatrixT::Scalar, BlockSparseMatrixT::BlockSize, BlockSparseMatrixT::BlockSize> > Scalar;
|
81
|
+
typedef Ref<Matrix<typename BlockSparseMatrixT::RealScalar, BlockSparseMatrixT::BlockSize, BlockSparseMatrixT::BlockSize> > RealScalar;
|
82
|
+
|
83
|
+
};
|
84
|
+
|
85
|
+
// Function object to sort a triplet list
|
86
|
+
template<typename Iterator, bool IsColMajor>
|
87
|
+
struct TripletComp
|
88
|
+
{
|
89
|
+
typedef typename Iterator::value_type Triplet;
|
90
|
+
bool operator()(const Triplet& a, const Triplet& b)
|
91
|
+
{ if(IsColMajor)
|
92
|
+
return ((a.col() == b.col() && a.row() < b.row()) || (a.col() < b.col()));
|
93
|
+
else
|
94
|
+
return ((a.row() == b.row() && a.col() < b.col()) || (a.row() < b.row()));
|
95
|
+
}
|
96
|
+
};
|
97
|
+
} // end namespace internal
|
98
|
+
|
99
|
+
|
100
|
+
/* Proxy to view the block sparse matrix as a regular sparse matrix */
|
101
|
+
template<typename BlockSparseMatrixT>
|
102
|
+
class BlockSparseMatrixView : public SparseMatrixBase<BlockSparseMatrixT>
|
103
|
+
{
|
104
|
+
public:
|
105
|
+
typedef Ref<typename BlockSparseMatrixT::BlockScalar> Scalar;
|
106
|
+
typedef Ref<typename BlockSparseMatrixT::BlockRealScalar> RealScalar;
|
107
|
+
typedef typename BlockSparseMatrixT::Index Index;
|
108
|
+
typedef BlockSparseMatrixT Nested;
|
109
|
+
enum {
|
110
|
+
Flags = BlockSparseMatrixT::Options,
|
111
|
+
Options = BlockSparseMatrixT::Options,
|
112
|
+
RowsAtCompileTime = BlockSparseMatrixT::RowsAtCompileTime,
|
113
|
+
ColsAtCompileTime = BlockSparseMatrixT::ColsAtCompileTime,
|
114
|
+
MaxColsAtCompileTime = BlockSparseMatrixT::MaxColsAtCompileTime,
|
115
|
+
MaxRowsAtCompileTime = BlockSparseMatrixT::MaxRowsAtCompileTime
|
116
|
+
};
|
117
|
+
public:
|
118
|
+
BlockSparseMatrixView(const BlockSparseMatrixT& spblockmat)
|
119
|
+
: m_spblockmat(spblockmat)
|
120
|
+
{}
|
121
|
+
|
122
|
+
Index outerSize() const
|
123
|
+
{
|
124
|
+
return (Flags&RowMajorBit) == 1 ? this->rows() : this->cols();
|
125
|
+
}
|
126
|
+
Index cols() const
|
127
|
+
{
|
128
|
+
return m_spblockmat.blockCols();
|
129
|
+
}
|
130
|
+
Index rows() const
|
131
|
+
{
|
132
|
+
return m_spblockmat.blockRows();
|
133
|
+
}
|
134
|
+
Scalar coeff(Index row, Index col)
|
135
|
+
{
|
136
|
+
return m_spblockmat.coeff(row, col);
|
137
|
+
}
|
138
|
+
Scalar coeffRef(Index row, Index col)
|
139
|
+
{
|
140
|
+
return m_spblockmat.coeffRef(row, col);
|
141
|
+
}
|
142
|
+
// Wrapper to iterate over all blocks
|
143
|
+
class InnerIterator : public BlockSparseMatrixT::BlockInnerIterator
|
144
|
+
{
|
145
|
+
public:
|
146
|
+
InnerIterator(const BlockSparseMatrixView& mat, Index outer)
|
147
|
+
: BlockSparseMatrixT::BlockInnerIterator(mat.m_spblockmat, outer)
|
148
|
+
{}
|
149
|
+
|
150
|
+
};
|
151
|
+
|
152
|
+
protected:
|
153
|
+
const BlockSparseMatrixT& m_spblockmat;
|
154
|
+
};
|
155
|
+
|
156
|
+
// Proxy to view a regular vector as a block vector
|
157
|
+
template<typename BlockSparseMatrixT, typename VectorType>
|
158
|
+
class BlockVectorView
|
159
|
+
{
|
160
|
+
public:
|
161
|
+
enum {
|
162
|
+
BlockSize = BlockSparseMatrixT::BlockSize,
|
163
|
+
ColsAtCompileTime = VectorType::ColsAtCompileTime,
|
164
|
+
RowsAtCompileTime = VectorType::RowsAtCompileTime,
|
165
|
+
Flags = VectorType::Flags
|
166
|
+
};
|
167
|
+
typedef Ref<const Matrix<typename BlockSparseMatrixT::Scalar, (RowsAtCompileTime==1)? 1 : BlockSize, (ColsAtCompileTime==1)? 1 : BlockSize> >Scalar;
|
168
|
+
typedef typename BlockSparseMatrixT::Index Index;
|
169
|
+
public:
|
170
|
+
BlockVectorView(const BlockSparseMatrixT& spblockmat, const VectorType& vec)
|
171
|
+
: m_spblockmat(spblockmat),m_vec(vec)
|
172
|
+
{ }
|
173
|
+
inline Index cols() const
|
174
|
+
{
|
175
|
+
return m_vec.cols();
|
176
|
+
}
|
177
|
+
inline Index size() const
|
178
|
+
{
|
179
|
+
return m_spblockmat.blockRows();
|
180
|
+
}
|
181
|
+
inline Scalar coeff(Index bi) const
|
182
|
+
{
|
183
|
+
Index startRow = m_spblockmat.blockRowsIndex(bi);
|
184
|
+
Index rowSize = m_spblockmat.blockRowsIndex(bi+1) - startRow;
|
185
|
+
return m_vec.middleRows(startRow, rowSize);
|
186
|
+
}
|
187
|
+
inline Scalar coeff(Index bi, Index j) const
|
188
|
+
{
|
189
|
+
Index startRow = m_spblockmat.blockRowsIndex(bi);
|
190
|
+
Index rowSize = m_spblockmat.blockRowsIndex(bi+1) - startRow;
|
191
|
+
return m_vec.block(startRow, j, rowSize, 1);
|
192
|
+
}
|
193
|
+
protected:
|
194
|
+
const BlockSparseMatrixT& m_spblockmat;
|
195
|
+
const VectorType& m_vec;
|
196
|
+
};
|
197
|
+
|
198
|
+
template<typename VectorType, typename Index> class BlockVectorReturn;
|
199
|
+
|
200
|
+
|
201
|
+
// Proxy to view a regular vector as a block vector
|
202
|
+
template<typename BlockSparseMatrixT, typename VectorType>
|
203
|
+
class BlockVectorReturn
|
204
|
+
{
|
205
|
+
public:
|
206
|
+
enum {
|
207
|
+
ColsAtCompileTime = VectorType::ColsAtCompileTime,
|
208
|
+
RowsAtCompileTime = VectorType::RowsAtCompileTime,
|
209
|
+
Flags = VectorType::Flags
|
210
|
+
};
|
211
|
+
typedef Ref<Matrix<typename VectorType::Scalar, RowsAtCompileTime, ColsAtCompileTime> > Scalar;
|
212
|
+
typedef typename BlockSparseMatrixT::Index Index;
|
213
|
+
public:
|
214
|
+
BlockVectorReturn(const BlockSparseMatrixT& spblockmat, VectorType& vec)
|
215
|
+
: m_spblockmat(spblockmat),m_vec(vec)
|
216
|
+
{ }
|
217
|
+
inline Index size() const
|
218
|
+
{
|
219
|
+
return m_spblockmat.blockRows();
|
220
|
+
}
|
221
|
+
inline Scalar coeffRef(Index bi)
|
222
|
+
{
|
223
|
+
Index startRow = m_spblockmat.blockRowsIndex(bi);
|
224
|
+
Index rowSize = m_spblockmat.blockRowsIndex(bi+1) - startRow;
|
225
|
+
return m_vec.middleRows(startRow, rowSize);
|
226
|
+
}
|
227
|
+
inline Scalar coeffRef(Index bi, Index j)
|
228
|
+
{
|
229
|
+
Index startRow = m_spblockmat.blockRowsIndex(bi);
|
230
|
+
Index rowSize = m_spblockmat.blockRowsIndex(bi+1) - startRow;
|
231
|
+
return m_vec.block(startRow, j, rowSize, 1);
|
232
|
+
}
|
233
|
+
|
234
|
+
protected:
|
235
|
+
const BlockSparseMatrixT& m_spblockmat;
|
236
|
+
VectorType& m_vec;
|
237
|
+
};
|
238
|
+
|
239
|
+
// Block version of the sparse dense product
|
240
|
+
template<typename Lhs, typename Rhs>
|
241
|
+
class BlockSparseTimeDenseProduct;
|
242
|
+
|
243
|
+
namespace internal {
|
244
|
+
|
245
|
+
template<typename BlockSparseMatrixT, typename VecType>
|
246
|
+
struct traits<BlockSparseTimeDenseProduct<BlockSparseMatrixT, VecType> >
|
247
|
+
{
|
248
|
+
typedef Dense StorageKind;
|
249
|
+
typedef MatrixXpr XprKind;
|
250
|
+
typedef typename BlockSparseMatrixT::Scalar Scalar;
|
251
|
+
typedef typename BlockSparseMatrixT::Index Index;
|
252
|
+
enum {
|
253
|
+
RowsAtCompileTime = Dynamic,
|
254
|
+
ColsAtCompileTime = Dynamic,
|
255
|
+
MaxRowsAtCompileTime = Dynamic,
|
256
|
+
MaxColsAtCompileTime = Dynamic,
|
257
|
+
Flags = 0,
|
258
|
+
CoeffReadCost = internal::traits<BlockSparseMatrixT>::CoeffReadCost
|
259
|
+
};
|
260
|
+
};
|
261
|
+
} // end namespace internal
|
262
|
+
|
263
|
+
template<typename Lhs, typename Rhs>
|
264
|
+
class BlockSparseTimeDenseProduct
|
265
|
+
: public ProductBase<BlockSparseTimeDenseProduct<Lhs,Rhs>, Lhs, Rhs>
|
266
|
+
{
|
267
|
+
public:
|
268
|
+
EIGEN_PRODUCT_PUBLIC_INTERFACE(BlockSparseTimeDenseProduct)
|
269
|
+
|
270
|
+
BlockSparseTimeDenseProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
|
271
|
+
{}
|
272
|
+
|
273
|
+
template<typename Dest> void scaleAndAddTo(Dest& dest, const typename Rhs::Scalar& alpha) const
|
274
|
+
{
|
275
|
+
BlockVectorReturn<Lhs,Dest> tmpDest(m_lhs, dest);
|
276
|
+
internal::sparse_time_dense_product( BlockSparseMatrixView<Lhs>(m_lhs), BlockVectorView<Lhs, Rhs>(m_lhs, m_rhs), tmpDest, alpha);
|
277
|
+
}
|
278
|
+
|
279
|
+
private:
|
280
|
+
BlockSparseTimeDenseProduct& operator=(const BlockSparseTimeDenseProduct&);
|
281
|
+
};
|
282
|
+
|
283
|
+
template<typename _Scalar, int _BlockAtCompileTime, int _Options, typename _StorageIndex>
|
284
|
+
class BlockSparseMatrix : public SparseMatrixBase<BlockSparseMatrix<_Scalar,_BlockAtCompileTime, _Options,_StorageIndex> >
|
285
|
+
{
|
286
|
+
public:
|
287
|
+
typedef _Scalar Scalar;
|
288
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
289
|
+
typedef _StorageIndex StorageIndex;
|
290
|
+
typedef typename internal::ref_selector<BlockSparseMatrix<_Scalar, _BlockAtCompileTime, _Options, _StorageIndex> >::type Nested;
|
291
|
+
|
292
|
+
enum {
|
293
|
+
Options = _Options,
|
294
|
+
Flags = Options,
|
295
|
+
BlockSize=_BlockAtCompileTime,
|
296
|
+
RowsAtCompileTime = Dynamic,
|
297
|
+
ColsAtCompileTime = Dynamic,
|
298
|
+
MaxRowsAtCompileTime = Dynamic,
|
299
|
+
MaxColsAtCompileTime = Dynamic,
|
300
|
+
IsVectorAtCompileTime = 0,
|
301
|
+
IsColMajor = Flags&RowMajorBit ? 0 : 1
|
302
|
+
};
|
303
|
+
typedef Matrix<Scalar, _BlockAtCompileTime, _BlockAtCompileTime,IsColMajor ? ColMajor : RowMajor> BlockScalar;
|
304
|
+
typedef Matrix<RealScalar, _BlockAtCompileTime, _BlockAtCompileTime,IsColMajor ? ColMajor : RowMajor> BlockRealScalar;
|
305
|
+
typedef typename internal::conditional<_BlockAtCompileTime==Dynamic, Scalar, BlockScalar>::type BlockScalarReturnType;
|
306
|
+
typedef BlockSparseMatrix<Scalar, BlockSize, IsColMajor ? ColMajor : RowMajor, StorageIndex> PlainObject;
|
307
|
+
public:
|
308
|
+
// Default constructor
|
309
|
+
BlockSparseMatrix()
|
310
|
+
: m_innerBSize(0),m_outerBSize(0),m_innerOffset(0),m_outerOffset(0),
|
311
|
+
m_nonzerosblocks(0),m_values(0),m_blockPtr(0),m_indices(0),
|
312
|
+
m_outerIndex(0),m_blockSize(BlockSize)
|
313
|
+
{ }
|
314
|
+
|
315
|
+
|
316
|
+
/**
|
317
|
+
* \brief Construct and resize
|
318
|
+
*
|
319
|
+
*/
|
320
|
+
BlockSparseMatrix(Index brow, Index bcol)
|
321
|
+
: m_innerBSize(IsColMajor ? brow : bcol),
|
322
|
+
m_outerBSize(IsColMajor ? bcol : brow),
|
323
|
+
m_innerOffset(0),m_outerOffset(0),m_nonzerosblocks(0),
|
324
|
+
m_values(0),m_blockPtr(0),m_indices(0),
|
325
|
+
m_outerIndex(0),m_blockSize(BlockSize)
|
326
|
+
{ }
|
327
|
+
|
328
|
+
/**
|
329
|
+
* \brief Copy-constructor
|
330
|
+
*/
|
331
|
+
BlockSparseMatrix(const BlockSparseMatrix& other)
|
332
|
+
: m_innerBSize(other.m_innerBSize),m_outerBSize(other.m_outerBSize),
|
333
|
+
m_nonzerosblocks(other.m_nonzerosblocks),m_nonzeros(other.m_nonzeros),
|
334
|
+
m_blockPtr(0),m_blockSize(other.m_blockSize)
|
335
|
+
{
|
336
|
+
// should we allow copying between variable-size blocks and fixed-size blocks ??
|
337
|
+
eigen_assert(m_blockSize == BlockSize && " CAN NOT COPY BETWEEN FIXED-SIZE AND VARIABLE-SIZE BLOCKS");
|
338
|
+
|
339
|
+
std::copy(other.m_innerOffset, other.m_innerOffset+m_innerBSize+1, m_innerOffset);
|
340
|
+
std::copy(other.m_outerOffset, other.m_outerOffset+m_outerBSize+1, m_outerOffset);
|
341
|
+
std::copy(other.m_values, other.m_values+m_nonzeros, m_values);
|
342
|
+
|
343
|
+
if(m_blockSize != Dynamic)
|
344
|
+
std::copy(other.m_blockPtr, other.m_blockPtr+m_nonzerosblocks, m_blockPtr);
|
345
|
+
|
346
|
+
std::copy(other.m_indices, other.m_indices+m_nonzerosblocks, m_indices);
|
347
|
+
std::copy(other.m_outerIndex, other.m_outerIndex+m_outerBSize, m_outerIndex);
|
348
|
+
}
|
349
|
+
|
350
|
+
friend void swap(BlockSparseMatrix& first, BlockSparseMatrix& second)
|
351
|
+
{
|
352
|
+
std::swap(first.m_innerBSize, second.m_innerBSize);
|
353
|
+
std::swap(first.m_outerBSize, second.m_outerBSize);
|
354
|
+
std::swap(first.m_innerOffset, second.m_innerOffset);
|
355
|
+
std::swap(first.m_outerOffset, second.m_outerOffset);
|
356
|
+
std::swap(first.m_nonzerosblocks, second.m_nonzerosblocks);
|
357
|
+
std::swap(first.m_nonzeros, second.m_nonzeros);
|
358
|
+
std::swap(first.m_values, second.m_values);
|
359
|
+
std::swap(first.m_blockPtr, second.m_blockPtr);
|
360
|
+
std::swap(first.m_indices, second.m_indices);
|
361
|
+
std::swap(first.m_outerIndex, second.m_outerIndex);
|
362
|
+
std::swap(first.m_BlockSize, second.m_blockSize);
|
363
|
+
}
|
364
|
+
|
365
|
+
BlockSparseMatrix& operator=(BlockSparseMatrix other)
|
366
|
+
{
|
367
|
+
//Copy-and-swap paradigm ... avoid leaked data if thrown
|
368
|
+
swap(*this, other);
|
369
|
+
return *this;
|
370
|
+
}
|
371
|
+
|
372
|
+
// Destructor
|
373
|
+
~BlockSparseMatrix()
|
374
|
+
{
|
375
|
+
delete[] m_outerIndex;
|
376
|
+
delete[] m_innerOffset;
|
377
|
+
delete[] m_outerOffset;
|
378
|
+
delete[] m_indices;
|
379
|
+
delete[] m_blockPtr;
|
380
|
+
delete[] m_values;
|
381
|
+
}
|
382
|
+
|
383
|
+
|
384
|
+
/**
|
385
|
+
* \brief Constructor from a sparse matrix
|
386
|
+
*
|
387
|
+
*/
|
388
|
+
template<typename MatrixType>
|
389
|
+
inline BlockSparseMatrix(const MatrixType& spmat) : m_blockSize(BlockSize)
|
390
|
+
{
|
391
|
+
EIGEN_STATIC_ASSERT((m_blockSize != Dynamic), THIS_METHOD_IS_ONLY_FOR_FIXED_SIZE);
|
392
|
+
|
393
|
+
*this = spmat;
|
394
|
+
}
|
395
|
+
|
396
|
+
/**
|
397
|
+
* \brief Assignment from a sparse matrix with the same storage order
|
398
|
+
*
|
399
|
+
* Convert from a sparse matrix to block sparse matrix.
|
400
|
+
* \warning Before calling this function, tt is necessary to call
|
401
|
+
* either setBlockLayout() (matrices with variable-size blocks)
|
402
|
+
* or setBlockSize() (for fixed-size blocks).
|
403
|
+
*/
|
404
|
+
template<typename MatrixType>
|
405
|
+
inline BlockSparseMatrix& operator=(const MatrixType& spmat)
|
406
|
+
{
|
407
|
+
eigen_assert((m_innerBSize != 0 && m_outerBSize != 0)
|
408
|
+
&& "Trying to assign to a zero-size matrix, call resize() first");
|
409
|
+
eigen_assert(((MatrixType::Options&RowMajorBit) != IsColMajor) && "Wrong storage order");
|
410
|
+
typedef SparseMatrix<bool,MatrixType::Options,typename MatrixType::Index> MatrixPatternType;
|
411
|
+
MatrixPatternType blockPattern(blockRows(), blockCols());
|
412
|
+
m_nonzeros = 0;
|
413
|
+
|
414
|
+
// First, compute the number of nonzero blocks and their locations
|
415
|
+
for(StorageIndex bj = 0; bj < m_outerBSize; ++bj)
|
416
|
+
{
|
417
|
+
// Browse each outer block and compute the structure
|
418
|
+
std::vector<bool> nzblocksFlag(m_innerBSize,false); // Record the existing blocks
|
419
|
+
blockPattern.startVec(bj);
|
420
|
+
for(StorageIndex j = blockOuterIndex(bj); j < blockOuterIndex(bj+1); ++j)
|
421
|
+
{
|
422
|
+
typename MatrixType::InnerIterator it_spmat(spmat, j);
|
423
|
+
for(; it_spmat; ++it_spmat)
|
424
|
+
{
|
425
|
+
StorageIndex bi = innerToBlock(it_spmat.index()); // Index of the current nonzero block
|
426
|
+
if(!nzblocksFlag[bi])
|
427
|
+
{
|
428
|
+
// Save the index of this nonzero block
|
429
|
+
nzblocksFlag[bi] = true;
|
430
|
+
blockPattern.insertBackByOuterInnerUnordered(bj, bi) = true;
|
431
|
+
// Compute the total number of nonzeros (including explicit zeros in blocks)
|
432
|
+
m_nonzeros += blockOuterSize(bj) * blockInnerSize(bi);
|
433
|
+
}
|
434
|
+
}
|
435
|
+
} // end current outer block
|
436
|
+
}
|
437
|
+
blockPattern.finalize();
|
438
|
+
|
439
|
+
// Allocate the internal arrays
|
440
|
+
setBlockStructure(blockPattern);
|
441
|
+
|
442
|
+
for(StorageIndex nz = 0; nz < m_nonzeros; ++nz) m_values[nz] = Scalar(0);
|
443
|
+
for(StorageIndex bj = 0; bj < m_outerBSize; ++bj)
|
444
|
+
{
|
445
|
+
// Now copy the values
|
446
|
+
for(StorageIndex j = blockOuterIndex(bj); j < blockOuterIndex(bj+1); ++j)
|
447
|
+
{
|
448
|
+
// Browse the outer block column by column (for column-major matrices)
|
449
|
+
typename MatrixType::InnerIterator it_spmat(spmat, j);
|
450
|
+
for(; it_spmat; ++it_spmat)
|
451
|
+
{
|
452
|
+
StorageIndex idx = 0; // Position of this block in the column block
|
453
|
+
StorageIndex bi = innerToBlock(it_spmat.index()); // Index of the current nonzero block
|
454
|
+
// Go to the inner block where this element belongs to
|
455
|
+
while(bi > m_indices[m_outerIndex[bj]+idx]) ++idx; // Not expensive for ordered blocks
|
456
|
+
StorageIndex idxVal;// Get the right position in the array of values for this element
|
457
|
+
if(m_blockSize == Dynamic)
|
458
|
+
{
|
459
|
+
// Offset from all blocks before ...
|
460
|
+
idxVal = m_blockPtr[m_outerIndex[bj]+idx];
|
461
|
+
// ... and offset inside the block
|
462
|
+
idxVal += (j - blockOuterIndex(bj)) * blockOuterSize(bj) + it_spmat.index() - m_innerOffset[bi];
|
463
|
+
}
|
464
|
+
else
|
465
|
+
{
|
466
|
+
// All blocks before
|
467
|
+
idxVal = (m_outerIndex[bj] + idx) * m_blockSize * m_blockSize;
|
468
|
+
// inside the block
|
469
|
+
idxVal += (j - blockOuterIndex(bj)) * m_blockSize + (it_spmat.index()%m_blockSize);
|
470
|
+
}
|
471
|
+
// Insert the value
|
472
|
+
m_values[idxVal] = it_spmat.value();
|
473
|
+
} // end of this column
|
474
|
+
} // end of this block
|
475
|
+
} // end of this outer block
|
476
|
+
|
477
|
+
return *this;
|
478
|
+
}
|
479
|
+
|
480
|
+
/**
|
481
|
+
* \brief Set the nonzero block pattern of the matrix
|
482
|
+
*
|
483
|
+
* Given a sparse matrix describing the nonzero block pattern,
|
484
|
+
* this function prepares the internal pointers for values.
|
485
|
+
* After calling this function, any *nonzero* block (bi, bj) can be set
|
486
|
+
* with a simple call to coeffRef(bi,bj).
|
487
|
+
*
|
488
|
+
*
|
489
|
+
* \warning Before calling this function, tt is necessary to call
|
490
|
+
* either setBlockLayout() (matrices with variable-size blocks)
|
491
|
+
* or setBlockSize() (for fixed-size blocks).
|
492
|
+
*
|
493
|
+
* \param blockPattern Sparse matrix of boolean elements describing the block structure
|
494
|
+
*
|
495
|
+
* \sa setBlockLayout() \sa setBlockSize()
|
496
|
+
*/
|
497
|
+
template<typename MatrixType>
|
498
|
+
void setBlockStructure(const MatrixType& blockPattern)
|
499
|
+
{
|
500
|
+
resize(blockPattern.rows(), blockPattern.cols());
|
501
|
+
reserve(blockPattern.nonZeros());
|
502
|
+
|
503
|
+
// Browse the block pattern and set up the various pointers
|
504
|
+
m_outerIndex[0] = 0;
|
505
|
+
if(m_blockSize == Dynamic) m_blockPtr[0] = 0;
|
506
|
+
for(StorageIndex nz = 0; nz < m_nonzeros; ++nz) m_values[nz] = Scalar(0);
|
507
|
+
for(StorageIndex bj = 0; bj < m_outerBSize; ++bj)
|
508
|
+
{
|
509
|
+
//Browse each outer block
|
510
|
+
|
511
|
+
//First, copy and save the indices of nonzero blocks
|
512
|
+
//FIXME : find a way to avoid this ...
|
513
|
+
std::vector<int> nzBlockIdx;
|
514
|
+
typename MatrixType::InnerIterator it(blockPattern, bj);
|
515
|
+
for(; it; ++it)
|
516
|
+
{
|
517
|
+
nzBlockIdx.push_back(it.index());
|
518
|
+
}
|
519
|
+
std::sort(nzBlockIdx.begin(), nzBlockIdx.end());
|
520
|
+
|
521
|
+
// Now, fill block indices and (eventually) pointers to blocks
|
522
|
+
for(StorageIndex idx = 0; idx < nzBlockIdx.size(); ++idx)
|
523
|
+
{
|
524
|
+
StorageIndex offset = m_outerIndex[bj]+idx; // offset in m_indices
|
525
|
+
m_indices[offset] = nzBlockIdx[idx];
|
526
|
+
if(m_blockSize == Dynamic)
|
527
|
+
m_blockPtr[offset] = m_blockPtr[offset-1] + blockInnerSize(nzBlockIdx[idx]) * blockOuterSize(bj);
|
528
|
+
// There is no blockPtr for fixed-size blocks... not needed !???
|
529
|
+
}
|
530
|
+
// Save the pointer to the next outer block
|
531
|
+
m_outerIndex[bj+1] = m_outerIndex[bj] + nzBlockIdx.size();
|
532
|
+
}
|
533
|
+
}
|
534
|
+
|
535
|
+
/**
|
536
|
+
* \brief Set the number of rows and columns blocks
|
537
|
+
*/
|
538
|
+
inline void resize(Index brow, Index bcol)
|
539
|
+
{
|
540
|
+
m_innerBSize = IsColMajor ? brow : bcol;
|
541
|
+
m_outerBSize = IsColMajor ? bcol : brow;
|
542
|
+
}
|
543
|
+
|
544
|
+
/**
|
545
|
+
* \brief set the block size at runtime for fixed-size block layout
|
546
|
+
*
|
547
|
+
* Call this only for fixed-size blocks
|
548
|
+
*/
|
549
|
+
inline void setBlockSize(Index blockSize)
|
550
|
+
{
|
551
|
+
m_blockSize = blockSize;
|
552
|
+
}
|
553
|
+
|
554
|
+
/**
|
555
|
+
* \brief Set the row and column block layouts,
|
556
|
+
*
|
557
|
+
* This function set the size of each row and column block.
|
558
|
+
* So this function should be used only for blocks with variable size.
|
559
|
+
* \param rowBlocks : Number of rows per row block
|
560
|
+
* \param colBlocks : Number of columns per column block
|
561
|
+
* \sa resize(), setBlockSize()
|
562
|
+
*/
|
563
|
+
inline void setBlockLayout(const VectorXi& rowBlocks, const VectorXi& colBlocks)
|
564
|
+
{
|
565
|
+
const VectorXi& innerBlocks = IsColMajor ? rowBlocks : colBlocks;
|
566
|
+
const VectorXi& outerBlocks = IsColMajor ? colBlocks : rowBlocks;
|
567
|
+
eigen_assert(m_innerBSize == innerBlocks.size() && "CHECK THE NUMBER OF ROW OR COLUMN BLOCKS");
|
568
|
+
eigen_assert(m_outerBSize == outerBlocks.size() && "CHECK THE NUMBER OF ROW OR COLUMN BLOCKS");
|
569
|
+
m_outerBSize = outerBlocks.size();
|
570
|
+
// starting index of blocks... cumulative sums
|
571
|
+
m_innerOffset = new StorageIndex[m_innerBSize+1];
|
572
|
+
m_outerOffset = new StorageIndex[m_outerBSize+1];
|
573
|
+
m_innerOffset[0] = 0;
|
574
|
+
m_outerOffset[0] = 0;
|
575
|
+
std::partial_sum(&innerBlocks[0], &innerBlocks[m_innerBSize-1]+1, &m_innerOffset[1]);
|
576
|
+
std::partial_sum(&outerBlocks[0], &outerBlocks[m_outerBSize-1]+1, &m_outerOffset[1]);
|
577
|
+
|
578
|
+
// Compute the total number of nonzeros
|
579
|
+
m_nonzeros = 0;
|
580
|
+
for(StorageIndex bj = 0; bj < m_outerBSize; ++bj)
|
581
|
+
for(StorageIndex bi = 0; bi < m_innerBSize; ++bi)
|
582
|
+
m_nonzeros += outerBlocks[bj] * innerBlocks[bi];
|
583
|
+
|
584
|
+
}
|
585
|
+
|
586
|
+
/**
|
587
|
+
* \brief Allocate the internal array of pointers to blocks and their inner indices
|
588
|
+
*
|
589
|
+
* \note For fixed-size blocks, call setBlockSize() to set the block.
|
590
|
+
* And For variable-size blocks, call setBlockLayout() before using this function
|
591
|
+
*
|
592
|
+
* \param nonzerosblocks Number of nonzero blocks. The total number of nonzeros is
|
593
|
+
* is computed in setBlockLayout() for variable-size blocks
|
594
|
+
* \sa setBlockSize()
|
595
|
+
*/
|
596
|
+
inline void reserve(const Index nonzerosblocks)
|
597
|
+
{
|
598
|
+
eigen_assert((m_innerBSize != 0 && m_outerBSize != 0) &&
|
599
|
+
"TRYING TO RESERVE ZERO-SIZE MATRICES, CALL resize() first");
|
600
|
+
|
601
|
+
//FIXME Should free if already allocated
|
602
|
+
m_outerIndex = new StorageIndex[m_outerBSize+1];
|
603
|
+
|
604
|
+
m_nonzerosblocks = nonzerosblocks;
|
605
|
+
if(m_blockSize != Dynamic)
|
606
|
+
{
|
607
|
+
m_nonzeros = nonzerosblocks * (m_blockSize * m_blockSize);
|
608
|
+
m_blockPtr = 0;
|
609
|
+
}
|
610
|
+
else
|
611
|
+
{
|
612
|
+
// m_nonzeros is already computed in setBlockLayout()
|
613
|
+
m_blockPtr = new StorageIndex[m_nonzerosblocks+1];
|
614
|
+
}
|
615
|
+
m_indices = new StorageIndex[m_nonzerosblocks+1];
|
616
|
+
m_values = new Scalar[m_nonzeros];
|
617
|
+
}
|
618
|
+
|
619
|
+
|
620
|
+
/**
|
621
|
+
* \brief Fill values in a matrix from a triplet list.
|
622
|
+
*
|
623
|
+
* Each triplet item has a block stored in an Eigen dense matrix.
|
624
|
+
* The InputIterator class should provide the functions row(), col() and value()
|
625
|
+
*
|
626
|
+
* \note For fixed-size blocks, call setBlockSize() before this function.
|
627
|
+
*
|
628
|
+
* FIXME Do not accept duplicates
|
629
|
+
*/
|
630
|
+
template<typename InputIterator>
|
631
|
+
void setFromTriplets(const InputIterator& begin, const InputIterator& end)
|
632
|
+
{
|
633
|
+
eigen_assert((m_innerBSize!=0 && m_outerBSize !=0) && "ZERO BLOCKS, PLEASE CALL resize() before");
|
634
|
+
|
635
|
+
/* First, sort the triplet list
|
636
|
+
* FIXME This can be unnecessarily expensive since only the inner indices have to be sorted
|
637
|
+
* The best approach is like in SparseMatrix::setFromTriplets()
|
638
|
+
*/
|
639
|
+
internal::TripletComp<InputIterator, IsColMajor> tripletcomp;
|
640
|
+
std::sort(begin, end, tripletcomp);
|
641
|
+
|
642
|
+
/* Count the number of rows and column blocks,
|
643
|
+
* and the number of nonzero blocks per outer dimension
|
644
|
+
*/
|
645
|
+
VectorXi rowBlocks(m_innerBSize); // Size of each block row
|
646
|
+
VectorXi colBlocks(m_outerBSize); // Size of each block column
|
647
|
+
rowBlocks.setZero(); colBlocks.setZero();
|
648
|
+
VectorXi nzblock_outer(m_outerBSize); // Number of nz blocks per outer vector
|
649
|
+
VectorXi nz_outer(m_outerBSize); // Number of nz per outer vector...for variable-size blocks
|
650
|
+
nzblock_outer.setZero();
|
651
|
+
nz_outer.setZero();
|
652
|
+
for(InputIterator it(begin); it !=end; ++it)
|
653
|
+
{
|
654
|
+
eigen_assert(it->row() >= 0 && it->row() < this->blockRows() && it->col() >= 0 && it->col() < this->blockCols());
|
655
|
+
eigen_assert((it->value().rows() == it->value().cols() && (it->value().rows() == m_blockSize))
|
656
|
+
|| (m_blockSize == Dynamic));
|
657
|
+
|
658
|
+
if(m_blockSize == Dynamic)
|
659
|
+
{
|
660
|
+
eigen_assert((rowBlocks[it->row()] == 0 || rowBlocks[it->row()] == it->value().rows()) &&
|
661
|
+
"NON CORRESPONDING SIZES FOR ROW BLOCKS");
|
662
|
+
eigen_assert((colBlocks[it->col()] == 0 || colBlocks[it->col()] == it->value().cols()) &&
|
663
|
+
"NON CORRESPONDING SIZES FOR COLUMN BLOCKS");
|
664
|
+
rowBlocks[it->row()] =it->value().rows();
|
665
|
+
colBlocks[it->col()] = it->value().cols();
|
666
|
+
}
|
667
|
+
nz_outer(IsColMajor ? it->col() : it->row()) += it->value().rows() * it->value().cols();
|
668
|
+
nzblock_outer(IsColMajor ? it->col() : it->row())++;
|
669
|
+
}
|
670
|
+
// Allocate member arrays
|
671
|
+
if(m_blockSize == Dynamic) setBlockLayout(rowBlocks, colBlocks);
|
672
|
+
StorageIndex nzblocks = nzblock_outer.sum();
|
673
|
+
reserve(nzblocks);
|
674
|
+
|
675
|
+
// Temporary markers
|
676
|
+
VectorXi block_id(m_outerBSize); // To be used as a block marker during insertion
|
677
|
+
|
678
|
+
// Setup outer index pointers and markers
|
679
|
+
m_outerIndex[0] = 0;
|
680
|
+
if (m_blockSize == Dynamic) m_blockPtr[0] = 0;
|
681
|
+
for(StorageIndex bj = 0; bj < m_outerBSize; ++bj)
|
682
|
+
{
|
683
|
+
m_outerIndex[bj+1] = m_outerIndex[bj] + nzblock_outer(bj);
|
684
|
+
block_id(bj) = m_outerIndex[bj];
|
685
|
+
if(m_blockSize==Dynamic)
|
686
|
+
{
|
687
|
+
m_blockPtr[m_outerIndex[bj+1]] = m_blockPtr[m_outerIndex[bj]] + nz_outer(bj);
|
688
|
+
}
|
689
|
+
}
|
690
|
+
|
691
|
+
// Fill the matrix
|
692
|
+
for(InputIterator it(begin); it!=end; ++it)
|
693
|
+
{
|
694
|
+
StorageIndex outer = IsColMajor ? it->col() : it->row();
|
695
|
+
StorageIndex inner = IsColMajor ? it->row() : it->col();
|
696
|
+
m_indices[block_id(outer)] = inner;
|
697
|
+
StorageIndex block_size = it->value().rows()*it->value().cols();
|
698
|
+
StorageIndex nz_marker = blockPtr(block_id[outer]);
|
699
|
+
memcpy(&(m_values[nz_marker]), it->value().data(), block_size * sizeof(Scalar));
|
700
|
+
if(m_blockSize == Dynamic)
|
701
|
+
{
|
702
|
+
m_blockPtr[block_id(outer)+1] = m_blockPtr[block_id(outer)] + block_size;
|
703
|
+
}
|
704
|
+
block_id(outer)++;
|
705
|
+
}
|
706
|
+
|
707
|
+
// An alternative when the outer indices are sorted...no need to use an array of markers
|
708
|
+
// for(Index bcol = 0; bcol < m_outerBSize; ++bcol)
|
709
|
+
// {
|
710
|
+
// Index id = 0, id_nz = 0, id_nzblock = 0;
|
711
|
+
// for(InputIterator it(begin); it!=end; ++it)
|
712
|
+
// {
|
713
|
+
// while (id<bcol) // one pass should do the job unless there are empty columns
|
714
|
+
// {
|
715
|
+
// id++;
|
716
|
+
// m_outerIndex[id+1]=m_outerIndex[id];
|
717
|
+
// }
|
718
|
+
// m_outerIndex[id+1] += 1;
|
719
|
+
// m_indices[id_nzblock]=brow;
|
720
|
+
// Index block_size = it->value().rows()*it->value().cols();
|
721
|
+
// m_blockPtr[id_nzblock+1] = m_blockPtr[id_nzblock] + block_size;
|
722
|
+
// id_nzblock++;
|
723
|
+
// memcpy(&(m_values[id_nz]),it->value().data(), block_size*sizeof(Scalar));
|
724
|
+
// id_nz += block_size;
|
725
|
+
// }
|
726
|
+
// while(id < m_outerBSize-1) // Empty columns at the end
|
727
|
+
// {
|
728
|
+
// id++;
|
729
|
+
// m_outerIndex[id+1]=m_outerIndex[id];
|
730
|
+
// }
|
731
|
+
// }
|
732
|
+
}
|
733
|
+
|
734
|
+
|
735
|
+
/**
|
736
|
+
* \returns the number of rows
|
737
|
+
*/
|
738
|
+
inline Index rows() const
|
739
|
+
{
|
740
|
+
// return blockRows();
|
741
|
+
return (IsColMajor ? innerSize() : outerSize());
|
742
|
+
}
|
743
|
+
|
744
|
+
/**
|
745
|
+
* \returns the number of cols
|
746
|
+
*/
|
747
|
+
inline Index cols() const
|
748
|
+
{
|
749
|
+
// return blockCols();
|
750
|
+
return (IsColMajor ? outerSize() : innerSize());
|
751
|
+
}
|
752
|
+
|
753
|
+
inline Index innerSize() const
|
754
|
+
{
|
755
|
+
if(m_blockSize == Dynamic) return m_innerOffset[m_innerBSize];
|
756
|
+
else return (m_innerBSize * m_blockSize) ;
|
757
|
+
}
|
758
|
+
|
759
|
+
inline Index outerSize() const
|
760
|
+
{
|
761
|
+
if(m_blockSize == Dynamic) return m_outerOffset[m_outerBSize];
|
762
|
+
else return (m_outerBSize * m_blockSize) ;
|
763
|
+
}
|
764
|
+
/** \returns the number of rows grouped by blocks */
|
765
|
+
inline Index blockRows() const
|
766
|
+
{
|
767
|
+
return (IsColMajor ? m_innerBSize : m_outerBSize);
|
768
|
+
}
|
769
|
+
/** \returns the number of columns grouped by blocks */
|
770
|
+
inline Index blockCols() const
|
771
|
+
{
|
772
|
+
return (IsColMajor ? m_outerBSize : m_innerBSize);
|
773
|
+
}
|
774
|
+
|
775
|
+
inline Index outerBlocks() const { return m_outerBSize; }
|
776
|
+
inline Index innerBlocks() const { return m_innerBSize; }
|
777
|
+
|
778
|
+
/** \returns the block index where outer belongs to */
|
779
|
+
inline Index outerToBlock(Index outer) const
|
780
|
+
{
|
781
|
+
eigen_assert(outer < outerSize() && "OUTER INDEX OUT OF BOUNDS");
|
782
|
+
|
783
|
+
if(m_blockSize != Dynamic)
|
784
|
+
return (outer / m_blockSize); // Integer division
|
785
|
+
|
786
|
+
StorageIndex b_outer = 0;
|
787
|
+
while(m_outerOffset[b_outer] <= outer) ++b_outer;
|
788
|
+
return b_outer - 1;
|
789
|
+
}
|
790
|
+
/** \returns the block index where inner belongs to */
|
791
|
+
inline Index innerToBlock(Index inner) const
|
792
|
+
{
|
793
|
+
eigen_assert(inner < innerSize() && "OUTER INDEX OUT OF BOUNDS");
|
794
|
+
|
795
|
+
if(m_blockSize != Dynamic)
|
796
|
+
return (inner / m_blockSize); // Integer division
|
797
|
+
|
798
|
+
StorageIndex b_inner = 0;
|
799
|
+
while(m_innerOffset[b_inner] <= inner) ++b_inner;
|
800
|
+
return b_inner - 1;
|
801
|
+
}
|
802
|
+
|
803
|
+
/**
|
804
|
+
*\returns a reference to the (i,j) block as an Eigen Dense Matrix
|
805
|
+
*/
|
806
|
+
Ref<BlockScalar> coeffRef(Index brow, Index bcol)
|
807
|
+
{
|
808
|
+
eigen_assert(brow < blockRows() && "BLOCK ROW INDEX OUT OF BOUNDS");
|
809
|
+
eigen_assert(bcol < blockCols() && "BLOCK nzblocksFlagCOLUMN OUT OF BOUNDS");
|
810
|
+
|
811
|
+
StorageIndex rsize = IsColMajor ? blockInnerSize(brow): blockOuterSize(bcol);
|
812
|
+
StorageIndex csize = IsColMajor ? blockOuterSize(bcol) : blockInnerSize(brow);
|
813
|
+
StorageIndex inner = IsColMajor ? brow : bcol;
|
814
|
+
StorageIndex outer = IsColMajor ? bcol : brow;
|
815
|
+
StorageIndex offset = m_outerIndex[outer];
|
816
|
+
while(offset < m_outerIndex[outer+1] && m_indices[offset] != inner)
|
817
|
+
offset++;
|
818
|
+
if(m_indices[offset] == inner)
|
819
|
+
{
|
820
|
+
return Map<BlockScalar>(&(m_values[blockPtr(offset)]), rsize, csize);
|
821
|
+
}
|
822
|
+
else
|
823
|
+
{
|
824
|
+
//FIXME the block does not exist, Insert it !!!!!!!!!
|
825
|
+
eigen_assert("DYNAMIC INSERTION IS NOT YET SUPPORTED");
|
826
|
+
}
|
827
|
+
}
|
828
|
+
|
829
|
+
/**
|
830
|
+
* \returns the value of the (i,j) block as an Eigen Dense Matrix
|
831
|
+
*/
|
832
|
+
Map<const BlockScalar> coeff(Index brow, Index bcol) const
|
833
|
+
{
|
834
|
+
eigen_assert(brow < blockRows() && "BLOCK ROW INDEX OUT OF BOUNDS");
|
835
|
+
eigen_assert(bcol < blockCols() && "BLOCK COLUMN OUT OF BOUNDS");
|
836
|
+
|
837
|
+
StorageIndex rsize = IsColMajor ? blockInnerSize(brow): blockOuterSize(bcol);
|
838
|
+
StorageIndex csize = IsColMajor ? blockOuterSize(bcol) : blockInnerSize(brow);
|
839
|
+
StorageIndex inner = IsColMajor ? brow : bcol;
|
840
|
+
StorageIndex outer = IsColMajor ? bcol : brow;
|
841
|
+
StorageIndex offset = m_outerIndex[outer];
|
842
|
+
while(offset < m_outerIndex[outer+1] && m_indices[offset] != inner) offset++;
|
843
|
+
if(m_indices[offset] == inner)
|
844
|
+
{
|
845
|
+
return Map<const BlockScalar> (&(m_values[blockPtr(offset)]), rsize, csize);
|
846
|
+
}
|
847
|
+
else
|
848
|
+
// return BlockScalar::Zero(rsize, csize);
|
849
|
+
eigen_assert("NOT YET SUPPORTED");
|
850
|
+
}
|
851
|
+
|
852
|
+
// Block Matrix times vector product
|
853
|
+
template<typename VecType>
|
854
|
+
BlockSparseTimeDenseProduct<BlockSparseMatrix, VecType> operator*(const VecType& lhs) const
|
855
|
+
{
|
856
|
+
return BlockSparseTimeDenseProduct<BlockSparseMatrix, VecType>(*this, lhs);
|
857
|
+
}
|
858
|
+
|
859
|
+
/** \returns the number of nonzero blocks */
|
860
|
+
inline Index nonZerosBlocks() const { return m_nonzerosblocks; }
|
861
|
+
/** \returns the total number of nonzero elements, including eventual explicit zeros in blocks */
|
862
|
+
inline Index nonZeros() const { return m_nonzeros; }
|
863
|
+
|
864
|
+
inline BlockScalarReturnType *valuePtr() {return static_cast<BlockScalarReturnType *>(m_values);}
|
865
|
+
// inline Scalar *valuePtr(){ return m_values; }
|
866
|
+
inline StorageIndex *innerIndexPtr() {return m_indices; }
|
867
|
+
inline const StorageIndex *innerIndexPtr() const {return m_indices; }
|
868
|
+
inline StorageIndex *outerIndexPtr() {return m_outerIndex; }
|
869
|
+
inline const StorageIndex* outerIndexPtr() const {return m_outerIndex; }
|
870
|
+
|
871
|
+
/** \brief for compatibility purposes with the SparseMatrix class */
|
872
|
+
inline bool isCompressed() const {return true;}
|
873
|
+
/**
|
874
|
+
* \returns the starting index of the bi row block
|
875
|
+
*/
|
876
|
+
inline Index blockRowsIndex(Index bi) const
|
877
|
+
{
|
878
|
+
return IsColMajor ? blockInnerIndex(bi) : blockOuterIndex(bi);
|
879
|
+
}
|
880
|
+
|
881
|
+
/**
|
882
|
+
* \returns the starting index of the bj col block
|
883
|
+
*/
|
884
|
+
inline Index blockColsIndex(Index bj) const
|
885
|
+
{
|
886
|
+
return IsColMajor ? blockOuterIndex(bj) : blockInnerIndex(bj);
|
887
|
+
}
|
888
|
+
|
889
|
+
inline Index blockOuterIndex(Index bj) const
|
890
|
+
{
|
891
|
+
return (m_blockSize == Dynamic) ? m_outerOffset[bj] : (bj * m_blockSize);
|
892
|
+
}
|
893
|
+
inline Index blockInnerIndex(Index bi) const
|
894
|
+
{
|
895
|
+
return (m_blockSize == Dynamic) ? m_innerOffset[bi] : (bi * m_blockSize);
|
896
|
+
}
|
897
|
+
|
898
|
+
// Not needed ???
|
899
|
+
inline Index blockInnerSize(Index bi) const
|
900
|
+
{
|
901
|
+
return (m_blockSize == Dynamic) ? (m_innerOffset[bi+1] - m_innerOffset[bi]) : m_blockSize;
|
902
|
+
}
|
903
|
+
inline Index blockOuterSize(Index bj) const
|
904
|
+
{
|
905
|
+
return (m_blockSize == Dynamic) ? (m_outerOffset[bj+1]- m_outerOffset[bj]) : m_blockSize;
|
906
|
+
}
|
907
|
+
|
908
|
+
/**
|
909
|
+
* \brief Browse the matrix by outer index
|
910
|
+
*/
|
911
|
+
class InnerIterator; // Browse column by column
|
912
|
+
|
913
|
+
/**
|
914
|
+
* \brief Browse the matrix by block outer index
|
915
|
+
*/
|
916
|
+
class BlockInnerIterator; // Browse block by block
|
917
|
+
|
918
|
+
friend std::ostream & operator << (std::ostream & s, const BlockSparseMatrix& m)
|
919
|
+
{
|
920
|
+
for (StorageIndex j = 0; j < m.outerBlocks(); ++j)
|
921
|
+
{
|
922
|
+
BlockInnerIterator itb(m, j);
|
923
|
+
for(; itb; ++itb)
|
924
|
+
{
|
925
|
+
s << "("<<itb.row() << ", " << itb.col() << ")\n";
|
926
|
+
s << itb.value() <<"\n";
|
927
|
+
}
|
928
|
+
}
|
929
|
+
s << std::endl;
|
930
|
+
return s;
|
931
|
+
}
|
932
|
+
|
933
|
+
/**
|
934
|
+
* \returns the starting position of the block \p id in the array of values
|
935
|
+
*/
|
936
|
+
Index blockPtr(Index id) const
|
937
|
+
{
|
938
|
+
if(m_blockSize == Dynamic) return m_blockPtr[id];
|
939
|
+
else return id * m_blockSize * m_blockSize;
|
940
|
+
//return blockDynIdx(id, typename internal::conditional<(BlockSize==Dynamic), internal::true_type, internal::false_type>::type());
|
941
|
+
}
|
942
|
+
|
943
|
+
|
944
|
+
protected:
|
945
|
+
// inline Index blockDynIdx(Index id, internal::true_type) const
|
946
|
+
// {
|
947
|
+
// return m_blockPtr[id];
|
948
|
+
// }
|
949
|
+
// inline Index blockDynIdx(Index id, internal::false_type) const
|
950
|
+
// {
|
951
|
+
// return id * BlockSize * BlockSize;
|
952
|
+
// }
|
953
|
+
|
954
|
+
// To be implemented
|
955
|
+
// Insert a block at a particular location... need to make a room for that
|
956
|
+
Map<BlockScalar> insert(Index brow, Index bcol);
|
957
|
+
|
958
|
+
Index m_innerBSize; // Number of block rows
|
959
|
+
Index m_outerBSize; // Number of block columns
|
960
|
+
StorageIndex *m_innerOffset; // Starting index of each inner block (size m_innerBSize+1)
|
961
|
+
StorageIndex *m_outerOffset; // Starting index of each outer block (size m_outerBSize+1)
|
962
|
+
Index m_nonzerosblocks; // Total nonzeros blocks (lower than m_innerBSize x m_outerBSize)
|
963
|
+
Index m_nonzeros; // Total nonzeros elements
|
964
|
+
Scalar *m_values; //Values stored block column after block column (size m_nonzeros)
|
965
|
+
StorageIndex *m_blockPtr; // Pointer to the beginning of each block in m_values, size m_nonzeroblocks ... null for fixed-size blocks
|
966
|
+
StorageIndex *m_indices; //Inner block indices, size m_nonzerosblocks ... OK
|
967
|
+
StorageIndex *m_outerIndex; // Starting pointer of each block column in m_indices (size m_outerBSize)... OK
|
968
|
+
Index m_blockSize; // Size of a block for fixed-size blocks, otherwise -1
|
969
|
+
};
|
970
|
+
|
971
|
+
template<typename _Scalar, int _BlockAtCompileTime, int _Options, typename _StorageIndex>
|
972
|
+
class BlockSparseMatrix<_Scalar, _BlockAtCompileTime, _Options, _StorageIndex>::BlockInnerIterator
|
973
|
+
{
|
974
|
+
public:
|
975
|
+
|
976
|
+
enum{
|
977
|
+
Flags = _Options
|
978
|
+
};
|
979
|
+
|
980
|
+
BlockInnerIterator(const BlockSparseMatrix& mat, const Index outer)
|
981
|
+
: m_mat(mat),m_outer(outer),
|
982
|
+
m_id(mat.m_outerIndex[outer]),
|
983
|
+
m_end(mat.m_outerIndex[outer+1])
|
984
|
+
{
|
985
|
+
}
|
986
|
+
|
987
|
+
inline BlockInnerIterator& operator++() {m_id++; return *this; }
|
988
|
+
|
989
|
+
inline const Map<const BlockScalar> value() const
|
990
|
+
{
|
991
|
+
return Map<const BlockScalar>(&(m_mat.m_values[m_mat.blockPtr(m_id)]),
|
992
|
+
rows(),cols());
|
993
|
+
}
|
994
|
+
inline Map<BlockScalar> valueRef()
|
995
|
+
{
|
996
|
+
return Map<BlockScalar>(&(m_mat.m_values[m_mat.blockPtr(m_id)]),
|
997
|
+
rows(),cols());
|
998
|
+
}
|
999
|
+
// Block inner index
|
1000
|
+
inline Index index() const {return m_mat.m_indices[m_id]; }
|
1001
|
+
inline Index outer() const { return m_outer; }
|
1002
|
+
// block row index
|
1003
|
+
inline Index row() const {return index(); }
|
1004
|
+
// block column index
|
1005
|
+
inline Index col() const {return outer(); }
|
1006
|
+
// FIXME Number of rows in the current block
|
1007
|
+
inline Index rows() const { return (m_mat.m_blockSize==Dynamic) ? (m_mat.m_innerOffset[index()+1] - m_mat.m_innerOffset[index()]) : m_mat.m_blockSize; }
|
1008
|
+
// Number of columns in the current block ...
|
1009
|
+
inline Index cols() const { return (m_mat.m_blockSize==Dynamic) ? (m_mat.m_outerOffset[m_outer+1]-m_mat.m_outerOffset[m_outer]) : m_mat.m_blockSize;}
|
1010
|
+
inline operator bool() const { return (m_id < m_end); }
|
1011
|
+
|
1012
|
+
protected:
|
1013
|
+
const BlockSparseMatrix<_Scalar, _BlockAtCompileTime, _Options, StorageIndex>& m_mat;
|
1014
|
+
const Index m_outer;
|
1015
|
+
Index m_id;
|
1016
|
+
Index m_end;
|
1017
|
+
};
|
1018
|
+
|
1019
|
+
template<typename _Scalar, int _BlockAtCompileTime, int _Options, typename _StorageIndex>
|
1020
|
+
class BlockSparseMatrix<_Scalar, _BlockAtCompileTime, _Options, _StorageIndex>::InnerIterator
|
1021
|
+
{
|
1022
|
+
public:
|
1023
|
+
InnerIterator(const BlockSparseMatrix& mat, Index outer)
|
1024
|
+
: m_mat(mat),m_outerB(mat.outerToBlock(outer)),m_outer(outer),
|
1025
|
+
itb(mat, mat.outerToBlock(outer)),
|
1026
|
+
m_offset(outer - mat.blockOuterIndex(m_outerB))
|
1027
|
+
{
|
1028
|
+
if (itb)
|
1029
|
+
{
|
1030
|
+
m_id = m_mat.blockInnerIndex(itb.index());
|
1031
|
+
m_start = m_id;
|
1032
|
+
m_end = m_mat.blockInnerIndex(itb.index()+1);
|
1033
|
+
}
|
1034
|
+
}
|
1035
|
+
inline InnerIterator& operator++()
|
1036
|
+
{
|
1037
|
+
m_id++;
|
1038
|
+
if (m_id >= m_end)
|
1039
|
+
{
|
1040
|
+
++itb;
|
1041
|
+
if (itb)
|
1042
|
+
{
|
1043
|
+
m_id = m_mat.blockInnerIndex(itb.index());
|
1044
|
+
m_start = m_id;
|
1045
|
+
m_end = m_mat.blockInnerIndex(itb.index()+1);
|
1046
|
+
}
|
1047
|
+
}
|
1048
|
+
return *this;
|
1049
|
+
}
|
1050
|
+
inline const Scalar& value() const
|
1051
|
+
{
|
1052
|
+
return itb.value().coeff(m_id - m_start, m_offset);
|
1053
|
+
}
|
1054
|
+
inline Scalar& valueRef()
|
1055
|
+
{
|
1056
|
+
return itb.valueRef().coeff(m_id - m_start, m_offset);
|
1057
|
+
}
|
1058
|
+
inline Index index() const { return m_id; }
|
1059
|
+
inline Index outer() const {return m_outer; }
|
1060
|
+
inline Index col() const {return outer(); }
|
1061
|
+
inline Index row() const { return index();}
|
1062
|
+
inline operator bool() const
|
1063
|
+
{
|
1064
|
+
return itb;
|
1065
|
+
}
|
1066
|
+
protected:
|
1067
|
+
const BlockSparseMatrix& m_mat;
|
1068
|
+
const Index m_outer;
|
1069
|
+
const Index m_outerB;
|
1070
|
+
BlockInnerIterator itb; // Iterator through the blocks
|
1071
|
+
const Index m_offset; // Position of this column in the block
|
1072
|
+
Index m_start; // starting inner index of this block
|
1073
|
+
Index m_id; // current inner index in the block
|
1074
|
+
Index m_end; // starting inner index of the next block
|
1075
|
+
|
1076
|
+
};
|
1077
|
+
} // end namespace Eigen
|
1078
|
+
|
1079
|
+
#endif // EIGEN_SPARSEBLOCKMATRIX_H
|