Average Error: 0.0 → 0.0
Time: 3.1s
Precision: 64
\[x - \frac{2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812}{1 + \left(0.992290000000000005364597654988756403327 + x \cdot 0.04481000000000000260680366181986755691469\right) \cdot x}\]
\[x - \frac{2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812}{1 + \mathsf{fma}\left(\sqrt[3]{0.992290000000000005364597654988756403327} \cdot \sqrt[3]{0.992290000000000005364597654988756403327}, \sqrt[3]{0.992290000000000005364597654988756403327}, x \cdot 0.04481000000000000260680366181986755691469\right) \cdot x}\]
x - \frac{2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812}{1 + \left(0.992290000000000005364597654988756403327 + x \cdot 0.04481000000000000260680366181986755691469\right) \cdot x}
x - \frac{2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812}{1 + \mathsf{fma}\left(\sqrt[3]{0.992290000000000005364597654988756403327} \cdot \sqrt[3]{0.992290000000000005364597654988756403327}, \sqrt[3]{0.992290000000000005364597654988756403327}, x \cdot 0.04481000000000000260680366181986755691469\right) \cdot x}
double f(double x) {
        double r71357 = x;
        double r71358 = 2.30753;
        double r71359 = 0.27061;
        double r71360 = r71357 * r71359;
        double r71361 = r71358 + r71360;
        double r71362 = 1.0;
        double r71363 = 0.99229;
        double r71364 = 0.04481;
        double r71365 = r71357 * r71364;
        double r71366 = r71363 + r71365;
        double r71367 = r71366 * r71357;
        double r71368 = r71362 + r71367;
        double r71369 = r71361 / r71368;
        double r71370 = r71357 - r71369;
        return r71370;
}

double f(double x) {
        double r71371 = x;
        double r71372 = 2.30753;
        double r71373 = 0.27061;
        double r71374 = r71371 * r71373;
        double r71375 = r71372 + r71374;
        double r71376 = 1.0;
        double r71377 = 0.99229;
        double r71378 = cbrt(r71377);
        double r71379 = r71378 * r71378;
        double r71380 = 0.04481;
        double r71381 = r71371 * r71380;
        double r71382 = fma(r71379, r71378, r71381);
        double r71383 = r71382 * r71371;
        double r71384 = r71376 + r71383;
        double r71385 = r71375 / r71384;
        double r71386 = r71371 - r71385;
        return r71386;
}

Error

Bits error versus x

Derivation

  1. Initial program 0.0

    \[x - \frac{2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812}{1 + \left(0.992290000000000005364597654988756403327 + x \cdot 0.04481000000000000260680366181986755691469\right) \cdot x}\]
  2. Using strategy rm
  3. Applied add-cube-cbrt0.0

    \[\leadsto x - \frac{2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812}{1 + \left(\color{blue}{\left(\sqrt[3]{0.992290000000000005364597654988756403327} \cdot \sqrt[3]{0.992290000000000005364597654988756403327}\right) \cdot \sqrt[3]{0.992290000000000005364597654988756403327}} + x \cdot 0.04481000000000000260680366181986755691469\right) \cdot x}\]
  4. Applied fma-def0.0

    \[\leadsto x - \frac{2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812}{1 + \color{blue}{\mathsf{fma}\left(\sqrt[3]{0.992290000000000005364597654988756403327} \cdot \sqrt[3]{0.992290000000000005364597654988756403327}, \sqrt[3]{0.992290000000000005364597654988756403327}, x \cdot 0.04481000000000000260680366181986755691469\right)} \cdot x}\]
  5. Final simplification0.0

    \[\leadsto x - \frac{2.307529999999999859028321225196123123169 + x \cdot 0.2706100000000000171951342053944244980812}{1 + \mathsf{fma}\left(\sqrt[3]{0.992290000000000005364597654988756403327} \cdot \sqrt[3]{0.992290000000000005364597654988756403327}, \sqrt[3]{0.992290000000000005364597654988756403327}, x \cdot 0.04481000000000000260680366181986755691469\right) \cdot x}\]

Reproduce

herbie shell --seed 2019347 +o rules:numerics
(FPCore (x)
  :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, D"
  :precision binary64
  (- x (/ (+ 2.30753 (* x 0.27061)) (+ 1 (* (+ 0.99229 (* x 0.04481)) x)))))