Vectorize pow for integer base / exponent types
Reference issue
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