Average Error: 0.0 → 0.5
Time: 4.7s
Precision: 64
\[x - \frac{2.30753 + x \cdot 0.27061000000000002}{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}\]
\[\mathsf{fma}\left(\frac{-\sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)} \cdot \sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}}{1}, \frac{\sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.044810000000000003, x, 0.992290000000000005\right), 1\right)}, x\right)\]
x - \frac{2.30753 + x \cdot 0.27061000000000002}{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}
\mathsf{fma}\left(\frac{-\sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)} \cdot \sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}}{1}, \frac{\sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.044810000000000003, x, 0.992290000000000005\right), 1\right)}, x\right)
double f(double x) {
        double r96414 = x;
        double r96415 = 2.30753;
        double r96416 = 0.27061;
        double r96417 = r96414 * r96416;
        double r96418 = r96415 + r96417;
        double r96419 = 1.0;
        double r96420 = 0.99229;
        double r96421 = 0.04481;
        double r96422 = r96414 * r96421;
        double r96423 = r96420 + r96422;
        double r96424 = r96423 * r96414;
        double r96425 = r96419 + r96424;
        double r96426 = r96418 / r96425;
        double r96427 = r96414 - r96426;
        return r96427;
}

double f(double x) {
        double r96428 = 0.27061;
        double r96429 = x;
        double r96430 = 2.30753;
        double r96431 = fma(r96428, r96429, r96430);
        double r96432 = cbrt(r96431);
        double r96433 = r96432 * r96432;
        double r96434 = -r96433;
        double r96435 = 1.0;
        double r96436 = r96434 / r96435;
        double r96437 = 0.04481;
        double r96438 = 0.99229;
        double r96439 = fma(r96437, r96429, r96438);
        double r96440 = 1.0;
        double r96441 = fma(r96429, r96439, r96440);
        double r96442 = r96432 / r96441;
        double r96443 = fma(r96436, r96442, r96429);
        return r96443;
}

Error

Bits error versus x

Derivation

  1. Initial program 0.0

    \[x - \frac{2.30753 + x \cdot 0.27061000000000002}{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}\]
  2. Simplified0.0

    \[\leadsto \color{blue}{\frac{-\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.044810000000000003, x, 0.992290000000000005\right), 1\right)} + x}\]
  3. Using strategy rm
  4. Applied *-un-lft-identity0.0

    \[\leadsto \frac{-\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}{\color{blue}{1 \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(0.044810000000000003, x, 0.992290000000000005\right), 1\right)}} + x\]
  5. Applied add-cube-cbrt0.5

    \[\leadsto \frac{-\color{blue}{\left(\sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)} \cdot \sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}}}{1 \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(0.044810000000000003, x, 0.992290000000000005\right), 1\right)} + x\]
  6. Applied distribute-lft-neg-in0.5

    \[\leadsto \frac{\color{blue}{\left(-\sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)} \cdot \sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}}}{1 \cdot \mathsf{fma}\left(x, \mathsf{fma}\left(0.044810000000000003, x, 0.992290000000000005\right), 1\right)} + x\]
  7. Applied times-frac0.5

    \[\leadsto \color{blue}{\frac{-\sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)} \cdot \sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}}{1} \cdot \frac{\sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.044810000000000003, x, 0.992290000000000005\right), 1\right)}} + x\]
  8. Applied fma-def0.5

    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{-\sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)} \cdot \sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}}{1}, \frac{\sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.044810000000000003, x, 0.992290000000000005\right), 1\right)}, x\right)}\]
  9. Final simplification0.5

    \[\leadsto \mathsf{fma}\left(\frac{-\sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)} \cdot \sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}}{1}, \frac{\sqrt[3]{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}}{\mathsf{fma}\left(x, \mathsf{fma}\left(0.044810000000000003, x, 0.992290000000000005\right), 1\right)}, x\right)\]

Reproduce

herbie shell --seed 2020039 +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)))))