aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src
diff options
context:
space:
mode:
authorGravatar Michael Figurnov <mfigurnov@google.com>2018-05-31 15:34:53 +0100
committerGravatar Michael Figurnov <mfigurnov@google.com>2018-05-31 15:34:53 +0100
commitf216854453887f31ac02ffefb7a7a569dc3fa54d (patch)
treebf748705db0da48a0dc8c08989184bcb888861fd /Eigen/src
parent6af1433cb50af7423a1a69afc24c098af9c76bb1 (diff)
Exponentially scaled modified Bessel functions of order zero and one.
The functions are conventionally called i0e and i1e. The exponentially scaled version is more numerically stable. The standard Bessel functions can be obtained as i0(x) = exp(|x|) i0e(x) The code is ported from Cephes and tested against SciPy.
Diffstat (limited to 'Eigen/src')
-rw-r--r--Eigen/src/Core/GenericPacketMath.h2
-rw-r--r--Eigen/src/Core/arch/CUDA/PacketMath.h4
2 files changed, 6 insertions, 0 deletions
diff --git a/Eigen/src/Core/GenericPacketMath.h b/Eigen/src/Core/GenericPacketMath.h
index 7979c3aff..888a3f7ea 100644
--- a/Eigen/src/Core/GenericPacketMath.h
+++ b/Eigen/src/Core/GenericPacketMath.h
@@ -82,6 +82,8 @@ struct default_packet_traits
HasPolygamma = 0,
HasErf = 0,
HasErfc = 0,
+ HasI0e = 0,
+ HasI1e = 0,
HasIGamma = 0,
HasIGammac = 0,
HasBetaInc = 0,
diff --git a/Eigen/src/Core/arch/CUDA/PacketMath.h b/Eigen/src/Core/arch/CUDA/PacketMath.h
index 97a8abe59..704a4e0d9 100644
--- a/Eigen/src/Core/arch/CUDA/PacketMath.h
+++ b/Eigen/src/Core/arch/CUDA/PacketMath.h
@@ -44,6 +44,8 @@ template<> struct packet_traits<float> : default_packet_traits
HasPolygamma = 1,
HasErf = 1,
HasErfc = 1,
+ HasI0e = 1,
+ HasI1e = 1,
HasIGamma = 1,
HasIGammac = 1,
HasBetaInc = 1,
@@ -73,6 +75,8 @@ template<> struct packet_traits<double> : default_packet_traits
HasPolygamma = 1,
HasErf = 1,
HasErfc = 1,
+ HasI0e = 1,
+ HasI1e = 1,
HasIGamma = 1,
HasIGammac = 1,
HasBetaInc = 1,