@lakutata/math 0.0.0-stage → 3.1.3
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.
- package/LICENSE +23 -0
- package/README.md +954 -2
- package/README.zh-CN.md +578 -0
- package/THIRD_PARTY_NOTICES.md +553 -0
- package/binding.gyp +89 -0
- package/dist/cjs/exceptions/MathArgumentException.d.ts +11 -0
- package/dist/cjs/exceptions/MathArgumentException.js +18 -0
- package/dist/cjs/exceptions/MathCancelledException.d.ts +10 -0
- package/dist/cjs/exceptions/MathCancelledException.js +17 -0
- package/dist/cjs/exceptions/MathDefinitionException.d.ts +11 -0
- package/dist/cjs/exceptions/MathDefinitionException.js +18 -0
- package/dist/cjs/exceptions/MathDivisionByZeroException.d.ts +10 -0
- package/dist/cjs/exceptions/MathDivisionByZeroException.js +17 -0
- package/dist/cjs/exceptions/MathDomainException.d.ts +11 -0
- package/dist/cjs/exceptions/MathDomainException.js +18 -0
- package/dist/cjs/exceptions/MathException.d.ts +19 -0
- package/dist/cjs/exceptions/MathException.js +22 -0
- package/dist/cjs/exceptions/MathNotSupportedException.d.ts +11 -0
- package/dist/cjs/exceptions/MathNotSupportedException.js +18 -0
- package/dist/cjs/exceptions/MathSyntaxException.d.ts +11 -0
- package/dist/cjs/exceptions/MathSyntaxException.js +18 -0
- package/dist/cjs/exceptions/MathTimeoutException.d.ts +10 -0
- package/dist/cjs/exceptions/MathTimeoutException.js +17 -0
- package/dist/cjs/exceptions/MathUnitException.d.ts +11 -0
- package/dist/cjs/exceptions/MathUnitException.js +18 -0
- package/dist/cjs/exceptions/MathUnknownFunctionException.d.ts +12 -0
- package/dist/cjs/exceptions/MathUnknownFunctionException.js +19 -0
- package/dist/cjs/exports/Math.d.ts +28 -0
- package/dist/cjs/exports/Math.js +84 -0
- package/dist/cjs/lib/Addon.d.ts +5 -0
- package/dist/cjs/lib/Addon.js +9 -0
- package/dist/cjs/lib/Context.d.ts +90 -0
- package/dist/cjs/lib/Context.js +134 -0
- package/dist/cjs/lib/Decimal.d.ts +276 -0
- package/dist/cjs/lib/Decimal.js +402 -0
- package/dist/cjs/lib/Defaults.d.ts +273 -0
- package/dist/cjs/lib/Defaults.js +308 -0
- package/dist/cjs/lib/Distribution.d.ts +177 -0
- package/dist/cjs/lib/Distribution.js +195 -0
- package/dist/cjs/lib/Expression.d.ts +791 -0
- package/dist/cjs/lib/Expression.js +991 -0
- package/dist/cjs/lib/ExpressionMatrix.d.ts +284 -0
- package/dist/cjs/lib/ExpressionMatrix.js +412 -0
- package/dist/cjs/lib/LinearAlgebra.d.ts +613 -0
- package/dist/cjs/lib/LinearAlgebra.js +712 -0
- package/dist/cjs/lib/MathScope.d.ts +268 -0
- package/dist/cjs/lib/MathScope.js +316 -0
- package/dist/cjs/lib/MathSet.d.ts +139 -0
- package/dist/cjs/lib/MathSet.js +376 -0
- package/dist/cjs/lib/Matrix.d.ts +212 -0
- package/dist/cjs/lib/Matrix.js +393 -0
- package/dist/cjs/lib/Native.d.ts +80 -0
- package/dist/cjs/lib/Native.js +61 -0
- package/dist/cjs/lib/NumberTheory.d.ts +356 -0
- package/dist/cjs/lib/NumberTheory.js +524 -0
- package/dist/cjs/lib/Numeric.d.ts +363 -0
- package/dist/cjs/lib/Numeric.js +243 -0
- package/dist/cjs/lib/Polynomials.d.ts +140 -0
- package/dist/cjs/lib/Polynomials.js +167 -0
- package/dist/cjs/lib/SparseMatrix.d.ts +125 -0
- package/dist/cjs/lib/SparseMatrix.js +341 -0
- package/dist/cjs/lib/Statistics.d.ts +366 -0
- package/dist/cjs/lib/Statistics.js +380 -0
- package/dist/cjs/lib/Unit.d.ts +342 -0
- package/dist/cjs/lib/Unit.js +1027 -0
- package/dist/cjs/lib/UnitTable.d.ts +39 -0
- package/dist/cjs/lib/UnitTable.js +634 -0
- package/dist/cjs/package.json +1 -0
- package/dist/esm/exceptions/MathArgumentException.js +14 -0
- package/dist/esm/exceptions/MathCancelledException.js +13 -0
- package/dist/esm/exceptions/MathDefinitionException.js +14 -0
- package/dist/esm/exceptions/MathDivisionByZeroException.js +13 -0
- package/dist/esm/exceptions/MathDomainException.js +14 -0
- package/dist/esm/exceptions/MathException.js +18 -0
- package/dist/esm/exceptions/MathNotSupportedException.js +14 -0
- package/dist/esm/exceptions/MathSyntaxException.js +14 -0
- package/dist/esm/exceptions/MathTimeoutException.js +13 -0
- package/dist/esm/exceptions/MathUnitException.js +14 -0
- package/dist/esm/exceptions/MathUnknownFunctionException.js +15 -0
- package/dist/esm/exports/Math.js +26 -0
- package/dist/esm/lib/Addon.js +10 -0
- package/dist/esm/lib/Context.js +128 -0
- package/dist/esm/lib/Decimal.js +397 -0
- package/dist/esm/lib/Defaults.js +290 -0
- package/dist/esm/lib/Distribution.js +190 -0
- package/dist/esm/lib/Expression.js +979 -0
- package/dist/esm/lib/ExpressionMatrix.js +407 -0
- package/dist/esm/lib/LinearAlgebra.js +708 -0
- package/dist/esm/lib/MathScope.js +311 -0
- package/dist/esm/lib/MathSet.js +370 -0
- package/dist/esm/lib/Matrix.js +382 -0
- package/dist/esm/lib/Native.js +56 -0
- package/dist/esm/lib/NumberTheory.js +520 -0
- package/dist/esm/lib/Numeric.js +239 -0
- package/dist/esm/lib/Polynomials.js +163 -0
- package/dist/esm/lib/SparseMatrix.js +332 -0
- package/dist/esm/lib/Statistics.js +376 -0
- package/dist/esm/lib/Unit.js +1018 -0
- package/dist/esm/lib/UnitTable.js +631 -0
- package/dist/types/exceptions/MathArgumentException.d.ts +11 -0
- package/dist/types/exceptions/MathCancelledException.d.ts +10 -0
- package/dist/types/exceptions/MathDefinitionException.d.ts +11 -0
- package/dist/types/exceptions/MathDivisionByZeroException.d.ts +10 -0
- package/dist/types/exceptions/MathDomainException.d.ts +11 -0
- package/dist/types/exceptions/MathException.d.ts +19 -0
- package/dist/types/exceptions/MathNotSupportedException.d.ts +11 -0
- package/dist/types/exceptions/MathSyntaxException.d.ts +11 -0
- package/dist/types/exceptions/MathTimeoutException.d.ts +10 -0
- package/dist/types/exceptions/MathUnitException.d.ts +11 -0
- package/dist/types/exceptions/MathUnknownFunctionException.d.ts +12 -0
- package/dist/types/exports/Math.d.ts +28 -0
- package/dist/types/lib/Addon.d.ts +5 -0
- package/dist/types/lib/Context.d.ts +90 -0
- package/dist/types/lib/Decimal.d.ts +276 -0
- package/dist/types/lib/Defaults.d.ts +273 -0
- package/dist/types/lib/Distribution.d.ts +177 -0
- package/dist/types/lib/Expression.d.ts +791 -0
- package/dist/types/lib/ExpressionMatrix.d.ts +284 -0
- package/dist/types/lib/LinearAlgebra.d.ts +613 -0
- package/dist/types/lib/MathScope.d.ts +268 -0
- package/dist/types/lib/MathSet.d.ts +139 -0
- package/dist/types/lib/Matrix.d.ts +212 -0
- package/dist/types/lib/Native.d.ts +80 -0
- package/dist/types/lib/NumberTheory.d.ts +356 -0
- package/dist/types/lib/Numeric.d.ts +363 -0
- package/dist/types/lib/Polynomials.d.ts +140 -0
- package/dist/types/lib/SparseMatrix.d.ts +125 -0
- package/dist/types/lib/Statistics.d.ts +366 -0
- package/dist/types/lib/Unit.d.ts +342 -0
- package/dist/types/lib/UnitTable.d.ts +39 -0
- package/native/addon.cpp +1374 -0
- package/native/async/Pool.cpp +133 -0
- package/native/async/Pool.h +59 -0
- package/native/config/boost_math_policy.h +26 -0
- package/native/config/mpdecimal/mpdecimal.h +809 -0
- package/native/config/symengine/symengine_config.h +44 -0
- package/native/config/symengine/symengine_export.h +19 -0
- package/native/core/Errors.cpp +77 -0
- package/native/core/Errors.h +72 -0
- package/native/core/Handle.cpp +109 -0
- package/native/core/Handle.h +72 -0
- package/native/core/Scope.cpp +122 -0
- package/native/core/Scope.h +36 -0
- package/native/functions/Functions.cpp +468 -0
- package/native/functions/Functions.h +115 -0
- package/native/functions/Gosper.cpp +429 -0
- package/native/functions/Gosper.h +20 -0
- package/native/functions/SpecialIntegrals.cpp +329 -0
- package/native/functions/SpecialIntegrals.h +53 -0
- package/native/functions/Summation.cpp +645 -0
- package/native/functions/Summation.h +42 -0
- package/native/integrals/Integrals.cpp +1428 -0
- package/native/integrals/Integrals.h +32 -0
- package/native/limits/Gruntz.cpp +1332 -0
- package/native/limits/Gruntz.h +24 -0
- package/native/linalg/Decompositions.cpp +159 -0
- package/native/linalg/Functions.cpp +199 -0
- package/native/linalg/Linalg.cpp +123 -0
- package/native/linalg/Linalg.h +67 -0
- package/native/linalg/LinalgSupport.h +69 -0
- package/native/linalg/Sparse.cpp +172 -0
- package/native/matrix/Matrices.cpp +766 -0
- package/native/matrix/Matrices.h +74 -0
- package/native/ntheory/NumberTheory.cpp +754 -0
- package/native/ntheory/NumberTheory.h +56 -0
- package/native/numeric/Compiled.cpp +93 -0
- package/native/numeric/Compiled.h +49 -0
- package/native/numeric/Integrate.cpp +718 -0
- package/native/numeric/Numeric.h +95 -0
- package/native/numeric/ODE.cpp +542 -0
- package/native/numeric/Roots.cpp +402 -0
- package/native/ops/Decimal.cpp +776 -0
- package/native/ops/Decimal.h +182 -0
- package/native/ops/DecimalComplex.cpp +738 -0
- package/native/ops/DecimalEvaluator.h +79 -0
- package/native/ops/DecimalFunctions.cpp +439 -0
- package/native/ops/DecimalOperations.cpp +236 -0
- package/native/ops/DecimalSpecial.cpp +1028 -0
- package/native/ops/DecimalSupport.h +109 -0
- package/native/ops/Operations.cpp +969 -0
- package/native/ops/Operations.h +120 -0
- package/native/ops/Piecewise.cpp +195 -0
- package/native/ops/Piecewise.h +40 -0
- package/native/parser/Parser.cpp +853 -0
- package/native/parser/Parser.h +56 -0
- package/native/poly/Convert.cpp +210 -0
- package/native/poly/Convert.h +40 -0
- package/native/poly/Dense.cpp +1008 -0
- package/native/poly/Dense.h +136 -0
- package/native/poly/Euclid.cpp +446 -0
- package/native/poly/Euclid.h +44 -0
- package/native/poly/Factor.cpp +919 -0
- package/native/poly/Factor.h +36 -0
- package/native/poly/Galois.cpp +439 -0
- package/native/poly/Galois.h +86 -0
- package/native/poly/Inequalities.cpp +227 -0
- package/native/poly/Inequalities.h +21 -0
- package/native/poly/Poly.cpp +338 -0
- package/native/poly/Poly.h +46 -0
- package/native/poly/Rational.cpp +403 -0
- package/native/poly/Rational.h +33 -0
- package/native/poly/RealRoots.cpp +136 -0
- package/native/poly/RealRoots.h +35 -0
- package/native/printer/Printer.cpp +973 -0
- package/native/printer/Printer.h +23 -0
- package/native/simplify/Simplify.cpp +921 -0
- package/native/simplify/Simplify.h +21 -0
- package/native/stats/Distributions.cpp +392 -0
- package/native/stats/Distributions.h +33 -0
- package/native/stats/Statistics.cpp +255 -0
- package/native/stats/Statistics.h +25 -0
- package/package.json +85 -4
- package/scripts/sources.mjs +35 -0
- package/vendor/PATCHES.md +169 -0
- package/vendor/boost/config/README.md +43 -0
- package/vendor/boost/config/include/boost/config/abi/borland_prefix.hpp +27 -0
- package/vendor/boost/config/include/boost/config/abi/borland_suffix.hpp +12 -0
- package/vendor/boost/config/include/boost/config/abi/msvc_prefix.hpp +22 -0
- package/vendor/boost/config/include/boost/config/abi/msvc_suffix.hpp +8 -0
- package/vendor/boost/config/include/boost/config/abi_prefix.hpp +25 -0
- package/vendor/boost/config/include/boost/config/abi_suffix.hpp +25 -0
- package/vendor/boost/config/include/boost/config/assert_cxx03.hpp +211 -0
- package/vendor/boost/config/include/boost/config/assert_cxx11.hpp +212 -0
- package/vendor/boost/config/include/boost/config/assert_cxx14.hpp +47 -0
- package/vendor/boost/config/include/boost/config/assert_cxx17.hpp +65 -0
- package/vendor/boost/config/include/boost/config/assert_cxx20.hpp +59 -0
- package/vendor/boost/config/include/boost/config/assert_cxx23.hpp +41 -0
- package/vendor/boost/config/include/boost/config/assert_cxx98.hpp +23 -0
- package/vendor/boost/config/include/boost/config/auto_link.hpp +530 -0
- package/vendor/boost/config/include/boost/config/compiler/borland.hpp +342 -0
- package/vendor/boost/config/include/boost/config/compiler/clang.hpp +370 -0
- package/vendor/boost/config/include/boost/config/compiler/clang_version.hpp +98 -0
- package/vendor/boost/config/include/boost/config/compiler/codegear.hpp +389 -0
- package/vendor/boost/config/include/boost/config/compiler/comeau.hpp +59 -0
- package/vendor/boost/config/include/boost/config/compiler/common_edg.hpp +185 -0
- package/vendor/boost/config/include/boost/config/compiler/compaq_cxx.hpp +19 -0
- package/vendor/boost/config/include/boost/config/compiler/cray.hpp +446 -0
- package/vendor/boost/config/include/boost/config/compiler/diab.hpp +26 -0
- package/vendor/boost/config/include/boost/config/compiler/digitalmars.hpp +146 -0
- package/vendor/boost/config/include/boost/config/compiler/gcc.hpp +386 -0
- package/vendor/boost/config/include/boost/config/compiler/gcc_xml.hpp +115 -0
- package/vendor/boost/config/include/boost/config/compiler/greenhills.hpp +28 -0
- package/vendor/boost/config/include/boost/config/compiler/hp_acc.hpp +153 -0
- package/vendor/boost/config/include/boost/config/compiler/intel.hpp +577 -0
- package/vendor/boost/config/include/boost/config/compiler/kai.hpp +33 -0
- package/vendor/boost/config/include/boost/config/compiler/metrowerks.hpp +201 -0
- package/vendor/boost/config/include/boost/config/compiler/mpw.hpp +143 -0
- package/vendor/boost/config/include/boost/config/compiler/nvcc.hpp +64 -0
- package/vendor/boost/config/include/boost/config/compiler/pathscale.hpp +141 -0
- package/vendor/boost/config/include/boost/config/compiler/pgi.hpp +23 -0
- package/vendor/boost/config/include/boost/config/compiler/sgi_mipspro.hpp +29 -0
- package/vendor/boost/config/include/boost/config/compiler/sunpro_cc.hpp +225 -0
- package/vendor/boost/config/include/boost/config/compiler/vacpp.hpp +189 -0
- package/vendor/boost/config/include/boost/config/compiler/visualc.hpp +400 -0
- package/vendor/boost/config/include/boost/config/compiler/xlcpp.hpp +303 -0
- package/vendor/boost/config/include/boost/config/compiler/xlcpp_zos.hpp +174 -0
- package/vendor/boost/config/include/boost/config/detail/cxx_composite.hpp +218 -0
- package/vendor/boost/config/include/boost/config/detail/posix_features.hpp +95 -0
- package/vendor/boost/config/include/boost/config/detail/select_compiler_config.hpp +157 -0
- package/vendor/boost/config/include/boost/config/detail/select_platform_config.hpp +147 -0
- package/vendor/boost/config/include/boost/config/detail/select_stdlib_config.hpp +121 -0
- package/vendor/boost/config/include/boost/config/detail/suffix.hpp +1334 -0
- package/vendor/boost/config/include/boost/config/header_deprecated.hpp +26 -0
- package/vendor/boost/config/include/boost/config/helper_macros.hpp +37 -0
- package/vendor/boost/config/include/boost/config/no_tr1/cmath.hpp +28 -0
- package/vendor/boost/config/include/boost/config/no_tr1/complex.hpp +28 -0
- package/vendor/boost/config/include/boost/config/no_tr1/functional.hpp +28 -0
- package/vendor/boost/config/include/boost/config/no_tr1/memory.hpp +28 -0
- package/vendor/boost/config/include/boost/config/no_tr1/utility.hpp +28 -0
- package/vendor/boost/config/include/boost/config/platform/aix.hpp +33 -0
- package/vendor/boost/config/include/boost/config/platform/amigaos.hpp +15 -0
- package/vendor/boost/config/include/boost/config/platform/beos.hpp +26 -0
- package/vendor/boost/config/include/boost/config/platform/bsd.hpp +83 -0
- package/vendor/boost/config/include/boost/config/platform/cloudabi.hpp +18 -0
- package/vendor/boost/config/include/boost/config/platform/cray.hpp +18 -0
- package/vendor/boost/config/include/boost/config/platform/cygwin.hpp +71 -0
- package/vendor/boost/config/include/boost/config/platform/haiku.hpp +31 -0
- package/vendor/boost/config/include/boost/config/platform/hpux.hpp +87 -0
- package/vendor/boost/config/include/boost/config/platform/irix.hpp +31 -0
- package/vendor/boost/config/include/boost/config/platform/linux.hpp +106 -0
- package/vendor/boost/config/include/boost/config/platform/macos.hpp +87 -0
- package/vendor/boost/config/include/boost/config/platform/qnxnto.hpp +31 -0
- package/vendor/boost/config/include/boost/config/platform/solaris.hpp +31 -0
- package/vendor/boost/config/include/boost/config/platform/symbian.hpp +97 -0
- package/vendor/boost/config/include/boost/config/platform/vms.hpp +25 -0
- package/vendor/boost/config/include/boost/config/platform/vxworks.hpp +422 -0
- package/vendor/boost/config/include/boost/config/platform/wasm.hpp +23 -0
- package/vendor/boost/config/include/boost/config/platform/win32.hpp +90 -0
- package/vendor/boost/config/include/boost/config/platform/zos.hpp +32 -0
- package/vendor/boost/config/include/boost/config/pragma_message.hpp +31 -0
- package/vendor/boost/config/include/boost/config/requires_threads.hpp +92 -0
- package/vendor/boost/config/include/boost/config/stdlib/dinkumware.hpp +324 -0
- package/vendor/boost/config/include/boost/config/stdlib/libcomo.hpp +93 -0
- package/vendor/boost/config/include/boost/config/stdlib/libcpp.hpp +185 -0
- package/vendor/boost/config/include/boost/config/stdlib/libstdcpp3.hpp +482 -0
- package/vendor/boost/config/include/boost/config/stdlib/modena.hpp +79 -0
- package/vendor/boost/config/include/boost/config/stdlib/msl.hpp +98 -0
- package/vendor/boost/config/include/boost/config/stdlib/roguewave.hpp +208 -0
- package/vendor/boost/config/include/boost/config/stdlib/sgi.hpp +168 -0
- package/vendor/boost/config/include/boost/config/stdlib/stlport.hpp +258 -0
- package/vendor/boost/config/include/boost/config/stdlib/vacpp.hpp +74 -0
- package/vendor/boost/config/include/boost/config/stdlib/xlcpp_zos.hpp +61 -0
- package/vendor/boost/config/include/boost/config/user.hpp +133 -0
- package/vendor/boost/config/include/boost/config/warning_disable.hpp +47 -0
- package/vendor/boost/config/include/boost/config/workaround.hpp +310 -0
- package/vendor/boost/config/include/boost/config.hpp +67 -0
- package/vendor/boost/config/include/boost/cstdint.hpp +556 -0
- package/vendor/boost/config/include/boost/cxx11_char_types.hpp +70 -0
- package/vendor/boost/config/include/boost/detail/workaround.hpp +10 -0
- package/vendor/boost/config/include/boost/limits.hpp +146 -0
- package/vendor/boost/config/include/boost/static_assert.hpp +179 -0
- package/vendor/boost/config/include/boost/version.hpp +32 -0
- package/vendor/boost/math/LICENSE +23 -0
- package/vendor/boost/math/README.md +184 -0
- package/vendor/boost/math/include/boost/cstdfloat.hpp +58 -0
- package/vendor/boost/math/include/boost/math/bindings/detail/big_digamma.hpp +297 -0
- package/vendor/boost/math/include/boost/math/bindings/detail/big_lanczos.hpp +777 -0
- package/vendor/boost/math/include/boost/math/bindings/mpfr.hpp +974 -0
- package/vendor/boost/math/include/boost/math/bindings/mpreal.hpp +921 -0
- package/vendor/boost/math/include/boost/math/bindings/rr.hpp +876 -0
- package/vendor/boost/math/include/boost/math/ccmath/abs.hpp +89 -0
- package/vendor/boost/math/include/boost/math/ccmath/ccmath.hpp +45 -0
- package/vendor/boost/math/include/boost/math/ccmath/ceil.hpp +78 -0
- package/vendor/boost/math/include/boost/math/ccmath/copysign.hpp +81 -0
- package/vendor/boost/math/include/boost/math/ccmath/detail/config.hpp +52 -0
- package/vendor/boost/math/include/boost/math/ccmath/detail/swap.hpp +21 -0
- package/vendor/boost/math/include/boost/math/ccmath/div.hpp +86 -0
- package/vendor/boost/math/include/boost/math/ccmath/fabs.hpp +41 -0
- package/vendor/boost/math/include/boost/math/ccmath/fdim.hpp +93 -0
- package/vendor/boost/math/include/boost/math/ccmath/floor.hpp +131 -0
- package/vendor/boost/math/include/boost/math/ccmath/fma.hpp +130 -0
- package/vendor/boost/math/include/boost/math/ccmath/fmax.hpp +89 -0
- package/vendor/boost/math/include/boost/math/ccmath/fmin.hpp +89 -0
- package/vendor/boost/math/include/boost/math/ccmath/fmod.hpp +114 -0
- package/vendor/boost/math/include/boost/math/ccmath/fpclassify.hpp +48 -0
- package/vendor/boost/math/include/boost/math/ccmath/frexp.hpp +101 -0
- package/vendor/boost/math/include/boost/math/ccmath/hypot.hpp +116 -0
- package/vendor/boost/math/include/boost/math/ccmath/ilogb.hpp +60 -0
- package/vendor/boost/math/include/boost/math/ccmath/isfinite.hpp +53 -0
- package/vendor/boost/math/include/boost/math/ccmath/isgreater.hpp +42 -0
- package/vendor/boost/math/include/boost/math/ccmath/isgreaterequal.hpp +42 -0
- package/vendor/boost/math/include/boost/math/ccmath/isinf.hpp +61 -0
- package/vendor/boost/math/include/boost/math/ccmath/isless.hpp +42 -0
- package/vendor/boost/math/include/boost/math/ccmath/islessequal.hpp +42 -0
- package/vendor/boost/math/include/boost/math/ccmath/isnan.hpp +42 -0
- package/vendor/boost/math/include/boost/math/ccmath/isnormal.hpp +47 -0
- package/vendor/boost/math/include/boost/math/ccmath/isunordered.hpp +35 -0
- package/vendor/boost/math/include/boost/math/ccmath/ldexp.hpp +81 -0
- package/vendor/boost/math/include/boost/math/ccmath/logb.hpp +86 -0
- package/vendor/boost/math/include/boost/math/ccmath/modf.hpp +79 -0
- package/vendor/boost/math/include/boost/math/ccmath/next.hpp +458 -0
- package/vendor/boost/math/include/boost/math/ccmath/remainder.hpp +106 -0
- package/vendor/boost/math/include/boost/math/ccmath/round.hpp +179 -0
- package/vendor/boost/math/include/boost/math/ccmath/scalbln.hpp +60 -0
- package/vendor/boost/math/include/boost/math/ccmath/scalbn.hpp +81 -0
- package/vendor/boost/math/include/boost/math/ccmath/signbit.hpp +218 -0
- package/vendor/boost/math/include/boost/math/ccmath/sqrt.hpp +80 -0
- package/vendor/boost/math/include/boost/math/ccmath/trunc.hpp +70 -0
- package/vendor/boost/math/include/boost/math/common_factor.hpp +23 -0
- package/vendor/boost/math/include/boost/math/common_factor_ct.hpp +34 -0
- package/vendor/boost/math/include/boost/math/common_factor_rt.hpp +30 -0
- package/vendor/boost/math/include/boost/math/complex/acos.hpp +245 -0
- package/vendor/boost/math/include/boost/math/complex/acosh.hpp +34 -0
- package/vendor/boost/math/include/boost/math/complex/asin.hpp +252 -0
- package/vendor/boost/math/include/boost/math/complex/asinh.hpp +32 -0
- package/vendor/boost/math/include/boost/math/complex/atan.hpp +36 -0
- package/vendor/boost/math/include/boost/math/complex/atanh.hpp +214 -0
- package/vendor/boost/math/include/boost/math/complex/details.hpp +68 -0
- package/vendor/boost/math/include/boost/math/complex/fabs.hpp +23 -0
- package/vendor/boost/math/include/boost/math/complex.hpp +32 -0
- package/vendor/boost/math/include/boost/math/concepts/distributions.hpp +497 -0
- package/vendor/boost/math/include/boost/math/concepts/real_concept.hpp +400 -0
- package/vendor/boost/math/include/boost/math/concepts/real_type_concept.hpp +119 -0
- package/vendor/boost/math/include/boost/math/concepts/std_real_concept.hpp +427 -0
- package/vendor/boost/math/include/boost/math/constants/calculate_constants.hpp +1117 -0
- package/vendor/boost/math/include/boost/math/constants/constants.hpp +360 -0
- package/vendor/boost/math/include/boost/math/constants/info.hpp +169 -0
- package/vendor/boost/math/include/boost/math/cstdfloat/cstdfloat_cmath.hpp +1012 -0
- package/vendor/boost/math/include/boost/math/cstdfloat/cstdfloat_complex.hpp +38 -0
- package/vendor/boost/math/include/boost/math/cstdfloat/cstdfloat_complex_std.hpp +813 -0
- package/vendor/boost/math/include/boost/math/cstdfloat/cstdfloat_iostream.hpp +822 -0
- package/vendor/boost/math/include/boost/math/cstdfloat/cstdfloat_limits.hpp +87 -0
- package/vendor/boost/math/include/boost/math/cstdfloat/cstdfloat_types.hpp +441 -0
- package/vendor/boost/math/include/boost/math/differentiation/autodiff.hpp +2061 -0
- package/vendor/boost/math/include/boost/math/differentiation/autodiff_cpp11.hpp +387 -0
- package/vendor/boost/math/include/boost/math/differentiation/autodiff_reverse.hpp +811 -0
- package/vendor/boost/math/include/boost/math/differentiation/detail/reverse_mode_autodiff_basic_operator_expressions.hpp +276 -0
- package/vendor/boost/math/include/boost/math/differentiation/detail/reverse_mode_autodiff_basic_ops_et.hpp +160 -0
- package/vendor/boost/math/include/boost/math/differentiation/detail/reverse_mode_autodiff_basic_ops_no_et.hpp +154 -0
- package/vendor/boost/math/include/boost/math/differentiation/detail/reverse_mode_autodiff_comparison_operator_overloads.hpp +167 -0
- package/vendor/boost/math/include/boost/math/differentiation/detail/reverse_mode_autodiff_erf_overloads.hpp +234 -0
- package/vendor/boost/math/include/boost/math/differentiation/detail/reverse_mode_autodiff_expression_template_base.hpp +258 -0
- package/vendor/boost/math/include/boost/math/differentiation/detail/reverse_mode_autodiff_helper_functions.hpp +18 -0
- package/vendor/boost/math/include/boost/math/differentiation/detail/reverse_mode_autodiff_memory_management.hpp +462 -0
- package/vendor/boost/math/include/boost/math/differentiation/detail/reverse_mode_autodiff_stl_et.hpp +275 -0
- package/vendor/boost/math/include/boost/math/differentiation/detail/reverse_mode_autodiff_stl_expressions.hpp +852 -0
- package/vendor/boost/math/include/boost/math/differentiation/detail/reverse_mode_autodiff_stl_no_et.hpp +266 -0
- package/vendor/boost/math/include/boost/math/differentiation/detail/reverse_mode_autodiff_utilities.hpp +51 -0
- package/vendor/boost/math/include/boost/math/differentiation/finite_difference.hpp +266 -0
- package/vendor/boost/math/include/boost/math/differentiation/lanczos_smoothing.hpp +591 -0
- package/vendor/boost/math/include/boost/math/distributions/arcsine.hpp +593 -0
- package/vendor/boost/math/include/boost/math/distributions/bernoulli.hpp +349 -0
- package/vendor/boost/math/include/boost/math/distributions/beta.hpp +584 -0
- package/vendor/boost/math/include/boost/math/distributions/binomial.hpp +729 -0
- package/vendor/boost/math/include/boost/math/distributions/cauchy.hpp +379 -0
- package/vendor/boost/math/include/boost/math/distributions/chi_squared.hpp +345 -0
- package/vendor/boost/math/include/boost/math/distributions/complement.hpp +198 -0
- package/vendor/boost/math/include/boost/math/distributions/detail/common_error_handling.hpp +228 -0
- package/vendor/boost/math/include/boost/math/distributions/detail/derived_accessors.hpp +190 -0
- package/vendor/boost/math/include/boost/math/distributions/detail/generic_mode.hpp +145 -0
- package/vendor/boost/math/include/boost/math/distributions/detail/generic_quantile.hpp +100 -0
- package/vendor/boost/math/include/boost/math/distributions/detail/hypergeometric_cdf.hpp +101 -0
- package/vendor/boost/math/include/boost/math/distributions/detail/hypergeometric_pdf.hpp +490 -0
- package/vendor/boost/math/include/boost/math/distributions/detail/hypergeometric_quantile.hpp +245 -0
- package/vendor/boost/math/include/boost/math/distributions/detail/inv_discrete_quantile.hpp +583 -0
- package/vendor/boost/math/include/boost/math/distributions/empirical_cumulative_distribution_function.hpp +73 -0
- package/vendor/boost/math/include/boost/math/distributions/exponential.hpp +352 -0
- package/vendor/boost/math/include/boost/math/distributions/extreme_value.hpp +388 -0
- package/vendor/boost/math/include/boost/math/distributions/find_location.hpp +141 -0
- package/vendor/boost/math/include/boost/math/distributions/find_scale.hpp +200 -0
- package/vendor/boost/math/include/boost/math/distributions/fisher_f.hpp +393 -0
- package/vendor/boost/math/include/boost/math/distributions/fwd.hpp +171 -0
- package/vendor/boost/math/include/boost/math/distributions/gamma.hpp +396 -0
- package/vendor/boost/math/include/boost/math/distributions/geometric.hpp +571 -0
- package/vendor/boost/math/include/boost/math/distributions/holtsmark.hpp +2518 -0
- package/vendor/boost/math/include/boost/math/distributions/hyperexponential.hpp +641 -0
- package/vendor/boost/math/include/boost/math/distributions/hypergeometric.hpp +313 -0
- package/vendor/boost/math/include/boost/math/distributions/inverse_chi_squared.hpp +398 -0
- package/vendor/boost/math/include/boost/math/distributions/inverse_gamma.hpp +504 -0
- package/vendor/boost/math/include/boost/math/distributions/inverse_gaussian.hpp +566 -0
- package/vendor/boost/math/include/boost/math/distributions/kolmogorov_smirnov.hpp +511 -0
- package/vendor/boost/math/include/boost/math/distributions/landau.hpp +4642 -0
- package/vendor/boost/math/include/boost/math/distributions/laplace.hpp +494 -0
- package/vendor/boost/math/include/boost/math/distributions/logistic.hpp +377 -0
- package/vendor/boost/math/include/boost/math/distributions/lognormal.hpp +361 -0
- package/vendor/boost/math/include/boost/math/distributions/mapairy.hpp +4220 -0
- package/vendor/boost/math/include/boost/math/distributions/negative_binomial.hpp +609 -0
- package/vendor/boost/math/include/boost/math/distributions/non_central_beta.hpp +981 -0
- package/vendor/boost/math/include/boost/math/distributions/non_central_chi_squared.hpp +998 -0
- package/vendor/boost/math/include/boost/math/distributions/non_central_f.hpp +712 -0
- package/vendor/boost/math/include/boost/math/distributions/non_central_t.hpp +1324 -0
- package/vendor/boost/math/include/boost/math/distributions/normal.hpp +368 -0
- package/vendor/boost/math/include/boost/math/distributions/pareto.hpp +508 -0
- package/vendor/boost/math/include/boost/math/distributions/poisson.hpp +563 -0
- package/vendor/boost/math/include/boost/math/distributions/rayleigh.hpp +381 -0
- package/vendor/boost/math/include/boost/math/distributions/saspoint5.hpp +2796 -0
- package/vendor/boost/math/include/boost/math/distributions/skew_normal.hpp +760 -0
- package/vendor/boost/math/include/boost/math/distributions/students_t.hpp +721 -0
- package/vendor/boost/math/include/boost/math/distributions/triangular.hpp +548 -0
- package/vendor/boost/math/include/boost/math/distributions/uniform.hpp +398 -0
- package/vendor/boost/math/include/boost/math/distributions/weibull.hpp +487 -0
- package/vendor/boost/math/include/boost/math/distributions.hpp +58 -0
- package/vendor/boost/math/include/boost/math/filters/daubechies.hpp +99 -0
- package/vendor/boost/math/include/boost/math/interpolators/barycentric_rational.hpp +99 -0
- package/vendor/boost/math/include/boost/math/interpolators/bezier_polynomial.hpp +60 -0
- package/vendor/boost/math/include/boost/math/interpolators/bilinear_uniform.hpp +54 -0
- package/vendor/boost/math/include/boost/math/interpolators/cardinal_cubic_b_spline.hpp +87 -0
- package/vendor/boost/math/include/boost/math/interpolators/cardinal_quadratic_b_spline.hpp +57 -0
- package/vendor/boost/math/include/boost/math/interpolators/cardinal_quintic_b_spline.hpp +62 -0
- package/vendor/boost/math/include/boost/math/interpolators/cardinal_trigonometric.hpp +58 -0
- package/vendor/boost/math/include/boost/math/interpolators/catmull_rom.hpp +310 -0
- package/vendor/boost/math/include/boost/math/interpolators/cubic_b_spline.hpp +90 -0
- package/vendor/boost/math/include/boost/math/interpolators/cubic_hermite.hpp +142 -0
- package/vendor/boost/math/include/boost/math/interpolators/detail/barycentric_rational_detail.hpp +215 -0
- package/vendor/boost/math/include/boost/math/interpolators/detail/bezier_polynomial_detail.hpp +167 -0
- package/vendor/boost/math/include/boost/math/interpolators/detail/bilinear_uniform_detail.hpp +137 -0
- package/vendor/boost/math/include/boost/math/interpolators/detail/cardinal_cubic_b_spline_detail.hpp +331 -0
- package/vendor/boost/math/include/boost/math/interpolators/detail/cardinal_quadratic_b_spline_detail.hpp +208 -0
- package/vendor/boost/math/include/boost/math/interpolators/detail/cardinal_quintic_b_spline_detail.hpp +241 -0
- package/vendor/boost/math/include/boost/math/interpolators/detail/cardinal_trigonometric_detail.hpp +684 -0
- package/vendor/boost/math/include/boost/math/interpolators/detail/cubic_b_spline_detail.hpp +330 -0
- package/vendor/boost/math/include/boost/math/interpolators/detail/cubic_hermite_detail.hpp +439 -0
- package/vendor/boost/math/include/boost/math/interpolators/detail/quintic_hermite_detail.hpp +586 -0
- package/vendor/boost/math/include/boost/math/interpolators/detail/septic_hermite_detail.hpp +653 -0
- package/vendor/boost/math/include/boost/math/interpolators/detail/vector_barycentric_rational_detail.hpp +196 -0
- package/vendor/boost/math/include/boost/math/interpolators/detail/whittaker_shannon_detail.hpp +128 -0
- package/vendor/boost/math/include/boost/math/interpolators/makima.hpp +178 -0
- package/vendor/boost/math/include/boost/math/interpolators/pchip.hpp +136 -0
- package/vendor/boost/math/include/boost/math/interpolators/quintic_hermite.hpp +143 -0
- package/vendor/boost/math/include/boost/math/interpolators/septic_hermite.hpp +147 -0
- package/vendor/boost/math/include/boost/math/interpolators/vector_barycentric_rational.hpp +82 -0
- package/vendor/boost/math/include/boost/math/interpolators/whittaker_shannon.hpp +47 -0
- package/vendor/boost/math/include/boost/math/octonion.hpp +4254 -0
- package/vendor/boost/math/include/boost/math/optimization/cma_es.hpp +392 -0
- package/vendor/boost/math/include/boost/math/optimization/detail/common.hpp +200 -0
- package/vendor/boost/math/include/boost/math/optimization/detail/differentiable_opt_utilties.hpp +157 -0
- package/vendor/boost/math/include/boost/math/optimization/detail/gradient_opt_base.hpp +92 -0
- package/vendor/boost/math/include/boost/math/optimization/detail/line_search_policies.hpp +206 -0
- package/vendor/boost/math/include/boost/math/optimization/detail/rdiff_optimization_policies.hpp +134 -0
- package/vendor/boost/math/include/boost/math/optimization/differential_evolution.hpp +236 -0
- package/vendor/boost/math/include/boost/math/optimization/gradient_descent.hpp +202 -0
- package/vendor/boost/math/include/boost/math/optimization/gradient_optimizers.hpp +18 -0
- package/vendor/boost/math/include/boost/math/optimization/jso.hpp +465 -0
- package/vendor/boost/math/include/boost/math/optimization/lbfgs.hpp +382 -0
- package/vendor/boost/math/include/boost/math/optimization/minimizer.hpp +336 -0
- package/vendor/boost/math/include/boost/math/optimization/nesterov.hpp +208 -0
- package/vendor/boost/math/include/boost/math/optimization/random_search.hpp +145 -0
- package/vendor/boost/math/include/boost/math/policies/error_handling.hpp +1062 -0
- package/vendor/boost/math/include/boost/math/policies/policy.hpp +1034 -0
- package/vendor/boost/math/include/boost/math/quadrature/detail/exp_sinh_detail.hpp +2002 -0
- package/vendor/boost/math/include/boost/math/quadrature/detail/ooura_fourier_integrals_detail.hpp +692 -0
- package/vendor/boost/math/include/boost/math/quadrature/detail/sinh_sinh_detail.hpp +1353 -0
- package/vendor/boost/math/include/boost/math/quadrature/detail/tanh_sinh_detail.hpp +879 -0
- package/vendor/boost/math/include/boost/math/quadrature/exp_sinh.hpp +180 -0
- package/vendor/boost/math/include/boost/math/quadrature/gauss.hpp +904 -0
- package/vendor/boost/math/include/boost/math/quadrature/gauss_kronrod.hpp +1317 -0
- package/vendor/boost/math/include/boost/math/quadrature/naive_monte_carlo.hpp +469 -0
- package/vendor/boost/math/include/boost/math/quadrature/ooura_fourier_integrals.hpp +68 -0
- package/vendor/boost/math/include/boost/math/quadrature/sinh_sinh.hpp +72 -0
- package/vendor/boost/math/include/boost/math/quadrature/tanh_sinh.hpp +289 -0
- package/vendor/boost/math/include/boost/math/quadrature/trapezoidal.hpp +125 -0
- package/vendor/boost/math/include/boost/math/quadrature/wavelet_transforms.hpp +47 -0
- package/vendor/boost/math/include/boost/math/quaternion.hpp +1190 -0
- package/vendor/boost/math/include/boost/math/special_functions/acosh.hpp +102 -0
- package/vendor/boost/math/include/boost/math/special_functions/airy.hpp +475 -0
- package/vendor/boost/math/include/boost/math/special_functions/asinh.hpp +110 -0
- package/vendor/boost/math/include/boost/math/special_functions/atanh.hpp +116 -0
- package/vendor/boost/math/include/boost/math/special_functions/bernoulli.hpp +149 -0
- package/vendor/boost/math/include/boost/math/special_functions/bessel.hpp +795 -0
- package/vendor/boost/math/include/boost/math/special_functions/bessel_iterators.hpp +187 -0
- package/vendor/boost/math/include/boost/math/special_functions/bessel_prime.hpp +343 -0
- package/vendor/boost/math/include/boost/math/special_functions/beta.hpp +1870 -0
- package/vendor/boost/math/include/boost/math/special_functions/binomial.hpp +87 -0
- package/vendor/boost/math/include/boost/math/special_functions/cardinal_b_spline.hpp +218 -0
- package/vendor/boost/math/include/boost/math/special_functions/cbrt.hpp +215 -0
- package/vendor/boost/math/include/boost/math/special_functions/chebyshev.hpp +314 -0
- package/vendor/boost/math/include/boost/math/special_functions/chebyshev_transform.hpp +237 -0
- package/vendor/boost/math/include/boost/math/special_functions/cos_pi.hpp +128 -0
- package/vendor/boost/math/include/boost/math/special_functions/daubechies_scaling.hpp +491 -0
- package/vendor/boost/math/include/boost/math/special_functions/daubechies_wavelet.hpp +266 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/airy_ai_bi_zero.hpp +222 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bernoulli_details.hpp +629 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_derivatives_linear.hpp +107 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_i0.hpp +550 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_i1.hpp +556 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_ik.hpp +447 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_j0.hpp +192 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_j1.hpp +179 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_jn.hpp +127 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_jy.hpp +603 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_jy_asym.hpp +230 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_jy_derivatives_asym.hpp +141 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_jy_derivatives_series.hpp +219 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_jy_series.hpp +267 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_jy_zero.hpp +643 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_k0.hpp +485 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_k1.hpp +526 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_kn.hpp +91 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_y0.hpp +205 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_y1.hpp +183 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/bessel_yn.hpp +113 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/daubechies_scaling_integer_grid.hpp +244 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/erf_inv.hpp +559 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/fp_traits.hpp +562 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/gamma_inva.hpp +241 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_0F1_bessel.hpp +46 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_1F1_addition_theorems_on_z.hpp +293 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_1F1_bessel.hpp +768 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_1F1_by_ratios.hpp +678 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_1F1_cf.hpp +50 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_1F1_large_a.hpp +35 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_1F1_large_abz.hpp +492 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_1F1_negative_b_regions.hpp +521 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_1F1_recurrence.hpp +522 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_1F1_scaled_series.hpp +60 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_1F1_small_a_negative_b_by_ratio.hpp +70 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_asym.hpp +179 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_cf.hpp +228 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_pFq_checked_series.hpp +687 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_pade.hpp +131 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_rational.hpp +167 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_separated_series.hpp +50 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/hypergeometric_series.hpp +434 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/ibeta_inv_ab.hpp +331 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/ibeta_inverse.hpp +1122 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/iconv.hpp +43 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/igamma_inverse.hpp +587 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/igamma_large.hpp +823 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/lambert_w_lookup_table.ipp +162 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/lanczos_sse2.hpp +238 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/lgamma_small.hpp +569 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/polygamma.hpp +538 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/round_fwd.hpp +87 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/t_distribution_inv.hpp +567 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/unchecked_bernoulli.hpp +1305 -0
- package/vendor/boost/math/include/boost/math/special_functions/detail/unchecked_factorial.hpp +1727 -0
- package/vendor/boost/math/include/boost/math/special_functions/digamma.hpp +631 -0
- package/vendor/boost/math/include/boost/math/special_functions/ellint_1.hpp +815 -0
- package/vendor/boost/math/include/boost/math/special_functions/ellint_2.hpp +756 -0
- package/vendor/boost/math/include/boost/math/special_functions/ellint_3.hpp +374 -0
- package/vendor/boost/math/include/boost/math/special_functions/ellint_d.hpp +183 -0
- package/vendor/boost/math/include/boost/math/special_functions/ellint_rc.hpp +112 -0
- package/vendor/boost/math/include/boost/math/special_functions/ellint_rd.hpp +207 -0
- package/vendor/boost/math/include/boost/math/special_functions/ellint_rf.hpp +169 -0
- package/vendor/boost/math/include/boost/math/special_functions/ellint_rg.hpp +130 -0
- package/vendor/boost/math/include/boost/math/special_functions/ellint_rj.hpp +299 -0
- package/vendor/boost/math/include/boost/math/special_functions/erf.hpp +1334 -0
- package/vendor/boost/math/include/boost/math/special_functions/expint.hpp +1614 -0
- package/vendor/boost/math/include/boost/math/special_functions/expm1.hpp +416 -0
- package/vendor/boost/math/include/boost/math/special_functions/factorials.hpp +276 -0
- package/vendor/boost/math/include/boost/math/special_functions/fibonacci.hpp +92 -0
- package/vendor/boost/math/include/boost/math/special_functions/fourier_transform_daubechies.hpp +248 -0
- package/vendor/boost/math/include/boost/math/special_functions/fpclassify.hpp +797 -0
- package/vendor/boost/math/include/boost/math/special_functions/gamma.hpp +2628 -0
- package/vendor/boost/math/include/boost/math/special_functions/gegenbauer.hpp +84 -0
- package/vendor/boost/math/include/boost/math/special_functions/hankel.hpp +186 -0
- package/vendor/boost/math/include/boost/math/special_functions/hermite.hpp +79 -0
- package/vendor/boost/math/include/boost/math/special_functions/heuman_lambda.hpp +97 -0
- package/vendor/boost/math/include/boost/math/special_functions/hypergeometric_0F1.hpp +116 -0
- package/vendor/boost/math/include/boost/math/special_functions/hypergeometric_1F0.hpp +69 -0
- package/vendor/boost/math/include/boost/math/special_functions/hypergeometric_1F1.hpp +822 -0
- package/vendor/boost/math/include/boost/math/special_functions/hypergeometric_2F0.hpp +163 -0
- package/vendor/boost/math/include/boost/math/special_functions/hypergeometric_pFq.hpp +205 -0
- package/vendor/boost/math/include/boost/math/special_functions/hypot.hpp +148 -0
- package/vendor/boost/math/include/boost/math/special_functions/jacobi.hpp +69 -0
- package/vendor/boost/math/include/boost/math/special_functions/jacobi_elliptic.hpp +319 -0
- package/vendor/boost/math/include/boost/math/special_functions/jacobi_theta.hpp +802 -0
- package/vendor/boost/math/include/boost/math/special_functions/jacobi_zeta.hpp +83 -0
- package/vendor/boost/math/include/boost/math/special_functions/laguerre.hpp +139 -0
- package/vendor/boost/math/include/boost/math/special_functions/lambert_w.hpp +2171 -0
- package/vendor/boost/math/include/boost/math/special_functions/lanczos.hpp +2760 -0
- package/vendor/boost/math/include/boost/math/special_functions/legendre.hpp +380 -0
- package/vendor/boost/math/include/boost/math/special_functions/legendre_stieltjes.hpp +234 -0
- package/vendor/boost/math/include/boost/math/special_functions/log1p.hpp +417 -0
- package/vendor/boost/math/include/boost/math/special_functions/logaddexp.hpp +41 -0
- package/vendor/boost/math/include/boost/math/special_functions/logistic_sigmoid.hpp +46 -0
- package/vendor/boost/math/include/boost/math/special_functions/logit.hpp +56 -0
- package/vendor/boost/math/include/boost/math/special_functions/logsumexp.hpp +60 -0
- package/vendor/boost/math/include/boost/math/special_functions/math_fwd.hpp +1927 -0
- package/vendor/boost/math/include/boost/math/special_functions/modf.hpp +74 -0
- package/vendor/boost/math/include/boost/math/special_functions/next.hpp +886 -0
- package/vendor/boost/math/include/boost/math/special_functions/nonfinite_num_facets.hpp +588 -0
- package/vendor/boost/math/include/boost/math/special_functions/owens_t.hpp +1067 -0
- package/vendor/boost/math/include/boost/math/special_functions/polygamma.hpp +83 -0
- package/vendor/boost/math/include/boost/math/special_functions/pow.hpp +144 -0
- package/vendor/boost/math/include/boost/math/special_functions/powm1.hpp +101 -0
- package/vendor/boost/math/include/boost/math/special_functions/prime.hpp +2433 -0
- package/vendor/boost/math/include/boost/math/special_functions/relative_difference.hpp +134 -0
- package/vendor/boost/math/include/boost/math/special_functions/round.hpp +353 -0
- package/vendor/boost/math/include/boost/math/special_functions/rsqrt.hpp +52 -0
- package/vendor/boost/math/include/boost/math/special_functions/sign.hpp +241 -0
- package/vendor/boost/math/include/boost/math/special_functions/sin_pi.hpp +135 -0
- package/vendor/boost/math/include/boost/math/special_functions/sinc.hpp +123 -0
- package/vendor/boost/math/include/boost/math/special_functions/sinhc.hpp +142 -0
- package/vendor/boost/math/include/boost/math/special_functions/spherical_harmonic.hpp +205 -0
- package/vendor/boost/math/include/boost/math/special_functions/sqrt1pm1.hpp +49 -0
- package/vendor/boost/math/include/boost/math/special_functions/trigamma.hpp +448 -0
- package/vendor/boost/math/include/boost/math/special_functions/trunc.hpp +385 -0
- package/vendor/boost/math/include/boost/math/special_functions/ulp.hpp +102 -0
- package/vendor/boost/math/include/boost/math/special_functions/zeta.hpp +1081 -0
- package/vendor/boost/math/include/boost/math/special_functions.hpp +86 -0
- package/vendor/boost/math/include/boost/math/statistics/anderson_darling.hpp +112 -0
- package/vendor/boost/math/include/boost/math/statistics/bivariate_statistics.hpp +470 -0
- package/vendor/boost/math/include/boost/math/statistics/chatterjee_correlation.hpp +159 -0
- package/vendor/boost/math/include/boost/math/statistics/detail/rank.hpp +140 -0
- package/vendor/boost/math/include/boost/math/statistics/detail/single_pass.hpp +401 -0
- package/vendor/boost/math/include/boost/math/statistics/linear_regression.hpp +133 -0
- package/vendor/boost/math/include/boost/math/statistics/ljung_box.hpp +70 -0
- package/vendor/boost/math/include/boost/math/statistics/runs_test.hpp +121 -0
- package/vendor/boost/math/include/boost/math/statistics/signal_statistics.hpp +350 -0
- package/vendor/boost/math/include/boost/math/statistics/t_test.hpp +275 -0
- package/vendor/boost/math/include/boost/math/statistics/univariate_statistics.hpp +1184 -0
- package/vendor/boost/math/include/boost/math/statistics/z_test.hpp +161 -0
- package/vendor/boost/math/include/boost/math/tools/agm.hpp +47 -0
- package/vendor/boost/math/include/boost/math/tools/array.hpp +41 -0
- package/vendor/boost/math/include/boost/math/tools/assert.hpp +49 -0
- package/vendor/boost/math/include/boost/math/tools/atomic.hpp +50 -0
- package/vendor/boost/math/include/boost/math/tools/big_constant.hpp +110 -0
- package/vendor/boost/math/include/boost/math/tools/bivariate_statistics.hpp +96 -0
- package/vendor/boost/math/include/boost/math/tools/centered_continued_fraction.hpp +173 -0
- package/vendor/boost/math/include/boost/math/tools/cohen_acceleration.hpp +51 -0
- package/vendor/boost/math/include/boost/math/tools/color_maps.hpp +1943 -0
- package/vendor/boost/math/include/boost/math/tools/complex.hpp +115 -0
- package/vendor/boost/math/include/boost/math/tools/concepts.hpp +24 -0
- package/vendor/boost/math/include/boost/math/tools/condition_numbers.hpp +144 -0
- package/vendor/boost/math/include/boost/math/tools/config.hpp +856 -0
- package/vendor/boost/math/include/boost/math/tools/convert_from_string.hpp +85 -0
- package/vendor/boost/math/include/boost/math/tools/cstdint.hpp +107 -0
- package/vendor/boost/math/include/boost/math/tools/cubic_roots.hpp +198 -0
- package/vendor/boost/math/include/boost/math/tools/cxx03_warn.hpp +95 -0
- package/vendor/boost/math/include/boost/math/tools/detail/is_const_iterable.hpp +38 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_10.hpp +84 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_11.hpp +90 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_12.hpp +96 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_13.hpp +102 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_14.hpp +108 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_15.hpp +114 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_16.hpp +120 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_17.hpp +126 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_18.hpp +132 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_19.hpp +138 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_2.hpp +36 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_20.hpp +144 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_3.hpp +42 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_4.hpp +48 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_5.hpp +54 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_6.hpp +60 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_7.hpp +66 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_8.hpp +72 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner1_9.hpp +78 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_10.hpp +90 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_11.hpp +97 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_12.hpp +104 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_13.hpp +111 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_14.hpp +118 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_15.hpp +125 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_16.hpp +132 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_17.hpp +139 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_18.hpp +146 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_19.hpp +153 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_2.hpp +48 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_20.hpp +160 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_3.hpp +48 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_4.hpp +48 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_5.hpp +55 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_6.hpp +62 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_7.hpp +69 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_8.hpp +76 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner2_9.hpp +83 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_10.hpp +156 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_11.hpp +181 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_12.hpp +208 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_13.hpp +237 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_14.hpp +268 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_15.hpp +301 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_16.hpp +336 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_17.hpp +373 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_18.hpp +412 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_19.hpp +453 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_2.hpp +48 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_20.hpp +496 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_3.hpp +48 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_4.hpp +48 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_5.hpp +61 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_6.hpp +76 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_7.hpp +93 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_8.hpp +112 -0
- package/vendor/boost/math/include/boost/math/tools/detail/polynomial_horner3_9.hpp +133 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_10.hpp +138 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_11.hpp +150 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_12.hpp +162 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_13.hpp +174 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_14.hpp +186 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_15.hpp +198 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_16.hpp +210 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_17.hpp +222 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_18.hpp +234 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_19.hpp +246 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_2.hpp +42 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_20.hpp +258 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_3.hpp +54 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_4.hpp +66 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_5.hpp +78 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_6.hpp +90 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_7.hpp +102 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_8.hpp +114 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner1_9.hpp +126 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_10.hpp +144 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_11.hpp +160 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_12.hpp +176 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_13.hpp +192 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_14.hpp +208 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_15.hpp +224 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_16.hpp +240 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_17.hpp +256 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_18.hpp +272 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_19.hpp +288 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_2.hpp +48 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_20.hpp +304 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_3.hpp +48 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_4.hpp +48 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_5.hpp +64 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_6.hpp +80 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_7.hpp +96 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_8.hpp +112 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner2_9.hpp +128 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_10.hpp +396 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_11.hpp +482 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_12.hpp +576 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_13.hpp +678 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_14.hpp +788 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_15.hpp +906 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_16.hpp +1032 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_17.hpp +1166 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_18.hpp +1308 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_19.hpp +1458 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_2.hpp +48 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_20.hpp +1616 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_3.hpp +48 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_4.hpp +48 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_5.hpp +86 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_6.hpp +132 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_7.hpp +186 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_8.hpp +248 -0
- package/vendor/boost/math/include/boost/math/tools/detail/rational_horner3_9.hpp +318 -0
- package/vendor/boost/math/include/boost/math/tools/engel_expansion.hpp +124 -0
- package/vendor/boost/math/include/boost/math/tools/estrin.hpp +72 -0
- package/vendor/boost/math/include/boost/math/tools/fraction.hpp +354 -0
- package/vendor/boost/math/include/boost/math/tools/header_deprecated.hpp +27 -0
- package/vendor/boost/math/include/boost/math/tools/is_constant_evaluated.hpp +51 -0
- package/vendor/boost/math/include/boost/math/tools/is_detected.hpp +56 -0
- package/vendor/boost/math/include/boost/math/tools/is_standalone.hpp +18 -0
- package/vendor/boost/math/include/boost/math/tools/luroth_expansion.hpp +147 -0
- package/vendor/boost/math/include/boost/math/tools/minima.hpp +164 -0
- package/vendor/boost/math/include/boost/math/tools/mp.hpp +423 -0
- package/vendor/boost/math/include/boost/math/tools/norms.hpp +638 -0
- package/vendor/boost/math/include/boost/math/tools/nothrow.hpp +27 -0
- package/vendor/boost/math/include/boost/math/tools/numeric_limits.hpp +888 -0
- package/vendor/boost/math/include/boost/math/tools/numerical_differentiation.hpp +12 -0
- package/vendor/boost/math/include/boost/math/tools/polynomial.hpp +862 -0
- package/vendor/boost/math/include/boost/math/tools/polynomial_gcd.hpp +268 -0
- package/vendor/boost/math/include/boost/math/tools/precision.hpp +418 -0
- package/vendor/boost/math/include/boost/math/tools/promotion.hpp +135 -0
- package/vendor/boost/math/include/boost/math/tools/quartic_roots.hpp +157 -0
- package/vendor/boost/math/include/boost/math/tools/random_vector.hpp +101 -0
- package/vendor/boost/math/include/boost/math/tools/rational.hpp +346 -0
- package/vendor/boost/math/include/boost/math/tools/real_cast.hpp +31 -0
- package/vendor/boost/math/include/boost/math/tools/recurrence.hpp +330 -0
- package/vendor/boost/math/include/boost/math/tools/roots.hpp +1072 -0
- package/vendor/boost/math/include/boost/math/tools/series.hpp +221 -0
- package/vendor/boost/math/include/boost/math/tools/signal_statistics.hpp +353 -0
- package/vendor/boost/math/include/boost/math/tools/simple_continued_fraction.hpp +177 -0
- package/vendor/boost/math/include/boost/math/tools/stats.hpp +87 -0
- package/vendor/boost/math/include/boost/math/tools/test_value.hpp +143 -0
- package/vendor/boost/math/include/boost/math/tools/throw_exception.hpp +43 -0
- package/vendor/boost/math/include/boost/math/tools/toms748_solve.hpp +636 -0
- package/vendor/boost/math/include/boost/math/tools/traits.hpp +140 -0
- package/vendor/boost/math/include/boost/math/tools/tuple.hpp +88 -0
- package/vendor/boost/math/include/boost/math/tools/type_traits.hpp +489 -0
- package/vendor/boost/math/include/boost/math/tools/ulps_plot.hpp +598 -0
- package/vendor/boost/math/include/boost/math/tools/univariate_statistics.hpp +437 -0
- package/vendor/boost/math/include/boost/math/tools/user.hpp +105 -0
- package/vendor/boost/math/include/boost/math/tools/utility.hpp +69 -0
- package/vendor/boost/math/include/boost/math/tools/workaround.hpp +42 -0
- package/vendor/boost/math/include/boost/math/tr1.hpp +1121 -0
- package/vendor/boost/math/include/boost/math/tr1_c_macros.ipp +810 -0
- package/vendor/boost/math/include/boost/math_fwd.hpp +42 -0
- package/vendor/boost/multiprecision/LICENSE +23 -0
- package/vendor/boost/multiprecision/README.md +168 -0
- package/vendor/boost/multiprecision/include/boost/config/abi/borland_prefix.hpp +27 -0
- package/vendor/boost/multiprecision/include/boost/config/abi/borland_suffix.hpp +12 -0
- package/vendor/boost/multiprecision/include/boost/config/abi/msvc_prefix.hpp +22 -0
- package/vendor/boost/multiprecision/include/boost/config/abi/msvc_suffix.hpp +8 -0
- package/vendor/boost/multiprecision/include/boost/config/abi_prefix.hpp +25 -0
- package/vendor/boost/multiprecision/include/boost/config/abi_suffix.hpp +25 -0
- package/vendor/boost/multiprecision/include/boost/config/assert_cxx03.hpp +211 -0
- package/vendor/boost/multiprecision/include/boost/config/assert_cxx11.hpp +212 -0
- package/vendor/boost/multiprecision/include/boost/config/assert_cxx14.hpp +47 -0
- package/vendor/boost/multiprecision/include/boost/config/assert_cxx17.hpp +65 -0
- package/vendor/boost/multiprecision/include/boost/config/assert_cxx20.hpp +59 -0
- package/vendor/boost/multiprecision/include/boost/config/assert_cxx23.hpp +41 -0
- package/vendor/boost/multiprecision/include/boost/config/assert_cxx98.hpp +23 -0
- package/vendor/boost/multiprecision/include/boost/config/auto_link.hpp +530 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/borland.hpp +342 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/clang.hpp +370 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/clang_version.hpp +98 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/codegear.hpp +389 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/comeau.hpp +59 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/common_edg.hpp +185 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/compaq_cxx.hpp +19 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/cray.hpp +446 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/diab.hpp +26 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/digitalmars.hpp +146 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/gcc.hpp +386 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/gcc_xml.hpp +115 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/greenhills.hpp +28 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/hp_acc.hpp +153 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/intel.hpp +577 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/kai.hpp +33 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/metrowerks.hpp +201 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/mpw.hpp +143 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/nvcc.hpp +64 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/pathscale.hpp +141 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/pgi.hpp +23 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/sgi_mipspro.hpp +29 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/sunpro_cc.hpp +225 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/vacpp.hpp +189 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/visualc.hpp +400 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/xlcpp.hpp +303 -0
- package/vendor/boost/multiprecision/include/boost/config/compiler/xlcpp_zos.hpp +174 -0
- package/vendor/boost/multiprecision/include/boost/config/detail/cxx_composite.hpp +218 -0
- package/vendor/boost/multiprecision/include/boost/config/detail/posix_features.hpp +95 -0
- package/vendor/boost/multiprecision/include/boost/config/detail/select_compiler_config.hpp +157 -0
- package/vendor/boost/multiprecision/include/boost/config/detail/select_platform_config.hpp +147 -0
- package/vendor/boost/multiprecision/include/boost/config/detail/select_stdlib_config.hpp +121 -0
- package/vendor/boost/multiprecision/include/boost/config/detail/suffix.hpp +1334 -0
- package/vendor/boost/multiprecision/include/boost/config/header_deprecated.hpp +26 -0
- package/vendor/boost/multiprecision/include/boost/config/helper_macros.hpp +37 -0
- package/vendor/boost/multiprecision/include/boost/config/no_tr1/cmath.hpp +28 -0
- package/vendor/boost/multiprecision/include/boost/config/no_tr1/complex.hpp +28 -0
- package/vendor/boost/multiprecision/include/boost/config/no_tr1/functional.hpp +28 -0
- package/vendor/boost/multiprecision/include/boost/config/no_tr1/memory.hpp +28 -0
- package/vendor/boost/multiprecision/include/boost/config/no_tr1/utility.hpp +28 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/aix.hpp +33 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/amigaos.hpp +15 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/beos.hpp +26 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/bsd.hpp +83 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/cloudabi.hpp +18 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/cray.hpp +18 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/cygwin.hpp +71 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/haiku.hpp +31 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/hpux.hpp +87 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/irix.hpp +31 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/linux.hpp +106 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/macos.hpp +87 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/qnxnto.hpp +31 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/solaris.hpp +31 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/symbian.hpp +97 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/vms.hpp +25 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/vxworks.hpp +422 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/wasm.hpp +23 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/win32.hpp +90 -0
- package/vendor/boost/multiprecision/include/boost/config/platform/zos.hpp +32 -0
- package/vendor/boost/multiprecision/include/boost/config/pragma_message.hpp +31 -0
- package/vendor/boost/multiprecision/include/boost/config/requires_threads.hpp +92 -0
- package/vendor/boost/multiprecision/include/boost/config/stdlib/dinkumware.hpp +324 -0
- package/vendor/boost/multiprecision/include/boost/config/stdlib/libcomo.hpp +93 -0
- package/vendor/boost/multiprecision/include/boost/config/stdlib/libcpp.hpp +185 -0
- package/vendor/boost/multiprecision/include/boost/config/stdlib/libstdcpp3.hpp +482 -0
- package/vendor/boost/multiprecision/include/boost/config/stdlib/modena.hpp +79 -0
- package/vendor/boost/multiprecision/include/boost/config/stdlib/msl.hpp +98 -0
- package/vendor/boost/multiprecision/include/boost/config/stdlib/roguewave.hpp +208 -0
- package/vendor/boost/multiprecision/include/boost/config/stdlib/sgi.hpp +168 -0
- package/vendor/boost/multiprecision/include/boost/config/stdlib/stlport.hpp +258 -0
- package/vendor/boost/multiprecision/include/boost/config/stdlib/vacpp.hpp +74 -0
- package/vendor/boost/multiprecision/include/boost/config/stdlib/xlcpp_zos.hpp +61 -0
- package/vendor/boost/multiprecision/include/boost/config/user.hpp +133 -0
- package/vendor/boost/multiprecision/include/boost/config/warning_disable.hpp +47 -0
- package/vendor/boost/multiprecision/include/boost/config/workaround.hpp +310 -0
- package/vendor/boost/multiprecision/include/boost/config.hpp +67 -0
- package/vendor/boost/multiprecision/include/boost/cstdint.hpp +556 -0
- package/vendor/boost/multiprecision/include/boost/cxx11_char_types.hpp +70 -0
- package/vendor/boost/multiprecision/include/boost/detail/workaround.hpp +10 -0
- package/vendor/boost/multiprecision/include/boost/limits.hpp +146 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/complex128.hpp +24 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/complex_adaptor.hpp +1049 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/concepts/mp_number_archetypes.hpp +257 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_bin_float/io.hpp +700 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_bin_float/transcendental.hpp +157 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_bin_float.hpp +2374 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_complex.hpp +12 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_dec_float.hpp +3807 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_df_qf/cpp_df_qf_detail.hpp +177 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_df_qf/cpp_df_qf_detail_ccmath.hpp +25 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_df_qf/cpp_df_qf_detail_ccmath_fabs.hpp +27 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_df_qf/cpp_df_qf_detail_ccmath_floor.hpp +116 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_df_qf/cpp_df_qf_detail_ccmath_fma.hpp +65 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_df_qf/cpp_df_qf_detail_ccmath_fpclassify.hpp +52 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_df_qf/cpp_df_qf_detail_ccmath_frexp.hpp +93 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_df_qf/cpp_df_qf_detail_ccmath_isinf.hpp +24 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_df_qf/cpp_df_qf_detail_ccmath_isnan.hpp +21 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_df_qf/cpp_df_qf_detail_ccmath_ldexp.hpp +71 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_df_qf/cpp_df_qf_detail_ccmath_limits.hpp +218 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_df_qf/cpp_df_qf_detail_ccmath_log.hpp +172 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_df_qf/cpp_df_qf_detail_ccmath_sqrt.hpp +57 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_df_qf/cpp_df_qf_detail_constants.hpp +80 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_double_fp.hpp +2690 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_int/add.hpp +368 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_int/add_unsigned.hpp +387 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_int/bitwise.hpp +896 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_int/checked.hpp +178 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_int/comparison.hpp +374 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_int/cpp_int_config.hpp +161 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_int/divide.hpp +703 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_int/import_export.hpp +248 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp +138 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_int/limits.hpp +292 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_int/literals.hpp +296 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_int/misc.hpp +1462 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_int/multiply.hpp +848 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_int/serialize.hpp +209 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_int/value_pack.hpp +42 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/cpp_int.hpp +2360 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/debug_adaptor.hpp +760 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/assert.hpp +29 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/atomic.hpp +62 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/bitscan.hpp +317 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/check_cpp11_config.hpp +64 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/constexpr.hpp +88 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/default_ops.hpp +4077 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/digits.hpp +49 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/dynamic_array.hpp +44 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/empty_value.hpp +87 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/endian.hpp +35 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/et_ops.hpp +1831 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/float128_functions.hpp +95 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/float_string_cvt.hpp +333 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/fpclassify.hpp +101 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/functions/constants.hpp +289 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/functions/pow.hpp +941 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/functions/trig.hpp +1064 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/functions/trunc.hpp +82 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/generic_interconvert.hpp +687 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/hash.hpp +56 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/integer_ops.hpp +474 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/itos.hpp +39 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/min_max.hpp +106 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/no_et_ops.hpp +661 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/no_exceptions_support.hpp +55 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/number_base.hpp +1656 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/number_compare.hpp +848 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/precision.hpp +313 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/rebind.hpp +19 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/standalone_config.hpp +165 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/static_array.hpp +42 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/string_helpers.hpp +48 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/tables.hpp +80 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/ublas_interop.hpp +75 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/uniform_int_distribution.hpp +212 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/detail/utype_helper.hpp +374 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/eigen.hpp +248 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/float128.hpp +960 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/fwd.hpp +268 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/gmp.hpp +4100 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/integer.hpp +363 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/logged_adaptor.hpp +834 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/miller_rabin.hpp +221 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/mpc.hpp +1721 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/mpfi.hpp +2579 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/mpfr.hpp +3668 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/number.hpp +2491 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/random.hpp +23 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/rational_adaptor.hpp +1289 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/tommath.hpp +1044 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/traits/explicit_conversion.hpp +67 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/traits/extract_exponent_type.hpp +28 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/traits/is_backend.hpp +91 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/traits/is_byte_container.hpp +51 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/traits/is_complex.hpp +22 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/traits/is_convertible_arithmetic.hpp +51 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/traits/is_restricted_conversion.hpp +47 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/traits/is_variable_precision.hpp +25 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/traits/max_digits10.hpp +79 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/traits/std_integer_traits.hpp +95 -0
- package/vendor/boost/multiprecision/include/boost/multiprecision/traits/transcendental_reduction_type.hpp +21 -0
- package/vendor/boost/multiprecision/include/boost/static_assert.hpp +179 -0
- package/vendor/boost/multiprecision/include/boost/version.hpp +32 -0
- package/vendor/eigen/COPYING.APACHE +203 -0
- package/vendor/eigen/COPYING.BSD +26 -0
- package/vendor/eigen/COPYING.MPL2 +373 -0
- package/vendor/eigen/COPYING.README +6 -0
- package/vendor/eigen/Eigen/AccelerateSupport +52 -0
- package/vendor/eigen/Eigen/Cholesky +43 -0
- package/vendor/eigen/Eigen/CholmodSupport +48 -0
- package/vendor/eigen/Eigen/Core +451 -0
- package/vendor/eigen/Eigen/Dense +7 -0
- package/vendor/eigen/Eigen/Eigen +2 -0
- package/vendor/eigen/Eigen/Eigenvalues +63 -0
- package/vendor/eigen/Eigen/Geometry +59 -0
- package/vendor/eigen/Eigen/Householder +31 -0
- package/vendor/eigen/Eigen/IterativeLinearSolvers +52 -0
- package/vendor/eigen/Eigen/Jacobi +33 -0
- package/vendor/eigen/Eigen/KLUSupport +43 -0
- package/vendor/eigen/Eigen/LU +46 -0
- package/vendor/eigen/Eigen/MetisSupport +35 -0
- package/vendor/eigen/Eigen/OrderingMethods +73 -0
- package/vendor/eigen/Eigen/PaStiXSupport +51 -0
- package/vendor/eigen/Eigen/PardisoSupport +38 -0
- package/vendor/eigen/Eigen/QR +48 -0
- package/vendor/eigen/Eigen/QtAlignedMalloc +32 -0
- package/vendor/eigen/Eigen/SPQRSupport +41 -0
- package/vendor/eigen/Eigen/SVD +56 -0
- package/vendor/eigen/Eigen/Sparse +33 -0
- package/vendor/eigen/Eigen/SparseCholesky +40 -0
- package/vendor/eigen/Eigen/SparseCore +70 -0
- package/vendor/eigen/Eigen/SparseLU +50 -0
- package/vendor/eigen/Eigen/SparseQR +38 -0
- package/vendor/eigen/Eigen/StdDeque +30 -0
- package/vendor/eigen/Eigen/StdList +29 -0
- package/vendor/eigen/Eigen/StdVector +30 -0
- package/vendor/eigen/Eigen/SuperLUSupport +70 -0
- package/vendor/eigen/Eigen/ThreadPool +80 -0
- package/vendor/eigen/Eigen/UmfPackSupport +42 -0
- package/vendor/eigen/Eigen/Version +14 -0
- package/vendor/eigen/Eigen/src/AccelerateSupport/AccelerateSupport.h +423 -0
- package/vendor/eigen/Eigen/src/AccelerateSupport/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/Cholesky/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/Cholesky/LDLT.h +649 -0
- package/vendor/eigen/Eigen/src/Cholesky/LLT.h +514 -0
- package/vendor/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +124 -0
- package/vendor/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +738 -0
- package/vendor/eigen/Eigen/src/CholmodSupport/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/Core/ArithmeticSequence.h +239 -0
- package/vendor/eigen/Eigen/src/Core/Array.h +376 -0
- package/vendor/eigen/Eigen/src/Core/ArrayBase.h +213 -0
- package/vendor/eigen/Eigen/src/Core/ArrayWrapper.h +165 -0
- package/vendor/eigen/Eigen/src/Core/Assign.h +80 -0
- package/vendor/eigen/Eigen/src/Core/AssignEvaluator.h +1057 -0
- package/vendor/eigen/Eigen/src/Core/Assign_MKL.h +183 -0
- package/vendor/eigen/Eigen/src/Core/BandMatrix.h +338 -0
- package/vendor/eigen/Eigen/src/Core/Block.h +429 -0
- package/vendor/eigen/Eigen/src/Core/CommaInitializer.h +149 -0
- package/vendor/eigen/Eigen/src/Core/ConditionEstimator.h +173 -0
- package/vendor/eigen/Eigen/src/Core/CoreEvaluators.h +2018 -0
- package/vendor/eigen/Eigen/src/Core/CoreIterators.h +141 -0
- package/vendor/eigen/Eigen/src/Core/CwiseBinaryOp.h +166 -0
- package/vendor/eigen/Eigen/src/Core/CwiseNullaryOp.h +975 -0
- package/vendor/eigen/Eigen/src/Core/CwiseTernaryOp.h +171 -0
- package/vendor/eigen/Eigen/src/Core/CwiseUnaryOp.h +91 -0
- package/vendor/eigen/Eigen/src/Core/CwiseUnaryView.h +167 -0
- package/vendor/eigen/Eigen/src/Core/DenseBase.h +673 -0
- package/vendor/eigen/Eigen/src/Core/DenseCoeffsBase.h +568 -0
- package/vendor/eigen/Eigen/src/Core/DenseStorage.h +573 -0
- package/vendor/eigen/Eigen/src/Core/DeviceWrapper.h +153 -0
- package/vendor/eigen/Eigen/src/Core/Diagonal.h +219 -0
- package/vendor/eigen/Eigen/src/Core/DiagonalMatrix.h +420 -0
- package/vendor/eigen/Eigen/src/Core/DiagonalProduct.h +30 -0
- package/vendor/eigen/Eigen/src/Core/Dot.h +268 -0
- package/vendor/eigen/Eigen/src/Core/EigenBase.h +149 -0
- package/vendor/eigen/Eigen/src/Core/Fill.h +138 -0
- package/vendor/eigen/Eigen/src/Core/FindCoeff.h +464 -0
- package/vendor/eigen/Eigen/src/Core/ForceAlignedAccess.h +127 -0
- package/vendor/eigen/Eigen/src/Core/Fuzzy.h +132 -0
- package/vendor/eigen/Eigen/src/Core/GeneralProduct.h +519 -0
- package/vendor/eigen/Eigen/src/Core/GenericPacketMath.h +1702 -0
- package/vendor/eigen/Eigen/src/Core/GlobalFunctions.h +230 -0
- package/vendor/eigen/Eigen/src/Core/IO.h +233 -0
- package/vendor/eigen/Eigen/src/Core/IndexedView.h +321 -0
- package/vendor/eigen/Eigen/src/Core/InnerProduct.h +260 -0
- package/vendor/eigen/Eigen/src/Core/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/Core/Inverse.h +108 -0
- package/vendor/eigen/Eigen/src/Core/Map.h +153 -0
- package/vendor/eigen/Eigen/src/Core/MapBase.h +283 -0
- package/vendor/eigen/Eigen/src/Core/MathFunctions.h +2103 -0
- package/vendor/eigen/Eigen/src/Core/MathFunctionsImpl.h +263 -0
- package/vendor/eigen/Eigen/src/Core/Matrix.h +534 -0
- package/vendor/eigen/Eigen/src/Core/MatrixBase.h +545 -0
- package/vendor/eigen/Eigen/src/Core/NestByValue.h +91 -0
- package/vendor/eigen/Eigen/src/Core/NoAlias.h +102 -0
- package/vendor/eigen/Eigen/src/Core/NumTraits.h +335 -0
- package/vendor/eigen/Eigen/src/Core/PartialReduxEvaluator.h +253 -0
- package/vendor/eigen/Eigen/src/Core/PermutationMatrix.h +555 -0
- package/vendor/eigen/Eigen/src/Core/PlainObjectBase.h +1014 -0
- package/vendor/eigen/Eigen/src/Core/Product.h +307 -0
- package/vendor/eigen/Eigen/src/Core/ProductEvaluators.h +1287 -0
- package/vendor/eigen/Eigen/src/Core/Random.h +207 -0
- package/vendor/eigen/Eigen/src/Core/RandomImpl.h +262 -0
- package/vendor/eigen/Eigen/src/Core/RealView.h +250 -0
- package/vendor/eigen/Eigen/src/Core/Redux.h +535 -0
- package/vendor/eigen/Eigen/src/Core/Ref.h +383 -0
- package/vendor/eigen/Eigen/src/Core/Replicate.h +130 -0
- package/vendor/eigen/Eigen/src/Core/Reshaped.h +398 -0
- package/vendor/eigen/Eigen/src/Core/ReturnByValue.h +111 -0
- package/vendor/eigen/Eigen/src/Core/Reverse.h +202 -0
- package/vendor/eigen/Eigen/src/Core/Select.h +92 -0
- package/vendor/eigen/Eigen/src/Core/SelfAdjointView.h +329 -0
- package/vendor/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h +50 -0
- package/vendor/eigen/Eigen/src/Core/SkewSymmetricMatrix3.h +382 -0
- package/vendor/eigen/Eigen/src/Core/Solve.h +174 -0
- package/vendor/eigen/Eigen/src/Core/SolveTriangular.h +237 -0
- package/vendor/eigen/Eigen/src/Core/SolverBase.h +167 -0
- package/vendor/eigen/Eigen/src/Core/StableNorm.h +217 -0
- package/vendor/eigen/Eigen/src/Core/StlIterators.h +619 -0
- package/vendor/eigen/Eigen/src/Core/Stride.h +114 -0
- package/vendor/eigen/Eigen/src/Core/Swap.h +99 -0
- package/vendor/eigen/Eigen/src/Core/Transpose.h +427 -0
- package/vendor/eigen/Eigen/src/Core/Transpositions.h +323 -0
- package/vendor/eigen/Eigen/src/Core/TriangularMatrix.h +900 -0
- package/vendor/eigen/Eigen/src/Core/VectorBlock.h +83 -0
- package/vendor/eigen/Eigen/src/Core/VectorwiseOp.h +733 -0
- package/vendor/eigen/Eigen/src/Core/Visitor.h +537 -0
- package/vendor/eigen/Eigen/src/Core/arch/AVX/Complex.h +565 -0
- package/vendor/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +130 -0
- package/vendor/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +3081 -0
- package/vendor/eigen/Eigen/src/Core/arch/AVX/Reductions.h +353 -0
- package/vendor/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +308 -0
- package/vendor/eigen/Eigen/src/Core/arch/AVX512/Complex.h +472 -0
- package/vendor/eigen/Eigen/src/Core/arch/AVX512/GemmKernel.h +1245 -0
- package/vendor/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +141 -0
- package/vendor/eigen/Eigen/src/Core/arch/AVX512/MathFunctionsFP16.h +75 -0
- package/vendor/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +3146 -0
- package/vendor/eigen/Eigen/src/Core/arch/AVX512/PacketMathFP16.h +1413 -0
- package/vendor/eigen/Eigen/src/Core/arch/AVX512/Reductions.h +297 -0
- package/vendor/eigen/Eigen/src/Core/arch/AVX512/TrsmKernel.h +1167 -0
- package/vendor/eigen/Eigen/src/Core/arch/AVX512/TrsmUnrolls.inc +1219 -0
- package/vendor/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +277 -0
- package/vendor/eigen/Eigen/src/Core/arch/AVX512/TypeCastingFP16.h +130 -0
- package/vendor/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +653 -0
- package/vendor/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +81 -0
- package/vendor/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +3686 -0
- package/vendor/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +205 -0
- package/vendor/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +901 -0
- package/vendor/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMAbfloat16.h +742 -0
- package/vendor/eigen/Eigen/src/Core/arch/AltiVec/MatrixVectorProduct.inc +2818 -0
- package/vendor/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +3729 -0
- package/vendor/eigen/Eigen/src/Core/arch/AltiVec/TypeCasting.h +153 -0
- package/vendor/eigen/Eigen/src/Core/arch/Default/BFloat16.h +866 -0
- package/vendor/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +128 -0
- package/vendor/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +2634 -0
- package/vendor/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +227 -0
- package/vendor/eigen/Eigen/src/Core/arch/Default/Half.h +1091 -0
- package/vendor/eigen/Eigen/src/Core/arch/Default/Settings.h +47 -0
- package/vendor/eigen/Eigen/src/Core/arch/GPU/Complex.h +244 -0
- package/vendor/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +104 -0
- package/vendor/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +1712 -0
- package/vendor/eigen/Eigen/src/Core/arch/GPU/Tuple.h +268 -0
- package/vendor/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +77 -0
- package/vendor/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
- package/vendor/eigen/Eigen/src/Core/arch/HVX/PacketMath.h +1088 -0
- package/vendor/eigen/Eigen/src/Core/arch/LSX/Complex.h +520 -0
- package/vendor/eigen/Eigen/src/Core/arch/LSX/GeneralBlockPanelKernel.h +23 -0
- package/vendor/eigen/Eigen/src/Core/arch/LSX/MathFunctions.h +43 -0
- package/vendor/eigen/Eigen/src/Core/arch/LSX/PacketMath.h +2866 -0
- package/vendor/eigen/Eigen/src/Core/arch/LSX/TypeCasting.h +526 -0
- package/vendor/eigen/Eigen/src/Core/arch/MSA/Complex.h +620 -0
- package/vendor/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +379 -0
- package/vendor/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +1237 -0
- package/vendor/eigen/Eigen/src/Core/arch/NEON/Complex.h +732 -0
- package/vendor/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +243 -0
- package/vendor/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +68 -0
- package/vendor/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +6096 -0
- package/vendor/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +1642 -0
- package/vendor/eigen/Eigen/src/Core/arch/NEON/UnaryFunctors.h +57 -0
- package/vendor/eigen/Eigen/src/Core/arch/SSE/Complex.h +503 -0
- package/vendor/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +88 -0
- package/vendor/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +2384 -0
- package/vendor/eigen/Eigen/src/Core/arch/SSE/Reductions.h +324 -0
- package/vendor/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +230 -0
- package/vendor/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +48 -0
- package/vendor/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +674 -0
- package/vendor/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +52 -0
- package/vendor/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +227 -0
- package/vendor/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +303 -0
- package/vendor/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +576 -0
- package/vendor/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +83 -0
- package/vendor/eigen/Eigen/src/Core/arch/ZVector/Complex.h +570 -0
- package/vendor/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +244 -0
- package/vendor/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +1413 -0
- package/vendor/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +174 -0
- package/vendor/eigen/Eigen/src/Core/functors/BinaryFunctors.h +747 -0
- package/vendor/eigen/Eigen/src/Core/functors/NullaryFunctors.h +274 -0
- package/vendor/eigen/Eigen/src/Core/functors/StlFunctors.h +149 -0
- package/vendor/eigen/Eigen/src/Core/functors/TernaryFunctors.h +52 -0
- package/vendor/eigen/Eigen/src/Core/functors/UnaryFunctors.h +1420 -0
- package/vendor/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +3153 -0
- package/vendor/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +459 -0
- package/vendor/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +330 -0
- package/vendor/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +148 -0
- package/vendor/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +205 -0
- package/vendor/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +473 -0
- package/vendor/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +139 -0
- package/vendor/eigen/Eigen/src/Core/products/Parallelizer.h +282 -0
- package/vendor/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +483 -0
- package/vendor/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +277 -0
- package/vendor/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +253 -0
- package/vendor/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +115 -0
- package/vendor/eigen/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
- package/vendor/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +95 -0
- package/vendor/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +397 -0
- package/vendor/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +325 -0
- package/vendor/eigen/Eigen/src/Core/products/TriangularMatrixVector.h +347 -0
- package/vendor/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +275 -0
- package/vendor/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +388 -0
- package/vendor/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +166 -0
- package/vendor/eigen/Eigen/src/Core/products/TriangularSolverVector.h +122 -0
- package/vendor/eigen/Eigen/src/Core/util/Assert.h +158 -0
- package/vendor/eigen/Eigen/src/Core/util/BlasUtil.h +622 -0
- package/vendor/eigen/Eigen/src/Core/util/ConfigureVectorization.h +543 -0
- package/vendor/eigen/Eigen/src/Core/util/Constants.h +598 -0
- package/vendor/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +146 -0
- package/vendor/eigen/Eigen/src/Core/util/EmulateArray.h +270 -0
- package/vendor/eigen/Eigen/src/Core/util/ForwardDeclarations.h +524 -0
- package/vendor/eigen/Eigen/src/Core/util/GpuHipCudaDefines.inc +101 -0
- package/vendor/eigen/Eigen/src/Core/util/GpuHipCudaUndefines.inc +45 -0
- package/vendor/eigen/Eigen/src/Core/util/IndexedViewHelper.h +487 -0
- package/vendor/eigen/Eigen/src/Core/util/IntegralConstant.h +279 -0
- package/vendor/eigen/Eigen/src/Core/util/MKL_support.h +139 -0
- package/vendor/eigen/Eigen/src/Core/util/Macros.h +1346 -0
- package/vendor/eigen/Eigen/src/Core/util/MaxSizeVector.h +139 -0
- package/vendor/eigen/Eigen/src/Core/util/Memory.h +1385 -0
- package/vendor/eigen/Eigen/src/Core/util/Meta.h +760 -0
- package/vendor/eigen/Eigen/src/Core/util/MoreMeta.h +638 -0
- package/vendor/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +44 -0
- package/vendor/eigen/Eigen/src/Core/util/ReshapedHelper.h +51 -0
- package/vendor/eigen/Eigen/src/Core/util/Serializer.h +209 -0
- package/vendor/eigen/Eigen/src/Core/util/StaticAssert.h +105 -0
- package/vendor/eigen/Eigen/src/Core/util/SymbolicIndex.h +445 -0
- package/vendor/eigen/Eigen/src/Core/util/XprHelper.h +1093 -0
- package/vendor/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +315 -0
- package/vendor/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +442 -0
- package/vendor/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +95 -0
- package/vendor/eigen/Eigen/src/Eigenvalues/EigenSolver.h +579 -0
- package/vendor/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +402 -0
- package/vendor/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +212 -0
- package/vendor/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +356 -0
- package/vendor/eigen/Eigen/src/Eigenvalues/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +142 -0
- package/vendor/eigen/Eigen/src/Eigenvalues/RealQZ.h +587 -0
- package/vendor/eigen/Eigen/src/Eigenvalues/RealSchur.h +519 -0
- package/vendor/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +83 -0
- package/vendor/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +850 -0
- package/vendor/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +90 -0
- package/vendor/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +529 -0
- package/vendor/eigen/Eigen/src/Geometry/AlignedBox.h +485 -0
- package/vendor/eigen/Eigen/src/Geometry/AngleAxis.h +245 -0
- package/vendor/eigen/Eigen/src/Geometry/EulerAngles.h +203 -0
- package/vendor/eigen/Eigen/src/Geometry/Homogeneous.h +453 -0
- package/vendor/eigen/Eigen/src/Geometry/Hyperplane.h +273 -0
- package/vendor/eigen/Eigen/src/Geometry/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/Geometry/OrthoMethods.h +257 -0
- package/vendor/eigen/Eigen/src/Geometry/ParametrizedLine.h +232 -0
- package/vendor/eigen/Eigen/src/Geometry/Quaternion.h +930 -0
- package/vendor/eigen/Eigen/src/Geometry/Rotation2D.h +201 -0
- package/vendor/eigen/Eigen/src/Geometry/RotationBase.h +209 -0
- package/vendor/eigen/Eigen/src/Geometry/Scaling.h +195 -0
- package/vendor/eigen/Eigen/src/Geometry/Transform.h +1485 -0
- package/vendor/eigen/Eigen/src/Geometry/Translation.h +204 -0
- package/vendor/eigen/Eigen/src/Geometry/Umeyama.h +161 -0
- package/vendor/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +154 -0
- package/vendor/eigen/Eigen/src/Householder/BlockHouseholder.h +115 -0
- package/vendor/eigen/Eigen/src/Householder/Householder.h +154 -0
- package/vendor/eigen/Eigen/src/Householder/HouseholderSequence.h +504 -0
- package/vendor/eigen/Eigen/src/Householder/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +213 -0
- package/vendor/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +220 -0
- package/vendor/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +217 -0
- package/vendor/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +402 -0
- package/vendor/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +449 -0
- package/vendor/eigen/Eigen/src/IterativeLinearSolvers/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +395 -0
- package/vendor/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +193 -0
- package/vendor/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +111 -0
- package/vendor/eigen/Eigen/src/Jacobi/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/Jacobi/Jacobi.h +427 -0
- package/vendor/eigen/Eigen/src/KLUSupport/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/KLUSupport/KLUSupport.h +339 -0
- package/vendor/eigen/Eigen/src/LU/Determinant.h +98 -0
- package/vendor/eigen/Eigen/src/LU/FullPivLU.h +826 -0
- package/vendor/eigen/Eigen/src/LU/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/LU/InverseImpl.h +353 -0
- package/vendor/eigen/Eigen/src/LU/PartialPivLU.h +586 -0
- package/vendor/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +97 -0
- package/vendor/eigen/Eigen/src/LU/arch/InverseSize4.h +353 -0
- package/vendor/eigen/Eigen/src/MetisSupport/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/MetisSupport/MetisSupport.h +125 -0
- package/vendor/eigen/Eigen/src/OrderingMethods/Amd.h +413 -0
- package/vendor/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +1690 -0
- package/vendor/eigen/Eigen/src/OrderingMethods/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/OrderingMethods/Ordering.h +146 -0
- package/vendor/eigen/Eigen/src/PaStiXSupport/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +632 -0
- package/vendor/eigen/Eigen/src/PardisoSupport/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +500 -0
- package/vendor/eigen/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
- package/vendor/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +161 -0
- package/vendor/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +648 -0
- package/vendor/eigen/Eigen/src/QR/FullPivHouseholderQR.h +733 -0
- package/vendor/eigen/Eigen/src/QR/HouseholderQR.h +543 -0
- package/vendor/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +77 -0
- package/vendor/eigen/Eigen/src/QR/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/SPQRSupport/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +315 -0
- package/vendor/eigen/Eigen/src/SVD/BDCSVD.h +1470 -0
- package/vendor/eigen/Eigen/src/SVD/BDCSVD_LAPACKE.h +174 -0
- package/vendor/eigen/Eigen/src/SVD/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/SVD/JacobiSVD.h +846 -0
- package/vendor/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +127 -0
- package/vendor/eigen/Eigen/src/SVD/SVDBase.h +436 -0
- package/vendor/eigen/Eigen/src/SVD/UpperBidiagonalization.h +379 -0
- package/vendor/eigen/Eigen/src/SparseCholesky/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +868 -0
- package/vendor/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +388 -0
- package/vendor/eigen/Eigen/src/SparseCore/AmbiVector.h +329 -0
- package/vendor/eigen/Eigen/src/SparseCore/CompressedStorage.h +206 -0
- package/vendor/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +308 -0
- package/vendor/eigen/Eigen/src/SparseCore/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseAssign.h +279 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseBlock.h +534 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseColEtree.h +194 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +592 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +938 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +142 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +314 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseDot.h +100 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseFuzzy.h +31 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseMap.h +295 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseMatrix.h +1876 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +451 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparsePermutation.h +249 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseProduct.h +178 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseRedux.h +47 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseRef.h +370 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +613 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseSolverBase.h +115 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +184 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseTranspose.h +83 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseTriangularView.h +177 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseUtil.h +209 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseVector.h +532 -0
- package/vendor/eigen/Eigen/src/SparseCore/SparseView.h +225 -0
- package/vendor/eigen/Eigen/src/SparseCore/TriangularSolver.h +274 -0
- package/vendor/eigen/Eigen/src/SparseLU/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/SparseLU/SparseLU.h +969 -0
- package/vendor/eigen/Eigen/src/SparseLU/SparseLUImpl.h +79 -0
- package/vendor/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +210 -0
- package/vendor/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +113 -0
- package/vendor/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +319 -0
- package/vendor/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +75 -0
- package/vendor/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +177 -0
- package/vendor/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +168 -0
- package/vendor/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +106 -0
- package/vendor/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +114 -0
- package/vendor/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +133 -0
- package/vendor/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +215 -0
- package/vendor/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +235 -0
- package/vendor/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +136 -0
- package/vendor/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +130 -0
- package/vendor/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +81 -0
- package/vendor/eigen/Eigen/src/SparseQR/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/SparseQR/SparseQR.h +706 -0
- package/vendor/eigen/Eigen/src/StlSupport/StdDeque.h +51 -0
- package/vendor/eigen/Eigen/src/StlSupport/StdList.h +50 -0
- package/vendor/eigen/Eigen/src/StlSupport/StdVector.h +51 -0
- package/vendor/eigen/Eigen/src/StlSupport/details.h +82 -0
- package/vendor/eigen/Eigen/src/SuperLUSupport/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +929 -0
- package/vendor/eigen/Eigen/src/ThreadPool/Barrier.h +70 -0
- package/vendor/eigen/Eigen/src/ThreadPool/CoreThreadPoolDevice.h +336 -0
- package/vendor/eigen/Eigen/src/ThreadPool/EventCount.h +241 -0
- package/vendor/eigen/Eigen/src/ThreadPool/ForkJoin.h +140 -0
- package/vendor/eigen/Eigen/src/ThreadPool/InternalHeaderCheck.h +4 -0
- package/vendor/eigen/Eigen/src/ThreadPool/NonBlockingThreadPool.h +587 -0
- package/vendor/eigen/Eigen/src/ThreadPool/RunQueue.h +230 -0
- package/vendor/eigen/Eigen/src/ThreadPool/ThreadCancel.h +21 -0
- package/vendor/eigen/Eigen/src/ThreadPool/ThreadEnvironment.h +43 -0
- package/vendor/eigen/Eigen/src/ThreadPool/ThreadLocal.h +289 -0
- package/vendor/eigen/Eigen/src/ThreadPool/ThreadPoolInterface.h +50 -0
- package/vendor/eigen/Eigen/src/ThreadPool/ThreadYield.h +16 -0
- package/vendor/eigen/Eigen/src/UmfPackSupport/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +606 -0
- package/vendor/eigen/Eigen/src/misc/Image.h +80 -0
- package/vendor/eigen/Eigen/src/misc/InternalHeaderCheck.h +3 -0
- package/vendor/eigen/Eigen/src/misc/Kernel.h +77 -0
- package/vendor/eigen/Eigen/src/misc/RealSvd2x2.h +53 -0
- package/vendor/eigen/Eigen/src/misc/blas.h +97 -0
- package/vendor/eigen/Eigen/src/misc/lapacke.h +10085 -0
- package/vendor/eigen/Eigen/src/misc/lapacke_helpers.h +163 -0
- package/vendor/eigen/Eigen/src/misc/lapacke_mangling.h +16 -0
- package/vendor/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.inc +344 -0
- package/vendor/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.inc +544 -0
- package/vendor/eigen/Eigen/src/plugins/BlockMethods.inc +1370 -0
- package/vendor/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.inc +116 -0
- package/vendor/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.inc +167 -0
- package/vendor/eigen/Eigen/src/plugins/IndexedViewMethods.inc +192 -0
- package/vendor/eigen/Eigen/src/plugins/InternalHeaderCheck.inc +3 -0
- package/vendor/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.inc +331 -0
- package/vendor/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.inc +118 -0
- package/vendor/eigen/Eigen/src/plugins/ReshapedMethods.inc +133 -0
- package/vendor/eigen/README.md +5 -0
- package/vendor/mpdecimal/COPYRIGHT.txt +23 -0
- package/vendor/mpdecimal/README.txt +53 -0
- package/vendor/mpdecimal/libmpdec/.objs/README.txt +8 -0
- package/vendor/mpdecimal/libmpdec/.objs/symbols32.exp +343 -0
- package/vendor/mpdecimal/libmpdec/.objs/symbols64.exp +347 -0
- package/vendor/mpdecimal/libmpdec/.pc/libmpdec.pc.in +11 -0
- package/vendor/mpdecimal/libmpdec/.profile/train.sh +35 -0
- package/vendor/mpdecimal/libmpdec/README.txt +84 -0
- package/vendor/mpdecimal/libmpdec/basearith.c +649 -0
- package/vendor/mpdecimal/libmpdec/basearith.h +217 -0
- package/vendor/mpdecimal/libmpdec/bits.h +188 -0
- package/vendor/mpdecimal/libmpdec/constants.c +129 -0
- package/vendor/mpdecimal/libmpdec/constants.h +88 -0
- package/vendor/mpdecimal/libmpdec/context.c +285 -0
- package/vendor/mpdecimal/libmpdec/convolute.c +172 -0
- package/vendor/mpdecimal/libmpdec/convolute.h +48 -0
- package/vendor/mpdecimal/libmpdec/crt.c +178 -0
- package/vendor/mpdecimal/libmpdec/crt.h +45 -0
- package/vendor/mpdecimal/libmpdec/difradix2.c +171 -0
- package/vendor/mpdecimal/libmpdec/difradix2.h +46 -0
- package/vendor/mpdecimal/libmpdec/fnt.c +77 -0
- package/vendor/mpdecimal/libmpdec/fnt.h +46 -0
- package/vendor/mpdecimal/libmpdec/fourstep.c +242 -0
- package/vendor/mpdecimal/libmpdec/fourstep.h +46 -0
- package/vendor/mpdecimal/libmpdec/io.c +1610 -0
- package/vendor/mpdecimal/libmpdec/io.h +61 -0
- package/vendor/mpdecimal/libmpdec/mpalloc.c +347 -0
- package/vendor/mpdecimal/libmpdec/mpalloc.h +53 -0
- package/vendor/mpdecimal/libmpdec/mpdecimal.c +9155 -0
- package/vendor/mpdecimal/libmpdec/mpdecimal.h.in +804 -0
- package/vendor/mpdecimal/libmpdec/mpsignal.c +966 -0
- package/vendor/mpdecimal/libmpdec/numbertheory.c +129 -0
- package/vendor/mpdecimal/libmpdec/numbertheory.h +75 -0
- package/vendor/mpdecimal/libmpdec/sixstep.c +212 -0
- package/vendor/mpdecimal/libmpdec/sixstep.h +46 -0
- package/vendor/mpdecimal/libmpdec/transpose.c +275 -0
- package/vendor/mpdecimal/libmpdec/transpose.h +60 -0
- package/vendor/mpdecimal/libmpdec/typearith.h +661 -0
- package/vendor/mpdecimal/libmpdec/umodarith.h +645 -0
- package/vendor/symengine/AUTHORS +101 -0
- package/vendor/symengine/LICENSE +254 -0
- package/vendor/symengine/README.md +199 -0
- package/vendor/symengine/symengine/add.cpp +508 -0
- package/vendor/symengine/symengine/add.h +187 -0
- package/vendor/symengine/symengine/as_real_imag.cpp +289 -0
- package/vendor/symengine/symengine/assumptions.cpp +202 -0
- package/vendor/symengine/symengine/assumptions.h +47 -0
- package/vendor/symengine/symengine/basic-inl.h +152 -0
- package/vendor/symengine/symengine/basic-methods.inc +9 -0
- package/vendor/symengine/symengine/basic.cpp +110 -0
- package/vendor/symengine/symengine/basic.h +356 -0
- package/vendor/symengine/symengine/complex.cpp +198 -0
- package/vendor/symengine/symengine/complex.h +396 -0
- package/vendor/symengine/symengine/complex_double.cpp +72 -0
- package/vendor/symengine/symengine/complex_double.h +570 -0
- package/vendor/symengine/symengine/complex_mpc.h +406 -0
- package/vendor/symengine/symengine/constants.cpp +130 -0
- package/vendor/symengine/symengine/constants.h +81 -0
- package/vendor/symengine/symengine/cse.cpp +556 -0
- package/vendor/symengine/symengine/cwrapper.h +949 -0
- package/vendor/symengine/symengine/dense_matrix.cpp +2100 -0
- package/vendor/symengine/symengine/derivative.cpp +841 -0
- package/vendor/symengine/symengine/derivative.h +137 -0
- package/vendor/symengine/symengine/dict.cpp +125 -0
- package/vendor/symengine/symengine/dict.h +333 -0
- package/vendor/symengine/symengine/diophantine.cpp +139 -0
- package/vendor/symengine/symengine/diophantine.h +20 -0
- package/vendor/symengine/symengine/eval.cpp +109 -0
- package/vendor/symengine/symengine/eval.h +40 -0
- package/vendor/symengine/symengine/eval_arb.h +31 -0
- package/vendor/symengine/symengine/eval_double.cpp +959 -0
- package/vendor/symengine/symengine/eval_double.h +28 -0
- package/vendor/symengine/symengine/eval_mpc.h +29 -0
- package/vendor/symengine/symengine/eval_mpfr.h +26 -0
- package/vendor/symengine/symengine/expand.cpp +379 -0
- package/vendor/symengine/symengine/expression.cpp +24 -0
- package/vendor/symengine/symengine/expression.h +375 -0
- package/vendor/symengine/symengine/fields.cpp +861 -0
- package/vendor/symengine/symengine/fields.h +647 -0
- package/vendor/symengine/symengine/finitediff.cpp +70 -0
- package/vendor/symengine/symengine/finitediff.h +21 -0
- package/vendor/symengine/symengine/flint_wrapper.h +1010 -0
- package/vendor/symengine/symengine/functions.cpp +3913 -0
- package/vendor/symengine/symengine/functions.h +1321 -0
- package/vendor/symengine/symengine/infinity.cpp +537 -0
- package/vendor/symengine/symengine/infinity.h +118 -0
- package/vendor/symengine/symengine/integer.cpp +153 -0
- package/vendor/symengine/symengine/integer.h +227 -0
- package/vendor/symengine/symengine/interruption.cpp +9 -0
- package/vendor/symengine/symengine/interruption.h +19 -0
- package/vendor/symengine/symengine/lambda_double.h +918 -0
- package/vendor/symengine/symengine/limits.h +35 -0
- package/vendor/symengine/symengine/llvm_double.h +201 -0
- package/vendor/symengine/symengine/logic.cpp +812 -0
- package/vendor/symengine/symengine/logic.h +281 -0
- package/vendor/symengine/symengine/matrices/conjugate_matrix.cpp +139 -0
- package/vendor/symengine/symengine/matrices/conjugate_matrix.h +39 -0
- package/vendor/symengine/symengine/matrices/diagonal_matrix.cpp +79 -0
- package/vendor/symengine/symengine/matrices/diagonal_matrix.h +52 -0
- package/vendor/symengine/symengine/matrices/hadamard_product.cpp +151 -0
- package/vendor/symengine/symengine/matrices/hadamard_product.h +42 -0
- package/vendor/symengine/symengine/matrices/identity_matrix.cpp +63 -0
- package/vendor/symengine/symengine/matrices/identity_matrix.h +40 -0
- package/vendor/symengine/symengine/matrices/immutable_dense_matrix.cpp +143 -0
- package/vendor/symengine/symengine/matrices/immutable_dense_matrix.h +65 -0
- package/vendor/symengine/symengine/matrices/is_diagonal.cpp +115 -0
- package/vendor/symengine/symengine/matrices/is_lower.cpp +110 -0
- package/vendor/symengine/symengine/matrices/is_real.cpp +78 -0
- package/vendor/symengine/symengine/matrices/is_square.cpp +85 -0
- package/vendor/symengine/symengine/matrices/is_symmetric.cpp +112 -0
- package/vendor/symengine/symengine/matrices/is_toeplitz.cpp +104 -0
- package/vendor/symengine/symengine/matrices/is_upper.cpp +108 -0
- package/vendor/symengine/symengine/matrices/is_zero.cpp +81 -0
- package/vendor/symengine/symengine/matrices/matrix_add.cpp +176 -0
- package/vendor/symengine/symengine/matrices/matrix_add.h +42 -0
- package/vendor/symengine/symengine/matrices/matrix_expr.h +19 -0
- package/vendor/symengine/symengine/matrices/matrix_mul.cpp +258 -0
- package/vendor/symengine/symengine/matrices/matrix_mul.h +55 -0
- package/vendor/symengine/symengine/matrices/matrix_symbol.cpp +34 -0
- package/vendor/symengine/symengine/matrices/matrix_symbol.h +41 -0
- package/vendor/symengine/symengine/matrices/size.cpp +121 -0
- package/vendor/symengine/symengine/matrices/size.h +15 -0
- package/vendor/symengine/symengine/matrices/trace.cpp +112 -0
- package/vendor/symengine/symengine/matrices/trace.h +31 -0
- package/vendor/symengine/symengine/matrices/transpose.cpp +126 -0
- package/vendor/symengine/symengine/matrices/transpose.h +39 -0
- package/vendor/symengine/symengine/matrices/zero_matrix.cpp +94 -0
- package/vendor/symengine/symengine/matrices/zero_matrix.h +47 -0
- package/vendor/symengine/symengine/matrix.cpp +33 -0
- package/vendor/symengine/symengine/matrix.h +675 -0
- package/vendor/symengine/symengine/matrix_expressions.h +51 -0
- package/vendor/symengine/symengine/monomials.cpp +33 -0
- package/vendor/symengine/symengine/monomials.h +20 -0
- package/vendor/symengine/symengine/mp_boost.cpp +635 -0
- package/vendor/symengine/symengine/mp_class.h +1286 -0
- package/vendor/symengine/symengine/mp_wrapper.h +510 -0
- package/vendor/symengine/symengine/mul.cpp +629 -0
- package/vendor/symengine/symengine/mul.h +146 -0
- package/vendor/symengine/symengine/nan.cpp +234 -0
- package/vendor/symengine/symengine/nan.h +82 -0
- package/vendor/symengine/symengine/ntheory.cpp +1700 -0
- package/vendor/symengine/symengine/ntheory.h +213 -0
- package/vendor/symengine/symengine/ntheory_funcs.cpp +189 -0
- package/vendor/symengine/symengine/ntheory_funcs.h +78 -0
- package/vendor/symengine/symengine/number.cpp +36 -0
- package/vendor/symengine/symengine/number.h +256 -0
- package/vendor/symengine/symengine/numer_denom.cpp +149 -0
- package/vendor/symengine/symengine/parser/parser.cpp +367 -0
- package/vendor/symengine/symengine/parser/parser.h +56 -0
- package/vendor/symengine/symengine/parser/parser.tab.cc +1495 -0
- package/vendor/symengine/symengine/parser/parser.tab.hh +1410 -0
- package/vendor/symengine/symengine/parser/parser_old.cpp +688 -0
- package/vendor/symengine/symengine/parser/tokenizer.cpp +435 -0
- package/vendor/symengine/symengine/parser/tokenizer.h +35 -0
- package/vendor/symengine/symengine/parser.h +25 -0
- package/vendor/symengine/symengine/polys/basic_conversions.cpp +178 -0
- package/vendor/symengine/symengine/polys/basic_conversions.h +575 -0
- package/vendor/symengine/symengine/polys/cancel.h +39 -0
- package/vendor/symengine/symengine/polys/msymenginepoly.cpp +130 -0
- package/vendor/symengine/symengine/polys/msymenginepoly.h +536 -0
- package/vendor/symengine/symengine/polys/uexprpoly.cpp +90 -0
- package/vendor/symengine/symengine/polys/uexprpoly.h +205 -0
- package/vendor/symengine/symengine/polys/uintpoly.cpp +62 -0
- package/vendor/symengine/symengine/polys/uintpoly.h +134 -0
- package/vendor/symengine/symengine/polys/uintpoly_flint.h +228 -0
- package/vendor/symengine/symengine/polys/uintpoly_piranha.h +373 -0
- package/vendor/symengine/symengine/polys/upolybase.h +769 -0
- package/vendor/symengine/symengine/polys/uratpoly.cpp +59 -0
- package/vendor/symengine/symengine/polys/uratpoly.h +58 -0
- package/vendor/symengine/symengine/polys/usymenginepoly.h +139 -0
- package/vendor/symengine/symengine/pow.cpp +303 -0
- package/vendor/symengine/symengine/pow.h +76 -0
- package/vendor/symengine/symengine/prime_sieve.cpp +143 -0
- package/vendor/symengine/symengine/prime_sieve.h +64 -0
- package/vendor/symengine/symengine/printers/codegen.cpp +716 -0
- package/vendor/symengine/symengine/printers/codegen.h +168 -0
- package/vendor/symengine/symengine/printers/latex.cpp +630 -0
- package/vendor/symengine/symengine/printers/latex.h +76 -0
- package/vendor/symengine/symengine/printers/mathml.cpp +358 -0
- package/vendor/symengine/symengine/printers/mathml.h +62 -0
- package/vendor/symengine/symengine/printers/stringbox.cpp +276 -0
- package/vendor/symengine/symengine/printers/stringbox.h +60 -0
- package/vendor/symengine/symengine/printers/strprinter.cpp +1212 -0
- package/vendor/symengine/symengine/printers/strprinter.h +217 -0
- package/vendor/symengine/symengine/printers/unicode.cpp +730 -0
- package/vendor/symengine/symengine/printers/unicode.h +84 -0
- package/vendor/symengine/symengine/printers.h +46 -0
- package/vendor/symengine/symengine/rational.cpp +365 -0
- package/vendor/symengine/symengine/rational.h +341 -0
- package/vendor/symengine/symengine/real_double.cpp +388 -0
- package/vendor/symengine/symengine/real_double.h +492 -0
- package/vendor/symengine/symengine/real_mpfr.h +379 -0
- package/vendor/symengine/symengine/refine.cpp +213 -0
- package/vendor/symengine/symengine/refine.h +43 -0
- package/vendor/symengine/symengine/rewrite.cpp +235 -0
- package/vendor/symengine/symengine/rings.cpp +107 -0
- package/vendor/symengine/symengine/rings.h +24 -0
- package/vendor/symengine/symengine/serialize-cereal.h +964 -0
- package/vendor/symengine/symengine/series.cpp +85 -0
- package/vendor/symengine/symengine/series.h +727 -0
- package/vendor/symengine/symengine/series_flint.h +214 -0
- package/vendor/symengine/symengine/series_generic.cpp +247 -0
- package/vendor/symengine/symengine/series_generic.h +86 -0
- package/vendor/symengine/symengine/series_piranha.h +95 -0
- package/vendor/symengine/symengine/series_visitor.h +357 -0
- package/vendor/symengine/symengine/set_funcs.cpp +296 -0
- package/vendor/symengine/symengine/sets.cpp +1854 -0
- package/vendor/symengine/symengine/sets.h +696 -0
- package/vendor/symengine/symengine/simplify.cpp +62 -0
- package/vendor/symengine/symengine/simplify.h +34 -0
- package/vendor/symengine/symengine/solve.cpp +665 -0
- package/vendor/symengine/symengine/solve.h +117 -0
- package/vendor/symengine/symengine/sparse_matrix.cpp +776 -0
- package/vendor/symengine/symengine/special_boost.cpp +85 -0
- package/vendor/symengine/symengine/special_double.h +570 -0
- package/vendor/symengine/symengine/subs.h +579 -0
- package/vendor/symengine/symengine/symbol.cpp +88 -0
- package/vendor/symengine/symengine/symbol.h +116 -0
- package/vendor/symengine/symengine/symengine_assert.h +50 -0
- package/vendor/symengine/symengine/symengine_casts.h +139 -0
- package/vendor/symengine/symengine/symengine_exception.h +101 -0
- package/vendor/symengine/symengine/symengine_rcp.cpp +21 -0
- package/vendor/symengine/symengine/symengine_rcp.h +384 -0
- package/vendor/symengine/symengine/test_visitors.cpp +1083 -0
- package/vendor/symengine/symengine/test_visitors.h +466 -0
- package/vendor/symengine/symengine/tribool.h +85 -0
- package/vendor/symengine/symengine/tuple.cpp +47 -0
- package/vendor/symengine/symengine/tuple.h +32 -0
- package/vendor/symengine/symengine/type_codes.inc +139 -0
- package/vendor/symengine/symengine/utilities/cereal/LICENSE +24 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/access.hpp +351 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/archives/adapters.hpp +163 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/archives/binary.hpp +169 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/archives/json.hpp +1024 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/archives/portable_binary.hpp +334 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/archives/xml.hpp +956 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/cereal.hpp +1120 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/details/helpers.hpp +422 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/details/polymorphic_impl.hpp +825 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/details/polymorphic_impl_fwd.hpp +65 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/details/static_object.hpp +128 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/details/traits.hpp +1411 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/details/util.hpp +84 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/macros.hpp +156 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/specialize.hpp +139 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/array.hpp +79 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/atomic.hpp +55 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/base_class.hpp +203 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/bitset.hpp +176 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/boost_variant.hpp +164 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/chrono.hpp +72 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/common.hpp +129 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/complex.hpp +56 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/concepts/pair_associative_container.hpp +73 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/deque.hpp +62 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/forward_list.hpp +68 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/functional.hpp +43 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/list.hpp +62 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/map.hpp +36 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/memory.hpp +425 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/optional.hpp +65 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/polymorphic.hpp +483 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/queue.hpp +132 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/set.hpp +103 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/stack.hpp +76 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/string.hpp +61 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/tuple.hpp +123 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/unordered_map.hpp +36 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/unordered_set.hpp +99 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/utility.hpp +47 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/valarray.hpp +89 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/variant.hpp +108 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/types/vector.hpp +112 -0
- package/vendor/symengine/symengine/utilities/cereal/include/cereal/version.hpp +52 -0
- package/vendor/symengine/symengine/utilities/fast_float/include/fast_float/fast_float.h +3720 -0
- package/vendor/symengine/symengine/utilities/stream_fmt.h +25 -0
- package/vendor/symengine/symengine/visitor.cpp +348 -0
- package/vendor/symengine/symengine/visitor.h +425 -0
|
@@ -0,0 +1,1420 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// Copyright (C) 2008-2016 Gael Guennebaud <gael.guennebaud@inria.fr>
|
|
5
|
+
//
|
|
6
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
|
7
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
8
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
9
|
+
|
|
10
|
+
#ifndef EIGEN_UNARY_FUNCTORS_H
|
|
11
|
+
#define EIGEN_UNARY_FUNCTORS_H
|
|
12
|
+
|
|
13
|
+
// IWYU pragma: private
|
|
14
|
+
#include "../InternalHeaderCheck.h"
|
|
15
|
+
|
|
16
|
+
namespace Eigen {
|
|
17
|
+
|
|
18
|
+
namespace internal {
|
|
19
|
+
|
|
20
|
+
/** \internal
|
|
21
|
+
* \brief Template functor to compute the opposite of a scalar
|
|
22
|
+
*
|
|
23
|
+
* \sa class CwiseUnaryOp, MatrixBase::operator-
|
|
24
|
+
*/
|
|
25
|
+
template <typename Scalar>
|
|
26
|
+
struct scalar_opposite_op {
|
|
27
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(const Scalar& a) const { return numext::negate(a); }
|
|
28
|
+
template <typename Packet>
|
|
29
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const {
|
|
30
|
+
return internal::pnegate(a);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
template <typename Scalar>
|
|
34
|
+
struct functor_traits<scalar_opposite_op<Scalar>> {
|
|
35
|
+
enum { Cost = NumTraits<Scalar>::AddCost, PacketAccess = packet_traits<Scalar>::HasNegate };
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/** \internal
|
|
39
|
+
* \brief Template functor to compute the absolute value of a scalar
|
|
40
|
+
*
|
|
41
|
+
* \sa class CwiseUnaryOp, Cwise::abs
|
|
42
|
+
*/
|
|
43
|
+
template <typename Scalar>
|
|
44
|
+
struct scalar_abs_op {
|
|
45
|
+
typedef typename NumTraits<Scalar>::Real result_type;
|
|
46
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator()(const Scalar& a) const { return numext::abs(a); }
|
|
47
|
+
template <typename Packet>
|
|
48
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const {
|
|
49
|
+
return internal::pabs(a);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
template <typename Scalar>
|
|
53
|
+
struct functor_traits<scalar_abs_op<Scalar>> {
|
|
54
|
+
enum { Cost = NumTraits<Scalar>::AddCost, PacketAccess = packet_traits<Scalar>::HasAbs };
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/** \internal
|
|
58
|
+
* \brief Template functor to compute the score of a scalar, to chose a pivot
|
|
59
|
+
*
|
|
60
|
+
* \sa class CwiseUnaryOp
|
|
61
|
+
*/
|
|
62
|
+
template <typename Scalar>
|
|
63
|
+
struct scalar_score_coeff_op : scalar_abs_op<Scalar> {
|
|
64
|
+
typedef void Score_is_abs;
|
|
65
|
+
};
|
|
66
|
+
template <typename Scalar>
|
|
67
|
+
struct functor_traits<scalar_score_coeff_op<Scalar>> : functor_traits<scalar_abs_op<Scalar>> {};
|
|
68
|
+
|
|
69
|
+
/* Avoid recomputing abs when we know the score and they are the same. Not a true Eigen functor. */
|
|
70
|
+
template <typename Scalar, typename = void>
|
|
71
|
+
struct abs_knowing_score {
|
|
72
|
+
typedef typename NumTraits<Scalar>::Real result_type;
|
|
73
|
+
template <typename Score>
|
|
74
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator()(const Scalar& a, const Score&) const {
|
|
75
|
+
return numext::abs(a);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
template <typename Scalar>
|
|
79
|
+
struct abs_knowing_score<Scalar, typename scalar_score_coeff_op<Scalar>::Score_is_abs> {
|
|
80
|
+
typedef typename NumTraits<Scalar>::Real result_type;
|
|
81
|
+
template <typename Scal>
|
|
82
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator()(const Scal&, const result_type& a) const {
|
|
83
|
+
return a;
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/** \internal
|
|
88
|
+
* \brief Template functor to compute the squared absolute value of a scalar
|
|
89
|
+
*
|
|
90
|
+
* \sa class CwiseUnaryOp, Cwise::abs2
|
|
91
|
+
*/
|
|
92
|
+
template <typename Scalar>
|
|
93
|
+
struct scalar_abs2_op {
|
|
94
|
+
typedef typename NumTraits<Scalar>::Real result_type;
|
|
95
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator()(const Scalar& a) const { return numext::abs2(a); }
|
|
96
|
+
template <typename Packet>
|
|
97
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const {
|
|
98
|
+
return internal::pmul(a, a);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
template <typename Scalar>
|
|
102
|
+
struct functor_traits<scalar_abs2_op<Scalar>> {
|
|
103
|
+
enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasAbs2 };
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
template <typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
|
|
107
|
+
struct squared_norm_functor {
|
|
108
|
+
typedef Scalar result_type;
|
|
109
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(const Scalar& a) const {
|
|
110
|
+
return Scalar(numext::real(a) * numext::real(a), numext::imag(a) * numext::imag(a));
|
|
111
|
+
}
|
|
112
|
+
template <typename Packet>
|
|
113
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const {
|
|
114
|
+
return Packet(pmul(a.v, a.v));
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
template <typename Scalar>
|
|
118
|
+
struct squared_norm_functor<Scalar, false> : scalar_abs2_op<Scalar> {};
|
|
119
|
+
|
|
120
|
+
template <typename Scalar>
|
|
121
|
+
struct functor_traits<squared_norm_functor<Scalar>> {
|
|
122
|
+
using Real = typename NumTraits<Scalar>::Real;
|
|
123
|
+
enum { Cost = NumTraits<Real>::MulCost, PacketAccess = packet_traits<Real>::HasMul };
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
/** \internal
|
|
127
|
+
* \brief Template functor to compute the conjugate of a complex value
|
|
128
|
+
*
|
|
129
|
+
* \sa class CwiseUnaryOp, MatrixBase::conjugate()
|
|
130
|
+
*/
|
|
131
|
+
template <typename Scalar>
|
|
132
|
+
struct scalar_conjugate_op {
|
|
133
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(const Scalar& a) const { return numext::conj(a); }
|
|
134
|
+
template <typename Packet>
|
|
135
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const {
|
|
136
|
+
return internal::pconj(a);
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
template <typename Scalar>
|
|
140
|
+
struct functor_traits<scalar_conjugate_op<Scalar>> {
|
|
141
|
+
enum {
|
|
142
|
+
Cost = 0,
|
|
143
|
+
// Yes the cost is zero even for complexes because in most cases for which
|
|
144
|
+
// the cost is used, conjugation turns to be a no-op. Some examples:
|
|
145
|
+
// cost(a*conj(b)) == cost(a*b)
|
|
146
|
+
// cost(a+conj(b)) == cost(a+b)
|
|
147
|
+
// <etc.
|
|
148
|
+
// If we don't set it to zero, then:
|
|
149
|
+
// A.conjugate().lazyProduct(B.conjugate())
|
|
150
|
+
// will bake its operands. We definitely don't want that!
|
|
151
|
+
PacketAccess = packet_traits<Scalar>::HasConj
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
/** \internal
|
|
156
|
+
* \brief Template functor to compute the phase angle of a complex
|
|
157
|
+
*
|
|
158
|
+
* \sa class CwiseUnaryOp, Cwise::arg
|
|
159
|
+
*/
|
|
160
|
+
template <typename Scalar>
|
|
161
|
+
struct scalar_arg_op {
|
|
162
|
+
typedef typename NumTraits<Scalar>::Real result_type;
|
|
163
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type operator()(const Scalar& a) const { return numext::arg(a); }
|
|
164
|
+
template <typename Packet>
|
|
165
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const {
|
|
166
|
+
return internal::parg(a);
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
template <typename Scalar>
|
|
170
|
+
struct functor_traits<scalar_arg_op<Scalar>> {
|
|
171
|
+
enum {
|
|
172
|
+
Cost = NumTraits<Scalar>::IsComplex ? 5 * NumTraits<Scalar>::MulCost : NumTraits<Scalar>::AddCost,
|
|
173
|
+
PacketAccess = packet_traits<Scalar>::HasArg
|
|
174
|
+
};
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
/** \internal
|
|
178
|
+
* \brief Template functor to compute the complex argument, returned as a complex type
|
|
179
|
+
*
|
|
180
|
+
* \sa class CwiseUnaryOp, Cwise::carg
|
|
181
|
+
*/
|
|
182
|
+
template <typename Scalar>
|
|
183
|
+
struct scalar_carg_op {
|
|
184
|
+
using result_type = Scalar;
|
|
185
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(const Scalar& a) const {
|
|
186
|
+
return Scalar(numext::arg(a));
|
|
187
|
+
}
|
|
188
|
+
template <typename Packet>
|
|
189
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const {
|
|
190
|
+
return pcarg(a);
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
template <typename Scalar>
|
|
194
|
+
struct functor_traits<scalar_carg_op<Scalar>> {
|
|
195
|
+
using RealScalar = typename NumTraits<Scalar>::Real;
|
|
196
|
+
enum { Cost = functor_traits<scalar_atan2_op<RealScalar>>::Cost, PacketAccess = packet_traits<RealScalar>::HasATan };
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
/** \internal
|
|
200
|
+
* \brief Template functor to cast a scalar to another type
|
|
201
|
+
*
|
|
202
|
+
* \sa class CwiseUnaryOp, MatrixBase::cast()
|
|
203
|
+
*/
|
|
204
|
+
template <typename Scalar, typename NewType>
|
|
205
|
+
struct scalar_cast_op {
|
|
206
|
+
typedef NewType result_type;
|
|
207
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const NewType operator()(const Scalar& a) const {
|
|
208
|
+
return cast<Scalar, NewType>(a);
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
template <typename Scalar, typename NewType>
|
|
213
|
+
struct functor_traits<scalar_cast_op<Scalar, NewType>> {
|
|
214
|
+
enum { Cost = is_same<Scalar, NewType>::value ? 0 : NumTraits<NewType>::AddCost, PacketAccess = false };
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
/** \internal
|
|
218
|
+
* `core_cast_op` serves to distinguish the vectorized implementation from that of the legacy `scalar_cast_op` for
|
|
219
|
+
* backwards compatibility. The manner in which packet ops are handled is defined by the specialized unary_evaluator:
|
|
220
|
+
* `unary_evaluator<CwiseUnaryOp<core_cast_op<SrcType, DstType>, ArgType>, IndexBased>` in CoreEvaluators.h
|
|
221
|
+
* Otherwise, the non-vectorized behavior is identical to that of `scalar_cast_op`
|
|
222
|
+
*/
|
|
223
|
+
template <typename SrcType, typename DstType>
|
|
224
|
+
struct core_cast_op : scalar_cast_op<SrcType, DstType> {};
|
|
225
|
+
|
|
226
|
+
template <typename SrcType, typename DstType>
|
|
227
|
+
struct functor_traits<core_cast_op<SrcType, DstType>> {
|
|
228
|
+
using CastingTraits = type_casting_traits<SrcType, DstType>;
|
|
229
|
+
enum {
|
|
230
|
+
Cost = is_same<SrcType, DstType>::value ? 0 : NumTraits<DstType>::AddCost,
|
|
231
|
+
PacketAccess = CastingTraits::VectorizedCast && (CastingTraits::SrcCoeffRatio <= 8)
|
|
232
|
+
};
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
/** \internal
|
|
236
|
+
* \brief Template functor to arithmetically shift a scalar right by a number of bits
|
|
237
|
+
*
|
|
238
|
+
* \sa class CwiseUnaryOp, MatrixBase::shift_right()
|
|
239
|
+
*/
|
|
240
|
+
template <typename Scalar, int N>
|
|
241
|
+
struct scalar_shift_right_op {
|
|
242
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(const Scalar& a) const {
|
|
243
|
+
return numext::arithmetic_shift_right(a);
|
|
244
|
+
}
|
|
245
|
+
template <typename Packet>
|
|
246
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const {
|
|
247
|
+
return internal::parithmetic_shift_right<N>(a);
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
template <typename Scalar, int N>
|
|
251
|
+
struct functor_traits<scalar_shift_right_op<Scalar, N>> {
|
|
252
|
+
enum { Cost = NumTraits<Scalar>::AddCost, PacketAccess = packet_traits<Scalar>::HasShift };
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
/** \internal
|
|
256
|
+
* \brief Template functor to logically shift a scalar left by a number of bits
|
|
257
|
+
*
|
|
258
|
+
* \sa class CwiseUnaryOp, MatrixBase::shift_left()
|
|
259
|
+
*/
|
|
260
|
+
template <typename Scalar, int N>
|
|
261
|
+
struct scalar_shift_left_op {
|
|
262
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(const Scalar& a) const {
|
|
263
|
+
return numext::logical_shift_left(a);
|
|
264
|
+
}
|
|
265
|
+
template <typename Packet>
|
|
266
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const {
|
|
267
|
+
return internal::plogical_shift_left<N>(a);
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
template <typename Scalar, int N>
|
|
271
|
+
struct functor_traits<scalar_shift_left_op<Scalar, N>> {
|
|
272
|
+
enum { Cost = NumTraits<Scalar>::AddCost, PacketAccess = packet_traits<Scalar>::HasShift };
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
/** \internal
|
|
276
|
+
* \brief Template functor to extract the real part of a complex
|
|
277
|
+
*
|
|
278
|
+
* \sa class CwiseUnaryOp, MatrixBase::real()
|
|
279
|
+
*/
|
|
280
|
+
template <typename Scalar>
|
|
281
|
+
struct scalar_real_op {
|
|
282
|
+
typedef typename NumTraits<Scalar>::Real result_type;
|
|
283
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator()(const Scalar& a) const { return numext::real(a); }
|
|
284
|
+
};
|
|
285
|
+
template <typename Scalar>
|
|
286
|
+
struct functor_traits<scalar_real_op<Scalar>> {
|
|
287
|
+
enum { Cost = 0, PacketAccess = false };
|
|
288
|
+
};
|
|
289
|
+
|
|
290
|
+
/** \internal
|
|
291
|
+
* \brief Template functor to extract the imaginary part of a complex
|
|
292
|
+
*
|
|
293
|
+
* \sa class CwiseUnaryOp, MatrixBase::imag()
|
|
294
|
+
*/
|
|
295
|
+
template <typename Scalar>
|
|
296
|
+
struct scalar_imag_op {
|
|
297
|
+
typedef typename NumTraits<Scalar>::Real result_type;
|
|
298
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator()(const Scalar& a) const { return numext::imag(a); }
|
|
299
|
+
};
|
|
300
|
+
template <typename Scalar>
|
|
301
|
+
struct functor_traits<scalar_imag_op<Scalar>> {
|
|
302
|
+
enum { Cost = 0, PacketAccess = false };
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
/** \internal
|
|
306
|
+
* \brief Template functor to extract the real part of a complex as a reference
|
|
307
|
+
*
|
|
308
|
+
* \sa class CwiseUnaryOp, MatrixBase::real()
|
|
309
|
+
*/
|
|
310
|
+
template <typename Scalar>
|
|
311
|
+
struct scalar_real_ref_op {
|
|
312
|
+
typedef typename NumTraits<Scalar>::Real result_type;
|
|
313
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type& operator()(const Scalar& a) const {
|
|
314
|
+
return numext::real_ref(a);
|
|
315
|
+
}
|
|
316
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type& operator()(Scalar& a) const { return numext::real_ref(a); }
|
|
317
|
+
};
|
|
318
|
+
template <typename Scalar>
|
|
319
|
+
struct functor_traits<scalar_real_ref_op<Scalar>> {
|
|
320
|
+
enum { Cost = 0, PacketAccess = false };
|
|
321
|
+
};
|
|
322
|
+
|
|
323
|
+
/** \internal
|
|
324
|
+
* \brief Template functor to extract the imaginary part of a complex as a reference
|
|
325
|
+
*
|
|
326
|
+
* \sa class CwiseUnaryOp, MatrixBase::imag()
|
|
327
|
+
*/
|
|
328
|
+
template <typename Scalar>
|
|
329
|
+
struct scalar_imag_ref_op {
|
|
330
|
+
typedef typename NumTraits<Scalar>::Real result_type;
|
|
331
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type& operator()(Scalar& a) const { return numext::imag_ref(a); }
|
|
332
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const result_type& operator()(const Scalar& a) const {
|
|
333
|
+
return numext::imag_ref(a);
|
|
334
|
+
}
|
|
335
|
+
};
|
|
336
|
+
template <typename Scalar>
|
|
337
|
+
struct functor_traits<scalar_imag_ref_op<Scalar>> {
|
|
338
|
+
enum { Cost = 0, PacketAccess = false };
|
|
339
|
+
};
|
|
340
|
+
|
|
341
|
+
/** \internal
|
|
342
|
+
*
|
|
343
|
+
* \brief Template functor to compute the exponential of a scalar
|
|
344
|
+
*
|
|
345
|
+
* \sa class CwiseUnaryOp, Cwise::exp()
|
|
346
|
+
*/
|
|
347
|
+
template <typename Scalar>
|
|
348
|
+
struct scalar_exp_op {
|
|
349
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return internal::pexp(a); }
|
|
350
|
+
template <typename Packet>
|
|
351
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
352
|
+
return internal::pexp(a);
|
|
353
|
+
}
|
|
354
|
+
};
|
|
355
|
+
template <typename Scalar>
|
|
356
|
+
struct functor_traits<scalar_exp_op<Scalar>> {
|
|
357
|
+
enum {
|
|
358
|
+
PacketAccess = packet_traits<Scalar>::HasExp,
|
|
359
|
+
// The following numbers are based on the AVX implementation.
|
|
360
|
+
#ifdef EIGEN_VECTORIZE_FMA
|
|
361
|
+
// Haswell can issue 2 add/mul/madd per cycle.
|
|
362
|
+
Cost = (sizeof(Scalar) == 4
|
|
363
|
+
// float: 8 pmadd, 4 pmul, 2 padd/psub, 6 other
|
|
364
|
+
? (8 * NumTraits<Scalar>::AddCost + 6 * NumTraits<Scalar>::MulCost)
|
|
365
|
+
// double: 7 pmadd, 5 pmul, 3 padd/psub, 1 div, 13 other
|
|
366
|
+
: (14 * NumTraits<Scalar>::AddCost + 6 * NumTraits<Scalar>::MulCost +
|
|
367
|
+
scalar_div_cost<Scalar, packet_traits<Scalar>::HasDiv>::value))
|
|
368
|
+
#else
|
|
369
|
+
Cost = (sizeof(Scalar) == 4
|
|
370
|
+
// float: 7 pmadd, 6 pmul, 4 padd/psub, 10 other
|
|
371
|
+
? (21 * NumTraits<Scalar>::AddCost + 13 * NumTraits<Scalar>::MulCost)
|
|
372
|
+
// double: 7 pmadd, 5 pmul, 3 padd/psub, 1 div, 13 other
|
|
373
|
+
: (23 * NumTraits<Scalar>::AddCost + 12 * NumTraits<Scalar>::MulCost +
|
|
374
|
+
scalar_div_cost<Scalar, packet_traits<Scalar>::HasDiv>::value))
|
|
375
|
+
#endif
|
|
376
|
+
};
|
|
377
|
+
};
|
|
378
|
+
|
|
379
|
+
template <typename Scalar>
|
|
380
|
+
struct scalar_exp2_op {
|
|
381
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return internal::pexp2(a); }
|
|
382
|
+
template <typename Packet>
|
|
383
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
384
|
+
return internal::pexp2(a);
|
|
385
|
+
}
|
|
386
|
+
};
|
|
387
|
+
template <typename Scalar>
|
|
388
|
+
struct functor_traits<scalar_exp2_op<Scalar>> {
|
|
389
|
+
enum {
|
|
390
|
+
PacketAccess = packet_traits<Scalar>::HasExp,
|
|
391
|
+
Cost = functor_traits<scalar_exp_op<Scalar>>::Cost // TODO measure cost of exp2
|
|
392
|
+
};
|
|
393
|
+
};
|
|
394
|
+
|
|
395
|
+
/** \internal
|
|
396
|
+
*
|
|
397
|
+
* \brief Template functor to compute the exponential of a scalar - 1.
|
|
398
|
+
*
|
|
399
|
+
* \sa class CwiseUnaryOp, ArrayBase::expm1()
|
|
400
|
+
*/
|
|
401
|
+
template <typename Scalar>
|
|
402
|
+
struct scalar_expm1_op {
|
|
403
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::expm1(a); }
|
|
404
|
+
template <typename Packet>
|
|
405
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
406
|
+
return internal::pexpm1(a);
|
|
407
|
+
}
|
|
408
|
+
};
|
|
409
|
+
template <typename Scalar>
|
|
410
|
+
struct functor_traits<scalar_expm1_op<Scalar>> {
|
|
411
|
+
enum {
|
|
412
|
+
PacketAccess = packet_traits<Scalar>::HasExpm1,
|
|
413
|
+
Cost = functor_traits<scalar_exp_op<Scalar>>::Cost // TODO measure cost of expm1
|
|
414
|
+
};
|
|
415
|
+
};
|
|
416
|
+
|
|
417
|
+
/** \internal
|
|
418
|
+
*
|
|
419
|
+
* \brief Template functor to compute the logarithm of a scalar
|
|
420
|
+
*
|
|
421
|
+
* \sa class CwiseUnaryOp, ArrayBase::log()
|
|
422
|
+
*/
|
|
423
|
+
template <typename Scalar>
|
|
424
|
+
struct scalar_log_op {
|
|
425
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::log(a); }
|
|
426
|
+
template <typename Packet>
|
|
427
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
428
|
+
return internal::plog(a);
|
|
429
|
+
}
|
|
430
|
+
};
|
|
431
|
+
template <typename Scalar>
|
|
432
|
+
struct functor_traits<scalar_log_op<Scalar>> {
|
|
433
|
+
enum {
|
|
434
|
+
PacketAccess = packet_traits<Scalar>::HasLog,
|
|
435
|
+
Cost = (PacketAccess
|
|
436
|
+
// The following numbers are based on the AVX implementation.
|
|
437
|
+
#ifdef EIGEN_VECTORIZE_FMA
|
|
438
|
+
// 8 pmadd, 6 pmul, 8 padd/psub, 16 other, can issue 2 add/mul/madd per cycle.
|
|
439
|
+
? (20 * NumTraits<Scalar>::AddCost + 7 * NumTraits<Scalar>::MulCost)
|
|
440
|
+
#else
|
|
441
|
+
// 8 pmadd, 6 pmul, 8 padd/psub, 20 other
|
|
442
|
+
? (36 * NumTraits<Scalar>::AddCost + 14 * NumTraits<Scalar>::MulCost)
|
|
443
|
+
#endif
|
|
444
|
+
// Measured cost of std::log.
|
|
445
|
+
: sizeof(Scalar) == 4 ? 40 : 85)
|
|
446
|
+
};
|
|
447
|
+
};
|
|
448
|
+
|
|
449
|
+
/** \internal
|
|
450
|
+
*
|
|
451
|
+
* \brief Template functor to compute the logarithm of 1 plus a scalar value
|
|
452
|
+
*
|
|
453
|
+
* \sa class CwiseUnaryOp, ArrayBase::log1p()
|
|
454
|
+
*/
|
|
455
|
+
template <typename Scalar>
|
|
456
|
+
struct scalar_log1p_op {
|
|
457
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::log1p(a); }
|
|
458
|
+
template <typename Packet>
|
|
459
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
460
|
+
return internal::plog1p(a);
|
|
461
|
+
}
|
|
462
|
+
};
|
|
463
|
+
template <typename Scalar>
|
|
464
|
+
struct functor_traits<scalar_log1p_op<Scalar>> {
|
|
465
|
+
enum {
|
|
466
|
+
PacketAccess = packet_traits<Scalar>::HasLog1p,
|
|
467
|
+
Cost = functor_traits<scalar_log_op<Scalar>>::Cost // TODO measure cost of log1p
|
|
468
|
+
};
|
|
469
|
+
};
|
|
470
|
+
|
|
471
|
+
/** \internal
|
|
472
|
+
*
|
|
473
|
+
* \brief Template functor to compute the base-10 logarithm of a scalar
|
|
474
|
+
*
|
|
475
|
+
* \sa class CwiseUnaryOp, Cwise::log10()
|
|
476
|
+
*/
|
|
477
|
+
template <typename Scalar>
|
|
478
|
+
struct scalar_log10_op {
|
|
479
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { EIGEN_USING_STD(log10) return log10(a); }
|
|
480
|
+
template <typename Packet>
|
|
481
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
482
|
+
return internal::plog10(a);
|
|
483
|
+
}
|
|
484
|
+
};
|
|
485
|
+
template <typename Scalar>
|
|
486
|
+
struct functor_traits<scalar_log10_op<Scalar>> {
|
|
487
|
+
enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasLog10 };
|
|
488
|
+
};
|
|
489
|
+
|
|
490
|
+
/** \internal
|
|
491
|
+
*
|
|
492
|
+
* \brief Template functor to compute the base-2 logarithm of a scalar
|
|
493
|
+
*
|
|
494
|
+
* \sa class CwiseUnaryOp, Cwise::log2()
|
|
495
|
+
*/
|
|
496
|
+
template <typename Scalar>
|
|
497
|
+
struct scalar_log2_op {
|
|
498
|
+
using RealScalar = typename NumTraits<Scalar>::Real;
|
|
499
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const {
|
|
500
|
+
return Scalar(RealScalar(EIGEN_LOG2E)) * numext::log(a);
|
|
501
|
+
}
|
|
502
|
+
template <typename Packet>
|
|
503
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
504
|
+
return internal::plog2(a);
|
|
505
|
+
}
|
|
506
|
+
};
|
|
507
|
+
template <typename Scalar>
|
|
508
|
+
struct functor_traits<scalar_log2_op<Scalar>> {
|
|
509
|
+
enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasLog };
|
|
510
|
+
};
|
|
511
|
+
|
|
512
|
+
/** \internal
|
|
513
|
+
* \brief Template functor to compute the square root of a scalar
|
|
514
|
+
* \sa class CwiseUnaryOp, Cwise::sqrt()
|
|
515
|
+
*/
|
|
516
|
+
template <typename Scalar>
|
|
517
|
+
struct scalar_sqrt_op {
|
|
518
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::sqrt(a); }
|
|
519
|
+
template <typename Packet>
|
|
520
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
521
|
+
return internal::psqrt(a);
|
|
522
|
+
}
|
|
523
|
+
};
|
|
524
|
+
template <typename Scalar>
|
|
525
|
+
struct functor_traits<scalar_sqrt_op<Scalar>> {
|
|
526
|
+
enum {
|
|
527
|
+
#if EIGEN_FAST_MATH
|
|
528
|
+
// The following numbers are based on the AVX implementation.
|
|
529
|
+
Cost = (sizeof(Scalar) == 8 ? 28
|
|
530
|
+
// 4 pmul, 1 pmadd, 3 other
|
|
531
|
+
: (3 * NumTraits<Scalar>::AddCost + 5 * NumTraits<Scalar>::MulCost)),
|
|
532
|
+
#else
|
|
533
|
+
// The following numbers are based on min VSQRT throughput on Haswell.
|
|
534
|
+
Cost = (sizeof(Scalar) == 8 ? 28 : 14),
|
|
535
|
+
#endif
|
|
536
|
+
PacketAccess = packet_traits<Scalar>::HasSqrt
|
|
537
|
+
};
|
|
538
|
+
};
|
|
539
|
+
|
|
540
|
+
// Boolean specialization to eliminate -Wimplicit-conversion-floating-point-to-bool warnings.
|
|
541
|
+
template <>
|
|
542
|
+
struct scalar_sqrt_op<bool> {
|
|
543
|
+
EIGEN_DEPRECATED EIGEN_DEVICE_FUNC inline bool operator()(const bool& a) const { return a; }
|
|
544
|
+
template <typename Packet>
|
|
545
|
+
EIGEN_DEPRECATED EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
546
|
+
return a;
|
|
547
|
+
}
|
|
548
|
+
};
|
|
549
|
+
template <>
|
|
550
|
+
struct functor_traits<scalar_sqrt_op<bool>> {
|
|
551
|
+
enum { Cost = 1, PacketAccess = packet_traits<bool>::Vectorizable };
|
|
552
|
+
};
|
|
553
|
+
|
|
554
|
+
/** \internal
|
|
555
|
+
* \brief Template functor to compute the cube root of a scalar
|
|
556
|
+
* \sa class CwiseUnaryOp, Cwise::sqrt()
|
|
557
|
+
*/
|
|
558
|
+
template <typename Scalar>
|
|
559
|
+
struct scalar_cbrt_op {
|
|
560
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::cbrt(a); }
|
|
561
|
+
template <typename Packet>
|
|
562
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
563
|
+
return internal::pcbrt(a);
|
|
564
|
+
}
|
|
565
|
+
};
|
|
566
|
+
|
|
567
|
+
template <typename Scalar>
|
|
568
|
+
struct functor_traits<scalar_cbrt_op<Scalar>> {
|
|
569
|
+
enum { Cost = 20 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasCbrt };
|
|
570
|
+
};
|
|
571
|
+
|
|
572
|
+
/** \internal
|
|
573
|
+
* \brief Template functor to compute the reciprocal square root of a scalar
|
|
574
|
+
* \sa class CwiseUnaryOp, Cwise::rsqrt()
|
|
575
|
+
*/
|
|
576
|
+
template <typename Scalar>
|
|
577
|
+
struct scalar_rsqrt_op {
|
|
578
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::rsqrt(a); }
|
|
579
|
+
template <typename Packet>
|
|
580
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
581
|
+
return internal::prsqrt(a);
|
|
582
|
+
}
|
|
583
|
+
};
|
|
584
|
+
|
|
585
|
+
template <typename Scalar>
|
|
586
|
+
struct functor_traits<scalar_rsqrt_op<Scalar>> {
|
|
587
|
+
enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasRsqrt };
|
|
588
|
+
};
|
|
589
|
+
|
|
590
|
+
/** \internal
|
|
591
|
+
* \brief Template functor to compute the cosine of a scalar
|
|
592
|
+
* \sa class CwiseUnaryOp, ArrayBase::cos()
|
|
593
|
+
*/
|
|
594
|
+
template <typename Scalar>
|
|
595
|
+
struct scalar_cos_op {
|
|
596
|
+
EIGEN_DEVICE_FUNC inline Scalar operator()(const Scalar& a) const { return numext::cos(a); }
|
|
597
|
+
template <typename Packet>
|
|
598
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
599
|
+
return internal::pcos(a);
|
|
600
|
+
}
|
|
601
|
+
};
|
|
602
|
+
template <typename Scalar>
|
|
603
|
+
struct functor_traits<scalar_cos_op<Scalar>> {
|
|
604
|
+
enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasCos };
|
|
605
|
+
};
|
|
606
|
+
|
|
607
|
+
/** \internal
|
|
608
|
+
* \brief Template functor to compute the sine of a scalar
|
|
609
|
+
* \sa class CwiseUnaryOp, ArrayBase::sin()
|
|
610
|
+
*/
|
|
611
|
+
template <typename Scalar>
|
|
612
|
+
struct scalar_sin_op {
|
|
613
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::sin(a); }
|
|
614
|
+
template <typename Packet>
|
|
615
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
616
|
+
return internal::psin(a);
|
|
617
|
+
}
|
|
618
|
+
};
|
|
619
|
+
template <typename Scalar>
|
|
620
|
+
struct functor_traits<scalar_sin_op<Scalar>> {
|
|
621
|
+
enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasSin };
|
|
622
|
+
};
|
|
623
|
+
|
|
624
|
+
/** \internal
|
|
625
|
+
* \brief Template functor to compute the tan of a scalar
|
|
626
|
+
* \sa class CwiseUnaryOp, ArrayBase::tan()
|
|
627
|
+
*/
|
|
628
|
+
template <typename Scalar>
|
|
629
|
+
struct scalar_tan_op {
|
|
630
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::tan(a); }
|
|
631
|
+
template <typename Packet>
|
|
632
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
633
|
+
return internal::ptan(a);
|
|
634
|
+
}
|
|
635
|
+
};
|
|
636
|
+
template <typename Scalar>
|
|
637
|
+
struct functor_traits<scalar_tan_op<Scalar>> {
|
|
638
|
+
enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasTan };
|
|
639
|
+
};
|
|
640
|
+
|
|
641
|
+
/** \internal
|
|
642
|
+
* \brief Template functor to compute the arc cosine of a scalar
|
|
643
|
+
* \sa class CwiseUnaryOp, ArrayBase::acos()
|
|
644
|
+
*/
|
|
645
|
+
template <typename Scalar>
|
|
646
|
+
struct scalar_acos_op {
|
|
647
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::acos(a); }
|
|
648
|
+
template <typename Packet>
|
|
649
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
650
|
+
return internal::pacos(a);
|
|
651
|
+
}
|
|
652
|
+
};
|
|
653
|
+
template <typename Scalar>
|
|
654
|
+
struct functor_traits<scalar_acos_op<Scalar>> {
|
|
655
|
+
enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasACos };
|
|
656
|
+
};
|
|
657
|
+
|
|
658
|
+
/** \internal
|
|
659
|
+
* \brief Template functor to compute the arc sine of a scalar
|
|
660
|
+
* \sa class CwiseUnaryOp, ArrayBase::asin()
|
|
661
|
+
*/
|
|
662
|
+
template <typename Scalar>
|
|
663
|
+
struct scalar_asin_op {
|
|
664
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::asin(a); }
|
|
665
|
+
template <typename Packet>
|
|
666
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
667
|
+
return internal::pasin(a);
|
|
668
|
+
}
|
|
669
|
+
};
|
|
670
|
+
template <typename Scalar>
|
|
671
|
+
struct functor_traits<scalar_asin_op<Scalar>> {
|
|
672
|
+
enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasASin };
|
|
673
|
+
};
|
|
674
|
+
|
|
675
|
+
/** \internal
|
|
676
|
+
* \brief Template functor to compute the atan of a scalar
|
|
677
|
+
* \sa class CwiseUnaryOp, ArrayBase::atan()
|
|
678
|
+
*/
|
|
679
|
+
template <typename Scalar>
|
|
680
|
+
struct scalar_atan_op {
|
|
681
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::atan(a); }
|
|
682
|
+
template <typename Packet>
|
|
683
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
684
|
+
return internal::patan(a);
|
|
685
|
+
}
|
|
686
|
+
};
|
|
687
|
+
template <typename Scalar>
|
|
688
|
+
struct functor_traits<scalar_atan_op<Scalar>> {
|
|
689
|
+
enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasATan };
|
|
690
|
+
};
|
|
691
|
+
|
|
692
|
+
/** \internal
|
|
693
|
+
* \brief Template functor to compute the tanh of a scalar
|
|
694
|
+
* \sa class CwiseUnaryOp, ArrayBase::tanh()
|
|
695
|
+
*/
|
|
696
|
+
template <typename Scalar>
|
|
697
|
+
struct scalar_tanh_op {
|
|
698
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::tanh(a); }
|
|
699
|
+
template <typename Packet>
|
|
700
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& x) const {
|
|
701
|
+
return ptanh(x);
|
|
702
|
+
}
|
|
703
|
+
};
|
|
704
|
+
|
|
705
|
+
template <typename Scalar>
|
|
706
|
+
struct functor_traits<scalar_tanh_op<Scalar>> {
|
|
707
|
+
enum {
|
|
708
|
+
PacketAccess = packet_traits<Scalar>::HasTanh,
|
|
709
|
+
Cost = ((EIGEN_FAST_MATH && is_same<Scalar, float>::value)
|
|
710
|
+
// The following numbers are based on the AVX implementation,
|
|
711
|
+
#ifdef EIGEN_VECTORIZE_FMA
|
|
712
|
+
// Haswell can issue 2 add/mul/madd per cycle.
|
|
713
|
+
// 9 pmadd, 2 pmul, 1 div, 2 other
|
|
714
|
+
? (2 * NumTraits<Scalar>::AddCost + 6 * NumTraits<Scalar>::MulCost +
|
|
715
|
+
scalar_div_cost<Scalar, packet_traits<Scalar>::HasDiv>::value)
|
|
716
|
+
#else
|
|
717
|
+
? (11 * NumTraits<Scalar>::AddCost + 11 * NumTraits<Scalar>::MulCost +
|
|
718
|
+
scalar_div_cost<Scalar, packet_traits<Scalar>::HasDiv>::value)
|
|
719
|
+
#endif
|
|
720
|
+
// This number assumes a naive implementation of tanh
|
|
721
|
+
: (6 * NumTraits<Scalar>::AddCost + 3 * NumTraits<Scalar>::MulCost +
|
|
722
|
+
2 * scalar_div_cost<Scalar, packet_traits<Scalar>::HasDiv>::value +
|
|
723
|
+
functor_traits<scalar_exp_op<Scalar>>::Cost))
|
|
724
|
+
};
|
|
725
|
+
};
|
|
726
|
+
|
|
727
|
+
/** \internal
|
|
728
|
+
* \brief Template functor to compute the atanh of a scalar
|
|
729
|
+
* \sa class CwiseUnaryOp, ArrayBase::atanh()
|
|
730
|
+
*/
|
|
731
|
+
template <typename Scalar>
|
|
732
|
+
struct scalar_atanh_op {
|
|
733
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::atanh(a); }
|
|
734
|
+
template <typename Packet>
|
|
735
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& x) const {
|
|
736
|
+
return patanh(x);
|
|
737
|
+
}
|
|
738
|
+
};
|
|
739
|
+
|
|
740
|
+
template <typename Scalar>
|
|
741
|
+
struct functor_traits<scalar_atanh_op<Scalar>> {
|
|
742
|
+
enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasATanh };
|
|
743
|
+
};
|
|
744
|
+
|
|
745
|
+
/** \internal
|
|
746
|
+
* \brief Template functor to compute the sinh of a scalar
|
|
747
|
+
* \sa class CwiseUnaryOp, ArrayBase::sinh()
|
|
748
|
+
*/
|
|
749
|
+
template <typename Scalar>
|
|
750
|
+
struct scalar_sinh_op {
|
|
751
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::sinh(a); }
|
|
752
|
+
template <typename Packet>
|
|
753
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
754
|
+
return internal::psinh(a);
|
|
755
|
+
}
|
|
756
|
+
};
|
|
757
|
+
template <typename Scalar>
|
|
758
|
+
struct functor_traits<scalar_sinh_op<Scalar>> {
|
|
759
|
+
enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasSinh };
|
|
760
|
+
};
|
|
761
|
+
|
|
762
|
+
/** \internal
|
|
763
|
+
* \brief Template functor to compute the asinh of a scalar
|
|
764
|
+
* \sa class CwiseUnaryOp, ArrayBase::asinh()
|
|
765
|
+
*/
|
|
766
|
+
template <typename Scalar>
|
|
767
|
+
struct scalar_asinh_op {
|
|
768
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::asinh(a); }
|
|
769
|
+
};
|
|
770
|
+
|
|
771
|
+
template <typename Scalar>
|
|
772
|
+
struct functor_traits<scalar_asinh_op<Scalar>> {
|
|
773
|
+
enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = false };
|
|
774
|
+
};
|
|
775
|
+
|
|
776
|
+
/** \internal
|
|
777
|
+
* \brief Template functor to compute the cosh of a scalar
|
|
778
|
+
* \sa class CwiseUnaryOp, ArrayBase::cosh()
|
|
779
|
+
*/
|
|
780
|
+
template <typename Scalar>
|
|
781
|
+
struct scalar_cosh_op {
|
|
782
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::cosh(a); }
|
|
783
|
+
template <typename Packet>
|
|
784
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
785
|
+
return internal::pcosh(a);
|
|
786
|
+
}
|
|
787
|
+
};
|
|
788
|
+
template <typename Scalar>
|
|
789
|
+
struct functor_traits<scalar_cosh_op<Scalar>> {
|
|
790
|
+
enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasCosh };
|
|
791
|
+
};
|
|
792
|
+
|
|
793
|
+
/** \internal
|
|
794
|
+
* \brief Template functor to compute the acosh of a scalar
|
|
795
|
+
* \sa class CwiseUnaryOp, ArrayBase::acosh()
|
|
796
|
+
*/
|
|
797
|
+
template <typename Scalar>
|
|
798
|
+
struct scalar_acosh_op {
|
|
799
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::acosh(a); }
|
|
800
|
+
};
|
|
801
|
+
|
|
802
|
+
template <typename Scalar>
|
|
803
|
+
struct functor_traits<scalar_acosh_op<Scalar>> {
|
|
804
|
+
enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = false };
|
|
805
|
+
};
|
|
806
|
+
|
|
807
|
+
/** \internal
|
|
808
|
+
* \brief Template functor to compute the inverse of a scalar
|
|
809
|
+
* \sa class CwiseUnaryOp, Cwise::inverse()
|
|
810
|
+
*/
|
|
811
|
+
template <typename Scalar>
|
|
812
|
+
struct scalar_inverse_op {
|
|
813
|
+
EIGEN_DEVICE_FUNC inline Scalar operator()(const Scalar& a) const { return Scalar(1) / a; }
|
|
814
|
+
template <typename Packet>
|
|
815
|
+
EIGEN_DEVICE_FUNC inline const Packet packetOp(const Packet& a) const {
|
|
816
|
+
return internal::preciprocal(a);
|
|
817
|
+
}
|
|
818
|
+
};
|
|
819
|
+
template <typename Scalar>
|
|
820
|
+
struct functor_traits<scalar_inverse_op<Scalar>> {
|
|
821
|
+
enum {
|
|
822
|
+
PacketAccess = packet_traits<Scalar>::HasDiv,
|
|
823
|
+
// If packet_traits<Scalar>::HasReciprocal then the Estimated cost is that
|
|
824
|
+
// of computing an approximation plus a single Newton-Raphson step, which
|
|
825
|
+
// consists of 1 pmul + 1 pmadd.
|
|
826
|
+
Cost = (packet_traits<Scalar>::HasReciprocal ? 4 * NumTraits<Scalar>::MulCost
|
|
827
|
+
: scalar_div_cost<Scalar, PacketAccess>::value)
|
|
828
|
+
};
|
|
829
|
+
};
|
|
830
|
+
|
|
831
|
+
/** \internal
|
|
832
|
+
* \brief Template functor to compute the square of a scalar
|
|
833
|
+
* \sa class CwiseUnaryOp, Cwise::square()
|
|
834
|
+
*/
|
|
835
|
+
template <typename Scalar>
|
|
836
|
+
struct scalar_square_op {
|
|
837
|
+
EIGEN_DEVICE_FUNC inline Scalar operator()(const Scalar& a) const { return a * a; }
|
|
838
|
+
template <typename Packet>
|
|
839
|
+
EIGEN_DEVICE_FUNC inline const Packet packetOp(const Packet& a) const {
|
|
840
|
+
return internal::pmul(a, a);
|
|
841
|
+
}
|
|
842
|
+
};
|
|
843
|
+
template <typename Scalar>
|
|
844
|
+
struct functor_traits<scalar_square_op<Scalar>> {
|
|
845
|
+
enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasMul };
|
|
846
|
+
};
|
|
847
|
+
|
|
848
|
+
// Boolean specialization to avoid -Wint-in-bool-context warnings on GCC.
|
|
849
|
+
template <>
|
|
850
|
+
struct scalar_square_op<bool> {
|
|
851
|
+
EIGEN_DEPRECATED EIGEN_DEVICE_FUNC inline bool operator()(const bool& a) const { return a; }
|
|
852
|
+
template <typename Packet>
|
|
853
|
+
EIGEN_DEPRECATED EIGEN_DEVICE_FUNC inline const Packet packetOp(const Packet& a) const {
|
|
854
|
+
return a;
|
|
855
|
+
}
|
|
856
|
+
};
|
|
857
|
+
template <>
|
|
858
|
+
struct functor_traits<scalar_square_op<bool>> {
|
|
859
|
+
enum { Cost = 0, PacketAccess = packet_traits<bool>::Vectorizable };
|
|
860
|
+
};
|
|
861
|
+
|
|
862
|
+
/** \internal
|
|
863
|
+
* \brief Template functor to compute the cube of a scalar
|
|
864
|
+
* \sa class CwiseUnaryOp, Cwise::cube()
|
|
865
|
+
*/
|
|
866
|
+
template <typename Scalar>
|
|
867
|
+
struct scalar_cube_op {
|
|
868
|
+
EIGEN_DEVICE_FUNC inline Scalar operator()(const Scalar& a) const { return a * a * a; }
|
|
869
|
+
template <typename Packet>
|
|
870
|
+
EIGEN_DEVICE_FUNC inline const Packet packetOp(const Packet& a) const {
|
|
871
|
+
return internal::pmul(a, pmul(a, a));
|
|
872
|
+
}
|
|
873
|
+
};
|
|
874
|
+
template <typename Scalar>
|
|
875
|
+
struct functor_traits<scalar_cube_op<Scalar>> {
|
|
876
|
+
enum { Cost = 2 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasMul };
|
|
877
|
+
};
|
|
878
|
+
|
|
879
|
+
// Boolean specialization to avoid -Wint-in-bool-context warnings on GCC.
|
|
880
|
+
template <>
|
|
881
|
+
struct scalar_cube_op<bool> {
|
|
882
|
+
EIGEN_DEPRECATED EIGEN_DEVICE_FUNC inline bool operator()(const bool& a) const { return a; }
|
|
883
|
+
template <typename Packet>
|
|
884
|
+
EIGEN_DEPRECATED EIGEN_DEVICE_FUNC inline const Packet packetOp(const Packet& a) const {
|
|
885
|
+
return a;
|
|
886
|
+
}
|
|
887
|
+
};
|
|
888
|
+
template <>
|
|
889
|
+
struct functor_traits<scalar_cube_op<bool>> {
|
|
890
|
+
enum { Cost = 0, PacketAccess = packet_traits<bool>::Vectorizable };
|
|
891
|
+
};
|
|
892
|
+
|
|
893
|
+
/** \internal
|
|
894
|
+
* \brief Template functor to compute the rounded value of a scalar
|
|
895
|
+
* \sa class CwiseUnaryOp, ArrayBase::round()
|
|
896
|
+
*/
|
|
897
|
+
template <typename Scalar>
|
|
898
|
+
struct scalar_round_op {
|
|
899
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(const Scalar& a) const { return numext::round(a); }
|
|
900
|
+
template <typename Packet>
|
|
901
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
902
|
+
return internal::pround(a);
|
|
903
|
+
}
|
|
904
|
+
};
|
|
905
|
+
template <typename Scalar>
|
|
906
|
+
struct functor_traits<scalar_round_op<Scalar>> {
|
|
907
|
+
enum {
|
|
908
|
+
Cost = NumTraits<Scalar>::MulCost,
|
|
909
|
+
PacketAccess = packet_traits<Scalar>::HasRound || NumTraits<Scalar>::IsInteger
|
|
910
|
+
};
|
|
911
|
+
};
|
|
912
|
+
|
|
913
|
+
/** \internal
|
|
914
|
+
* \brief Template functor to compute the floor of a scalar
|
|
915
|
+
* \sa class CwiseUnaryOp, ArrayBase::floor()
|
|
916
|
+
*/
|
|
917
|
+
template <typename Scalar>
|
|
918
|
+
struct scalar_floor_op {
|
|
919
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(const Scalar& a) const { return numext::floor(a); }
|
|
920
|
+
template <typename Packet>
|
|
921
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
922
|
+
return internal::pfloor(a);
|
|
923
|
+
}
|
|
924
|
+
};
|
|
925
|
+
template <typename Scalar>
|
|
926
|
+
struct functor_traits<scalar_floor_op<Scalar>> {
|
|
927
|
+
enum {
|
|
928
|
+
Cost = NumTraits<Scalar>::MulCost,
|
|
929
|
+
PacketAccess = packet_traits<Scalar>::HasRound || NumTraits<Scalar>::IsInteger
|
|
930
|
+
};
|
|
931
|
+
};
|
|
932
|
+
|
|
933
|
+
/** \internal
|
|
934
|
+
* \brief Template functor to compute the rounded (with current rounding mode) value of a scalar
|
|
935
|
+
* \sa class CwiseUnaryOp, ArrayBase::rint()
|
|
936
|
+
*/
|
|
937
|
+
template <typename Scalar>
|
|
938
|
+
struct scalar_rint_op {
|
|
939
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(const Scalar& a) const { return numext::rint(a); }
|
|
940
|
+
template <typename Packet>
|
|
941
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
942
|
+
return internal::print(a);
|
|
943
|
+
}
|
|
944
|
+
};
|
|
945
|
+
template <typename Scalar>
|
|
946
|
+
struct functor_traits<scalar_rint_op<Scalar>> {
|
|
947
|
+
enum {
|
|
948
|
+
Cost = NumTraits<Scalar>::MulCost,
|
|
949
|
+
PacketAccess = packet_traits<Scalar>::HasRound || NumTraits<Scalar>::IsInteger
|
|
950
|
+
};
|
|
951
|
+
};
|
|
952
|
+
|
|
953
|
+
/** \internal
|
|
954
|
+
* \brief Template functor to compute the ceil of a scalar
|
|
955
|
+
* \sa class CwiseUnaryOp, ArrayBase::ceil()
|
|
956
|
+
*/
|
|
957
|
+
template <typename Scalar>
|
|
958
|
+
struct scalar_ceil_op {
|
|
959
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(const Scalar& a) const { return numext::ceil(a); }
|
|
960
|
+
template <typename Packet>
|
|
961
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
962
|
+
return internal::pceil(a);
|
|
963
|
+
}
|
|
964
|
+
};
|
|
965
|
+
template <typename Scalar>
|
|
966
|
+
struct functor_traits<scalar_ceil_op<Scalar>> {
|
|
967
|
+
enum {
|
|
968
|
+
Cost = NumTraits<Scalar>::MulCost,
|
|
969
|
+
PacketAccess = packet_traits<Scalar>::HasRound || NumTraits<Scalar>::IsInteger
|
|
970
|
+
};
|
|
971
|
+
};
|
|
972
|
+
|
|
973
|
+
/** \internal
|
|
974
|
+
* \brief Template functor to compute the truncation of a scalar
|
|
975
|
+
* \sa class CwiseUnaryOp, ArrayBase::floor()
|
|
976
|
+
*/
|
|
977
|
+
template <typename Scalar>
|
|
978
|
+
struct scalar_trunc_op {
|
|
979
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(const Scalar& a) const { return numext::trunc(a); }
|
|
980
|
+
template <typename Packet>
|
|
981
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
982
|
+
return internal::ptrunc(a);
|
|
983
|
+
}
|
|
984
|
+
};
|
|
985
|
+
template <typename Scalar>
|
|
986
|
+
struct functor_traits<scalar_trunc_op<Scalar>> {
|
|
987
|
+
enum {
|
|
988
|
+
Cost = NumTraits<Scalar>::MulCost,
|
|
989
|
+
PacketAccess = packet_traits<Scalar>::HasRound || NumTraits<Scalar>::IsInteger
|
|
990
|
+
};
|
|
991
|
+
};
|
|
992
|
+
|
|
993
|
+
/** \internal
|
|
994
|
+
* \brief Template functor to compute whether a scalar is NaN
|
|
995
|
+
* \sa class CwiseUnaryOp, ArrayBase::isnan()
|
|
996
|
+
*/
|
|
997
|
+
template <typename Scalar, bool UseTypedPredicate = false>
|
|
998
|
+
struct scalar_isnan_op {
|
|
999
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator()(const Scalar& a) const {
|
|
1000
|
+
#if defined(SYCL_DEVICE_ONLY)
|
|
1001
|
+
return numext::isnan(a);
|
|
1002
|
+
#else
|
|
1003
|
+
return numext::isnan EIGEN_NOT_A_MACRO(a);
|
|
1004
|
+
#endif
|
|
1005
|
+
}
|
|
1006
|
+
};
|
|
1007
|
+
|
|
1008
|
+
template <typename Scalar>
|
|
1009
|
+
struct scalar_isnan_op<Scalar, true> {
|
|
1010
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const Scalar& a) const {
|
|
1011
|
+
#if defined(SYCL_DEVICE_ONLY)
|
|
1012
|
+
return (numext::isnan(a) ? ptrue(a) : pzero(a));
|
|
1013
|
+
#else
|
|
1014
|
+
return (numext::isnan EIGEN_NOT_A_MACRO(a) ? ptrue(a) : pzero(a));
|
|
1015
|
+
#endif
|
|
1016
|
+
}
|
|
1017
|
+
template <typename Packet>
|
|
1018
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
1019
|
+
return pisnan(a);
|
|
1020
|
+
}
|
|
1021
|
+
};
|
|
1022
|
+
|
|
1023
|
+
template <typename Scalar, bool UseTypedPredicate>
|
|
1024
|
+
struct functor_traits<scalar_isnan_op<Scalar, UseTypedPredicate>> {
|
|
1025
|
+
enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasCmp && UseTypedPredicate };
|
|
1026
|
+
};
|
|
1027
|
+
|
|
1028
|
+
/** \internal
|
|
1029
|
+
* \brief Template functor to check whether a scalar is +/-inf
|
|
1030
|
+
* \sa class CwiseUnaryOp, ArrayBase::isinf()
|
|
1031
|
+
*/
|
|
1032
|
+
template <typename Scalar, bool UseTypedPredicate = false>
|
|
1033
|
+
struct scalar_isinf_op {
|
|
1034
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator()(const Scalar& a) const {
|
|
1035
|
+
#if defined(SYCL_DEVICE_ONLY)
|
|
1036
|
+
return numext::isinf(a);
|
|
1037
|
+
#else
|
|
1038
|
+
return (numext::isinf)(a);
|
|
1039
|
+
#endif
|
|
1040
|
+
}
|
|
1041
|
+
};
|
|
1042
|
+
|
|
1043
|
+
template <typename Scalar>
|
|
1044
|
+
struct scalar_isinf_op<Scalar, true> {
|
|
1045
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const Scalar& a) const {
|
|
1046
|
+
#if defined(SYCL_DEVICE_ONLY)
|
|
1047
|
+
return (numext::isinf(a) ? ptrue(a) : pzero(a));
|
|
1048
|
+
#else
|
|
1049
|
+
return (numext::isinf EIGEN_NOT_A_MACRO(a) ? ptrue(a) : pzero(a));
|
|
1050
|
+
#endif
|
|
1051
|
+
}
|
|
1052
|
+
template <typename Packet>
|
|
1053
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
1054
|
+
return pisinf(a);
|
|
1055
|
+
}
|
|
1056
|
+
};
|
|
1057
|
+
template <typename Scalar, bool UseTypedPredicate>
|
|
1058
|
+
struct functor_traits<scalar_isinf_op<Scalar, UseTypedPredicate>> {
|
|
1059
|
+
enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasCmp && UseTypedPredicate };
|
|
1060
|
+
};
|
|
1061
|
+
|
|
1062
|
+
/** \internal
|
|
1063
|
+
* \brief Template functor to check whether a scalar has a finite value
|
|
1064
|
+
* \sa class CwiseUnaryOp, ArrayBase::isfinite()
|
|
1065
|
+
*/
|
|
1066
|
+
template <typename Scalar, bool UseTypedPredicate = false>
|
|
1067
|
+
struct scalar_isfinite_op {
|
|
1068
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool operator()(const Scalar& a) const {
|
|
1069
|
+
#if defined(SYCL_DEVICE_ONLY)
|
|
1070
|
+
return numext::isfinite(a);
|
|
1071
|
+
#else
|
|
1072
|
+
return (numext::isfinite)(a);
|
|
1073
|
+
#endif
|
|
1074
|
+
}
|
|
1075
|
+
};
|
|
1076
|
+
|
|
1077
|
+
template <typename Scalar>
|
|
1078
|
+
struct scalar_isfinite_op<Scalar, true> {
|
|
1079
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const Scalar& a) const {
|
|
1080
|
+
#if defined(SYCL_DEVICE_ONLY)
|
|
1081
|
+
return (numext::isfinite(a) ? ptrue(a) : pzero(a));
|
|
1082
|
+
#else
|
|
1083
|
+
return (numext::isfinite EIGEN_NOT_A_MACRO(a) ? ptrue(a) : pzero(a));
|
|
1084
|
+
#endif
|
|
1085
|
+
}
|
|
1086
|
+
template <typename Packet>
|
|
1087
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
1088
|
+
constexpr Scalar inf = NumTraits<Scalar>::infinity();
|
|
1089
|
+
return pcmp_lt(pabs(a), pset1<Packet>(inf));
|
|
1090
|
+
}
|
|
1091
|
+
};
|
|
1092
|
+
template <typename Scalar, bool UseTypedPredicate>
|
|
1093
|
+
struct functor_traits<scalar_isfinite_op<Scalar, UseTypedPredicate>> {
|
|
1094
|
+
enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasCmp && UseTypedPredicate };
|
|
1095
|
+
};
|
|
1096
|
+
|
|
1097
|
+
/** \internal
|
|
1098
|
+
* \brief Template functor to compute the logical not of a scalar as if it were a boolean
|
|
1099
|
+
*
|
|
1100
|
+
* \sa class CwiseUnaryOp, ArrayBase::operator!
|
|
1101
|
+
*/
|
|
1102
|
+
template <typename Scalar>
|
|
1103
|
+
struct scalar_boolean_not_op {
|
|
1104
|
+
using result_type = Scalar;
|
|
1105
|
+
// `false` any value `a` that satisfies `a == Scalar(0)`
|
|
1106
|
+
// `true` is the complement of `false`
|
|
1107
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const Scalar& a) const {
|
|
1108
|
+
return a == Scalar(0) ? Scalar(1) : Scalar(0);
|
|
1109
|
+
}
|
|
1110
|
+
template <typename Packet>
|
|
1111
|
+
EIGEN_STRONG_INLINE Packet packetOp(const Packet& a) const {
|
|
1112
|
+
const Packet cst_one = pset1<Packet>(Scalar(1));
|
|
1113
|
+
Packet not_a = pcmp_eq(a, pzero(a));
|
|
1114
|
+
return pand(not_a, cst_one);
|
|
1115
|
+
}
|
|
1116
|
+
};
|
|
1117
|
+
template <typename Scalar>
|
|
1118
|
+
struct functor_traits<scalar_boolean_not_op<Scalar>> {
|
|
1119
|
+
enum { Cost = NumTraits<Scalar>::AddCost, PacketAccess = packet_traits<Scalar>::HasCmp };
|
|
1120
|
+
};
|
|
1121
|
+
|
|
1122
|
+
template <typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
|
|
1123
|
+
struct bitwise_unary_impl {
|
|
1124
|
+
static constexpr size_t Size = sizeof(Scalar);
|
|
1125
|
+
using uint_t = typename numext::get_integer_by_size<Size>::unsigned_type;
|
|
1126
|
+
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar run_not(const Scalar& a) {
|
|
1127
|
+
uint_t a_as_uint = numext::bit_cast<uint_t, Scalar>(a);
|
|
1128
|
+
uint_t result = ~a_as_uint;
|
|
1129
|
+
return numext::bit_cast<Scalar, uint_t>(result);
|
|
1130
|
+
}
|
|
1131
|
+
};
|
|
1132
|
+
|
|
1133
|
+
template <typename Scalar>
|
|
1134
|
+
struct bitwise_unary_impl<Scalar, true> {
|
|
1135
|
+
using Real = typename NumTraits<Scalar>::Real;
|
|
1136
|
+
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar run_not(const Scalar& a) {
|
|
1137
|
+
Real real_result = bitwise_unary_impl<Real>::run_not(numext::real(a));
|
|
1138
|
+
Real imag_result = bitwise_unary_impl<Real>::run_not(numext::imag(a));
|
|
1139
|
+
return Scalar(real_result, imag_result);
|
|
1140
|
+
}
|
|
1141
|
+
};
|
|
1142
|
+
|
|
1143
|
+
/** \internal
|
|
1144
|
+
* \brief Template functor to compute the bitwise not of a scalar
|
|
1145
|
+
*
|
|
1146
|
+
* \sa class CwiseUnaryOp, ArrayBase::operator~
|
|
1147
|
+
*/
|
|
1148
|
+
template <typename Scalar>
|
|
1149
|
+
struct scalar_bitwise_not_op {
|
|
1150
|
+
EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::RequireInitialization,
|
|
1151
|
+
BITWISE OPERATIONS MAY ONLY BE PERFORMED ON PLAIN DATA TYPES)
|
|
1152
|
+
EIGEN_STATIC_ASSERT((!internal::is_same<Scalar, bool>::value), DONT USE BITWISE OPS ON BOOLEAN TYPES)
|
|
1153
|
+
using result_type = Scalar;
|
|
1154
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const Scalar& a) const {
|
|
1155
|
+
return bitwise_unary_impl<Scalar>::run_not(a);
|
|
1156
|
+
}
|
|
1157
|
+
template <typename Packet>
|
|
1158
|
+
EIGEN_STRONG_INLINE Packet packetOp(const Packet& a) const {
|
|
1159
|
+
return pandnot(ptrue(a), a);
|
|
1160
|
+
}
|
|
1161
|
+
};
|
|
1162
|
+
template <typename Scalar>
|
|
1163
|
+
struct functor_traits<scalar_bitwise_not_op<Scalar>> {
|
|
1164
|
+
enum { Cost = NumTraits<Scalar>::AddCost, PacketAccess = true };
|
|
1165
|
+
};
|
|
1166
|
+
|
|
1167
|
+
/** \internal
|
|
1168
|
+
* \brief Template functor to compute the signum of a scalar
|
|
1169
|
+
* \sa class CwiseUnaryOp, Cwise::sign()
|
|
1170
|
+
*/
|
|
1171
|
+
template <typename Scalar>
|
|
1172
|
+
struct scalar_sign_op {
|
|
1173
|
+
EIGEN_DEVICE_FUNC inline const Scalar operator()(const Scalar& a) const { return numext::sign(a); }
|
|
1174
|
+
|
|
1175
|
+
template <typename Packet>
|
|
1176
|
+
EIGEN_DEVICE_FUNC inline Packet packetOp(const Packet& a) const {
|
|
1177
|
+
return internal::psign(a);
|
|
1178
|
+
}
|
|
1179
|
+
};
|
|
1180
|
+
|
|
1181
|
+
template <typename Scalar>
|
|
1182
|
+
struct functor_traits<scalar_sign_op<Scalar>> {
|
|
1183
|
+
enum {
|
|
1184
|
+
Cost = NumTraits<Scalar>::IsComplex ? (8 * NumTraits<Scalar>::MulCost) // roughly
|
|
1185
|
+
: (3 * NumTraits<Scalar>::AddCost),
|
|
1186
|
+
PacketAccess = packet_traits<Scalar>::HasSign && packet_traits<Scalar>::Vectorizable
|
|
1187
|
+
};
|
|
1188
|
+
};
|
|
1189
|
+
|
|
1190
|
+
// Real-valued implementation.
|
|
1191
|
+
template <typename T, typename EnableIf = void>
|
|
1192
|
+
struct scalar_logistic_op_impl {
|
|
1193
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T operator()(const T& x) const { return packetOp(x); }
|
|
1194
|
+
|
|
1195
|
+
template <typename Packet>
|
|
1196
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet& x) const {
|
|
1197
|
+
const Packet one = pset1<Packet>(T(1));
|
|
1198
|
+
const Packet inf = pset1<Packet>(NumTraits<T>::infinity());
|
|
1199
|
+
const Packet e = pexp(x);
|
|
1200
|
+
const Packet inf_mask = pcmp_eq(e, inf);
|
|
1201
|
+
return pselect(inf_mask, one, pdiv(e, padd(one, e)));
|
|
1202
|
+
}
|
|
1203
|
+
};
|
|
1204
|
+
|
|
1205
|
+
// Complex-valud implementation.
|
|
1206
|
+
template <typename T>
|
|
1207
|
+
struct scalar_logistic_op_impl<T, std::enable_if_t<NumTraits<T>::IsComplex>> {
|
|
1208
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE T operator()(const T& x) const {
|
|
1209
|
+
const T e = numext::exp(x);
|
|
1210
|
+
return (numext::isinf)(numext::real(e)) ? T(1) : e / (e + T(1));
|
|
1211
|
+
}
|
|
1212
|
+
};
|
|
1213
|
+
|
|
1214
|
+
/** \internal
|
|
1215
|
+
* \brief Template functor to compute the logistic function of a scalar
|
|
1216
|
+
* \sa class CwiseUnaryOp, ArrayBase::logistic()
|
|
1217
|
+
*/
|
|
1218
|
+
template <typename T>
|
|
1219
|
+
struct scalar_logistic_op : scalar_logistic_op_impl<T> {};
|
|
1220
|
+
|
|
1221
|
+
// TODO(rmlarsen): Enable the following on host when integer_packet is defined
|
|
1222
|
+
// for the relevant packet types.
|
|
1223
|
+
#ifndef EIGEN_GPUCC
|
|
1224
|
+
|
|
1225
|
+
/** \internal
|
|
1226
|
+
* \brief Template specialization of the logistic function for float.
|
|
1227
|
+
* Computes S(x) = exp(x) / (1 + exp(x)), where exp(x) is implemented
|
|
1228
|
+
* using an algorithm partly adopted from the implementation of
|
|
1229
|
+
* pexp_float. See the individual steps described in the code below.
|
|
1230
|
+
* Note that compared to pexp, we use an additional outer multiplicative
|
|
1231
|
+
* range reduction step using the identity exp(x) = exp(x/2)^2.
|
|
1232
|
+
* This prevert us from having to call ldexp on values that could produce
|
|
1233
|
+
* a denormal result, which allows us to call the faster implementation in
|
|
1234
|
+
* pldexp_fast_impl<Packet>::run(p, m).
|
|
1235
|
+
* The final squaring, however, doubles the error bound on the final
|
|
1236
|
+
* approximation. Exhaustive testing shows that we have a worst case error
|
|
1237
|
+
* of 4.5 ulps (compared to computing S(x) in double precision), which is
|
|
1238
|
+
* acceptable.
|
|
1239
|
+
*/
|
|
1240
|
+
template <>
|
|
1241
|
+
struct scalar_logistic_op<float> {
|
|
1242
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE float operator()(const float& x) const {
|
|
1243
|
+
// Truncate at the first point where the interpolant is exactly one.
|
|
1244
|
+
const float cst_exp_hi = 16.6355324f;
|
|
1245
|
+
const float e = numext::exp(numext::mini(x, cst_exp_hi));
|
|
1246
|
+
return e / (1.0f + e);
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
template <typename Packet>
|
|
1250
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet& _x) const {
|
|
1251
|
+
const Packet cst_zero = pset1<Packet>(0.0f);
|
|
1252
|
+
const Packet cst_one = pset1<Packet>(1.0f);
|
|
1253
|
+
const Packet cst_half = pset1<Packet>(0.5f);
|
|
1254
|
+
// Truncate at the first point where the interpolant is exactly one.
|
|
1255
|
+
const Packet cst_exp_hi = pset1<Packet>(16.6355324f);
|
|
1256
|
+
const Packet cst_exp_lo = pset1<Packet>(-104.f);
|
|
1257
|
+
|
|
1258
|
+
// Clamp x to the non-trivial range where S(x). Outside this
|
|
1259
|
+
// interval the correctly rounded value of S(x) is either zero
|
|
1260
|
+
// or one.
|
|
1261
|
+
Packet zero_mask = pcmp_lt(_x, cst_exp_lo);
|
|
1262
|
+
Packet x = pmin(_x, cst_exp_hi);
|
|
1263
|
+
|
|
1264
|
+
// 1. Multiplicative range reduction:
|
|
1265
|
+
// Reduce the range of x by a factor of 2. This avoids having
|
|
1266
|
+
// to compute exp(x) accurately where the result is a denormalized
|
|
1267
|
+
// value.
|
|
1268
|
+
x = pmul(x, cst_half);
|
|
1269
|
+
|
|
1270
|
+
// 2. Subtractive range reduction:
|
|
1271
|
+
// Express exp(x) as exp(m*ln(2) + r) = 2^m*exp(r), start by extracting
|
|
1272
|
+
// m = floor(x/ln(2) + 0.5), such that x = m*ln(2) + r.
|
|
1273
|
+
const Packet cst_cephes_LOG2EF = pset1<Packet>(1.44269504088896341f);
|
|
1274
|
+
Packet m = pfloor(pmadd(x, cst_cephes_LOG2EF, cst_half));
|
|
1275
|
+
// Get r = x - m*ln(2). We use a trick from Cephes where the term
|
|
1276
|
+
// m*ln(2) is subtracted out in two parts, m*C1+m*C2 = m*ln(2),
|
|
1277
|
+
// to avoid accumulating truncation errors.
|
|
1278
|
+
const Packet cst_cephes_exp_C1 = pset1<Packet>(-0.693359375f);
|
|
1279
|
+
const Packet cst_cephes_exp_C2 = pset1<Packet>(2.12194440e-4f);
|
|
1280
|
+
Packet r = pmadd(m, cst_cephes_exp_C1, x);
|
|
1281
|
+
r = pmadd(m, cst_cephes_exp_C2, r);
|
|
1282
|
+
|
|
1283
|
+
// 3. Compute an approximation to exp(r) using a degree 5 minimax polynomial.
|
|
1284
|
+
// We compute even and odd terms separately to increase instruction level
|
|
1285
|
+
// parallelism.
|
|
1286
|
+
Packet r2 = pmul(r, r);
|
|
1287
|
+
const Packet cst_p2 = pset1<Packet>(0.49999141693115234375f);
|
|
1288
|
+
const Packet cst_p3 = pset1<Packet>(0.16666877269744873046875f);
|
|
1289
|
+
const Packet cst_p4 = pset1<Packet>(4.1898667812347412109375e-2f);
|
|
1290
|
+
const Packet cst_p5 = pset1<Packet>(8.33471305668354034423828125e-3f);
|
|
1291
|
+
|
|
1292
|
+
const Packet p_even = pmadd(r2, cst_p4, cst_p2);
|
|
1293
|
+
const Packet p_odd = pmadd(r2, cst_p5, cst_p3);
|
|
1294
|
+
const Packet p_low = padd(r, cst_one);
|
|
1295
|
+
Packet p = pmadd(r, p_odd, p_even);
|
|
1296
|
+
p = pmadd(r2, p, p_low);
|
|
1297
|
+
|
|
1298
|
+
// 4. Undo subtractive range reduction exp(m*ln(2) + r) = 2^m * exp(r).
|
|
1299
|
+
Packet e = pldexp_fast(p, m);
|
|
1300
|
+
|
|
1301
|
+
// 5. Undo multiplicative range reduction by using exp(r) = exp(r/2)^2.
|
|
1302
|
+
e = pmul(e, e);
|
|
1303
|
+
|
|
1304
|
+
// Return exp(x) / (1 + exp(x))
|
|
1305
|
+
return pselect(zero_mask, cst_zero, pdiv(e, padd(cst_one, e)));
|
|
1306
|
+
}
|
|
1307
|
+
};
|
|
1308
|
+
#endif // #ifndef EIGEN_GPU_COMPILE_PHASE
|
|
1309
|
+
|
|
1310
|
+
template <typename T>
|
|
1311
|
+
struct functor_traits<scalar_logistic_op<T>> {
|
|
1312
|
+
enum {
|
|
1313
|
+
// The cost estimate for float here here is for the common(?) case where
|
|
1314
|
+
// all arguments are greater than -9.
|
|
1315
|
+
Cost = scalar_div_cost<T, packet_traits<T>::HasDiv>::value +
|
|
1316
|
+
(internal::is_same<T, float>::value ? NumTraits<T>::AddCost * 15 + NumTraits<T>::MulCost * 11
|
|
1317
|
+
: NumTraits<T>::AddCost * 2 + functor_traits<scalar_exp_op<T>>::Cost),
|
|
1318
|
+
PacketAccess = !NumTraits<T>::IsComplex && packet_traits<T>::HasAdd && packet_traits<T>::HasDiv &&
|
|
1319
|
+
(internal::is_same<T, float>::value
|
|
1320
|
+
? packet_traits<T>::HasMul && packet_traits<T>::HasMax && packet_traits<T>::HasMin
|
|
1321
|
+
: packet_traits<T>::HasNegate && packet_traits<T>::HasExp)
|
|
1322
|
+
};
|
|
1323
|
+
};
|
|
1324
|
+
|
|
1325
|
+
template <typename Scalar, typename ExponentScalar, bool IsBaseInteger = NumTraits<Scalar>::IsInteger,
|
|
1326
|
+
bool IsExponentInteger = NumTraits<ExponentScalar>::IsInteger,
|
|
1327
|
+
bool IsBaseComplex = NumTraits<Scalar>::IsComplex,
|
|
1328
|
+
bool IsExponentComplex = NumTraits<ExponentScalar>::IsComplex>
|
|
1329
|
+
struct scalar_unary_pow_op {
|
|
1330
|
+
typedef typename internal::promote_scalar_arg<
|
|
1331
|
+
Scalar, ExponentScalar,
|
|
1332
|
+
internal::has_ReturnType<ScalarBinaryOpTraits<Scalar, ExponentScalar, scalar_unary_pow_op>>::value>::type
|
|
1333
|
+
PromotedExponent;
|
|
1334
|
+
typedef typename ScalarBinaryOpTraits<Scalar, PromotedExponent, scalar_unary_pow_op>::ReturnType result_type;
|
|
1335
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE scalar_unary_pow_op(const ExponentScalar& exponent) : m_exponent(exponent) {}
|
|
1336
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE result_type operator()(const Scalar& a) const {
|
|
1337
|
+
EIGEN_USING_STD(pow);
|
|
1338
|
+
return static_cast<result_type>(pow(a, m_exponent));
|
|
1339
|
+
}
|
|
1340
|
+
|
|
1341
|
+
private:
|
|
1342
|
+
const ExponentScalar m_exponent;
|
|
1343
|
+
scalar_unary_pow_op() {}
|
|
1344
|
+
};
|
|
1345
|
+
|
|
1346
|
+
template <typename T>
|
|
1347
|
+
constexpr int exponent_digits() {
|
|
1348
|
+
return CHAR_BIT * sizeof(T) - NumTraits<T>::digits() - NumTraits<T>::IsSigned;
|
|
1349
|
+
}
|
|
1350
|
+
|
|
1351
|
+
template <typename From, typename To>
|
|
1352
|
+
struct is_floating_exactly_representable {
|
|
1353
|
+
// TODO(rmlarsen): Add radix to NumTraits and enable this check.
|
|
1354
|
+
// (NumTraits<To>::radix == NumTraits<From>::radix) &&
|
|
1355
|
+
static constexpr bool value =
|
|
1356
|
+
(exponent_digits<To>() >= exponent_digits<From>() && NumTraits<To>::digits() >= NumTraits<From>::digits());
|
|
1357
|
+
};
|
|
1358
|
+
|
|
1359
|
+
// Specialization for real, non-integer types, non-complex types.
|
|
1360
|
+
template <typename Scalar, typename ExponentScalar>
|
|
1361
|
+
struct scalar_unary_pow_op<Scalar, ExponentScalar, false, false, false, false> {
|
|
1362
|
+
template <bool IsExactlyRepresentable = is_floating_exactly_representable<ExponentScalar, Scalar>::value>
|
|
1363
|
+
std::enable_if_t<IsExactlyRepresentable, void> check_is_representable() const {}
|
|
1364
|
+
|
|
1365
|
+
// Issue a deprecation warning if we do a narrowing conversion on the exponent.
|
|
1366
|
+
template <bool IsExactlyRepresentable = is_floating_exactly_representable<ExponentScalar, Scalar>::value>
|
|
1367
|
+
EIGEN_DEPRECATED std::enable_if_t<!IsExactlyRepresentable, void> check_is_representable() const {}
|
|
1368
|
+
|
|
1369
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE scalar_unary_pow_op(const ExponentScalar& exponent)
|
|
1370
|
+
: m_exponent(static_cast<Scalar>(exponent)) {
|
|
1371
|
+
check_is_representable();
|
|
1372
|
+
}
|
|
1373
|
+
|
|
1374
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const Scalar& a) const {
|
|
1375
|
+
EIGEN_USING_STD(pow);
|
|
1376
|
+
return static_cast<Scalar>(pow(a, m_exponent));
|
|
1377
|
+
}
|
|
1378
|
+
template <typename Packet>
|
|
1379
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet& a) const {
|
|
1380
|
+
return unary_pow_impl<Packet, Scalar>::run(a, m_exponent);
|
|
1381
|
+
}
|
|
1382
|
+
|
|
1383
|
+
private:
|
|
1384
|
+
const Scalar m_exponent;
|
|
1385
|
+
scalar_unary_pow_op() {}
|
|
1386
|
+
};
|
|
1387
|
+
|
|
1388
|
+
template <typename Scalar, typename ExponentScalar, bool BaseIsInteger>
|
|
1389
|
+
struct scalar_unary_pow_op<Scalar, ExponentScalar, BaseIsInteger, true, false, false> {
|
|
1390
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE scalar_unary_pow_op(const ExponentScalar& exponent) : m_exponent(exponent) {}
|
|
1391
|
+
// TODO: error handling logic for complex^real_integer
|
|
1392
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator()(const Scalar& a) const {
|
|
1393
|
+
return unary_pow_impl<Scalar, ExponentScalar>::run(a, m_exponent);
|
|
1394
|
+
}
|
|
1395
|
+
template <typename Packet>
|
|
1396
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(const Packet& a) const {
|
|
1397
|
+
return unary_pow_impl<Packet, ExponentScalar>::run(a, m_exponent);
|
|
1398
|
+
}
|
|
1399
|
+
|
|
1400
|
+
private:
|
|
1401
|
+
const ExponentScalar m_exponent;
|
|
1402
|
+
scalar_unary_pow_op() {}
|
|
1403
|
+
};
|
|
1404
|
+
|
|
1405
|
+
template <typename Scalar, typename ExponentScalar>
|
|
1406
|
+
struct functor_traits<scalar_unary_pow_op<Scalar, ExponentScalar>> {
|
|
1407
|
+
enum {
|
|
1408
|
+
GenPacketAccess = functor_traits<scalar_pow_op<Scalar, ExponentScalar>>::PacketAccess,
|
|
1409
|
+
IntPacketAccess = !NumTraits<Scalar>::IsComplex && packet_traits<Scalar>::HasMul &&
|
|
1410
|
+
(packet_traits<Scalar>::HasDiv || NumTraits<Scalar>::IsInteger) && packet_traits<Scalar>::HasCmp,
|
|
1411
|
+
PacketAccess = NumTraits<ExponentScalar>::IsInteger ? IntPacketAccess : (IntPacketAccess && GenPacketAccess),
|
|
1412
|
+
Cost = functor_traits<scalar_pow_op<Scalar, ExponentScalar>>::Cost
|
|
1413
|
+
};
|
|
1414
|
+
};
|
|
1415
|
+
|
|
1416
|
+
} // end namespace internal
|
|
1417
|
+
|
|
1418
|
+
} // end namespace Eigen
|
|
1419
|
+
|
|
1420
|
+
#endif // EIGEN_FUNCTORS_H
|