Average Error: 33.8 → 8.1
Time: 17.1s
Precision: 64
\[\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
\[\begin{array}{l} \mathbf{if}\;b_2 \le -3.56950087216670373365855698069146367898 \cdot 10^{75}:\\ \;\;\;\;\mathsf{fma}\left(\frac{c}{b_2}, \frac{1}{2}, \frac{b_2}{a} \cdot -2\right)\\ \mathbf{elif}\;b_2 \le 5.436810835085153174524099158561263332006 \cdot 10^{-239}:\\ \;\;\;\;\frac{1}{\frac{a}{\sqrt{\mathsf{fma}\left(a, -c, b_2 \cdot b_2\right)} - b_2}}\\ \mathbf{elif}\;b_2 \le 2.284582175117603073728646217665858890425 \cdot 10^{94}:\\ \;\;\;\;\frac{\frac{1}{\sqrt[3]{a} \cdot \sqrt[3]{a}}}{\sqrt{\sqrt{\mathsf{fma}\left(a, -c, {b_2}^{2}\right)} + b_2}} \cdot \left(\frac{a}{\sqrt[3]{a}} \cdot \frac{c}{-\sqrt{\sqrt{\mathsf{fma}\left(a, -c, {b_2}^{2}\right)} + b_2}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-1}{2} \cdot c}{b_2}\\ \end{array}\]
\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}
\begin{array}{l}
\mathbf{if}\;b_2 \le -3.56950087216670373365855698069146367898 \cdot 10^{75}:\\
\;\;\;\;\mathsf{fma}\left(\frac{c}{b_2}, \frac{1}{2}, \frac{b_2}{a} \cdot -2\right)\\

\mathbf{elif}\;b_2 \le 5.436810835085153174524099158561263332006 \cdot 10^{-239}:\\
\;\;\;\;\frac{1}{\frac{a}{\sqrt{\mathsf{fma}\left(a, -c, b_2 \cdot b_2\right)} - b_2}}\\

\mathbf{elif}\;b_2 \le 2.284582175117603073728646217665858890425 \cdot 10^{94}:\\
\;\;\;\;\frac{\frac{1}{\sqrt[3]{a} \cdot \sqrt[3]{a}}}{\sqrt{\sqrt{\mathsf{fma}\left(a, -c, {b_2}^{2}\right)} + b_2}} \cdot \left(\frac{a}{\sqrt[3]{a}} \cdot \frac{c}{-\sqrt{\sqrt{\mathsf{fma}\left(a, -c, {b_2}^{2}\right)} + b_2}}\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{-1}{2} \cdot c}{b_2}\\

\end{array}
double f(double a, double b_2, double c) {
        double r30192 = b_2;
        double r30193 = -r30192;
        double r30194 = r30192 * r30192;
        double r30195 = a;
        double r30196 = c;
        double r30197 = r30195 * r30196;
        double r30198 = r30194 - r30197;
        double r30199 = sqrt(r30198);
        double r30200 = r30193 + r30199;
        double r30201 = r30200 / r30195;
        return r30201;
}

double f(double a, double b_2, double c) {
        double r30202 = b_2;
        double r30203 = -3.5695008721667037e+75;
        bool r30204 = r30202 <= r30203;
        double r30205 = c;
        double r30206 = r30205 / r30202;
        double r30207 = 0.5;
        double r30208 = a;
        double r30209 = r30202 / r30208;
        double r30210 = -2.0;
        double r30211 = r30209 * r30210;
        double r30212 = fma(r30206, r30207, r30211);
        double r30213 = 5.436810835085153e-239;
        bool r30214 = r30202 <= r30213;
        double r30215 = 1.0;
        double r30216 = -r30205;
        double r30217 = r30202 * r30202;
        double r30218 = fma(r30208, r30216, r30217);
        double r30219 = sqrt(r30218);
        double r30220 = r30219 - r30202;
        double r30221 = r30208 / r30220;
        double r30222 = r30215 / r30221;
        double r30223 = 2.284582175117603e+94;
        bool r30224 = r30202 <= r30223;
        double r30225 = cbrt(r30208);
        double r30226 = r30225 * r30225;
        double r30227 = r30215 / r30226;
        double r30228 = 2.0;
        double r30229 = pow(r30202, r30228);
        double r30230 = fma(r30208, r30216, r30229);
        double r30231 = sqrt(r30230);
        double r30232 = r30231 + r30202;
        double r30233 = sqrt(r30232);
        double r30234 = r30227 / r30233;
        double r30235 = r30208 / r30225;
        double r30236 = -r30233;
        double r30237 = r30205 / r30236;
        double r30238 = r30235 * r30237;
        double r30239 = r30234 * r30238;
        double r30240 = -0.5;
        double r30241 = r30240 * r30205;
        double r30242 = r30241 / r30202;
        double r30243 = r30224 ? r30239 : r30242;
        double r30244 = r30214 ? r30222 : r30243;
        double r30245 = r30204 ? r30212 : r30244;
        return r30245;
}

Error

Bits error versus a

Bits error versus b_2

Bits error versus c

Derivation

  1. Split input into 4 regimes
  2. if b_2 < -3.5695008721667037e+75

    1. Initial program 42.0

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

      \[\leadsto \color{blue}{\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}}\]
    3. Simplified4.0

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

    if -3.5695008721667037e+75 < b_2 < 5.436810835085153e-239

    1. Initial program 10.7

      \[\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
    2. Using strategy rm
    3. Applied clear-num10.8

      \[\leadsto \color{blue}{\frac{1}{\frac{a}{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}}}\]
    4. Simplified10.8

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

    if 5.436810835085153e-239 < b_2 < 2.284582175117603e+94

    1. Initial program 33.8

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

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

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

      \[\leadsto \frac{\frac{0 + a \cdot c}{\color{blue}{-\left(b_2 + \sqrt{\mathsf{fma}\left(a, -c, b_2 \cdot b_2\right)}\right)}}}{a}\]
    6. Using strategy rm
    7. Applied add-cube-cbrt17.1

      \[\leadsto \frac{\frac{0 + a \cdot c}{-\left(b_2 + \sqrt{\mathsf{fma}\left(a, -c, b_2 \cdot b_2\right)}\right)}}{\color{blue}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}}\]
    8. Applied add-sqr-sqrt17.1

      \[\leadsto \frac{\frac{0 + a \cdot c}{-\color{blue}{\sqrt{b_2 + \sqrt{\mathsf{fma}\left(a, -c, b_2 \cdot b_2\right)}} \cdot \sqrt{b_2 + \sqrt{\mathsf{fma}\left(a, -c, b_2 \cdot b_2\right)}}}}}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}\]
    9. Applied distribute-rgt-neg-in17.1

      \[\leadsto \frac{\frac{0 + a \cdot c}{\color{blue}{\sqrt{b_2 + \sqrt{\mathsf{fma}\left(a, -c, b_2 \cdot b_2\right)}} \cdot \left(-\sqrt{b_2 + \sqrt{\mathsf{fma}\left(a, -c, b_2 \cdot b_2\right)}}\right)}}}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}\]
    10. Applied *-un-lft-identity17.1

      \[\leadsto \frac{\frac{\color{blue}{1 \cdot \left(0 + a \cdot c\right)}}{\sqrt{b_2 + \sqrt{\mathsf{fma}\left(a, -c, b_2 \cdot b_2\right)}} \cdot \left(-\sqrt{b_2 + \sqrt{\mathsf{fma}\left(a, -c, b_2 \cdot b_2\right)}}\right)}}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}\]
    11. Applied times-frac17.1

      \[\leadsto \frac{\color{blue}{\frac{1}{\sqrt{b_2 + \sqrt{\mathsf{fma}\left(a, -c, b_2 \cdot b_2\right)}}} \cdot \frac{0 + a \cdot c}{-\sqrt{b_2 + \sqrt{\mathsf{fma}\left(a, -c, b_2 \cdot b_2\right)}}}}}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}\]
    12. Applied times-frac16.7

      \[\leadsto \color{blue}{\frac{\frac{1}{\sqrt{b_2 + \sqrt{\mathsf{fma}\left(a, -c, b_2 \cdot b_2\right)}}}}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \frac{\frac{0 + a \cdot c}{-\sqrt{b_2 + \sqrt{\mathsf{fma}\left(a, -c, b_2 \cdot b_2\right)}}}}{\sqrt[3]{a}}}\]
    13. Simplified16.7

      \[\leadsto \color{blue}{\frac{\frac{1}{\sqrt[3]{a} \cdot \sqrt[3]{a}}}{\sqrt{b_2 + \sqrt{\mathsf{fma}\left(a, -c, {b_2}^{2}\right)}}}} \cdot \frac{\frac{0 + a \cdot c}{-\sqrt{b_2 + \sqrt{\mathsf{fma}\left(a, -c, b_2 \cdot b_2\right)}}}}{\sqrt[3]{a}}\]
    14. Simplified12.3

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

    if 2.284582175117603e+94 < b_2

    1. Initial program 59.4

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

      \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b_2}}\]
    3. Simplified2.6

      \[\leadsto \color{blue}{\frac{c \cdot \frac{-1}{2}}{b_2}}\]
  3. Recombined 4 regimes into one program.
  4. Final simplification8.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -3.56950087216670373365855698069146367898 \cdot 10^{75}:\\ \;\;\;\;\mathsf{fma}\left(\frac{c}{b_2}, \frac{1}{2}, \frac{b_2}{a} \cdot -2\right)\\ \mathbf{elif}\;b_2 \le 5.436810835085153174524099158561263332006 \cdot 10^{-239}:\\ \;\;\;\;\frac{1}{\frac{a}{\sqrt{\mathsf{fma}\left(a, -c, b_2 \cdot b_2\right)} - b_2}}\\ \mathbf{elif}\;b_2 \le 2.284582175117603073728646217665858890425 \cdot 10^{94}:\\ \;\;\;\;\frac{\frac{1}{\sqrt[3]{a} \cdot \sqrt[3]{a}}}{\sqrt{\sqrt{\mathsf{fma}\left(a, -c, {b_2}^{2}\right)} + b_2}} \cdot \left(\frac{a}{\sqrt[3]{a}} \cdot \frac{c}{-\sqrt{\sqrt{\mathsf{fma}\left(a, -c, {b_2}^{2}\right)} + b_2}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-1}{2} \cdot c}{b_2}\\ \end{array}\]

Reproduce

herbie shell --seed 2019195 +o rules:numerics
(FPCore (a b_2 c)
  :name "quad2p (problem 3.2.1, positive)"
  (/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))