Average Error: 0.0 → 0.0
Time: 3.5s
Precision: 64
\[x - \frac{2.30753 + x \cdot 0.27061000000000002}{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}\]
\[x - \frac{1}{\sqrt[3]{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x} \cdot \sqrt[3]{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}} \cdot \frac{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}{\sqrt[3]{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}}\]
x - \frac{2.30753 + x \cdot 0.27061000000000002}{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}
x - \frac{1}{\sqrt[3]{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x} \cdot \sqrt[3]{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}} \cdot \frac{\mathsf{fma}\left(0.27061000000000002, x, 2.30753\right)}{\sqrt[3]{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}}
double f(double x) {
        double r105989 = x;
        double r105990 = 2.30753;
        double r105991 = 0.27061;
        double r105992 = r105989 * r105991;
        double r105993 = r105990 + r105992;
        double r105994 = 1.0;
        double r105995 = 0.99229;
        double r105996 = 0.04481;
        double r105997 = r105989 * r105996;
        double r105998 = r105995 + r105997;
        double r105999 = r105998 * r105989;
        double r106000 = r105994 + r105999;
        double r106001 = r105993 / r106000;
        double r106002 = r105989 - r106001;
        return r106002;
}

double f(double x) {
        double r106003 = x;
        double r106004 = 1.0;
        double r106005 = 1.0;
        double r106006 = 0.99229;
        double r106007 = 0.04481;
        double r106008 = r106003 * r106007;
        double r106009 = r106006 + r106008;
        double r106010 = r106009 * r106003;
        double r106011 = r106005 + r106010;
        double r106012 = cbrt(r106011);
        double r106013 = r106012 * r106012;
        double r106014 = r106004 / r106013;
        double r106015 = 0.27061;
        double r106016 = 2.30753;
        double r106017 = fma(r106015, r106003, r106016);
        double r106018 = r106017 / r106012;
        double r106019 = r106014 * r106018;
        double r106020 = r106003 - r106019;
        return r106020;
}

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. Using strategy rm
  3. Applied add-cube-cbrt0.0

    \[\leadsto x - \frac{2.30753 + x \cdot 0.27061000000000002}{\color{blue}{\left(\sqrt[3]{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x} \cdot \sqrt[3]{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}\right) \cdot \sqrt[3]{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}}}\]
  4. Applied *-un-lft-identity0.0

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

    \[\leadsto x - \color{blue}{\frac{1}{\sqrt[3]{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x} \cdot \sqrt[3]{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}} \cdot \frac{2.30753 + x \cdot 0.27061000000000002}{\sqrt[3]{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}}}\]
  6. Simplified0.0

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

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

Reproduce

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