13 unstable releases (6 breaking)
0.7.0  Apr 6, 2023 

0.6.1  Nov 17, 2022 
0.6.0  Sep 30, 2022 
0.5.0  Apr 21, 2022 
0.1.2 

#381 in Algorithms
697 downloads per month
Used in 3 crates
(2 directly)
130KB
3.5K
SLoC
twofloat
A doubledouble arithmetic library for Rust.
This library provides an implementation of doubledouble arithmetic for the
Rust language. Note that this is not the same as the IEEE quadrupleprecision
floatingpoint format. Instead, higher precision is obtained by representing
the value as the sum of two nonoverlapping f64
values.
Operator traits are implemented both for reference and value types where appropriate. The code indicates the source of the algorithms used.
Mathematical constants are available in the twofloat::consts
module, which
provides the same set of constants as std::f64::consts
.
Please note that the implementation of the mathematical functions (exp
,
powf
, etc.) is very preliminary. In particular, they are calculated using
operations at the same precision as the result, so they will not return values
which are correct to the full precision of the TwoFloat
type. This may be
addressed in future releases.
Optional features
math_funcs
 include mathematical functions (enabled by default)serde
 enable serialization/deserialization with Serde.std
 use std mathematical functions instead of libm.
Known issues
 The MinGW
fma
implementation appears to give incorrect results in some cases, so the libm implementation is always used on this platform.
References

Mioara Joldeș, JeanMichel Muller, Valentina Popescu. Tight and rigourous error bounds for basic building blocks of doubleword arithmetic. ACM Transactions on Mathematical Software, Association for Computing Machinery, 2017, 44 (2), pp. 127. 10.1145/3121432. hal01351529v3

Alan H. Karp, Peter Markstein. High Precision Division and Square Root. ACM Transactions on Mathematical Software, Association for Computing Machinery, 1997, 23 (4), pp. 561589. 10.1145/279232.279237.

S. Chevillard, M. Joldeș and C. Lauter. Sollya: an environment for the development of numerical codes. Mathematical Software  ICMS 2010, pp. 28–31.
Dependencies
~2MB
~45K SLoC