Average Error: 0.0 → 0.0
Time: 8.7s
Precision: 64
\[\left(x + y\right) \cdot \left(z + 1.0\right)\]
\[\left(1.0 \cdot \left(x + y\right) + y \cdot z\right) + z \cdot x\]
\left(x + y\right) \cdot \left(z + 1.0\right)
\left(1.0 \cdot \left(x + y\right) + y \cdot z\right) + z \cdot x
double f(double x, double y, double z) {
        double r2219799 = x;
        double r2219800 = y;
        double r2219801 = r2219799 + r2219800;
        double r2219802 = z;
        double r2219803 = 1.0;
        double r2219804 = r2219802 + r2219803;
        double r2219805 = r2219801 * r2219804;
        return r2219805;
}

double f(double x, double y, double z) {
        double r2219806 = 1.0;
        double r2219807 = x;
        double r2219808 = y;
        double r2219809 = r2219807 + r2219808;
        double r2219810 = r2219806 * r2219809;
        double r2219811 = z;
        double r2219812 = r2219808 * r2219811;
        double r2219813 = r2219810 + r2219812;
        double r2219814 = r2219811 * r2219807;
        double r2219815 = r2219813 + r2219814;
        return r2219815;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\left(x + y\right) \cdot \left(z + 1.0\right)\]
  2. Using strategy rm
  3. Applied distribute-rgt-in0.0

    \[\leadsto \color{blue}{z \cdot \left(x + y\right) + 1.0 \cdot \left(x + y\right)}\]
  4. Using strategy rm
  5. Applied distribute-lft-in0.0

    \[\leadsto \color{blue}{\left(z \cdot x + z \cdot y\right)} + 1.0 \cdot \left(x + y\right)\]
  6. Applied associate-+l+0.0

    \[\leadsto \color{blue}{z \cdot x + \left(z \cdot y + 1.0 \cdot \left(x + y\right)\right)}\]
  7. Final simplification0.0

    \[\leadsto \left(1.0 \cdot \left(x + y\right) + y \cdot z\right) + z \cdot x\]

Reproduce

herbie shell --seed 2019158 
(FPCore (x y z)
  :name "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, G"
  (* (+ x y) (+ z 1.0)))