| Alternative 1 | |
|---|---|
| Accuracy | 90.6% |
| Cost | 14412 |

(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 -1.55e+91)
(/ (- b) a)
(if (<= b 3.4e-291)
(/ (- b (sqrt (- (* b b) (* a (* c 4.0))))) (* a -2.0))
(if (<= b 1.05e+103)
(*
(/ a (* a -2.0))
(/ (* c 4.0) (+ b (sqrt (fma a (* c -4.0) (* b b))))))
(/ (- 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 <= -1.55e+91) {
tmp = -b / a;
} else if (b <= 3.4e-291) {
tmp = (b - sqrt(((b * b) - (a * (c * 4.0))))) / (a * -2.0);
} else if (b <= 1.05e+103) {
tmp = (a / (a * -2.0)) * ((c * 4.0) / (b + sqrt(fma(a, (c * -4.0), (b * b)))));
} 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 <= -1.55e+91) tmp = Float64(Float64(-b) / a); elseif (b <= 3.4e-291) tmp = Float64(Float64(b - sqrt(Float64(Float64(b * b) - Float64(a * Float64(c * 4.0))))) / Float64(a * -2.0)); elseif (b <= 1.05e+103) tmp = Float64(Float64(a / Float64(a * -2.0)) * Float64(Float64(c * 4.0) / Float64(b + sqrt(fma(a, Float64(c * -4.0), Float64(b * b)))))); else tmp = Float64(Float64(-c) / b); end return 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, -1.55e+91], N[((-b) / a), $MachinePrecision], If[LessEqual[b, 3.4e-291], N[(N[(b - N[Sqrt[N[(N[(b * b), $MachinePrecision] - N[(a * N[(c * 4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[(a * -2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 1.05e+103], N[(N[(a / N[(a * -2.0), $MachinePrecision]), $MachinePrecision] * N[(N[(c * 4.0), $MachinePrecision] / N[(b + N[Sqrt[N[(a * N[(c * -4.0), $MachinePrecision] + N[(b * b), $MachinePrecision]), $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 -1.55 \cdot 10^{+91}:\\
\;\;\;\;\frac{-b}{a}\\
\mathbf{elif}\;b \leq 3.4 \cdot 10^{-291}:\\
\;\;\;\;\frac{b - \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}}{a \cdot -2}\\
\mathbf{elif}\;b \leq 1.05 \cdot 10^{+103}:\\
\;\;\;\;\frac{a}{a \cdot -2} \cdot \frac{c \cdot 4}{b + \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{-c}{b}\\
\end{array}
Herbie found 10 alternatives:
| Alternative | Accuracy | Speedup |
|---|
if b < -1.54999999999999999e91Initial program 54.8%
Simplified54.7%
[Start]54.8% | \[ \frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\] |
|---|---|
neg-sub0 [=>]54.8% | \[ \frac{\color{blue}{\left(0 - b\right)} + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\] |
associate-+l- [=>]54.8% | \[ \frac{\color{blue}{0 - \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
sub0-neg [=>]54.8% | \[ \frac{\color{blue}{-\left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
neg-mul-1 [=>]54.8% | \[ \frac{\color{blue}{-1 \cdot \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
associate-*l/ [<=]54.6% | \[ \color{blue}{\frac{-1}{2 \cdot a} \cdot \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}
\] |
*-commutative [=>]54.6% | \[ \color{blue}{\left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \frac{-1}{2 \cdot a}}
\] |
associate-/r* [=>]54.6% | \[ \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \color{blue}{\frac{\frac{-1}{2}}{a}}
\] |
/-rgt-identity [<=]54.6% | \[ \color{blue}{\frac{b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{1}} \cdot \frac{\frac{-1}{2}}{a}
\] |
metadata-eval [<=]54.6% | \[ \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.0%
Simplified93.0%
[Start]93.0% | \[ -1 \cdot \frac{b}{a}
\] |
|---|---|
associate-*r/ [=>]93.0% | \[ \color{blue}{\frac{-1 \cdot b}{a}}
\] |
mul-1-neg [=>]93.0% | \[ \frac{\color{blue}{-b}}{a}
\] |
if -1.54999999999999999e91 < b < 3.40000000000000026e-291Initial program 85.6%
Simplified85.4%
[Start]85.6% | \[ \frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\] |
|---|---|
neg-sub0 [=>]85.6% | \[ \frac{\color{blue}{\left(0 - b\right)} + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\] |
associate-+l- [=>]85.6% | \[ \frac{\color{blue}{0 - \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
sub0-neg [=>]85.6% | \[ \frac{\color{blue}{-\left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
neg-mul-1 [=>]85.6% | \[ \frac{\color{blue}{-1 \cdot \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
associate-*l/ [<=]85.4% | \[ \color{blue}{\frac{-1}{2 \cdot a} \cdot \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}
\] |
*-commutative [=>]85.4% | \[ \color{blue}{\left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \frac{-1}{2 \cdot a}}
\] |
associate-/r* [=>]85.4% | \[ \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \color{blue}{\frac{\frac{-1}{2}}{a}}
\] |
/-rgt-identity [<=]85.4% | \[ \color{blue}{\frac{b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{1}} \cdot \frac{\frac{-1}{2}}{a}
\] |
metadata-eval [<=]85.4% | \[ \frac{b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{\color{blue}{--1}} \cdot \frac{\frac{-1}{2}}{a}
\] |
Applied egg-rr85.4%
[Start]85.4% | \[ \left(b - \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}\right) \cdot \frac{-0.5}{a}
\] |
|---|---|
fma-udef [=>]85.4% | \[ \left(b - \sqrt{\color{blue}{a \cdot \left(c \cdot -4\right) + b \cdot b}}\right) \cdot \frac{-0.5}{a}
\] |
*-commutative [=>]85.4% | \[ \left(b - \sqrt{a \cdot \color{blue}{\left(-4 \cdot c\right)} + b \cdot b}\right) \cdot \frac{-0.5}{a}
\] |
associate-*r* [=>]85.4% | \[ \left(b - \sqrt{\color{blue}{\left(a \cdot -4\right) \cdot c} + b \cdot b}\right) \cdot \frac{-0.5}{a}
\] |
metadata-eval [<=]85.4% | \[ \left(b - \sqrt{\left(a \cdot \color{blue}{\left(-4\right)}\right) \cdot c + b \cdot b}\right) \cdot \frac{-0.5}{a}
\] |
distribute-rgt-neg-in [<=]85.4% | \[ \left(b - \sqrt{\color{blue}{\left(-a \cdot 4\right)} \cdot c + b \cdot b}\right) \cdot \frac{-0.5}{a}
\] |
*-commutative [<=]85.4% | \[ \left(b - \sqrt{\left(-\color{blue}{4 \cdot a}\right) \cdot c + b \cdot b}\right) \cdot \frac{-0.5}{a}
\] |
distribute-lft-neg-in [<=]85.4% | \[ \left(b - \sqrt{\color{blue}{\left(-\left(4 \cdot a\right) \cdot c\right)} + b \cdot b}\right) \cdot \frac{-0.5}{a}
\] |
+-commutative [=>]85.4% | \[ \left(b - \sqrt{\color{blue}{b \cdot b + \left(-\left(4 \cdot a\right) \cdot c\right)}}\right) \cdot \frac{-0.5}{a}
\] |
sub-neg [<=]85.4% | \[ \left(b - \sqrt{\color{blue}{b \cdot b - \left(4 \cdot a\right) \cdot c}}\right) \cdot \frac{-0.5}{a}
\] |
*-commutative [=>]85.4% | \[ \left(b - \sqrt{b \cdot b - \color{blue}{\left(a \cdot 4\right)} \cdot c}\right) \cdot \frac{-0.5}{a}
\] |
associate-*l* [=>]85.4% | \[ \left(b - \sqrt{b \cdot b - \color{blue}{a \cdot \left(4 \cdot c\right)}}\right) \cdot \frac{-0.5}{a}
\] |
Simplified85.4%
[Start]85.4% | \[ \left(b - \sqrt{b \cdot b - a \cdot \left(4 \cdot c\right)}\right) \cdot \frac{-0.5}{a}
\] |
|---|---|
*-commutative [=>]85.4% | \[ \left(b - \sqrt{b \cdot b - a \cdot \color{blue}{\left(c \cdot 4\right)}}\right) \cdot \frac{-0.5}{a}
\] |
Applied egg-rr85.6%
[Start]85.4% | \[ \left(b - \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}\right) \cdot \frac{-0.5}{a}
\] |
|---|---|
clear-num [=>]85.4% | \[ \left(b - \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}\right) \cdot \color{blue}{\frac{1}{\frac{a}{-0.5}}}
\] |
un-div-inv [=>]85.6% | \[ \color{blue}{\frac{b - \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}}{\frac{a}{-0.5}}}
\] |
div-inv [=>]85.6% | \[ \frac{b - \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}}{\color{blue}{a \cdot \frac{1}{-0.5}}}
\] |
metadata-eval [=>]85.6% | \[ \frac{b - \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}}{a \cdot \color{blue}{-2}}
\] |
if 3.40000000000000026e-291 < b < 1.0500000000000001e103Initial program 42.5%
Simplified42.5%
[Start]42.5% | \[ \frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\] |
|---|---|
neg-sub0 [=>]42.5% | \[ \frac{\color{blue}{\left(0 - b\right)} + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\] |
associate-+l- [=>]42.5% | \[ \frac{\color{blue}{0 - \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
sub0-neg [=>]42.5% | \[ \frac{\color{blue}{-\left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
neg-mul-1 [=>]42.5% | \[ \frac{\color{blue}{-1 \cdot \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
associate-*l/ [<=]42.5% | \[ \color{blue}{\frac{-1}{2 \cdot a} \cdot \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}
\] |
*-commutative [=>]42.5% | \[ \color{blue}{\left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \frac{-1}{2 \cdot a}}
\] |
associate-/r* [=>]42.5% | \[ \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \color{blue}{\frac{\frac{-1}{2}}{a}}
\] |
/-rgt-identity [<=]42.5% | \[ \color{blue}{\frac{b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{1}} \cdot \frac{\frac{-1}{2}}{a}
\] |
metadata-eval [<=]42.5% | \[ \frac{b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{\color{blue}{--1}} \cdot \frac{\frac{-1}{2}}{a}
\] |
Applied egg-rr42.5%
[Start]42.5% | \[ \left(b - \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}\right) \cdot \frac{-0.5}{a}
\] |
|---|---|
fma-udef [=>]42.5% | \[ \left(b - \sqrt{\color{blue}{a \cdot \left(c \cdot -4\right) + b \cdot b}}\right) \cdot \frac{-0.5}{a}
\] |
*-commutative [=>]42.5% | \[ \left(b - \sqrt{a \cdot \color{blue}{\left(-4 \cdot c\right)} + b \cdot b}\right) \cdot \frac{-0.5}{a}
\] |
associate-*r* [=>]42.5% | \[ \left(b - \sqrt{\color{blue}{\left(a \cdot -4\right) \cdot c} + b \cdot b}\right) \cdot \frac{-0.5}{a}
\] |
metadata-eval [<=]42.5% | \[ \left(b - \sqrt{\left(a \cdot \color{blue}{\left(-4\right)}\right) \cdot c + b \cdot b}\right) \cdot \frac{-0.5}{a}
\] |
distribute-rgt-neg-in [<=]42.5% | \[ \left(b - \sqrt{\color{blue}{\left(-a \cdot 4\right)} \cdot c + b \cdot b}\right) \cdot \frac{-0.5}{a}
\] |
*-commutative [<=]42.5% | \[ \left(b - \sqrt{\left(-\color{blue}{4 \cdot a}\right) \cdot c + b \cdot b}\right) \cdot \frac{-0.5}{a}
\] |
distribute-lft-neg-in [<=]42.5% | \[ \left(b - \sqrt{\color{blue}{\left(-\left(4 \cdot a\right) \cdot c\right)} + b \cdot b}\right) \cdot \frac{-0.5}{a}
\] |
+-commutative [=>]42.5% | \[ \left(b - \sqrt{\color{blue}{b \cdot b + \left(-\left(4 \cdot a\right) \cdot c\right)}}\right) \cdot \frac{-0.5}{a}
\] |
sub-neg [<=]42.5% | \[ \left(b - \sqrt{\color{blue}{b \cdot b - \left(4 \cdot a\right) \cdot c}}\right) \cdot \frac{-0.5}{a}
\] |
*-commutative [=>]42.5% | \[ \left(b - \sqrt{b \cdot b - \color{blue}{\left(a \cdot 4\right)} \cdot c}\right) \cdot \frac{-0.5}{a}
\] |
associate-*l* [=>]42.5% | \[ \left(b - \sqrt{b \cdot b - \color{blue}{a \cdot \left(4 \cdot c\right)}}\right) \cdot \frac{-0.5}{a}
\] |
Simplified42.5%
[Start]42.5% | \[ \left(b - \sqrt{b \cdot b - a \cdot \left(4 \cdot c\right)}\right) \cdot \frac{-0.5}{a}
\] |
|---|---|
*-commutative [=>]42.5% | \[ \left(b - \sqrt{b \cdot b - a \cdot \color{blue}{\left(c \cdot 4\right)}}\right) \cdot \frac{-0.5}{a}
\] |
Applied egg-rr36.1%
[Start]42.5% | \[ \left(b - \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}\right) \cdot \frac{-0.5}{a}
\] |
|---|---|
*-commutative [=>]42.5% | \[ \color{blue}{\frac{-0.5}{a} \cdot \left(b - \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}\right)}
\] |
clear-num [=>]42.5% | \[ \color{blue}{\frac{1}{\frac{a}{-0.5}}} \cdot \left(b - \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}\right)
\] |
flip-- [=>]42.1% | \[ \frac{1}{\frac{a}{-0.5}} \cdot \color{blue}{\frac{b \cdot b - \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)} \cdot \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}}{b + \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}}}
\] |
frac-times [=>]36.0% | \[ \color{blue}{\frac{1 \cdot \left(b \cdot b - \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)} \cdot \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}\right)}{\frac{a}{-0.5} \cdot \left(b + \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}\right)}}
\] |
*-un-lft-identity [<=]36.0% | \[ \frac{\color{blue}{b \cdot b - \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)} \cdot \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}}}{\frac{a}{-0.5} \cdot \left(b + \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}\right)}
\] |
add-sqr-sqrt [<=]36.1% | \[ \frac{b \cdot b - \color{blue}{\left(b \cdot b - a \cdot \left(c \cdot 4\right)\right)}}{\frac{a}{-0.5} \cdot \left(b + \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}\right)}
\] |
div-inv [=>]36.1% | \[ \frac{b \cdot b - \left(b \cdot b - a \cdot \left(c \cdot 4\right)\right)}{\color{blue}{\left(a \cdot \frac{1}{-0.5}\right)} \cdot \left(b + \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}\right)}
\] |
metadata-eval [=>]36.1% | \[ \frac{b \cdot b - \left(b \cdot b - a \cdot \left(c \cdot 4\right)\right)}{\left(a \cdot \color{blue}{-2}\right) \cdot \left(b + \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}\right)}
\] |
Simplified71.7%
[Start]36.1% | \[ \frac{b \cdot b - \left(b \cdot b - a \cdot \left(c \cdot 4\right)\right)}{\left(a \cdot -2\right) \cdot \left(b + \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}\right)}
\] |
|---|---|
*-commutative [<=]36.1% | \[ \frac{b \cdot b - \left(b \cdot b - a \cdot \left(c \cdot 4\right)\right)}{\color{blue}{\left(b + \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}\right) \cdot \left(a \cdot -2\right)}}
\] |
associate-/r* [=>]42.2% | \[ \color{blue}{\frac{\frac{b \cdot b - \left(b \cdot b - a \cdot \left(c \cdot 4\right)\right)}{b + \sqrt{b \cdot b - a \cdot \left(c \cdot 4\right)}}}{a \cdot -2}}
\] |
Applied egg-rr25.6%
[Start]71.7% | \[ \frac{\frac{4 \cdot \left(c \cdot a\right)}{b + \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}}}{a \cdot -2}
\] |
|---|---|
expm1-log1p-u [=>]63.0% | \[ \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\frac{4 \cdot \left(c \cdot a\right)}{b + \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}}}{a \cdot -2}\right)\right)}
\] |
expm1-udef [=>]26.0% | \[ \color{blue}{e^{\mathsf{log1p}\left(\frac{\frac{4 \cdot \left(c \cdot a\right)}{b + \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}}}{a \cdot -2}\right)} - 1}
\] |
associate-/l/ [=>]25.6% | \[ e^{\mathsf{log1p}\left(\color{blue}{\frac{4 \cdot \left(c \cdot a\right)}{\left(a \cdot -2\right) \cdot \left(b + \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}\right)}}\right)} - 1
\] |
*-commutative [=>]25.6% | \[ e^{\mathsf{log1p}\left(\frac{\color{blue}{\left(c \cdot a\right) \cdot 4}}{\left(a \cdot -2\right) \cdot \left(b + \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}\right)}\right)} - 1
\] |
*-commutative [=>]25.6% | \[ e^{\mathsf{log1p}\left(\frac{\color{blue}{\left(a \cdot c\right)} \cdot 4}{\left(a \cdot -2\right) \cdot \left(b + \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}\right)}\right)} - 1
\] |
associate-*r* [<=]25.6% | \[ e^{\mathsf{log1p}\left(\frac{\color{blue}{a \cdot \left(c \cdot 4\right)}}{\left(a \cdot -2\right) \cdot \left(b + \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}\right)}\right)} - 1
\] |
Simplified86.3%
[Start]25.6% | \[ e^{\mathsf{log1p}\left(\frac{a \cdot \left(c \cdot 4\right)}{\left(a \cdot -2\right) \cdot \left(b + \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}\right)}\right)} - 1
\] |
|---|---|
expm1-def [=>]56.2% | \[ \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{a \cdot \left(c \cdot 4\right)}{\left(a \cdot -2\right) \cdot \left(b + \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}\right)}\right)\right)}
\] |
expm1-log1p [=>]64.7% | \[ \color{blue}{\frac{a \cdot \left(c \cdot 4\right)}{\left(a \cdot -2\right) \cdot \left(b + \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}\right)}}
\] |
times-frac [=>]86.3% | \[ \color{blue}{\frac{a}{a \cdot -2} \cdot \frac{c \cdot 4}{b + \sqrt{\mathsf{fma}\left(a, c \cdot -4, b \cdot b\right)}}}
\] |
if 1.0500000000000001e103 < b Initial program 4.5%
Simplified4.5%
[Start]4.5% | \[ \frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\] |
|---|---|
neg-sub0 [=>]4.5% | \[ \frac{\color{blue}{\left(0 - b\right)} + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\] |
associate-+l- [=>]4.5% | \[ \frac{\color{blue}{0 - \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
sub0-neg [=>]4.5% | \[ \frac{\color{blue}{-\left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
neg-mul-1 [=>]4.5% | \[ \frac{\color{blue}{-1 \cdot \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}
\] |
associate-*l/ [<=]4.5% | \[ \color{blue}{\frac{-1}{2 \cdot a} \cdot \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}
\] |
*-commutative [=>]4.5% | \[ \color{blue}{\left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \frac{-1}{2 \cdot a}}
\] |
associate-/r* [=>]4.5% | \[ \left(b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right) \cdot \color{blue}{\frac{\frac{-1}{2}}{a}}
\] |
/-rgt-identity [<=]4.5% | \[ \color{blue}{\frac{b - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{1}} \cdot \frac{\frac{-1}{2}}{a}
\] |
metadata-eval [<=]4.5% | \[ \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.2%
Simplified93.2%
[Start]93.2% | \[ -1 \cdot \frac{c}{b}
\] |
|---|---|
mul-1-neg [=>]93.2% | \[ \color{blue}{-\frac{c}{b}}
\] |
distribute-neg-frac [=>]93.2% | \[ \color{blue}{\frac{-c}{b}}
\] |
Final simplification88.9%
| Alternative 1 | |
|---|---|
| Accuracy | 90.6% |
| Cost | 14412 |
| Alternative 2 | |
|---|---|
| Accuracy | 87.5% |
| Cost | 14284 |
| Alternative 3 | |
|---|---|
| Accuracy | 83.4% |
| Cost | 7624 |
| Alternative 4 | |
|---|---|
| Accuracy | 83.5% |
| Cost | 7624 |
| Alternative 5 | |
|---|---|
| Accuracy | 78.6% |
| Cost | 7368 |
| Alternative 6 | |
|---|---|
| Accuracy | 78.6% |
| Cost | 7368 |
| Alternative 7 | |
|---|---|
| Accuracy | 68.6% |
| Cost | 580 |
| Alternative 8 | |
|---|---|
| Accuracy | 43.6% |
| Cost | 388 |
| Alternative 9 | |
|---|---|
| Accuracy | 68.4% |
| Cost | 388 |
| Alternative 10 | |
|---|---|
| Accuracy | 10.8% |
| Cost | 192 |
herbie shell --seed 2023263
(FPCore (a b c)
:name "Quadratic roots, full range"
:precision binary64
(/ (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a)))