Average Error: 0.0 → 0.0
Time: 5.8s
Precision: 64
\[\sqrt{1 - x \cdot x}\]
\[\frac{\sqrt{1 \cdot 1 - {x}^{4}}}{\sqrt{\mathsf{fma}\left(x, x, 1\right)}}\]
\sqrt{1 - x \cdot x}
\frac{\sqrt{1 \cdot 1 - {x}^{4}}}{\sqrt{\mathsf{fma}\left(x, x, 1\right)}}
double f(double x) {
        double r102290 = 1.0;
        double r102291 = x;
        double r102292 = r102291 * r102291;
        double r102293 = r102290 - r102292;
        double r102294 = sqrt(r102293);
        return r102294;
}

double f(double x) {
        double r102295 = 1.0;
        double r102296 = r102295 * r102295;
        double r102297 = x;
        double r102298 = 4.0;
        double r102299 = pow(r102297, r102298);
        double r102300 = r102296 - r102299;
        double r102301 = sqrt(r102300);
        double r102302 = fma(r102297, r102297, r102295);
        double r102303 = sqrt(r102302);
        double r102304 = r102301 / r102303;
        return r102304;
}

Error

Bits error versus x

Derivation

  1. Initial program 0.0

    \[\sqrt{1 - x \cdot x}\]
  2. Using strategy rm
  3. Applied flip--0.0

    \[\leadsto \sqrt{\color{blue}{\frac{1 \cdot 1 - \left(x \cdot x\right) \cdot \left(x \cdot x\right)}{1 + x \cdot x}}}\]
  4. Applied sqrt-div0.0

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

    \[\leadsto \frac{\color{blue}{\sqrt{1 \cdot 1 - {x}^{4}}}}{\sqrt{1 + x \cdot x}}\]
  6. Simplified0.0

    \[\leadsto \frac{\sqrt{1 \cdot 1 - {x}^{4}}}{\color{blue}{\sqrt{\mathsf{fma}\left(x, x, 1\right)}}}\]
  7. Final simplification0.0

    \[\leadsto \frac{\sqrt{1 \cdot 1 - {x}^{4}}}{\sqrt{\mathsf{fma}\left(x, x, 1\right)}}\]

Reproduce

herbie shell --seed 2019347 +o rules:numerics
(FPCore (x)
  :name "Diagrams.TwoD.Ellipse:ellipse from diagrams-lib-1.3.0.3"
  :precision binary64
  (sqrt (- 1 (* x x))))