Average Error: 0.0 → 0.0
Time: 7.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{1 + \frac{t \cdot 2}{1 + t} \cdot \frac{t \cdot 2}{1 + t}}{2 + \frac{t \cdot 2}{1 + t} \cdot \frac{t \cdot 2}{1 + t}}\]
\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{1 + \frac{t \cdot 2}{1 + t} \cdot \frac{t \cdot 2}{1 + t}}{2 + \frac{t \cdot 2}{1 + t} \cdot \frac{t \cdot 2}{1 + t}}
double f(double t) {
        double r1864722 = 1.0;
        double r1864723 = 2.0;
        double r1864724 = t;
        double r1864725 = r1864723 * r1864724;
        double r1864726 = r1864722 + r1864724;
        double r1864727 = r1864725 / r1864726;
        double r1864728 = r1864727 * r1864727;
        double r1864729 = r1864722 + r1864728;
        double r1864730 = r1864723 + r1864728;
        double r1864731 = r1864729 / r1864730;
        return r1864731;
}

double f(double t) {
        double r1864732 = 1.0;
        double r1864733 = t;
        double r1864734 = 2.0;
        double r1864735 = r1864733 * r1864734;
        double r1864736 = r1864732 + r1864733;
        double r1864737 = r1864735 / r1864736;
        double r1864738 = r1864737 * r1864737;
        double r1864739 = r1864732 + r1864738;
        double r1864740 = r1864734 + r1864738;
        double r1864741 = r1864739 / r1864740;
        return r1864741;
}

Error

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

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. Final simplification0.0

    \[\leadsto \frac{1 + \frac{t \cdot 2}{1 + t} \cdot \frac{t \cdot 2}{1 + t}}{2 + \frac{t \cdot 2}{1 + t} \cdot \frac{t \cdot 2}{1 + t}}\]

Reproduce

herbie shell --seed 2019172 +o rules:numerics
(FPCore (t)
  :name "Kahan p13 Example 1"
  (/ (+ 1.0 (* (/ (* 2.0 t) (+ 1.0 t)) (/ (* 2.0 t) (+ 1.0 t)))) (+ 2.0 (* (/ (* 2.0 t) (+ 1.0 t)) (/ (* 2.0 t) (+ 1.0 t))))))