Average Error: 0.1 → 0.1
Time: 24.8s
Precision: 64
\[\left(\left(x - \left(y + 0.5\right) \cdot \log y\right) + y\right) - z\]
\[\left(\left(x - \left(y + 0.5\right) \cdot \log y\right) + y\right) - z\]
\left(\left(x - \left(y + 0.5\right) \cdot \log y\right) + y\right) - z
\left(\left(x - \left(y + 0.5\right) \cdot \log y\right) + y\right) - z
double f(double x, double y, double z) {
        double r279030 = x;
        double r279031 = y;
        double r279032 = 0.5;
        double r279033 = r279031 + r279032;
        double r279034 = log(r279031);
        double r279035 = r279033 * r279034;
        double r279036 = r279030 - r279035;
        double r279037 = r279036 + r279031;
        double r279038 = z;
        double r279039 = r279037 - r279038;
        return r279039;
}

double f(double x, double y, double z) {
        double r279040 = x;
        double r279041 = y;
        double r279042 = 0.5;
        double r279043 = r279041 + r279042;
        double r279044 = log(r279041);
        double r279045 = r279043 * r279044;
        double r279046 = r279040 - r279045;
        double r279047 = r279046 + r279041;
        double r279048 = z;
        double r279049 = r279047 - r279048;
        return r279049;
}

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

Target

Original0.1
Target0.1
Herbie0.1
\[\left(\left(y + x\right) - z\right) - \left(y + 0.5\right) \cdot \log y\]

Derivation

  1. Initial program 0.1

    \[\left(\left(x - \left(y + 0.5\right) \cdot \log y\right) + y\right) - z\]
  2. Final simplification0.1

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

Reproduce

herbie shell --seed 2019199 
(FPCore (x y z)
  :name "Numeric.SpecFunctions:stirlingError from math-functions-0.1.5.2"

  :herbie-target
  (- (- (+ y x) z) (* (+ y 0.5) (log y)))

  (- (+ (- x (* (+ y 0.5) (log y))) y) z))