0
0
mirror of https://gitlab.com/libeigen/eigen.git synced 2026-01-18 17:31:19 +01:00

Merge branch eigen:master into master

This commit is contained in:
Rasmus Munk Larsen
2025-10-30 17:27:20 +00:00
10 changed files with 5 additions and 56 deletions

View File

@@ -20,10 +20,7 @@ namespace internal {
template <typename Derived, typename Scalar = typename traits<Derived>::Scalar>
struct squared_norm_impl {
using Real = typename NumTraits<Scalar>::Real;
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Real run(const Derived& a) {
Scalar result = a.unaryExpr(squared_norm_functor<Scalar>()).sum();
return numext::real(result) + numext::imag(result);
}
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Real run(const Derived& a) { return a.realView().cwiseAbs2().sum(); }
};
template <typename Derived>

View File

@@ -179,7 +179,6 @@ struct packet_traits<Eigen::half> : default_packet_traits {
HasCos = EIGEN_FAST_MATH,
HasNegate = 1,
HasAbs = 1,
HasAbs2 = 0,
HasMin = 1,
HasMax = 1,
HasConj = 1,
@@ -218,7 +217,6 @@ struct packet_traits<bfloat16> : default_packet_traits {
HasCos = EIGEN_FAST_MATH,
HasNegate = 1,
HasAbs = 1,
HasAbs2 = 0,
HasMin = 1,
HasMax = 1,
HasConj = 1,

View File

@@ -84,7 +84,6 @@ struct packet_traits<half> : default_packet_traits {
HasDiv = 1,
HasNegate = 1,
HasAbs = 1,
HasAbs2 = 0,
HasMin = 1,
HasMax = 1,
HasConj = 1,

View File

@@ -42,7 +42,6 @@ struct packet_traits<half> : default_packet_traits {
HasDiv = 1,
HasNegate = 1,
HasAbs = 1,
HasAbs2 = 0,
HasMin = 1,
HasMax = 1,
HasConj = 1,

View File

@@ -152,7 +152,6 @@ struct packet_traits<float> : default_packet_traits {
HasNegate = 1,
HasAbs = 1,
HasArg = 0,
HasAbs2 = 0,
HasAbsDiff = 0,
HasMin = 1,
HasMax = 1,

View File

@@ -169,7 +169,6 @@ struct packet_traits<int8_t> : default_packet_traits {
AlignedOnScalar = 1,
size = 16,
HasAbs2 = 0,
HasSetLinear = 0,
HasCmp = 1,
HasBlend = 0
@@ -185,7 +184,6 @@ struct packet_traits<int16_t> : default_packet_traits {
AlignedOnScalar = 1,
size = 8,
HasAbs2 = 0,
HasSetLinear = 0,
HasCmp = 1,
HasDiv = 1,
@@ -202,7 +200,6 @@ struct packet_traits<int32_t> : default_packet_traits {
AlignedOnScalar = 1,
size = 4,
HasAbs2 = 0,
HasSetLinear = 0,
HasCmp = 1,
HasDiv = 1,
@@ -219,7 +216,6 @@ struct packet_traits<int64_t> : default_packet_traits {
AlignedOnScalar = 1,
size = 2,
HasAbs2 = 0,
HasSetLinear = 0,
HasCmp = 1,
HasDiv = 1,
@@ -236,7 +232,6 @@ struct packet_traits<uint8_t> : default_packet_traits {
AlignedOnScalar = 1,
size = 16,
HasAbs2 = 0,
HasSetLinear = 0,
HasNegate = 0,
HasCmp = 1,
@@ -253,7 +248,6 @@ struct packet_traits<uint16_t> : default_packet_traits {
AlignedOnScalar = 1,
size = 8,
HasAbs2 = 0,
HasSetLinear = 0,
HasNegate = 0,
HasCmp = 1,
@@ -271,7 +265,6 @@ struct packet_traits<uint32_t> : default_packet_traits {
AlignedOnScalar = 1,
size = 4,
HasAbs2 = 0,
HasSetLinear = 0,
HasNegate = 0,
HasCmp = 1,
@@ -289,7 +282,6 @@ struct packet_traits<uint64_t> : default_packet_traits {
AlignedOnScalar = 1,
size = 2,
HasAbs2 = 0,
HasSetLinear = 0,
HasNegate = 0,
HasCmp = 1,
@@ -307,7 +299,6 @@ struct packet_traits<float> : default_packet_traits {
AlignedOnScalar = 1,
size = 4,
HasAbs2 = 0,
HasSetLinear = 0,
HasBlend = 0,
HasSign = 0,
@@ -328,7 +319,6 @@ struct packet_traits<double> : default_packet_traits {
AlignedOnScalar = 1,
size = 2,
HasAbs2 = 0,
HasSetLinear = 0,
HasBlend = 0,
HasSign = 0,

View File

@@ -189,7 +189,6 @@ struct packet_traits<float> : default_packet_traits {
HasNegate = 1,
HasAbs = 1,
HasArg = 0,
HasAbs2 = 1,
HasAbsDiff = 1,
HasMin = 1,
HasMax = 1,
@@ -235,7 +234,6 @@ struct packet_traits<int8_t> : default_packet_traits {
HasAbs = 1,
HasAbsDiff = 1,
HasArg = 0,
HasAbs2 = 1,
HasMin = 1,
HasMax = 1,
HasConj = 1,
@@ -262,7 +260,6 @@ struct packet_traits<uint8_t> : default_packet_traits {
HasAbs = 1,
HasAbsDiff = 1,
HasArg = 0,
HasAbs2 = 1,
HasMin = 1,
HasMax = 1,
HasConj = 1,
@@ -291,7 +288,6 @@ struct packet_traits<int16_t> : default_packet_traits {
HasAbs = 1,
HasAbsDiff = 1,
HasArg = 0,
HasAbs2 = 1,
HasMin = 1,
HasMax = 1,
HasConj = 1,
@@ -318,7 +314,6 @@ struct packet_traits<uint16_t> : default_packet_traits {
HasAbs = 1,
HasAbsDiff = 1,
HasArg = 0,
HasAbs2 = 1,
HasMin = 1,
HasMax = 1,
HasConj = 1,
@@ -345,7 +340,6 @@ struct packet_traits<int32_t> : default_packet_traits {
HasNegate = 1,
HasAbs = 1,
HasArg = 0,
HasAbs2 = 1,
HasAbsDiff = 1,
HasMin = 1,
HasMax = 1,
@@ -372,7 +366,6 @@ struct packet_traits<uint32_t> : default_packet_traits {
HasNegate = 0,
HasAbs = 1,
HasArg = 0,
HasAbs2 = 1,
HasAbsDiff = 1,
HasMin = 1,
HasMax = 1,
@@ -401,7 +394,6 @@ struct packet_traits<int64_t> : default_packet_traits {
HasNegate = 1,
HasAbs = 1,
HasArg = 0,
HasAbs2 = 1,
HasAbsDiff = 1,
HasMin = 1,
HasMax = 1,
@@ -428,7 +420,6 @@ struct packet_traits<uint64_t> : default_packet_traits {
HasNegate = 0,
HasAbs = 1,
HasArg = 0,
HasAbs2 = 1,
HasAbsDiff = 1,
HasMin = 1,
HasMax = 1,
@@ -4663,7 +4654,6 @@ struct packet_traits<bfloat16> : default_packet_traits {
HasNegate = 1,
HasAbs = 1,
HasArg = 0,
HasAbs2 = 1,
HasAbsDiff = 1,
HasMin = 1,
HasMax = 1,
@@ -5048,7 +5038,6 @@ struct packet_traits<double> : default_packet_traits {
HasNegate = 1,
HasAbs = 1,
HasArg = 0,
HasAbs2 = 1,
HasAbsDiff = 1,
HasMin = 1,
HasMax = 1,
@@ -5424,7 +5413,6 @@ struct packet_traits<Eigen::half> : default_packet_traits {
HasNegate = 1,
HasAbs = 1,
HasArg = 0,
HasAbs2 = 1,
HasAbsDiff = 0,
HasMin = 1,
HasMax = 1,

View File

@@ -290,7 +290,6 @@ struct packet_traits<bool> : default_packet_traits {
HasCmp = 1,
HasShift = 0,
HasAbs = 0,
HasAbs2 = 0,
HasMin = 0,
HasMax = 0,
HasConj = 0,
@@ -2194,7 +2193,6 @@ struct packet_traits<Eigen::half> : default_packet_traits {
HasDiv = 1,
HasNegate = 0,
HasAbs = 0,
HasAbs2 = 0,
HasMin = 0,
HasMax = 0,
HasConj = 0,

View File

@@ -49,7 +49,6 @@ struct packet_traits<numext::int32_t> : default_packet_traits {
HasNegate = 1,
HasAbs = 1,
HasArg = 0,
HasAbs2 = 1,
HasMin = 1,
HasMax = 1,
HasConj = 1,
@@ -344,7 +343,6 @@ struct packet_traits<float> : default_packet_traits {
HasNegate = 1,
HasAbs = 1,
HasArg = 0,
HasAbs2 = 1,
HasMin = 1,
HasMax = 1,
HasConj = 1,

View File

@@ -100,27 +100,10 @@ struct scalar_abs2_op {
};
template <typename Scalar>
struct functor_traits<scalar_abs2_op<Scalar>> {
enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasAbs2 };
};
template <typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
struct squared_norm_functor {
typedef Scalar result_type;
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(const Scalar& a) const {
return Scalar(numext::real(a) * numext::real(a), numext::imag(a) * numext::imag(a));
}
template <typename Packet>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const {
return Packet(pmul(a.v, a.v));
}
};
template <typename Scalar>
struct squared_norm_functor<Scalar, false> : scalar_abs2_op<Scalar> {};
template <typename Scalar>
struct functor_traits<squared_norm_functor<Scalar>> {
using Real = typename NumTraits<Scalar>::Real;
enum { Cost = NumTraits<Real>::MulCost, PacketAccess = packet_traits<Real>::HasMul };
enum {
Cost = NumTraits<Scalar>::MulCost,
PacketAccess = packet_traits<Scalar>::HasMul && !NumTraits<Scalar>::IsComplex
};
};
/** \internal