Skip to content
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

feature request: make prevfloat and nextfloat accept the optional integer argument #39

Closed
nsajko opened this issue Dec 24, 2022 · 1 comment

Comments

@nsajko
Copy link
Contributor

nsajko commented Dec 24, 2022

See the second argument here, note that it can also be negative or zero: https://docs.julialang.org/en/v1/base/numbers/#Base.nextfloat

A stopgap implementation is obvious: just call nextfloat/prevfloat repeatedly.

@dzhang314
Copy link
Owner

Hi @nsajko, thanks for your interest in MultiFloats.jl! I appreciate this suggestion, but I am intentionally not going to support the 2-argument form of prevfloat/nextfloat because I don't want to give users the impression that I have an efficient implementation.

It is highly nontrivial to implement 2-argument prevfloat/nextfloat on MultiFloat types because the interaction between different limbs causes all sorts of edge cases that even I don't understand. If you understand how to do this in a way that is more efficient than calling 1-argument prevfloat/nextfloat repeatedly, I would love to hear your suggested algorithm and proof of correctness. Otherwise, I consider it a feature, not a bug, that a user has to call 1-argument prevfloat/nextfloat repeatedly, so they are consciously aware that a loop is happening, and this is not a constant-time operation, like it is for IEEEFloat types.

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

No branches or pull requests

2 participants