Average Error: 34.5 → 7.4
Time: 18.7s
Precision: binary64
Cost: 68496
\[\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a} \]
\[\begin{array}{l} t_0 := \frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}\\ t_1 := \frac{-0.5}{\frac{\left|b_2\right|}{c}}\\ t_2 := \mathsf{fma}\left(-0.5, \frac{a}{\left|b_2\right|} \cdot {t_1}^{2}, t_1 + \frac{\left|b_2\right| - b_2}{a}\right)\\ \mathbf{if}\;t_0 \leq -\infty:\\ \;\;\;\;t_2\\ \mathbf{elif}\;t_0 \leq -2 \cdot 10^{-229}:\\ \;\;\;\;t_0\\ \mathbf{elif}\;t_0 \leq 0:\\ \;\;\;\;-0.5 \cdot \frac{c}{b_2}\\ \mathbf{elif}\;t_0 \leq 5 \cdot 10^{+274}:\\ \;\;\;\;t_0\\ \mathbf{else}:\\ \;\;\;\;t_2\\ \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
 (let* ((t_0 (/ (- (sqrt (- (* b_2 b_2) (* a c))) b_2) a))
        (t_1 (/ -0.5 (/ (fabs b_2) c)))
        (t_2
         (fma
          -0.5
          (* (/ a (fabs b_2)) (pow t_1 2.0))
          (+ t_1 (/ (- (fabs b_2) b_2) a)))))
   (if (<= t_0 (- INFINITY))
     t_2
     (if (<= t_0 -2e-229)
       t_0
       (if (<= t_0 0.0) (* -0.5 (/ c b_2)) (if (<= t_0 5e+274) t_0 t_2))))))
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 t_0 = (sqrt(((b_2 * b_2) - (a * c))) - b_2) / a;
	double t_1 = -0.5 / (fabs(b_2) / c);
	double t_2 = fma(-0.5, ((a / fabs(b_2)) * pow(t_1, 2.0)), (t_1 + ((fabs(b_2) - b_2) / a)));
	double tmp;
	if (t_0 <= -((double) INFINITY)) {
		tmp = t_2;
	} else if (t_0 <= -2e-229) {
		tmp = t_0;
	} else if (t_0 <= 0.0) {
		tmp = -0.5 * (c / b_2);
	} else if (t_0 <= 5e+274) {
		tmp = t_0;
	} else {
		tmp = t_2;
	}
	return tmp;
}
function code(a, b_2, c)
	return Float64(Float64(Float64(-b_2) + sqrt(Float64(Float64(b_2 * b_2) - Float64(a * c)))) / a)
end
function code(a, b_2, c)
	t_0 = Float64(Float64(sqrt(Float64(Float64(b_2 * b_2) - Float64(a * c))) - b_2) / a)
	t_1 = Float64(-0.5 / Float64(abs(b_2) / c))
	t_2 = fma(-0.5, Float64(Float64(a / abs(b_2)) * (t_1 ^ 2.0)), Float64(t_1 + Float64(Float64(abs(b_2) - b_2) / a)))
	tmp = 0.0
	if (t_0 <= Float64(-Inf))
		tmp = t_2;
	elseif (t_0 <= -2e-229)
		tmp = t_0;
	elseif (t_0 <= 0.0)
		tmp = Float64(-0.5 * Float64(c / b_2));
	elseif (t_0 <= 5e+274)
		tmp = t_0;
	else
		tmp = t_2;
	end
	return tmp
end
code[a_, b$95$2_, c_] := N[(N[((-b$95$2) + N[Sqrt[N[(N[(b$95$2 * b$95$2), $MachinePrecision] - N[(a * c), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision]
code[a_, b$95$2_, c_] := Block[{t$95$0 = N[(N[(N[Sqrt[N[(N[(b$95$2 * b$95$2), $MachinePrecision] - N[(a * c), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] - b$95$2), $MachinePrecision] / a), $MachinePrecision]}, Block[{t$95$1 = N[(-0.5 / N[(N[Abs[b$95$2], $MachinePrecision] / c), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(-0.5 * N[(N[(a / N[Abs[b$95$2], $MachinePrecision]), $MachinePrecision] * N[Power[t$95$1, 2.0], $MachinePrecision]), $MachinePrecision] + N[(t$95$1 + N[(N[(N[Abs[b$95$2], $MachinePrecision] - b$95$2), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$0, (-Infinity)], t$95$2, If[LessEqual[t$95$0, -2e-229], t$95$0, If[LessEqual[t$95$0, 0.0], N[(-0.5 * N[(c / b$95$2), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$0, 5e+274], t$95$0, t$95$2]]]]]]]
\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}
\begin{array}{l}
t_0 := \frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}\\
t_1 := \frac{-0.5}{\frac{\left|b_2\right|}{c}}\\
t_2 := \mathsf{fma}\left(-0.5, \frac{a}{\left|b_2\right|} \cdot {t_1}^{2}, t_1 + \frac{\left|b_2\right| - b_2}{a}\right)\\
\mathbf{if}\;t_0 \leq -\infty:\\
\;\;\;\;t_2\\

\mathbf{elif}\;t_0 \leq -2 \cdot 10^{-229}:\\
\;\;\;\;t_0\\

\mathbf{elif}\;t_0 \leq 0:\\
\;\;\;\;-0.5 \cdot \frac{c}{b_2}\\

\mathbf{elif}\;t_0 \leq 5 \cdot 10^{+274}:\\
\;\;\;\;t_0\\

\mathbf{else}:\\
\;\;\;\;t_2\\


\end{array}

Error

Derivation

  1. Split input into 3 regimes
  2. if (/.f64 (+.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a) < -inf.0 or 4.9999999999999998e274 < (/.f64 (+.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a)

    1. Initial program 63.0

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

      \[\leadsto \color{blue}{\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}} \]
      Proof
      (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2) a): 0 points increase in error, 0 points decrease in error
      (/.f64 (Rewrite<= unsub-neg_binary64 (+.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) (neg.f64 b_2))) a): 0 points increase in error, 3 points decrease in error
      (/.f64 (Rewrite<= +-commutative_binary64 (+.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))) a): 0 points increase in error, 3 points decrease in error
    3. Applied egg-rr63.0

      \[\leadsto \color{blue}{\frac{1}{a} \cdot \left(\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2\right)} \]
    4. Taylor expanded in a around 0 63.2

      \[\leadsto \color{blue}{\left(-0.5 \cdot \frac{a \cdot {\left(-0.5 \cdot \frac{c}{\sqrt{{b_2}^{2}}}\right)}^{2}}{\sqrt{{b_2}^{2}}} + \left(\frac{\sqrt{{b_2}^{2}}}{a} + -0.5 \cdot \frac{c}{\sqrt{{b_2}^{2}}}\right)\right) - \frac{b_2}{a}} \]
    5. Simplified13.9

      \[\leadsto \color{blue}{\mathsf{fma}\left(-0.5, \frac{a}{\left|b_2\right|} \cdot {\left(\frac{-0.5}{\frac{\left|b_2\right|}{c}}\right)}^{2}, \frac{\left|b_2\right| - b_2}{a} + \frac{-0.5}{\frac{\left|b_2\right|}{c}}\right)} \]
      Proof
      (fma.f64 -1/2 (*.f64 (/.f64 a (fabs.f64 b_2)) (pow.f64 (/.f64 -1/2 (/.f64 (fabs.f64 b_2) c)) 2)) (+.f64 (/.f64 (-.f64 (fabs.f64 b_2) b_2) a) (/.f64 -1/2 (/.f64 (fabs.f64 b_2) c)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 -1/2 (*.f64 (/.f64 a (Rewrite<= rem-sqrt-square_binary64 (sqrt.f64 (*.f64 b_2 b_2)))) (pow.f64 (/.f64 -1/2 (/.f64 (fabs.f64 b_2) c)) 2)) (+.f64 (/.f64 (-.f64 (fabs.f64 b_2) b_2) a) (/.f64 -1/2 (/.f64 (fabs.f64 b_2) c)))): 0 points increase in error, 21 points decrease in error
      (fma.f64 -1/2 (*.f64 (/.f64 a (sqrt.f64 (Rewrite<= unpow2_binary64 (pow.f64 b_2 2)))) (pow.f64 (/.f64 -1/2 (/.f64 (fabs.f64 b_2) c)) 2)) (+.f64 (/.f64 (-.f64 (fabs.f64 b_2) b_2) a) (/.f64 -1/2 (/.f64 (fabs.f64 b_2) c)))): 0 points increase in error, 4 points decrease in error
      (fma.f64 -1/2 (*.f64 (/.f64 a (sqrt.f64 (pow.f64 b_2 2))) (pow.f64 (/.f64 -1/2 (/.f64 (Rewrite<= rem-sqrt-square_binary64 (sqrt.f64 (*.f64 b_2 b_2))) c)) 2)) (+.f64 (/.f64 (-.f64 (fabs.f64 b_2) b_2) a) (/.f64 -1/2 (/.f64 (fabs.f64 b_2) c)))): 21 points increase in error, 0 points decrease in error
      (fma.f64 -1/2 (*.f64 (/.f64 a (sqrt.f64 (pow.f64 b_2 2))) (pow.f64 (/.f64 -1/2 (/.f64 (sqrt.f64 (Rewrite<= unpow2_binary64 (pow.f64 b_2 2))) c)) 2)) (+.f64 (/.f64 (-.f64 (fabs.f64 b_2) b_2) a) (/.f64 -1/2 (/.f64 (fabs.f64 b_2) c)))): 12 points increase in error, 9 points decrease in error
      (fma.f64 -1/2 (*.f64 (/.f64 a (sqrt.f64 (pow.f64 b_2 2))) (pow.f64 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 -1/2 c) (sqrt.f64 (pow.f64 b_2 2)))) 2)) (+.f64 (/.f64 (-.f64 (fabs.f64 b_2) b_2) a) (/.f64 -1/2 (/.f64 (fabs.f64 b_2) c)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 -1/2 (*.f64 (/.f64 a (sqrt.f64 (pow.f64 b_2 2))) (pow.f64 (Rewrite<= associate-*r/_binary64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2))))) 2)) (+.f64 (/.f64 (-.f64 (fabs.f64 b_2) b_2) a) (/.f64 -1/2 (/.f64 (fabs.f64 b_2) c)))): 9 points increase in error, 0 points decrease in error
      (fma.f64 -1/2 (Rewrite<= associate-/r/_binary64 (/.f64 a (/.f64 (sqrt.f64 (pow.f64 b_2 2)) (pow.f64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))) 2)))) (+.f64 (/.f64 (-.f64 (fabs.f64 b_2) b_2) a) (/.f64 -1/2 (/.f64 (fabs.f64 b_2) c)))): 0 points increase in error, 9 points decrease in error
      (fma.f64 -1/2 (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 a (pow.f64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))) 2)) (sqrt.f64 (pow.f64 b_2 2)))) (+.f64 (/.f64 (-.f64 (fabs.f64 b_2) b_2) a) (/.f64 -1/2 (/.f64 (fabs.f64 b_2) c)))): 0 points increase in error, 21 points decrease in error
      (fma.f64 -1/2 (/.f64 (*.f64 a (pow.f64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))) 2)) (sqrt.f64 (pow.f64 b_2 2))) (+.f64 (/.f64 (-.f64 (Rewrite<= rem-sqrt-square_binary64 (sqrt.f64 (*.f64 b_2 b_2))) b_2) a) (/.f64 -1/2 (/.f64 (fabs.f64 b_2) c)))): 21 points increase in error, 0 points decrease in error
      (fma.f64 -1/2 (/.f64 (*.f64 a (pow.f64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))) 2)) (sqrt.f64 (pow.f64 b_2 2))) (+.f64 (/.f64 (-.f64 (sqrt.f64 (Rewrite<= unpow2_binary64 (pow.f64 b_2 2))) b_2) a) (/.f64 -1/2 (/.f64 (fabs.f64 b_2) c)))): 0 points increase in error, 21 points decrease in error
      (fma.f64 -1/2 (/.f64 (*.f64 a (pow.f64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))) 2)) (sqrt.f64 (pow.f64 b_2 2))) (+.f64 (/.f64 (-.f64 (sqrt.f64 (pow.f64 b_2 2)) b_2) a) (/.f64 -1/2 (/.f64 (Rewrite<= rem-sqrt-square_binary64 (sqrt.f64 (*.f64 b_2 b_2))) c)))): 21 points increase in error, 0 points decrease in error
      (fma.f64 -1/2 (/.f64 (*.f64 a (pow.f64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))) 2)) (sqrt.f64 (pow.f64 b_2 2))) (+.f64 (/.f64 (-.f64 (sqrt.f64 (pow.f64 b_2 2)) b_2) a) (/.f64 -1/2 (/.f64 (sqrt.f64 (Rewrite<= unpow2_binary64 (pow.f64 b_2 2))) c)))): 0 points increase in error, 21 points decrease in error
      (fma.f64 -1/2 (/.f64 (*.f64 a (pow.f64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))) 2)) (sqrt.f64 (pow.f64 b_2 2))) (+.f64 (/.f64 (-.f64 (sqrt.f64 (pow.f64 b_2 2)) b_2) a) (Rewrite<= associate-/l*_binary64 (/.f64 (*.f64 -1/2 c) (sqrt.f64 (pow.f64 b_2 2)))))): 1 points increase in error, 16 points decrease in error
      (fma.f64 -1/2 (/.f64 (*.f64 a (pow.f64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))) 2)) (sqrt.f64 (pow.f64 b_2 2))) (+.f64 (/.f64 (-.f64 (sqrt.f64 (pow.f64 b_2 2)) b_2) a) (Rewrite<= associate-*r/_binary64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2))))))): 12 points increase in error, 1 points decrease in error
      (fma.f64 -1/2 (/.f64 (*.f64 a (pow.f64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))) 2)) (sqrt.f64 (pow.f64 b_2 2))) (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))) (/.f64 (-.f64 (sqrt.f64 (pow.f64 b_2 2)) b_2) a)))): 0 points increase in error, 0 points decrease in error
      (fma.f64 -1/2 (/.f64 (*.f64 a (pow.f64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))) 2)) (sqrt.f64 (pow.f64 b_2 2))) (+.f64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))) (Rewrite=> div-sub_binary64 (-.f64 (/.f64 (sqrt.f64 (pow.f64 b_2 2)) a) (/.f64 b_2 a))))): 9 points increase in error, 0 points decrease in error
      (fma.f64 -1/2 (/.f64 (*.f64 a (pow.f64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))) 2)) (sqrt.f64 (pow.f64 b_2 2))) (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))) (/.f64 (sqrt.f64 (pow.f64 b_2 2)) a)) (/.f64 b_2 a)))): 0 points increase in error, 1 points decrease in error
      (fma.f64 -1/2 (/.f64 (*.f64 a (pow.f64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))) 2)) (sqrt.f64 (pow.f64 b_2 2))) (-.f64 (Rewrite<= +-commutative_binary64 (+.f64 (/.f64 (sqrt.f64 (pow.f64 b_2 2)) a) (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))))) (/.f64 b_2 a))): 0 points increase in error, 9 points decrease in error
      (Rewrite<= fma-def_binary64 (+.f64 (*.f64 -1/2 (/.f64 (*.f64 a (pow.f64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))) 2)) (sqrt.f64 (pow.f64 b_2 2)))) (-.f64 (+.f64 (/.f64 (sqrt.f64 (pow.f64 b_2 2)) a) (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2))))) (/.f64 b_2 a)))): 0 points increase in error, 0 points decrease in error
      (Rewrite<= associate--l+_binary64 (-.f64 (+.f64 (*.f64 -1/2 (/.f64 (*.f64 a (pow.f64 (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))) 2)) (sqrt.f64 (pow.f64 b_2 2)))) (+.f64 (/.f64 (sqrt.f64 (pow.f64 b_2 2)) a) (*.f64 -1/2 (/.f64 c (sqrt.f64 (pow.f64 b_2 2)))))) (/.f64 b_2 a))): 0 points increase in error, 12 points decrease in error

    if -inf.0 < (/.f64 (+.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a) < -2.00000000000000014e-229 or 0.0 < (/.f64 (+.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a) < 4.9999999999999998e274

    1. Initial program 4.4

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

      \[\leadsto \color{blue}{\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}} \]
      Proof
      (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2) a): 0 points increase in error, 0 points decrease in error
      (/.f64 (Rewrite<= unsub-neg_binary64 (+.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) (neg.f64 b_2))) a): 0 points increase in error, 3 points decrease in error
      (/.f64 (Rewrite<= +-commutative_binary64 (+.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))) a): 0 points increase in error, 3 points decrease in error

    if -2.00000000000000014e-229 < (/.f64 (+.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c)))) a) < 0.0

    1. Initial program 51.8

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

      \[\leadsto \color{blue}{\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}} \]
      Proof
      (/.f64 (-.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) b_2) a): 0 points increase in error, 0 points decrease in error
      (/.f64 (Rewrite<= unsub-neg_binary64 (+.f64 (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))) (neg.f64 b_2))) a): 0 points increase in error, 3 points decrease in error
      (/.f64 (Rewrite<= +-commutative_binary64 (+.f64 (neg.f64 b_2) (sqrt.f64 (-.f64 (*.f64 b_2 b_2) (*.f64 a c))))) a): 0 points increase in error, 3 points decrease in error
    3. Taylor expanded in b_2 around inf 2.3

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a} \leq -\infty:\\ \;\;\;\;\mathsf{fma}\left(-0.5, \frac{a}{\left|b_2\right|} \cdot {\left(\frac{-0.5}{\frac{\left|b_2\right|}{c}}\right)}^{2}, \frac{-0.5}{\frac{\left|b_2\right|}{c}} + \frac{\left|b_2\right| - b_2}{a}\right)\\ \mathbf{elif}\;\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a} \leq -2 \cdot 10^{-229}:\\ \;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}\\ \mathbf{elif}\;\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a} \leq 0:\\ \;\;\;\;-0.5 \cdot \frac{c}{b_2}\\ \mathbf{elif}\;\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a} \leq 5 \cdot 10^{+274}:\\ \;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(-0.5, \frac{a}{\left|b_2\right|} \cdot {\left(\frac{-0.5}{\frac{\left|b_2\right|}{c}}\right)}^{2}, \frac{-0.5}{\frac{\left|b_2\right|}{c}} + \frac{\left|b_2\right| - b_2}{a}\right)\\ \end{array} \]

Alternatives

Alternative 1
Error8.1
Cost62352
\[\begin{array}{l} t_0 := \frac{\left|b_2\right| - b_2}{a} + -0.5 \cdot \left(\frac{c}{\left|b_2\right|} + \frac{{\left(\frac{a \cdot -0.5}{\left|b_2\right|}\right)}^{2}}{a} \cdot \frac{c}{\frac{\left|b_2\right|}{c}}\right)\\ t_1 := \frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}\\ \mathbf{if}\;t_1 \leq -\infty:\\ \;\;\;\;t_0\\ \mathbf{elif}\;t_1 \leq -2 \cdot 10^{-229}:\\ \;\;\;\;t_1\\ \mathbf{elif}\;t_1 \leq 0:\\ \;\;\;\;-0.5 \cdot \frac{c}{b_2}\\ \mathbf{elif}\;t_1 \leq 5 \cdot 10^{+274}:\\ \;\;\;\;t_1\\ \mathbf{else}:\\ \;\;\;\;t_0\\ \end{array} \]
Alternative 2
Error10.5
Cost13764
\[\begin{array}{l} \mathbf{if}\;b_2 \leq -9.2 \cdot 10^{+107}:\\ \;\;\;\;\left(-0.5 \cdot \frac{c}{\left|b_2\right|} + \frac{\left|b_2\right|}{a}\right) - \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \leq 7.5 \cdot 10^{-32}:\\ \;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \frac{c}{b_2} + {\left(\frac{c}{b_2}\right)}^{2} \cdot \left(\frac{a}{b_2} \cdot -0.125\right)\\ \end{array} \]
Alternative 3
Error10.5
Cost7688
\[\begin{array}{l} \mathbf{if}\;b_2 \leq -3.7 \cdot 10^{+108}:\\ \;\;\;\;\frac{b_2}{a} \cdot -2 + \frac{c}{b_2} \cdot 0.5\\ \mathbf{elif}\;b_2 \leq 2 \cdot 10^{-31}:\\ \;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \frac{c}{b_2} + {\left(\frac{c}{b_2}\right)}^{2} \cdot \left(\frac{a}{b_2} \cdot -0.125\right)\\ \end{array} \]
Alternative 4
Error10.0
Cost7368
\[\begin{array}{l} \mathbf{if}\;b_2 \leq -3.9 \cdot 10^{+108}:\\ \;\;\;\;\frac{b_2}{a} \cdot -2 + \frac{c}{b_2} \cdot 0.5\\ \mathbf{elif}\;b_2 \leq 4.9 \cdot 10^{-32}:\\ \;\;\;\;\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \frac{c}{b_2}\\ \end{array} \]
Alternative 5
Error13.3
Cost7176
\[\begin{array}{l} \mathbf{if}\;b_2 \leq -1.1 \cdot 10^{-60}:\\ \;\;\;\;\frac{b_2}{a} \cdot -2 + \frac{c}{b_2} \cdot 0.5\\ \mathbf{elif}\;b_2 \leq 5 \cdot 10^{-30}:\\ \;\;\;\;\frac{\sqrt{a \cdot \left(-c\right)} - b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \frac{c}{b_2}\\ \end{array} \]
Alternative 6
Error13.6
Cost7048
\[\begin{array}{l} \mathbf{if}\;b_2 \leq -1.12 \cdot 10^{-60}:\\ \;\;\;\;\frac{b_2}{a} \cdot -2 + \frac{c}{b_2} \cdot 0.5\\ \mathbf{elif}\;b_2 \leq 6.2 \cdot 10^{-31}:\\ \;\;\;\;\frac{\sqrt{a \cdot \left(-c\right)}}{a}\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \frac{c}{b_2}\\ \end{array} \]
Alternative 7
Error22.4
Cost836
\[\begin{array}{l} \mathbf{if}\;b_2 \leq -1.1 \cdot 10^{-291}:\\ \;\;\;\;\frac{b_2}{a} \cdot -2 + \frac{c}{b_2} \cdot 0.5\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \frac{c}{b_2}\\ \end{array} \]
Alternative 8
Error36.3
Cost452
\[\begin{array}{l} \mathbf{if}\;b_2 \leq 9.5 \cdot 10^{-251}:\\ \;\;\;\;\frac{-b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \frac{c}{b_2}\\ \end{array} \]
Alternative 9
Error22.5
Cost452
\[\begin{array}{l} \mathbf{if}\;b_2 \leq 2.5 \cdot 10^{-247}:\\ \;\;\;\;b_2 \cdot \frac{-2}{a}\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \frac{c}{b_2}\\ \end{array} \]
Alternative 10
Error22.4
Cost452
\[\begin{array}{l} \mathbf{if}\;b_2 \leq 5.5 \cdot 10^{-246}:\\ \;\;\;\;\frac{b_2 \cdot -2}{a}\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \frac{c}{b_2}\\ \end{array} \]
Alternative 11
Error59.3
Cost256
\[\frac{-b_2}{a} \]

Error

Reproduce

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