Skip to content

BUG: test all ufunc.types for return type, fix for exp, log - #13495

Merged
charris merged 1 commit into
numpy:masterfrom
mattip:float32-exp
May 8, 2019
Merged

charris merged 1 commit into
numpy:masterfrom
mattip:float32-exp

Conversation

@mattip

@mattip mattip commented May 7, 2019

Copy link
Copy Markdown
Member

Fixes #13493 by registering a non-simd loop for 'e' (half) before the 'f' (float) one.

Also added a test that all ufuncs respect the types they declare

Comment thread numpy/core/tests/test_ufunc.py Outdated
Comment thread numpy/core/tests/test_ufunc.py Outdated
Comment thread numpy/core/tests/test_ufunc.py Outdated
Comment thread numpy/core/tests/test_ufunc.py Outdated
@charris

charris commented May 7, 2019 •

Copy link
Copy Markdown
Member

I don't see any types with ',', or that need to be stripped.

EDIT1: Otherwise LGTM.

EDIT2: Might even be best to fail for cases like that if they are errors. (Don't know if they are)

@mattip

mattip commented May 7, 2019

Copy link
Copy Markdown
Member Author

I don't see any types with ',', or that need to be stripped.

It seems I got confused with gufunc signature, which has richer syntax than type signature. The latter contains only type letters and ->. Fixing

Comment thread numpy/core/tests/test_ufunc.py Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What happens to all the recorded warnings?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could get the same effect by just ignoring them :)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

made the ignore explicit in the next line. Without record=True the test passes but all the warnings are printed out

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't be printed out if they are ignored.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, filterwarnings('ignore') is not supported by pytest. @charris what change are you suggesting?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The failing test is one of ours that looks for "ignore" because using that used to mess up the warnings module.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code in this PR follows the pattern in other places in the tests. Maybe we can accept this PR as-is and explore best practices for warnings in a separate issue/PR

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Catch warnings is OK, it just catches all warnings, which is not ideal (and suppress_warnings can be nested and works reasonable then). Should double check, but the doc I put on suppress_warnings indeed suggests that "ignore" filters should be fine in numpy 1.17. I remember there were still some oddities, but I do not think they were relevant for this.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@seberg Sounds like we can disable the test and clean things up after we drop 1.16 support.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@charris do you mean the "no ignore warnings test"? This here should work in any case, maybe not the prettiest, but suppress_warnings is also not perfect.

@charris
charris merged commit 62694bd into numpy:master May 8, 2019
@charris

charris commented May 8, 2019

Copy link
Copy Markdown
Member

Thanks Matti.

@mattip
mattip deleted the float32-exp branch June 8, 2020 06:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

BUG: exp and log cast float16 to float32

3 participants