Vectorize pow for integer base / exponent types

Reference issue

#2522 (closed)

What does this implement/fix?

Vectorized pow with handling for negative exponents. e.g. ArrayXi x, y; y = x.pow(3); In general, integer divide by zero and signed integer overflow is undefined behavior. Under these conditions, output may vary from std::pow (or Eigen's square and cube for that matter) depending on implementation. For example: msvc and clang always (?) return lowest() for overflow and underflow for signed types -- while gcc returns highest() or lowest() depending on the arguments and data types.

Unsigned integers do not overflow per standard.

Additional information

Edited by Charles Schlosser

Merge request reports

Loading