c9d4ad07c4
It is simply defined as `f64` across every platform right now. A use case hasn't been presented for a `float` type defined as the highest precision floating point type implemented in hardware on the platform. Performance-wise, using the smallest precision correct for the use case greatly saves on cache space and allows for fitting more numbers into SSE/AVX registers. If there was a use case, this could be implemented as simply a type alias or a struct thanks to `#[cfg(...)]`. Closes #6592 The mailing list thread, for reference: https://mail.mozilla.org/pipermail/rust-dev/2013-July/004632.html
20 lines
322 B
Rust
20 lines
322 B
Rust
pub trait Number: NumConv {
|
|
fn from<T:Number>(n: T) -> Self;
|
|
}
|
|
|
|
impl Number for f64 {
|
|
fn from<T:Number>(n: T) -> f64 { n.to_float() }
|
|
}
|
|
|
|
pub trait NumConv {
|
|
fn to_float(&self) -> f64;
|
|
}
|
|
|
|
impl NumConv for f64 {
|
|
fn to_float(&self) -> f64 { *self }
|
|
}
|
|
|
|
pub fn main() {
|
|
let _: f64 = Number::from(0.0f64);
|
|
}
|