Average Error: 33.6 → 6.4
Time: 20.3s
Precision: binary64
Cost: 8387
Math TeX FPCore C \[\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\]
↓
\[\begin{array}{l}
\mathbf{if}\;b \leq -3.675391325498039 \cdot 10^{+126}:\\
\;\;\;\;-0.5 \cdot \left(2 \cdot \frac{c}{b}\right)\\
\mathbf{elif}\;b \leq 6.382555368342549 \cdot 10^{-262}:\\
\;\;\;\;-0.5 \cdot \left(4 \cdot \frac{c}{b - \sqrt{b \cdot b - 4 \cdot \left(c \cdot a\right)}}\right)\\
\mathbf{elif}\;b \leq 1.1102892118009466 \cdot 10^{+81}:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(c \cdot a\right)}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;-0.5 \cdot \frac{b + b}{a}\\
\end{array}\]
\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a} ↓
\begin{array}{l}
\mathbf{if}\;b \leq -3.675391325498039 \cdot 10^{+126}:\\
\;\;\;\;-0.5 \cdot \left(2 \cdot \frac{c}{b}\right)\\
\mathbf{elif}\;b \leq 6.382555368342549 \cdot 10^{-262}:\\
\;\;\;\;-0.5 \cdot \left(4 \cdot \frac{c}{b - \sqrt{b \cdot b - 4 \cdot \left(c \cdot a\right)}}\right)\\
\mathbf{elif}\;b \leq 1.1102892118009466 \cdot 10^{+81}:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(c \cdot a\right)}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;-0.5 \cdot \frac{b + b}{a}\\
\end{array} (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 -3.675391325498039e+126)
(* -0.5 (* 2.0 (/ c b)))
(if (<= b 6.382555368342549e-262)
(* -0.5 (* 4.0 (/ c (- b (sqrt (- (* b b) (* 4.0 (* c a))))))))
(if (<= b 1.1102892118009466e+81)
(/ (- (- b) (sqrt (- (* b b) (* 4.0 (* c a))))) (* 2.0 a))
(* -0.5 (/ (+ b b) a)))))) 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 <= -3.675391325498039e+126) {
tmp = -0.5 * (2.0 * (c / b));
} else if (b <= 6.382555368342549e-262) {
tmp = -0.5 * (4.0 * (c / (b - sqrt((b * b) - (4.0 * (c * a))))));
} else if (b <= 1.1102892118009466e+81) {
tmp = (-b - sqrt((b * b) - (4.0 * (c * a)))) / (2.0 * a);
} else {
tmp = -0.5 * ((b + b) / a);
}
return tmp;
}
Try it out Enter valid numbers for all inputs
Target Original 33.6 Target 20.2 Herbie 6.4
\[\begin{array}{l}
\mathbf{if}\;b < 0:\\
\;\;\;\;\frac{c}{a \cdot \frac{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\\
\end{array}\]
Alternatives Alternative 1 Error 34.3 Cost 46784
\[-0.5 \cdot \left(\frac{\sqrt{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \frac{\sqrt{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}{\sqrt[3]{a}}\right)\]
Alternative 2 Error 29.6 Cost 41536
\[-0.5 \cdot \left(\sqrt[3]{\frac{4}{\frac{b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{c}}} \cdot \left(\sqrt[3]{\frac{4}{\frac{b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{c}}} \cdot \sqrt[3]{\frac{4}{\frac{b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{c}}}\right)\right)\]
Alternative 3 Error 34.1 Cost 41152
\[-0.5 \cdot \left(\sqrt[3]{\frac{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{a}} \cdot \left(\sqrt[3]{\frac{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{a}} \cdot \sqrt[3]{\frac{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{a}}\right)\right)\]
Alternative 4 Error 34.1 Cost 40896
\[-0.5 \cdot \frac{\sqrt[3]{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}} \cdot \left(\sqrt[3]{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}} \cdot \sqrt[3]{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}\right)}{a}\]
Alternative 5 Error 34.1 Cost 40896
\[-0.5 \cdot \left(\left(\sqrt[3]{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}} \cdot \sqrt[3]{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}\right) \cdot \frac{\sqrt[3]{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}{a}\right)\]
Alternative 6 Error 35.5 Cost 40640
\[-0.5 \cdot \frac{b + \sqrt[3]{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}} \cdot \left(\sqrt[3]{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}} \cdot \sqrt[3]{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}\right)}{a}\]
Alternative 7 Error 52.3 Cost 34176
\[-0.5 \cdot \frac{b + \frac{\sqrt{{b}^{6} - {\left(4 \cdot \left(a \cdot c\right)\right)}^{3}}}{\sqrt{{b}^{4} + 4 \cdot \left(\left(a \cdot c\right) \cdot \left(b \cdot b + 4 \cdot \left(a \cdot c\right)\right)\right)}}}{a}\]
Alternative 8 Error 42.5 Cost 28224
\[-0.5 \cdot \frac{\frac{{\left(\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}^{3} + {b}^{3}}{\left(b \cdot b - 4 \cdot \left(a \cdot c\right)\right) + b \cdot \left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}{a}\]
Alternative 9 Error 36.3 Cost 28096
\[-0.5 \cdot \left(\sqrt{\frac{4 \cdot \left(a \cdot c\right)}{b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}} \cdot \frac{\sqrt{\frac{4 \cdot \left(a \cdot c\right)}{b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}}{a}\right)\]
Alternative 10 Error 47.9 Cost 27456
\[-0.5 \cdot \left(\sqrt{\frac{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{a}} \cdot \sqrt{\frac{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{a}}\right)\]
Alternative 11 Error 34.0 Cost 27328
\[-0.5 \cdot \left(\sqrt{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}} \cdot \frac{\sqrt{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}{a}\right)\]
Alternative 12 Error 34.7 Cost 27200
\[-0.5 \cdot \frac{b + \sqrt{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}} \cdot \sqrt{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}{a}\]
Alternative 13 Error 35.0 Cost 27200
\[-0.5 \cdot \frac{b + \left|\sqrt[3]{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right| \cdot \sqrt{\sqrt[3]{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}{a}\]
Alternative 14 Error 34.2 Cost 26944
\[-0.5 \cdot \left(\frac{1}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \frac{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{\sqrt[3]{a}}\right)\]
Alternative 15 Error 57.3 Cost 20992
\[-0.5 \cdot \frac{b + \frac{\sqrt{{b}^{4} - a \cdot \left(c \cdot \left(\left(a \cdot c\right) \cdot 16\right)\right)}}{\sqrt{b \cdot b + 4 \cdot \left(a \cdot c\right)}}}{a}\]
Alternative 16 Error 49.0 Cost 20416
\[-0.5 \cdot \left(\frac{1}{\sqrt{a}} \cdot \frac{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{\sqrt{a}}\right)\]
Alternative 17 Error 42.6 Cost 20224
\[-0.5 \cdot \frac{b + \sqrt[3]{{\left(\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}^{3}}}{a}\]
Alternative 18 Error 37.2 Cost 20160
\[-0.5 \cdot \frac{b + e^{\log \left(\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}{a}\]
Alternative 19 Error 35.7 Cost 20160
\[-0.5 \cdot \frac{e^{\log \left(b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}{a}\]
Alternative 20 Error 60.1 Cost 20160
\[-0.5 \cdot \frac{\log \left(e^{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}\right)}{a}\]
Alternative 21 Error 61.4 Cost 20160
\[-0.5 \cdot \frac{b + \log \left(e^{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}\right)}{a}\]
Alternative 22 Error 48.9 Cost 20160
\[-0.5 \cdot e^{\log \left(\frac{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{a}\right)}\]
Alternative 23 Error 32.0 Cost 7744
\[-0.5 \cdot \frac{\frac{4 \cdot \left(a \cdot c\right)}{b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}{a}\]
Alternative 24 Error 33.7 Cost 7488
\[-0.5 \cdot \left(\left(b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right) \cdot \frac{1}{a}\right)\]
Alternative 25 Error 33.7 Cost 7488
\[-0.5 \cdot \frac{1}{\frac{a}{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}\]
Alternative 26 Error 41.3 Cost 7488
\[-0.5 \cdot \frac{\frac{4 \cdot \left(a \cdot c\right)}{b - \sqrt{a \cdot \left(c \cdot -4\right)}}}{a}\]
Alternative 27 Error 28.9 Cost 7488
\[-0.5 \cdot \left(4 \cdot \frac{c}{b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}\right)\]
Alternative 28 Error 33.6 Cost 7424
\[\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{a \cdot 2}\]
Alternative 29 Error 45.3 Cost 7424
\[-0.5 \cdot \left(2 \cdot \left(\frac{c}{b} + \frac{a \cdot \left(c \cdot c\right)}{{b}^{3}}\right)\right)\]
Alternative 30 Error 33.6 Cost 7360
\[-0.5 \cdot \frac{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{a}\]
Alternative 31 Error 45.9 Cost 7360
\[-0.5 \cdot \frac{-4 \cdot \frac{a \cdot c}{\sqrt{a \cdot \left(c \cdot -4\right)}}}{a}\]
Alternative 32 Error 33.6 Cost 7360
\[-0.5 \cdot \frac{b + \sqrt{a \cdot \left(c \cdot -4\right) + b \cdot b}}{a}\]
Alternative 33 Error 44.5 Cost 7232
\[-0.5 \cdot \left(\frac{\sqrt{a \cdot \left(c \cdot -4\right)}}{a} + \frac{b}{a}\right)\]
Alternative 34 Error 44.5 Cost 7232
\[-0.5 \cdot \frac{1}{\frac{a}{\sqrt{a \cdot \left(c \cdot -4\right)} + b}}\]
Alternative 35 Error 44.0 Cost 7104
\[-0.5 \cdot \frac{1}{\frac{a}{\sqrt{a \cdot \left(c \cdot -4\right)}}}\]
Alternative 36 Error 44.5 Cost 7104
\[-0.5 \cdot \frac{\sqrt{a \cdot \left(c \cdot -4\right)} + b}{a}\]
Alternative 37 Error 45.7 Cost 7104
\[-0.5 \cdot \left(-4 \cdot \frac{c}{\sqrt{a \cdot \left(c \cdot -4\right)}}\right)\]
Alternative 38 Error 43.9 Cost 6976
\[-0.5 \cdot \frac{\sqrt{a \cdot \left(c \cdot -4\right)}}{a}\]
Alternative 39 Error 39.9 Cost 1088
\[-0.5 \cdot \left(4 \cdot \frac{c}{b - \left(2 \cdot \frac{a \cdot c}{b} - b\right)}\right)\]
Alternative 40 Error 39.9 Cost 960
\[-0.5 \cdot \left(4 \cdot \frac{c}{2 \cdot \left(b - \frac{a \cdot c}{b}\right)}\right)\]
Alternative 41 Error 44.9 Cost 704
\[-0.5 \cdot \frac{2 \cdot \frac{a \cdot c}{b}}{a}\]
Alternative 42 Error 45.6 Cost 704
\[-0.5 \cdot \left(2 \cdot \left(\frac{b}{a} - \frac{c}{b}\right)\right)\]
Alternative 43 Error 45.5 Cost 576
\[-0.5 \cdot \frac{1}{\frac{a}{b + b}}\]
Alternative 44 Error 45.4 Cost 448
\[-0.5 \cdot \frac{b + b}{a}\]
Alternative 45 Error 56.2 Cost 448
\[-0.5 \cdot \frac{b - b}{a}\]
Alternative 46 Error 39.4 Cost 448
\[-0.5 \cdot \left(2 \cdot \frac{c}{b}\right)\]
Alternative 47 Error 61.6 Cost 64
\[1\]
Alternative 48 Error 56.2 Cost 64
\[0\]
Alternative 49 Error 61.6 Cost 64
\[-1\]
Error Derivation Split input into 4 regimes if b < -3.6753913254980387e126 Initial program 60.8
\[\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\]
Simplified60.8
\[\leadsto \color{blue}{-0.5 \cdot \frac{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{a}}\]
Taylor expanded around -inf 1.7
\[\leadsto -0.5 \cdot \color{blue}{\left(2 \cdot \frac{c}{b}\right)}\]
Simplified1.7
\[\leadsto \color{blue}{-0.5 \cdot \left(2 \cdot \frac{c}{b}\right)}\]
if -3.6753913254980387e126 < b < 6.38255536834254894e-262 Initial program 32.5
\[\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\]
Simplified32.5
\[\leadsto \color{blue}{-0.5 \cdot \frac{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{a}}\]
Using strategy rm Applied flip-+_binary64_378 32.5
\[\leadsto -0.5 \cdot \frac{\color{blue}{\frac{b \cdot b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)} \cdot \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}}{a}\]
Simplified16.2
\[\leadsto -0.5 \cdot \frac{\frac{\color{blue}{4 \cdot \left(a \cdot c\right)}}{b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}{a}\]
Using strategy rm Applied *-un-lft-identity_binary64_404 16.2
\[\leadsto -0.5 \cdot \frac{\frac{4 \cdot \left(a \cdot c\right)}{b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}{\color{blue}{1 \cdot a}}\]
Applied *-un-lft-identity_binary64_404 16.2
\[\leadsto -0.5 \cdot \frac{\frac{4 \cdot \left(a \cdot c\right)}{\color{blue}{1 \cdot \left(b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}}{1 \cdot a}\]
Applied times-frac_binary64_410 16.2
\[\leadsto -0.5 \cdot \frac{\color{blue}{\frac{4}{1} \cdot \frac{a \cdot c}{b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}}{1 \cdot a}\]
Applied times-frac_binary64_410 16.2
\[\leadsto -0.5 \cdot \color{blue}{\left(\frac{\frac{4}{1}}{1} \cdot \frac{\frac{a \cdot c}{b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}{a}\right)}\]
Simplified16.2
\[\leadsto -0.5 \cdot \left(\color{blue}{4} \cdot \frac{\frac{a \cdot c}{b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}{a}\right)\]
Simplified9.0
\[\leadsto -0.5 \cdot \left(4 \cdot \color{blue}{\left(1 \cdot \frac{c}{b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}\right)}\right)\]
Simplified9.0
\[\leadsto \color{blue}{-0.5 \cdot \left(4 \cdot \frac{c}{b - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}\right)}\]
if 6.38255536834254894e-262 < b < 1.11028921180094657e81 Initial program 8.1
\[\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\]
Simplified8.1
\[\leadsto \color{blue}{\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{a \cdot 2}}\]
if 1.11028921180094657e81 < b Initial program 43.1
\[\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\]
Simplified43.1
\[\leadsto \color{blue}{-0.5 \cdot \frac{b + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{a}}\]
Taylor expanded around inf 3.8
\[\leadsto -0.5 \cdot \frac{b + \color{blue}{b}}{a}\]
Simplified3.8
\[\leadsto \color{blue}{-0.5 \cdot \frac{b + b}{a}}\]
Recombined 4 regimes into one program. Final simplification6.4
\[\leadsto \begin{array}{l}
\mathbf{if}\;b \leq -3.675391325498039 \cdot 10^{+126}:\\
\;\;\;\;-0.5 \cdot \left(2 \cdot \frac{c}{b}\right)\\
\mathbf{elif}\;b \leq 6.382555368342549 \cdot 10^{-262}:\\
\;\;\;\;-0.5 \cdot \left(4 \cdot \frac{c}{b - \sqrt{b \cdot b - 4 \cdot \left(c \cdot a\right)}}\right)\\
\mathbf{elif}\;b \leq 1.1102892118009466 \cdot 10^{+81}:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(c \cdot a\right)}}{2 \cdot a}\\
\mathbf{else}:\\
\;\;\;\;-0.5 \cdot \frac{b + b}{a}\\
\end{array}\]
Reproduce herbie shell --seed 2021042
(FPCore (a b c)
:name "quadm (p42, negative)"
:precision binary64
:herbie-expected #f
:herbie-target
(if (< b 0.0) (/ c (* a (/ (+ (- b) (sqrt (- (* b b) (* 4.0 (* a c))))) (* 2.0 a)))) (/ (- (- b) (sqrt (- (* b b) (* 4.0 (* a c))))) (* 2.0 a)))
(/ (- (- b) (sqrt (- (* b b) (* 4.0 (* a c))))) (* 2.0 a)))