Average Error: 33.9 → 7.4
Time: 5.3s
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.71711085460076329 \cdot 10^{118}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \le 5.2125724160985202 \cdot 10^{-204}:\\ \;\;\;\;\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\ \mathbf{elif}\;b_2 \le 3461964491124549:\\ \;\;\;\;\frac{\frac{1}{1}}{\left(\left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{a} \cdot \frac{\sqrt[3]{\sqrt[3]{a}} \cdot \sqrt[3]{\sqrt[3]{a}}}{\sqrt[3]{c} \cdot \sqrt[3]{c}}\right) \cdot \frac{\sqrt[3]{\sqrt[3]{a}}}{\sqrt[3]{c}}\right) \cdot \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{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.71711085460076329 \cdot 10^{118}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\

\mathbf{elif}\;b_2 \le 5.2125724160985202 \cdot 10^{-204}:\\
\;\;\;\;\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\

\mathbf{elif}\;b_2 \le 3461964491124549:\\
\;\;\;\;\frac{\frac{1}{1}}{\left(\left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{a} \cdot \frac{\sqrt[3]{\sqrt[3]{a}} \cdot \sqrt[3]{\sqrt[3]{a}}}{\sqrt[3]{c} \cdot \sqrt[3]{c}}\right) \cdot \frac{\sqrt[3]{\sqrt[3]{a}}}{\sqrt[3]{c}}\right) \cdot \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}\\

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

\end{array}
double f(double a, double b_2, double c) {
        double r17745 = b_2;
        double r17746 = -r17745;
        double r17747 = r17745 * r17745;
        double r17748 = a;
        double r17749 = c;
        double r17750 = r17748 * r17749;
        double r17751 = r17747 - r17750;
        double r17752 = sqrt(r17751);
        double r17753 = r17746 + r17752;
        double r17754 = r17753 / r17748;
        return r17754;
}

double f(double a, double b_2, double c) {
        double r17755 = b_2;
        double r17756 = -3.7171108546007633e+118;
        bool r17757 = r17755 <= r17756;
        double r17758 = 0.5;
        double r17759 = c;
        double r17760 = r17759 / r17755;
        double r17761 = r17758 * r17760;
        double r17762 = 2.0;
        double r17763 = a;
        double r17764 = r17755 / r17763;
        double r17765 = r17762 * r17764;
        double r17766 = r17761 - r17765;
        double r17767 = 5.21257241609852e-204;
        bool r17768 = r17755 <= r17767;
        double r17769 = -r17755;
        double r17770 = r17755 * r17755;
        double r17771 = r17763 * r17759;
        double r17772 = r17770 - r17771;
        double r17773 = sqrt(r17772);
        double r17774 = r17769 + r17773;
        double r17775 = r17774 / r17763;
        double r17776 = 3461964491124549.0;
        bool r17777 = r17755 <= r17776;
        double r17778 = 1.0;
        double r17779 = r17778 / r17778;
        double r17780 = cbrt(r17763);
        double r17781 = r17780 * r17780;
        double r17782 = r17781 / r17763;
        double r17783 = cbrt(r17780);
        double r17784 = r17783 * r17783;
        double r17785 = cbrt(r17759);
        double r17786 = r17785 * r17785;
        double r17787 = r17784 / r17786;
        double r17788 = r17782 * r17787;
        double r17789 = r17783 / r17785;
        double r17790 = r17788 * r17789;
        double r17791 = r17769 - r17773;
        double r17792 = r17790 * r17791;
        double r17793 = r17779 / r17792;
        double r17794 = -0.5;
        double r17795 = r17794 * r17760;
        double r17796 = r17777 ? r17793 : r17795;
        double r17797 = r17768 ? r17775 : r17796;
        double r17798 = r17757 ? r17766 : r17797;
        return r17798;
}

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.7171108546007633e+118

    1. Initial program 52.0

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

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

    if -3.7171108546007633e+118 < b_2 < 5.21257241609852e-204

    1. Initial program 9.6

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

    if 5.21257241609852e-204 < b_2 < 3461964491124549.0

    1. Initial program 31.8

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

      \[\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. Using strategy rm
    6. Applied *-un-lft-identity16.9

      \[\leadsto \frac{\frac{0 + a \cdot c}{\color{blue}{1 \cdot \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}}}{a}\]
    7. Applied *-un-lft-identity16.9

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

      \[\leadsto \frac{\color{blue}{\frac{1}{1} \cdot \frac{0 + a \cdot c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}}{a}\]
    9. Applied associate-/l*17.0

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

      \[\leadsto \frac{\frac{1}{1}}{\color{blue}{\frac{a}{a \cdot c} \cdot \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}}\]
    11. Using strategy rm
    12. Applied add-cube-cbrt17.6

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

      \[\leadsto \frac{\frac{1}{1}}{\color{blue}{\left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{a} \cdot \frac{\sqrt[3]{a}}{c}\right)} \cdot \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}\]
    14. Using strategy rm
    15. Applied add-cube-cbrt13.0

      \[\leadsto \frac{\frac{1}{1}}{\left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{a} \cdot \frac{\sqrt[3]{a}}{\color{blue}{\left(\sqrt[3]{c} \cdot \sqrt[3]{c}\right) \cdot \sqrt[3]{c}}}\right) \cdot \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}\]
    16. Applied add-cube-cbrt13.2

      \[\leadsto \frac{\frac{1}{1}}{\left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{a} \cdot \frac{\color{blue}{\left(\sqrt[3]{\sqrt[3]{a}} \cdot \sqrt[3]{\sqrt[3]{a}}\right) \cdot \sqrt[3]{\sqrt[3]{a}}}}{\left(\sqrt[3]{c} \cdot \sqrt[3]{c}\right) \cdot \sqrt[3]{c}}\right) \cdot \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}\]
    17. Applied times-frac13.2

      \[\leadsto \frac{\frac{1}{1}}{\left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{a} \cdot \color{blue}{\left(\frac{\sqrt[3]{\sqrt[3]{a}} \cdot \sqrt[3]{\sqrt[3]{a}}}{\sqrt[3]{c} \cdot \sqrt[3]{c}} \cdot \frac{\sqrt[3]{\sqrt[3]{a}}}{\sqrt[3]{c}}\right)}\right) \cdot \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}\]
    18. Applied associate-*r*9.7

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

    if 3461964491124549.0 < b_2

    1. Initial program 55.9

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -3.71711085460076329 \cdot 10^{118}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \le 5.2125724160985202 \cdot 10^{-204}:\\ \;\;\;\;\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\ \mathbf{elif}\;b_2 \le 3461964491124549:\\ \;\;\;\;\frac{\frac{1}{1}}{\left(\left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{a} \cdot \frac{\sqrt[3]{\sqrt[3]{a}} \cdot \sqrt[3]{\sqrt[3]{a}}}{\sqrt[3]{c} \cdot \sqrt[3]{c}}\right) \cdot \frac{\sqrt[3]{\sqrt[3]{a}}}{\sqrt[3]{c}}\right) \cdot \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \end{array}\]

Reproduce

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