Average Error: 0.0 → 0.0
Time: 7.2s
Precision: 64
\[\frac{1 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}{2 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}\]
\[\frac{\sqrt[3]{{\left(\mathsf{fma}\left(\frac{2 \cdot t}{1 + t}, \frac{2 \cdot t}{1 + t}, 1\right)\right)}^{3}}}{\mathsf{fma}\left(\frac{2 \cdot t}{1 + t}, \frac{2 \cdot t}{1 + t}, 2\right)}\]
\frac{1 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}{2 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}
\frac{\sqrt[3]{{\left(\mathsf{fma}\left(\frac{2 \cdot t}{1 + t}, \frac{2 \cdot t}{1 + t}, 1\right)\right)}^{3}}}{\mathsf{fma}\left(\frac{2 \cdot t}{1 + t}, \frac{2 \cdot t}{1 + t}, 2\right)}
double f(double t) {
        double r94640 = 1.0;
        double r94641 = 2.0;
        double r94642 = t;
        double r94643 = r94641 * r94642;
        double r94644 = r94640 + r94642;
        double r94645 = r94643 / r94644;
        double r94646 = r94645 * r94645;
        double r94647 = r94640 + r94646;
        double r94648 = r94641 + r94646;
        double r94649 = r94647 / r94648;
        return r94649;
}

double f(double t) {
        double r94650 = 2.0;
        double r94651 = t;
        double r94652 = r94650 * r94651;
        double r94653 = 1.0;
        double r94654 = r94653 + r94651;
        double r94655 = r94652 / r94654;
        double r94656 = fma(r94655, r94655, r94653);
        double r94657 = 3.0;
        double r94658 = pow(r94656, r94657);
        double r94659 = cbrt(r94658);
        double r94660 = fma(r94655, r94655, r94650);
        double r94661 = r94659 / r94660;
        return r94661;
}

Error

Bits error versus t

Derivation

  1. Initial program 0.0

    \[\frac{1 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}{2 + \frac{2 \cdot t}{1 + t} \cdot \frac{2 \cdot t}{1 + t}}\]
  2. Simplified0.0

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\frac{2 \cdot t}{1 + t}, \frac{2 \cdot t}{1 + t}, 1\right)}{\mathsf{fma}\left(\frac{2 \cdot t}{1 + t}, \frac{2 \cdot t}{1 + t}, 2\right)}}\]
  3. Using strategy rm
  4. Applied add-cbrt-cube0.0

    \[\leadsto \frac{\color{blue}{\sqrt[3]{\left(\mathsf{fma}\left(\frac{2 \cdot t}{1 + t}, \frac{2 \cdot t}{1 + t}, 1\right) \cdot \mathsf{fma}\left(\frac{2 \cdot t}{1 + t}, \frac{2 \cdot t}{1 + t}, 1\right)\right) \cdot \mathsf{fma}\left(\frac{2 \cdot t}{1 + t}, \frac{2 \cdot t}{1 + t}, 1\right)}}}{\mathsf{fma}\left(\frac{2 \cdot t}{1 + t}, \frac{2 \cdot t}{1 + t}, 2\right)}\]
  5. Simplified0.0

    \[\leadsto \frac{\sqrt[3]{\color{blue}{{\left(\mathsf{fma}\left(\frac{2 \cdot t}{1 + t}, \frac{2 \cdot t}{1 + t}, 1\right)\right)}^{3}}}}{\mathsf{fma}\left(\frac{2 \cdot t}{1 + t}, \frac{2 \cdot t}{1 + t}, 2\right)}\]
  6. Final simplification0.0

    \[\leadsto \frac{\sqrt[3]{{\left(\mathsf{fma}\left(\frac{2 \cdot t}{1 + t}, \frac{2 \cdot t}{1 + t}, 1\right)\right)}^{3}}}{\mathsf{fma}\left(\frac{2 \cdot t}{1 + t}, \frac{2 \cdot t}{1 + t}, 2\right)}\]

Reproduce

herbie shell --seed 2020047 +o rules:numerics
(FPCore (t)
  :name "Kahan p13 Example 1"
  :precision binary64
  (/ (+ 1 (* (/ (* 2 t) (+ 1 t)) (/ (* 2 t) (+ 1 t)))) (+ 2 (* (/ (* 2 t) (+ 1 t)) (/ (* 2 t) (+ 1 t))))))