Average Error: 34.3 → 8.6
Time: 19.0s
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 -9661478263987.111328125:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -4.792446256118343513399316360203386878654 \cdot 10^{-145}:\\ \;\;\;\;\frac{c \cdot a}{b_2 - \sqrt{b_2 \cdot b_2 - c \cdot a}} \cdot \frac{-1}{a}\\ \mathbf{elif}\;b_2 \le 1.764973784792091233612894541626891615653 \cdot 10^{83}:\\ \;\;\;\;-\frac{\sqrt{b_2 \cdot b_2 - c \cdot a} + b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{2} \cdot c}{b_2} - \frac{b_2}{a} \cdot 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 -9661478263987.111328125:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\

\mathbf{elif}\;b_2 \le -4.792446256118343513399316360203386878654 \cdot 10^{-145}:\\
\;\;\;\;\frac{c \cdot a}{b_2 - \sqrt{b_2 \cdot b_2 - c \cdot a}} \cdot \frac{-1}{a}\\

\mathbf{elif}\;b_2 \le 1.764973784792091233612894541626891615653 \cdot 10^{83}:\\
\;\;\;\;-\frac{\sqrt{b_2 \cdot b_2 - c \cdot a} + b_2}{a}\\

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

\end{array}
double f(double a, double b_2, double c) {
        double r74059 = b_2;
        double r74060 = -r74059;
        double r74061 = r74059 * r74059;
        double r74062 = a;
        double r74063 = c;
        double r74064 = r74062 * r74063;
        double r74065 = r74061 - r74064;
        double r74066 = sqrt(r74065);
        double r74067 = r74060 - r74066;
        double r74068 = r74067 / r74062;
        return r74068;
}

double f(double a, double b_2, double c) {
        double r74069 = b_2;
        double r74070 = -9661478263987.111;
        bool r74071 = r74069 <= r74070;
        double r74072 = -0.5;
        double r74073 = c;
        double r74074 = r74073 / r74069;
        double r74075 = r74072 * r74074;
        double r74076 = -4.7924462561183435e-145;
        bool r74077 = r74069 <= r74076;
        double r74078 = a;
        double r74079 = r74073 * r74078;
        double r74080 = r74069 * r74069;
        double r74081 = r74080 - r74079;
        double r74082 = sqrt(r74081);
        double r74083 = r74069 - r74082;
        double r74084 = r74079 / r74083;
        double r74085 = -1.0;
        double r74086 = r74085 / r74078;
        double r74087 = r74084 * r74086;
        double r74088 = 1.7649737847920912e+83;
        bool r74089 = r74069 <= r74088;
        double r74090 = r74082 + r74069;
        double r74091 = r74090 / r74078;
        double r74092 = -r74091;
        double r74093 = 0.5;
        double r74094 = r74093 * r74073;
        double r74095 = r74094 / r74069;
        double r74096 = r74069 / r74078;
        double r74097 = 2.0;
        double r74098 = r74096 * r74097;
        double r74099 = r74095 - r74098;
        double r74100 = r74089 ? r74092 : r74099;
        double r74101 = r74077 ? r74087 : r74100;
        double r74102 = r74071 ? r74075 : r74101;
        return r74102;
}

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 < -9661478263987.111

    1. Initial program 56.4

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

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

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

    if -9661478263987.111 < b_2 < -4.7924462561183435e-145

    1. Initial program 36.3

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

      \[\leadsto \color{blue}{\frac{-\left(b_2 + \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}{a}}\]
    3. Using strategy rm
    4. Applied flip-+36.3

      \[\leadsto \frac{-\color{blue}{\frac{b_2 \cdot b_2 - \sqrt{b_2 \cdot b_2 - a \cdot c} \cdot \sqrt{b_2 \cdot b_2 - a \cdot c}}{b_2 - \sqrt{b_2 \cdot b_2 - a \cdot c}}}}{a}\]
    5. Simplified17.4

      \[\leadsto \frac{-\frac{\color{blue}{0 + a \cdot c}}{b_2 - \sqrt{b_2 \cdot b_2 - a \cdot c}}}{a}\]
    6. Using strategy rm
    7. Applied div-inv17.5

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

    if -4.7924462561183435e-145 < b_2 < 1.7649737847920912e+83

    1. Initial program 11.1

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

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

    if 1.7649737847920912e+83 < b_2

    1. Initial program 43.7

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

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

      \[\leadsto \color{blue}{\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}}\]
    4. Simplified3.6

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -9661478263987.111328125:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -4.792446256118343513399316360203386878654 \cdot 10^{-145}:\\ \;\;\;\;\frac{c \cdot a}{b_2 - \sqrt{b_2 \cdot b_2 - c \cdot a}} \cdot \frac{-1}{a}\\ \mathbf{elif}\;b_2 \le 1.764973784792091233612894541626891615653 \cdot 10^{83}:\\ \;\;\;\;-\frac{\sqrt{b_2 \cdot b_2 - c \cdot a} + b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{2} \cdot c}{b_2} - \frac{b_2}{a} \cdot 2\\ \end{array}\]

Reproduce

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