quad2p (problem 3.2.1, positive)

Percentage Accurate: 51.3% → 87.0%
Time: 7.5s
Alternatives: 10
Speedup: 1.7×

Specification

?
\[\begin{array}{l} \\ \frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \end{array} \]
(FPCore (a b_2 c)
 :precision binary64
 (/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))
double code(double a, double b_2, double c) {
	return (-b_2 + sqrt(((b_2 * b_2) - (a * c)))) / a;
}
real(8) function code(a, b_2, c)
    real(8), intent (in) :: a
    real(8), intent (in) :: b_2
    real(8), intent (in) :: c
    code = (-b_2 + sqrt(((b_2 * b_2) - (a * c)))) / a
end function
public static double code(double a, double b_2, double c) {
	return (-b_2 + Math.sqrt(((b_2 * b_2) - (a * c)))) / a;
}
def code(a, b_2, c):
	return (-b_2 + math.sqrt(((b_2 * b_2) - (a * c)))) / a
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 tmp = code(a, b_2, c)
	tmp = (-b_2 + sqrt(((b_2 * b_2) - (a * c)))) / a;
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]
\begin{array}{l}

\\
\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a}
\end{array}

Sampling outcomes in binary64 precision:

Local Percentage Accuracy vs ?

The average percentage accuracy by input value. Horizontal axis shows value of an input variable; the variable is choosen in the title. Vertical axis is accuracy; higher is better. Red represent the original program, while blue represents Herbie's suggestion. These can be toggled with buttons below the plot. The line is an average while dots represent individual samples.

Accuracy vs Speed?

Herbie found 10 alternatives:

AlternativeAccuracySpeedup
The accuracy (vertical axis) and speed (horizontal axis) of each alternatives. Up and to the right is better. The red square shows the initial program, and each blue circle shows an alternative.The line shows the best available speed-accuracy tradeoffs.

Initial Program: 51.3% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \end{array} \]
(FPCore (a b_2 c)
 :precision binary64
 (/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))
double code(double a, double b_2, double c) {
	return (-b_2 + sqrt(((b_2 * b_2) - (a * c)))) / a;
}
real(8) function code(a, b_2, c)
    real(8), intent (in) :: a
    real(8), intent (in) :: b_2
    real(8), intent (in) :: c
    code = (-b_2 + sqrt(((b_2 * b_2) - (a * c)))) / a
end function
public static double code(double a, double b_2, double c) {
	return (-b_2 + Math.sqrt(((b_2 * b_2) - (a * c)))) / a;
}
def code(a, b_2, c):
	return (-b_2 + math.sqrt(((b_2 * b_2) - (a * c)))) / a
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 tmp = code(a, b_2, c)
	tmp = (-b_2 + sqrt(((b_2 * b_2) - (a * c)))) / a;
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]
\begin{array}{l}

\\
\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a}
\end{array}

Alternative 1: 87.0% accurate, 0.5× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;b\_2 \leq -1.8 \cdot 10^{+137}:\\ \;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\ \mathbf{elif}\;b\_2 \leq 1.16 \cdot 10^{-154}:\\ \;\;\;\;\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a}\\ \mathbf{elif}\;b\_2 \leq 2.6 \cdot 10^{+141}:\\ \;\;\;\;\frac{\frac{c \cdot a}{a}}{\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b\_2} \cdot -0.5\\ \end{array} \end{array} \]
(FPCore (a b_2 c)
 :precision binary64
 (if (<= b_2 -1.8e+137)
   (fma 0.5 (/ c b_2) (* (/ b_2 a) -2.0))
   (if (<= b_2 1.16e-154)
     (/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a)
     (if (<= b_2 2.6e+141)
       (/ (/ (* c a) a) (- (- b_2) (sqrt (fma b_2 b_2 (* (- a) c)))))
       (* (/ c b_2) -0.5)))))
double code(double a, double b_2, double c) {
	double tmp;
	if (b_2 <= -1.8e+137) {
		tmp = fma(0.5, (c / b_2), ((b_2 / a) * -2.0));
	} else if (b_2 <= 1.16e-154) {
		tmp = (-b_2 + sqrt(((b_2 * b_2) - (a * c)))) / a;
	} else if (b_2 <= 2.6e+141) {
		tmp = ((c * a) / a) / (-b_2 - sqrt(fma(b_2, b_2, (-a * c))));
	} else {
		tmp = (c / b_2) * -0.5;
	}
	return tmp;
}
function code(a, b_2, c)
	tmp = 0.0
	if (b_2 <= -1.8e+137)
		tmp = fma(0.5, Float64(c / b_2), Float64(Float64(b_2 / a) * -2.0));
	elseif (b_2 <= 1.16e-154)
		tmp = Float64(Float64(Float64(-b_2) + sqrt(Float64(Float64(b_2 * b_2) - Float64(a * c)))) / a);
	elseif (b_2 <= 2.6e+141)
		tmp = Float64(Float64(Float64(c * a) / a) / Float64(Float64(-b_2) - sqrt(fma(b_2, b_2, Float64(Float64(-a) * c)))));
	else
		tmp = Float64(Float64(c / b_2) * -0.5);
	end
	return tmp
end
code[a_, b$95$2_, c_] := If[LessEqual[b$95$2, -1.8e+137], N[(0.5 * N[(c / b$95$2), $MachinePrecision] + N[(N[(b$95$2 / a), $MachinePrecision] * -2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[b$95$2, 1.16e-154], 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], If[LessEqual[b$95$2, 2.6e+141], N[(N[(N[(c * a), $MachinePrecision] / a), $MachinePrecision] / N[((-b$95$2) - N[Sqrt[N[(b$95$2 * b$95$2 + N[((-a) * c), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(c / b$95$2), $MachinePrecision] * -0.5), $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;b\_2 \leq -1.8 \cdot 10^{+137}:\\
\;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\

\mathbf{elif}\;b\_2 \leq 1.16 \cdot 10^{-154}:\\
\;\;\;\;\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a}\\

\mathbf{elif}\;b\_2 \leq 2.6 \cdot 10^{+141}:\\
\;\;\;\;\frac{\frac{c \cdot a}{a}}{\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if b_2 < -1.8e137

    1. Initial program 43.0%

      \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
    2. Add Preprocessing
    3. Taylor expanded in b_2 around -inf

      \[\leadsto \color{blue}{-1 \cdot \left(b\_2 \cdot \left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right)\right)} \]
    4. Step-by-step derivation
      1. associate-*r*N/A

        \[\leadsto \color{blue}{\left(-1 \cdot b\_2\right) \cdot \left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right)} \]
      2. *-commutativeN/A

        \[\leadsto \color{blue}{\left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right)} \]
      3. lower-*.f64N/A

        \[\leadsto \color{blue}{\left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right)} \]
      4. *-commutativeN/A

        \[\leadsto \left(\color{blue}{\frac{c}{{b\_2}^{2}} \cdot \frac{-1}{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
      5. lower-fma.f64N/A

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{c}{{b\_2}^{2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right)} \cdot \left(-1 \cdot b\_2\right) \]
      6. unpow2N/A

        \[\leadsto \mathsf{fma}\left(\frac{c}{\color{blue}{b\_2 \cdot b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
      7. associate-/r*N/A

        \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\frac{c}{b\_2}}{b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
      8. lower-/.f64N/A

        \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\frac{c}{b\_2}}{b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
      9. lower-/.f64N/A

        \[\leadsto \mathsf{fma}\left(\frac{\color{blue}{\frac{c}{b\_2}}}{b\_2}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
      10. associate-*r/N/A

        \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \color{blue}{\frac{2 \cdot 1}{a}}\right) \cdot \left(-1 \cdot b\_2\right) \]
      11. metadata-evalN/A

        \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \frac{\color{blue}{2}}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
      12. lower-/.f64N/A

        \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \color{blue}{\frac{2}{a}}\right) \cdot \left(-1 \cdot b\_2\right) \]
      13. mul-1-negN/A

        \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \frac{2}{a}\right) \cdot \color{blue}{\left(\mathsf{neg}\left(b\_2\right)\right)} \]
      14. lower-neg.f6495.3

        \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, -0.5, \frac{2}{a}\right) \cdot \color{blue}{\left(-b\_2\right)} \]
    5. Applied rewrites95.3%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, -0.5, \frac{2}{a}\right) \cdot \left(-b\_2\right)} \]
    6. Taylor expanded in a around inf

      \[\leadsto -2 \cdot \frac{b\_2}{a} + \color{blue}{\frac{1}{2} \cdot \frac{c}{b\_2}} \]
    7. Step-by-step derivation
      1. Applied rewrites95.6%

        \[\leadsto \mathsf{fma}\left(0.5, \color{blue}{\frac{c}{b\_2}}, \frac{b\_2}{a} \cdot -2\right) \]

      if -1.8e137 < b_2 < 1.16000000000000004e-154

      1. Initial program 81.5%

        \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
      2. Add Preprocessing

      if 1.16000000000000004e-154 < b_2 < 2.5999999999999999e141

      1. Initial program 42.8%

        \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
      2. Add Preprocessing
      3. Step-by-step derivation
        1. lift--.f64N/A

          \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2 - a \cdot c}}}{a} \]
        2. lift-*.f64N/A

          \[\leadsto \frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - \color{blue}{a \cdot c}}}{a} \]
        3. fp-cancel-sub-sign-invN/A

          \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2 + \left(\mathsf{neg}\left(a\right)\right) \cdot c}}}{a} \]
        4. lift-*.f64N/A

          \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2} + \left(\mathsf{neg}\left(a\right)\right) \cdot c}}{a} \]
        5. lower-fma.f64N/A

          \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\mathsf{fma}\left(b\_2, b\_2, \left(\mathsf{neg}\left(a\right)\right) \cdot c\right)}}}{a} \]
        6. lower-*.f64N/A

          \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \color{blue}{\left(\mathsf{neg}\left(a\right)\right) \cdot c}\right)}}{a} \]
        7. lower-neg.f6442.9

          \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \color{blue}{\left(-a\right)} \cdot c\right)}}{a} \]
      4. Applied rewrites42.9%

        \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}}{a} \]
      5. Step-by-step derivation
        1. lift-+.f64N/A

          \[\leadsto \frac{\color{blue}{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}}{a} \]
        2. +-commutativeN/A

          \[\leadsto \frac{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} + \left(-b\_2\right)}}{a} \]
        3. lift-sqrt.f64N/A

          \[\leadsto \frac{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} + \left(-b\_2\right)}{a} \]
        4. rem-square-sqrtN/A

          \[\leadsto \frac{\sqrt{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} \cdot \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
        5. lift-sqrt.f64N/A

          \[\leadsto \frac{\sqrt{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \cdot \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} + \left(-b\_2\right)}{a} \]
        6. lift-sqrt.f64N/A

          \[\leadsto \frac{\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} \cdot \color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
        7. sqrt-prodN/A

          \[\leadsto \frac{\color{blue}{\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
        8. lower-fma.f64N/A

          \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}, \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}, -b\_2\right)}}{a} \]
      6. Applied rewrites33.7%

        \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}}, \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}}, -b\_2\right)}}{a} \]
      7. Applied rewrites79.8%

        \[\leadsto \color{blue}{\frac{\frac{0 + a \cdot c}{a}}{\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} \]
      8. Step-by-step derivation
        1. lift-+.f64N/A

          \[\leadsto \frac{\frac{\color{blue}{0 + a \cdot c}}{a}}{\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \]
        2. +-lft-identity79.8

          \[\leadsto \frac{\frac{\color{blue}{a \cdot c}}{a}}{\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \]
        3. lift-*.f64N/A

          \[\leadsto \frac{\frac{\color{blue}{a \cdot c}}{a}}{\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \]
        4. *-commutativeN/A

          \[\leadsto \frac{\frac{\color{blue}{c \cdot a}}{a}}{\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \]
        5. lower-*.f6479.8

          \[\leadsto \frac{\frac{\color{blue}{c \cdot a}}{a}}{\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \]
      9. Applied rewrites79.8%

        \[\leadsto \frac{\color{blue}{\frac{c \cdot a}{a}}}{\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \]

      if 2.5999999999999999e141 < b_2

      1. Initial program 2.0%

        \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
      2. Add Preprocessing
      3. Taylor expanded in a around 0

        \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b\_2}} \]
      4. Step-by-step derivation
        1. *-commutativeN/A

          \[\leadsto \color{blue}{\frac{c}{b\_2} \cdot \frac{-1}{2}} \]
        2. lower-*.f64N/A

          \[\leadsto \color{blue}{\frac{c}{b\_2} \cdot \frac{-1}{2}} \]
        3. lower-/.f6495.1

          \[\leadsto \color{blue}{\frac{c}{b\_2}} \cdot -0.5 \]
      5. Applied rewrites95.1%

        \[\leadsto \color{blue}{\frac{c}{b\_2} \cdot -0.5} \]
    8. Recombined 4 regimes into one program.
    9. Final simplification86.6%

      \[\leadsto \begin{array}{l} \mathbf{if}\;b\_2 \leq -1.8 \cdot 10^{+137}:\\ \;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\ \mathbf{elif}\;b\_2 \leq 1.16 \cdot 10^{-154}:\\ \;\;\;\;\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a}\\ \mathbf{elif}\;b\_2 \leq 2.6 \cdot 10^{+141}:\\ \;\;\;\;\frac{\frac{c \cdot a}{a}}{\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b\_2} \cdot -0.5\\ \end{array} \]
    10. Add Preprocessing

    Alternative 2: 84.4% accurate, 0.6× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;b\_2 \leq -1.8 \cdot 10^{+137}:\\ \;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\ \mathbf{elif}\;b\_2 \leq 9.5 \cdot 10^{-21}:\\ \;\;\;\;\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a}\\ \mathbf{elif}\;b\_2 \leq 3.6 \cdot 10^{+138}:\\ \;\;\;\;\frac{a \cdot c}{\left(\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}\right) \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b\_2} \cdot -0.5\\ \end{array} \end{array} \]
    (FPCore (a b_2 c)
     :precision binary64
     (if (<= b_2 -1.8e+137)
       (fma 0.5 (/ c b_2) (* (/ b_2 a) -2.0))
       (if (<= b_2 9.5e-21)
         (/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a)
         (if (<= b_2 3.6e+138)
           (/ (* a c) (* (- (- b_2) (sqrt (fma b_2 b_2 (* c (- a))))) a))
           (* (/ c b_2) -0.5)))))
    double code(double a, double b_2, double c) {
    	double tmp;
    	if (b_2 <= -1.8e+137) {
    		tmp = fma(0.5, (c / b_2), ((b_2 / a) * -2.0));
    	} else if (b_2 <= 9.5e-21) {
    		tmp = (-b_2 + sqrt(((b_2 * b_2) - (a * c)))) / a;
    	} else if (b_2 <= 3.6e+138) {
    		tmp = (a * c) / ((-b_2 - sqrt(fma(b_2, b_2, (c * -a)))) * a);
    	} else {
    		tmp = (c / b_2) * -0.5;
    	}
    	return tmp;
    }
    
    function code(a, b_2, c)
    	tmp = 0.0
    	if (b_2 <= -1.8e+137)
    		tmp = fma(0.5, Float64(c / b_2), Float64(Float64(b_2 / a) * -2.0));
    	elseif (b_2 <= 9.5e-21)
    		tmp = Float64(Float64(Float64(-b_2) + sqrt(Float64(Float64(b_2 * b_2) - Float64(a * c)))) / a);
    	elseif (b_2 <= 3.6e+138)
    		tmp = Float64(Float64(a * c) / Float64(Float64(Float64(-b_2) - sqrt(fma(b_2, b_2, Float64(c * Float64(-a))))) * a));
    	else
    		tmp = Float64(Float64(c / b_2) * -0.5);
    	end
    	return tmp
    end
    
    code[a_, b$95$2_, c_] := If[LessEqual[b$95$2, -1.8e+137], N[(0.5 * N[(c / b$95$2), $MachinePrecision] + N[(N[(b$95$2 / a), $MachinePrecision] * -2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[b$95$2, 9.5e-21], 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], If[LessEqual[b$95$2, 3.6e+138], N[(N[(a * c), $MachinePrecision] / N[(N[((-b$95$2) - N[Sqrt[N[(b$95$2 * b$95$2 + N[(c * (-a)), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] * a), $MachinePrecision]), $MachinePrecision], N[(N[(c / b$95$2), $MachinePrecision] * -0.5), $MachinePrecision]]]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;b\_2 \leq -1.8 \cdot 10^{+137}:\\
    \;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\
    
    \mathbf{elif}\;b\_2 \leq 9.5 \cdot 10^{-21}:\\
    \;\;\;\;\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a}\\
    
    \mathbf{elif}\;b\_2 \leq 3.6 \cdot 10^{+138}:\\
    \;\;\;\;\frac{a \cdot c}{\left(\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}\right) \cdot a}\\
    
    \mathbf{else}:\\
    \;\;\;\;\frac{c}{b\_2} \cdot -0.5\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 4 regimes
    2. if b_2 < -1.8e137

      1. Initial program 43.0%

        \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
      2. Add Preprocessing
      3. Taylor expanded in b_2 around -inf

        \[\leadsto \color{blue}{-1 \cdot \left(b\_2 \cdot \left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right)\right)} \]
      4. Step-by-step derivation
        1. associate-*r*N/A

          \[\leadsto \color{blue}{\left(-1 \cdot b\_2\right) \cdot \left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right)} \]
        2. *-commutativeN/A

          \[\leadsto \color{blue}{\left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right)} \]
        3. lower-*.f64N/A

          \[\leadsto \color{blue}{\left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right)} \]
        4. *-commutativeN/A

          \[\leadsto \left(\color{blue}{\frac{c}{{b\_2}^{2}} \cdot \frac{-1}{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
        5. lower-fma.f64N/A

          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{c}{{b\_2}^{2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right)} \cdot \left(-1 \cdot b\_2\right) \]
        6. unpow2N/A

          \[\leadsto \mathsf{fma}\left(\frac{c}{\color{blue}{b\_2 \cdot b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
        7. associate-/r*N/A

          \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\frac{c}{b\_2}}{b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
        8. lower-/.f64N/A

          \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\frac{c}{b\_2}}{b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
        9. lower-/.f64N/A

          \[\leadsto \mathsf{fma}\left(\frac{\color{blue}{\frac{c}{b\_2}}}{b\_2}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
        10. associate-*r/N/A

          \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \color{blue}{\frac{2 \cdot 1}{a}}\right) \cdot \left(-1 \cdot b\_2\right) \]
        11. metadata-evalN/A

          \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \frac{\color{blue}{2}}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
        12. lower-/.f64N/A

          \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \color{blue}{\frac{2}{a}}\right) \cdot \left(-1 \cdot b\_2\right) \]
        13. mul-1-negN/A

          \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \frac{2}{a}\right) \cdot \color{blue}{\left(\mathsf{neg}\left(b\_2\right)\right)} \]
        14. lower-neg.f6495.3

          \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, -0.5, \frac{2}{a}\right) \cdot \color{blue}{\left(-b\_2\right)} \]
      5. Applied rewrites95.3%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, -0.5, \frac{2}{a}\right) \cdot \left(-b\_2\right)} \]
      6. Taylor expanded in a around inf

        \[\leadsto -2 \cdot \frac{b\_2}{a} + \color{blue}{\frac{1}{2} \cdot \frac{c}{b\_2}} \]
      7. Step-by-step derivation
        1. Applied rewrites95.6%

          \[\leadsto \mathsf{fma}\left(0.5, \color{blue}{\frac{c}{b\_2}}, \frac{b\_2}{a} \cdot -2\right) \]

        if -1.8e137 < b_2 < 9.4999999999999994e-21

        1. Initial program 75.0%

          \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
        2. Add Preprocessing

        if 9.4999999999999994e-21 < b_2 < 3.6000000000000001e138

        1. Initial program 40.4%

          \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
        2. Add Preprocessing
        3. Step-by-step derivation
          1. lift--.f64N/A

            \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2 - a \cdot c}}}{a} \]
          2. lift-*.f64N/A

            \[\leadsto \frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - \color{blue}{a \cdot c}}}{a} \]
          3. fp-cancel-sub-sign-invN/A

            \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2 + \left(\mathsf{neg}\left(a\right)\right) \cdot c}}}{a} \]
          4. lift-*.f64N/A

            \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2} + \left(\mathsf{neg}\left(a\right)\right) \cdot c}}{a} \]
          5. lower-fma.f64N/A

            \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\mathsf{fma}\left(b\_2, b\_2, \left(\mathsf{neg}\left(a\right)\right) \cdot c\right)}}}{a} \]
          6. lower-*.f64N/A

            \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \color{blue}{\left(\mathsf{neg}\left(a\right)\right) \cdot c}\right)}}{a} \]
          7. lower-neg.f6440.4

            \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \color{blue}{\left(-a\right)} \cdot c\right)}}{a} \]
        4. Applied rewrites40.4%

          \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}}{a} \]
        5. Step-by-step derivation
          1. lift-/.f64N/A

            \[\leadsto \color{blue}{\frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}{a}} \]
          2. lift-+.f64N/A

            \[\leadsto \frac{\color{blue}{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}}{a} \]
          3. flip-+N/A

            \[\leadsto \frac{\color{blue}{\frac{\left(-b\_2\right) \cdot \left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} \cdot \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}{\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}}}{a} \]
          4. associate-/l/N/A

            \[\leadsto \color{blue}{\frac{\left(-b\_2\right) \cdot \left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} \cdot \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}{\left(\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}\right) \cdot a}} \]
          5. lower-/.f64N/A

            \[\leadsto \color{blue}{\frac{\left(-b\_2\right) \cdot \left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} \cdot \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}{\left(\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}\right) \cdot a}} \]
        6. Applied rewrites40.5%

          \[\leadsto \color{blue}{\frac{b\_2 \cdot b\_2 - \mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}{\left(\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}\right) \cdot a}} \]
        7. Taylor expanded in a around 0

          \[\leadsto \frac{\color{blue}{a \cdot c}}{\left(\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}\right) \cdot a} \]
        8. Step-by-step derivation
          1. lower-*.f6491.4

            \[\leadsto \frac{\color{blue}{a \cdot c}}{\left(\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}\right) \cdot a} \]
        9. Applied rewrites91.4%

          \[\leadsto \frac{\color{blue}{a \cdot c}}{\left(\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}\right) \cdot a} \]

        if 3.6000000000000001e138 < b_2

        1. Initial program 2.0%

          \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
        2. Add Preprocessing
        3. Taylor expanded in a around 0

          \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b\_2}} \]
        4. Step-by-step derivation
          1. *-commutativeN/A

            \[\leadsto \color{blue}{\frac{c}{b\_2} \cdot \frac{-1}{2}} \]
          2. lower-*.f64N/A

            \[\leadsto \color{blue}{\frac{c}{b\_2} \cdot \frac{-1}{2}} \]
          3. lower-/.f6495.1

            \[\leadsto \color{blue}{\frac{c}{b\_2}} \cdot -0.5 \]
        5. Applied rewrites95.1%

          \[\leadsto \color{blue}{\frac{c}{b\_2} \cdot -0.5} \]
      8. Recombined 4 regimes into one program.
      9. Final simplification85.5%

        \[\leadsto \begin{array}{l} \mathbf{if}\;b\_2 \leq -1.8 \cdot 10^{+137}:\\ \;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\ \mathbf{elif}\;b\_2 \leq 9.5 \cdot 10^{-21}:\\ \;\;\;\;\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a}\\ \mathbf{elif}\;b\_2 \leq 3.6 \cdot 10^{+138}:\\ \;\;\;\;\frac{a \cdot c}{\left(\left(-b\_2\right) - \sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}\right) \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b\_2} \cdot -0.5\\ \end{array} \]
      10. Add Preprocessing

      Alternative 3: 83.2% accurate, 0.8× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;b\_2 \leq -1.8 \cdot 10^{+137}:\\ \;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\ \mathbf{elif}\;b\_2 \leq 9 \cdot 10^{+31}:\\ \;\;\;\;\frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-0.5 \cdot c}{b\_2}\\ \end{array} \end{array} \]
      (FPCore (a b_2 c)
       :precision binary64
       (if (<= b_2 -1.8e+137)
         (fma 0.5 (/ c b_2) (* (/ b_2 a) -2.0))
         (if (<= b_2 9e+31)
           (/ (+ (- b_2) (sqrt (fma b_2 b_2 (* (- a) c)))) a)
           (/ (* -0.5 c) b_2))))
      double code(double a, double b_2, double c) {
      	double tmp;
      	if (b_2 <= -1.8e+137) {
      		tmp = fma(0.5, (c / b_2), ((b_2 / a) * -2.0));
      	} else if (b_2 <= 9e+31) {
      		tmp = (-b_2 + sqrt(fma(b_2, b_2, (-a * c)))) / a;
      	} else {
      		tmp = (-0.5 * c) / b_2;
      	}
      	return tmp;
      }
      
      function code(a, b_2, c)
      	tmp = 0.0
      	if (b_2 <= -1.8e+137)
      		tmp = fma(0.5, Float64(c / b_2), Float64(Float64(b_2 / a) * -2.0));
      	elseif (b_2 <= 9e+31)
      		tmp = Float64(Float64(Float64(-b_2) + sqrt(fma(b_2, b_2, Float64(Float64(-a) * c)))) / a);
      	else
      		tmp = Float64(Float64(-0.5 * c) / b_2);
      	end
      	return tmp
      end
      
      code[a_, b$95$2_, c_] := If[LessEqual[b$95$2, -1.8e+137], N[(0.5 * N[(c / b$95$2), $MachinePrecision] + N[(N[(b$95$2 / a), $MachinePrecision] * -2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[b$95$2, 9e+31], N[(N[((-b$95$2) + N[Sqrt[N[(b$95$2 * b$95$2 + N[((-a) * c), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision], N[(N[(-0.5 * c), $MachinePrecision] / b$95$2), $MachinePrecision]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      \mathbf{if}\;b\_2 \leq -1.8 \cdot 10^{+137}:\\
      \;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\
      
      \mathbf{elif}\;b\_2 \leq 9 \cdot 10^{+31}:\\
      \;\;\;\;\frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}{a}\\
      
      \mathbf{else}:\\
      \;\;\;\;\frac{-0.5 \cdot c}{b\_2}\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 3 regimes
      2. if b_2 < -1.8e137

        1. Initial program 43.0%

          \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
        2. Add Preprocessing
        3. Taylor expanded in b_2 around -inf

          \[\leadsto \color{blue}{-1 \cdot \left(b\_2 \cdot \left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right)\right)} \]
        4. Step-by-step derivation
          1. associate-*r*N/A

            \[\leadsto \color{blue}{\left(-1 \cdot b\_2\right) \cdot \left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right)} \]
          2. *-commutativeN/A

            \[\leadsto \color{blue}{\left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right)} \]
          3. lower-*.f64N/A

            \[\leadsto \color{blue}{\left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right)} \]
          4. *-commutativeN/A

            \[\leadsto \left(\color{blue}{\frac{c}{{b\_2}^{2}} \cdot \frac{-1}{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
          5. lower-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{c}{{b\_2}^{2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right)} \cdot \left(-1 \cdot b\_2\right) \]
          6. unpow2N/A

            \[\leadsto \mathsf{fma}\left(\frac{c}{\color{blue}{b\_2 \cdot b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
          7. associate-/r*N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\frac{c}{b\_2}}{b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
          8. lower-/.f64N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\frac{c}{b\_2}}{b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
          9. lower-/.f64N/A

            \[\leadsto \mathsf{fma}\left(\frac{\color{blue}{\frac{c}{b\_2}}}{b\_2}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
          10. associate-*r/N/A

            \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \color{blue}{\frac{2 \cdot 1}{a}}\right) \cdot \left(-1 \cdot b\_2\right) \]
          11. metadata-evalN/A

            \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \frac{\color{blue}{2}}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
          12. lower-/.f64N/A

            \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \color{blue}{\frac{2}{a}}\right) \cdot \left(-1 \cdot b\_2\right) \]
          13. mul-1-negN/A

            \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \frac{2}{a}\right) \cdot \color{blue}{\left(\mathsf{neg}\left(b\_2\right)\right)} \]
          14. lower-neg.f6495.3

            \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, -0.5, \frac{2}{a}\right) \cdot \color{blue}{\left(-b\_2\right)} \]
        5. Applied rewrites95.3%

          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, -0.5, \frac{2}{a}\right) \cdot \left(-b\_2\right)} \]
        6. Taylor expanded in a around inf

          \[\leadsto -2 \cdot \frac{b\_2}{a} + \color{blue}{\frac{1}{2} \cdot \frac{c}{b\_2}} \]
        7. Step-by-step derivation
          1. Applied rewrites95.6%

            \[\leadsto \mathsf{fma}\left(0.5, \color{blue}{\frac{c}{b\_2}}, \frac{b\_2}{a} \cdot -2\right) \]

          if -1.8e137 < b_2 < 8.9999999999999992e31

          1. Initial program 73.6%

            \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
          2. Add Preprocessing
          3. Step-by-step derivation
            1. lift--.f64N/A

              \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2 - a \cdot c}}}{a} \]
            2. lift-*.f64N/A

              \[\leadsto \frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - \color{blue}{a \cdot c}}}{a} \]
            3. fp-cancel-sub-sign-invN/A

              \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2 + \left(\mathsf{neg}\left(a\right)\right) \cdot c}}}{a} \]
            4. lift-*.f64N/A

              \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2} + \left(\mathsf{neg}\left(a\right)\right) \cdot c}}{a} \]
            5. lower-fma.f64N/A

              \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\mathsf{fma}\left(b\_2, b\_2, \left(\mathsf{neg}\left(a\right)\right) \cdot c\right)}}}{a} \]
            6. lower-*.f64N/A

              \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \color{blue}{\left(\mathsf{neg}\left(a\right)\right) \cdot c}\right)}}{a} \]
            7. lower-neg.f6473.6

              \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \color{blue}{\left(-a\right)} \cdot c\right)}}{a} \]
          4. Applied rewrites73.6%

            \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}}{a} \]

          if 8.9999999999999992e31 < b_2

          1. Initial program 13.6%

            \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
          2. Add Preprocessing
          3. Step-by-step derivation
            1. lift--.f64N/A

              \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2 - a \cdot c}}}{a} \]
            2. lift-*.f64N/A

              \[\leadsto \frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - \color{blue}{a \cdot c}}}{a} \]
            3. fp-cancel-sub-sign-invN/A

              \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2 + \left(\mathsf{neg}\left(a\right)\right) \cdot c}}}{a} \]
            4. lift-*.f64N/A

              \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2} + \left(\mathsf{neg}\left(a\right)\right) \cdot c}}{a} \]
            5. lower-fma.f64N/A

              \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\mathsf{fma}\left(b\_2, b\_2, \left(\mathsf{neg}\left(a\right)\right) \cdot c\right)}}}{a} \]
            6. lower-*.f64N/A

              \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \color{blue}{\left(\mathsf{neg}\left(a\right)\right) \cdot c}\right)}}{a} \]
            7. lower-neg.f6413.6

              \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \color{blue}{\left(-a\right)} \cdot c\right)}}{a} \]
          4. Applied rewrites13.6%

            \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}}{a} \]
          5. Step-by-step derivation
            1. lift-+.f64N/A

              \[\leadsto \frac{\color{blue}{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}}{a} \]
            2. +-commutativeN/A

              \[\leadsto \frac{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} + \left(-b\_2\right)}}{a} \]
            3. lift-sqrt.f64N/A

              \[\leadsto \frac{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} + \left(-b\_2\right)}{a} \]
            4. rem-square-sqrtN/A

              \[\leadsto \frac{\sqrt{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} \cdot \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
            5. lift-sqrt.f64N/A

              \[\leadsto \frac{\sqrt{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \cdot \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} + \left(-b\_2\right)}{a} \]
            6. lift-sqrt.f64N/A

              \[\leadsto \frac{\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} \cdot \color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
            7. sqrt-prodN/A

              \[\leadsto \frac{\color{blue}{\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
            8. lower-fma.f64N/A

              \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}, \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}, -b\_2\right)}}{a} \]
          6. Applied rewrites6.5%

            \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}}, \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}}, -b\_2\right)}}{a} \]
          7. Taylor expanded in a around 0

            \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b\_2}} \]
          8. Step-by-step derivation
            1. lower-*.f64N/A

              \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b\_2}} \]
            2. lower-/.f6491.9

              \[\leadsto -0.5 \cdot \color{blue}{\frac{c}{b\_2}} \]
          9. Applied rewrites91.9%

            \[\leadsto \color{blue}{-0.5 \cdot \frac{c}{b\_2}} \]
          10. Step-by-step derivation
            1. Applied rewrites91.9%

              \[\leadsto \frac{-0.5 \cdot c}{\color{blue}{b\_2}} \]
          11. Recombined 3 regimes into one program.
          12. Final simplification83.6%

            \[\leadsto \begin{array}{l} \mathbf{if}\;b\_2 \leq -1.8 \cdot 10^{+137}:\\ \;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\ \mathbf{elif}\;b\_2 \leq 9 \cdot 10^{+31}:\\ \;\;\;\;\frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-0.5 \cdot c}{b\_2}\\ \end{array} \]
          13. Add Preprocessing

          Alternative 4: 83.2% accurate, 0.8× speedup?

          \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;b\_2 \leq -1.8 \cdot 10^{+137}:\\ \;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\ \mathbf{elif}\;b\_2 \leq 9 \cdot 10^{+31}:\\ \;\;\;\;\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-0.5 \cdot c}{b\_2}\\ \end{array} \end{array} \]
          (FPCore (a b_2 c)
           :precision binary64
           (if (<= b_2 -1.8e+137)
             (fma 0.5 (/ c b_2) (* (/ b_2 a) -2.0))
             (if (<= b_2 9e+31)
               (/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a)
               (/ (* -0.5 c) b_2))))
          double code(double a, double b_2, double c) {
          	double tmp;
          	if (b_2 <= -1.8e+137) {
          		tmp = fma(0.5, (c / b_2), ((b_2 / a) * -2.0));
          	} else if (b_2 <= 9e+31) {
          		tmp = (-b_2 + sqrt(((b_2 * b_2) - (a * c)))) / a;
          	} else {
          		tmp = (-0.5 * c) / b_2;
          	}
          	return tmp;
          }
          
          function code(a, b_2, c)
          	tmp = 0.0
          	if (b_2 <= -1.8e+137)
          		tmp = fma(0.5, Float64(c / b_2), Float64(Float64(b_2 / a) * -2.0));
          	elseif (b_2 <= 9e+31)
          		tmp = Float64(Float64(Float64(-b_2) + sqrt(Float64(Float64(b_2 * b_2) - Float64(a * c)))) / a);
          	else
          		tmp = Float64(Float64(-0.5 * c) / b_2);
          	end
          	return tmp
          end
          
          code[a_, b$95$2_, c_] := If[LessEqual[b$95$2, -1.8e+137], N[(0.5 * N[(c / b$95$2), $MachinePrecision] + N[(N[(b$95$2 / a), $MachinePrecision] * -2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[b$95$2, 9e+31], 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], N[(N[(-0.5 * c), $MachinePrecision] / b$95$2), $MachinePrecision]]]
          
          \begin{array}{l}
          
          \\
          \begin{array}{l}
          \mathbf{if}\;b\_2 \leq -1.8 \cdot 10^{+137}:\\
          \;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\
          
          \mathbf{elif}\;b\_2 \leq 9 \cdot 10^{+31}:\\
          \;\;\;\;\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a}\\
          
          \mathbf{else}:\\
          \;\;\;\;\frac{-0.5 \cdot c}{b\_2}\\
          
          
          \end{array}
          \end{array}
          
          Derivation
          1. Split input into 3 regimes
          2. if b_2 < -1.8e137

            1. Initial program 43.0%

              \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
            2. Add Preprocessing
            3. Taylor expanded in b_2 around -inf

              \[\leadsto \color{blue}{-1 \cdot \left(b\_2 \cdot \left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right)\right)} \]
            4. Step-by-step derivation
              1. associate-*r*N/A

                \[\leadsto \color{blue}{\left(-1 \cdot b\_2\right) \cdot \left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right)} \]
              2. *-commutativeN/A

                \[\leadsto \color{blue}{\left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right)} \]
              3. lower-*.f64N/A

                \[\leadsto \color{blue}{\left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right)} \]
              4. *-commutativeN/A

                \[\leadsto \left(\color{blue}{\frac{c}{{b\_2}^{2}} \cdot \frac{-1}{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
              5. lower-fma.f64N/A

                \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{c}{{b\_2}^{2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right)} \cdot \left(-1 \cdot b\_2\right) \]
              6. unpow2N/A

                \[\leadsto \mathsf{fma}\left(\frac{c}{\color{blue}{b\_2 \cdot b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
              7. associate-/r*N/A

                \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\frac{c}{b\_2}}{b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
              8. lower-/.f64N/A

                \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\frac{c}{b\_2}}{b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
              9. lower-/.f64N/A

                \[\leadsto \mathsf{fma}\left(\frac{\color{blue}{\frac{c}{b\_2}}}{b\_2}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
              10. associate-*r/N/A

                \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \color{blue}{\frac{2 \cdot 1}{a}}\right) \cdot \left(-1 \cdot b\_2\right) \]
              11. metadata-evalN/A

                \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \frac{\color{blue}{2}}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
              12. lower-/.f64N/A

                \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \color{blue}{\frac{2}{a}}\right) \cdot \left(-1 \cdot b\_2\right) \]
              13. mul-1-negN/A

                \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \frac{2}{a}\right) \cdot \color{blue}{\left(\mathsf{neg}\left(b\_2\right)\right)} \]
              14. lower-neg.f6495.3

                \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, -0.5, \frac{2}{a}\right) \cdot \color{blue}{\left(-b\_2\right)} \]
            5. Applied rewrites95.3%

              \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, -0.5, \frac{2}{a}\right) \cdot \left(-b\_2\right)} \]
            6. Taylor expanded in a around inf

              \[\leadsto -2 \cdot \frac{b\_2}{a} + \color{blue}{\frac{1}{2} \cdot \frac{c}{b\_2}} \]
            7. Step-by-step derivation
              1. Applied rewrites95.6%

                \[\leadsto \mathsf{fma}\left(0.5, \color{blue}{\frac{c}{b\_2}}, \frac{b\_2}{a} \cdot -2\right) \]

              if -1.8e137 < b_2 < 8.9999999999999992e31

              1. Initial program 73.6%

                \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
              2. Add Preprocessing

              if 8.9999999999999992e31 < b_2

              1. Initial program 13.6%

                \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
              2. Add Preprocessing
              3. Step-by-step derivation
                1. lift--.f64N/A

                  \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2 - a \cdot c}}}{a} \]
                2. lift-*.f64N/A

                  \[\leadsto \frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - \color{blue}{a \cdot c}}}{a} \]
                3. fp-cancel-sub-sign-invN/A

                  \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2 + \left(\mathsf{neg}\left(a\right)\right) \cdot c}}}{a} \]
                4. lift-*.f64N/A

                  \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2} + \left(\mathsf{neg}\left(a\right)\right) \cdot c}}{a} \]
                5. lower-fma.f64N/A

                  \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\mathsf{fma}\left(b\_2, b\_2, \left(\mathsf{neg}\left(a\right)\right) \cdot c\right)}}}{a} \]
                6. lower-*.f64N/A

                  \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \color{blue}{\left(\mathsf{neg}\left(a\right)\right) \cdot c}\right)}}{a} \]
                7. lower-neg.f6413.6

                  \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \color{blue}{\left(-a\right)} \cdot c\right)}}{a} \]
              4. Applied rewrites13.6%

                \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}}{a} \]
              5. Step-by-step derivation
                1. lift-+.f64N/A

                  \[\leadsto \frac{\color{blue}{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}}{a} \]
                2. +-commutativeN/A

                  \[\leadsto \frac{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} + \left(-b\_2\right)}}{a} \]
                3. lift-sqrt.f64N/A

                  \[\leadsto \frac{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} + \left(-b\_2\right)}{a} \]
                4. rem-square-sqrtN/A

                  \[\leadsto \frac{\sqrt{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} \cdot \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
                5. lift-sqrt.f64N/A

                  \[\leadsto \frac{\sqrt{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \cdot \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} + \left(-b\_2\right)}{a} \]
                6. lift-sqrt.f64N/A

                  \[\leadsto \frac{\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} \cdot \color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
                7. sqrt-prodN/A

                  \[\leadsto \frac{\color{blue}{\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
                8. lower-fma.f64N/A

                  \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}, \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}, -b\_2\right)}}{a} \]
              6. Applied rewrites6.5%

                \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}}, \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}}, -b\_2\right)}}{a} \]
              7. Taylor expanded in a around 0

                \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b\_2}} \]
              8. Step-by-step derivation
                1. lower-*.f64N/A

                  \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b\_2}} \]
                2. lower-/.f6491.9

                  \[\leadsto -0.5 \cdot \color{blue}{\frac{c}{b\_2}} \]
              9. Applied rewrites91.9%

                \[\leadsto \color{blue}{-0.5 \cdot \frac{c}{b\_2}} \]
              10. Step-by-step derivation
                1. Applied rewrites91.9%

                  \[\leadsto \frac{-0.5 \cdot c}{\color{blue}{b\_2}} \]
              11. Recombined 3 regimes into one program.
              12. Final simplification83.6%

                \[\leadsto \begin{array}{l} \mathbf{if}\;b\_2 \leq -1.8 \cdot 10^{+137}:\\ \;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\ \mathbf{elif}\;b\_2 \leq 9 \cdot 10^{+31}:\\ \;\;\;\;\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-0.5 \cdot c}{b\_2}\\ \end{array} \]
              13. Add Preprocessing

              Alternative 5: 80.7% accurate, 0.9× speedup?

              \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;b\_2 \leq -3.2 \cdot 10^{-92}:\\ \;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\ \mathbf{elif}\;b\_2 \leq 1.75 \cdot 10^{-68}:\\ \;\;\;\;\frac{\left(-b\_2\right) + \sqrt{c \cdot \left(-a\right)}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-0.5 \cdot c}{b\_2}\\ \end{array} \end{array} \]
              (FPCore (a b_2 c)
               :precision binary64
               (if (<= b_2 -3.2e-92)
                 (fma 0.5 (/ c b_2) (* (/ b_2 a) -2.0))
                 (if (<= b_2 1.75e-68)
                   (/ (+ (- b_2) (sqrt (* c (- a)))) a)
                   (/ (* -0.5 c) b_2))))
              double code(double a, double b_2, double c) {
              	double tmp;
              	if (b_2 <= -3.2e-92) {
              		tmp = fma(0.5, (c / b_2), ((b_2 / a) * -2.0));
              	} else if (b_2 <= 1.75e-68) {
              		tmp = (-b_2 + sqrt((c * -a))) / a;
              	} else {
              		tmp = (-0.5 * c) / b_2;
              	}
              	return tmp;
              }
              
              function code(a, b_2, c)
              	tmp = 0.0
              	if (b_2 <= -3.2e-92)
              		tmp = fma(0.5, Float64(c / b_2), Float64(Float64(b_2 / a) * -2.0));
              	elseif (b_2 <= 1.75e-68)
              		tmp = Float64(Float64(Float64(-b_2) + sqrt(Float64(c * Float64(-a)))) / a);
              	else
              		tmp = Float64(Float64(-0.5 * c) / b_2);
              	end
              	return tmp
              end
              
              code[a_, b$95$2_, c_] := If[LessEqual[b$95$2, -3.2e-92], N[(0.5 * N[(c / b$95$2), $MachinePrecision] + N[(N[(b$95$2 / a), $MachinePrecision] * -2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[b$95$2, 1.75e-68], N[(N[((-b$95$2) + N[Sqrt[N[(c * (-a)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision], N[(N[(-0.5 * c), $MachinePrecision] / b$95$2), $MachinePrecision]]]
              
              \begin{array}{l}
              
              \\
              \begin{array}{l}
              \mathbf{if}\;b\_2 \leq -3.2 \cdot 10^{-92}:\\
              \;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\
              
              \mathbf{elif}\;b\_2 \leq 1.75 \cdot 10^{-68}:\\
              \;\;\;\;\frac{\left(-b\_2\right) + \sqrt{c \cdot \left(-a\right)}}{a}\\
              
              \mathbf{else}:\\
              \;\;\;\;\frac{-0.5 \cdot c}{b\_2}\\
              
              
              \end{array}
              \end{array}
              
              Derivation
              1. Split input into 3 regimes
              2. if b_2 < -3.1999999999999997e-92

                1. Initial program 62.3%

                  \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
                2. Add Preprocessing
                3. Taylor expanded in b_2 around -inf

                  \[\leadsto \color{blue}{-1 \cdot \left(b\_2 \cdot \left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right)\right)} \]
                4. Step-by-step derivation
                  1. associate-*r*N/A

                    \[\leadsto \color{blue}{\left(-1 \cdot b\_2\right) \cdot \left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right)} \]
                  2. *-commutativeN/A

                    \[\leadsto \color{blue}{\left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right)} \]
                  3. lower-*.f64N/A

                    \[\leadsto \color{blue}{\left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right)} \]
                  4. *-commutativeN/A

                    \[\leadsto \left(\color{blue}{\frac{c}{{b\_2}^{2}} \cdot \frac{-1}{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                  5. lower-fma.f64N/A

                    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{c}{{b\_2}^{2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right)} \cdot \left(-1 \cdot b\_2\right) \]
                  6. unpow2N/A

                    \[\leadsto \mathsf{fma}\left(\frac{c}{\color{blue}{b\_2 \cdot b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                  7. associate-/r*N/A

                    \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\frac{c}{b\_2}}{b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                  8. lower-/.f64N/A

                    \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\frac{c}{b\_2}}{b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                  9. lower-/.f64N/A

                    \[\leadsto \mathsf{fma}\left(\frac{\color{blue}{\frac{c}{b\_2}}}{b\_2}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                  10. associate-*r/N/A

                    \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \color{blue}{\frac{2 \cdot 1}{a}}\right) \cdot \left(-1 \cdot b\_2\right) \]
                  11. metadata-evalN/A

                    \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \frac{\color{blue}{2}}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                  12. lower-/.f64N/A

                    \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \color{blue}{\frac{2}{a}}\right) \cdot \left(-1 \cdot b\_2\right) \]
                  13. mul-1-negN/A

                    \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \frac{2}{a}\right) \cdot \color{blue}{\left(\mathsf{neg}\left(b\_2\right)\right)} \]
                  14. lower-neg.f6486.4

                    \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, -0.5, \frac{2}{a}\right) \cdot \color{blue}{\left(-b\_2\right)} \]
                5. Applied rewrites86.4%

                  \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, -0.5, \frac{2}{a}\right) \cdot \left(-b\_2\right)} \]
                6. Taylor expanded in a around inf

                  \[\leadsto -2 \cdot \frac{b\_2}{a} + \color{blue}{\frac{1}{2} \cdot \frac{c}{b\_2}} \]
                7. Step-by-step derivation
                  1. Applied rewrites86.7%

                    \[\leadsto \mathsf{fma}\left(0.5, \color{blue}{\frac{c}{b\_2}}, \frac{b\_2}{a} \cdot -2\right) \]

                  if -3.1999999999999997e-92 < b_2 < 1.75000000000000006e-68

                  1. Initial program 73.3%

                    \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
                  2. Add Preprocessing
                  3. Taylor expanded in a around inf

                    \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{-1 \cdot \left(a \cdot c\right)}}}{a} \]
                  4. Step-by-step derivation
                    1. mul-1-negN/A

                      \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\mathsf{neg}\left(a \cdot c\right)}}}{a} \]
                    2. *-commutativeN/A

                      \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\mathsf{neg}\left(\color{blue}{c \cdot a}\right)}}{a} \]
                    3. distribute-lft-neg-inN/A

                      \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\left(\mathsf{neg}\left(c\right)\right) \cdot a}}}{a} \]
                    4. lower-*.f64N/A

                      \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\left(\mathsf{neg}\left(c\right)\right) \cdot a}}}{a} \]
                    5. lower-neg.f6466.6

                      \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\left(-c\right)} \cdot a}}{a} \]
                  5. Applied rewrites66.6%

                    \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\left(-c\right) \cdot a}}}{a} \]

                  if 1.75000000000000006e-68 < b_2

                  1. Initial program 20.0%

                    \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
                  2. Add Preprocessing
                  3. Step-by-step derivation
                    1. lift--.f64N/A

                      \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2 - a \cdot c}}}{a} \]
                    2. lift-*.f64N/A

                      \[\leadsto \frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - \color{blue}{a \cdot c}}}{a} \]
                    3. fp-cancel-sub-sign-invN/A

                      \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2 + \left(\mathsf{neg}\left(a\right)\right) \cdot c}}}{a} \]
                    4. lift-*.f64N/A

                      \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2} + \left(\mathsf{neg}\left(a\right)\right) \cdot c}}{a} \]
                    5. lower-fma.f64N/A

                      \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\mathsf{fma}\left(b\_2, b\_2, \left(\mathsf{neg}\left(a\right)\right) \cdot c\right)}}}{a} \]
                    6. lower-*.f64N/A

                      \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \color{blue}{\left(\mathsf{neg}\left(a\right)\right) \cdot c}\right)}}{a} \]
                    7. lower-neg.f6420.0

                      \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \color{blue}{\left(-a\right)} \cdot c\right)}}{a} \]
                  4. Applied rewrites20.0%

                    \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}}{a} \]
                  5. Step-by-step derivation
                    1. lift-+.f64N/A

                      \[\leadsto \frac{\color{blue}{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}}{a} \]
                    2. +-commutativeN/A

                      \[\leadsto \frac{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} + \left(-b\_2\right)}}{a} \]
                    3. lift-sqrt.f64N/A

                      \[\leadsto \frac{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} + \left(-b\_2\right)}{a} \]
                    4. rem-square-sqrtN/A

                      \[\leadsto \frac{\sqrt{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} \cdot \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
                    5. lift-sqrt.f64N/A

                      \[\leadsto \frac{\sqrt{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \cdot \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} + \left(-b\_2\right)}{a} \]
                    6. lift-sqrt.f64N/A

                      \[\leadsto \frac{\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} \cdot \color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
                    7. sqrt-prodN/A

                      \[\leadsto \frac{\color{blue}{\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
                    8. lower-fma.f64N/A

                      \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}, \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}, -b\_2\right)}}{a} \]
                  6. Applied rewrites14.3%

                    \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}}, \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}}, -b\_2\right)}}{a} \]
                  7. Taylor expanded in a around 0

                    \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b\_2}} \]
                  8. Step-by-step derivation
                    1. lower-*.f64N/A

                      \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b\_2}} \]
                    2. lower-/.f6481.6

                      \[\leadsto -0.5 \cdot \color{blue}{\frac{c}{b\_2}} \]
                  9. Applied rewrites81.6%

                    \[\leadsto \color{blue}{-0.5 \cdot \frac{c}{b\_2}} \]
                  10. Step-by-step derivation
                    1. Applied rewrites81.6%

                      \[\leadsto \frac{-0.5 \cdot c}{\color{blue}{b\_2}} \]
                  11. Recombined 3 regimes into one program.
                  12. Final simplification79.3%

                    \[\leadsto \begin{array}{l} \mathbf{if}\;b\_2 \leq -3.2 \cdot 10^{-92}:\\ \;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\ \mathbf{elif}\;b\_2 \leq 1.75 \cdot 10^{-68}:\\ \;\;\;\;\frac{\left(-b\_2\right) + \sqrt{c \cdot \left(-a\right)}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-0.5 \cdot c}{b\_2}\\ \end{array} \]
                  13. Add Preprocessing

                  Alternative 6: 67.3% accurate, 1.0× speedup?

                  \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;b\_2 \leq -2 \cdot 10^{-311}:\\ \;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{-0.5 \cdot c}{b\_2}\\ \end{array} \end{array} \]
                  (FPCore (a b_2 c)
                   :precision binary64
                   (if (<= b_2 -2e-311)
                     (fma 0.5 (/ c b_2) (* (/ b_2 a) -2.0))
                     (/ (* -0.5 c) b_2)))
                  double code(double a, double b_2, double c) {
                  	double tmp;
                  	if (b_2 <= -2e-311) {
                  		tmp = fma(0.5, (c / b_2), ((b_2 / a) * -2.0));
                  	} else {
                  		tmp = (-0.5 * c) / b_2;
                  	}
                  	return tmp;
                  }
                  
                  function code(a, b_2, c)
                  	tmp = 0.0
                  	if (b_2 <= -2e-311)
                  		tmp = fma(0.5, Float64(c / b_2), Float64(Float64(b_2 / a) * -2.0));
                  	else
                  		tmp = Float64(Float64(-0.5 * c) / b_2);
                  	end
                  	return tmp
                  end
                  
                  code[a_, b$95$2_, c_] := If[LessEqual[b$95$2, -2e-311], N[(0.5 * N[(c / b$95$2), $MachinePrecision] + N[(N[(b$95$2 / a), $MachinePrecision] * -2.0), $MachinePrecision]), $MachinePrecision], N[(N[(-0.5 * c), $MachinePrecision] / b$95$2), $MachinePrecision]]
                  
                  \begin{array}{l}
                  
                  \\
                  \begin{array}{l}
                  \mathbf{if}\;b\_2 \leq -2 \cdot 10^{-311}:\\
                  \;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\
                  
                  \mathbf{else}:\\
                  \;\;\;\;\frac{-0.5 \cdot c}{b\_2}\\
                  
                  
                  \end{array}
                  \end{array}
                  
                  Derivation
                  1. Split input into 2 regimes
                  2. if b_2 < -1.9999999999999e-311

                    1. Initial program 68.0%

                      \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
                    2. Add Preprocessing
                    3. Taylor expanded in b_2 around -inf

                      \[\leadsto \color{blue}{-1 \cdot \left(b\_2 \cdot \left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right)\right)} \]
                    4. Step-by-step derivation
                      1. associate-*r*N/A

                        \[\leadsto \color{blue}{\left(-1 \cdot b\_2\right) \cdot \left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right)} \]
                      2. *-commutativeN/A

                        \[\leadsto \color{blue}{\left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right)} \]
                      3. lower-*.f64N/A

                        \[\leadsto \color{blue}{\left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right)} \]
                      4. *-commutativeN/A

                        \[\leadsto \left(\color{blue}{\frac{c}{{b\_2}^{2}} \cdot \frac{-1}{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                      5. lower-fma.f64N/A

                        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{c}{{b\_2}^{2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right)} \cdot \left(-1 \cdot b\_2\right) \]
                      6. unpow2N/A

                        \[\leadsto \mathsf{fma}\left(\frac{c}{\color{blue}{b\_2 \cdot b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                      7. associate-/r*N/A

                        \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\frac{c}{b\_2}}{b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                      8. lower-/.f64N/A

                        \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\frac{c}{b\_2}}{b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                      9. lower-/.f64N/A

                        \[\leadsto \mathsf{fma}\left(\frac{\color{blue}{\frac{c}{b\_2}}}{b\_2}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                      10. associate-*r/N/A

                        \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \color{blue}{\frac{2 \cdot 1}{a}}\right) \cdot \left(-1 \cdot b\_2\right) \]
                      11. metadata-evalN/A

                        \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \frac{\color{blue}{2}}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                      12. lower-/.f64N/A

                        \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \color{blue}{\frac{2}{a}}\right) \cdot \left(-1 \cdot b\_2\right) \]
                      13. mul-1-negN/A

                        \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \frac{2}{a}\right) \cdot \color{blue}{\left(\mathsf{neg}\left(b\_2\right)\right)} \]
                      14. lower-neg.f6466.3

                        \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, -0.5, \frac{2}{a}\right) \cdot \color{blue}{\left(-b\_2\right)} \]
                    5. Applied rewrites66.3%

                      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, -0.5, \frac{2}{a}\right) \cdot \left(-b\_2\right)} \]
                    6. Taylor expanded in a around inf

                      \[\leadsto -2 \cdot \frac{b\_2}{a} + \color{blue}{\frac{1}{2} \cdot \frac{c}{b\_2}} \]
                    7. Step-by-step derivation
                      1. Applied rewrites66.6%

                        \[\leadsto \mathsf{fma}\left(0.5, \color{blue}{\frac{c}{b\_2}}, \frac{b\_2}{a} \cdot -2\right) \]

                      if -1.9999999999999e-311 < b_2

                      1. Initial program 30.7%

                        \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
                      2. Add Preprocessing
                      3. Step-by-step derivation
                        1. lift--.f64N/A

                          \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2 - a \cdot c}}}{a} \]
                        2. lift-*.f64N/A

                          \[\leadsto \frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - \color{blue}{a \cdot c}}}{a} \]
                        3. fp-cancel-sub-sign-invN/A

                          \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2 + \left(\mathsf{neg}\left(a\right)\right) \cdot c}}}{a} \]
                        4. lift-*.f64N/A

                          \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2} + \left(\mathsf{neg}\left(a\right)\right) \cdot c}}{a} \]
                        5. lower-fma.f64N/A

                          \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\mathsf{fma}\left(b\_2, b\_2, \left(\mathsf{neg}\left(a\right)\right) \cdot c\right)}}}{a} \]
                        6. lower-*.f64N/A

                          \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \color{blue}{\left(\mathsf{neg}\left(a\right)\right) \cdot c}\right)}}{a} \]
                        7. lower-neg.f6430.7

                          \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \color{blue}{\left(-a\right)} \cdot c\right)}}{a} \]
                      4. Applied rewrites30.7%

                        \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}}{a} \]
                      5. Step-by-step derivation
                        1. lift-+.f64N/A

                          \[\leadsto \frac{\color{blue}{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}}{a} \]
                        2. +-commutativeN/A

                          \[\leadsto \frac{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} + \left(-b\_2\right)}}{a} \]
                        3. lift-sqrt.f64N/A

                          \[\leadsto \frac{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} + \left(-b\_2\right)}{a} \]
                        4. rem-square-sqrtN/A

                          \[\leadsto \frac{\sqrt{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} \cdot \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
                        5. lift-sqrt.f64N/A

                          \[\leadsto \frac{\sqrt{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \cdot \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} + \left(-b\_2\right)}{a} \]
                        6. lift-sqrt.f64N/A

                          \[\leadsto \frac{\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} \cdot \color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
                        7. sqrt-prodN/A

                          \[\leadsto \frac{\color{blue}{\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
                        8. lower-fma.f64N/A

                          \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}, \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}, -b\_2\right)}}{a} \]
                      6. Applied rewrites26.3%

                        \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}}, \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}}, -b\_2\right)}}{a} \]
                      7. Taylor expanded in a around 0

                        \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b\_2}} \]
                      8. Step-by-step derivation
                        1. lower-*.f64N/A

                          \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b\_2}} \]
                        2. lower-/.f6466.7

                          \[\leadsto -0.5 \cdot \color{blue}{\frac{c}{b\_2}} \]
                      9. Applied rewrites66.7%

                        \[\leadsto \color{blue}{-0.5 \cdot \frac{c}{b\_2}} \]
                      10. Step-by-step derivation
                        1. Applied rewrites66.8%

                          \[\leadsto \frac{-0.5 \cdot c}{\color{blue}{b\_2}} \]
                      11. Recombined 2 regimes into one program.
                      12. Final simplification66.7%

                        \[\leadsto \begin{array}{l} \mathbf{if}\;b\_2 \leq -2 \cdot 10^{-311}:\\ \;\;\;\;\mathsf{fma}\left(0.5, \frac{c}{b\_2}, \frac{b\_2}{a} \cdot -2\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{-0.5 \cdot c}{b\_2}\\ \end{array} \]
                      13. Add Preprocessing

                      Alternative 7: 67.2% accurate, 1.7× speedup?

                      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;b\_2 \leq -2 \cdot 10^{-311}:\\ \;\;\;\;-2 \cdot \frac{b\_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-0.5 \cdot c}{b\_2}\\ \end{array} \end{array} \]
                      (FPCore (a b_2 c)
                       :precision binary64
                       (if (<= b_2 -2e-311) (* -2.0 (/ b_2 a)) (/ (* -0.5 c) b_2)))
                      double code(double a, double b_2, double c) {
                      	double tmp;
                      	if (b_2 <= -2e-311) {
                      		tmp = -2.0 * (b_2 / a);
                      	} else {
                      		tmp = (-0.5 * c) / b_2;
                      	}
                      	return tmp;
                      }
                      
                      real(8) function code(a, b_2, c)
                          real(8), intent (in) :: a
                          real(8), intent (in) :: b_2
                          real(8), intent (in) :: c
                          real(8) :: tmp
                          if (b_2 <= (-2d-311)) then
                              tmp = (-2.0d0) * (b_2 / a)
                          else
                              tmp = ((-0.5d0) * c) / b_2
                          end if
                          code = tmp
                      end function
                      
                      public static double code(double a, double b_2, double c) {
                      	double tmp;
                      	if (b_2 <= -2e-311) {
                      		tmp = -2.0 * (b_2 / a);
                      	} else {
                      		tmp = (-0.5 * c) / b_2;
                      	}
                      	return tmp;
                      }
                      
                      def code(a, b_2, c):
                      	tmp = 0
                      	if b_2 <= -2e-311:
                      		tmp = -2.0 * (b_2 / a)
                      	else:
                      		tmp = (-0.5 * c) / b_2
                      	return tmp
                      
                      function code(a, b_2, c)
                      	tmp = 0.0
                      	if (b_2 <= -2e-311)
                      		tmp = Float64(-2.0 * Float64(b_2 / a));
                      	else
                      		tmp = Float64(Float64(-0.5 * c) / b_2);
                      	end
                      	return tmp
                      end
                      
                      function tmp_2 = code(a, b_2, c)
                      	tmp = 0.0;
                      	if (b_2 <= -2e-311)
                      		tmp = -2.0 * (b_2 / a);
                      	else
                      		tmp = (-0.5 * c) / b_2;
                      	end
                      	tmp_2 = tmp;
                      end
                      
                      code[a_, b$95$2_, c_] := If[LessEqual[b$95$2, -2e-311], N[(-2.0 * N[(b$95$2 / a), $MachinePrecision]), $MachinePrecision], N[(N[(-0.5 * c), $MachinePrecision] / b$95$2), $MachinePrecision]]
                      
                      \begin{array}{l}
                      
                      \\
                      \begin{array}{l}
                      \mathbf{if}\;b\_2 \leq -2 \cdot 10^{-311}:\\
                      \;\;\;\;-2 \cdot \frac{b\_2}{a}\\
                      
                      \mathbf{else}:\\
                      \;\;\;\;\frac{-0.5 \cdot c}{b\_2}\\
                      
                      
                      \end{array}
                      \end{array}
                      
                      Derivation
                      1. Split input into 2 regimes
                      2. if b_2 < -1.9999999999999e-311

                        1. Initial program 68.0%

                          \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
                        2. Add Preprocessing
                        3. Taylor expanded in b_2 around -inf

                          \[\leadsto \color{blue}{-2 \cdot \frac{b\_2}{a}} \]
                        4. Step-by-step derivation
                          1. lower-*.f64N/A

                            \[\leadsto \color{blue}{-2 \cdot \frac{b\_2}{a}} \]
                          2. lower-/.f6466.0

                            \[\leadsto -2 \cdot \color{blue}{\frac{b\_2}{a}} \]
                        5. Applied rewrites66.0%

                          \[\leadsto \color{blue}{-2 \cdot \frac{b\_2}{a}} \]

                        if -1.9999999999999e-311 < b_2

                        1. Initial program 30.7%

                          \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
                        2. Add Preprocessing
                        3. Step-by-step derivation
                          1. lift--.f64N/A

                            \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2 - a \cdot c}}}{a} \]
                          2. lift-*.f64N/A

                            \[\leadsto \frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - \color{blue}{a \cdot c}}}{a} \]
                          3. fp-cancel-sub-sign-invN/A

                            \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2 + \left(\mathsf{neg}\left(a\right)\right) \cdot c}}}{a} \]
                          4. lift-*.f64N/A

                            \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{b\_2 \cdot b\_2} + \left(\mathsf{neg}\left(a\right)\right) \cdot c}}{a} \]
                          5. lower-fma.f64N/A

                            \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\mathsf{fma}\left(b\_2, b\_2, \left(\mathsf{neg}\left(a\right)\right) \cdot c\right)}}}{a} \]
                          6. lower-*.f64N/A

                            \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \color{blue}{\left(\mathsf{neg}\left(a\right)\right) \cdot c}\right)}}{a} \]
                          7. lower-neg.f6430.7

                            \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \color{blue}{\left(-a\right)} \cdot c\right)}}{a} \]
                        4. Applied rewrites30.7%

                          \[\leadsto \frac{\left(-b\_2\right) + \sqrt{\color{blue}{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}}{a} \]
                        5. Step-by-step derivation
                          1. lift-+.f64N/A

                            \[\leadsto \frac{\color{blue}{\left(-b\_2\right) + \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}}{a} \]
                          2. +-commutativeN/A

                            \[\leadsto \frac{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} + \left(-b\_2\right)}}{a} \]
                          3. lift-sqrt.f64N/A

                            \[\leadsto \frac{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} + \left(-b\_2\right)}{a} \]
                          4. rem-square-sqrtN/A

                            \[\leadsto \frac{\sqrt{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} \cdot \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
                          5. lift-sqrt.f64N/A

                            \[\leadsto \frac{\sqrt{\color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \cdot \sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} + \left(-b\_2\right)}{a} \]
                          6. lift-sqrt.f64N/A

                            \[\leadsto \frac{\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)} \cdot \color{blue}{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
                          7. sqrt-prodN/A

                            \[\leadsto \frac{\color{blue}{\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}} + \left(-b\_2\right)}{a} \]
                          8. lower-fma.f64N/A

                            \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}, \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, \left(-a\right) \cdot c\right)}}, -b\_2\right)}}{a} \]
                        6. Applied rewrites26.3%

                          \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}}, \sqrt{\sqrt{\mathsf{fma}\left(b\_2, b\_2, c \cdot \left(-a\right)\right)}}, -b\_2\right)}}{a} \]
                        7. Taylor expanded in a around 0

                          \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b\_2}} \]
                        8. Step-by-step derivation
                          1. lower-*.f64N/A

                            \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b\_2}} \]
                          2. lower-/.f6466.7

                            \[\leadsto -0.5 \cdot \color{blue}{\frac{c}{b\_2}} \]
                        9. Applied rewrites66.7%

                          \[\leadsto \color{blue}{-0.5 \cdot \frac{c}{b\_2}} \]
                        10. Step-by-step derivation
                          1. Applied rewrites66.8%

                            \[\leadsto \frac{-0.5 \cdot c}{\color{blue}{b\_2}} \]
                        11. Recombined 2 regimes into one program.
                        12. Final simplification66.4%

                          \[\leadsto \begin{array}{l} \mathbf{if}\;b\_2 \leq -2 \cdot 10^{-311}:\\ \;\;\;\;-2 \cdot \frac{b\_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-0.5 \cdot c}{b\_2}\\ \end{array} \]
                        13. Add Preprocessing

                        Alternative 8: 67.2% accurate, 1.7× speedup?

                        \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;b\_2 \leq -2 \cdot 10^{-311}:\\ \;\;\;\;-2 \cdot \frac{b\_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b\_2} \cdot -0.5\\ \end{array} \end{array} \]
                        (FPCore (a b_2 c)
                         :precision binary64
                         (if (<= b_2 -2e-311) (* -2.0 (/ b_2 a)) (* (/ c b_2) -0.5)))
                        double code(double a, double b_2, double c) {
                        	double tmp;
                        	if (b_2 <= -2e-311) {
                        		tmp = -2.0 * (b_2 / a);
                        	} else {
                        		tmp = (c / b_2) * -0.5;
                        	}
                        	return tmp;
                        }
                        
                        real(8) function code(a, b_2, c)
                            real(8), intent (in) :: a
                            real(8), intent (in) :: b_2
                            real(8), intent (in) :: c
                            real(8) :: tmp
                            if (b_2 <= (-2d-311)) then
                                tmp = (-2.0d0) * (b_2 / a)
                            else
                                tmp = (c / b_2) * (-0.5d0)
                            end if
                            code = tmp
                        end function
                        
                        public static double code(double a, double b_2, double c) {
                        	double tmp;
                        	if (b_2 <= -2e-311) {
                        		tmp = -2.0 * (b_2 / a);
                        	} else {
                        		tmp = (c / b_2) * -0.5;
                        	}
                        	return tmp;
                        }
                        
                        def code(a, b_2, c):
                        	tmp = 0
                        	if b_2 <= -2e-311:
                        		tmp = -2.0 * (b_2 / a)
                        	else:
                        		tmp = (c / b_2) * -0.5
                        	return tmp
                        
                        function code(a, b_2, c)
                        	tmp = 0.0
                        	if (b_2 <= -2e-311)
                        		tmp = Float64(-2.0 * Float64(b_2 / a));
                        	else
                        		tmp = Float64(Float64(c / b_2) * -0.5);
                        	end
                        	return tmp
                        end
                        
                        function tmp_2 = code(a, b_2, c)
                        	tmp = 0.0;
                        	if (b_2 <= -2e-311)
                        		tmp = -2.0 * (b_2 / a);
                        	else
                        		tmp = (c / b_2) * -0.5;
                        	end
                        	tmp_2 = tmp;
                        end
                        
                        code[a_, b$95$2_, c_] := If[LessEqual[b$95$2, -2e-311], N[(-2.0 * N[(b$95$2 / a), $MachinePrecision]), $MachinePrecision], N[(N[(c / b$95$2), $MachinePrecision] * -0.5), $MachinePrecision]]
                        
                        \begin{array}{l}
                        
                        \\
                        \begin{array}{l}
                        \mathbf{if}\;b\_2 \leq -2 \cdot 10^{-311}:\\
                        \;\;\;\;-2 \cdot \frac{b\_2}{a}\\
                        
                        \mathbf{else}:\\
                        \;\;\;\;\frac{c}{b\_2} \cdot -0.5\\
                        
                        
                        \end{array}
                        \end{array}
                        
                        Derivation
                        1. Split input into 2 regimes
                        2. if b_2 < -1.9999999999999e-311

                          1. Initial program 68.0%

                            \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
                          2. Add Preprocessing
                          3. Taylor expanded in b_2 around -inf

                            \[\leadsto \color{blue}{-2 \cdot \frac{b\_2}{a}} \]
                          4. Step-by-step derivation
                            1. lower-*.f64N/A

                              \[\leadsto \color{blue}{-2 \cdot \frac{b\_2}{a}} \]
                            2. lower-/.f6466.0

                              \[\leadsto -2 \cdot \color{blue}{\frac{b\_2}{a}} \]
                          5. Applied rewrites66.0%

                            \[\leadsto \color{blue}{-2 \cdot \frac{b\_2}{a}} \]

                          if -1.9999999999999e-311 < b_2

                          1. Initial program 30.7%

                            \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
                          2. Add Preprocessing
                          3. Taylor expanded in a around 0

                            \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b\_2}} \]
                          4. Step-by-step derivation
                            1. *-commutativeN/A

                              \[\leadsto \color{blue}{\frac{c}{b\_2} \cdot \frac{-1}{2}} \]
                            2. lower-*.f64N/A

                              \[\leadsto \color{blue}{\frac{c}{b\_2} \cdot \frac{-1}{2}} \]
                            3. lower-/.f6466.7

                              \[\leadsto \color{blue}{\frac{c}{b\_2}} \cdot -0.5 \]
                          5. Applied rewrites66.7%

                            \[\leadsto \color{blue}{\frac{c}{b\_2} \cdot -0.5} \]
                        3. Recombined 2 regimes into one program.
                        4. Final simplification66.4%

                          \[\leadsto \begin{array}{l} \mathbf{if}\;b\_2 \leq -2 \cdot 10^{-311}:\\ \;\;\;\;-2 \cdot \frac{b\_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b\_2} \cdot -0.5\\ \end{array} \]
                        5. Add Preprocessing

                        Alternative 9: 42.4% accurate, 1.7× speedup?

                        \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;b\_2 \leq 1.25 \cdot 10^{+39}:\\ \;\;\;\;-2 \cdot \frac{b\_2}{a}\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \frac{c}{b\_2}\\ \end{array} \end{array} \]
                        (FPCore (a b_2 c)
                         :precision binary64
                         (if (<= b_2 1.25e+39) (* -2.0 (/ b_2 a)) (* 0.5 (/ c b_2))))
                        double code(double a, double b_2, double c) {
                        	double tmp;
                        	if (b_2 <= 1.25e+39) {
                        		tmp = -2.0 * (b_2 / a);
                        	} else {
                        		tmp = 0.5 * (c / b_2);
                        	}
                        	return tmp;
                        }
                        
                        real(8) function code(a, b_2, c)
                            real(8), intent (in) :: a
                            real(8), intent (in) :: b_2
                            real(8), intent (in) :: c
                            real(8) :: tmp
                            if (b_2 <= 1.25d+39) then
                                tmp = (-2.0d0) * (b_2 / a)
                            else
                                tmp = 0.5d0 * (c / b_2)
                            end if
                            code = tmp
                        end function
                        
                        public static double code(double a, double b_2, double c) {
                        	double tmp;
                        	if (b_2 <= 1.25e+39) {
                        		tmp = -2.0 * (b_2 / a);
                        	} else {
                        		tmp = 0.5 * (c / b_2);
                        	}
                        	return tmp;
                        }
                        
                        def code(a, b_2, c):
                        	tmp = 0
                        	if b_2 <= 1.25e+39:
                        		tmp = -2.0 * (b_2 / a)
                        	else:
                        		tmp = 0.5 * (c / b_2)
                        	return tmp
                        
                        function code(a, b_2, c)
                        	tmp = 0.0
                        	if (b_2 <= 1.25e+39)
                        		tmp = Float64(-2.0 * Float64(b_2 / a));
                        	else
                        		tmp = Float64(0.5 * Float64(c / b_2));
                        	end
                        	return tmp
                        end
                        
                        function tmp_2 = code(a, b_2, c)
                        	tmp = 0.0;
                        	if (b_2 <= 1.25e+39)
                        		tmp = -2.0 * (b_2 / a);
                        	else
                        		tmp = 0.5 * (c / b_2);
                        	end
                        	tmp_2 = tmp;
                        end
                        
                        code[a_, b$95$2_, c_] := If[LessEqual[b$95$2, 1.25e+39], N[(-2.0 * N[(b$95$2 / a), $MachinePrecision]), $MachinePrecision], N[(0.5 * N[(c / b$95$2), $MachinePrecision]), $MachinePrecision]]
                        
                        \begin{array}{l}
                        
                        \\
                        \begin{array}{l}
                        \mathbf{if}\;b\_2 \leq 1.25 \cdot 10^{+39}:\\
                        \;\;\;\;-2 \cdot \frac{b\_2}{a}\\
                        
                        \mathbf{else}:\\
                        \;\;\;\;0.5 \cdot \frac{c}{b\_2}\\
                        
                        
                        \end{array}
                        \end{array}
                        
                        Derivation
                        1. Split input into 2 regimes
                        2. if b_2 < 1.25000000000000004e39

                          1. Initial program 64.1%

                            \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
                          2. Add Preprocessing
                          3. Taylor expanded in b_2 around -inf

                            \[\leadsto \color{blue}{-2 \cdot \frac{b\_2}{a}} \]
                          4. Step-by-step derivation
                            1. lower-*.f64N/A

                              \[\leadsto \color{blue}{-2 \cdot \frac{b\_2}{a}} \]
                            2. lower-/.f6447.1

                              \[\leadsto -2 \cdot \color{blue}{\frac{b\_2}{a}} \]
                          5. Applied rewrites47.1%

                            \[\leadsto \color{blue}{-2 \cdot \frac{b\_2}{a}} \]

                          if 1.25000000000000004e39 < b_2

                          1. Initial program 13.5%

                            \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
                          2. Add Preprocessing
                          3. Taylor expanded in b_2 around -inf

                            \[\leadsto \color{blue}{-1 \cdot \left(b\_2 \cdot \left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right)\right)} \]
                          4. Step-by-step derivation
                            1. associate-*r*N/A

                              \[\leadsto \color{blue}{\left(-1 \cdot b\_2\right) \cdot \left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right)} \]
                            2. *-commutativeN/A

                              \[\leadsto \color{blue}{\left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right)} \]
                            3. lower-*.f64N/A

                              \[\leadsto \color{blue}{\left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right)} \]
                            4. *-commutativeN/A

                              \[\leadsto \left(\color{blue}{\frac{c}{{b\_2}^{2}} \cdot \frac{-1}{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                            5. lower-fma.f64N/A

                              \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{c}{{b\_2}^{2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right)} \cdot \left(-1 \cdot b\_2\right) \]
                            6. unpow2N/A

                              \[\leadsto \mathsf{fma}\left(\frac{c}{\color{blue}{b\_2 \cdot b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                            7. associate-/r*N/A

                              \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\frac{c}{b\_2}}{b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                            8. lower-/.f64N/A

                              \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\frac{c}{b\_2}}{b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                            9. lower-/.f64N/A

                              \[\leadsto \mathsf{fma}\left(\frac{\color{blue}{\frac{c}{b\_2}}}{b\_2}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                            10. associate-*r/N/A

                              \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \color{blue}{\frac{2 \cdot 1}{a}}\right) \cdot \left(-1 \cdot b\_2\right) \]
                            11. metadata-evalN/A

                              \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \frac{\color{blue}{2}}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                            12. lower-/.f64N/A

                              \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \color{blue}{\frac{2}{a}}\right) \cdot \left(-1 \cdot b\_2\right) \]
                            13. mul-1-negN/A

                              \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \frac{2}{a}\right) \cdot \color{blue}{\left(\mathsf{neg}\left(b\_2\right)\right)} \]
                            14. lower-neg.f642.8

                              \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, -0.5, \frac{2}{a}\right) \cdot \color{blue}{\left(-b\_2\right)} \]
                          5. Applied rewrites2.8%

                            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, -0.5, \frac{2}{a}\right) \cdot \left(-b\_2\right)} \]
                          6. Taylor expanded in a around inf

                            \[\leadsto \frac{1}{2} \cdot \color{blue}{\frac{c}{b\_2}} \]
                          7. Step-by-step derivation
                            1. Applied rewrites21.1%

                              \[\leadsto 0.5 \cdot \color{blue}{\frac{c}{b\_2}} \]
                          8. Recombined 2 regimes into one program.
                          9. Final simplification39.4%

                            \[\leadsto \begin{array}{l} \mathbf{if}\;b\_2 \leq 1.25 \cdot 10^{+39}:\\ \;\;\;\;-2 \cdot \frac{b\_2}{a}\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \frac{c}{b\_2}\\ \end{array} \]
                          10. Add Preprocessing

                          Alternative 10: 10.9% accurate, 2.4× speedup?

                          \[\begin{array}{l} \\ 0.5 \cdot \frac{c}{b\_2} \end{array} \]
                          (FPCore (a b_2 c) :precision binary64 (* 0.5 (/ c b_2)))
                          double code(double a, double b_2, double c) {
                          	return 0.5 * (c / b_2);
                          }
                          
                          real(8) function code(a, b_2, c)
                              real(8), intent (in) :: a
                              real(8), intent (in) :: b_2
                              real(8), intent (in) :: c
                              code = 0.5d0 * (c / b_2)
                          end function
                          
                          public static double code(double a, double b_2, double c) {
                          	return 0.5 * (c / b_2);
                          }
                          
                          def code(a, b_2, c):
                          	return 0.5 * (c / b_2)
                          
                          function code(a, b_2, c)
                          	return Float64(0.5 * Float64(c / b_2))
                          end
                          
                          function tmp = code(a, b_2, c)
                          	tmp = 0.5 * (c / b_2);
                          end
                          
                          code[a_, b$95$2_, c_] := N[(0.5 * N[(c / b$95$2), $MachinePrecision]), $MachinePrecision]
                          
                          \begin{array}{l}
                          
                          \\
                          0.5 \cdot \frac{c}{b\_2}
                          \end{array}
                          
                          Derivation
                          1. Initial program 49.1%

                            \[\frac{\left(-b\_2\right) + \sqrt{b\_2 \cdot b\_2 - a \cdot c}}{a} \]
                          2. Add Preprocessing
                          3. Taylor expanded in b_2 around -inf

                            \[\leadsto \color{blue}{-1 \cdot \left(b\_2 \cdot \left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right)\right)} \]
                          4. Step-by-step derivation
                            1. associate-*r*N/A

                              \[\leadsto \color{blue}{\left(-1 \cdot b\_2\right) \cdot \left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right)} \]
                            2. *-commutativeN/A

                              \[\leadsto \color{blue}{\left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right)} \]
                            3. lower-*.f64N/A

                              \[\leadsto \color{blue}{\left(\frac{-1}{2} \cdot \frac{c}{{b\_2}^{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right)} \]
                            4. *-commutativeN/A

                              \[\leadsto \left(\color{blue}{\frac{c}{{b\_2}^{2}} \cdot \frac{-1}{2}} + 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                            5. lower-fma.f64N/A

                              \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{c}{{b\_2}^{2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right)} \cdot \left(-1 \cdot b\_2\right) \]
                            6. unpow2N/A

                              \[\leadsto \mathsf{fma}\left(\frac{c}{\color{blue}{b\_2 \cdot b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                            7. associate-/r*N/A

                              \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\frac{c}{b\_2}}{b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                            8. lower-/.f64N/A

                              \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{\frac{c}{b\_2}}{b\_2}}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                            9. lower-/.f64N/A

                              \[\leadsto \mathsf{fma}\left(\frac{\color{blue}{\frac{c}{b\_2}}}{b\_2}, \frac{-1}{2}, 2 \cdot \frac{1}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                            10. associate-*r/N/A

                              \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \color{blue}{\frac{2 \cdot 1}{a}}\right) \cdot \left(-1 \cdot b\_2\right) \]
                            11. metadata-evalN/A

                              \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \frac{\color{blue}{2}}{a}\right) \cdot \left(-1 \cdot b\_2\right) \]
                            12. lower-/.f64N/A

                              \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \color{blue}{\frac{2}{a}}\right) \cdot \left(-1 \cdot b\_2\right) \]
                            13. mul-1-negN/A

                              \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, \frac{-1}{2}, \frac{2}{a}\right) \cdot \color{blue}{\left(\mathsf{neg}\left(b\_2\right)\right)} \]
                            14. lower-neg.f6433.9

                              \[\leadsto \mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, -0.5, \frac{2}{a}\right) \cdot \color{blue}{\left(-b\_2\right)} \]
                          5. Applied rewrites33.9%

                            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\frac{c}{b\_2}}{b\_2}, -0.5, \frac{2}{a}\right) \cdot \left(-b\_2\right)} \]
                          6. Taylor expanded in a around inf

                            \[\leadsto \frac{1}{2} \cdot \color{blue}{\frac{c}{b\_2}} \]
                          7. Step-by-step derivation
                            1. Applied rewrites8.4%

                              \[\leadsto 0.5 \cdot \color{blue}{\frac{c}{b\_2}} \]
                            2. Final simplification8.4%

                              \[\leadsto 0.5 \cdot \frac{c}{b\_2} \]
                            3. Add Preprocessing

                            Developer Target 1: 99.6% accurate, 0.2× speedup?

                            \[\begin{array}{l} \\ \begin{array}{l} t_0 := \sqrt{\left|a\right|} \cdot \sqrt{\left|c\right|}\\ t_1 := \begin{array}{l} \mathbf{if}\;\mathsf{copysign}\left(a, c\right) = a:\\ \;\;\;\;\sqrt{\left|b\_2\right| - t\_0} \cdot \sqrt{\left|b\_2\right| + t\_0}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{hypot}\left(b\_2, t\_0\right)\\ \end{array}\\ \mathbf{if}\;b\_2 < 0:\\ \;\;\;\;\frac{t\_1 - b\_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-c}{b\_2 + t\_1}\\ \end{array} \end{array} \]
                            (FPCore (a b_2 c)
                             :precision binary64
                             (let* ((t_0 (* (sqrt (fabs a)) (sqrt (fabs c))))
                                    (t_1
                                     (if (== (copysign a c) a)
                                       (* (sqrt (- (fabs b_2) t_0)) (sqrt (+ (fabs b_2) t_0)))
                                       (hypot b_2 t_0))))
                               (if (< b_2 0.0) (/ (- t_1 b_2) a) (/ (- c) (+ b_2 t_1)))))
                            double code(double a, double b_2, double c) {
                            	double t_0 = sqrt(fabs(a)) * sqrt(fabs(c));
                            	double tmp;
                            	if (copysign(a, c) == a) {
                            		tmp = sqrt((fabs(b_2) - t_0)) * sqrt((fabs(b_2) + t_0));
                            	} else {
                            		tmp = hypot(b_2, t_0);
                            	}
                            	double t_1 = tmp;
                            	double tmp_1;
                            	if (b_2 < 0.0) {
                            		tmp_1 = (t_1 - b_2) / a;
                            	} else {
                            		tmp_1 = -c / (b_2 + t_1);
                            	}
                            	return tmp_1;
                            }
                            
                            public static double code(double a, double b_2, double c) {
                            	double t_0 = Math.sqrt(Math.abs(a)) * Math.sqrt(Math.abs(c));
                            	double tmp;
                            	if (Math.copySign(a, c) == a) {
                            		tmp = Math.sqrt((Math.abs(b_2) - t_0)) * Math.sqrt((Math.abs(b_2) + t_0));
                            	} else {
                            		tmp = Math.hypot(b_2, t_0);
                            	}
                            	double t_1 = tmp;
                            	double tmp_1;
                            	if (b_2 < 0.0) {
                            		tmp_1 = (t_1 - b_2) / a;
                            	} else {
                            		tmp_1 = -c / (b_2 + t_1);
                            	}
                            	return tmp_1;
                            }
                            
                            def code(a, b_2, c):
                            	t_0 = math.sqrt(math.fabs(a)) * math.sqrt(math.fabs(c))
                            	tmp = 0
                            	if math.copysign(a, c) == a:
                            		tmp = math.sqrt((math.fabs(b_2) - t_0)) * math.sqrt((math.fabs(b_2) + t_0))
                            	else:
                            		tmp = math.hypot(b_2, t_0)
                            	t_1 = tmp
                            	tmp_1 = 0
                            	if b_2 < 0.0:
                            		tmp_1 = (t_1 - b_2) / a
                            	else:
                            		tmp_1 = -c / (b_2 + t_1)
                            	return tmp_1
                            
                            function code(a, b_2, c)
                            	t_0 = Float64(sqrt(abs(a)) * sqrt(abs(c)))
                            	tmp = 0.0
                            	if (copysign(a, c) == a)
                            		tmp = Float64(sqrt(Float64(abs(b_2) - t_0)) * sqrt(Float64(abs(b_2) + t_0)));
                            	else
                            		tmp = hypot(b_2, t_0);
                            	end
                            	t_1 = tmp
                            	tmp_1 = 0.0
                            	if (b_2 < 0.0)
                            		tmp_1 = Float64(Float64(t_1 - b_2) / a);
                            	else
                            		tmp_1 = Float64(Float64(-c) / Float64(b_2 + t_1));
                            	end
                            	return tmp_1
                            end
                            
                            function tmp_3 = code(a, b_2, c)
                            	t_0 = sqrt(abs(a)) * sqrt(abs(c));
                            	tmp = 0.0;
                            	if ((sign(c) * abs(a)) == a)
                            		tmp = sqrt((abs(b_2) - t_0)) * sqrt((abs(b_2) + t_0));
                            	else
                            		tmp = hypot(b_2, t_0);
                            	end
                            	t_1 = tmp;
                            	tmp_2 = 0.0;
                            	if (b_2 < 0.0)
                            		tmp_2 = (t_1 - b_2) / a;
                            	else
                            		tmp_2 = -c / (b_2 + t_1);
                            	end
                            	tmp_3 = tmp_2;
                            end
                            
                            code[a_, b$95$2_, c_] := Block[{t$95$0 = N[(N[Sqrt[N[Abs[a], $MachinePrecision]], $MachinePrecision] * N[Sqrt[N[Abs[c], $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = If[Equal[N[With[{TMP1 = Abs[a], TMP2 = Sign[c]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision], a], N[(N[Sqrt[N[(N[Abs[b$95$2], $MachinePrecision] - t$95$0), $MachinePrecision]], $MachinePrecision] * N[Sqrt[N[(N[Abs[b$95$2], $MachinePrecision] + t$95$0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], N[Sqrt[b$95$2 ^ 2 + t$95$0 ^ 2], $MachinePrecision]]}, If[Less[b$95$2, 0.0], N[(N[(t$95$1 - b$95$2), $MachinePrecision] / a), $MachinePrecision], N[((-c) / N[(b$95$2 + t$95$1), $MachinePrecision]), $MachinePrecision]]]]
                            
                            \begin{array}{l}
                            
                            \\
                            \begin{array}{l}
                            t_0 := \sqrt{\left|a\right|} \cdot \sqrt{\left|c\right|}\\
                            t_1 := \begin{array}{l}
                            \mathbf{if}\;\mathsf{copysign}\left(a, c\right) = a:\\
                            \;\;\;\;\sqrt{\left|b\_2\right| - t\_0} \cdot \sqrt{\left|b\_2\right| + t\_0}\\
                            
                            \mathbf{else}:\\
                            \;\;\;\;\mathsf{hypot}\left(b\_2, t\_0\right)\\
                            
                            
                            \end{array}\\
                            \mathbf{if}\;b\_2 < 0:\\
                            \;\;\;\;\frac{t\_1 - b\_2}{a}\\
                            
                            \mathbf{else}:\\
                            \;\;\;\;\frac{-c}{b\_2 + t\_1}\\
                            
                            
                            \end{array}
                            \end{array}
                            

                            Reproduce

                            ?
                            herbie shell --seed 2024337 
                            (FPCore (a b_2 c)
                              :name "quad2p (problem 3.2.1, positive)"
                              :precision binary64
                              :herbie-expected 10
                            
                              :alt
                              (! :herbie-platform default (let ((sqtD (let ((x (* (sqrt (fabs a)) (sqrt (fabs c))))) (if (== (copysign a c) a) (* (sqrt (- (fabs b_2) x)) (sqrt (+ (fabs b_2) x))) (hypot b_2 x))))) (if (< b_2 0) (/ (- sqtD b_2) a) (/ (- c) (+ b_2 sqtD)))))
                            
                              (/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))