add precomputed mathematical constants and specialize the second division residual
.NET Test / .NET tests (push) Successful in 2m23s
.NET Test / .NET tests (push) Successful in 2m23s
This commit is contained in:
@@ -58,12 +58,12 @@ public class DoubleDoubleFormattingTests
|
||||
public void FormattingDoesNotRouteThroughDecimalOrRestrictExponentRange()
|
||||
{
|
||||
// Review-1 §6 verified the former decimal-based formatter threw for 1e100,
|
||||
// printed "0" for 1e-100, threw for NaN/infinity, and emitted for PI digits
|
||||
// printed "0" for 1e-100, threw for NaN/infinity, and emitted for pi digits
|
||||
// already wrong at binary64 precision. Expected digits are exact references:
|
||||
// the PI pair rounded to 32 significant digits, ties to even
|
||||
// the Pi pair rounded to 32 significant digits, ties to even
|
||||
// (Python Fraction/Decimal at precision 120), and the exact binary64 values of
|
||||
// the powers of ten.
|
||||
DoubleDouble.PI.ToString("G32", CultureInfo.InvariantCulture).ShouldBe("3.1415926535897932384626433832795");
|
||||
DoubleDouble.Pi.ToString("G32", CultureInfo.InvariantCulture).ShouldBe("3.1415926535897932384626433832795");
|
||||
new DoubleDouble(1e100).ToString("G", CultureInfo.InvariantCulture).ShouldBe("1.0000000000000000159028911097599E+100");
|
||||
new DoubleDouble(1e-100).ToString("G", CultureInfo.InvariantCulture).ShouldBe("1.0000000000000000199918998026029E-100");
|
||||
// The binary64 values are exactly representable as sums with a zero residual,
|
||||
|
||||
Reference in New Issue
Block a user