diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2022-09-19 12:57:35 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-19 12:57:35 -0500 |
commit | 293dc0e242be473216fcceec421d7aceba4e285e (patch) | |
tree | ab03b6d9623232c0c59c5500ef99aed55e218061 | |
parent | 91d1c1ebd26d3269c45051d61bf24efb8db0678e (diff) | |
parent | 3a2d0093faaeda8ae686cbef9e3a34795e9a0f16 (diff) | |
download | numpy-293dc0e242be473216fcceec421d7aceba4e285e.tar.gz |
Merge pull request #22259 from ganesh-k13/doc_21506_div_overflow
DOC: Better report integer division overflow (#21506)
-rw-r--r-- | doc/release/upcoming_changes/21506.change.rst | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/doc/release/upcoming_changes/21506.change.rst b/doc/release/upcoming_changes/21506.change.rst new file mode 100644 index 000000000..18bc6cbc2 --- /dev/null +++ b/doc/release/upcoming_changes/21506.change.rst @@ -0,0 +1,18 @@ +Better reporting of integer division overflow +--------------------------------------------- + +Integer division overflow of scalars and arrays used to provide a ``RuntimeWarning`` +and the return value was undefined leading to crashes at rare occasions:: + + >>> np.array([np.iinfo(np.int32).min]*10, dtype=np.int32) // np.int32(-1) + <stdin>:1: RuntimeWarning: divide by zero encountered in floor_divide + array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype=int32) + +Integer division overflow now returns the input dtype's minimum value and raise the +following ``RuntimeWarning``:: + + >>> np.array([np.iinfo(np.int32).min]*10, dtype=np.int32) // np.int32(-1) + <stdin>:1: RuntimeWarning: overflow encountered in floor_divide + array([-2147483648, -2147483648, -2147483648, -2147483648, -2147483648, + -2147483648, -2147483648, -2147483648, -2147483648, -2147483648], + dtype=int32) |