Average Error: 0.0 → 0.0
Time: 2.5s
Precision: 64
\[x + y \cdot \left(z - x\right)\]
\[x + \left(z - x\right) \cdot y\]
x + y \cdot \left(z - x\right)
x + \left(z - x\right) \cdot y
double f(double x, double y, double z) {
        double r9192 = x;
        double r9193 = y;
        double r9194 = z;
        double r9195 = r9194 - r9192;
        double r9196 = r9193 * r9195;
        double r9197 = r9192 + r9196;
        return r9197;
}

double f(double x, double y, double z) {
        double r9198 = x;
        double r9199 = z;
        double r9200 = r9199 - r9198;
        double r9201 = y;
        double r9202 = r9200 * r9201;
        double r9203 = r9198 + r9202;
        return r9203;
}

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

    \[x + y \cdot \left(z - x\right)\]
  2. Using strategy rm
  3. Applied *-commutative0.0

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

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

Reproduce

herbie shell --seed 2020062 
(FPCore (x y z)
  :name "SynthBasics:oscSampleBasedAux from YampaSynth-0.2"
  :precision binary64
  (+ x (* y (- z x))))