-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Document which methods on f64
are precise
#118217
Conversation
r? @m-ou-se (rustbot has picked a reviewer for you, use r? to override) |
It has surprised me in the past that floating-point calculations executed on macOS can be different than the ones on Linux or Windows. This is why I wanted to clearly document which method's exact results can be relied upon and which cannot. If this is desired, I'll do the same for |
@workingjubilee This seems like something you might have an opinion on? |
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 don't think "precise" is the correct word to use here because it has a very specific meaning in floating-point arithmetic: it means that the float-encoded result is exactly identical to the mathematical result, which may sometimes not be true due to limited float precision.
A better word might be "consistent" to indicate that the result will be consistent across platforms.
The word precise is only used on the methods that produce results identical to the mathematical result: |
6ea90e3
to
b5307f5
Compare
@rustbot ready |
@bors r+ rollup |
Same as rust-lang#118217 but for `f32`.
Document which methods on `f32` are precise Same as rust-lang#118217 but for `f32`.
…llaumeGomez Rollup of 10 pull requests Successful merges: - rust-lang#118217 (Document which methods on `f64` are precise) - rust-lang#119748 (Increase visibility of `join_path` and `split_paths`) - rust-lang#121412 (platform docs: clarify hexagon-unknown-none-elf example, add hexagon-unknown-linux-musl) - rust-lang#121654 (Fix `async Fn` confirmation for `FnDef`/`FnPtr`/`Closure` types) - rust-lang#121700 (CFI: Don't compress user-defined builtin types) - rust-lang#121765 (add platform-specific function to get the error number for HermitOS) - rust-lang#121781 (bootstrap/format: send larger batches to rustfmt) - rust-lang#121788 (bootstrap: fix clap deprecated warnings) - rust-lang#121792 (Improve renaming suggestion when item starts with underscore) - rust-lang#121793 (Document which methods on `f32` are precise) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#121793 - tbu-:pr_floating_point_32, r=Amanieu Document which methods on `f32` are precise Same as rust-lang#118217 but for `f32`.
Rollup merge of rust-lang#118217 - tbu-:pr_floating_point, r=Amanieu Document which methods on `f64` are precise
update host-float comments Turns out most of these do not have guaranteed precision anyway so it's fine to use host floats (see rust-lang/rust#121793 and rust-lang/rust#118217). The exception are sqrt and mul_add, tracked at #3534 and #2995.
variable-precision float operations can differ depending on optimization levels Follow-up to rust-lang#121793 and rust-lang#118217 that accounts for optimizations changing the precision of these functions. Fixes rust-lang#109118 Fixes rust-lang#71355
variable-precision float operations can differ depending on optimization levels Follow-up to rust-lang#121793 and rust-lang#118217 that accounts for optimizations changing the precision of these functions. Fixes rust-lang#109118 Fixes rust-lang#71355
variable-precision float operations can differ depending on optimization levels Follow-up to rust-lang#121793 and rust-lang#118217 that accounts for optimizations changing the precision of these functions. Fixes rust-lang#109118 Fixes rust-lang#71355
variable-precision float operations can differ depending on optimization levels Follow-up to rust-lang#121793 and rust-lang#118217 that accounts for optimizations changing the precision of these functions. Fixes rust-lang#109118 Fixes rust-lang#71355
Rollup merge of rust-lang#124609 - RalfJung:float-precision, r=cuviper variable-precision float operations can differ depending on optimization levels Follow-up to rust-lang#121793 and rust-lang#118217 that accounts for optimizations changing the precision of these functions. Fixes rust-lang#109118 Fixes rust-lang#71355
update host-float comments Turns out most of these do not have guaranteed precision anyway so it's fine to use host floats (see rust-lang#121793 and rust-lang#118217). The exception are sqrt and mul_add, tracked at rust-lang/miri#3534 and rust-lang/miri#2995.
No description provided.