Average Error: 33.1 → 6.7
Time: 1.7m
Precision: 64
\[\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\]
\[\begin{array}{l} \mathbf{if}\;b \le -1.8719024022082672 \cdot 10^{+146}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{4 \cdot c}{\left(a \cdot \frac{c}{b} - b\right) \cdot 2}\\ \mathbf{elif}\;b \le 3.0396083187725924 \cdot 10^{-273}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{4 \cdot c}{\sqrt{b \cdot b - a \cdot \left(4 \cdot c\right)} - b}\\ \mathbf{elif}\;b \le 5.724613295007455 \cdot 10^{+79}:\\ \;\;\;\;\frac{1}{\frac{2 \cdot a}{\left(-b\right) - \sqrt{b \cdot b - \left(a \cdot c\right) \cdot 4}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b} - \frac{b}{a}\\ \end{array}\]
\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}
\begin{array}{l}
\mathbf{if}\;b \le -1.8719024022082672 \cdot 10^{+146}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{4 \cdot c}{\left(a \cdot \frac{c}{b} - b\right) \cdot 2}\\

\mathbf{elif}\;b \le 3.0396083187725924 \cdot 10^{-273}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{4 \cdot c}{\sqrt{b \cdot b - a \cdot \left(4 \cdot c\right)} - b}\\

\mathbf{elif}\;b \le 5.724613295007455 \cdot 10^{+79}:\\
\;\;\;\;\frac{1}{\frac{2 \cdot a}{\left(-b\right) - \sqrt{b \cdot b - \left(a \cdot c\right) \cdot 4}}}\\

\mathbf{else}:\\
\;\;\;\;\frac{c}{b} - \frac{b}{a}\\

\end{array}
double f(double a, double b, double c) {
        double r10202146 = b;
        double r10202147 = -r10202146;
        double r10202148 = r10202146 * r10202146;
        double r10202149 = 4.0;
        double r10202150 = a;
        double r10202151 = c;
        double r10202152 = r10202150 * r10202151;
        double r10202153 = r10202149 * r10202152;
        double r10202154 = r10202148 - r10202153;
        double r10202155 = sqrt(r10202154);
        double r10202156 = r10202147 - r10202155;
        double r10202157 = 2.0;
        double r10202158 = r10202157 * r10202150;
        double r10202159 = r10202156 / r10202158;
        return r10202159;
}

double f(double a, double b, double c) {
        double r10202160 = b;
        double r10202161 = -1.8719024022082672e+146;
        bool r10202162 = r10202160 <= r10202161;
        double r10202163 = 0.5;
        double r10202164 = 4.0;
        double r10202165 = c;
        double r10202166 = r10202164 * r10202165;
        double r10202167 = a;
        double r10202168 = r10202165 / r10202160;
        double r10202169 = r10202167 * r10202168;
        double r10202170 = r10202169 - r10202160;
        double r10202171 = 2.0;
        double r10202172 = r10202170 * r10202171;
        double r10202173 = r10202166 / r10202172;
        double r10202174 = r10202163 * r10202173;
        double r10202175 = 3.0396083187725924e-273;
        bool r10202176 = r10202160 <= r10202175;
        double r10202177 = r10202160 * r10202160;
        double r10202178 = r10202167 * r10202166;
        double r10202179 = r10202177 - r10202178;
        double r10202180 = sqrt(r10202179);
        double r10202181 = r10202180 - r10202160;
        double r10202182 = r10202166 / r10202181;
        double r10202183 = r10202163 * r10202182;
        double r10202184 = 5.724613295007455e+79;
        bool r10202185 = r10202160 <= r10202184;
        double r10202186 = 1.0;
        double r10202187 = r10202171 * r10202167;
        double r10202188 = -r10202160;
        double r10202189 = r10202167 * r10202165;
        double r10202190 = r10202189 * r10202164;
        double r10202191 = r10202177 - r10202190;
        double r10202192 = sqrt(r10202191);
        double r10202193 = r10202188 - r10202192;
        double r10202194 = r10202187 / r10202193;
        double r10202195 = r10202186 / r10202194;
        double r10202196 = r10202160 / r10202167;
        double r10202197 = r10202168 - r10202196;
        double r10202198 = r10202185 ? r10202195 : r10202197;
        double r10202199 = r10202176 ? r10202183 : r10202198;
        double r10202200 = r10202162 ? r10202174 : r10202199;
        return r10202200;
}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original33.1
Target20.4
Herbie6.7
\[\begin{array}{l} \mathbf{if}\;b \lt 0:\\ \;\;\;\;\frac{c}{a \cdot \frac{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\\ \end{array}\]

Derivation

  1. Split input into 4 regimes
  2. if b < -1.8719024022082672e+146

    1. Initial program 62.0

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

      \[\leadsto \frac{\color{blue}{\frac{\left(-b\right) \cdot \left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)} \cdot \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}}{2 \cdot a}\]
    4. Simplified36.8

      \[\leadsto \frac{\frac{\color{blue}{\left(a \cdot c\right) \cdot 4}}{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}{2 \cdot a}\]
    5. Using strategy rm
    6. Applied *-un-lft-identity36.8

      \[\leadsto \frac{\color{blue}{1 \cdot \frac{\left(a \cdot c\right) \cdot 4}{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}}{2 \cdot a}\]
    7. Applied times-frac36.8

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

      \[\leadsto \color{blue}{\frac{1}{2}} \cdot \frac{\frac{\left(a \cdot c\right) \cdot 4}{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}{a}\]
    9. Simplified36.6

      \[\leadsto \frac{1}{2} \cdot \color{blue}{\frac{4 \cdot c}{\sqrt{b \cdot b - a \cdot \left(4 \cdot c\right)} - b}}\]
    10. Taylor expanded around -inf 7.4

      \[\leadsto \frac{1}{2} \cdot \frac{4 \cdot c}{\color{blue}{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}}\]
    11. Simplified1.6

      \[\leadsto \frac{1}{2} \cdot \frac{4 \cdot c}{\color{blue}{\left(a \cdot \frac{c}{b} - b\right) \cdot 2}}\]

    if -1.8719024022082672e+146 < b < 3.0396083187725924e-273

    1. Initial program 33.1

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

      \[\leadsto \frac{\color{blue}{\frac{\left(-b\right) \cdot \left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)} \cdot \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}}{2 \cdot a}\]
    4. Simplified15.9

      \[\leadsto \frac{\frac{\color{blue}{\left(a \cdot c\right) \cdot 4}}{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}{2 \cdot a}\]
    5. Using strategy rm
    6. Applied *-un-lft-identity15.9

      \[\leadsto \frac{\color{blue}{1 \cdot \frac{\left(a \cdot c\right) \cdot 4}{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}}{2 \cdot a}\]
    7. Applied times-frac15.9

      \[\leadsto \color{blue}{\frac{1}{2} \cdot \frac{\frac{\left(a \cdot c\right) \cdot 4}{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}{a}}\]
    8. Simplified15.9

      \[\leadsto \color{blue}{\frac{1}{2}} \cdot \frac{\frac{\left(a \cdot c\right) \cdot 4}{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}{a}\]
    9. Simplified8.8

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

    if 3.0396083187725924e-273 < b < 5.724613295007455e+79

    1. Initial program 8.5

      \[\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity8.5

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

      \[\leadsto \frac{\color{blue}{1 \cdot \left(-b\right)} - 1 \cdot \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\]
    5. Applied distribute-lft-out--8.5

      \[\leadsto \frac{\color{blue}{1 \cdot \left(\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}{2 \cdot a}\]
    6. Applied associate-/l*8.6

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

    if 5.724613295007455e+79 < b

    1. Initial program 40.6

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

      \[\leadsto \color{blue}{\frac{c}{b} - \frac{b}{a}}\]
  3. Recombined 4 regimes into one program.
  4. Final simplification6.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -1.8719024022082672 \cdot 10^{+146}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{4 \cdot c}{\left(a \cdot \frac{c}{b} - b\right) \cdot 2}\\ \mathbf{elif}\;b \le 3.0396083187725924 \cdot 10^{-273}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{4 \cdot c}{\sqrt{b \cdot b - a \cdot \left(4 \cdot c\right)} - b}\\ \mathbf{elif}\;b \le 5.724613295007455 \cdot 10^{+79}:\\ \;\;\;\;\frac{1}{\frac{2 \cdot a}{\left(-b\right) - \sqrt{b \cdot b - \left(a \cdot c\right) \cdot 4}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b} - \frac{b}{a}\\ \end{array}\]

Reproduce

herbie shell --seed 2019125 
(FPCore (a b c)
  :name "quadm (p42, negative)"

  :herbie-target
  (if (< b 0) (/ c (* a (/ (+ (- b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)))) (/ (- (- b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)))

  (/ (- (- b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)))