public static int fastIntLog10(double d) {
        var result = resultForLog10;
        analyze(d, result);
        var exponent = result.exponent;
        if (exponent < 0 && result.mantissa > 100000000000000000L) {
            ++exponent;
        }
        return exponent;
    }
@Test
    public void decimalExponent() {
        var numbers = new double[] { 1e-200, 1e-5, 1e-4, 1e-3, 1e-2, 1e-1, 1, 1e1, 1e2, 1e3, 1e4, 1e5, 1e200 };
        var result = new DoubleAnalyzer.Result();
        for (var number : numbers) {
            var e = number / 100;
            assertEquals((int) Math.log10(number), DoubleAnalyzer.fastIntLog10(number));
            assertEquals((int) Math.log10(number + e), DoubleAnalyzer.fastIntLog10(number + e));
            assertEquals((int) Math.log10(number - e), DoubleAnalyzer.fastIntLog10(number - e));
        }
    }