Average Error: 34.3 → 10.1
Time: 36.8s
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 -24515142736560382464938314039296:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -6.822071483797687387556193409058787192968 \cdot 10^{-95}:\\ \;\;\;\;\frac{a}{\frac{a}{\frac{c}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}}\\ \mathbf{elif}\;b_2 \le 0.173897874048477174557802982235443778336:\\ \;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b_2} \cdot \frac{1}{2} - 2 \cdot \frac{b_2}{a}\\ \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 -24515142736560382464938314039296:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\

\mathbf{elif}\;b_2 \le -6.822071483797687387556193409058787192968 \cdot 10^{-95}:\\
\;\;\;\;\frac{a}{\frac{a}{\frac{c}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}}\\

\mathbf{elif}\;b_2 \le 0.173897874048477174557802982235443778336:\\
\;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\

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

\end{array}
double f(double a, double b_2, double c) {
        double r2868300 = b_2;
        double r2868301 = -r2868300;
        double r2868302 = r2868300 * r2868300;
        double r2868303 = a;
        double r2868304 = c;
        double r2868305 = r2868303 * r2868304;
        double r2868306 = r2868302 - r2868305;
        double r2868307 = sqrt(r2868306);
        double r2868308 = r2868301 - r2868307;
        double r2868309 = r2868308 / r2868303;
        return r2868309;
}

double f(double a, double b_2, double c) {
        double r2868310 = b_2;
        double r2868311 = -2.4515142736560382e+31;
        bool r2868312 = r2868310 <= r2868311;
        double r2868313 = -0.5;
        double r2868314 = c;
        double r2868315 = r2868314 / r2868310;
        double r2868316 = r2868313 * r2868315;
        double r2868317 = -6.822071483797687e-95;
        bool r2868318 = r2868310 <= r2868317;
        double r2868319 = a;
        double r2868320 = r2868310 * r2868310;
        double r2868321 = r2868319 * r2868314;
        double r2868322 = r2868320 - r2868321;
        double r2868323 = sqrt(r2868322);
        double r2868324 = r2868323 - r2868310;
        double r2868325 = r2868314 / r2868324;
        double r2868326 = r2868319 / r2868325;
        double r2868327 = r2868319 / r2868326;
        double r2868328 = 0.17389787404847717;
        bool r2868329 = r2868310 <= r2868328;
        double r2868330 = -r2868310;
        double r2868331 = r2868330 - r2868323;
        double r2868332 = r2868331 / r2868319;
        double r2868333 = 0.5;
        double r2868334 = r2868315 * r2868333;
        double r2868335 = 2.0;
        double r2868336 = r2868310 / r2868319;
        double r2868337 = r2868335 * r2868336;
        double r2868338 = r2868334 - r2868337;
        double r2868339 = r2868329 ? r2868332 : r2868338;
        double r2868340 = r2868318 ? r2868327 : r2868339;
        double r2868341 = r2868312 ? r2868316 : r2868340;
        return r2868341;
}

Error

Bits error versus a

Bits error versus b_2

Bits error versus c

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 4 regimes
  2. if b_2 < -2.4515142736560382e+31

    1. Initial program 56.5

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

      \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b_2}}\]

    if -2.4515142736560382e+31 < b_2 < -6.822071483797687e-95

    1. Initial program 39.6

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

      \[\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. Simplified14.0

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

      \[\leadsto \frac{\frac{a \cdot c}{\color{blue}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}}{a}\]
    6. Using strategy rm
    7. Applied *-un-lft-identity14.0

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

      \[\leadsto \frac{\color{blue}{\frac{a}{1} \cdot \frac{c}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}}{a}\]
    9. Applied associate-/l*20.2

      \[\leadsto \color{blue}{\frac{\frac{a}{1}}{\frac{a}{\frac{c}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}}}\]

    if -6.822071483797687e-95 < b_2 < 0.17389787404847717

    1. Initial program 14.5

      \[\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]

    if 0.17389787404847717 < b_2

    1. Initial program 31.2

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -24515142736560382464938314039296:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -6.822071483797687387556193409058787192968 \cdot 10^{-95}:\\ \;\;\;\;\frac{a}{\frac{a}{\frac{c}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}}\\ \mathbf{elif}\;b_2 \le 0.173897874048477174557802982235443778336:\\ \;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b_2} \cdot \frac{1}{2} - 2 \cdot \frac{b_2}{a}\\ \end{array}\]

Reproduce

herbie shell --seed 2019168 
(FPCore (a b_2 c)
  :name "NMSE problem 3.2.1"
  (/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))