Average Error: 0.2 → 0.1
Time: 4.9s
Precision: 64
\[z - \frac{x \cdot y}{100}\]
\[z - x \cdot \frac{y}{100}\]
z - \frac{x \cdot y}{100}
z - x \cdot \frac{y}{100}
double f(double z, double x, double y) {
        double r2285457 = z;
        double r2285458 = x;
        double r2285459 = y;
        double r2285460 = r2285458 * r2285459;
        double r2285461 = 100.0;
        double r2285462 = r2285460 / r2285461;
        double r2285463 = r2285457 - r2285462;
        return r2285463;
}

double f(double z, double x, double y) {
        double r2285464 = z;
        double r2285465 = x;
        double r2285466 = y;
        double r2285467 = 100.0;
        double r2285468 = r2285466 / r2285467;
        double r2285469 = r2285465 * r2285468;
        double r2285470 = r2285464 - r2285469;
        return r2285470;
}

Error

Bits error versus z

Bits error versus x

Bits error versus y

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.2

    \[z - \frac{x \cdot y}{100}\]
  2. Using strategy rm
  3. Applied *-un-lft-identity0.2

    \[\leadsto z - \frac{x \cdot y}{\color{blue}{1 \cdot 100}}\]
  4. Applied times-frac0.1

    \[\leadsto z - \color{blue}{\frac{x}{1} \cdot \frac{y}{100}}\]
  5. Simplified0.1

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

    \[\leadsto z - x \cdot \frac{y}{100}\]

Reproduce

herbie shell --seed 1 
(FPCore (z x y)
  :name "z - (x* y) / 100"
  :precision binary64
  (- z (/ (* x y) 100)))