Average Error: 0.0 → 0.0
Time: 4.1s
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 r41665 = 1.0;
        double r41666 = 2.0;
        double r41667 = t;
        double r41668 = r41666 * r41667;
        double r41669 = r41665 + r41667;
        double r41670 = r41668 / r41669;
        double r41671 = r41670 * r41670;
        double r41672 = r41665 + r41671;
        double r41673 = r41666 + r41671;
        double r41674 = r41672 / r41673;
        return r41674;
}

double f(double t) {
        double r41675 = 2.0;
        double r41676 = t;
        double r41677 = r41675 * r41676;
        double r41678 = 1.0;
        double r41679 = r41678 + r41676;
        double r41680 = r41677 / r41679;
        double r41681 = fma(r41680, r41680, r41678);
        double r41682 = 3.0;
        double r41683 = pow(r41681, r41682);
        double r41684 = cbrt(r41683);
        double r41685 = fma(r41680, r41680, r41675);
        double r41686 = r41684 / r41685;
        return r41686;
}

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))))))