Average Error: 28.8 → 28.1
Time: 54.3s
Precision: 64
Internal Precision: 2112
\[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
\[\begin{array}{l} \mathbf{if}\;\frac{\sqrt{\sqrt[3]{(\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_* \cdot \left((\left(c \cdot \left(c \cdot 9\right)\right) \cdot \left(a \cdot a\right) + \left({b}^{4}\right))_* - \left(\left(b \cdot b\right) \cdot \left(a \cdot 6\right)\right) \cdot c\right)}} - b}{a \cdot 3} \le -1.7619771020139317 \cdot 10^{-15}:\\ \;\;\;\;\frac{\sqrt{\sqrt[3]{(\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_* \cdot \left((\left(c \cdot \left(c \cdot 9\right)\right) \cdot \left(a \cdot a\right) + \left({b}^{4}\right))_* - \left(\left(b \cdot b\right) \cdot \left(a \cdot 6\right)\right) \cdot c\right)}} - b}{a \cdot 3}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{{\left({b}^{6}\right)}^{\frac{1}{3}} - \left(a \cdot c\right) \cdot 3} - b}{3 \cdot a}\\ \end{array}\]

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 (/ (- (sqrt (cbrt (* (fma (- c) (* a 3) (* b b)) (- (fma (* c (* c 9)) (* a a) (pow b 4)) (* (* (* b b) (* a 6)) c))))) b) (* a 3)) < -1.7619771020139317e-15

    1. Initial program 22.8

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

      \[\leadsto \color{blue}{\frac{\sqrt{(\left(3 \cdot a\right) \cdot \left(-c\right) + \left(b \cdot b\right))_*} - b}{3 \cdot a}}\]
    3. Using strategy rm
    4. Applied add-cbrt-cube23.2

      \[\leadsto \frac{\sqrt{\color{blue}{\sqrt[3]{\left((\left(3 \cdot a\right) \cdot \left(-c\right) + \left(b \cdot b\right))_* \cdot (\left(3 \cdot a\right) \cdot \left(-c\right) + \left(b \cdot b\right))_*\right) \cdot (\left(3 \cdot a\right) \cdot \left(-c\right) + \left(b \cdot b\right))_*}}} - b}{3 \cdot a}\]
    5. Applied simplify23.2

      \[\leadsto \frac{\sqrt{\sqrt[3]{\color{blue}{{\left((\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_*\right)}^{3}}}} - b}{3 \cdot a}\]
    6. Using strategy rm
    7. Applied add-cube-cbrt24.5

      \[\leadsto \frac{\sqrt{\sqrt[3]{{\color{blue}{\left(\left(\sqrt[3]{(\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_*} \cdot \sqrt[3]{(\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_*}\right) \cdot \sqrt[3]{(\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_*}\right)}}^{3}}} - b}{3 \cdot a}\]
    8. Applied unpow-prod-down24.5

      \[\leadsto \frac{\sqrt{\sqrt[3]{\color{blue}{{\left(\sqrt[3]{(\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_*} \cdot \sqrt[3]{(\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_*}\right)}^{3} \cdot {\left(\sqrt[3]{(\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_*}\right)}^{3}}}} - b}{3 \cdot a}\]
    9. Applied simplify23.6

      \[\leadsto \frac{\sqrt{\sqrt[3]{\color{blue}{\left((\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_* \cdot (\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_*\right)} \cdot {\left(\sqrt[3]{(\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_*}\right)}^{3}}} - b}{3 \cdot a}\]
    10. Applied simplify23.2

      \[\leadsto \frac{\sqrt{\sqrt[3]{\left((\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_* \cdot (\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_*\right) \cdot \color{blue}{(\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_*}}} - b}{3 \cdot a}\]
    11. Taylor expanded around inf 23.1

      \[\leadsto \frac{\sqrt{\sqrt[3]{\color{blue}{\left(\left(9 \cdot \left({c}^{2} \cdot {a}^{2}\right) + {b}^{4}\right) - 6 \cdot \left({b}^{2} \cdot \left(c \cdot a\right)\right)\right)} \cdot (\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_*}} - b}{3 \cdot a}\]
    12. Applied simplify23.1

      \[\leadsto \color{blue}{\frac{\sqrt{\sqrt[3]{(\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_* \cdot \left((\left(c \cdot \left(c \cdot 9\right)\right) \cdot \left(a \cdot a\right) + \left({b}^{4}\right))_* - \left(\left(b \cdot b\right) \cdot \left(a \cdot 6\right)\right) \cdot c\right)}} - b}{a \cdot 3}}\]

    if -1.7619771020139317e-15 < (/ (- (sqrt (cbrt (* (fma (- c) (* a 3) (* b b)) (- (fma (* c (* c 9)) (* a a) (pow b 4)) (* (* (* b b) (* a 6)) c))))) b) (* a 3))

    1. Initial program 61.5

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

      \[\leadsto \color{blue}{\frac{\sqrt{(\left(3 \cdot a\right) \cdot \left(-c\right) + \left(b \cdot b\right))_*} - b}{3 \cdot a}}\]
    3. Using strategy rm
    4. Applied add-cbrt-cube61.6

      \[\leadsto \frac{\sqrt{\color{blue}{\sqrt[3]{\left((\left(3 \cdot a\right) \cdot \left(-c\right) + \left(b \cdot b\right))_* \cdot (\left(3 \cdot a\right) \cdot \left(-c\right) + \left(b \cdot b\right))_*\right) \cdot (\left(3 \cdot a\right) \cdot \left(-c\right) + \left(b \cdot b\right))_*}}} - b}{3 \cdot a}\]
    5. Applied simplify61.5

      \[\leadsto \frac{\sqrt{\sqrt[3]{\color{blue}{{\left((\left(-c\right) \cdot \left(a \cdot 3\right) + \left(b \cdot b\right))_*\right)}^{3}}}} - b}{3 \cdot a}\]
    6. Taylor expanded around 0 55.6

      \[\leadsto \frac{\sqrt{\color{blue}{{\left({b}^{6}\right)}^{\frac{1}{3}} - 3 \cdot \left(c \cdot a\right)}} - b}{3 \cdot a}\]
    7. Applied simplify61.5

      \[\leadsto \color{blue}{\frac{\sqrt{\sqrt[3]{{b}^{6}} - \left(a \cdot c\right) \cdot 3} - b}{3 \cdot a}}\]
    8. Using strategy rm
    9. Applied pow1/355.6

      \[\leadsto \frac{\sqrt{\color{blue}{{\left({b}^{6}\right)}^{\frac{1}{3}}} - \left(a \cdot c\right) \cdot 3} - b}{3 \cdot a}\]
  3. Recombined 2 regimes into one program.

Runtime

Time bar (total: 54.3s)Debug logProfile

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