Average Error: 0.0 → 0.1
Time: 2.9s
Precision: 64
\[x - \frac{2.30753 + x \cdot 0.27061000000000002}{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}\]
\[x - \frac{\frac{2.30753 + x \cdot 0.27061000000000002}{\sqrt{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}}}{\sqrt{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{\frac{2.30753 + x \cdot 0.27061000000000002}{\sqrt{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}}}{\sqrt{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}}
double f(double x) {
        double r139524 = x;
        double r139525 = 2.30753;
        double r139526 = 0.27061;
        double r139527 = r139524 * r139526;
        double r139528 = r139525 + r139527;
        double r139529 = 1.0;
        double r139530 = 0.99229;
        double r139531 = 0.04481;
        double r139532 = r139524 * r139531;
        double r139533 = r139530 + r139532;
        double r139534 = r139533 * r139524;
        double r139535 = r139529 + r139534;
        double r139536 = r139528 / r139535;
        double r139537 = r139524 - r139536;
        return r139537;
}

double f(double x) {
        double r139538 = x;
        double r139539 = 2.30753;
        double r139540 = 0.27061;
        double r139541 = r139538 * r139540;
        double r139542 = r139539 + r139541;
        double r139543 = 1.0;
        double r139544 = 0.99229;
        double r139545 = 0.04481;
        double r139546 = r139538 * r139545;
        double r139547 = r139544 + r139546;
        double r139548 = r139547 * r139538;
        double r139549 = r139543 + r139548;
        double r139550 = sqrt(r139549);
        double r139551 = r139542 / r139550;
        double r139552 = r139551 / r139550;
        double r139553 = r139538 - r139552;
        return r139553;
}

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

    \[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-sqr-sqrt0.0

    \[\leadsto x - \frac{2.30753 + x \cdot 0.27061000000000002}{\color{blue}{\sqrt{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x} \cdot \sqrt{1 + \left(0.992290000000000005 + x \cdot 0.044810000000000003\right) \cdot x}}}\]
  4. Applied associate-/r*0.1

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

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

Reproduce

herbie shell --seed 2020056 
(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)))))