This is an automated email from the ASF dual-hosted git repository.

dickjc123 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git


The following commit(s) were added to refs/heads/master by this push:
     new e972556  [BUGFIX] Fix mxnet.numpy.eye() handling of extreme k 
parameter values (#20965)
e972556 is described below

commit e97255629c122b03383f4771479c90d912e73773
Author: Dick Carter <[email protected]>
AuthorDate: Thu Mar 17 16:15:53 2022 -0700

    [BUGFIX] Fix mxnet.numpy.eye() handling of extreme k parameter values 
(#20965)
    
    * Fix mxnet.numpy.eye() handling of extreme k parameter values
    
    * Fix broken web link
---
 .github/workflows/os_x_staticbuild.yml | 4 ++--
 ci/docker/runtime_functions.sh         | 4 +---
 python/mxnet/ndarray/numpy/_op.py      | 5 ++++-
 3 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/.github/workflows/os_x_staticbuild.yml 
b/.github/workflows/os_x_staticbuild.yml
index 37b28f3..5502f93 100644
--- a/.github/workflows/os_x_staticbuild.yml
+++ b/.github/workflows/os_x_staticbuild.yml
@@ -49,7 +49,7 @@ jobs:
 
       - name: Test project
         env:
-          MXNET_ENFORCE_CYTHON: 1
+          MXNET_ENABLE_CYTHON: 1
         run: |
           python3 -m pytest -n 4 --durations=50 --verbose 
tests/python/unittest/ -k 'not test_operator and not (test_subgraph or 
test_custom_op or test_external_op or 
test_recordimage_dataset_with_data_loader_multiworker or test_multi_worker or 
test_multi_worker_shape or test_multi_worker_forked_data_loader or 
test_multi_worker_dataloader_release_pool)' -m 'not serial'
           MXNET_ENGINE_TYPE=NaiveEngine python3 -m pytest -n 4 --durations=50 
--verbose tests/python/unittest/ -k 'test_operator and not (test_subgraph or 
test_custom_op or test_external_op or 
test_recordimage_dataset_with_data_loader_multiworker or test_multi_worker or 
test_multi_worker_shape or test_multi_worker_forked_data_loader or 
test_multi_worker_dataloader_release_pool)' -m 'not serial'
@@ -57,7 +57,7 @@ jobs:
 
       - name: Test Array API
         env:
-          MXNET_ENFORCE_CYTHON: 0
+          MXNET_ENABLE_CYTHON: 1
         run: |
           cd ..
           git clone https://github.com/data-apis/array-api-tests.git
diff --git a/ci/docker/runtime_functions.sh b/ci/docker/runtime_functions.sh
index d68ce96..1859132 100755
--- a/ci/docker/runtime_functions.sh
+++ b/ci/docker/runtime_functions.sh
@@ -878,9 +878,7 @@ unittest_array_api_standardization() {
     pushd /work/array-api-tests
     git checkout c1dba80a196a03f880d2e0a998a272fb3867b720
     export ARRAY_API_TESTS_MODULE=mxnet.numpy pytest
-    # OverflowError: Python int too large to convert to C long
-    # when cython is enabled
-    export MXNET_ENABLE_CYTHON=0
+    export MXNET_ENABLE_CYTHON=1
     export DMLC_LOG_STACK_TRACE_DEPTH=100
     python3 -m pytest --reruns 3 --durations=50 --cov-report xml:tests_api.xml 
--verbose array_api_tests/test_creation_functions.py
     python3 -m pytest --reruns 3 --durations=50 --cov-report xml:tests_api.xml 
--verbose array_api_tests/test_indexing.py
diff --git a/python/mxnet/ndarray/numpy/_op.py 
b/python/mxnet/ndarray/numpy/_op.py
index cb7b451..e9bc358 100644
--- a/python/mxnet/ndarray/numpy/_op.py
+++ b/python/mxnet/ndarray/numpy/_op.py
@@ -1932,7 +1932,10 @@ def eye(N, M=None, k=0, dtype=float, **kwargs):
         dtype = _np.float64 if is_np_default_dtype() else _np.float32
     if dtype is not None and not isinstance(dtype, str):
         dtype = _np.dtype(dtype).name
-    k = minimum(k, N) if M is None else minimum(k, M)
+    # To avoid overflow errors, map large positive k values to the 
just-out-of-range "num_columns" value
+    k = minimum(k, M if M is not None else N)
+    # Similarly, map large negative k values to the just-out-of-range 
"-num_rows" value
+    k = maximum(k, -N)
     return _api_internal.eye(N, M, int(k), device, dtype)
 
 

Reply via email to