Skip to content

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 :-)

Merge request reports

Loading