Average Error: 14.7 → 0.0
Time: 10.2s
Precision: 64
\[\frac{x}{x \cdot x + 1}\]
\[\begin{array}{l} \mathbf{if}\;x \le -6289590436010291770888814592:\\ \;\;\;\;\frac{1}{x} + \left(\frac{1}{{x}^{5}} - \frac{1}{\left(x \cdot x\right) \cdot x}\right)\\ \mathbf{elif}\;x \le 446.3237971224295392858039122074842453003:\\ \;\;\;\;\frac{\frac{1}{\sqrt{\sqrt{1 + x \cdot x}}} \cdot \frac{x}{\sqrt{\sqrt{1 + x \cdot x}}}}{\sqrt{1 + x \cdot x}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{x} + \left(\frac{1}{{x}^{5}} - \frac{1}{\left(x \cdot x\right) \cdot x}\right)\\ \end{array}\]
\frac{x}{x \cdot x + 1}
\begin{array}{l}
\mathbf{if}\;x \le -6289590436010291770888814592:\\
\;\;\;\;\frac{1}{x} + \left(\frac{1}{{x}^{5}} - \frac{1}{\left(x \cdot x\right) \cdot x}\right)\\

\mathbf{elif}\;x \le 446.3237971224295392858039122074842453003:\\
\;\;\;\;\frac{\frac{1}{\sqrt{\sqrt{1 + x \cdot x}}} \cdot \frac{x}{\sqrt{\sqrt{1 + x \cdot x}}}}{\sqrt{1 + x \cdot x}}\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{x} + \left(\frac{1}{{x}^{5}} - \frac{1}{\left(x \cdot x\right) \cdot x}\right)\\

\end{array}
double f(double x) {
        double r3355596 = x;
        double r3355597 = r3355596 * r3355596;
        double r3355598 = 1.0;
        double r3355599 = r3355597 + r3355598;
        double r3355600 = r3355596 / r3355599;
        return r3355600;
}

double f(double x) {
        double r3355601 = x;
        double r3355602 = -6.289590436010292e+27;
        bool r3355603 = r3355601 <= r3355602;
        double r3355604 = 1.0;
        double r3355605 = r3355604 / r3355601;
        double r3355606 = 1.0;
        double r3355607 = 5.0;
        double r3355608 = pow(r3355601, r3355607);
        double r3355609 = r3355606 / r3355608;
        double r3355610 = r3355601 * r3355601;
        double r3355611 = r3355610 * r3355601;
        double r3355612 = r3355606 / r3355611;
        double r3355613 = r3355609 - r3355612;
        double r3355614 = r3355605 + r3355613;
        double r3355615 = 446.32379712242954;
        bool r3355616 = r3355601 <= r3355615;
        double r3355617 = r3355606 + r3355610;
        double r3355618 = sqrt(r3355617);
        double r3355619 = sqrt(r3355618);
        double r3355620 = r3355604 / r3355619;
        double r3355621 = r3355601 / r3355619;
        double r3355622 = r3355620 * r3355621;
        double r3355623 = r3355622 / r3355618;
        double r3355624 = r3355616 ? r3355623 : r3355614;
        double r3355625 = r3355603 ? r3355614 : r3355624;
        return r3355625;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original14.7
Target0.1
Herbie0.0
\[\frac{1}{x + \frac{1}{x}}\]

Derivation

  1. Split input into 2 regimes
  2. if x < -6.289590436010292e+27 or 446.32379712242954 < x

    1. Initial program 30.9

      \[\frac{x}{x \cdot x + 1}\]
    2. Taylor expanded around inf 0.0

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

      \[\leadsto \color{blue}{\left(\frac{1}{{x}^{5}} - \frac{1}{\left(x \cdot x\right) \cdot x}\right) + \frac{1}{x}}\]

    if -6.289590436010292e+27 < x < 446.32379712242954

    1. Initial program 0.0

      \[\frac{x}{x \cdot x + 1}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt0.0

      \[\leadsto \frac{x}{\color{blue}{\sqrt{x \cdot x + 1} \cdot \sqrt{x \cdot x + 1}}}\]
    4. Applied associate-/r*0.0

      \[\leadsto \color{blue}{\frac{\frac{x}{\sqrt{x \cdot x + 1}}}{\sqrt{x \cdot x + 1}}}\]
    5. Using strategy rm
    6. Applied add-sqr-sqrt0.0

      \[\leadsto \frac{\frac{x}{\sqrt{\color{blue}{\sqrt{x \cdot x + 1} \cdot \sqrt{x \cdot x + 1}}}}}{\sqrt{x \cdot x + 1}}\]
    7. Applied sqrt-prod0.1

      \[\leadsto \frac{\frac{x}{\color{blue}{\sqrt{\sqrt{x \cdot x + 1}} \cdot \sqrt{\sqrt{x \cdot x + 1}}}}}{\sqrt{x \cdot x + 1}}\]
    8. Applied *-un-lft-identity0.1

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

      \[\leadsto \frac{\color{blue}{\frac{1}{\sqrt{\sqrt{x \cdot x + 1}}} \cdot \frac{x}{\sqrt{\sqrt{x \cdot x + 1}}}}}{\sqrt{x \cdot x + 1}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -6289590436010291770888814592:\\ \;\;\;\;\frac{1}{x} + \left(\frac{1}{{x}^{5}} - \frac{1}{\left(x \cdot x\right) \cdot x}\right)\\ \mathbf{elif}\;x \le 446.3237971224295392858039122074842453003:\\ \;\;\;\;\frac{\frac{1}{\sqrt{\sqrt{1 + x \cdot x}}} \cdot \frac{x}{\sqrt{\sqrt{1 + x \cdot x}}}}{\sqrt{1 + x \cdot x}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{x} + \left(\frac{1}{{x}^{5}} - \frac{1}{\left(x \cdot x\right) \cdot x}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019179 
(FPCore (x)
  :name "x / (x^2 + 1)"

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

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