| Alternative 1 | |
|---|---|
| Accuracy | 82.8% |
| Cost | 26956 |
(FPCore (a b c) :precision binary64 (/ (+ (- b) (sqrt (- (* b b) (* 4.0 (* a c))))) (* 2.0 a)))
(FPCore (a b c)
:precision binary64
(let* ((t_0 (* 4.0 (* a c))))
(if (<= b -2.7e+104)
(/ (- b) a)
(if (<= b -4.2e-162)
(/ (- (sqrt (- (* b b) t_0)) b) (* a 2.0))
(if (<= b -1.55e-235)
(*
-0.5
(/
(-
b
(hypot
(pow (* (pow (* 4.0 c) 0.25) (pow (/ -1.0 a) -0.25)) 2.0)
b))
a))
(if (<= b 440000000.0)
(/
1.0
(* a (* (/ -2.0 t_0) (+ b (hypot b (sqrt (* c (* a -4.0))))))))
(/ (- c) b)))))))double code(double a, double b, double c) {
return (-b + sqrt(((b * b) - (4.0 * (a * c))))) / (2.0 * a);
}
double code(double a, double b, double c) {
double t_0 = 4.0 * (a * c);
double tmp;
if (b <= -2.7e+104) {
tmp = -b / a;
} else if (b <= -4.2e-162) {
tmp = (sqrt(((b * b) - t_0)) - b) / (a * 2.0);
} else if (b <= -1.55e-235) {
tmp = -0.5 * ((b - hypot(pow((pow((4.0 * c), 0.25) * pow((-1.0 / a), -0.25)), 2.0), b)) / a);
} else if (b <= 440000000.0) {
tmp = 1.0 / (a * ((-2.0 / t_0) * (b + hypot(b, sqrt((c * (a * -4.0)))))));
} else {
tmp = -c / b;
}
return tmp;
}
public static double code(double a, double b, double c) {
return (-b + Math.sqrt(((b * b) - (4.0 * (a * c))))) / (2.0 * a);
}
public static double code(double a, double b, double c) {
double t_0 = 4.0 * (a * c);
double tmp;
if (b <= -2.7e+104) {
tmp = -b / a;
} else if (b <= -4.2e-162) {
tmp = (Math.sqrt(((b * b) - t_0)) - b) / (a * 2.0);
} else if (b <= -1.55e-235) {
tmp = -0.5 * ((b - Math.hypot(Math.pow((Math.pow((4.0 * c), 0.25) * Math.pow((-1.0 / a), -0.25)), 2.0), b)) / a);
} else if (b <= 440000000.0) {
tmp = 1.0 / (a * ((-2.0 / t_0) * (b + Math.hypot(b, Math.sqrt((c * (a * -4.0)))))));
} else {
tmp = -c / b;
}
return tmp;
}
def code(a, b, c): return (-b + math.sqrt(((b * b) - (4.0 * (a * c))))) / (2.0 * a)
def code(a, b, c): t_0 = 4.0 * (a * c) tmp = 0 if b <= -2.7e+104: tmp = -b / a elif b <= -4.2e-162: tmp = (math.sqrt(((b * b) - t_0)) - b) / (a * 2.0) elif b <= -1.55e-235: tmp = -0.5 * ((b - math.hypot(math.pow((math.pow((4.0 * c), 0.25) * math.pow((-1.0 / a), -0.25)), 2.0), b)) / a) elif b <= 440000000.0: tmp = 1.0 / (a * ((-2.0 / t_0) * (b + math.hypot(b, math.sqrt((c * (a * -4.0))))))) else: tmp = -c / b return tmp
function code(a, b, c) return Float64(Float64(Float64(-b) + sqrt(Float64(Float64(b * b) - Float64(4.0 * Float64(a * c))))) / Float64(2.0 * a)) end
function code(a, b, c) t_0 = Float64(4.0 * Float64(a * c)) tmp = 0.0 if (b <= -2.7e+104) tmp = Float64(Float64(-b) / a); elseif (b <= -4.2e-162) tmp = Float64(Float64(sqrt(Float64(Float64(b * b) - t_0)) - b) / Float64(a * 2.0)); elseif (b <= -1.55e-235) tmp = Float64(-0.5 * Float64(Float64(b - hypot((Float64((Float64(4.0 * c) ^ 0.25) * (Float64(-1.0 / a) ^ -0.25)) ^ 2.0), b)) / a)); elseif (b <= 440000000.0) tmp = Float64(1.0 / Float64(a * Float64(Float64(-2.0 / t_0) * Float64(b + hypot(b, sqrt(Float64(c * Float64(a * -4.0)))))))); else tmp = Float64(Float64(-c) / b); end return tmp end
function tmp = code(a, b, c) tmp = (-b + sqrt(((b * b) - (4.0 * (a * c))))) / (2.0 * a); end
function tmp_2 = code(a, b, c) t_0 = 4.0 * (a * c); tmp = 0.0; if (b <= -2.7e+104) tmp = -b / a; elseif (b <= -4.2e-162) tmp = (sqrt(((b * b) - t_0)) - b) / (a * 2.0); elseif (b <= -1.55e-235) tmp = -0.5 * ((b - hypot(((((4.0 * c) ^ 0.25) * ((-1.0 / a) ^ -0.25)) ^ 2.0), b)) / a); elseif (b <= 440000000.0) tmp = 1.0 / (a * ((-2.0 / t_0) * (b + hypot(b, sqrt((c * (a * -4.0))))))); else tmp = -c / b; end tmp_2 = tmp; end
code[a_, b_, c_] := N[(N[((-b) + N[Sqrt[N[(N[(b * b), $MachinePrecision] - N[(4.0 * N[(a * c), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(2.0 * a), $MachinePrecision]), $MachinePrecision]
code[a_, b_, c_] := Block[{t$95$0 = N[(4.0 * N[(a * c), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -2.7e+104], N[((-b) / a), $MachinePrecision], If[LessEqual[b, -4.2e-162], N[(N[(N[Sqrt[N[(N[(b * b), $MachinePrecision] - t$95$0), $MachinePrecision]], $MachinePrecision] - b), $MachinePrecision] / N[(a * 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, -1.55e-235], N[(-0.5 * N[(N[(b - N[Sqrt[N[Power[N[(N[Power[N[(4.0 * c), $MachinePrecision], 0.25], $MachinePrecision] * N[Power[N[(-1.0 / a), $MachinePrecision], -0.25], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] ^ 2 + b ^ 2], $MachinePrecision]), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 440000000.0], N[(1.0 / N[(a * N[(N[(-2.0 / t$95$0), $MachinePrecision] * N[(b + N[Sqrt[b ^ 2 + N[Sqrt[N[(c * N[(a * -4.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] ^ 2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[((-c) / b), $MachinePrecision]]]]]]
\frac{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}
\begin{array}{l}
t_0 := 4 \cdot \left(a \cdot c\right)\\
\mathbf{if}\;b \leq -2.7 \cdot 10^{+104}:\\
\;\;\;\;\frac{-b}{a}\\
\mathbf{elif}\;b \leq -4.2 \cdot 10^{-162}:\\
\;\;\;\;\frac{\sqrt{b \cdot b - t_0} - b}{a \cdot 2}\\
\mathbf{elif}\;b \leq -1.55 \cdot 10^{-235}:\\
\;\;\;\;-0.5 \cdot \frac{b - \mathsf{hypot}\left({\left({\left(4 \cdot c\right)}^{0.25} \cdot {\left(\frac{-1}{a}\right)}^{-0.25}\right)}^{2}, b\right)}{a}\\
\mathbf{elif}\;b \leq 440000000:\\
\;\;\;\;\frac{1}{a \cdot \left(\frac{-2}{t_0} \cdot \left(b + \mathsf{hypot}\left(b, \sqrt{c \cdot \left(a \cdot -4\right)}\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{-c}{b}\\
\end{array}
Results
| Original | 47.7% |
|---|---|
| Target | 68.0% |
| Herbie | 82.9% |
if b < -2.69999999999999985e104Initial program 28.2%
Simplified28.1%
[Start]28.2 | \[ \frac{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}
\] |
|---|---|
neg-sub0 [=>]28.2 | \[ \frac{\color{blue}{\left(0 - b\right)} + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}
\] |
associate-+l- [=>]28.2 | \[ \frac{\color{blue}{0 - \left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}{2 \cdot a}
\] |
sub0-neg [=>]28.2 | \[ \frac{\color{blue}{-\left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}{2 \cdot a}
\] |
neg-mul-1 [=>]28.2 | \[ \frac{\color{blue}{-1 \cdot \left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}{2 \cdot a}
\] |
*-commutative [=>]28.2 | \[ \frac{\color{blue}{\left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right) \cdot -1}}{2 \cdot a}
\] |
associate-*r/ [<=]28.1 | \[ \color{blue}{\left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right) \cdot \frac{-1}{2 \cdot a}}
\] |
Taylor expanded in b around -inf 93.7%
Simplified93.7%
[Start]93.7 | \[ -1 \cdot \frac{b}{a}
\] |
|---|---|
associate-*r/ [=>]93.7 | \[ \color{blue}{\frac{-1 \cdot b}{a}}
\] |
mul-1-neg [=>]93.7 | \[ \frac{\color{blue}{-b}}{a}
\] |
if -2.69999999999999985e104 < b < -4.2e-162Initial program 90.4%
if -4.2e-162 < b < -1.55e-235Initial program 72.1%
Simplified72.0%
[Start]72.1 | \[ \frac{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}
\] |
|---|---|
neg-sub0 [=>]72.1 | \[ \frac{\color{blue}{\left(0 - b\right)} + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}
\] |
associate-+l- [=>]72.1 | \[ \frac{\color{blue}{0 - \left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}{2 \cdot a}
\] |
sub0-neg [=>]72.1 | \[ \frac{\color{blue}{-\left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}{2 \cdot a}
\] |
neg-mul-1 [=>]72.1 | \[ \frac{\color{blue}{-1 \cdot \left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}{2 \cdot a}
\] |
*-commutative [=>]72.1 | \[ \frac{\color{blue}{\left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right) \cdot -1}}{2 \cdot a}
\] |
associate-*r/ [<=]72.0 | \[ \color{blue}{\left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right) \cdot \frac{-1}{2 \cdot a}}
\] |
Applied egg-rr81.8%
[Start]72.0 | \[ \left(b - \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}\right) \cdot \frac{-0.5}{a}
\] |
|---|---|
fma-udef [=>]72.0 | \[ \left(b - \sqrt{\color{blue}{a \cdot \left(c \cdot -4\right) + b \cdot b}}\right) \cdot \frac{-0.5}{a}
\] |
add-sqr-sqrt [=>]72.0 | \[ \left(b - \sqrt{\color{blue}{\sqrt{a \cdot \left(c \cdot -4\right)} \cdot \sqrt{a \cdot \left(c \cdot -4\right)}} + b \cdot b}\right) \cdot \frac{-0.5}{a}
\] |
hypot-def [=>]81.8 | \[ \left(b - \color{blue}{\mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)}\right) \cdot \frac{-0.5}{a}
\] |
Simplified81.8%
[Start]81.8 | \[ \left(b - \mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)\right) \cdot \frac{-0.5}{a}
\] |
|---|---|
associate-*r* [=>]81.8 | \[ \left(b - \mathsf{hypot}\left(\sqrt{\color{blue}{\left(a \cdot c\right) \cdot -4}}, b\right)\right) \cdot \frac{-0.5}{a}
\] |
*-commutative [<=]81.8 | \[ \left(b - \mathsf{hypot}\left(\sqrt{\color{blue}{\left(c \cdot a\right)} \cdot -4}, b\right)\right) \cdot \frac{-0.5}{a}
\] |
associate-*l* [=>]81.8 | \[ \left(b - \mathsf{hypot}\left(\sqrt{\color{blue}{c \cdot \left(a \cdot -4\right)}}, b\right)\right) \cdot \frac{-0.5}{a}
\] |
Applied egg-rr81.6%
[Start]81.8 | \[ \left(b - \mathsf{hypot}\left(\sqrt{c \cdot \left(a \cdot -4\right)}, b\right)\right) \cdot \frac{-0.5}{a}
\] |
|---|---|
add-sqr-sqrt [=>]81.6 | \[ \left(b - \mathsf{hypot}\left(\color{blue}{\sqrt{\sqrt{c \cdot \left(a \cdot -4\right)}} \cdot \sqrt{\sqrt{c \cdot \left(a \cdot -4\right)}}}, b\right)\right) \cdot \frac{-0.5}{a}
\] |
pow2 [=>]81.6 | \[ \left(b - \mathsf{hypot}\left(\color{blue}{{\left(\sqrt{\sqrt{c \cdot \left(a \cdot -4\right)}}\right)}^{2}}, b\right)\right) \cdot \frac{-0.5}{a}
\] |
pow1/2 [=>]81.6 | \[ \left(b - \mathsf{hypot}\left({\left(\sqrt{\color{blue}{{\left(c \cdot \left(a \cdot -4\right)\right)}^{0.5}}}\right)}^{2}, b\right)\right) \cdot \frac{-0.5}{a}
\] |
sqrt-pow1 [=>]81.6 | \[ \left(b - \mathsf{hypot}\left({\color{blue}{\left({\left(c \cdot \left(a \cdot -4\right)\right)}^{\left(\frac{0.5}{2}\right)}\right)}}^{2}, b\right)\right) \cdot \frac{-0.5}{a}
\] |
metadata-eval [=>]81.6 | \[ \left(b - \mathsf{hypot}\left({\left({\left(c \cdot \left(a \cdot -4\right)\right)}^{\color{blue}{0.25}}\right)}^{2}, b\right)\right) \cdot \frac{-0.5}{a}
\] |
Taylor expanded in a around -inf 32.4%
Simplified47.7%
[Start]32.4 | \[ -0.5 \cdot \frac{b - \sqrt{{b}^{2} + {\left(e^{0.25 \cdot \left(\log \left(4 \cdot c\right) + -1 \cdot \log \left(\frac{-1}{a}\right)\right)}\right)}^{4}}}{a}
\] |
|---|
if -1.55e-235 < b < 4.4e8Initial program 62.0%
Simplified61.9%
[Start]62.0 | \[ \frac{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}
\] |
|---|---|
neg-sub0 [=>]62.0 | \[ \frac{\color{blue}{\left(0 - b\right)} + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}
\] |
associate-+l- [=>]62.0 | \[ \frac{\color{blue}{0 - \left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}{2 \cdot a}
\] |
sub0-neg [=>]62.0 | \[ \frac{\color{blue}{-\left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}{2 \cdot a}
\] |
neg-mul-1 [=>]62.0 | \[ \frac{\color{blue}{-1 \cdot \left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}{2 \cdot a}
\] |
*-commutative [=>]62.0 | \[ \frac{\color{blue}{\left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right) \cdot -1}}{2 \cdot a}
\] |
associate-*r/ [<=]61.9 | \[ \color{blue}{\left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right) \cdot \frac{-1}{2 \cdot a}}
\] |
Applied egg-rr61.3%
[Start]61.9 | \[ \left(b - \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}\right) \cdot \frac{-0.5}{a}
\] |
|---|---|
associate-*r/ [=>]62.0 | \[ \color{blue}{\frac{\left(b - \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}\right) \cdot -0.5}{a}}
\] |
clear-num [=>]61.9 | \[ \color{blue}{\frac{1}{\frac{a}{\left(b - \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}\right) \cdot -0.5}}}
\] |
fma-udef [=>]61.9 | \[ \frac{1}{\frac{a}{\left(b - \sqrt{\color{blue}{a \cdot \left(c \cdot -4\right) + b \cdot b}}\right) \cdot -0.5}}
\] |
+-commutative [=>]61.9 | \[ \frac{1}{\frac{a}{\left(b - \sqrt{\color{blue}{b \cdot b + a \cdot \left(c \cdot -4\right)}}\right) \cdot -0.5}}
\] |
add-sqr-sqrt [=>]61.2 | \[ \frac{1}{\frac{a}{\left(b - \sqrt{b \cdot b + \color{blue}{\sqrt{a \cdot \left(c \cdot -4\right)} \cdot \sqrt{a \cdot \left(c \cdot -4\right)}}}\right) \cdot -0.5}}
\] |
hypot-def [=>]61.3 | \[ \frac{1}{\frac{a}{\left(b - \color{blue}{\mathsf{hypot}\left(b, \sqrt{a \cdot \left(c \cdot -4\right)}\right)}\right) \cdot -0.5}}
\] |
Applied egg-rr61.3%
[Start]61.3 | \[ \frac{1}{\frac{a}{\left(b - \mathsf{hypot}\left(b, \sqrt{a \cdot \left(c \cdot -4\right)}\right)\right) \cdot -0.5}}
\] |
|---|---|
clear-num [=>]61.3 | \[ \frac{1}{\color{blue}{\frac{1}{\frac{\left(b - \mathsf{hypot}\left(b, \sqrt{a \cdot \left(c \cdot -4\right)}\right)\right) \cdot -0.5}{a}}}}
\] |
associate-/r/ [=>]61.3 | \[ \frac{1}{\color{blue}{\frac{1}{\left(b - \mathsf{hypot}\left(b, \sqrt{a \cdot \left(c \cdot -4\right)}\right)\right) \cdot -0.5} \cdot a}}
\] |
*-commutative [=>]61.3 | \[ \frac{1}{\frac{1}{\color{blue}{-0.5 \cdot \left(b - \mathsf{hypot}\left(b, \sqrt{a \cdot \left(c \cdot -4\right)}\right)\right)}} \cdot a}
\] |
associate-/r* [=>]61.3 | \[ \frac{1}{\color{blue}{\frac{\frac{1}{-0.5}}{b - \mathsf{hypot}\left(b, \sqrt{a \cdot \left(c \cdot -4\right)}\right)}} \cdot a}
\] |
metadata-eval [=>]61.3 | \[ \frac{1}{\frac{\color{blue}{-2}}{b - \mathsf{hypot}\left(b, \sqrt{a \cdot \left(c \cdot -4\right)}\right)} \cdot a}
\] |
hypot-udef [=>]61.1 | \[ \frac{1}{\frac{-2}{b - \color{blue}{\sqrt{b \cdot b + \sqrt{a \cdot \left(c \cdot -4\right)} \cdot \sqrt{a \cdot \left(c \cdot -4\right)}}}} \cdot a}
\] |
add-sqr-sqrt [<=]61.9 | \[ \frac{1}{\frac{-2}{b - \sqrt{b \cdot b + \color{blue}{a \cdot \left(c \cdot -4\right)}}} \cdot a}
\] |
+-commutative [=>]61.9 | \[ \frac{1}{\frac{-2}{b - \sqrt{\color{blue}{a \cdot \left(c \cdot -4\right) + b \cdot b}}} \cdot a}
\] |
add-sqr-sqrt [=>]61.1 | \[ \frac{1}{\frac{-2}{b - \sqrt{\color{blue}{\sqrt{a \cdot \left(c \cdot -4\right)} \cdot \sqrt{a \cdot \left(c \cdot -4\right)}} + b \cdot b}} \cdot a}
\] |
hypot-def [=>]61.3 | \[ \frac{1}{\frac{-2}{b - \color{blue}{\mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)}} \cdot a}
\] |
Applied egg-rr60.7%
[Start]61.3 | \[ \frac{1}{\frac{-2}{b - \mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)} \cdot a}
\] |
|---|---|
flip-- [=>]60.9 | \[ \frac{1}{\frac{-2}{\color{blue}{\frac{b \cdot b - \mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right) \cdot \mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)}{b + \mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)}}} \cdot a}
\] |
associate-/r/ [=>]60.6 | \[ \frac{1}{\color{blue}{\left(\frac{-2}{b \cdot b - \mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right) \cdot \mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)} \cdot \left(b + \mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)\right)\right)} \cdot a}
\] |
hypot-udef [=>]60.6 | \[ \frac{1}{\left(\frac{-2}{b \cdot b - \color{blue}{\sqrt{\sqrt{a \cdot \left(c \cdot -4\right)} \cdot \sqrt{a \cdot \left(c \cdot -4\right)} + b \cdot b}} \cdot \mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)} \cdot \left(b + \mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)\right)\right) \cdot a}
\] |
hypot-udef [=>]60.6 | \[ \frac{1}{\left(\frac{-2}{b \cdot b - \sqrt{\sqrt{a \cdot \left(c \cdot -4\right)} \cdot \sqrt{a \cdot \left(c \cdot -4\right)} + b \cdot b} \cdot \color{blue}{\sqrt{\sqrt{a \cdot \left(c \cdot -4\right)} \cdot \sqrt{a \cdot \left(c \cdot -4\right)} + b \cdot b}}} \cdot \left(b + \mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)\right)\right) \cdot a}
\] |
add-sqr-sqrt [<=]60.6 | \[ \frac{1}{\left(\frac{-2}{b \cdot b - \color{blue}{\left(\sqrt{a \cdot \left(c \cdot -4\right)} \cdot \sqrt{a \cdot \left(c \cdot -4\right)} + b \cdot b\right)}} \cdot \left(b + \mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)\right)\right) \cdot a}
\] |
add-sqr-sqrt [<=]60.7 | \[ \frac{1}{\left(\frac{-2}{b \cdot b - \left(\color{blue}{a \cdot \left(c \cdot -4\right)} + b \cdot b\right)} \cdot \left(b + \mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)\right)\right) \cdot a}
\] |
+-commutative [=>]60.7 | \[ \frac{1}{\left(\frac{-2}{b \cdot b - \color{blue}{\left(b \cdot b + a \cdot \left(c \cdot -4\right)\right)}} \cdot \left(b + \mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)\right)\right) \cdot a}
\] |
fma-def [=>]60.7 | \[ \frac{1}{\left(\frac{-2}{b \cdot b - \color{blue}{\mathsf{fma}\left(b, b, a \cdot \left(c \cdot -4\right)\right)}} \cdot \left(b + \mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)\right)\right) \cdot a}
\] |
hypot-udef [=>]60.7 | \[ \frac{1}{\left(\frac{-2}{b \cdot b - \mathsf{fma}\left(b, b, a \cdot \left(c \cdot -4\right)\right)} \cdot \left(b + \color{blue}{\sqrt{\sqrt{a \cdot \left(c \cdot -4\right)} \cdot \sqrt{a \cdot \left(c \cdot -4\right)} + b \cdot b}}\right)\right) \cdot a}
\] |
Simplified66.5%
[Start]60.7 | \[ \frac{1}{\left(\frac{-2}{b \cdot b - \mathsf{fma}\left(b, b, a \cdot \left(c \cdot -4\right)\right)} \cdot \left(b + \mathsf{hypot}\left(b, \sqrt{a \cdot \left(c \cdot -4\right)}\right)\right)\right) \cdot a}
\] |
|---|
if 4.4e8 < b Initial program 12.0%
Simplified12.0%
[Start]12.0 | \[ \frac{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}
\] |
|---|---|
neg-sub0 [=>]12.0 | \[ \frac{\color{blue}{\left(0 - b\right)} + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}
\] |
associate-+l- [=>]12.0 | \[ \frac{\color{blue}{0 - \left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}{2 \cdot a}
\] |
sub0-neg [=>]12.0 | \[ \frac{\color{blue}{-\left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}{2 \cdot a}
\] |
neg-mul-1 [=>]12.0 | \[ \frac{\color{blue}{-1 \cdot \left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}{2 \cdot a}
\] |
*-commutative [=>]12.0 | \[ \frac{\color{blue}{\left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right) \cdot -1}}{2 \cdot a}
\] |
associate-*r/ [<=]12.0 | \[ \color{blue}{\left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right) \cdot \frac{-1}{2 \cdot a}}
\] |
Taylor expanded in b around inf 91.5%
Simplified91.5%
[Start]91.5 | \[ -1 \cdot \frac{c}{b}
\] |
|---|---|
associate-*r/ [=>]91.5 | \[ \color{blue}{\frac{-1 \cdot c}{b}}
\] |
mul-1-neg [=>]91.5 | \[ \frac{\color{blue}{-c}}{b}
\] |
Final simplification82.9%
| Alternative 1 | |
|---|---|
| Accuracy | 82.8% |
| Cost | 26956 |
| Alternative 2 | |
|---|---|
| Accuracy | 82.9% |
| Cost | 20364 |
| Alternative 3 | |
|---|---|
| Accuracy | 83.9% |
| Cost | 7624 |
| Alternative 4 | |
|---|---|
| Accuracy | 78.1% |
| Cost | 7368 |
| Alternative 5 | |
|---|---|
| Accuracy | 37.3% |
| Cost | 388 |
| Alternative 6 | |
|---|---|
| Accuracy | 63.9% |
| Cost | 388 |
| Alternative 7 | |
|---|---|
| Accuracy | 2.6% |
| Cost | 192 |
| Alternative 8 | |
|---|---|
| Accuracy | 11.3% |
| Cost | 192 |
herbie shell --seed 2023151
(FPCore (a b c)
:name "quadp (p42, positive)"
:precision binary64
:herbie-target
(if (< b 0.0) (/ (+ (- b) (sqrt (- (* b b) (* 4.0 (* a c))))) (* 2.0 a)) (/ c (* a (/ (- (- b) (sqrt (- (* b b) (* 4.0 (* a c))))) (* 2.0 a)))))
(/ (+ (- b) (sqrt (- (* b b) (* 4.0 (* a c))))) (* 2.0 a)))