Average Error: 34.3 → 6.7
Time: 2.6min
Precision: binary64
Cost: 8131
\[\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
\[\begin{array}{l} \mathbf{if}\;b_2 \leq -6.312232056986123 \cdot 10^{+152}:\\ \;\;\;\;0.5 \cdot \frac{c}{b_2} + -2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \leq -1.4821568082008274 \cdot 10^{-280}:\\ \;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - c \cdot a}}{a} - \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \leq 5.894200455189858 \cdot 10^{+70}:\\ \;\;\;\;\frac{c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - c \cdot a}}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b_2} \cdot -0.5\\ \end{array}\]
\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}
\begin{array}{l}
\mathbf{if}\;b_2 \leq -6.312232056986123 \cdot 10^{+152}:\\
\;\;\;\;0.5 \cdot \frac{c}{b_2} + -2 \cdot \frac{b_2}{a}\\

\mathbf{elif}\;b_2 \leq -1.4821568082008274 \cdot 10^{-280}:\\
\;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - c \cdot a}}{a} - \frac{b_2}{a}\\

\mathbf{elif}\;b_2 \leq 5.894200455189858 \cdot 10^{+70}:\\
\;\;\;\;\frac{c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - c \cdot a}}\\

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

\end{array}
(FPCore (a b_2 c)
 :precision binary64
 (/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))
(FPCore (a b_2 c)
 :precision binary64
 (if (<= b_2 -6.312232056986123e+152)
   (+ (* 0.5 (/ c b_2)) (* -2.0 (/ b_2 a)))
   (if (<= b_2 -1.4821568082008274e-280)
     (- (/ (sqrt (- (* b_2 b_2) (* c a))) a) (/ b_2 a))
     (if (<= b_2 5.894200455189858e+70)
       (/ c (- (- b_2) (sqrt (- (* b_2 b_2) (* c a)))))
       (* (/ c b_2) -0.5)))))
double code(double a, double b_2, double c) {
	return (-b_2 + sqrt((b_2 * b_2) - (a * c))) / a;
}
double code(double a, double b_2, double c) {
	double tmp;
	if (b_2 <= -6.312232056986123e+152) {
		tmp = (0.5 * (c / b_2)) + (-2.0 * (b_2 / a));
	} else if (b_2 <= -1.4821568082008274e-280) {
		tmp = (sqrt((b_2 * b_2) - (c * a)) / a) - (b_2 / a);
	} else if (b_2 <= 5.894200455189858e+70) {
		tmp = c / (-b_2 - sqrt((b_2 * b_2) - (c * a)));
	} else {
		tmp = (c / b_2) * -0.5;
	}
	return tmp;
}

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

Alternatives

Alternative 1
Error10.0
Cost7874
\[\begin{array}{l} \mathbf{if}\;b_2 \leq -2.7875763434404928 \cdot 10^{+152}:\\ \;\;\;\;0.5 \cdot \frac{c}{b_2} + -2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \leq 1.0962098723847624 \cdot 10^{-60}:\\ \;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - c \cdot a}}{a} - \frac{b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b_2} \cdot -0.5\\ \end{array}\]
Alternative 2
Error10.0
Cost7746
\[\begin{array}{l} \mathbf{if}\;b_2 \leq -1.2686276298461605 \cdot 10^{+154}:\\ \;\;\;\;0.5 \cdot \frac{c}{b_2} + -2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \leq 1.6015594875451156 \cdot 10^{-59}:\\ \;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b_2} \cdot -0.5\\ \end{array}\]
Alternative 3
Error13.7
Cost7490
\[\begin{array}{l} \mathbf{if}\;b_2 \leq -2.4522605884826868 \cdot 10^{-96}:\\ \;\;\;\;0.5 \cdot \frac{c}{b_2} + -2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \leq 1.634375766474329 \cdot 10^{-62}:\\ \;\;\;\;-\frac{c}{\sqrt{-c \cdot a}}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b_2} \cdot -0.5\\ \end{array}\]
Alternative 4
Error13.7
Cost7426
\[\begin{array}{l} \mathbf{if}\;b_2 \leq -4.08032869154156 \cdot 10^{-96}:\\ \;\;\;\;0.5 \cdot \frac{c}{b_2} + -2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \leq 1.727440244410573 \cdot 10^{-56}:\\ \;\;\;\;\frac{\sqrt{-c \cdot a}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b_2} \cdot -0.5\\ \end{array}\]
Alternative 5
Error22.6
Cost641
\[\begin{array}{l} \mathbf{if}\;b_2 \leq 1.442680684528265 \cdot 10^{-254}:\\ \;\;\;\;\frac{b_2 \cdot -2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b_2} \cdot -0.5\\ \end{array}\]
Alternative 6
Error39.0
Cost641
\[\begin{array}{l} \mathbf{if}\;b_2 \leq 4.2853242449381334 \cdot 10^{-70}:\\ \;\;\;\;\frac{b_2 \cdot -2}{a}\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array}\]
Alternative 7
Error56.0
Cost64
\[0\]
Alternative 8
Error61.6
Cost64
\[1\]

Error

Time

Derivation

  1. Split input into 4 regimes
  2. if b_2 < -6.3122320569861226e152

    1. Initial program 63.3

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

      \[\leadsto \color{blue}{0.5 \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}}\]
    3. Simplified1.9

      \[\leadsto \color{blue}{0.5 \cdot \frac{c}{b_2} + -2 \cdot \frac{b_2}{a}}\]
    4. Simplified1.9

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

    if -6.3122320569861226e152 < b_2 < -1.48215680820082742e-280

    1. Initial program 8.0

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

      \[\leadsto \color{blue}{\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}}\]
    3. Using strategy rm
    4. Applied div-sub_binary648.0

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

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

    if -1.48215680820082742e-280 < b_2 < 5.89420045518985839e70

    1. Initial program 30.6

      \[\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
    2. Using strategy rm
    3. Applied flip-+_binary6430.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. Simplified16.8

      \[\leadsto \frac{\frac{\color{blue}{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-identity_binary6416.8

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

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

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

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

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

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

    if 5.89420045518985839e70 < b_2

    1. Initial program 57.9

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

      \[\leadsto \color{blue}{\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}}\]
    3. Taylor expanded around inf 3.3

      \[\leadsto \color{blue}{-0.5 \cdot \frac{c}{b_2}}\]
    4. Simplified3.3

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \leq -6.312232056986123 \cdot 10^{+152}:\\ \;\;\;\;0.5 \cdot \frac{c}{b_2} + -2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \leq -1.4821568082008274 \cdot 10^{-280}:\\ \;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - c \cdot a}}{a} - \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \leq 5.894200455189858 \cdot 10^{+70}:\\ \;\;\;\;\frac{c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - c \cdot a}}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b_2} \cdot -0.5\\ \end{array}\]

Reproduce

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