Average Error: 0.0 → 0.2
Time: 1.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 r164056 = 1.0;
        double r164057 = x;
        double r164058 = r164057 * r164057;
        double r164059 = r164056 - r164058;
        double r164060 = sqrt(r164059);
        return r164060;
}

double f(double x) {
        double r164061 = 1.0;
        double r164062 = sqrt(r164061);
        double r164063 = 0.125;
        double r164064 = x;
        double r164065 = 4.0;
        double r164066 = pow(r164064, r164065);
        double r164067 = 3.0;
        double r164068 = pow(r164062, r164067);
        double r164069 = r164066 / r164068;
        double r164070 = r164063 * r164069;
        double r164071 = 0.5;
        double r164072 = 2.0;
        double r164073 = pow(r164064, r164072);
        double r164074 = r164073 / r164062;
        double r164075 = r164071 * r164074;
        double r164076 = r164070 + r164075;
        double r164077 = r164062 - r164076;
        return r164077;
}

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 2020018 +o rules:numerics
(FPCore (x)
  :name "Diagrams.TwoD.Ellipse:ellipse from diagrams-lib-1.3.0.3"
  :precision binary64
  (sqrt (- 1 (* x x))))