Average Error: 1.6 → 1.5
Time: 16.4s
Precision: 64
\[\frac{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\]
\[\frac{\sqrt{b \cdot b - c \cdot \left(a \cdot 4\right)} - b}{2 \cdot a}\]
double f(double a, double b, double c) {
        double r599468 = b;
        double r599469 = -r599468;
        double r599470 = r599468 * r599468;
        double r599471 = 4.0;
        double r599472 = a;
        double r599473 = c;
        double r599474 = r599472 * r599473;
        double r599475 = r599471 * r599474;
        double r599476 = r599470 - r599475;
        double r599477 = sqrt(r599476);
        double r599478 = r599469 + r599477;
        double r599479 = 2.0;
        double r599480 = r599479 * r599472;
        double r599481 = r599478 / r599480;
        return r599481;
}

double f(double a, double b, double c) {
        double r599482 = b;
        double r599483 = r599482 * r599482;
        double r599484 = c;
        double r599485 = a;
        double r599486 = 4.0;
        double r599487 = r599485 * r599486;
        double r599488 = r599484 * r599487;
        double r599489 = r599483 - r599488;
        double r599490 = sqrt(r599489);
        double r599491 = r599490 - r599482;
        double r599492 = 2.0;
        double r599493 = r599492 * r599485;
        double r599494 = r599491 / r599493;
        return r599494;
}

\frac{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}
\frac{\sqrt{b \cdot b - c \cdot \left(a \cdot 4\right)} - b}{2 \cdot a}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Derivation

  1. Initial program 1.6

    \[\frac{\left(\frac{\left(-b\right)}{\left(\sqrt{\left(\left(b \cdot b\right) - \left(\left(4\right) \cdot \left(a \cdot c\right)\right)\right)}\right)}\right)}{\left(\left(2\right) \cdot a\right)}\]
  2. Simplified1.6

    \[\leadsto \color{blue}{\frac{\left(\left(\sqrt{\left(\left(b \cdot b\right) - \left(\left(c \cdot a\right) \cdot \left(4\right)\right)\right)}\right) - b\right)}{\left(\left(2\right) \cdot a\right)}}\]
  3. Using strategy rm
  4. Applied associate-*l*1.5

    \[\leadsto \frac{\left(\left(\sqrt{\left(\left(b \cdot b\right) - \color{blue}{\left(c \cdot \left(a \cdot \left(4\right)\right)\right)}\right)}\right) - b\right)}{\left(\left(2\right) \cdot a\right)}\]
  5. Final simplification1.5

    \[\leadsto \frac{\sqrt{b \cdot b - c \cdot \left(a \cdot 4\right)} - b}{2 \cdot a}\]

Reproduce

herbie shell --seed 2019102 +o rules:numerics
(FPCore (a b c)
  :name "quadp (p42, positive)"
  (/.p16 (+.p16 (neg.p16 b) (sqrt.p16 (-.p16 (*.p16 b b) (*.p16 (real->posit16 4) (*.p16 a c))))) (*.p16 (real->posit16 2) a)))