Average Error: 34.2 → 11.6
Time: 25.1s
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 -2.895414539362304645852221252977125330123 \cdot 10^{111}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\frac{a \cdot c}{b}, 1.5, b \cdot -2\right)}{3 \cdot a}\\ \mathbf{elif}\;b \le 1.698277525249925633382980747692482567317 \cdot 10^{-273}:\\ \;\;\;\;\frac{\sqrt{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b} \cdot \sqrt{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}}{3 \cdot a}\\ \mathbf{elif}\;b \le 9.536320284549619388810913795872221190386 \cdot 10^{133}:\\ \;\;\;\;3 \cdot \left(\frac{a}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \frac{\frac{\frac{c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3}}{\sqrt[3]{a}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{3 \cdot \left(a \cdot c\right)}{\left(-b\right) - \left(b - 1.5 \cdot \frac{a \cdot c}{b}\right)}}{3}}{a}\\ \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 -2.895414539362304645852221252977125330123 \cdot 10^{111}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{a \cdot c}{b}, 1.5, b \cdot -2\right)}{3 \cdot a}\\

\mathbf{elif}\;b \le 1.698277525249925633382980747692482567317 \cdot 10^{-273}:\\
\;\;\;\;\frac{\sqrt{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b} \cdot \sqrt{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}}{3 \cdot a}\\

\mathbf{elif}\;b \le 9.536320284549619388810913795872221190386 \cdot 10^{133}:\\
\;\;\;\;3 \cdot \left(\frac{a}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \frac{\frac{\frac{c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3}}{\sqrt[3]{a}}\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{3 \cdot \left(a \cdot c\right)}{\left(-b\right) - \left(b - 1.5 \cdot \frac{a \cdot c}{b}\right)}}{3}}{a}\\

\end{array}
double f(double a, double b, double c) {
        double r109012 = b;
        double r109013 = -r109012;
        double r109014 = r109012 * r109012;
        double r109015 = 3.0;
        double r109016 = a;
        double r109017 = r109015 * r109016;
        double r109018 = c;
        double r109019 = r109017 * r109018;
        double r109020 = r109014 - r109019;
        double r109021 = sqrt(r109020);
        double r109022 = r109013 + r109021;
        double r109023 = r109022 / r109017;
        return r109023;
}

double f(double a, double b, double c) {
        double r109024 = b;
        double r109025 = -2.8954145393623046e+111;
        bool r109026 = r109024 <= r109025;
        double r109027 = a;
        double r109028 = c;
        double r109029 = r109027 * r109028;
        double r109030 = r109029 / r109024;
        double r109031 = 1.5;
        double r109032 = -2.0;
        double r109033 = r109024 * r109032;
        double r109034 = fma(r109030, r109031, r109033);
        double r109035 = 3.0;
        double r109036 = r109035 * r109027;
        double r109037 = r109034 / r109036;
        double r109038 = 1.6982775252499256e-273;
        bool r109039 = r109024 <= r109038;
        double r109040 = r109024 * r109024;
        double r109041 = r109036 * r109028;
        double r109042 = r109040 - r109041;
        double r109043 = sqrt(r109042);
        double r109044 = r109043 - r109024;
        double r109045 = sqrt(r109044);
        double r109046 = r109045 * r109045;
        double r109047 = r109046 / r109036;
        double r109048 = 9.53632028454962e+133;
        bool r109049 = r109024 <= r109048;
        double r109050 = cbrt(r109027);
        double r109051 = r109050 * r109050;
        double r109052 = r109027 / r109051;
        double r109053 = -r109024;
        double r109054 = r109053 - r109043;
        double r109055 = r109028 / r109054;
        double r109056 = r109055 / r109035;
        double r109057 = r109056 / r109050;
        double r109058 = r109052 * r109057;
        double r109059 = r109035 * r109058;
        double r109060 = r109035 * r109029;
        double r109061 = r109031 * r109030;
        double r109062 = r109024 - r109061;
        double r109063 = r109053 - r109062;
        double r109064 = r109060 / r109063;
        double r109065 = r109064 / r109035;
        double r109066 = r109065 / r109027;
        double r109067 = r109049 ? r109059 : r109066;
        double r109068 = r109039 ? r109047 : r109067;
        double r109069 = r109026 ? r109037 : r109068;
        return r109069;
}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Derivation

  1. Split input into 4 regimes
  2. if b < -2.8954145393623046e+111

    1. Initial program 48.8

      \[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
    2. Taylor expanded around -inf 10.0

      \[\leadsto \frac{\color{blue}{1.5 \cdot \frac{a \cdot c}{b} - 2 \cdot b}}{3 \cdot a}\]
    3. Simplified10.0

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

    if -2.8954145393623046e+111 < b < 1.6982775252499256e-273

    1. Initial program 9.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-sqrt9.3

      \[\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. Simplified9.3

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

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

    if 1.6982775252499256e-273 < b < 9.53632028454962e+133

    1. Initial program 35.3

      \[\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-+35.3

      \[\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.8

      \[\leadsto \frac{\frac{\color{blue}{3 \cdot \left(a \cdot c\right) + 0}}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3 \cdot a}\]
    5. Using strategy rm
    6. Applied associate-/r*16.8

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

      \[\leadsto \frac{\color{blue}{\frac{\frac{3 \cdot \left(a \cdot c\right)}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3}}}{a}\]
    8. Using strategy rm
    9. Applied *-un-lft-identity16.8

      \[\leadsto \frac{\frac{\frac{3 \cdot \left(a \cdot c\right)}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3}}{\color{blue}{1 \cdot a}}\]
    10. Applied *-un-lft-identity16.8

      \[\leadsto \frac{\frac{\frac{3 \cdot \left(a \cdot c\right)}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{\color{blue}{1 \cdot 3}}}{1 \cdot a}\]
    11. Applied *-un-lft-identity16.8

      \[\leadsto \frac{\frac{\frac{3 \cdot \left(a \cdot c\right)}{\color{blue}{1 \cdot \left(\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}\right)}}}{1 \cdot 3}}{1 \cdot a}\]
    12. Applied times-frac16.7

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

      \[\leadsto \frac{\color{blue}{\frac{\frac{3}{1}}{1} \cdot \frac{\frac{a \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3}}}{1 \cdot a}\]
    14. Applied times-frac16.8

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

      \[\leadsto \color{blue}{3} \cdot \frac{\frac{\frac{a \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3}}{a}\]
    16. Using strategy rm
    17. Applied add-cube-cbrt17.4

      \[\leadsto 3 \cdot \frac{\frac{\frac{a \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3}}{\color{blue}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}}\]
    18. Applied *-un-lft-identity17.4

      \[\leadsto 3 \cdot \frac{\frac{\frac{a \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{\color{blue}{1 \cdot 3}}}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}\]
    19. Applied *-un-lft-identity17.4

      \[\leadsto 3 \cdot \frac{\frac{\frac{a \cdot c}{\color{blue}{1 \cdot \left(\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}\right)}}}{1 \cdot 3}}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}\]
    20. Applied times-frac15.1

      \[\leadsto 3 \cdot \frac{\frac{\color{blue}{\frac{a}{1} \cdot \frac{c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}{1 \cdot 3}}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}\]
    21. Applied times-frac15.1

      \[\leadsto 3 \cdot \frac{\color{blue}{\frac{\frac{a}{1}}{1} \cdot \frac{\frac{c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3}}}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}\]
    22. Applied times-frac12.3

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

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

    if 9.53632028454962e+133 < b

    1. Initial program 62.2

      \[\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-+62.2

      \[\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. Simplified35.9

      \[\leadsto \frac{\frac{\color{blue}{3 \cdot \left(a \cdot c\right) + 0}}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3 \cdot a}\]
    5. Using strategy rm
    6. Applied associate-/r*35.9

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

      \[\leadsto \frac{\color{blue}{\frac{\frac{3 \cdot \left(a \cdot c\right)}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3}}}{a}\]
    8. Taylor expanded around inf 15.4

      \[\leadsto \frac{\frac{\frac{3 \cdot \left(a \cdot c\right)}{\left(-b\right) - \color{blue}{\left(b - 1.5 \cdot \frac{a \cdot c}{b}\right)}}}{3}}{a}\]
  3. Recombined 4 regimes into one program.
  4. Final simplification11.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -2.895414539362304645852221252977125330123 \cdot 10^{111}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\frac{a \cdot c}{b}, 1.5, b \cdot -2\right)}{3 \cdot a}\\ \mathbf{elif}\;b \le 1.698277525249925633382980747692482567317 \cdot 10^{-273}:\\ \;\;\;\;\frac{\sqrt{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b} \cdot \sqrt{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}}{3 \cdot a}\\ \mathbf{elif}\;b \le 9.536320284549619388810913795872221190386 \cdot 10^{133}:\\ \;\;\;\;3 \cdot \left(\frac{a}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \frac{\frac{\frac{c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3}}{\sqrt[3]{a}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{3 \cdot \left(a \cdot c\right)}{\left(-b\right) - \left(b - 1.5 \cdot \frac{a \cdot c}{b}\right)}}{3}}{a}\\ \end{array}\]

Reproduce

herbie shell --seed 2019326 +o rules:numerics
(FPCore (a b c)
  :name "Cubic critical"
  :precision binary64
  (/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)))