Average Error: 28.8 → 9.2
Time: 33.8s
Precision: 64
\[1.0536712127723509 \cdot 10^{-08} \lt a \lt 94906265.62425156 \land 1.0536712127723509 \cdot 10^{-08} \lt b \lt 94906265.62425156 \land 1.0536712127723509 \cdot 10^{-08} \lt c \lt 94906265.62425156\]
\[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
\[\begin{array}{l} \mathbf{if}\;b \le 4.142518093006308:\\ \;\;\;\;\frac{\frac{\mathsf{fma}\left(\left(-b \cdot b\right), b, \left(b \cdot \left(b \cdot b\right)\right)\right) + \mathsf{fma}\left(\left(\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)\right), \left(\sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)}\right), \left(b \cdot \left(-b \cdot b\right)\right)\right)}{\mathsf{fma}\left(b, \left(b + \sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)}\right), \left(\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)\right)\right)}}{3 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{1}{a} \cdot \frac{1}{\mathsf{fma}\left(b, \left(\sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot c\right) \cdot -3\right)\right)} + b\right), \left(\mathsf{fma}\left(b, b, \left(\left(a \cdot c\right) \cdot -3\right)\right)\right)\right)}\right) \cdot \frac{\mathsf{fma}\left(\left(\frac{\left(a \cdot c\right) \cdot \left(a \cdot c\right)}{b}\right), \frac{27}{8}, \left(\left(b \cdot \left(a \cdot c\right)\right) \cdot \frac{-9}{2}\right)\right)}{3}\\ \end{array}\]
\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}
\begin{array}{l}
\mathbf{if}\;b \le 4.142518093006308:\\
\;\;\;\;\frac{\frac{\mathsf{fma}\left(\left(-b \cdot b\right), b, \left(b \cdot \left(b \cdot b\right)\right)\right) + \mathsf{fma}\left(\left(\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)\right), \left(\sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)}\right), \left(b \cdot \left(-b \cdot b\right)\right)\right)}{\mathsf{fma}\left(b, \left(b + \sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)}\right), \left(\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)\right)\right)}}{3 \cdot a}\\

\mathbf{else}:\\
\;\;\;\;\left(\frac{1}{a} \cdot \frac{1}{\mathsf{fma}\left(b, \left(\sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot c\right) \cdot -3\right)\right)} + b\right), \left(\mathsf{fma}\left(b, b, \left(\left(a \cdot c\right) \cdot -3\right)\right)\right)\right)}\right) \cdot \frac{\mathsf{fma}\left(\left(\frac{\left(a \cdot c\right) \cdot \left(a \cdot c\right)}{b}\right), \frac{27}{8}, \left(\left(b \cdot \left(a \cdot c\right)\right) \cdot \frac{-9}{2}\right)\right)}{3}\\

\end{array}
double f(double a, double b, double c, double __attribute__((unused)) d) {
        double r2862308 = b;
        double r2862309 = -r2862308;
        double r2862310 = r2862308 * r2862308;
        double r2862311 = 3.0;
        double r2862312 = a;
        double r2862313 = r2862311 * r2862312;
        double r2862314 = c;
        double r2862315 = r2862313 * r2862314;
        double r2862316 = r2862310 - r2862315;
        double r2862317 = sqrt(r2862316);
        double r2862318 = r2862309 + r2862317;
        double r2862319 = r2862318 / r2862313;
        return r2862319;
}

double f(double a, double b, double c, double __attribute__((unused)) d) {
        double r2862320 = b;
        double r2862321 = 4.142518093006308;
        bool r2862322 = r2862320 <= r2862321;
        double r2862323 = r2862320 * r2862320;
        double r2862324 = -r2862323;
        double r2862325 = r2862320 * r2862323;
        double r2862326 = fma(r2862324, r2862320, r2862325);
        double r2862327 = a;
        double r2862328 = -3.0;
        double r2862329 = r2862327 * r2862328;
        double r2862330 = c;
        double r2862331 = r2862329 * r2862330;
        double r2862332 = fma(r2862320, r2862320, r2862331);
        double r2862333 = sqrt(r2862332);
        double r2862334 = r2862320 * r2862324;
        double r2862335 = fma(r2862332, r2862333, r2862334);
        double r2862336 = r2862326 + r2862335;
        double r2862337 = r2862320 + r2862333;
        double r2862338 = fma(r2862320, r2862337, r2862332);
        double r2862339 = r2862336 / r2862338;
        double r2862340 = 3.0;
        double r2862341 = r2862340 * r2862327;
        double r2862342 = r2862339 / r2862341;
        double r2862343 = 1.0;
        double r2862344 = r2862343 / r2862327;
        double r2862345 = r2862327 * r2862330;
        double r2862346 = r2862345 * r2862328;
        double r2862347 = fma(r2862320, r2862320, r2862346);
        double r2862348 = sqrt(r2862347);
        double r2862349 = r2862348 + r2862320;
        double r2862350 = fma(r2862320, r2862349, r2862347);
        double r2862351 = r2862343 / r2862350;
        double r2862352 = r2862344 * r2862351;
        double r2862353 = r2862345 * r2862345;
        double r2862354 = r2862353 / r2862320;
        double r2862355 = 3.375;
        double r2862356 = r2862320 * r2862345;
        double r2862357 = -4.5;
        double r2862358 = r2862356 * r2862357;
        double r2862359 = fma(r2862354, r2862355, r2862358);
        double r2862360 = r2862359 / r2862340;
        double r2862361 = r2862352 * r2862360;
        double r2862362 = r2862322 ? r2862342 : r2862361;
        return r2862362;
}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Bits error versus d

Derivation

  1. Split input into 2 regimes
  2. if b < 4.142518093006308

    1. Initial program 13.0

      \[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
    2. Simplified13.0

      \[\leadsto \color{blue}{\frac{\sqrt{\mathsf{fma}\left(c, \left(-3 \cdot a\right), \left(b \cdot b\right)\right)} - b}{3 \cdot a}}\]
    3. Using strategy rm
    4. Applied flip3--13.1

      \[\leadsto \frac{\color{blue}{\frac{{\left(\sqrt{\mathsf{fma}\left(c, \left(-3 \cdot a\right), \left(b \cdot b\right)\right)}\right)}^{3} - {b}^{3}}{\sqrt{\mathsf{fma}\left(c, \left(-3 \cdot a\right), \left(b \cdot b\right)\right)} \cdot \sqrt{\mathsf{fma}\left(c, \left(-3 \cdot a\right), \left(b \cdot b\right)\right)} + \left(b \cdot b + \sqrt{\mathsf{fma}\left(c, \left(-3 \cdot a\right), \left(b \cdot b\right)\right)} \cdot b\right)}}}{3 \cdot a}\]
    5. Simplified12.5

      \[\leadsto \frac{\frac{\color{blue}{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right) \cdot \sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)} - b \cdot \left(b \cdot b\right)}}{\sqrt{\mathsf{fma}\left(c, \left(-3 \cdot a\right), \left(b \cdot b\right)\right)} \cdot \sqrt{\mathsf{fma}\left(c, \left(-3 \cdot a\right), \left(b \cdot b\right)\right)} + \left(b \cdot b + \sqrt{\mathsf{fma}\left(c, \left(-3 \cdot a\right), \left(b \cdot b\right)\right)} \cdot b\right)}}{3 \cdot a}\]
    6. Simplified12.5

      \[\leadsto \frac{\frac{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right) \cdot \sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)} - b \cdot \left(b \cdot b\right)}{\color{blue}{\mathsf{fma}\left(b, \left(\sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)} + b\right), \left(\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)\right)\right)}}}{3 \cdot a}\]
    7. Using strategy rm
    8. Applied prod-diff12.2

      \[\leadsto \frac{\frac{\color{blue}{\mathsf{fma}\left(\left(\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)\right), \left(\sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)}\right), \left(-\left(b \cdot b\right) \cdot b\right)\right) + \mathsf{fma}\left(\left(-b \cdot b\right), b, \left(\left(b \cdot b\right) \cdot b\right)\right)}}{\mathsf{fma}\left(b, \left(\sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)} + b\right), \left(\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)\right)\right)}}{3 \cdot a}\]

    if 4.142518093006308 < b

    1. Initial program 32.8

      \[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
    2. Simplified32.8

      \[\leadsto \color{blue}{\frac{\sqrt{\mathsf{fma}\left(c, \left(-3 \cdot a\right), \left(b \cdot b\right)\right)} - b}{3 \cdot a}}\]
    3. Using strategy rm
    4. Applied flip3--32.8

      \[\leadsto \frac{\color{blue}{\frac{{\left(\sqrt{\mathsf{fma}\left(c, \left(-3 \cdot a\right), \left(b \cdot b\right)\right)}\right)}^{3} - {b}^{3}}{\sqrt{\mathsf{fma}\left(c, \left(-3 \cdot a\right), \left(b \cdot b\right)\right)} \cdot \sqrt{\mathsf{fma}\left(c, \left(-3 \cdot a\right), \left(b \cdot b\right)\right)} + \left(b \cdot b + \sqrt{\mathsf{fma}\left(c, \left(-3 \cdot a\right), \left(b \cdot b\right)\right)} \cdot b\right)}}}{3 \cdot a}\]
    5. Simplified32.2

      \[\leadsto \frac{\frac{\color{blue}{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right) \cdot \sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)} - b \cdot \left(b \cdot b\right)}}{\sqrt{\mathsf{fma}\left(c, \left(-3 \cdot a\right), \left(b \cdot b\right)\right)} \cdot \sqrt{\mathsf{fma}\left(c, \left(-3 \cdot a\right), \left(b \cdot b\right)\right)} + \left(b \cdot b + \sqrt{\mathsf{fma}\left(c, \left(-3 \cdot a\right), \left(b \cdot b\right)\right)} \cdot b\right)}}{3 \cdot a}\]
    6. Simplified32.2

      \[\leadsto \frac{\frac{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right) \cdot \sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)} - b \cdot \left(b \cdot b\right)}{\color{blue}{\mathsf{fma}\left(b, \left(\sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)} + b\right), \left(\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)\right)\right)}}}{3 \cdot a}\]
    7. Taylor expanded around inf 8.4

      \[\leadsto \frac{\frac{\color{blue}{\frac{27}{8} \cdot \frac{{a}^{2} \cdot {c}^{2}}{b} - \frac{9}{2} \cdot \left(a \cdot \left(b \cdot c\right)\right)}}{\mathsf{fma}\left(b, \left(\sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)} + b\right), \left(\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)\right)\right)}}{3 \cdot a}\]
    8. Simplified8.4

      \[\leadsto \frac{\frac{\color{blue}{\mathsf{fma}\left(\left(\frac{\left(a \cdot c\right) \cdot \left(a \cdot c\right)}{b}\right), \frac{27}{8}, \left(\frac{-9}{2} \cdot \left(b \cdot \left(c \cdot a\right)\right)\right)\right)}}{\mathsf{fma}\left(b, \left(\sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)} + b\right), \left(\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)\right)\right)}}{3 \cdot a}\]
    9. Using strategy rm
    10. Applied div-inv8.4

      \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\left(\frac{\left(a \cdot c\right) \cdot \left(a \cdot c\right)}{b}\right), \frac{27}{8}, \left(\frac{-9}{2} \cdot \left(b \cdot \left(c \cdot a\right)\right)\right)\right) \cdot \frac{1}{\mathsf{fma}\left(b, \left(\sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)} + b\right), \left(\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)\right)\right)}}}{3 \cdot a}\]
    11. Applied times-frac8.4

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\left(\frac{\left(a \cdot c\right) \cdot \left(a \cdot c\right)}{b}\right), \frac{27}{8}, \left(\frac{-9}{2} \cdot \left(b \cdot \left(c \cdot a\right)\right)\right)\right)}{3} \cdot \frac{\frac{1}{\mathsf{fma}\left(b, \left(\sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)} + b\right), \left(\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)\right)\right)}}{a}}\]
    12. Simplified8.4

      \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{\left(a \cdot c\right) \cdot \left(a \cdot c\right)}{b}\right), \frac{27}{8}, \left(\frac{-9}{2} \cdot \left(b \cdot \left(c \cdot a\right)\right)\right)\right)}{3} \cdot \color{blue}{\frac{\frac{1}{a}}{\mathsf{fma}\left(b, \left(\sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot c\right) \cdot -3\right)\right)} + b\right), \left(\mathsf{fma}\left(b, b, \left(\left(a \cdot c\right) \cdot -3\right)\right)\right)\right)}}\]
    13. Using strategy rm
    14. Applied div-inv8.4

      \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{\left(a \cdot c\right) \cdot \left(a \cdot c\right)}{b}\right), \frac{27}{8}, \left(\frac{-9}{2} \cdot \left(b \cdot \left(c \cdot a\right)\right)\right)\right)}{3} \cdot \color{blue}{\left(\frac{1}{a} \cdot \frac{1}{\mathsf{fma}\left(b, \left(\sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot c\right) \cdot -3\right)\right)} + b\right), \left(\mathsf{fma}\left(b, b, \left(\left(a \cdot c\right) \cdot -3\right)\right)\right)\right)}\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification9.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le 4.142518093006308:\\ \;\;\;\;\frac{\frac{\mathsf{fma}\left(\left(-b \cdot b\right), b, \left(b \cdot \left(b \cdot b\right)\right)\right) + \mathsf{fma}\left(\left(\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)\right), \left(\sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)}\right), \left(b \cdot \left(-b \cdot b\right)\right)\right)}{\mathsf{fma}\left(b, \left(b + \sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)}\right), \left(\mathsf{fma}\left(b, b, \left(\left(a \cdot -3\right) \cdot c\right)\right)\right)\right)}}{3 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{1}{a} \cdot \frac{1}{\mathsf{fma}\left(b, \left(\sqrt{\mathsf{fma}\left(b, b, \left(\left(a \cdot c\right) \cdot -3\right)\right)} + b\right), \left(\mathsf{fma}\left(b, b, \left(\left(a \cdot c\right) \cdot -3\right)\right)\right)\right)}\right) \cdot \frac{\mathsf{fma}\left(\left(\frac{\left(a \cdot c\right) \cdot \left(a \cdot c\right)}{b}\right), \frac{27}{8}, \left(\left(b \cdot \left(a \cdot c\right)\right) \cdot \frac{-9}{2}\right)\right)}{3}\\ \end{array}\]

Reproduce

herbie shell --seed 2019129 +o rules:numerics
(FPCore (a b c d)
  :name "Cubic critical, narrow range"
  :pre (and (< 1.0536712127723509e-08 a 94906265.62425156) (< 1.0536712127723509e-08 b 94906265.62425156) (< 1.0536712127723509e-08 c 94906265.62425156))
  (/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)))