8#ifndef EIGEN_MATH_FUNCTIONS_NEON_H
9#define EIGEN_MATH_FUNCTIONS_NEON_H
15template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet2f pexp<Packet2f>(
const Packet2f& x)
16{
return pexp_float(x); }
17template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet4f pexp<Packet4f>(
const Packet4f& x)
18{
return pexp_float(x); }
20template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet2f plog<Packet2f>(
const Packet2f& x)
21{
return plog_float(x); }
22template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet4f plog<Packet4f>(
const Packet4f& x)
23{
return plog_float(x); }
25template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet2f psin<Packet2f>(
const Packet2f& x)
26{
return psin_float(x); }
27template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet4f psin<Packet4f>(
const Packet4f& x)
28{
return psin_float(x); }
30template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet2f pcos<Packet2f>(
const Packet2f& x)
31{
return pcos_float(x); }
32template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet4f pcos<Packet4f>(
const Packet4f& x)
33{
return pcos_float(x); }
36template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet2f ptanh<Packet2f>(
const Packet2f& x)
37{
return internal::generic_fast_tanh_float(x); }
38template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet4f ptanh<Packet4f>(
const Packet4f& x)
39{
return internal::generic_fast_tanh_float(x); }
41BF16_PACKET_FUNCTION(Packet4f, Packet4bf, psin)
42BF16_PACKET_FUNCTION(Packet4f, Packet4bf, pcos)
43BF16_PACKET_FUNCTION(Packet4f, Packet4bf, plog)
44BF16_PACKET_FUNCTION(Packet4f, Packet4bf, pexp)
45BF16_PACKET_FUNCTION(Packet4f, Packet4bf, ptanh)
48EIGEN_STRONG_INLINE Packet4bf pfrexp(
const Packet4bf& a, Packet4bf& exponent) {
50 const Packet4bf out = F32ToBf16(pfrexp<Packet4f>(Bf16ToF32(a), fexponent));
51 exponent = F32ToBf16(fexponent);
56EIGEN_STRONG_INLINE Packet4bf pldexp(
const Packet4bf& a,
const Packet4bf& exponent) {
57 return F32ToBf16(pldexp<Packet4f>(Bf16ToF32(a), Bf16ToF32(exponent)));
62#if EIGEN_ARCH_ARM64 && !EIGEN_APPLE_DOUBLE_NEON_BUG
63template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet2d pexp<Packet2d>(
const Packet2d& x)
64{
return pexp_double(x); }
66template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED Packet2d plog<Packet2d>(
const Packet2d& x)
67{
return plog_double(x); }
Namespace containing all symbols from the Eigen library.
Definition: Core:141