Average Error: 0 → 0
Time: 5.5s
Precision: 64
\[2 \cdot \left(\left(1 \cdot \frac{1}{9} + \frac{1}{9} \cdot \frac{1}{9}\right) + \frac{1}{9} \cdot 1\right)\]
\[2 \cdot \left(\left(1 \cdot \frac{1}{9} + \frac{1}{9} \cdot \frac{1}{9}\right) + \frac{1}{9} \cdot 1\right)\]
2 \cdot \left(\left(1 \cdot \frac{1}{9} + \frac{1}{9} \cdot \frac{1}{9}\right) + \frac{1}{9} \cdot 1\right)
2 \cdot \left(\left(1 \cdot \frac{1}{9} + \frac{1}{9} \cdot \frac{1}{9}\right) + \frac{1}{9} \cdot 1\right)
double f() {
        double r9433 = 2.0;
        double r9434 = 1.0;
        double r9435 = 9.0;
        double r9436 = r9434 / r9435;
        double r9437 = r9434 * r9436;
        double r9438 = r9436 * r9436;
        double r9439 = r9437 + r9438;
        double r9440 = r9436 * r9434;
        double r9441 = r9439 + r9440;
        double r9442 = r9433 * r9441;
        return r9442;
}

double f() {
        double r9443 = 2.0;
        double r9444 = 1.0;
        double r9445 = 9.0;
        double r9446 = r9444 / r9445;
        double r9447 = r9444 * r9446;
        double r9448 = r9446 * r9446;
        double r9449 = r9447 + r9448;
        double r9450 = r9446 * r9444;
        double r9451 = r9449 + r9450;
        double r9452 = r9443 * r9451;
        return r9452;
}

Error

Try it out

Your Program's Arguments

    Results

    Enter valid numbers for all inputs

    Target

    Original0
    Target0
    Herbie0
    \[\left(\left(\frac{1}{9} \cdot 1\right) \cdot 2 + 2 \cdot \left(\frac{1}{9} \cdot \frac{1}{9}\right)\right) + 2 \cdot \left(1 \cdot \frac{1}{9}\right)\]

    Derivation

    1. Initial program 0

      \[2 \cdot \left(\left(1 \cdot \frac{1}{9} + \frac{1}{9} \cdot \frac{1}{9}\right) + \frac{1}{9} \cdot 1\right)\]
    2. Final simplification0

      \[\leadsto 2 \cdot \left(\left(1 \cdot \frac{1}{9} + \frac{1}{9} \cdot \frac{1}{9}\right) + \frac{1}{9} \cdot 1\right)\]

    Reproduce

    herbie shell --seed 2019315 +o rules:numerics
    (FPCore ()
      :name "Rectangular parallelepiped of dimension a×b×c"
      :precision binary64
    
      :herbie-target
      (+ (+ (* (* (/ 1 9) 1) 2) (* 2 (* (/ 1 9) (/ 1 9)))) (* 2 (* 1 (/ 1 9))))
    
      (* 2 (+ (+ (* 1 (/ 1 9)) (* (/ 1 9) (/ 1 9))) (* (/ 1 9) 1))))