Skip to content

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

Closed
wants to merge 5 commits into from

Conversation

mbrubeck
Copy link
Contributor

Here's a patch to add functions to std::float that match the ones in std::int and std::uint.

Also included are some patches to clean up signatures and documentation for related functions, and remove a couple of redundant functions.

@brson
Copy link
Contributor

brson commented Oct 27, 2011

Integrated. Thanks!

@brson brson closed this Oct 27, 2011
/* Predicate: gt */
pure fn gt(x: float, y: float) -> bool { ret x > y; }

/* Predicate: positive */

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?

Copy link
Contributor

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.

Copy link
Contributor

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?

Copy link
Contributor Author

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?

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.

Copy link
Contributor Author

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.

@mbrubeck
Copy link
Contributor Author

Fixed +0, -0, and NaN behavior in 45d7777 and 7e064de.

bors pushed a commit to rust-lang-ci/rust that referenced this pull request Oct 26, 2020
coastalwhite pushed a commit to coastalwhite/rust that referenced this pull request Aug 5, 2023
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.

3 participants