Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR addresses #4
The error arises because of a check which in place to make sure that all the x_i values are real. This is done by the function
check_xi_are_real()
on line 261 ofpoibin.py
. Due to instability in FFT, the imaginary parts don't turn out to be exactly 0. To ensure that these imaginary parts are indeed small, the following check has been placed in code:xi_values.imag <= np.finfo(float).eps
On my machine, the value of
eps
turns out to be 2.220446049250313e-16It turns out, this value is not enough to account for the instability in FFT. Increasing this slightly up to 1e-15 solves this problem.
I feel that making this change is a practical solution to the problem and will still not hurt accuracy.