Average Error: 9.2 → 0.9
Time: 13.1s
Precision: 64
\[\frac{x \cdot \left(\frac{x}{y} + 1\right)}{x + 1}\]
\[\left(1 + \frac{x}{y}\right) \cdot \left(\sqrt[3]{\frac{x}{1 + x}} \cdot \left(\sqrt[3]{\frac{x}{1 + x}} \cdot \sqrt[3]{\frac{x}{1 + x}}\right)\right)\]
\frac{x \cdot \left(\frac{x}{y} + 1\right)}{x + 1}
\left(1 + \frac{x}{y}\right) \cdot \left(\sqrt[3]{\frac{x}{1 + x}} \cdot \left(\sqrt[3]{\frac{x}{1 + x}} \cdot \sqrt[3]{\frac{x}{1 + x}}\right)\right)
double f(double x, double y) {
        double r732342 = x;
        double r732343 = y;
        double r732344 = r732342 / r732343;
        double r732345 = 1.0;
        double r732346 = r732344 + r732345;
        double r732347 = r732342 * r732346;
        double r732348 = r732342 + r732345;
        double r732349 = r732347 / r732348;
        return r732349;
}

double f(double x, double y) {
        double r732350 = 1.0;
        double r732351 = x;
        double r732352 = y;
        double r732353 = r732351 / r732352;
        double r732354 = r732350 + r732353;
        double r732355 = r732350 + r732351;
        double r732356 = r732351 / r732355;
        double r732357 = cbrt(r732356);
        double r732358 = r732357 * r732357;
        double r732359 = r732357 * r732358;
        double r732360 = r732354 * r732359;
        return r732360;
}

Error

Bits error versus x

Bits error versus y

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original9.2
Target0.1
Herbie0.9
\[\frac{x}{1} \cdot \frac{\frac{x}{y} + 1}{x + 1}\]

Derivation

  1. Initial program 9.2

    \[\frac{x \cdot \left(\frac{x}{y} + 1\right)}{x + 1}\]
  2. Simplified0.1

    \[\leadsto \color{blue}{\left(\frac{x}{y} + 1\right) \cdot \frac{x}{1 + x}}\]
  3. Using strategy rm
  4. Applied div-inv0.1

    \[\leadsto \left(\frac{x}{y} + 1\right) \cdot \color{blue}{\left(x \cdot \frac{1}{1 + x}\right)}\]
  5. Simplified0.1

    \[\leadsto \left(\frac{x}{y} + 1\right) \cdot \left(x \cdot \color{blue}{\frac{1}{x + 1}}\right)\]
  6. Using strategy rm
  7. Applied add-cube-cbrt0.9

    \[\leadsto \left(\frac{x}{y} + 1\right) \cdot \color{blue}{\left(\left(\sqrt[3]{x \cdot \frac{1}{x + 1}} \cdot \sqrt[3]{x \cdot \frac{1}{x + 1}}\right) \cdot \sqrt[3]{x \cdot \frac{1}{x + 1}}\right)}\]
  8. Simplified0.9

    \[\leadsto \left(\frac{x}{y} + 1\right) \cdot \left(\color{blue}{\left(\sqrt[3]{\frac{x}{1 + x}} \cdot \sqrt[3]{\frac{x}{1 + x}}\right)} \cdot \sqrt[3]{x \cdot \frac{1}{x + 1}}\right)\]
  9. Simplified0.9

    \[\leadsto \left(\frac{x}{y} + 1\right) \cdot \left(\left(\sqrt[3]{\frac{x}{1 + x}} \cdot \sqrt[3]{\frac{x}{1 + x}}\right) \cdot \color{blue}{\sqrt[3]{\frac{x}{1 + x}}}\right)\]
  10. Final simplification0.9

    \[\leadsto \left(1 + \frac{x}{y}\right) \cdot \left(\sqrt[3]{\frac{x}{1 + x}} \cdot \left(\sqrt[3]{\frac{x}{1 + x}} \cdot \sqrt[3]{\frac{x}{1 + x}}\right)\right)\]

Reproduce

herbie shell --seed 2019195 
(FPCore (x y)
  :name "Codec.Picture.Types:toneMapping from JuicyPixels-3.2.6.1"

  :herbie-target
  (* (/ x 1.0) (/ (+ (/ x y) 1.0) (+ x 1.0)))

  (/ (* x (+ (/ x y) 1.0)) (+ x 1.0)))