Sorry for being late to the party,

On 2014/01/12, at 20:06, Carter Schonwald <[email protected]> wrote:

> That actually raises a good point: for finite precision real number types 
> like f64 /f32 etc, what are the desired precision/numerical stability 
> guarantees of routines included I the std lib?  For operations on IEEE 
> floating point types, how do these guarantees carry  these composite 
> operations in the presence of rounding modes?  

The normal parts of the standard library should strive to be correctly rounded 
imho, for something like a hypothetical FastMath module, anything goes.

That is the IEEE 754-2008 recommendation, on the other hand, certain numerical 
languages like OpenCL have other (lower) guarantees that could be followed as 
well, but that would mean that Rust would give different results on different 
hardware, which might not be acceptable for certain applications (multiplayer 
games?)

> These are nuanced questions.  And maybe there should different types / traits 
> depending on the assumptions needed. (A fun question is: "when is 
> multiplication commutative and associative?", because it's not for matrices, 
> float

I think we’ll have to work with the assumption that the * is never commutative 
or associative. Unfortunately.
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to