Rust 1.98 má nové algebraické metody podobné -ffast-math
Včera vyšel programovací jazyk Rust ve verzi 1.98. Hlavní novinkou jsou algebraické metody pro sčítání, odčítání, násobení a dělení čísel v pohyblivé řádové čárce f64 a f32. Jde o algebraic_add, algebraic_sub, algebraic_mul,algebraic_div a algebraic_rem. Tyto nové metody nedodržují IEEE 754, ale umožňují lepší optimalizace a rychlejší běh programu. To zhruba to odpovídá použití parametru -ffast-math v jiných jazycích.
Například sčítání a+b+c není v IEEE 754 kvůli zaokrouhlování asociativní, takže nejde provést například jako a+(b+c). Kdežto algebraic_add může pořadí měnit a tím výpočet lépe optimalizovat. Výsledek však nemusí být vždy totožný. Tato optimalizace byla do Rustu zařazena po zjištění, že C++ je 8× rychlejší než Rust ve skalárním násobení vektorů.
(zdroj: phoronix)