Updated pfrexp implementation.

The original implementation fails for 0, denormals, inf, and NaN.

See #2150
This commit is contained in:
Antonio Sanchez
2021-02-12 11:32:29 -08:00
committed by Rasmus Munk Larsen
parent 9ad4096ccb
commit 7ff0b7a980
9 changed files with 225 additions and 144 deletions

View File

@@ -669,7 +669,7 @@ EIGEN_STRONG_INLINE PacketXf pabs(const PacketXf& a)
template <>
EIGEN_STRONG_INLINE PacketXf pfrexp<PacketXf>(const PacketXf& a, PacketXf& exponent)
{
return pfrexp_float(a, exponent);
return pfrexp_generic(a, exponent);
}
template <>
@@ -747,7 +747,7 @@ EIGEN_DEVICE_FUNC inline void ptranspose(PacketBlock<PacketXf, N>& kernel)
template<>
EIGEN_STRONG_INLINE PacketXf pldexp<PacketXf>(const PacketXf& a, const PacketXf& exponent)
{
return pldexp_float(a, exponent);
return pldexp_generic(a, exponent);
}
} // namespace internal