Average Error: 43.7 → 43.2
Time: 40.5s
Precision: 64
\[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
\[\sqrt[3]{\frac{1}{a \cdot 3}} \cdot \left(\left({\left(\frac{1}{a \cdot 3}\right)}^{\frac{1}{3}} \cdot \sqrt[3]{\frac{1}{a \cdot 3}}\right) \cdot (\left(\sqrt{\sqrt{(-3 \cdot \left(a \cdot c\right) + \left(b \cdot b\right))_*}}\right) \cdot \left(\sqrt{\sqrt{(-3 \cdot \left(a \cdot c\right) + \left(b \cdot b\right))_*}}\right) + \left(-b\right))_*\right)\]
double f(double a, double b, double c, double __attribute__((unused)) d) {
        double r16032127 = b;
        double r16032128 = -r16032127;
        double r16032129 = r16032127 * r16032127;
        double r16032130 = 3.0;
        double r16032131 = a;
        double r16032132 = r16032130 * r16032131;
        double r16032133 = c;
        double r16032134 = r16032132 * r16032133;
        double r16032135 = r16032129 - r16032134;
        double r16032136 = sqrt(r16032135);
        double r16032137 = r16032128 + r16032136;
        double r16032138 = r16032137 / r16032132;
        return r16032138;
}

double f(double a, double b, double c, double __attribute__((unused)) d) {
        double r16032139 = 1.0;
        double r16032140 = a;
        double r16032141 = 3.0;
        double r16032142 = r16032140 * r16032141;
        double r16032143 = r16032139 / r16032142;
        double r16032144 = cbrt(r16032143);
        double r16032145 = 0.3333333333333333;
        double r16032146 = pow(r16032143, r16032145);
        double r16032147 = r16032146 * r16032144;
        double r16032148 = -3.0;
        double r16032149 = c;
        double r16032150 = r16032140 * r16032149;
        double r16032151 = b;
        double r16032152 = r16032151 * r16032151;
        double r16032153 = fma(r16032148, r16032150, r16032152);
        double r16032154 = sqrt(r16032153);
        double r16032155 = sqrt(r16032154);
        double r16032156 = -r16032151;
        double r16032157 = fma(r16032155, r16032155, r16032156);
        double r16032158 = r16032147 * r16032157;
        double r16032159 = r16032144 * r16032158;
        return r16032159;
}

\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}
\sqrt[3]{\frac{1}{a \cdot 3}} \cdot \left(\left({\left(\frac{1}{a \cdot 3}\right)}^{\frac{1}{3}} \cdot \sqrt[3]{\frac{1}{a \cdot 3}}\right) \cdot (\left(\sqrt{\sqrt{(-3 \cdot \left(a \cdot c\right) + \left(b \cdot b\right))_*}}\right) \cdot \left(\sqrt{\sqrt{(-3 \cdot \left(a \cdot c\right) + \left(b \cdot b\right))_*}}\right) + \left(-b\right))_*\right)

Error

Bits error versus a

Bits error versus b

Bits error versus c

Bits error versus d

Derivation

  1. Initial program 43.7

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

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

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

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

    \[\leadsto \frac{\color{blue}{(\left(\sqrt{\sqrt{(-3 \cdot \left(c \cdot a\right) + \left(b \cdot b\right))_*}}\right) \cdot \left(\sqrt{\sqrt{(-3 \cdot \left(c \cdot a\right) + \left(b \cdot b\right))_*}}\right) + \left(-b\right))_*}}{3 \cdot a}\]
  7. Using strategy rm
  8. Applied div-inv43.1

    \[\leadsto \color{blue}{(\left(\sqrt{\sqrt{(-3 \cdot \left(c \cdot a\right) + \left(b \cdot b\right))_*}}\right) \cdot \left(\sqrt{\sqrt{(-3 \cdot \left(c \cdot a\right) + \left(b \cdot b\right))_*}}\right) + \left(-b\right))_* \cdot \frac{1}{3 \cdot a}}\]
  9. Using strategy rm
  10. Applied add-cube-cbrt43.2

    \[\leadsto (\left(\sqrt{\sqrt{(-3 \cdot \left(c \cdot a\right) + \left(b \cdot b\right))_*}}\right) \cdot \left(\sqrt{\sqrt{(-3 \cdot \left(c \cdot a\right) + \left(b \cdot b\right))_*}}\right) + \left(-b\right))_* \cdot \color{blue}{\left(\left(\sqrt[3]{\frac{1}{3 \cdot a}} \cdot \sqrt[3]{\frac{1}{3 \cdot a}}\right) \cdot \sqrt[3]{\frac{1}{3 \cdot a}}\right)}\]
  11. Applied associate-*r*43.2

    \[\leadsto \color{blue}{\left((\left(\sqrt{\sqrt{(-3 \cdot \left(c \cdot a\right) + \left(b \cdot b\right))_*}}\right) \cdot \left(\sqrt{\sqrt{(-3 \cdot \left(c \cdot a\right) + \left(b \cdot b\right))_*}}\right) + \left(-b\right))_* \cdot \left(\sqrt[3]{\frac{1}{3 \cdot a}} \cdot \sqrt[3]{\frac{1}{3 \cdot a}}\right)\right) \cdot \sqrt[3]{\frac{1}{3 \cdot a}}}\]
  12. Using strategy rm
  13. Applied pow1/343.2

    \[\leadsto \left((\left(\sqrt{\sqrt{(-3 \cdot \left(c \cdot a\right) + \left(b \cdot b\right))_*}}\right) \cdot \left(\sqrt{\sqrt{(-3 \cdot \left(c \cdot a\right) + \left(b \cdot b\right))_*}}\right) + \left(-b\right))_* \cdot \left(\color{blue}{{\left(\frac{1}{3 \cdot a}\right)}^{\frac{1}{3}}} \cdot \sqrt[3]{\frac{1}{3 \cdot a}}\right)\right) \cdot \sqrt[3]{\frac{1}{3 \cdot a}}\]
  14. Final simplification43.2

    \[\leadsto \sqrt[3]{\frac{1}{a \cdot 3}} \cdot \left(\left({\left(\frac{1}{a \cdot 3}\right)}^{\frac{1}{3}} \cdot \sqrt[3]{\frac{1}{a \cdot 3}}\right) \cdot (\left(\sqrt{\sqrt{(-3 \cdot \left(a \cdot c\right) + \left(b \cdot b\right))_*}}\right) \cdot \left(\sqrt{\sqrt{(-3 \cdot \left(a \cdot c\right) + \left(b \cdot b\right))_*}}\right) + \left(-b\right))_*\right)\]

Reproduce

herbie shell --seed 2019102 +o rules:numerics
(FPCore (a b c d)
  :name "Cubic critical, medium range"
  :pre (and (< 1.1102230246251565e-16 a 9007199254740992.0) (< 1.1102230246251565e-16 b 9007199254740992.0) (< 1.1102230246251565e-16 c 9007199254740992.0))
  (/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)))