Enable NEON pabs for unsigned int types
What does this implement/fix?
The packet_traits for NEON uint16_t
, uint32_t
, uint64_t
set HasAbs = 0
. But, these types seem to have pabs implemented (just as an identity operation).
This MR just sets HasAbs = 1
for these types. This also matches pabs in GenericPacketMath.h since numext::abs is also an identity for unsigned types.
I think that ATM, if an expression of uint32_t matrices uses .cwiseAbs()
, then the entire expression ends up not using Eigen's packet operations...? So HasAbs=1 should be better?
I guess this only matters (if at all) for some generic code, since people probably aren't using abs if they know they have an unsigned type :-)