Average Error: 31.1 → 0
Time: 4.0s
Precision: 64
\[\frac{x}{x} - \frac{1}{x} \cdot \sqrt{x \cdot x}\]
\[1 - \frac{\left|x\right|}{x}\]
double f(double x) {
        double r20966532 = x;
        double r20966533 = r20966532 / r20966532;
        double r20966534 = 1.0;
        double r20966535 = r20966534 / r20966532;
        double r20966536 = r20966532 * r20966532;
        double r20966537 = sqrt(r20966536);
        double r20966538 = r20966535 * r20966537;
        double r20966539 = r20966533 - r20966538;
        return r20966539;
}

double f(double x) {
        double r20966540 = 1.0;
        double r20966541 = x;
        double r20966542 = fabs(r20966541);
        double r20966543 = r20966542 / r20966541;
        double r20966544 = r20966540 - r20966543;
        return r20966544;
}

\frac{x}{x} - \frac{1}{x} \cdot \sqrt{x \cdot x}
1 - \frac{\left|x\right|}{x}

Error

Bits error versus x

Target

Original31.1
Target0
Herbie0
\[\begin{array}{l} \mathbf{if}\;x \lt 0:\\ \;\;\;\;2\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array}\]

Derivation

  1. Initial program 31.1

    \[\frac{x}{x} - \frac{1}{x} \cdot \sqrt{x \cdot x}\]
  2. Simplified0

    \[\leadsto \color{blue}{1 - \frac{\left|x\right|}{x}}\]
  3. Final simplification0

    \[\leadsto 1 - \frac{\left|x\right|}{x}\]

Reproduce

herbie shell --seed 2019101 
(FPCore (x)
  :name "sqrt sqr"

  :herbie-target
  (if (< x 0) 2 0)

  (- (/ x x) (* (/ 1 x) (sqrt (* x x)))))