Average Error: 5.0 → 0.1
Time: 8.2s
Precision: 64
\[\frac{x}{y \cdot y} - 3.0\]
\[\frac{1}{\frac{y}{\frac{x}{y}}} - 3.0\]
\frac{x}{y \cdot y} - 3.0
\frac{1}{\frac{y}{\frac{x}{y}}} - 3.0
double f(double x, double y) {
        double r4357604 = x;
        double r4357605 = y;
        double r4357606 = r4357605 * r4357605;
        double r4357607 = r4357604 / r4357606;
        double r4357608 = 3.0;
        double r4357609 = r4357607 - r4357608;
        return r4357609;
}

double f(double x, double y) {
        double r4357610 = 1.0;
        double r4357611 = y;
        double r4357612 = x;
        double r4357613 = r4357612 / r4357611;
        double r4357614 = r4357611 / r4357613;
        double r4357615 = r4357610 / r4357614;
        double r4357616 = 3.0;
        double r4357617 = r4357615 - r4357616;
        return r4357617;
}

Error

Bits error versus x

Bits error versus y

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original5.0
Target0.1
Herbie0.1
\[\frac{\frac{x}{y}}{y} - 3.0\]

Derivation

  1. Initial program 5.0

    \[\frac{x}{y \cdot y} - 3.0\]
  2. Using strategy rm
  3. Applied associate-/r*0.1

    \[\leadsto \color{blue}{\frac{\frac{x}{y}}{y}} - 3.0\]
  4. Using strategy rm
  5. Applied clear-num0.1

    \[\leadsto \color{blue}{\frac{1}{\frac{y}{\frac{x}{y}}}} - 3.0\]
  6. Final simplification0.1

    \[\leadsto \frac{1}{\frac{y}{\frac{x}{y}}} - 3.0\]

Reproduce

herbie shell --seed 2019156 +o rules:numerics
(FPCore (x y)
  :name "Statistics.Sample:$skurtosis from math-functions-0.1.5.2"

  :herbie-target
  (- (/ (/ x y) y) 3.0)

  (- (/ x (* y y)) 3.0))