| Alternative 1 | |
|---|---|
| Accuracy | 82.9% |
| Cost | 20364 |
(FPCore (a b c) :precision binary64 (/ (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a)))
(FPCore (a b c)
:precision binary64
(if (<= b -2.7e+104)
(/ (- b) a)
(if (<= b -4.2e-162)
(/ (- (sqrt (- (* b b) (* (* a 4.0) c))) b) (* a 2.0))
(if (<= b -1.5e-235)
(-
(* b (/ -0.5 a))
(* (/ -0.5 a) (hypot (* (sqrt (* a -4.0)) (sqrt c)) b)))
(if (<= b 1020000000.0)
(/
1.0
(*
a
(*
(/ -2.0 (* 4.0 (* a c)))
(+ 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 tmp;
if (b <= -2.7e+104) {
tmp = -b / a;
} else if (b <= -4.2e-162) {
tmp = (sqrt(((b * b) - ((a * 4.0) * c))) - b) / (a * 2.0);
} else if (b <= -1.5e-235) {
tmp = (b * (-0.5 / a)) - ((-0.5 / a) * hypot((sqrt((a * -4.0)) * sqrt(c)), b));
} else if (b <= 1020000000.0) {
tmp = 1.0 / (a * ((-2.0 / (4.0 * (a * c))) * (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 tmp;
if (b <= -2.7e+104) {
tmp = -b / a;
} else if (b <= -4.2e-162) {
tmp = (Math.sqrt(((b * b) - ((a * 4.0) * c))) - b) / (a * 2.0);
} else if (b <= -1.5e-235) {
tmp = (b * (-0.5 / a)) - ((-0.5 / a) * Math.hypot((Math.sqrt((a * -4.0)) * Math.sqrt(c)), b));
} else if (b <= 1020000000.0) {
tmp = 1.0 / (a * ((-2.0 / (4.0 * (a * c))) * (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): tmp = 0 if b <= -2.7e+104: tmp = -b / a elif b <= -4.2e-162: tmp = (math.sqrt(((b * b) - ((a * 4.0) * c))) - b) / (a * 2.0) elif b <= -1.5e-235: tmp = (b * (-0.5 / a)) - ((-0.5 / a) * math.hypot((math.sqrt((a * -4.0)) * math.sqrt(c)), b)) elif b <= 1020000000.0: tmp = 1.0 / (a * ((-2.0 / (4.0 * (a * c))) * (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(Float64(4.0 * a) * c)))) / Float64(2.0 * a)) end
function code(a, b, 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) - Float64(Float64(a * 4.0) * c))) - b) / Float64(a * 2.0)); elseif (b <= -1.5e-235) tmp = Float64(Float64(b * Float64(-0.5 / a)) - Float64(Float64(-0.5 / a) * hypot(Float64(sqrt(Float64(a * -4.0)) * sqrt(c)), b))); elseif (b <= 1020000000.0) tmp = Float64(1.0 / Float64(a * Float64(Float64(-2.0 / Float64(4.0 * Float64(a * c))) * 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) tmp = 0.0; if (b <= -2.7e+104) tmp = -b / a; elseif (b <= -4.2e-162) tmp = (sqrt(((b * b) - ((a * 4.0) * c))) - b) / (a * 2.0); elseif (b <= -1.5e-235) tmp = (b * (-0.5 / a)) - ((-0.5 / a) * hypot((sqrt((a * -4.0)) * sqrt(c)), b)); elseif (b <= 1020000000.0) tmp = 1.0 / (a * ((-2.0 / (4.0 * (a * c))) * (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[(N[(4.0 * a), $MachinePrecision] * c), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(2.0 * a), $MachinePrecision]), $MachinePrecision]
code[a_, b_, c_] := 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] - N[(N[(a * 4.0), $MachinePrecision] * c), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] - b), $MachinePrecision] / N[(a * 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, -1.5e-235], N[(N[(b * N[(-0.5 / a), $MachinePrecision]), $MachinePrecision] - N[(N[(-0.5 / a), $MachinePrecision] * N[Sqrt[N[(N[Sqrt[N[(a * -4.0), $MachinePrecision]], $MachinePrecision] * N[Sqrt[c], $MachinePrecision]), $MachinePrecision] ^ 2 + b ^ 2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 1020000000.0], N[(1.0 / N[(a * N[(N[(-2.0 / N[(4.0 * N[(a * c), $MachinePrecision]), $MachinePrecision]), $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 - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\begin{array}{l}
\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 - \left(a \cdot 4\right) \cdot c} - b}{a \cdot 2}\\
\mathbf{elif}\;b \leq -1.5 \cdot 10^{-235}:\\
\;\;\;\;b \cdot \frac{-0.5}{a} - \frac{-0.5}{a} \cdot \mathsf{hypot}\left(\sqrt{a \cdot -4} \cdot \sqrt{c}, b\right)\\
\mathbf{elif}\;b \leq 1020000000:\\
\;\;\;\;\frac{1}{a \cdot \left(\frac{-2}{4 \cdot \left(a \cdot c\right)} \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
if b < -2.69999999999999985e104Initial program 28.2%
Simplified28.1%
[Start]28.2 | \[ \frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\] |
|---|---|
neg-sub0 [=>]28.2 | \[ \frac{\color{blue}{\left(0 - b\right)} + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\] |
associate-+l- [=>]28.2 | \[ \frac{\color{blue}{0 - \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
sub0-neg [=>]28.2 | \[ \frac{\color{blue}{-\left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
neg-mul-1 [=>]28.2 | \[ \frac{\color{blue}{-1 \cdot \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
associate-*l/ [<=]28.1 | \[ \color{blue}{\frac{-1}{2 \cdot a} \cdot \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}
\] |
*-commutative [=>]28.1 | \[ \color{blue}{\left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \frac{-1}{2 \cdot a}}
\] |
associate-/r* [=>]28.1 | \[ \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \color{blue}{\frac{\frac{-1}{2}}{a}}
\] |
/-rgt-identity [<=]28.1 | \[ \color{blue}{\frac{b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{1}} \cdot \frac{\frac{-1}{2}}{a}
\] |
metadata-eval [<=]28.1 | \[ \frac{b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{\color{blue}{--1}} \cdot \frac{\frac{-1}{2}}{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.4999999999999999e-235Initial program 72.2%
Simplified72.1%
[Start]72.2 | \[ \frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\] |
|---|---|
neg-sub0 [=>]72.2 | \[ \frac{\color{blue}{\left(0 - b\right)} + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\] |
associate-+l- [=>]72.2 | \[ \frac{\color{blue}{0 - \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
sub0-neg [=>]72.2 | \[ \frac{\color{blue}{-\left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
neg-mul-1 [=>]72.2 | \[ \frac{\color{blue}{-1 \cdot \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
associate-*l/ [<=]72.1 | \[ \color{blue}{\frac{-1}{2 \cdot a} \cdot \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}
\] |
*-commutative [=>]72.1 | \[ \color{blue}{\left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \frac{-1}{2 \cdot a}}
\] |
associate-/r* [=>]72.1 | \[ \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \color{blue}{\frac{\frac{-1}{2}}{a}}
\] |
/-rgt-identity [<=]72.1 | \[ \color{blue}{\frac{b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{1}} \cdot \frac{\frac{-1}{2}}{a}
\] |
metadata-eval [<=]72.1 | \[ \frac{b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{\color{blue}{--1}} \cdot \frac{\frac{-1}{2}}{a}
\] |
Applied egg-rr81.9%
[Start]72.1 | \[ \left(b - \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}\right) \cdot \frac{-0.5}{a}
\] |
|---|---|
fma-udef [=>]72.1 | \[ \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.1 | \[ \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.9 | \[ \left(b - \color{blue}{\mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)}\right) \cdot \frac{-0.5}{a}
\] |
Simplified81.9%
[Start]81.9 | \[ \left(b - \mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)\right) \cdot \frac{-0.5}{a}
\] |
|---|---|
associate-*r* [=>]81.9 | \[ \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.9 | \[ \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.9 | \[ \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.9%
[Start]81.9 | \[ \left(b - \mathsf{hypot}\left(\sqrt{c \cdot \left(a \cdot -4\right)}, b\right)\right) \cdot \frac{-0.5}{a}
\] |
|---|---|
*-commutative [=>]81.9 | \[ \color{blue}{\frac{-0.5}{a} \cdot \left(b - \mathsf{hypot}\left(\sqrt{c \cdot \left(a \cdot -4\right)}, b\right)\right)}
\] |
sub-neg [=>]81.9 | \[ \frac{-0.5}{a} \cdot \color{blue}{\left(b + \left(-\mathsf{hypot}\left(\sqrt{c \cdot \left(a \cdot -4\right)}, b\right)\right)\right)}
\] |
distribute-lft-in [=>]81.9 | \[ \color{blue}{\frac{-0.5}{a} \cdot b + \frac{-0.5}{a} \cdot \left(-\mathsf{hypot}\left(\sqrt{c \cdot \left(a \cdot -4\right)}, b\right)\right)}
\] |
Applied egg-rr48.0%
[Start]81.9 | \[ \frac{-0.5}{a} \cdot b + \frac{-0.5}{a} \cdot \left(-\mathsf{hypot}\left(\sqrt{c \cdot \left(a \cdot -4\right)}, b\right)\right)
\] |
|---|---|
*-commutative [=>]81.9 | \[ \frac{-0.5}{a} \cdot b + \frac{-0.5}{a} \cdot \left(-\mathsf{hypot}\left(\sqrt{\color{blue}{\left(a \cdot -4\right) \cdot c}}, b\right)\right)
\] |
sqrt-prod [=>]48.0 | \[ \frac{-0.5}{a} \cdot b + \frac{-0.5}{a} \cdot \left(-\mathsf{hypot}\left(\color{blue}{\sqrt{a \cdot -4} \cdot \sqrt{c}}, b\right)\right)
\] |
if -1.4999999999999999e-235 < b < 1.02e9Initial program 61.9%
Simplified61.9%
[Start]61.9 | \[ \frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\] |
|---|---|
neg-sub0 [=>]61.9 | \[ \frac{\color{blue}{\left(0 - b\right)} + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\] |
associate-+l- [=>]61.9 | \[ \frac{\color{blue}{0 - \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
sub0-neg [=>]61.9 | \[ \frac{\color{blue}{-\left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
neg-mul-1 [=>]61.9 | \[ \frac{\color{blue}{-1 \cdot \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
associate-*l/ [<=]61.8 | \[ \color{blue}{\frac{-1}{2 \cdot a} \cdot \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}
\] |
*-commutative [=>]61.8 | \[ \color{blue}{\left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \frac{-1}{2 \cdot a}}
\] |
associate-/r* [=>]61.8 | \[ \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \color{blue}{\frac{\frac{-1}{2}}{a}}
\] |
/-rgt-identity [<=]61.8 | \[ \color{blue}{\frac{b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{1}} \cdot \frac{\frac{-1}{2}}{a}
\] |
metadata-eval [<=]61.8 | \[ \frac{b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{\color{blue}{--1}} \cdot \frac{\frac{-1}{2}}{a}
\] |
Applied egg-rr61.2%
[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.1 | \[ \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.2 | \[ \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.2%
[Start]61.2 | \[ \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.2 | \[ \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.2 | \[ \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.2 | \[ \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.2 | \[ \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.0 | \[ \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.8 | \[ \frac{1}{\frac{-2}{b - \sqrt{b \cdot b + \color{blue}{a \cdot \left(c \cdot -4\right)}}} \cdot a}
\] |
+-commutative [=>]61.8 | \[ \frac{1}{\frac{-2}{b - \sqrt{\color{blue}{a \cdot \left(c \cdot -4\right) + b \cdot b}}} \cdot a}
\] |
add-sqr-sqrt [=>]61.0 | \[ \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.2 | \[ \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.6%
[Start]61.2 | \[ \frac{1}{\frac{-2}{b - \mathsf{hypot}\left(\sqrt{a \cdot \left(c \cdot -4\right)}, b\right)} \cdot a}
\] |
|---|---|
flip-- [=>]60.8 | \[ \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.6 | \[ \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.6 | \[ \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.6 | \[ \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.6 | \[ \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 1.02e9 < b Initial program 12.0%
Simplified12.0%
[Start]12.0 | \[ \frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\] |
|---|---|
neg-sub0 [=>]12.0 | \[ \frac{\color{blue}{\left(0 - b\right)} + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\] |
associate-+l- [=>]12.0 | \[ \frac{\color{blue}{0 - \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
sub0-neg [=>]12.0 | \[ \frac{\color{blue}{-\left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
neg-mul-1 [=>]12.0 | \[ \frac{\color{blue}{-1 \cdot \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
associate-*l/ [<=]12.0 | \[ \color{blue}{\frac{-1}{2 \cdot a} \cdot \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}
\] |
*-commutative [=>]12.0 | \[ \color{blue}{\left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \frac{-1}{2 \cdot a}}
\] |
associate-/r* [=>]12.0 | \[ \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \color{blue}{\frac{\frac{-1}{2}}{a}}
\] |
/-rgt-identity [<=]12.0 | \[ \color{blue}{\frac{b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{1}} \cdot \frac{\frac{-1}{2}}{a}
\] |
metadata-eval [<=]12.0 | \[ \frac{b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{\color{blue}{--1}} \cdot \frac{\frac{-1}{2}}{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.9% |
| Cost | 20364 |
| Alternative 2 | |
|---|---|
| Accuracy | 83.9% |
| Cost | 7624 |
| Alternative 3 | |
|---|---|
| Accuracy | 78.1% |
| Cost | 7368 |
| Alternative 4 | |
|---|---|
| Accuracy | 37.8% |
| Cost | 388 |
| Alternative 5 | |
|---|---|
| Accuracy | 63.9% |
| Cost | 388 |
| Alternative 6 | |
|---|---|
| Accuracy | 11.8% |
| Cost | 64 |
herbie shell --seed 2023151
(FPCore (a b c)
:name "Quadratic roots, full range"
:precision binary64
(/ (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a)))