Average Error: 33.8 → 7.1
Time: 20.5s
Precision: 64
\[\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 -7.914888075650537298136924086228362423609 \cdot 10^{142}:\\ \;\;\;\;\frac{\frac{1}{-\mathsf{fma}\left(0.375, \frac{a}{\frac{{b}^{3}}{c}}, \frac{0.5}{b}\right)}}{3 \cdot a}\\ \mathbf{elif}\;b \le -5.133205541814486847475129018396623824182 \cdot 10^{-258}:\\ \;\;\;\;\frac{\sqrt{\sqrt{\mathsf{fma}\left(b, b, \left(c \cdot a\right) \cdot \left(-3\right)\right)} - b} \cdot \sqrt{\sqrt{\mathsf{fma}\left(b, b, \left(c \cdot a\right) \cdot \left(-3\right)\right)} - b}}{3 \cdot a}\\ \mathbf{elif}\;b \le 3.568355706898483080977528385553902422095 \cdot 10^{50}:\\ \;\;\;\;\frac{\frac{1}{\frac{\left(-b\right) - \sqrt{\mathsf{fma}\left(-3, c \cdot a, b \cdot b\right)}}{3}}}{\frac{3}{c}}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b} \cdot -0.5\\ \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 -7.914888075650537298136924086228362423609 \cdot 10^{142}:\\
\;\;\;\;\frac{\frac{1}{-\mathsf{fma}\left(0.375, \frac{a}{\frac{{b}^{3}}{c}}, \frac{0.5}{b}\right)}}{3 \cdot a}\\

\mathbf{elif}\;b \le -5.133205541814486847475129018396623824182 \cdot 10^{-258}:\\
\;\;\;\;\frac{\sqrt{\sqrt{\mathsf{fma}\left(b, b, \left(c \cdot a\right) \cdot \left(-3\right)\right)} - b} \cdot \sqrt{\sqrt{\mathsf{fma}\left(b, b, \left(c \cdot a\right) \cdot \left(-3\right)\right)} - b}}{3 \cdot a}\\

\mathbf{elif}\;b \le 3.568355706898483080977528385553902422095 \cdot 10^{50}:\\
\;\;\;\;\frac{\frac{1}{\frac{\left(-b\right) - \sqrt{\mathsf{fma}\left(-3, c \cdot a, b \cdot b\right)}}{3}}}{\frac{3}{c}}\\

\mathbf{else}:\\
\;\;\;\;\frac{c}{b} \cdot -0.5\\

\end{array}
double f(double a, double b, double c) {
        double r127641 = b;
        double r127642 = -r127641;
        double r127643 = r127641 * r127641;
        double r127644 = 3.0;
        double r127645 = a;
        double r127646 = r127644 * r127645;
        double r127647 = c;
        double r127648 = r127646 * r127647;
        double r127649 = r127643 - r127648;
        double r127650 = sqrt(r127649);
        double r127651 = r127642 + r127650;
        double r127652 = r127651 / r127646;
        return r127652;
}

double f(double a, double b, double c) {
        double r127653 = b;
        double r127654 = -7.914888075650537e+142;
        bool r127655 = r127653 <= r127654;
        double r127656 = 1.0;
        double r127657 = 0.375;
        double r127658 = a;
        double r127659 = 3.0;
        double r127660 = pow(r127653, r127659);
        double r127661 = c;
        double r127662 = r127660 / r127661;
        double r127663 = r127658 / r127662;
        double r127664 = 0.5;
        double r127665 = r127664 / r127653;
        double r127666 = fma(r127657, r127663, r127665);
        double r127667 = -r127666;
        double r127668 = r127656 / r127667;
        double r127669 = 3.0;
        double r127670 = r127669 * r127658;
        double r127671 = r127668 / r127670;
        double r127672 = -5.133205541814487e-258;
        bool r127673 = r127653 <= r127672;
        double r127674 = r127661 * r127658;
        double r127675 = -r127669;
        double r127676 = r127674 * r127675;
        double r127677 = fma(r127653, r127653, r127676);
        double r127678 = sqrt(r127677);
        double r127679 = r127678 - r127653;
        double r127680 = sqrt(r127679);
        double r127681 = r127680 * r127680;
        double r127682 = r127681 / r127670;
        double r127683 = 3.568355706898483e+50;
        bool r127684 = r127653 <= r127683;
        double r127685 = -r127653;
        double r127686 = r127653 * r127653;
        double r127687 = fma(r127675, r127674, r127686);
        double r127688 = sqrt(r127687);
        double r127689 = r127685 - r127688;
        double r127690 = r127689 / r127669;
        double r127691 = r127656 / r127690;
        double r127692 = r127669 / r127661;
        double r127693 = r127691 / r127692;
        double r127694 = r127661 / r127653;
        double r127695 = -0.5;
        double r127696 = r127694 * r127695;
        double r127697 = r127684 ? r127693 : r127696;
        double r127698 = r127673 ? r127682 : r127697;
        double r127699 = r127655 ? r127671 : r127698;
        return r127699;
}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Derivation

  1. Split input into 4 regimes
  2. if b < -7.914888075650537e+142

    1. Initial program 58.9

      \[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
    2. Using strategy rm
    3. Applied flip-+64.0

      \[\leadsto \frac{\color{blue}{\frac{\left(-b\right) \cdot \left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} \cdot \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}{3 \cdot a}\]
    4. Simplified62.8

      \[\leadsto \frac{\frac{\color{blue}{0 + \left(c \cdot a\right) \cdot 3}}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3 \cdot a}\]
    5. Simplified62.8

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

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

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

      \[\leadsto \frac{\frac{1}{\color{blue}{-\left(0.5 \cdot \frac{1}{b} + 0.375 \cdot \frac{a \cdot c}{{b}^{3}}\right)}}}{3 \cdot a}\]
    10. Simplified2.6

      \[\leadsto \frac{\frac{1}{\color{blue}{-\mathsf{fma}\left(0.375, \frac{a}{\frac{{b}^{3}}{c}}, \frac{0.5}{b}\right)}}}{3 \cdot a}\]

    if -7.914888075650537e+142 < b < -5.133205541814487e-258

    1. Initial program 8.1

      \[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt8.4

      \[\leadsto \frac{\color{blue}{\sqrt{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}} \cdot \sqrt{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}{3 \cdot a}\]
    4. Simplified8.4

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

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

    if -5.133205541814487e-258 < b < 3.568355706898483e+50

    1. Initial program 28.7

      \[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
    2. Using strategy rm
    3. Applied flip-+28.7

      \[\leadsto \frac{\color{blue}{\frac{\left(-b\right) \cdot \left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} \cdot \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}{3 \cdot a}\]
    4. Simplified16.4

      \[\leadsto \frac{\frac{\color{blue}{0 + \left(c \cdot a\right) \cdot 3}}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3 \cdot a}\]
    5. Simplified16.3

      \[\leadsto \frac{\frac{0 + \left(c \cdot a\right) \cdot 3}{\color{blue}{\left(-b\right) - \sqrt{\mathsf{fma}\left(b, b, -\left(c \cdot a\right) \cdot 3\right)}}}}{3 \cdot a}\]
    6. Using strategy rm
    7. Applied clear-num16.5

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

      \[\leadsto \frac{\frac{1}{\color{blue}{\frac{\frac{\left(-b\right) - \sqrt{\mathsf{fma}\left(-3, a \cdot c, b \cdot b\right)}}{c}}{3 \cdot a}}}}{3 \cdot a}\]
    9. Using strategy rm
    10. Applied div-inv14.3

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

      \[\leadsto \frac{\frac{1}{\color{blue}{\frac{\left(-b\right) - \sqrt{\mathsf{fma}\left(-3, a \cdot c, b \cdot b\right)}}{3} \cdot \frac{\frac{1}{c}}{a}}}}{3 \cdot a}\]
    12. Applied *-un-lft-identity16.9

      \[\leadsto \frac{\frac{\color{blue}{1 \cdot 1}}{\frac{\left(-b\right) - \sqrt{\mathsf{fma}\left(-3, a \cdot c, b \cdot b\right)}}{3} \cdot \frac{\frac{1}{c}}{a}}}{3 \cdot a}\]
    13. Applied times-frac16.9

      \[\leadsto \frac{\color{blue}{\frac{1}{\frac{\left(-b\right) - \sqrt{\mathsf{fma}\left(-3, a \cdot c, b \cdot b\right)}}{3}} \cdot \frac{1}{\frac{\frac{1}{c}}{a}}}}{3 \cdot a}\]
    14. Applied associate-/l*16.8

      \[\leadsto \color{blue}{\frac{\frac{1}{\frac{\left(-b\right) - \sqrt{\mathsf{fma}\left(-3, a \cdot c, b \cdot b\right)}}{3}}}{\frac{3 \cdot a}{\frac{1}{\frac{\frac{1}{c}}{a}}}}}\]
    15. Simplified9.9

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

    if 3.568355706898483e+50 < b

    1. Initial program 56.9

      \[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
    2. Using strategy rm
    3. Applied flip-+56.9

      \[\leadsto \frac{\color{blue}{\frac{\left(-b\right) \cdot \left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} \cdot \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}{3 \cdot a}\]
    4. Simplified29.4

      \[\leadsto \frac{\frac{\color{blue}{0 + \left(c \cdot a\right) \cdot 3}}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3 \cdot a}\]
    5. Simplified29.4

      \[\leadsto \frac{\frac{0 + \left(c \cdot a\right) \cdot 3}{\color{blue}{\left(-b\right) - \sqrt{\mathsf{fma}\left(b, b, -\left(c \cdot a\right) \cdot 3\right)}}}}{3 \cdot a}\]
    6. Using strategy rm
    7. Applied clear-num29.6

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

      \[\leadsto \frac{\frac{1}{\color{blue}{\frac{\frac{\left(-b\right) - \sqrt{\mathsf{fma}\left(-3, a \cdot c, b \cdot b\right)}}{c}}{3 \cdot a}}}}{3 \cdot a}\]
    9. Using strategy rm
    10. Applied div-inv29.6

      \[\leadsto \frac{\frac{1}{\frac{\color{blue}{\left(\left(-b\right) - \sqrt{\mathsf{fma}\left(-3, a \cdot c, b \cdot b\right)}\right) \cdot \frac{1}{c}}}{3 \cdot a}}}{3 \cdot a}\]
    11. Applied times-frac29.6

      \[\leadsto \frac{\frac{1}{\color{blue}{\frac{\left(-b\right) - \sqrt{\mathsf{fma}\left(-3, a \cdot c, b \cdot b\right)}}{3} \cdot \frac{\frac{1}{c}}{a}}}}{3 \cdot a}\]
    12. Applied *-un-lft-identity29.6

      \[\leadsto \frac{\frac{\color{blue}{1 \cdot 1}}{\frac{\left(-b\right) - \sqrt{\mathsf{fma}\left(-3, a \cdot c, b \cdot b\right)}}{3} \cdot \frac{\frac{1}{c}}{a}}}{3 \cdot a}\]
    13. Applied times-frac29.5

      \[\leadsto \frac{\color{blue}{\frac{1}{\frac{\left(-b\right) - \sqrt{\mathsf{fma}\left(-3, a \cdot c, b \cdot b\right)}}{3}} \cdot \frac{1}{\frac{\frac{1}{c}}{a}}}}{3 \cdot a}\]
    14. Applied associate-/l*28.0

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

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

      \[\leadsto \color{blue}{-0.5 \cdot \frac{c}{b}}\]
  3. Recombined 4 regimes into one program.
  4. Final simplification7.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -7.914888075650537298136924086228362423609 \cdot 10^{142}:\\ \;\;\;\;\frac{\frac{1}{-\mathsf{fma}\left(0.375, \frac{a}{\frac{{b}^{3}}{c}}, \frac{0.5}{b}\right)}}{3 \cdot a}\\ \mathbf{elif}\;b \le -5.133205541814486847475129018396623824182 \cdot 10^{-258}:\\ \;\;\;\;\frac{\sqrt{\sqrt{\mathsf{fma}\left(b, b, \left(c \cdot a\right) \cdot \left(-3\right)\right)} - b} \cdot \sqrt{\sqrt{\mathsf{fma}\left(b, b, \left(c \cdot a\right) \cdot \left(-3\right)\right)} - b}}{3 \cdot a}\\ \mathbf{elif}\;b \le 3.568355706898483080977528385553902422095 \cdot 10^{50}:\\ \;\;\;\;\frac{\frac{1}{\frac{\left(-b\right) - \sqrt{\mathsf{fma}\left(-3, c \cdot a, b \cdot b\right)}}{3}}}{\frac{3}{c}}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b} \cdot -0.5\\ \end{array}\]

Reproduce

herbie shell --seed 2019179 +o rules:numerics
(FPCore (a b c)
  :name "Cubic critical"
  (/ (+ (- b) (sqrt (- (* b b) (* (* 3.0 a) c)))) (* 3.0 a)))