Skip to content

Fix mlab fallback for 32-bit systems #30273

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

QuLogic
Copy link
Member

@QuLogic QuLogic commented Jul 8, 2025

PR summary

Unfortunately, I applied the change from
#29115 (comment) directly without noticing the typo, or running full tests.

So fix the swapped condition, and add a test (for csd only, which should be enough since everything goes though _spectral_helper.) This test should work on 64-bit systems as well, but I also double-checked on WASM.

PR checklist

@QuLogic QuLogic added this to the v3.11.0 milestone Jul 8, 2025

if n == 1 and noverlap == 0:
return x[np.newaxis]
f'with noverlap < n and n <= x.size ({x.size})')
Copy link
Contributor

@anntzer anntzer Jul 9, 2025

Choose a reason for hiding this comment

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

Given that I had read the original check wrong, this can be further simplified to something like if not 0 <= noverlap < n <= x.size: raise ValueError(f"n ({n}), noverlap ({noverlap}), and x.size ({x.size}) must satisfy 0 <= noverlap < n <= x.size")
Sorry for the very piecemeal review.

Copy link
Member Author

Choose a reason for hiding this comment

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

Hmm, technically, noverlap doesn't need to be non-negative in the non-fallback/64-bit case. Maybe we should move this check up there earlier?

Copy link
Contributor

Choose a reason for hiding this comment

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

Good point that noverlap can be negative here. Probably the semantically meaningful check should be to replace, in _spectral_helper, erroring when noverlap >= NFFT by erroring when not 0 <= noverlap < NFFT.

Unfortunately, I applied the change from
matplotlib#29115 (comment)
directly without noticing the typo, or running full tests.

So fix the swapped condition, and add a test (for `csd` only, which
should be enough since everything goes though `_spectral_helper`.)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants