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,2057 @@
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
2
|
+
// for linear algebra.
|
3
|
+
//
|
4
|
+
// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
|
5
|
+
// Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved.
|
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_MATHFUNCTIONS_H
|
12
|
+
#define EIGEN_MATHFUNCTIONS_H
|
13
|
+
|
14
|
+
// TODO this should better be moved to NumTraits
|
15
|
+
// Source: WolframAlpha
|
16
|
+
#define EIGEN_PI 3.141592653589793238462643383279502884197169399375105820974944592307816406L
|
17
|
+
#define EIGEN_LOG2E 1.442695040888963407359924681001892137426645954152985934135449406931109219L
|
18
|
+
#define EIGEN_LN2 0.693147180559945309417232121458176568075500134360255254120680009493393621L
|
19
|
+
|
20
|
+
namespace Eigen {
|
21
|
+
|
22
|
+
// On WINCE, std::abs is defined for int only, so let's defined our own overloads:
|
23
|
+
// This issue has been confirmed with MSVC 2008 only, but the issue might exist for more recent versions too.
|
24
|
+
#if EIGEN_OS_WINCE && EIGEN_COMP_MSVC && EIGEN_COMP_MSVC<=1500
|
25
|
+
long abs(long x) { return (labs(x)); }
|
26
|
+
double abs(double x) { return (fabs(x)); }
|
27
|
+
float abs(float x) { return (fabsf(x)); }
|
28
|
+
long double abs(long double x) { return (fabsl(x)); }
|
29
|
+
#endif
|
30
|
+
|
31
|
+
namespace internal {
|
32
|
+
|
33
|
+
/** \internal \class global_math_functions_filtering_base
|
34
|
+
*
|
35
|
+
* What it does:
|
36
|
+
* Defines a typedef 'type' as follows:
|
37
|
+
* - if type T has a member typedef Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl, then
|
38
|
+
* global_math_functions_filtering_base<T>::type is a typedef for it.
|
39
|
+
* - otherwise, global_math_functions_filtering_base<T>::type is a typedef for T.
|
40
|
+
*
|
41
|
+
* How it's used:
|
42
|
+
* To allow to defined the global math functions (like sin...) in certain cases, like the Array expressions.
|
43
|
+
* When you do sin(array1+array2), the object array1+array2 has a complicated expression type, all what you want to know
|
44
|
+
* is that it inherits ArrayBase. So we implement a partial specialization of sin_impl for ArrayBase<Derived>.
|
45
|
+
* So we must make sure to use sin_impl<ArrayBase<Derived> > and not sin_impl<Derived>, otherwise our partial specialization
|
46
|
+
* won't be used. How does sin know that? That's exactly what global_math_functions_filtering_base tells it.
|
47
|
+
*
|
48
|
+
* How it's implemented:
|
49
|
+
* SFINAE in the style of enable_if. Highly susceptible of breaking compilers. With GCC, it sure does work, but if you replace
|
50
|
+
* the typename dummy by an integer template parameter, it doesn't work anymore!
|
51
|
+
*/
|
52
|
+
|
53
|
+
template<typename T, typename dummy = void>
|
54
|
+
struct global_math_functions_filtering_base
|
55
|
+
{
|
56
|
+
typedef T type;
|
57
|
+
};
|
58
|
+
|
59
|
+
template<typename T> struct always_void { typedef void type; };
|
60
|
+
|
61
|
+
template<typename T>
|
62
|
+
struct global_math_functions_filtering_base
|
63
|
+
<T,
|
64
|
+
typename always_void<typename T::Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl>::type
|
65
|
+
>
|
66
|
+
{
|
67
|
+
typedef typename T::Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl type;
|
68
|
+
};
|
69
|
+
|
70
|
+
#define EIGEN_MATHFUNC_IMPL(func, scalar) Eigen::internal::func##_impl<typename Eigen::internal::global_math_functions_filtering_base<scalar>::type>
|
71
|
+
#define EIGEN_MATHFUNC_RETVAL(func, scalar) typename Eigen::internal::func##_retval<typename Eigen::internal::global_math_functions_filtering_base<scalar>::type>::type
|
72
|
+
|
73
|
+
/****************************************************************************
|
74
|
+
* Implementation of real *
|
75
|
+
****************************************************************************/
|
76
|
+
|
77
|
+
template<typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
|
78
|
+
struct real_default_impl
|
79
|
+
{
|
80
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
81
|
+
EIGEN_DEVICE_FUNC
|
82
|
+
static inline RealScalar run(const Scalar& x)
|
83
|
+
{
|
84
|
+
return x;
|
85
|
+
}
|
86
|
+
};
|
87
|
+
|
88
|
+
template<typename Scalar>
|
89
|
+
struct real_default_impl<Scalar,true>
|
90
|
+
{
|
91
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
92
|
+
EIGEN_DEVICE_FUNC
|
93
|
+
static inline RealScalar run(const Scalar& x)
|
94
|
+
{
|
95
|
+
using std::real;
|
96
|
+
return real(x);
|
97
|
+
}
|
98
|
+
};
|
99
|
+
|
100
|
+
template<typename Scalar> struct real_impl : real_default_impl<Scalar> {};
|
101
|
+
|
102
|
+
#if defined(EIGEN_GPU_COMPILE_PHASE)
|
103
|
+
template<typename T>
|
104
|
+
struct real_impl<std::complex<T> >
|
105
|
+
{
|
106
|
+
typedef T RealScalar;
|
107
|
+
EIGEN_DEVICE_FUNC
|
108
|
+
static inline T run(const std::complex<T>& x)
|
109
|
+
{
|
110
|
+
return x.real();
|
111
|
+
}
|
112
|
+
};
|
113
|
+
#endif
|
114
|
+
|
115
|
+
template<typename Scalar>
|
116
|
+
struct real_retval
|
117
|
+
{
|
118
|
+
typedef typename NumTraits<Scalar>::Real type;
|
119
|
+
};
|
120
|
+
|
121
|
+
/****************************************************************************
|
122
|
+
* Implementation of imag *
|
123
|
+
****************************************************************************/
|
124
|
+
|
125
|
+
template<typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
|
126
|
+
struct imag_default_impl
|
127
|
+
{
|
128
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
129
|
+
EIGEN_DEVICE_FUNC
|
130
|
+
static inline RealScalar run(const Scalar&)
|
131
|
+
{
|
132
|
+
return RealScalar(0);
|
133
|
+
}
|
134
|
+
};
|
135
|
+
|
136
|
+
template<typename Scalar>
|
137
|
+
struct imag_default_impl<Scalar,true>
|
138
|
+
{
|
139
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
140
|
+
EIGEN_DEVICE_FUNC
|
141
|
+
static inline RealScalar run(const Scalar& x)
|
142
|
+
{
|
143
|
+
using std::imag;
|
144
|
+
return imag(x);
|
145
|
+
}
|
146
|
+
};
|
147
|
+
|
148
|
+
template<typename Scalar> struct imag_impl : imag_default_impl<Scalar> {};
|
149
|
+
|
150
|
+
#if defined(EIGEN_GPU_COMPILE_PHASE)
|
151
|
+
template<typename T>
|
152
|
+
struct imag_impl<std::complex<T> >
|
153
|
+
{
|
154
|
+
typedef T RealScalar;
|
155
|
+
EIGEN_DEVICE_FUNC
|
156
|
+
static inline T run(const std::complex<T>& x)
|
157
|
+
{
|
158
|
+
return x.imag();
|
159
|
+
}
|
160
|
+
};
|
161
|
+
#endif
|
162
|
+
|
163
|
+
template<typename Scalar>
|
164
|
+
struct imag_retval
|
165
|
+
{
|
166
|
+
typedef typename NumTraits<Scalar>::Real type;
|
167
|
+
};
|
168
|
+
|
169
|
+
/****************************************************************************
|
170
|
+
* Implementation of real_ref *
|
171
|
+
****************************************************************************/
|
172
|
+
|
173
|
+
template<typename Scalar>
|
174
|
+
struct real_ref_impl
|
175
|
+
{
|
176
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
177
|
+
EIGEN_DEVICE_FUNC
|
178
|
+
static inline RealScalar& run(Scalar& x)
|
179
|
+
{
|
180
|
+
return reinterpret_cast<RealScalar*>(&x)[0];
|
181
|
+
}
|
182
|
+
EIGEN_DEVICE_FUNC
|
183
|
+
static inline const RealScalar& run(const Scalar& x)
|
184
|
+
{
|
185
|
+
return reinterpret_cast<const RealScalar*>(&x)[0];
|
186
|
+
}
|
187
|
+
};
|
188
|
+
|
189
|
+
template<typename Scalar>
|
190
|
+
struct real_ref_retval
|
191
|
+
{
|
192
|
+
typedef typename NumTraits<Scalar>::Real & type;
|
193
|
+
};
|
194
|
+
|
195
|
+
/****************************************************************************
|
196
|
+
* Implementation of imag_ref *
|
197
|
+
****************************************************************************/
|
198
|
+
|
199
|
+
template<typename Scalar, bool IsComplex>
|
200
|
+
struct imag_ref_default_impl
|
201
|
+
{
|
202
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
203
|
+
EIGEN_DEVICE_FUNC
|
204
|
+
static inline RealScalar& run(Scalar& x)
|
205
|
+
{
|
206
|
+
return reinterpret_cast<RealScalar*>(&x)[1];
|
207
|
+
}
|
208
|
+
EIGEN_DEVICE_FUNC
|
209
|
+
static inline const RealScalar& run(const Scalar& x)
|
210
|
+
{
|
211
|
+
return reinterpret_cast<RealScalar*>(&x)[1];
|
212
|
+
}
|
213
|
+
};
|
214
|
+
|
215
|
+
template<typename Scalar>
|
216
|
+
struct imag_ref_default_impl<Scalar, false>
|
217
|
+
{
|
218
|
+
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
219
|
+
static inline Scalar run(Scalar&)
|
220
|
+
{
|
221
|
+
return Scalar(0);
|
222
|
+
}
|
223
|
+
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
|
224
|
+
static inline const Scalar run(const Scalar&)
|
225
|
+
{
|
226
|
+
return Scalar(0);
|
227
|
+
}
|
228
|
+
};
|
229
|
+
|
230
|
+
template<typename Scalar>
|
231
|
+
struct imag_ref_impl : imag_ref_default_impl<Scalar, NumTraits<Scalar>::IsComplex> {};
|
232
|
+
|
233
|
+
template<typename Scalar>
|
234
|
+
struct imag_ref_retval
|
235
|
+
{
|
236
|
+
typedef typename NumTraits<Scalar>::Real & type;
|
237
|
+
};
|
238
|
+
|
239
|
+
/****************************************************************************
|
240
|
+
* Implementation of conj *
|
241
|
+
****************************************************************************/
|
242
|
+
|
243
|
+
template<typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
|
244
|
+
struct conj_default_impl
|
245
|
+
{
|
246
|
+
EIGEN_DEVICE_FUNC
|
247
|
+
static inline Scalar run(const Scalar& x)
|
248
|
+
{
|
249
|
+
return x;
|
250
|
+
}
|
251
|
+
};
|
252
|
+
|
253
|
+
template<typename Scalar>
|
254
|
+
struct conj_default_impl<Scalar,true>
|
255
|
+
{
|
256
|
+
EIGEN_DEVICE_FUNC
|
257
|
+
static inline Scalar run(const Scalar& x)
|
258
|
+
{
|
259
|
+
using std::conj;
|
260
|
+
return conj(x);
|
261
|
+
}
|
262
|
+
};
|
263
|
+
|
264
|
+
template<typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
|
265
|
+
struct conj_impl : conj_default_impl<Scalar, IsComplex> {};
|
266
|
+
|
267
|
+
template<typename Scalar>
|
268
|
+
struct conj_retval
|
269
|
+
{
|
270
|
+
typedef Scalar type;
|
271
|
+
};
|
272
|
+
|
273
|
+
/****************************************************************************
|
274
|
+
* Implementation of abs2 *
|
275
|
+
****************************************************************************/
|
276
|
+
|
277
|
+
template<typename Scalar,bool IsComplex>
|
278
|
+
struct abs2_impl_default
|
279
|
+
{
|
280
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
281
|
+
EIGEN_DEVICE_FUNC
|
282
|
+
static inline RealScalar run(const Scalar& x)
|
283
|
+
{
|
284
|
+
return x*x;
|
285
|
+
}
|
286
|
+
};
|
287
|
+
|
288
|
+
template<typename Scalar>
|
289
|
+
struct abs2_impl_default<Scalar, true> // IsComplex
|
290
|
+
{
|
291
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
292
|
+
EIGEN_DEVICE_FUNC
|
293
|
+
static inline RealScalar run(const Scalar& x)
|
294
|
+
{
|
295
|
+
return x.real()*x.real() + x.imag()*x.imag();
|
296
|
+
}
|
297
|
+
};
|
298
|
+
|
299
|
+
template<typename Scalar>
|
300
|
+
struct abs2_impl
|
301
|
+
{
|
302
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
303
|
+
EIGEN_DEVICE_FUNC
|
304
|
+
static inline RealScalar run(const Scalar& x)
|
305
|
+
{
|
306
|
+
return abs2_impl_default<Scalar,NumTraits<Scalar>::IsComplex>::run(x);
|
307
|
+
}
|
308
|
+
};
|
309
|
+
|
310
|
+
template<typename Scalar>
|
311
|
+
struct abs2_retval
|
312
|
+
{
|
313
|
+
typedef typename NumTraits<Scalar>::Real type;
|
314
|
+
};
|
315
|
+
|
316
|
+
/****************************************************************************
|
317
|
+
* Implementation of sqrt/rsqrt *
|
318
|
+
****************************************************************************/
|
319
|
+
|
320
|
+
template<typename Scalar>
|
321
|
+
struct sqrt_impl
|
322
|
+
{
|
323
|
+
EIGEN_DEVICE_FUNC
|
324
|
+
static EIGEN_ALWAYS_INLINE Scalar run(const Scalar& x)
|
325
|
+
{
|
326
|
+
EIGEN_USING_STD(sqrt);
|
327
|
+
return sqrt(x);
|
328
|
+
}
|
329
|
+
};
|
330
|
+
|
331
|
+
// Complex sqrt defined in MathFunctionsImpl.h.
|
332
|
+
template<typename T> EIGEN_DEVICE_FUNC std::complex<T> complex_sqrt(const std::complex<T>& a_x);
|
333
|
+
|
334
|
+
// Custom implementation is faster than `std::sqrt`, works on
|
335
|
+
// GPU, and correctly handles special cases (unlike MSVC).
|
336
|
+
template<typename T>
|
337
|
+
struct sqrt_impl<std::complex<T> >
|
338
|
+
{
|
339
|
+
EIGEN_DEVICE_FUNC
|
340
|
+
static EIGEN_ALWAYS_INLINE std::complex<T> run(const std::complex<T>& x)
|
341
|
+
{
|
342
|
+
return complex_sqrt<T>(x);
|
343
|
+
}
|
344
|
+
};
|
345
|
+
|
346
|
+
template<typename Scalar>
|
347
|
+
struct sqrt_retval
|
348
|
+
{
|
349
|
+
typedef Scalar type;
|
350
|
+
};
|
351
|
+
|
352
|
+
// Default implementation relies on numext::sqrt, at bottom of file.
|
353
|
+
template<typename T>
|
354
|
+
struct rsqrt_impl;
|
355
|
+
|
356
|
+
// Complex rsqrt defined in MathFunctionsImpl.h.
|
357
|
+
template<typename T> EIGEN_DEVICE_FUNC std::complex<T> complex_rsqrt(const std::complex<T>& a_x);
|
358
|
+
|
359
|
+
template<typename T>
|
360
|
+
struct rsqrt_impl<std::complex<T> >
|
361
|
+
{
|
362
|
+
EIGEN_DEVICE_FUNC
|
363
|
+
static EIGEN_ALWAYS_INLINE std::complex<T> run(const std::complex<T>& x)
|
364
|
+
{
|
365
|
+
return complex_rsqrt<T>(x);
|
366
|
+
}
|
367
|
+
};
|
368
|
+
|
369
|
+
template<typename Scalar>
|
370
|
+
struct rsqrt_retval
|
371
|
+
{
|
372
|
+
typedef Scalar type;
|
373
|
+
};
|
374
|
+
|
375
|
+
/****************************************************************************
|
376
|
+
* Implementation of norm1 *
|
377
|
+
****************************************************************************/
|
378
|
+
|
379
|
+
template<typename Scalar, bool IsComplex>
|
380
|
+
struct norm1_default_impl;
|
381
|
+
|
382
|
+
template<typename Scalar>
|
383
|
+
struct norm1_default_impl<Scalar,true>
|
384
|
+
{
|
385
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
386
|
+
EIGEN_DEVICE_FUNC
|
387
|
+
static inline RealScalar run(const Scalar& x)
|
388
|
+
{
|
389
|
+
EIGEN_USING_STD(abs);
|
390
|
+
return abs(x.real()) + abs(x.imag());
|
391
|
+
}
|
392
|
+
};
|
393
|
+
|
394
|
+
template<typename Scalar>
|
395
|
+
struct norm1_default_impl<Scalar, false>
|
396
|
+
{
|
397
|
+
EIGEN_DEVICE_FUNC
|
398
|
+
static inline Scalar run(const Scalar& x)
|
399
|
+
{
|
400
|
+
EIGEN_USING_STD(abs);
|
401
|
+
return abs(x);
|
402
|
+
}
|
403
|
+
};
|
404
|
+
|
405
|
+
template<typename Scalar>
|
406
|
+
struct norm1_impl : norm1_default_impl<Scalar, NumTraits<Scalar>::IsComplex> {};
|
407
|
+
|
408
|
+
template<typename Scalar>
|
409
|
+
struct norm1_retval
|
410
|
+
{
|
411
|
+
typedef typename NumTraits<Scalar>::Real type;
|
412
|
+
};
|
413
|
+
|
414
|
+
/****************************************************************************
|
415
|
+
* Implementation of hypot *
|
416
|
+
****************************************************************************/
|
417
|
+
|
418
|
+
template<typename Scalar> struct hypot_impl;
|
419
|
+
|
420
|
+
template<typename Scalar>
|
421
|
+
struct hypot_retval
|
422
|
+
{
|
423
|
+
typedef typename NumTraits<Scalar>::Real type;
|
424
|
+
};
|
425
|
+
|
426
|
+
/****************************************************************************
|
427
|
+
* Implementation of cast *
|
428
|
+
****************************************************************************/
|
429
|
+
|
430
|
+
template<typename OldType, typename NewType, typename EnableIf = void>
|
431
|
+
struct cast_impl
|
432
|
+
{
|
433
|
+
EIGEN_DEVICE_FUNC
|
434
|
+
static inline NewType run(const OldType& x)
|
435
|
+
{
|
436
|
+
return static_cast<NewType>(x);
|
437
|
+
}
|
438
|
+
};
|
439
|
+
|
440
|
+
// Casting from S -> Complex<T> leads to an implicit conversion from S to T,
|
441
|
+
// generating warnings on clang. Here we explicitly cast the real component.
|
442
|
+
template<typename OldType, typename NewType>
|
443
|
+
struct cast_impl<OldType, NewType,
|
444
|
+
typename internal::enable_if<
|
445
|
+
!NumTraits<OldType>::IsComplex && NumTraits<NewType>::IsComplex
|
446
|
+
>::type>
|
447
|
+
{
|
448
|
+
EIGEN_DEVICE_FUNC
|
449
|
+
static inline NewType run(const OldType& x)
|
450
|
+
{
|
451
|
+
typedef typename NumTraits<NewType>::Real NewReal;
|
452
|
+
return static_cast<NewType>(static_cast<NewReal>(x));
|
453
|
+
}
|
454
|
+
};
|
455
|
+
|
456
|
+
// here, for once, we're plainly returning NewType: we don't want cast to do weird things.
|
457
|
+
|
458
|
+
template<typename OldType, typename NewType>
|
459
|
+
EIGEN_DEVICE_FUNC
|
460
|
+
inline NewType cast(const OldType& x)
|
461
|
+
{
|
462
|
+
return cast_impl<OldType, NewType>::run(x);
|
463
|
+
}
|
464
|
+
|
465
|
+
/****************************************************************************
|
466
|
+
* Implementation of round *
|
467
|
+
****************************************************************************/
|
468
|
+
|
469
|
+
template<typename Scalar>
|
470
|
+
struct round_impl
|
471
|
+
{
|
472
|
+
EIGEN_DEVICE_FUNC
|
473
|
+
static inline Scalar run(const Scalar& x)
|
474
|
+
{
|
475
|
+
EIGEN_STATIC_ASSERT((!NumTraits<Scalar>::IsComplex), NUMERIC_TYPE_MUST_BE_REAL)
|
476
|
+
#if EIGEN_HAS_CXX11_MATH
|
477
|
+
EIGEN_USING_STD(round);
|
478
|
+
#endif
|
479
|
+
return Scalar(round(x));
|
480
|
+
}
|
481
|
+
};
|
482
|
+
|
483
|
+
#if !EIGEN_HAS_CXX11_MATH
|
484
|
+
#if EIGEN_HAS_C99_MATH
|
485
|
+
// Use ::roundf for float.
|
486
|
+
template<>
|
487
|
+
struct round_impl<float> {
|
488
|
+
EIGEN_DEVICE_FUNC
|
489
|
+
static inline float run(const float& x)
|
490
|
+
{
|
491
|
+
return ::roundf(x);
|
492
|
+
}
|
493
|
+
};
|
494
|
+
#else
|
495
|
+
template<typename Scalar>
|
496
|
+
struct round_using_floor_ceil_impl
|
497
|
+
{
|
498
|
+
EIGEN_DEVICE_FUNC
|
499
|
+
static inline Scalar run(const Scalar& x)
|
500
|
+
{
|
501
|
+
EIGEN_STATIC_ASSERT((!NumTraits<Scalar>::IsComplex), NUMERIC_TYPE_MUST_BE_REAL)
|
502
|
+
// Without C99 round/roundf, resort to floor/ceil.
|
503
|
+
EIGEN_USING_STD(floor);
|
504
|
+
EIGEN_USING_STD(ceil);
|
505
|
+
// If not enough precision to resolve a decimal at all, return the input.
|
506
|
+
// Otherwise, adding 0.5 can trigger an increment by 1.
|
507
|
+
const Scalar limit = Scalar(1ull << (NumTraits<Scalar>::digits() - 1));
|
508
|
+
if (x >= limit || x <= -limit) {
|
509
|
+
return x;
|
510
|
+
}
|
511
|
+
return (x > Scalar(0)) ? Scalar(floor(x + Scalar(0.5))) : Scalar(ceil(x - Scalar(0.5)));
|
512
|
+
}
|
513
|
+
};
|
514
|
+
|
515
|
+
template<>
|
516
|
+
struct round_impl<float> : round_using_floor_ceil_impl<float> {};
|
517
|
+
|
518
|
+
template<>
|
519
|
+
struct round_impl<double> : round_using_floor_ceil_impl<double> {};
|
520
|
+
#endif // EIGEN_HAS_C99_MATH
|
521
|
+
#endif // !EIGEN_HAS_CXX11_MATH
|
522
|
+
|
523
|
+
template<typename Scalar>
|
524
|
+
struct round_retval
|
525
|
+
{
|
526
|
+
typedef Scalar type;
|
527
|
+
};
|
528
|
+
|
529
|
+
/****************************************************************************
|
530
|
+
* Implementation of rint *
|
531
|
+
****************************************************************************/
|
532
|
+
|
533
|
+
template<typename Scalar>
|
534
|
+
struct rint_impl {
|
535
|
+
EIGEN_DEVICE_FUNC
|
536
|
+
static inline Scalar run(const Scalar& x)
|
537
|
+
{
|
538
|
+
EIGEN_STATIC_ASSERT((!NumTraits<Scalar>::IsComplex), NUMERIC_TYPE_MUST_BE_REAL)
|
539
|
+
#if EIGEN_HAS_CXX11_MATH
|
540
|
+
EIGEN_USING_STD(rint);
|
541
|
+
#endif
|
542
|
+
return rint(x);
|
543
|
+
}
|
544
|
+
};
|
545
|
+
|
546
|
+
#if !EIGEN_HAS_CXX11_MATH
|
547
|
+
template<>
|
548
|
+
struct rint_impl<double> {
|
549
|
+
EIGEN_DEVICE_FUNC
|
550
|
+
static inline double run(const double& x)
|
551
|
+
{
|
552
|
+
return ::rint(x);
|
553
|
+
}
|
554
|
+
};
|
555
|
+
template<>
|
556
|
+
struct rint_impl<float> {
|
557
|
+
EIGEN_DEVICE_FUNC
|
558
|
+
static inline float run(const float& x)
|
559
|
+
{
|
560
|
+
return ::rintf(x);
|
561
|
+
}
|
562
|
+
};
|
563
|
+
#endif
|
564
|
+
|
565
|
+
template<typename Scalar>
|
566
|
+
struct rint_retval
|
567
|
+
{
|
568
|
+
typedef Scalar type;
|
569
|
+
};
|
570
|
+
|
571
|
+
/****************************************************************************
|
572
|
+
* Implementation of arg *
|
573
|
+
****************************************************************************/
|
574
|
+
|
575
|
+
// Visual Studio 2017 has a bug where arg(float) returns 0 for negative inputs.
|
576
|
+
// This seems to be fixed in VS 2019.
|
577
|
+
#if EIGEN_HAS_CXX11_MATH && (!EIGEN_COMP_MSVC || EIGEN_COMP_MSVC >= 1920)
|
578
|
+
// std::arg is only defined for types of std::complex, or integer types or float/double/long double
|
579
|
+
template<typename Scalar,
|
580
|
+
bool HasStdImpl = NumTraits<Scalar>::IsComplex || is_integral<Scalar>::value
|
581
|
+
|| is_same<Scalar, float>::value || is_same<Scalar, double>::value
|
582
|
+
|| is_same<Scalar, long double>::value >
|
583
|
+
struct arg_default_impl;
|
584
|
+
|
585
|
+
template<typename Scalar>
|
586
|
+
struct arg_default_impl<Scalar, true> {
|
587
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
588
|
+
EIGEN_DEVICE_FUNC
|
589
|
+
static inline RealScalar run(const Scalar& x)
|
590
|
+
{
|
591
|
+
#if defined(EIGEN_HIP_DEVICE_COMPILE)
|
592
|
+
// HIP does not seem to have a native device side implementation for the math routine "arg"
|
593
|
+
using std::arg;
|
594
|
+
#else
|
595
|
+
EIGEN_USING_STD(arg);
|
596
|
+
#endif
|
597
|
+
return static_cast<RealScalar>(arg(x));
|
598
|
+
}
|
599
|
+
};
|
600
|
+
|
601
|
+
// Must be non-complex floating-point type (e.g. half/bfloat16).
|
602
|
+
template<typename Scalar>
|
603
|
+
struct arg_default_impl<Scalar, false> {
|
604
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
605
|
+
EIGEN_DEVICE_FUNC
|
606
|
+
static inline RealScalar run(const Scalar& x)
|
607
|
+
{
|
608
|
+
return (x < Scalar(0)) ? RealScalar(EIGEN_PI) : RealScalar(0);
|
609
|
+
}
|
610
|
+
};
|
611
|
+
#else
|
612
|
+
template<typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
|
613
|
+
struct arg_default_impl
|
614
|
+
{
|
615
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
616
|
+
EIGEN_DEVICE_FUNC
|
617
|
+
static inline RealScalar run(const Scalar& x)
|
618
|
+
{
|
619
|
+
return (x < RealScalar(0)) ? RealScalar(EIGEN_PI) : RealScalar(0);
|
620
|
+
}
|
621
|
+
};
|
622
|
+
|
623
|
+
template<typename Scalar>
|
624
|
+
struct arg_default_impl<Scalar,true>
|
625
|
+
{
|
626
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
627
|
+
EIGEN_DEVICE_FUNC
|
628
|
+
static inline RealScalar run(const Scalar& x)
|
629
|
+
{
|
630
|
+
EIGEN_USING_STD(arg);
|
631
|
+
return arg(x);
|
632
|
+
}
|
633
|
+
};
|
634
|
+
#endif
|
635
|
+
template<typename Scalar> struct arg_impl : arg_default_impl<Scalar> {};
|
636
|
+
|
637
|
+
template<typename Scalar>
|
638
|
+
struct arg_retval
|
639
|
+
{
|
640
|
+
typedef typename NumTraits<Scalar>::Real type;
|
641
|
+
};
|
642
|
+
|
643
|
+
/****************************************************************************
|
644
|
+
* Implementation of expm1 *
|
645
|
+
****************************************************************************/
|
646
|
+
|
647
|
+
// This implementation is based on GSL Math's expm1.
|
648
|
+
namespace std_fallback {
|
649
|
+
// fallback expm1 implementation in case there is no expm1(Scalar) function in namespace of Scalar,
|
650
|
+
// or that there is no suitable std::expm1 function available. Implementation
|
651
|
+
// attributed to Kahan. See: http://www.plunk.org/~hatch/rightway.php.
|
652
|
+
template<typename Scalar>
|
653
|
+
EIGEN_DEVICE_FUNC inline Scalar expm1(const Scalar& x) {
|
654
|
+
EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar)
|
655
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
656
|
+
|
657
|
+
EIGEN_USING_STD(exp);
|
658
|
+
Scalar u = exp(x);
|
659
|
+
if (numext::equal_strict(u, Scalar(1))) {
|
660
|
+
return x;
|
661
|
+
}
|
662
|
+
Scalar um1 = u - RealScalar(1);
|
663
|
+
if (numext::equal_strict(um1, Scalar(-1))) {
|
664
|
+
return RealScalar(-1);
|
665
|
+
}
|
666
|
+
|
667
|
+
EIGEN_USING_STD(log);
|
668
|
+
Scalar logu = log(u);
|
669
|
+
return numext::equal_strict(u, logu) ? u : (u - RealScalar(1)) * x / logu;
|
670
|
+
}
|
671
|
+
}
|
672
|
+
|
673
|
+
template<typename Scalar>
|
674
|
+
struct expm1_impl {
|
675
|
+
EIGEN_DEVICE_FUNC static inline Scalar run(const Scalar& x)
|
676
|
+
{
|
677
|
+
EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar)
|
678
|
+
#if EIGEN_HAS_CXX11_MATH
|
679
|
+
using std::expm1;
|
680
|
+
#else
|
681
|
+
using std_fallback::expm1;
|
682
|
+
#endif
|
683
|
+
return expm1(x);
|
684
|
+
}
|
685
|
+
};
|
686
|
+
|
687
|
+
template<typename Scalar>
|
688
|
+
struct expm1_retval
|
689
|
+
{
|
690
|
+
typedef Scalar type;
|
691
|
+
};
|
692
|
+
|
693
|
+
/****************************************************************************
|
694
|
+
* Implementation of log *
|
695
|
+
****************************************************************************/
|
696
|
+
|
697
|
+
// Complex log defined in MathFunctionsImpl.h.
|
698
|
+
template<typename T> EIGEN_DEVICE_FUNC std::complex<T> complex_log(const std::complex<T>& z);
|
699
|
+
|
700
|
+
template<typename Scalar>
|
701
|
+
struct log_impl {
|
702
|
+
EIGEN_DEVICE_FUNC static inline Scalar run(const Scalar& x)
|
703
|
+
{
|
704
|
+
EIGEN_USING_STD(log);
|
705
|
+
return static_cast<Scalar>(log(x));
|
706
|
+
}
|
707
|
+
};
|
708
|
+
|
709
|
+
template<typename Scalar>
|
710
|
+
struct log_impl<std::complex<Scalar> > {
|
711
|
+
EIGEN_DEVICE_FUNC static inline std::complex<Scalar> run(const std::complex<Scalar>& z)
|
712
|
+
{
|
713
|
+
return complex_log(z);
|
714
|
+
}
|
715
|
+
};
|
716
|
+
|
717
|
+
/****************************************************************************
|
718
|
+
* Implementation of log1p *
|
719
|
+
****************************************************************************/
|
720
|
+
|
721
|
+
namespace std_fallback {
|
722
|
+
// fallback log1p implementation in case there is no log1p(Scalar) function in namespace of Scalar,
|
723
|
+
// or that there is no suitable std::log1p function available
|
724
|
+
template<typename Scalar>
|
725
|
+
EIGEN_DEVICE_FUNC inline Scalar log1p(const Scalar& x) {
|
726
|
+
EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar)
|
727
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
728
|
+
EIGEN_USING_STD(log);
|
729
|
+
Scalar x1p = RealScalar(1) + x;
|
730
|
+
Scalar log_1p = log_impl<Scalar>::run(x1p);
|
731
|
+
const bool is_small = numext::equal_strict(x1p, Scalar(1));
|
732
|
+
const bool is_inf = numext::equal_strict(x1p, log_1p);
|
733
|
+
return (is_small || is_inf) ? x : x * (log_1p / (x1p - RealScalar(1)));
|
734
|
+
}
|
735
|
+
}
|
736
|
+
|
737
|
+
template<typename Scalar>
|
738
|
+
struct log1p_impl {
|
739
|
+
EIGEN_DEVICE_FUNC static inline Scalar run(const Scalar& x)
|
740
|
+
{
|
741
|
+
EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar)
|
742
|
+
#if EIGEN_HAS_CXX11_MATH
|
743
|
+
using std::log1p;
|
744
|
+
#else
|
745
|
+
using std_fallback::log1p;
|
746
|
+
#endif
|
747
|
+
return log1p(x);
|
748
|
+
}
|
749
|
+
};
|
750
|
+
|
751
|
+
// Specialization for complex types that are not supported by std::log1p.
|
752
|
+
template <typename RealScalar>
|
753
|
+
struct log1p_impl<std::complex<RealScalar> > {
|
754
|
+
EIGEN_DEVICE_FUNC static inline std::complex<RealScalar> run(
|
755
|
+
const std::complex<RealScalar>& x) {
|
756
|
+
EIGEN_STATIC_ASSERT_NON_INTEGER(RealScalar)
|
757
|
+
return std_fallback::log1p(x);
|
758
|
+
}
|
759
|
+
};
|
760
|
+
|
761
|
+
template<typename Scalar>
|
762
|
+
struct log1p_retval
|
763
|
+
{
|
764
|
+
typedef Scalar type;
|
765
|
+
};
|
766
|
+
|
767
|
+
/****************************************************************************
|
768
|
+
* Implementation of pow *
|
769
|
+
****************************************************************************/
|
770
|
+
|
771
|
+
template<typename ScalarX,typename ScalarY, bool IsInteger = NumTraits<ScalarX>::IsInteger&&NumTraits<ScalarY>::IsInteger>
|
772
|
+
struct pow_impl
|
773
|
+
{
|
774
|
+
//typedef Scalar retval;
|
775
|
+
typedef typename ScalarBinaryOpTraits<ScalarX,ScalarY,internal::scalar_pow_op<ScalarX,ScalarY> >::ReturnType result_type;
|
776
|
+
static EIGEN_DEVICE_FUNC inline result_type run(const ScalarX& x, const ScalarY& y)
|
777
|
+
{
|
778
|
+
EIGEN_USING_STD(pow);
|
779
|
+
return pow(x, y);
|
780
|
+
}
|
781
|
+
};
|
782
|
+
|
783
|
+
template<typename ScalarX,typename ScalarY>
|
784
|
+
struct pow_impl<ScalarX,ScalarY, true>
|
785
|
+
{
|
786
|
+
typedef ScalarX result_type;
|
787
|
+
static EIGEN_DEVICE_FUNC inline ScalarX run(ScalarX x, ScalarY y)
|
788
|
+
{
|
789
|
+
ScalarX res(1);
|
790
|
+
eigen_assert(!NumTraits<ScalarY>::IsSigned || y >= 0);
|
791
|
+
if(y & 1) res *= x;
|
792
|
+
y >>= 1;
|
793
|
+
while(y)
|
794
|
+
{
|
795
|
+
x *= x;
|
796
|
+
if(y&1) res *= x;
|
797
|
+
y >>= 1;
|
798
|
+
}
|
799
|
+
return res;
|
800
|
+
}
|
801
|
+
};
|
802
|
+
|
803
|
+
/****************************************************************************
|
804
|
+
* Implementation of random *
|
805
|
+
****************************************************************************/
|
806
|
+
|
807
|
+
template<typename Scalar,
|
808
|
+
bool IsComplex,
|
809
|
+
bool IsInteger>
|
810
|
+
struct random_default_impl {};
|
811
|
+
|
812
|
+
template<typename Scalar>
|
813
|
+
struct random_impl : random_default_impl<Scalar, NumTraits<Scalar>::IsComplex, NumTraits<Scalar>::IsInteger> {};
|
814
|
+
|
815
|
+
template<typename Scalar>
|
816
|
+
struct random_retval
|
817
|
+
{
|
818
|
+
typedef Scalar type;
|
819
|
+
};
|
820
|
+
|
821
|
+
template<typename Scalar> inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random(const Scalar& x, const Scalar& y);
|
822
|
+
template<typename Scalar> inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random();
|
823
|
+
|
824
|
+
template<typename Scalar>
|
825
|
+
struct random_default_impl<Scalar, false, false>
|
826
|
+
{
|
827
|
+
static inline Scalar run(const Scalar& x, const Scalar& y)
|
828
|
+
{
|
829
|
+
return x + (y-x) * Scalar(std::rand()) / Scalar(RAND_MAX);
|
830
|
+
}
|
831
|
+
static inline Scalar run()
|
832
|
+
{
|
833
|
+
return run(Scalar(NumTraits<Scalar>::IsSigned ? -1 : 0), Scalar(1));
|
834
|
+
}
|
835
|
+
};
|
836
|
+
|
837
|
+
enum {
|
838
|
+
meta_floor_log2_terminate,
|
839
|
+
meta_floor_log2_move_up,
|
840
|
+
meta_floor_log2_move_down,
|
841
|
+
meta_floor_log2_bogus
|
842
|
+
};
|
843
|
+
|
844
|
+
template<unsigned int n, int lower, int upper> struct meta_floor_log2_selector
|
845
|
+
{
|
846
|
+
enum { middle = (lower + upper) / 2,
|
847
|
+
value = (upper <= lower + 1) ? int(meta_floor_log2_terminate)
|
848
|
+
: (n < (1 << middle)) ? int(meta_floor_log2_move_down)
|
849
|
+
: (n==0) ? int(meta_floor_log2_bogus)
|
850
|
+
: int(meta_floor_log2_move_up)
|
851
|
+
};
|
852
|
+
};
|
853
|
+
|
854
|
+
template<unsigned int n,
|
855
|
+
int lower = 0,
|
856
|
+
int upper = sizeof(unsigned int) * CHAR_BIT - 1,
|
857
|
+
int selector = meta_floor_log2_selector<n, lower, upper>::value>
|
858
|
+
struct meta_floor_log2 {};
|
859
|
+
|
860
|
+
template<unsigned int n, int lower, int upper>
|
861
|
+
struct meta_floor_log2<n, lower, upper, meta_floor_log2_move_down>
|
862
|
+
{
|
863
|
+
enum { value = meta_floor_log2<n, lower, meta_floor_log2_selector<n, lower, upper>::middle>::value };
|
864
|
+
};
|
865
|
+
|
866
|
+
template<unsigned int n, int lower, int upper>
|
867
|
+
struct meta_floor_log2<n, lower, upper, meta_floor_log2_move_up>
|
868
|
+
{
|
869
|
+
enum { value = meta_floor_log2<n, meta_floor_log2_selector<n, lower, upper>::middle, upper>::value };
|
870
|
+
};
|
871
|
+
|
872
|
+
template<unsigned int n, int lower, int upper>
|
873
|
+
struct meta_floor_log2<n, lower, upper, meta_floor_log2_terminate>
|
874
|
+
{
|
875
|
+
enum { value = (n >= ((unsigned int)(1) << (lower+1))) ? lower+1 : lower };
|
876
|
+
};
|
877
|
+
|
878
|
+
template<unsigned int n, int lower, int upper>
|
879
|
+
struct meta_floor_log2<n, lower, upper, meta_floor_log2_bogus>
|
880
|
+
{
|
881
|
+
// no value, error at compile time
|
882
|
+
};
|
883
|
+
|
884
|
+
template<typename Scalar>
|
885
|
+
struct random_default_impl<Scalar, false, true>
|
886
|
+
{
|
887
|
+
static inline Scalar run(const Scalar& x, const Scalar& y)
|
888
|
+
{
|
889
|
+
if (y <= x)
|
890
|
+
return x;
|
891
|
+
// ScalarU is the unsigned counterpart of Scalar, possibly Scalar itself.
|
892
|
+
typedef typename make_unsigned<Scalar>::type ScalarU;
|
893
|
+
// ScalarX is the widest of ScalarU and unsigned int.
|
894
|
+
// We'll deal only with ScalarX and unsigned int below thus avoiding signed
|
895
|
+
// types and arithmetic and signed overflows (which are undefined behavior).
|
896
|
+
typedef typename conditional<(ScalarU(-1) > unsigned(-1)), ScalarU, unsigned>::type ScalarX;
|
897
|
+
// The following difference doesn't overflow, provided our integer types are two's
|
898
|
+
// complement and have the same number of padding bits in signed and unsigned variants.
|
899
|
+
// This is the case in most modern implementations of C++.
|
900
|
+
ScalarX range = ScalarX(y) - ScalarX(x);
|
901
|
+
ScalarX offset = 0;
|
902
|
+
ScalarX divisor = 1;
|
903
|
+
ScalarX multiplier = 1;
|
904
|
+
const unsigned rand_max = RAND_MAX;
|
905
|
+
if (range <= rand_max) divisor = (rand_max + 1) / (range + 1);
|
906
|
+
else multiplier = 1 + range / (rand_max + 1);
|
907
|
+
// Rejection sampling.
|
908
|
+
do {
|
909
|
+
offset = (unsigned(std::rand()) * multiplier) / divisor;
|
910
|
+
} while (offset > range);
|
911
|
+
return Scalar(ScalarX(x) + offset);
|
912
|
+
}
|
913
|
+
|
914
|
+
static inline Scalar run()
|
915
|
+
{
|
916
|
+
#ifdef EIGEN_MAKING_DOCS
|
917
|
+
return run(Scalar(NumTraits<Scalar>::IsSigned ? -10 : 0), Scalar(10));
|
918
|
+
#else
|
919
|
+
enum { rand_bits = meta_floor_log2<(unsigned int)(RAND_MAX)+1>::value,
|
920
|
+
scalar_bits = sizeof(Scalar) * CHAR_BIT,
|
921
|
+
shift = EIGEN_PLAIN_ENUM_MAX(0, int(rand_bits) - int(scalar_bits)),
|
922
|
+
offset = NumTraits<Scalar>::IsSigned ? (1 << (EIGEN_PLAIN_ENUM_MIN(rand_bits,scalar_bits)-1)) : 0
|
923
|
+
};
|
924
|
+
return Scalar((std::rand() >> shift) - offset);
|
925
|
+
#endif
|
926
|
+
}
|
927
|
+
};
|
928
|
+
|
929
|
+
template<typename Scalar>
|
930
|
+
struct random_default_impl<Scalar, true, false>
|
931
|
+
{
|
932
|
+
static inline Scalar run(const Scalar& x, const Scalar& y)
|
933
|
+
{
|
934
|
+
return Scalar(random(x.real(), y.real()),
|
935
|
+
random(x.imag(), y.imag()));
|
936
|
+
}
|
937
|
+
static inline Scalar run()
|
938
|
+
{
|
939
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
940
|
+
return Scalar(random<RealScalar>(), random<RealScalar>());
|
941
|
+
}
|
942
|
+
};
|
943
|
+
|
944
|
+
template<typename Scalar>
|
945
|
+
inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random(const Scalar& x, const Scalar& y)
|
946
|
+
{
|
947
|
+
return EIGEN_MATHFUNC_IMPL(random, Scalar)::run(x, y);
|
948
|
+
}
|
949
|
+
|
950
|
+
template<typename Scalar>
|
951
|
+
inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random()
|
952
|
+
{
|
953
|
+
return EIGEN_MATHFUNC_IMPL(random, Scalar)::run();
|
954
|
+
}
|
955
|
+
|
956
|
+
// Implementation of is* functions
|
957
|
+
|
958
|
+
// std::is* do not work with fast-math and gcc, std::is* are available on MSVC 2013 and newer, as well as in clang.
|
959
|
+
#if (EIGEN_HAS_CXX11_MATH && !(EIGEN_COMP_GNUC_STRICT && __FINITE_MATH_ONLY__)) || (EIGEN_COMP_MSVC>=1800) || (EIGEN_COMP_CLANG)
|
960
|
+
#define EIGEN_USE_STD_FPCLASSIFY 1
|
961
|
+
#else
|
962
|
+
#define EIGEN_USE_STD_FPCLASSIFY 0
|
963
|
+
#endif
|
964
|
+
|
965
|
+
template<typename T>
|
966
|
+
EIGEN_DEVICE_FUNC
|
967
|
+
typename internal::enable_if<internal::is_integral<T>::value,bool>::type
|
968
|
+
isnan_impl(const T&) { return false; }
|
969
|
+
|
970
|
+
template<typename T>
|
971
|
+
EIGEN_DEVICE_FUNC
|
972
|
+
typename internal::enable_if<internal::is_integral<T>::value,bool>::type
|
973
|
+
isinf_impl(const T&) { return false; }
|
974
|
+
|
975
|
+
template<typename T>
|
976
|
+
EIGEN_DEVICE_FUNC
|
977
|
+
typename internal::enable_if<internal::is_integral<T>::value,bool>::type
|
978
|
+
isfinite_impl(const T&) { return true; }
|
979
|
+
|
980
|
+
template<typename T>
|
981
|
+
EIGEN_DEVICE_FUNC
|
982
|
+
typename internal::enable_if<(!internal::is_integral<T>::value)&&(!NumTraits<T>::IsComplex),bool>::type
|
983
|
+
isfinite_impl(const T& x)
|
984
|
+
{
|
985
|
+
#if defined(EIGEN_GPU_COMPILE_PHASE)
|
986
|
+
return (::isfinite)(x);
|
987
|
+
#elif EIGEN_USE_STD_FPCLASSIFY
|
988
|
+
using std::isfinite;
|
989
|
+
return isfinite EIGEN_NOT_A_MACRO (x);
|
990
|
+
#else
|
991
|
+
return x<=NumTraits<T>::highest() && x>=NumTraits<T>::lowest();
|
992
|
+
#endif
|
993
|
+
}
|
994
|
+
|
995
|
+
template<typename T>
|
996
|
+
EIGEN_DEVICE_FUNC
|
997
|
+
typename internal::enable_if<(!internal::is_integral<T>::value)&&(!NumTraits<T>::IsComplex),bool>::type
|
998
|
+
isinf_impl(const T& x)
|
999
|
+
{
|
1000
|
+
#if defined(EIGEN_GPU_COMPILE_PHASE)
|
1001
|
+
return (::isinf)(x);
|
1002
|
+
#elif EIGEN_USE_STD_FPCLASSIFY
|
1003
|
+
using std::isinf;
|
1004
|
+
return isinf EIGEN_NOT_A_MACRO (x);
|
1005
|
+
#else
|
1006
|
+
return x>NumTraits<T>::highest() || x<NumTraits<T>::lowest();
|
1007
|
+
#endif
|
1008
|
+
}
|
1009
|
+
|
1010
|
+
template<typename T>
|
1011
|
+
EIGEN_DEVICE_FUNC
|
1012
|
+
typename internal::enable_if<(!internal::is_integral<T>::value)&&(!NumTraits<T>::IsComplex),bool>::type
|
1013
|
+
isnan_impl(const T& x)
|
1014
|
+
{
|
1015
|
+
#if defined(EIGEN_GPU_COMPILE_PHASE)
|
1016
|
+
return (::isnan)(x);
|
1017
|
+
#elif EIGEN_USE_STD_FPCLASSIFY
|
1018
|
+
using std::isnan;
|
1019
|
+
return isnan EIGEN_NOT_A_MACRO (x);
|
1020
|
+
#else
|
1021
|
+
return x != x;
|
1022
|
+
#endif
|
1023
|
+
}
|
1024
|
+
|
1025
|
+
#if (!EIGEN_USE_STD_FPCLASSIFY)
|
1026
|
+
|
1027
|
+
#if EIGEN_COMP_MSVC
|
1028
|
+
|
1029
|
+
template<typename T> EIGEN_DEVICE_FUNC bool isinf_msvc_helper(T x)
|
1030
|
+
{
|
1031
|
+
return _fpclass(x)==_FPCLASS_NINF || _fpclass(x)==_FPCLASS_PINF;
|
1032
|
+
}
|
1033
|
+
|
1034
|
+
//MSVC defines a _isnan builtin function, but for double only
|
1035
|
+
EIGEN_DEVICE_FUNC inline bool isnan_impl(const long double& x) { return _isnan(x)!=0; }
|
1036
|
+
EIGEN_DEVICE_FUNC inline bool isnan_impl(const double& x) { return _isnan(x)!=0; }
|
1037
|
+
EIGEN_DEVICE_FUNC inline bool isnan_impl(const float& x) { return _isnan(x)!=0; }
|
1038
|
+
|
1039
|
+
EIGEN_DEVICE_FUNC inline bool isinf_impl(const long double& x) { return isinf_msvc_helper(x); }
|
1040
|
+
EIGEN_DEVICE_FUNC inline bool isinf_impl(const double& x) { return isinf_msvc_helper(x); }
|
1041
|
+
EIGEN_DEVICE_FUNC inline bool isinf_impl(const float& x) { return isinf_msvc_helper(x); }
|
1042
|
+
|
1043
|
+
#elif (defined __FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ && EIGEN_COMP_GNUC)
|
1044
|
+
|
1045
|
+
#if EIGEN_GNUC_AT_LEAST(5,0)
|
1046
|
+
#define EIGEN_TMP_NOOPT_ATTRIB EIGEN_DEVICE_FUNC inline __attribute__((optimize("no-finite-math-only")))
|
1047
|
+
#else
|
1048
|
+
// NOTE the inline qualifier and noinline attribute are both needed: the former is to avoid linking issue (duplicate symbol),
|
1049
|
+
// while the second prevent too aggressive optimizations in fast-math mode:
|
1050
|
+
#define EIGEN_TMP_NOOPT_ATTRIB EIGEN_DEVICE_FUNC inline __attribute__((noinline,optimize("no-finite-math-only")))
|
1051
|
+
#endif
|
1052
|
+
|
1053
|
+
template<> EIGEN_TMP_NOOPT_ATTRIB bool isnan_impl(const long double& x) { return __builtin_isnan(x); }
|
1054
|
+
template<> EIGEN_TMP_NOOPT_ATTRIB bool isnan_impl(const double& x) { return __builtin_isnan(x); }
|
1055
|
+
template<> EIGEN_TMP_NOOPT_ATTRIB bool isnan_impl(const float& x) { return __builtin_isnan(x); }
|
1056
|
+
template<> EIGEN_TMP_NOOPT_ATTRIB bool isinf_impl(const double& x) { return __builtin_isinf(x); }
|
1057
|
+
template<> EIGEN_TMP_NOOPT_ATTRIB bool isinf_impl(const float& x) { return __builtin_isinf(x); }
|
1058
|
+
template<> EIGEN_TMP_NOOPT_ATTRIB bool isinf_impl(const long double& x) { return __builtin_isinf(x); }
|
1059
|
+
|
1060
|
+
#undef EIGEN_TMP_NOOPT_ATTRIB
|
1061
|
+
|
1062
|
+
#endif
|
1063
|
+
|
1064
|
+
#endif
|
1065
|
+
|
1066
|
+
// The following overload are defined at the end of this file
|
1067
|
+
template<typename T> EIGEN_DEVICE_FUNC bool isfinite_impl(const std::complex<T>& x);
|
1068
|
+
template<typename T> EIGEN_DEVICE_FUNC bool isnan_impl(const std::complex<T>& x);
|
1069
|
+
template<typename T> EIGEN_DEVICE_FUNC bool isinf_impl(const std::complex<T>& x);
|
1070
|
+
|
1071
|
+
template<typename T> T generic_fast_tanh_float(const T& a_x);
|
1072
|
+
} // end namespace internal
|
1073
|
+
|
1074
|
+
/****************************************************************************
|
1075
|
+
* Generic math functions *
|
1076
|
+
****************************************************************************/
|
1077
|
+
|
1078
|
+
namespace numext {
|
1079
|
+
|
1080
|
+
#if (!defined(EIGEN_GPUCC) || defined(EIGEN_CONSTEXPR_ARE_DEVICE_FUNC))
|
1081
|
+
template<typename T>
|
1082
|
+
EIGEN_DEVICE_FUNC
|
1083
|
+
EIGEN_ALWAYS_INLINE T mini(const T& x, const T& y)
|
1084
|
+
{
|
1085
|
+
EIGEN_USING_STD(min)
|
1086
|
+
return min EIGEN_NOT_A_MACRO (x,y);
|
1087
|
+
}
|
1088
|
+
|
1089
|
+
template<typename T>
|
1090
|
+
EIGEN_DEVICE_FUNC
|
1091
|
+
EIGEN_ALWAYS_INLINE T maxi(const T& x, const T& y)
|
1092
|
+
{
|
1093
|
+
EIGEN_USING_STD(max)
|
1094
|
+
return max EIGEN_NOT_A_MACRO (x,y);
|
1095
|
+
}
|
1096
|
+
#else
|
1097
|
+
template<typename T>
|
1098
|
+
EIGEN_DEVICE_FUNC
|
1099
|
+
EIGEN_ALWAYS_INLINE T mini(const T& x, const T& y)
|
1100
|
+
{
|
1101
|
+
return y < x ? y : x;
|
1102
|
+
}
|
1103
|
+
template<>
|
1104
|
+
EIGEN_DEVICE_FUNC
|
1105
|
+
EIGEN_ALWAYS_INLINE float mini(const float& x, const float& y)
|
1106
|
+
{
|
1107
|
+
return fminf(x, y);
|
1108
|
+
}
|
1109
|
+
template<>
|
1110
|
+
EIGEN_DEVICE_FUNC
|
1111
|
+
EIGEN_ALWAYS_INLINE double mini(const double& x, const double& y)
|
1112
|
+
{
|
1113
|
+
return fmin(x, y);
|
1114
|
+
}
|
1115
|
+
template<>
|
1116
|
+
EIGEN_DEVICE_FUNC
|
1117
|
+
EIGEN_ALWAYS_INLINE long double mini(const long double& x, const long double& y)
|
1118
|
+
{
|
1119
|
+
#if defined(EIGEN_HIPCC)
|
1120
|
+
// no "fminl" on HIP yet
|
1121
|
+
return (x < y) ? x : y;
|
1122
|
+
#else
|
1123
|
+
return fminl(x, y);
|
1124
|
+
#endif
|
1125
|
+
}
|
1126
|
+
|
1127
|
+
template<typename T>
|
1128
|
+
EIGEN_DEVICE_FUNC
|
1129
|
+
EIGEN_ALWAYS_INLINE T maxi(const T& x, const T& y)
|
1130
|
+
{
|
1131
|
+
return x < y ? y : x;
|
1132
|
+
}
|
1133
|
+
template<>
|
1134
|
+
EIGEN_DEVICE_FUNC
|
1135
|
+
EIGEN_ALWAYS_INLINE float maxi(const float& x, const float& y)
|
1136
|
+
{
|
1137
|
+
return fmaxf(x, y);
|
1138
|
+
}
|
1139
|
+
template<>
|
1140
|
+
EIGEN_DEVICE_FUNC
|
1141
|
+
EIGEN_ALWAYS_INLINE double maxi(const double& x, const double& y)
|
1142
|
+
{
|
1143
|
+
return fmax(x, y);
|
1144
|
+
}
|
1145
|
+
template<>
|
1146
|
+
EIGEN_DEVICE_FUNC
|
1147
|
+
EIGEN_ALWAYS_INLINE long double maxi(const long double& x, const long double& y)
|
1148
|
+
{
|
1149
|
+
#if defined(EIGEN_HIPCC)
|
1150
|
+
// no "fmaxl" on HIP yet
|
1151
|
+
return (x > y) ? x : y;
|
1152
|
+
#else
|
1153
|
+
return fmaxl(x, y);
|
1154
|
+
#endif
|
1155
|
+
}
|
1156
|
+
#endif
|
1157
|
+
|
1158
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1159
|
+
|
1160
|
+
|
1161
|
+
#define SYCL_SPECIALIZE_SIGNED_INTEGER_TYPES_BINARY(NAME, FUNC) \
|
1162
|
+
SYCL_SPECIALIZE_BINARY_FUNC(NAME, FUNC, cl::sycl::cl_char) \
|
1163
|
+
SYCL_SPECIALIZE_BINARY_FUNC(NAME, FUNC, cl::sycl::cl_short) \
|
1164
|
+
SYCL_SPECIALIZE_BINARY_FUNC(NAME, FUNC, cl::sycl::cl_int) \
|
1165
|
+
SYCL_SPECIALIZE_BINARY_FUNC(NAME, FUNC, cl::sycl::cl_long)
|
1166
|
+
#define SYCL_SPECIALIZE_SIGNED_INTEGER_TYPES_UNARY(NAME, FUNC) \
|
1167
|
+
SYCL_SPECIALIZE_UNARY_FUNC(NAME, FUNC, cl::sycl::cl_char) \
|
1168
|
+
SYCL_SPECIALIZE_UNARY_FUNC(NAME, FUNC, cl::sycl::cl_short) \
|
1169
|
+
SYCL_SPECIALIZE_UNARY_FUNC(NAME, FUNC, cl::sycl::cl_int) \
|
1170
|
+
SYCL_SPECIALIZE_UNARY_FUNC(NAME, FUNC, cl::sycl::cl_long)
|
1171
|
+
#define SYCL_SPECIALIZE_UNSIGNED_INTEGER_TYPES_BINARY(NAME, FUNC) \
|
1172
|
+
SYCL_SPECIALIZE_BINARY_FUNC(NAME, FUNC, cl::sycl::cl_uchar) \
|
1173
|
+
SYCL_SPECIALIZE_BINARY_FUNC(NAME, FUNC, cl::sycl::cl_ushort) \
|
1174
|
+
SYCL_SPECIALIZE_BINARY_FUNC(NAME, FUNC, cl::sycl::cl_uint) \
|
1175
|
+
SYCL_SPECIALIZE_BINARY_FUNC(NAME, FUNC, cl::sycl::cl_ulong)
|
1176
|
+
#define SYCL_SPECIALIZE_UNSIGNED_INTEGER_TYPES_UNARY(NAME, FUNC) \
|
1177
|
+
SYCL_SPECIALIZE_UNARY_FUNC(NAME, FUNC, cl::sycl::cl_uchar) \
|
1178
|
+
SYCL_SPECIALIZE_UNARY_FUNC(NAME, FUNC, cl::sycl::cl_ushort) \
|
1179
|
+
SYCL_SPECIALIZE_UNARY_FUNC(NAME, FUNC, cl::sycl::cl_uint) \
|
1180
|
+
SYCL_SPECIALIZE_UNARY_FUNC(NAME, FUNC, cl::sycl::cl_ulong)
|
1181
|
+
#define SYCL_SPECIALIZE_INTEGER_TYPES_BINARY(NAME, FUNC) \
|
1182
|
+
SYCL_SPECIALIZE_SIGNED_INTEGER_TYPES_BINARY(NAME, FUNC) \
|
1183
|
+
SYCL_SPECIALIZE_UNSIGNED_INTEGER_TYPES_BINARY(NAME, FUNC)
|
1184
|
+
#define SYCL_SPECIALIZE_INTEGER_TYPES_UNARY(NAME, FUNC) \
|
1185
|
+
SYCL_SPECIALIZE_SIGNED_INTEGER_TYPES_UNARY(NAME, FUNC) \
|
1186
|
+
SYCL_SPECIALIZE_UNSIGNED_INTEGER_TYPES_UNARY(NAME, FUNC)
|
1187
|
+
#define SYCL_SPECIALIZE_FLOATING_TYPES_BINARY(NAME, FUNC) \
|
1188
|
+
SYCL_SPECIALIZE_BINARY_FUNC(NAME, FUNC, cl::sycl::cl_float) \
|
1189
|
+
SYCL_SPECIALIZE_BINARY_FUNC(NAME, FUNC,cl::sycl::cl_double)
|
1190
|
+
#define SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(NAME, FUNC) \
|
1191
|
+
SYCL_SPECIALIZE_UNARY_FUNC(NAME, FUNC, cl::sycl::cl_float) \
|
1192
|
+
SYCL_SPECIALIZE_UNARY_FUNC(NAME, FUNC,cl::sycl::cl_double)
|
1193
|
+
#define SYCL_SPECIALIZE_FLOATING_TYPES_UNARY_FUNC_RET_TYPE(NAME, FUNC, RET_TYPE) \
|
1194
|
+
SYCL_SPECIALIZE_GEN_UNARY_FUNC(NAME, FUNC, RET_TYPE, cl::sycl::cl_float) \
|
1195
|
+
SYCL_SPECIALIZE_GEN_UNARY_FUNC(NAME, FUNC, RET_TYPE, cl::sycl::cl_double)
|
1196
|
+
|
1197
|
+
#define SYCL_SPECIALIZE_GEN_UNARY_FUNC(NAME, FUNC, RET_TYPE, ARG_TYPE) \
|
1198
|
+
template<> \
|
1199
|
+
EIGEN_DEVICE_FUNC \
|
1200
|
+
EIGEN_ALWAYS_INLINE RET_TYPE NAME(const ARG_TYPE& x) { \
|
1201
|
+
return cl::sycl::FUNC(x); \
|
1202
|
+
}
|
1203
|
+
|
1204
|
+
#define SYCL_SPECIALIZE_UNARY_FUNC(NAME, FUNC, TYPE) \
|
1205
|
+
SYCL_SPECIALIZE_GEN_UNARY_FUNC(NAME, FUNC, TYPE, TYPE)
|
1206
|
+
|
1207
|
+
#define SYCL_SPECIALIZE_GEN1_BINARY_FUNC(NAME, FUNC, RET_TYPE, ARG_TYPE1, ARG_TYPE2) \
|
1208
|
+
template<> \
|
1209
|
+
EIGEN_DEVICE_FUNC \
|
1210
|
+
EIGEN_ALWAYS_INLINE RET_TYPE NAME(const ARG_TYPE1& x, const ARG_TYPE2& y) { \
|
1211
|
+
return cl::sycl::FUNC(x, y); \
|
1212
|
+
}
|
1213
|
+
|
1214
|
+
#define SYCL_SPECIALIZE_GEN2_BINARY_FUNC(NAME, FUNC, RET_TYPE, ARG_TYPE) \
|
1215
|
+
SYCL_SPECIALIZE_GEN1_BINARY_FUNC(NAME, FUNC, RET_TYPE, ARG_TYPE, ARG_TYPE)
|
1216
|
+
|
1217
|
+
#define SYCL_SPECIALIZE_BINARY_FUNC(NAME, FUNC, TYPE) \
|
1218
|
+
SYCL_SPECIALIZE_GEN2_BINARY_FUNC(NAME, FUNC, TYPE, TYPE)
|
1219
|
+
|
1220
|
+
SYCL_SPECIALIZE_INTEGER_TYPES_BINARY(mini, min)
|
1221
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_BINARY(mini, fmin)
|
1222
|
+
SYCL_SPECIALIZE_INTEGER_TYPES_BINARY(maxi, max)
|
1223
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_BINARY(maxi, fmax)
|
1224
|
+
|
1225
|
+
#endif
|
1226
|
+
|
1227
|
+
|
1228
|
+
template<typename Scalar>
|
1229
|
+
EIGEN_DEVICE_FUNC
|
1230
|
+
inline EIGEN_MATHFUNC_RETVAL(real, Scalar) real(const Scalar& x)
|
1231
|
+
{
|
1232
|
+
return EIGEN_MATHFUNC_IMPL(real, Scalar)::run(x);
|
1233
|
+
}
|
1234
|
+
|
1235
|
+
template<typename Scalar>
|
1236
|
+
EIGEN_DEVICE_FUNC
|
1237
|
+
inline typename internal::add_const_on_value_type< EIGEN_MATHFUNC_RETVAL(real_ref, Scalar) >::type real_ref(const Scalar& x)
|
1238
|
+
{
|
1239
|
+
return internal::real_ref_impl<Scalar>::run(x);
|
1240
|
+
}
|
1241
|
+
|
1242
|
+
template<typename Scalar>
|
1243
|
+
EIGEN_DEVICE_FUNC
|
1244
|
+
inline EIGEN_MATHFUNC_RETVAL(real_ref, Scalar) real_ref(Scalar& x)
|
1245
|
+
{
|
1246
|
+
return EIGEN_MATHFUNC_IMPL(real_ref, Scalar)::run(x);
|
1247
|
+
}
|
1248
|
+
|
1249
|
+
template<typename Scalar>
|
1250
|
+
EIGEN_DEVICE_FUNC
|
1251
|
+
inline EIGEN_MATHFUNC_RETVAL(imag, Scalar) imag(const Scalar& x)
|
1252
|
+
{
|
1253
|
+
return EIGEN_MATHFUNC_IMPL(imag, Scalar)::run(x);
|
1254
|
+
}
|
1255
|
+
|
1256
|
+
template<typename Scalar>
|
1257
|
+
EIGEN_DEVICE_FUNC
|
1258
|
+
inline EIGEN_MATHFUNC_RETVAL(arg, Scalar) arg(const Scalar& x)
|
1259
|
+
{
|
1260
|
+
return EIGEN_MATHFUNC_IMPL(arg, Scalar)::run(x);
|
1261
|
+
}
|
1262
|
+
|
1263
|
+
template<typename Scalar>
|
1264
|
+
EIGEN_DEVICE_FUNC
|
1265
|
+
inline typename internal::add_const_on_value_type< EIGEN_MATHFUNC_RETVAL(imag_ref, Scalar) >::type imag_ref(const Scalar& x)
|
1266
|
+
{
|
1267
|
+
return internal::imag_ref_impl<Scalar>::run(x);
|
1268
|
+
}
|
1269
|
+
|
1270
|
+
template<typename Scalar>
|
1271
|
+
EIGEN_DEVICE_FUNC
|
1272
|
+
inline EIGEN_MATHFUNC_RETVAL(imag_ref, Scalar) imag_ref(Scalar& x)
|
1273
|
+
{
|
1274
|
+
return EIGEN_MATHFUNC_IMPL(imag_ref, Scalar)::run(x);
|
1275
|
+
}
|
1276
|
+
|
1277
|
+
template<typename Scalar>
|
1278
|
+
EIGEN_DEVICE_FUNC
|
1279
|
+
inline EIGEN_MATHFUNC_RETVAL(conj, Scalar) conj(const Scalar& x)
|
1280
|
+
{
|
1281
|
+
return EIGEN_MATHFUNC_IMPL(conj, Scalar)::run(x);
|
1282
|
+
}
|
1283
|
+
|
1284
|
+
template<typename Scalar>
|
1285
|
+
EIGEN_DEVICE_FUNC
|
1286
|
+
inline EIGEN_MATHFUNC_RETVAL(abs2, Scalar) abs2(const Scalar& x)
|
1287
|
+
{
|
1288
|
+
return EIGEN_MATHFUNC_IMPL(abs2, Scalar)::run(x);
|
1289
|
+
}
|
1290
|
+
|
1291
|
+
EIGEN_DEVICE_FUNC
|
1292
|
+
inline bool abs2(bool x) { return x; }
|
1293
|
+
|
1294
|
+
template<typename T>
|
1295
|
+
EIGEN_DEVICE_FUNC
|
1296
|
+
EIGEN_ALWAYS_INLINE T absdiff(const T& x, const T& y)
|
1297
|
+
{
|
1298
|
+
return x > y ? x - y : y - x;
|
1299
|
+
}
|
1300
|
+
template<>
|
1301
|
+
EIGEN_DEVICE_FUNC
|
1302
|
+
EIGEN_ALWAYS_INLINE float absdiff(const float& x, const float& y)
|
1303
|
+
{
|
1304
|
+
return fabsf(x - y);
|
1305
|
+
}
|
1306
|
+
template<>
|
1307
|
+
EIGEN_DEVICE_FUNC
|
1308
|
+
EIGEN_ALWAYS_INLINE double absdiff(const double& x, const double& y)
|
1309
|
+
{
|
1310
|
+
return fabs(x - y);
|
1311
|
+
}
|
1312
|
+
|
1313
|
+
#if !defined(EIGEN_GPUCC)
|
1314
|
+
// HIP and CUDA do not support long double.
|
1315
|
+
template<>
|
1316
|
+
EIGEN_DEVICE_FUNC
|
1317
|
+
EIGEN_ALWAYS_INLINE long double absdiff(const long double& x, const long double& y) {
|
1318
|
+
return fabsl(x - y);
|
1319
|
+
}
|
1320
|
+
#endif
|
1321
|
+
|
1322
|
+
template<typename Scalar>
|
1323
|
+
EIGEN_DEVICE_FUNC
|
1324
|
+
inline EIGEN_MATHFUNC_RETVAL(norm1, Scalar) norm1(const Scalar& x)
|
1325
|
+
{
|
1326
|
+
return EIGEN_MATHFUNC_IMPL(norm1, Scalar)::run(x);
|
1327
|
+
}
|
1328
|
+
|
1329
|
+
template<typename Scalar>
|
1330
|
+
EIGEN_DEVICE_FUNC
|
1331
|
+
inline EIGEN_MATHFUNC_RETVAL(hypot, Scalar) hypot(const Scalar& x, const Scalar& y)
|
1332
|
+
{
|
1333
|
+
return EIGEN_MATHFUNC_IMPL(hypot, Scalar)::run(x, y);
|
1334
|
+
}
|
1335
|
+
|
1336
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1337
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_BINARY(hypot, hypot)
|
1338
|
+
#endif
|
1339
|
+
|
1340
|
+
template<typename Scalar>
|
1341
|
+
EIGEN_DEVICE_FUNC
|
1342
|
+
inline EIGEN_MATHFUNC_RETVAL(log1p, Scalar) log1p(const Scalar& x)
|
1343
|
+
{
|
1344
|
+
return EIGEN_MATHFUNC_IMPL(log1p, Scalar)::run(x);
|
1345
|
+
}
|
1346
|
+
|
1347
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1348
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(log1p, log1p)
|
1349
|
+
#endif
|
1350
|
+
|
1351
|
+
#if defined(EIGEN_GPUCC)
|
1352
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1353
|
+
float log1p(const float &x) { return ::log1pf(x); }
|
1354
|
+
|
1355
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1356
|
+
double log1p(const double &x) { return ::log1p(x); }
|
1357
|
+
#endif
|
1358
|
+
|
1359
|
+
template<typename ScalarX,typename ScalarY>
|
1360
|
+
EIGEN_DEVICE_FUNC
|
1361
|
+
inline typename internal::pow_impl<ScalarX,ScalarY>::result_type pow(const ScalarX& x, const ScalarY& y)
|
1362
|
+
{
|
1363
|
+
return internal::pow_impl<ScalarX,ScalarY>::run(x, y);
|
1364
|
+
}
|
1365
|
+
|
1366
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1367
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_BINARY(pow, pow)
|
1368
|
+
#endif
|
1369
|
+
|
1370
|
+
template<typename T> EIGEN_DEVICE_FUNC bool (isnan) (const T &x) { return internal::isnan_impl(x); }
|
1371
|
+
template<typename T> EIGEN_DEVICE_FUNC bool (isinf) (const T &x) { return internal::isinf_impl(x); }
|
1372
|
+
template<typename T> EIGEN_DEVICE_FUNC bool (isfinite)(const T &x) { return internal::isfinite_impl(x); }
|
1373
|
+
|
1374
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1375
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY_FUNC_RET_TYPE(isnan, isnan, bool)
|
1376
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY_FUNC_RET_TYPE(isinf, isinf, bool)
|
1377
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY_FUNC_RET_TYPE(isfinite, isfinite, bool)
|
1378
|
+
#endif
|
1379
|
+
|
1380
|
+
template<typename Scalar>
|
1381
|
+
EIGEN_DEVICE_FUNC
|
1382
|
+
inline EIGEN_MATHFUNC_RETVAL(rint, Scalar) rint(const Scalar& x)
|
1383
|
+
{
|
1384
|
+
return EIGEN_MATHFUNC_IMPL(rint, Scalar)::run(x);
|
1385
|
+
}
|
1386
|
+
|
1387
|
+
template<typename Scalar>
|
1388
|
+
EIGEN_DEVICE_FUNC
|
1389
|
+
inline EIGEN_MATHFUNC_RETVAL(round, Scalar) round(const Scalar& x)
|
1390
|
+
{
|
1391
|
+
return EIGEN_MATHFUNC_IMPL(round, Scalar)::run(x);
|
1392
|
+
}
|
1393
|
+
|
1394
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1395
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(round, round)
|
1396
|
+
#endif
|
1397
|
+
|
1398
|
+
template<typename T>
|
1399
|
+
EIGEN_DEVICE_FUNC
|
1400
|
+
T (floor)(const T& x)
|
1401
|
+
{
|
1402
|
+
EIGEN_USING_STD(floor)
|
1403
|
+
return floor(x);
|
1404
|
+
}
|
1405
|
+
|
1406
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1407
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(floor, floor)
|
1408
|
+
#endif
|
1409
|
+
|
1410
|
+
#if defined(EIGEN_GPUCC)
|
1411
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1412
|
+
float floor(const float &x) { return ::floorf(x); }
|
1413
|
+
|
1414
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1415
|
+
double floor(const double &x) { return ::floor(x); }
|
1416
|
+
#endif
|
1417
|
+
|
1418
|
+
template<typename T>
|
1419
|
+
EIGEN_DEVICE_FUNC
|
1420
|
+
T (ceil)(const T& x)
|
1421
|
+
{
|
1422
|
+
EIGEN_USING_STD(ceil);
|
1423
|
+
return ceil(x);
|
1424
|
+
}
|
1425
|
+
|
1426
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1427
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(ceil, ceil)
|
1428
|
+
#endif
|
1429
|
+
|
1430
|
+
#if defined(EIGEN_GPUCC)
|
1431
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1432
|
+
float ceil(const float &x) { return ::ceilf(x); }
|
1433
|
+
|
1434
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1435
|
+
double ceil(const double &x) { return ::ceil(x); }
|
1436
|
+
#endif
|
1437
|
+
|
1438
|
+
|
1439
|
+
/** Log base 2 for 32 bits positive integers.
|
1440
|
+
* Conveniently returns 0 for x==0. */
|
1441
|
+
inline int log2(int x)
|
1442
|
+
{
|
1443
|
+
eigen_assert(x>=0);
|
1444
|
+
unsigned int v(x);
|
1445
|
+
static const int table[32] = { 0, 9, 1, 10, 13, 21, 2, 29, 11, 14, 16, 18, 22, 25, 3, 30, 8, 12, 20, 28, 15, 17, 24, 7, 19, 27, 23, 6, 26, 5, 4, 31 };
|
1446
|
+
v |= v >> 1;
|
1447
|
+
v |= v >> 2;
|
1448
|
+
v |= v >> 4;
|
1449
|
+
v |= v >> 8;
|
1450
|
+
v |= v >> 16;
|
1451
|
+
return table[(v * 0x07C4ACDDU) >> 27];
|
1452
|
+
}
|
1453
|
+
|
1454
|
+
/** \returns the square root of \a x.
|
1455
|
+
*
|
1456
|
+
* It is essentially equivalent to
|
1457
|
+
* \code using std::sqrt; return sqrt(x); \endcode
|
1458
|
+
* but slightly faster for float/double and some compilers (e.g., gcc), thanks to
|
1459
|
+
* specializations when SSE is enabled.
|
1460
|
+
*
|
1461
|
+
* It's usage is justified in performance critical functions, like norm/normalize.
|
1462
|
+
*/
|
1463
|
+
template<typename Scalar>
|
1464
|
+
EIGEN_DEVICE_FUNC
|
1465
|
+
EIGEN_ALWAYS_INLINE EIGEN_MATHFUNC_RETVAL(sqrt, Scalar) sqrt(const Scalar& x)
|
1466
|
+
{
|
1467
|
+
return EIGEN_MATHFUNC_IMPL(sqrt, Scalar)::run(x);
|
1468
|
+
}
|
1469
|
+
|
1470
|
+
// Boolean specialization, avoids implicit float to bool conversion (-Wimplicit-conversion-floating-point-to-bool).
|
1471
|
+
template<>
|
1472
|
+
EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_DEVICE_FUNC
|
1473
|
+
bool sqrt<bool>(const bool &x) { return x; }
|
1474
|
+
|
1475
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1476
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(sqrt, sqrt)
|
1477
|
+
#endif
|
1478
|
+
|
1479
|
+
/** \returns the reciprocal square root of \a x. **/
|
1480
|
+
template<typename T>
|
1481
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1482
|
+
T rsqrt(const T& x)
|
1483
|
+
{
|
1484
|
+
return internal::rsqrt_impl<T>::run(x);
|
1485
|
+
}
|
1486
|
+
|
1487
|
+
template<typename T>
|
1488
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1489
|
+
T log(const T &x) {
|
1490
|
+
return internal::log_impl<T>::run(x);
|
1491
|
+
}
|
1492
|
+
|
1493
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1494
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(log, log)
|
1495
|
+
#endif
|
1496
|
+
|
1497
|
+
|
1498
|
+
#if defined(EIGEN_GPUCC)
|
1499
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1500
|
+
float log(const float &x) { return ::logf(x); }
|
1501
|
+
|
1502
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1503
|
+
double log(const double &x) { return ::log(x); }
|
1504
|
+
#endif
|
1505
|
+
|
1506
|
+
template<typename T>
|
1507
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1508
|
+
typename internal::enable_if<NumTraits<T>::IsSigned || NumTraits<T>::IsComplex,typename NumTraits<T>::Real>::type
|
1509
|
+
abs(const T &x) {
|
1510
|
+
EIGEN_USING_STD(abs);
|
1511
|
+
return abs(x);
|
1512
|
+
}
|
1513
|
+
|
1514
|
+
template<typename T>
|
1515
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1516
|
+
typename internal::enable_if<!(NumTraits<T>::IsSigned || NumTraits<T>::IsComplex),typename NumTraits<T>::Real>::type
|
1517
|
+
abs(const T &x) {
|
1518
|
+
return x;
|
1519
|
+
}
|
1520
|
+
|
1521
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1522
|
+
SYCL_SPECIALIZE_INTEGER_TYPES_UNARY(abs, abs)
|
1523
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(abs, fabs)
|
1524
|
+
#endif
|
1525
|
+
|
1526
|
+
#if defined(EIGEN_GPUCC)
|
1527
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1528
|
+
float abs(const float &x) { return ::fabsf(x); }
|
1529
|
+
|
1530
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1531
|
+
double abs(const double &x) { return ::fabs(x); }
|
1532
|
+
|
1533
|
+
template <> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1534
|
+
float abs(const std::complex<float>& x) {
|
1535
|
+
return ::hypotf(x.real(), x.imag());
|
1536
|
+
}
|
1537
|
+
|
1538
|
+
template <> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1539
|
+
double abs(const std::complex<double>& x) {
|
1540
|
+
return ::hypot(x.real(), x.imag());
|
1541
|
+
}
|
1542
|
+
#endif
|
1543
|
+
|
1544
|
+
template<typename T>
|
1545
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1546
|
+
T exp(const T &x) {
|
1547
|
+
EIGEN_USING_STD(exp);
|
1548
|
+
return exp(x);
|
1549
|
+
}
|
1550
|
+
|
1551
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1552
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(exp, exp)
|
1553
|
+
#endif
|
1554
|
+
|
1555
|
+
#if defined(EIGEN_GPUCC)
|
1556
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1557
|
+
float exp(const float &x) { return ::expf(x); }
|
1558
|
+
|
1559
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1560
|
+
double exp(const double &x) { return ::exp(x); }
|
1561
|
+
|
1562
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1563
|
+
std::complex<float> exp(const std::complex<float>& x) {
|
1564
|
+
float com = ::expf(x.real());
|
1565
|
+
float res_real = com * ::cosf(x.imag());
|
1566
|
+
float res_imag = com * ::sinf(x.imag());
|
1567
|
+
return std::complex<float>(res_real, res_imag);
|
1568
|
+
}
|
1569
|
+
|
1570
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1571
|
+
std::complex<double> exp(const std::complex<double>& x) {
|
1572
|
+
double com = ::exp(x.real());
|
1573
|
+
double res_real = com * ::cos(x.imag());
|
1574
|
+
double res_imag = com * ::sin(x.imag());
|
1575
|
+
return std::complex<double>(res_real, res_imag);
|
1576
|
+
}
|
1577
|
+
#endif
|
1578
|
+
|
1579
|
+
template<typename Scalar>
|
1580
|
+
EIGEN_DEVICE_FUNC
|
1581
|
+
inline EIGEN_MATHFUNC_RETVAL(expm1, Scalar) expm1(const Scalar& x)
|
1582
|
+
{
|
1583
|
+
return EIGEN_MATHFUNC_IMPL(expm1, Scalar)::run(x);
|
1584
|
+
}
|
1585
|
+
|
1586
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1587
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(expm1, expm1)
|
1588
|
+
#endif
|
1589
|
+
|
1590
|
+
#if defined(EIGEN_GPUCC)
|
1591
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1592
|
+
float expm1(const float &x) { return ::expm1f(x); }
|
1593
|
+
|
1594
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1595
|
+
double expm1(const double &x) { return ::expm1(x); }
|
1596
|
+
#endif
|
1597
|
+
|
1598
|
+
template<typename T>
|
1599
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1600
|
+
T cos(const T &x) {
|
1601
|
+
EIGEN_USING_STD(cos);
|
1602
|
+
return cos(x);
|
1603
|
+
}
|
1604
|
+
|
1605
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1606
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(cos,cos)
|
1607
|
+
#endif
|
1608
|
+
|
1609
|
+
#if defined(EIGEN_GPUCC)
|
1610
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1611
|
+
float cos(const float &x) { return ::cosf(x); }
|
1612
|
+
|
1613
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1614
|
+
double cos(const double &x) { return ::cos(x); }
|
1615
|
+
#endif
|
1616
|
+
|
1617
|
+
template<typename T>
|
1618
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1619
|
+
T sin(const T &x) {
|
1620
|
+
EIGEN_USING_STD(sin);
|
1621
|
+
return sin(x);
|
1622
|
+
}
|
1623
|
+
|
1624
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1625
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(sin, sin)
|
1626
|
+
#endif
|
1627
|
+
|
1628
|
+
#if defined(EIGEN_GPUCC)
|
1629
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1630
|
+
float sin(const float &x) { return ::sinf(x); }
|
1631
|
+
|
1632
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1633
|
+
double sin(const double &x) { return ::sin(x); }
|
1634
|
+
#endif
|
1635
|
+
|
1636
|
+
template<typename T>
|
1637
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1638
|
+
T tan(const T &x) {
|
1639
|
+
EIGEN_USING_STD(tan);
|
1640
|
+
return tan(x);
|
1641
|
+
}
|
1642
|
+
|
1643
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1644
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(tan, tan)
|
1645
|
+
#endif
|
1646
|
+
|
1647
|
+
#if defined(EIGEN_GPUCC)
|
1648
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1649
|
+
float tan(const float &x) { return ::tanf(x); }
|
1650
|
+
|
1651
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1652
|
+
double tan(const double &x) { return ::tan(x); }
|
1653
|
+
#endif
|
1654
|
+
|
1655
|
+
template<typename T>
|
1656
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1657
|
+
T acos(const T &x) {
|
1658
|
+
EIGEN_USING_STD(acos);
|
1659
|
+
return acos(x);
|
1660
|
+
}
|
1661
|
+
|
1662
|
+
#if EIGEN_HAS_CXX11_MATH
|
1663
|
+
template<typename T>
|
1664
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1665
|
+
T acosh(const T &x) {
|
1666
|
+
EIGEN_USING_STD(acosh);
|
1667
|
+
return static_cast<T>(acosh(x));
|
1668
|
+
}
|
1669
|
+
#endif
|
1670
|
+
|
1671
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1672
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(acos, acos)
|
1673
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(acosh, acosh)
|
1674
|
+
#endif
|
1675
|
+
|
1676
|
+
#if defined(EIGEN_GPUCC)
|
1677
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1678
|
+
float acos(const float &x) { return ::acosf(x); }
|
1679
|
+
|
1680
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1681
|
+
double acos(const double &x) { return ::acos(x); }
|
1682
|
+
#endif
|
1683
|
+
|
1684
|
+
template<typename T>
|
1685
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1686
|
+
T asin(const T &x) {
|
1687
|
+
EIGEN_USING_STD(asin);
|
1688
|
+
return asin(x);
|
1689
|
+
}
|
1690
|
+
|
1691
|
+
#if EIGEN_HAS_CXX11_MATH
|
1692
|
+
template<typename T>
|
1693
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1694
|
+
T asinh(const T &x) {
|
1695
|
+
EIGEN_USING_STD(asinh);
|
1696
|
+
return static_cast<T>(asinh(x));
|
1697
|
+
}
|
1698
|
+
#endif
|
1699
|
+
|
1700
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1701
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(asin, asin)
|
1702
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(asinh, asinh)
|
1703
|
+
#endif
|
1704
|
+
|
1705
|
+
#if defined(EIGEN_GPUCC)
|
1706
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1707
|
+
float asin(const float &x) { return ::asinf(x); }
|
1708
|
+
|
1709
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1710
|
+
double asin(const double &x) { return ::asin(x); }
|
1711
|
+
#endif
|
1712
|
+
|
1713
|
+
template<typename T>
|
1714
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1715
|
+
T atan(const T &x) {
|
1716
|
+
EIGEN_USING_STD(atan);
|
1717
|
+
return static_cast<T>(atan(x));
|
1718
|
+
}
|
1719
|
+
|
1720
|
+
#if EIGEN_HAS_CXX11_MATH
|
1721
|
+
template<typename T>
|
1722
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1723
|
+
T atanh(const T &x) {
|
1724
|
+
EIGEN_USING_STD(atanh);
|
1725
|
+
return static_cast<T>(atanh(x));
|
1726
|
+
}
|
1727
|
+
#endif
|
1728
|
+
|
1729
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1730
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(atan, atan)
|
1731
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(atanh, atanh)
|
1732
|
+
#endif
|
1733
|
+
|
1734
|
+
#if defined(EIGEN_GPUCC)
|
1735
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1736
|
+
float atan(const float &x) { return ::atanf(x); }
|
1737
|
+
|
1738
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1739
|
+
double atan(const double &x) { return ::atan(x); }
|
1740
|
+
#endif
|
1741
|
+
|
1742
|
+
|
1743
|
+
template<typename T>
|
1744
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1745
|
+
T cosh(const T &x) {
|
1746
|
+
EIGEN_USING_STD(cosh);
|
1747
|
+
return static_cast<T>(cosh(x));
|
1748
|
+
}
|
1749
|
+
|
1750
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1751
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(cosh, cosh)
|
1752
|
+
#endif
|
1753
|
+
|
1754
|
+
#if defined(EIGEN_GPUCC)
|
1755
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1756
|
+
float cosh(const float &x) { return ::coshf(x); }
|
1757
|
+
|
1758
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1759
|
+
double cosh(const double &x) { return ::cosh(x); }
|
1760
|
+
#endif
|
1761
|
+
|
1762
|
+
template<typename T>
|
1763
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1764
|
+
T sinh(const T &x) {
|
1765
|
+
EIGEN_USING_STD(sinh);
|
1766
|
+
return static_cast<T>(sinh(x));
|
1767
|
+
}
|
1768
|
+
|
1769
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1770
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(sinh, sinh)
|
1771
|
+
#endif
|
1772
|
+
|
1773
|
+
#if defined(EIGEN_GPUCC)
|
1774
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1775
|
+
float sinh(const float &x) { return ::sinhf(x); }
|
1776
|
+
|
1777
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1778
|
+
double sinh(const double &x) { return ::sinh(x); }
|
1779
|
+
#endif
|
1780
|
+
|
1781
|
+
template<typename T>
|
1782
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1783
|
+
T tanh(const T &x) {
|
1784
|
+
EIGEN_USING_STD(tanh);
|
1785
|
+
return tanh(x);
|
1786
|
+
}
|
1787
|
+
|
1788
|
+
#if (!defined(EIGEN_GPUCC)) && EIGEN_FAST_MATH && !defined(SYCL_DEVICE_ONLY)
|
1789
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1790
|
+
float tanh(float x) { return internal::generic_fast_tanh_float(x); }
|
1791
|
+
#endif
|
1792
|
+
|
1793
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1794
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_UNARY(tanh, tanh)
|
1795
|
+
#endif
|
1796
|
+
|
1797
|
+
#if defined(EIGEN_GPUCC)
|
1798
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1799
|
+
float tanh(const float &x) { return ::tanhf(x); }
|
1800
|
+
|
1801
|
+
template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1802
|
+
double tanh(const double &x) { return ::tanh(x); }
|
1803
|
+
#endif
|
1804
|
+
|
1805
|
+
template <typename T>
|
1806
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1807
|
+
T fmod(const T& a, const T& b) {
|
1808
|
+
EIGEN_USING_STD(fmod);
|
1809
|
+
return fmod(a, b);
|
1810
|
+
}
|
1811
|
+
|
1812
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1813
|
+
SYCL_SPECIALIZE_FLOATING_TYPES_BINARY(fmod, fmod)
|
1814
|
+
#endif
|
1815
|
+
|
1816
|
+
#if defined(EIGEN_GPUCC)
|
1817
|
+
template <>
|
1818
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1819
|
+
float fmod(const float& a, const float& b) {
|
1820
|
+
return ::fmodf(a, b);
|
1821
|
+
}
|
1822
|
+
|
1823
|
+
template <>
|
1824
|
+
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE
|
1825
|
+
double fmod(const double& a, const double& b) {
|
1826
|
+
return ::fmod(a, b);
|
1827
|
+
}
|
1828
|
+
#endif
|
1829
|
+
|
1830
|
+
#if defined(SYCL_DEVICE_ONLY)
|
1831
|
+
#undef SYCL_SPECIALIZE_SIGNED_INTEGER_TYPES_BINARY
|
1832
|
+
#undef SYCL_SPECIALIZE_SIGNED_INTEGER_TYPES_UNARY
|
1833
|
+
#undef SYCL_SPECIALIZE_UNSIGNED_INTEGER_TYPES_BINARY
|
1834
|
+
#undef SYCL_SPECIALIZE_UNSIGNED_INTEGER_TYPES_UNARY
|
1835
|
+
#undef SYCL_SPECIALIZE_INTEGER_TYPES_BINARY
|
1836
|
+
#undef SYCL_SPECIALIZE_UNSIGNED_INTEGER_TYPES_UNARY
|
1837
|
+
#undef SYCL_SPECIALIZE_FLOATING_TYPES_BINARY
|
1838
|
+
#undef SYCL_SPECIALIZE_FLOATING_TYPES_UNARY
|
1839
|
+
#undef SYCL_SPECIALIZE_FLOATING_TYPES_UNARY_FUNC_RET_TYPE
|
1840
|
+
#undef SYCL_SPECIALIZE_GEN_UNARY_FUNC
|
1841
|
+
#undef SYCL_SPECIALIZE_UNARY_FUNC
|
1842
|
+
#undef SYCL_SPECIALIZE_GEN1_BINARY_FUNC
|
1843
|
+
#undef SYCL_SPECIALIZE_GEN2_BINARY_FUNC
|
1844
|
+
#undef SYCL_SPECIALIZE_BINARY_FUNC
|
1845
|
+
#endif
|
1846
|
+
|
1847
|
+
} // end namespace numext
|
1848
|
+
|
1849
|
+
namespace internal {
|
1850
|
+
|
1851
|
+
template<typename T>
|
1852
|
+
EIGEN_DEVICE_FUNC bool isfinite_impl(const std::complex<T>& x)
|
1853
|
+
{
|
1854
|
+
return (numext::isfinite)(numext::real(x)) && (numext::isfinite)(numext::imag(x));
|
1855
|
+
}
|
1856
|
+
|
1857
|
+
template<typename T>
|
1858
|
+
EIGEN_DEVICE_FUNC bool isnan_impl(const std::complex<T>& x)
|
1859
|
+
{
|
1860
|
+
return (numext::isnan)(numext::real(x)) || (numext::isnan)(numext::imag(x));
|
1861
|
+
}
|
1862
|
+
|
1863
|
+
template<typename T>
|
1864
|
+
EIGEN_DEVICE_FUNC bool isinf_impl(const std::complex<T>& x)
|
1865
|
+
{
|
1866
|
+
return ((numext::isinf)(numext::real(x)) || (numext::isinf)(numext::imag(x))) && (!(numext::isnan)(x));
|
1867
|
+
}
|
1868
|
+
|
1869
|
+
/****************************************************************************
|
1870
|
+
* Implementation of fuzzy comparisons *
|
1871
|
+
****************************************************************************/
|
1872
|
+
|
1873
|
+
template<typename Scalar,
|
1874
|
+
bool IsComplex,
|
1875
|
+
bool IsInteger>
|
1876
|
+
struct scalar_fuzzy_default_impl {};
|
1877
|
+
|
1878
|
+
template<typename Scalar>
|
1879
|
+
struct scalar_fuzzy_default_impl<Scalar, false, false>
|
1880
|
+
{
|
1881
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
1882
|
+
template<typename OtherScalar> EIGEN_DEVICE_FUNC
|
1883
|
+
static inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y, const RealScalar& prec)
|
1884
|
+
{
|
1885
|
+
return numext::abs(x) <= numext::abs(y) * prec;
|
1886
|
+
}
|
1887
|
+
EIGEN_DEVICE_FUNC
|
1888
|
+
static inline bool isApprox(const Scalar& x, const Scalar& y, const RealScalar& prec)
|
1889
|
+
{
|
1890
|
+
return numext::abs(x - y) <= numext::mini(numext::abs(x), numext::abs(y)) * prec;
|
1891
|
+
}
|
1892
|
+
EIGEN_DEVICE_FUNC
|
1893
|
+
static inline bool isApproxOrLessThan(const Scalar& x, const Scalar& y, const RealScalar& prec)
|
1894
|
+
{
|
1895
|
+
return x <= y || isApprox(x, y, prec);
|
1896
|
+
}
|
1897
|
+
};
|
1898
|
+
|
1899
|
+
template<typename Scalar>
|
1900
|
+
struct scalar_fuzzy_default_impl<Scalar, false, true>
|
1901
|
+
{
|
1902
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
1903
|
+
template<typename OtherScalar> EIGEN_DEVICE_FUNC
|
1904
|
+
static inline bool isMuchSmallerThan(const Scalar& x, const Scalar&, const RealScalar&)
|
1905
|
+
{
|
1906
|
+
return x == Scalar(0);
|
1907
|
+
}
|
1908
|
+
EIGEN_DEVICE_FUNC
|
1909
|
+
static inline bool isApprox(const Scalar& x, const Scalar& y, const RealScalar&)
|
1910
|
+
{
|
1911
|
+
return x == y;
|
1912
|
+
}
|
1913
|
+
EIGEN_DEVICE_FUNC
|
1914
|
+
static inline bool isApproxOrLessThan(const Scalar& x, const Scalar& y, const RealScalar&)
|
1915
|
+
{
|
1916
|
+
return x <= y;
|
1917
|
+
}
|
1918
|
+
};
|
1919
|
+
|
1920
|
+
template<typename Scalar>
|
1921
|
+
struct scalar_fuzzy_default_impl<Scalar, true, false>
|
1922
|
+
{
|
1923
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
1924
|
+
template<typename OtherScalar> EIGEN_DEVICE_FUNC
|
1925
|
+
static inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y, const RealScalar& prec)
|
1926
|
+
{
|
1927
|
+
return numext::abs2(x) <= numext::abs2(y) * prec * prec;
|
1928
|
+
}
|
1929
|
+
EIGEN_DEVICE_FUNC
|
1930
|
+
static inline bool isApprox(const Scalar& x, const Scalar& y, const RealScalar& prec)
|
1931
|
+
{
|
1932
|
+
return numext::abs2(x - y) <= numext::mini(numext::abs2(x), numext::abs2(y)) * prec * prec;
|
1933
|
+
}
|
1934
|
+
};
|
1935
|
+
|
1936
|
+
template<typename Scalar>
|
1937
|
+
struct scalar_fuzzy_impl : scalar_fuzzy_default_impl<Scalar, NumTraits<Scalar>::IsComplex, NumTraits<Scalar>::IsInteger> {};
|
1938
|
+
|
1939
|
+
template<typename Scalar, typename OtherScalar> EIGEN_DEVICE_FUNC
|
1940
|
+
inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y,
|
1941
|
+
const typename NumTraits<Scalar>::Real &precision = NumTraits<Scalar>::dummy_precision())
|
1942
|
+
{
|
1943
|
+
return scalar_fuzzy_impl<Scalar>::template isMuchSmallerThan<OtherScalar>(x, y, precision);
|
1944
|
+
}
|
1945
|
+
|
1946
|
+
template<typename Scalar> EIGEN_DEVICE_FUNC
|
1947
|
+
inline bool isApprox(const Scalar& x, const Scalar& y,
|
1948
|
+
const typename NumTraits<Scalar>::Real &precision = NumTraits<Scalar>::dummy_precision())
|
1949
|
+
{
|
1950
|
+
return scalar_fuzzy_impl<Scalar>::isApprox(x, y, precision);
|
1951
|
+
}
|
1952
|
+
|
1953
|
+
template<typename Scalar> EIGEN_DEVICE_FUNC
|
1954
|
+
inline bool isApproxOrLessThan(const Scalar& x, const Scalar& y,
|
1955
|
+
const typename NumTraits<Scalar>::Real &precision = NumTraits<Scalar>::dummy_precision())
|
1956
|
+
{
|
1957
|
+
return scalar_fuzzy_impl<Scalar>::isApproxOrLessThan(x, y, precision);
|
1958
|
+
}
|
1959
|
+
|
1960
|
+
/******************************************
|
1961
|
+
*** The special case of the bool type ***
|
1962
|
+
******************************************/
|
1963
|
+
|
1964
|
+
template<> struct random_impl<bool>
|
1965
|
+
{
|
1966
|
+
static inline bool run()
|
1967
|
+
{
|
1968
|
+
return random<int>(0,1)==0 ? false : true;
|
1969
|
+
}
|
1970
|
+
|
1971
|
+
static inline bool run(const bool& a, const bool& b)
|
1972
|
+
{
|
1973
|
+
return random<int>(a, b)==0 ? false : true;
|
1974
|
+
}
|
1975
|
+
};
|
1976
|
+
|
1977
|
+
template<> struct scalar_fuzzy_impl<bool>
|
1978
|
+
{
|
1979
|
+
typedef bool RealScalar;
|
1980
|
+
|
1981
|
+
template<typename OtherScalar> EIGEN_DEVICE_FUNC
|
1982
|
+
static inline bool isMuchSmallerThan(const bool& x, const bool&, const bool&)
|
1983
|
+
{
|
1984
|
+
return !x;
|
1985
|
+
}
|
1986
|
+
|
1987
|
+
EIGEN_DEVICE_FUNC
|
1988
|
+
static inline bool isApprox(bool x, bool y, bool)
|
1989
|
+
{
|
1990
|
+
return x == y;
|
1991
|
+
}
|
1992
|
+
|
1993
|
+
EIGEN_DEVICE_FUNC
|
1994
|
+
static inline bool isApproxOrLessThan(const bool& x, const bool& y, const bool&)
|
1995
|
+
{
|
1996
|
+
return (!x) || y;
|
1997
|
+
}
|
1998
|
+
|
1999
|
+
};
|
2000
|
+
|
2001
|
+
} // end namespace internal
|
2002
|
+
|
2003
|
+
// Default implementations that rely on other numext implementations
|
2004
|
+
namespace internal {
|
2005
|
+
|
2006
|
+
// Specialization for complex types that are not supported by std::expm1.
|
2007
|
+
template <typename RealScalar>
|
2008
|
+
struct expm1_impl<std::complex<RealScalar> > {
|
2009
|
+
EIGEN_DEVICE_FUNC static inline std::complex<RealScalar> run(
|
2010
|
+
const std::complex<RealScalar>& x) {
|
2011
|
+
EIGEN_STATIC_ASSERT_NON_INTEGER(RealScalar)
|
2012
|
+
RealScalar xr = x.real();
|
2013
|
+
RealScalar xi = x.imag();
|
2014
|
+
// expm1(z) = exp(z) - 1
|
2015
|
+
// = exp(x + i * y) - 1
|
2016
|
+
// = exp(x) * (cos(y) + i * sin(y)) - 1
|
2017
|
+
// = exp(x) * cos(y) - 1 + i * exp(x) * sin(y)
|
2018
|
+
// Imag(expm1(z)) = exp(x) * sin(y)
|
2019
|
+
// Real(expm1(z)) = exp(x) * cos(y) - 1
|
2020
|
+
// = exp(x) * cos(y) - 1.
|
2021
|
+
// = expm1(x) + exp(x) * (cos(y) - 1)
|
2022
|
+
// = expm1(x) + exp(x) * (2 * sin(y / 2) ** 2)
|
2023
|
+
RealScalar erm1 = numext::expm1<RealScalar>(xr);
|
2024
|
+
RealScalar er = erm1 + RealScalar(1.);
|
2025
|
+
RealScalar sin2 = numext::sin(xi / RealScalar(2.));
|
2026
|
+
sin2 = sin2 * sin2;
|
2027
|
+
RealScalar s = numext::sin(xi);
|
2028
|
+
RealScalar real_part = erm1 - RealScalar(2.) * er * sin2;
|
2029
|
+
return std::complex<RealScalar>(real_part, er * s);
|
2030
|
+
}
|
2031
|
+
};
|
2032
|
+
|
2033
|
+
template<typename T>
|
2034
|
+
struct rsqrt_impl {
|
2035
|
+
EIGEN_DEVICE_FUNC
|
2036
|
+
static EIGEN_ALWAYS_INLINE T run(const T& x) {
|
2037
|
+
return T(1)/numext::sqrt(x);
|
2038
|
+
}
|
2039
|
+
};
|
2040
|
+
|
2041
|
+
#if defined(EIGEN_GPU_COMPILE_PHASE)
|
2042
|
+
template<typename T>
|
2043
|
+
struct conj_impl<std::complex<T>, true>
|
2044
|
+
{
|
2045
|
+
EIGEN_DEVICE_FUNC
|
2046
|
+
static inline std::complex<T> run(const std::complex<T>& x)
|
2047
|
+
{
|
2048
|
+
return std::complex<T>(numext::real(x), -numext::imag(x));
|
2049
|
+
}
|
2050
|
+
};
|
2051
|
+
#endif
|
2052
|
+
|
2053
|
+
} // end namespace internal
|
2054
|
+
|
2055
|
+
} // end namespace Eigen
|
2056
|
+
|
2057
|
+
#endif // EIGEN_MATHFUNCTIONS_H
|