Average Error: 34.0 → 9.4
Time: 20.9s
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 -3628086182808922216479727071860655520743000:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -7.975591029427466896519638178068898735928 \cdot 10^{-96}:\\ \;\;\;\;\frac{\frac{\frac{a}{\frac{\sqrt{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}{c}}}{\sqrt{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}}{a}\\ \mathbf{elif}\;b_2 \le -5.358830408552924876342396298354647853638 \cdot 10^{-132}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le 6.326287366549382745037046972324082366467 \cdot 10^{74}:\\ \;\;\;\;\frac{-b_2}{a} - \frac{\sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_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 -3628086182808922216479727071860655520743000:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\

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

\mathbf{elif}\;b_2 \le -5.358830408552924876342396298354647853638 \cdot 10^{-132}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\

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

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

\end{array}
double f(double a, double b_2, double c) {
        double r133798 = b_2;
        double r133799 = -r133798;
        double r133800 = r133798 * r133798;
        double r133801 = a;
        double r133802 = c;
        double r133803 = r133801 * r133802;
        double r133804 = r133800 - r133803;
        double r133805 = sqrt(r133804);
        double r133806 = r133799 - r133805;
        double r133807 = r133806 / r133801;
        return r133807;
}

double f(double a, double b_2, double c) {
        double r133808 = b_2;
        double r133809 = -3.628086182808922e+42;
        bool r133810 = r133808 <= r133809;
        double r133811 = -0.5;
        double r133812 = c;
        double r133813 = r133812 / r133808;
        double r133814 = r133811 * r133813;
        double r133815 = -7.975591029427467e-96;
        bool r133816 = r133808 <= r133815;
        double r133817 = a;
        double r133818 = r133808 * r133808;
        double r133819 = r133817 * r133812;
        double r133820 = r133818 - r133819;
        double r133821 = sqrt(r133820);
        double r133822 = r133821 - r133808;
        double r133823 = sqrt(r133822);
        double r133824 = r133823 / r133812;
        double r133825 = r133817 / r133824;
        double r133826 = r133825 / r133823;
        double r133827 = r133826 / r133817;
        double r133828 = -5.358830408552925e-132;
        bool r133829 = r133808 <= r133828;
        double r133830 = 6.326287366549383e+74;
        bool r133831 = r133808 <= r133830;
        double r133832 = -r133808;
        double r133833 = r133832 / r133817;
        double r133834 = r133821 / r133817;
        double r133835 = r133833 - r133834;
        double r133836 = 0.5;
        double r133837 = r133836 * r133813;
        double r133838 = 2.0;
        double r133839 = r133808 / r133817;
        double r133840 = r133838 * r133839;
        double r133841 = r133837 - r133840;
        double r133842 = r133831 ? r133835 : r133841;
        double r133843 = r133829 ? r133814 : r133842;
        double r133844 = r133816 ? r133827 : r133843;
        double r133845 = r133810 ? r133814 : r133844;
        return r133845;
}

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 < -3.628086182808922e+42 or -7.975591029427467e-96 < b_2 < -5.358830408552925e-132

    1. Initial program 54.2

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

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

    if -3.628086182808922e+42 < b_2 < -7.975591029427467e-96

    1. Initial program 41.7

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

      \[\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.9

      \[\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.9

      \[\leadsto \frac{\frac{0 + a \cdot c}{\color{blue}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}}{a}\]
    6. Using strategy rm
    7. Applied add-sqr-sqrt17.1

      \[\leadsto \frac{\frac{0 + a \cdot c}{\color{blue}{\sqrt{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2} \cdot \sqrt{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}}}{a}\]
    8. Applied associate-/r*17.1

      \[\leadsto \frac{\color{blue}{\frac{\frac{0 + a \cdot c}{\sqrt{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}}{\sqrt{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}}}{a}\]
    9. Simplified15.8

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

    if -5.358830408552925e-132 < b_2 < 6.326287366549383e+74

    1. Initial program 11.6

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

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

    if 6.326287366549383e+74 < b_2

    1. Initial program 41.8

      \[\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
    2. Taylor expanded around inf 5.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 simplification9.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -3628086182808922216479727071860655520743000:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -7.975591029427466896519638178068898735928 \cdot 10^{-96}:\\ \;\;\;\;\frac{\frac{\frac{a}{\frac{\sqrt{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}{c}}}{\sqrt{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}}{a}\\ \mathbf{elif}\;b_2 \le -5.358830408552924876342396298354647853638 \cdot 10^{-132}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le 6.326287366549382745037046972324082366467 \cdot 10^{74}:\\ \;\;\;\;\frac{-b_2}{a} - \frac{\sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \end{array}\]

Reproduce

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