Average Error: 9.4 → 0.1
Time: 2.9s
Precision: 64
\[\frac{x \cdot \left(\frac{x}{y} + 1\right)}{x + 1}\]
\[\frac{\frac{x}{y} + 1}{\frac{x + 1}{x}}\]
\frac{x \cdot \left(\frac{x}{y} + 1\right)}{x + 1}
\frac{\frac{x}{y} + 1}{\frac{x + 1}{x}}
double f(double x, double y) {
        double r867098 = x;
        double r867099 = y;
        double r867100 = r867098 / r867099;
        double r867101 = 1.0;
        double r867102 = r867100 + r867101;
        double r867103 = r867098 * r867102;
        double r867104 = r867098 + r867101;
        double r867105 = r867103 / r867104;
        return r867105;
}

double f(double x, double y) {
        double r867106 = x;
        double r867107 = y;
        double r867108 = r867106 / r867107;
        double r867109 = 1.0;
        double r867110 = r867108 + r867109;
        double r867111 = r867106 + r867109;
        double r867112 = r867111 / r867106;
        double r867113 = r867110 / r867112;
        return r867113;
}

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.4
Target0.1
Herbie0.1
\[\frac{x}{1} \cdot \frac{\frac{x}{y} + 1}{x + 1}\]

Derivation

  1. Initial program 9.4

    \[\frac{x \cdot \left(\frac{x}{y} + 1\right)}{x + 1}\]
  2. Using strategy rm
  3. Applied clear-num9.5

    \[\leadsto \color{blue}{\frac{1}{\frac{x + 1}{x \cdot \left(\frac{x}{y} + 1\right)}}}\]
  4. Using strategy rm
  5. Applied associate-/r*0.2

    \[\leadsto \frac{1}{\color{blue}{\frac{\frac{x + 1}{x}}{\frac{x}{y} + 1}}}\]
  6. Using strategy rm
  7. Applied *-un-lft-identity0.2

    \[\leadsto \frac{1}{\frac{\frac{x + 1}{x}}{\color{blue}{1 \cdot \left(\frac{x}{y} + 1\right)}}}\]
  8. Applied *-un-lft-identity0.2

    \[\leadsto \frac{1}{\frac{\frac{x + 1}{\color{blue}{1 \cdot x}}}{1 \cdot \left(\frac{x}{y} + 1\right)}}\]
  9. Applied *-un-lft-identity0.2

    \[\leadsto \frac{1}{\frac{\frac{\color{blue}{1 \cdot \left(x + 1\right)}}{1 \cdot x}}{1 \cdot \left(\frac{x}{y} + 1\right)}}\]
  10. Applied times-frac0.2

    \[\leadsto \frac{1}{\frac{\color{blue}{\frac{1}{1} \cdot \frac{x + 1}{x}}}{1 \cdot \left(\frac{x}{y} + 1\right)}}\]
  11. Applied times-frac0.2

    \[\leadsto \frac{1}{\color{blue}{\frac{\frac{1}{1}}{1} \cdot \frac{\frac{x + 1}{x}}{\frac{x}{y} + 1}}}\]
  12. Applied add-sqr-sqrt0.2

    \[\leadsto \frac{\color{blue}{\sqrt{1} \cdot \sqrt{1}}}{\frac{\frac{1}{1}}{1} \cdot \frac{\frac{x + 1}{x}}{\frac{x}{y} + 1}}\]
  13. Applied times-frac0.2

    \[\leadsto \color{blue}{\frac{\sqrt{1}}{\frac{\frac{1}{1}}{1}} \cdot \frac{\sqrt{1}}{\frac{\frac{x + 1}{x}}{\frac{x}{y} + 1}}}\]
  14. Simplified0.2

    \[\leadsto \color{blue}{1} \cdot \frac{\sqrt{1}}{\frac{\frac{x + 1}{x}}{\frac{x}{y} + 1}}\]
  15. Simplified0.1

    \[\leadsto 1 \cdot \color{blue}{\frac{\frac{x}{y} + 1}{\frac{x + 1}{x}}}\]
  16. Final simplification0.1

    \[\leadsto \frac{\frac{x}{y} + 1}{\frac{x + 1}{x}}\]

Reproduce

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

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

  (/ (* x (+ (/ x y) 1)) (+ x 1)))