-
Notifications
You must be signed in to change notification settings - Fork 13.4k
Add function aliases for float operators, and clean up other numeric functions #1082
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
Conversation
Integrated. Thanks! |
/* Predicate: gt */ | ||
pure fn gt(x: float, y: float) -> bool { ret x > y; } | ||
|
||
/* Predicate: positive */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For floats, 0.0 should be positive and -0.0 negative, no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That would seem to be the case. Thanks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mbrubeck, do you want to try to implement that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mbrubeck/rust@5fa7e614c88 changes float::positive
and float::negative
to be true for 0.0 and -0.0, respectively. I have no strong opinion about whether this is an improvement or not.
Note that this makes float::positive
return the same thing as float::nonnegative
, and float::negative
return the same as float::nonpositive
. Is it worth keeping the redundant functions around for consistency with std::int
, or is it just confusing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You may want to have nonnegative
and nonpositive
also be false for nan instead of being strictly !positive
or !negative
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tried to fix NaN behavior in mbrubeck/rust@af645e82c1, but I ran into Issue #1083.
Here's a patch to add functions to
std::float
that match the ones instd::int
andstd::uint
.Also included are some patches to clean up signatures and documentation for related functions, and remove a couple of redundant functions.