Average Error: 0.0 → 0.2
Time: 2.1s
Precision: 64
\[\sqrt{1 - x \cdot x}\]
\[\sqrt{1} - \left(\frac{1}{8} \cdot \frac{{x}^{4}}{{\left(\sqrt{1}\right)}^{3}} + \frac{1}{2} \cdot \frac{{x}^{2}}{\sqrt{1}}\right)\]
\sqrt{1 - x \cdot x}
\sqrt{1} - \left(\frac{1}{8} \cdot \frac{{x}^{4}}{{\left(\sqrt{1}\right)}^{3}} + \frac{1}{2} \cdot \frac{{x}^{2}}{\sqrt{1}}\right)
double f(double x) {
        double r191667 = 1.0;
        double r191668 = x;
        double r191669 = r191668 * r191668;
        double r191670 = r191667 - r191669;
        double r191671 = sqrt(r191670);
        return r191671;
}

double f(double x) {
        double r191672 = 1.0;
        double r191673 = sqrt(r191672);
        double r191674 = 0.125;
        double r191675 = x;
        double r191676 = 4.0;
        double r191677 = pow(r191675, r191676);
        double r191678 = 3.0;
        double r191679 = pow(r191673, r191678);
        double r191680 = r191677 / r191679;
        double r191681 = r191674 * r191680;
        double r191682 = 0.5;
        double r191683 = 2.0;
        double r191684 = pow(r191675, r191683);
        double r191685 = r191684 / r191673;
        double r191686 = r191682 * r191685;
        double r191687 = r191681 + r191686;
        double r191688 = r191673 - r191687;
        return r191688;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\sqrt{1 - x \cdot x}\]
  2. Taylor expanded around 0 0.2

    \[\leadsto \color{blue}{\sqrt{1} - \left(\frac{1}{8} \cdot \frac{{x}^{4}}{{\left(\sqrt{1}\right)}^{3}} + \frac{1}{2} \cdot \frac{{x}^{2}}{\sqrt{1}}\right)}\]
  3. Final simplification0.2

    \[\leadsto \sqrt{1} - \left(\frac{1}{8} \cdot \frac{{x}^{4}}{{\left(\sqrt{1}\right)}^{3}} + \frac{1}{2} \cdot \frac{{x}^{2}}{\sqrt{1}}\right)\]

Reproduce

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