| Alternative 1 | |
|---|---|
| Accuracy | 99.6% |
| Cost | 2372 |
(FPCore (alpha beta) :precision binary64 (/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0) 2.0))
(FPCore (alpha beta)
:precision binary64
(let* ((t_0 (+ beta (+ alpha 2.0))))
(if (<= (/ (- beta alpha) (+ (+ beta alpha) 2.0)) -0.5)
(/
(+
(/ beta t_0)
(-
(/ (- beta -2.0) alpha)
(/ (/ (+ beta 2.0) alpha) (/ alpha (+ beta 2.0)))))
2.0)
(/ (fma beta (/ 1.0 t_0) (- 1.0 (/ alpha t_0))) 2.0))))double code(double alpha, double beta) {
return (((beta - alpha) / ((alpha + beta) + 2.0)) + 1.0) / 2.0;
}
double code(double alpha, double beta) {
double t_0 = beta + (alpha + 2.0);
double tmp;
if (((beta - alpha) / ((beta + alpha) + 2.0)) <= -0.5) {
tmp = ((beta / t_0) + (((beta - -2.0) / alpha) - (((beta + 2.0) / alpha) / (alpha / (beta + 2.0))))) / 2.0;
} else {
tmp = fma(beta, (1.0 / t_0), (1.0 - (alpha / t_0))) / 2.0;
}
return tmp;
}
function code(alpha, beta) return Float64(Float64(Float64(Float64(beta - alpha) / Float64(Float64(alpha + beta) + 2.0)) + 1.0) / 2.0) end
function code(alpha, beta) t_0 = Float64(beta + Float64(alpha + 2.0)) tmp = 0.0 if (Float64(Float64(beta - alpha) / Float64(Float64(beta + alpha) + 2.0)) <= -0.5) tmp = Float64(Float64(Float64(beta / t_0) + Float64(Float64(Float64(beta - -2.0) / alpha) - Float64(Float64(Float64(beta + 2.0) / alpha) / Float64(alpha / Float64(beta + 2.0))))) / 2.0); else tmp = Float64(fma(beta, Float64(1.0 / t_0), Float64(1.0 - Float64(alpha / t_0))) / 2.0); end return tmp end
code[alpha_, beta_] := N[(N[(N[(N[(beta - alpha), $MachinePrecision] / N[(N[(alpha + beta), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision] / 2.0), $MachinePrecision]
code[alpha_, beta_] := Block[{t$95$0 = N[(beta + N[(alpha + 2.0), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(N[(beta - alpha), $MachinePrecision] / N[(N[(beta + alpha), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision], -0.5], N[(N[(N[(beta / t$95$0), $MachinePrecision] + N[(N[(N[(beta - -2.0), $MachinePrecision] / alpha), $MachinePrecision] - N[(N[(N[(beta + 2.0), $MachinePrecision] / alpha), $MachinePrecision] / N[(alpha / N[(beta + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / 2.0), $MachinePrecision], N[(N[(beta * N[(1.0 / t$95$0), $MachinePrecision] + N[(1.0 - N[(alpha / t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / 2.0), $MachinePrecision]]]
\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}
\begin{array}{l}
t_0 := \beta + \left(\alpha + 2\right)\\
\mathbf{if}\;\frac{\beta - \alpha}{\left(\beta + \alpha\right) + 2} \leq -0.5:\\
\;\;\;\;\frac{\frac{\beta}{t_0} + \left(\frac{\beta - -2}{\alpha} - \frac{\frac{\beta + 2}{\alpha}}{\frac{\alpha}{\beta + 2}}\right)}{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\beta, \frac{1}{t_0}, 1 - \frac{\alpha}{t_0}\right)}{2}\\
\end{array}
if (/.f64 (-.f64 beta alpha) (+.f64 (+.f64 alpha beta) 2)) < -0.5Initial program 9.2%
Simplified9.2%
[Start]9.2 | \[ \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}
\] |
|---|---|
+-commutative [=>]9.2 | \[ \frac{\frac{\beta - \alpha}{\color{blue}{\left(\beta + \alpha\right)} + 2} + 1}{2}
\] |
Applied egg-rr12.0%
[Start]9.2 | \[ \frac{\frac{\beta - \alpha}{\left(\beta + \alpha\right) + 2} + 1}{2}
\] |
|---|---|
div-sub [=>]9.2 | \[ \frac{\color{blue}{\left(\frac{\beta}{\left(\beta + \alpha\right) + 2} - \frac{\alpha}{\left(\beta + \alpha\right) + 2}\right)} + 1}{2}
\] |
associate-+l- [=>]12.0 | \[ \frac{\color{blue}{\frac{\beta}{\left(\beta + \alpha\right) + 2} - \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2} - 1\right)}}{2}
\] |
associate-+l+ [=>]12.0 | \[ \frac{\frac{\beta}{\color{blue}{\beta + \left(\alpha + 2\right)}} - \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2} - 1\right)}{2}
\] |
associate-+l+ [=>]12.0 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\frac{\alpha}{\color{blue}{\beta + \left(\alpha + 2\right)}} - 1\right)}{2}
\] |
Taylor expanded in alpha around inf 91.1%
Simplified94.9%
[Start]91.1 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(-1 \cdot \frac{\beta + 2}{\alpha} + \left(\frac{{\left(\beta + 2\right)}^{2}}{{\alpha}^{2}} + -1 \cdot \frac{{\left(\beta + 2\right)}^{3}}{{\alpha}^{3}}\right)\right)}{2}
\] |
|---|---|
associate-+r+ [=>]91.1 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \color{blue}{\left(\left(-1 \cdot \frac{\beta + 2}{\alpha} + \frac{{\left(\beta + 2\right)}^{2}}{{\alpha}^{2}}\right) + -1 \cdot \frac{{\left(\beta + 2\right)}^{3}}{{\alpha}^{3}}\right)}}{2}
\] |
mul-1-neg [=>]91.1 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\left(-1 \cdot \frac{\beta + 2}{\alpha} + \frac{{\left(\beta + 2\right)}^{2}}{{\alpha}^{2}}\right) + \color{blue}{\left(-\frac{{\left(\beta + 2\right)}^{3}}{{\alpha}^{3}}\right)}\right)}{2}
\] |
unsub-neg [=>]91.1 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \color{blue}{\left(\left(-1 \cdot \frac{\beta + 2}{\alpha} + \frac{{\left(\beta + 2\right)}^{2}}{{\alpha}^{2}}\right) - \frac{{\left(\beta + 2\right)}^{3}}{{\alpha}^{3}}\right)}}{2}
\] |
+-commutative [=>]91.1 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\color{blue}{\left(\frac{{\left(\beta + 2\right)}^{2}}{{\alpha}^{2}} + -1 \cdot \frac{\beta + 2}{\alpha}\right)} - \frac{{\left(\beta + 2\right)}^{3}}{{\alpha}^{3}}\right)}{2}
\] |
mul-1-neg [=>]91.1 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\left(\frac{{\left(\beta + 2\right)}^{2}}{{\alpha}^{2}} + \color{blue}{\left(-\frac{\beta + 2}{\alpha}\right)}\right) - \frac{{\left(\beta + 2\right)}^{3}}{{\alpha}^{3}}\right)}{2}
\] |
unsub-neg [=>]91.1 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\color{blue}{\left(\frac{{\left(\beta + 2\right)}^{2}}{{\alpha}^{2}} - \frac{\beta + 2}{\alpha}\right)} - \frac{{\left(\beta + 2\right)}^{3}}{{\alpha}^{3}}\right)}{2}
\] |
unpow2 [=>]91.1 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\left(\frac{{\left(\beta + 2\right)}^{2}}{\color{blue}{\alpha \cdot \alpha}} - \frac{\beta + 2}{\alpha}\right) - \frac{{\left(\beta + 2\right)}^{3}}{{\alpha}^{3}}\right)}{2}
\] |
cube-mult [=>]91.1 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\left(\frac{{\left(\beta + 2\right)}^{2}}{\alpha \cdot \alpha} - \frac{\beta + 2}{\alpha}\right) - \frac{\color{blue}{\left(\beta + 2\right) \cdot \left(\left(\beta + 2\right) \cdot \left(\beta + 2\right)\right)}}{{\alpha}^{3}}\right)}{2}
\] |
unpow2 [<=]91.1 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\left(\frac{{\left(\beta + 2\right)}^{2}}{\alpha \cdot \alpha} - \frac{\beta + 2}{\alpha}\right) - \frac{\left(\beta + 2\right) \cdot \color{blue}{{\left(\beta + 2\right)}^{2}}}{{\alpha}^{3}}\right)}{2}
\] |
cube-mult [=>]91.1 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\left(\frac{{\left(\beta + 2\right)}^{2}}{\alpha \cdot \alpha} - \frac{\beta + 2}{\alpha}\right) - \frac{\left(\beta + 2\right) \cdot {\left(\beta + 2\right)}^{2}}{\color{blue}{\alpha \cdot \left(\alpha \cdot \alpha\right)}}\right)}{2}
\] |
unpow2 [<=]91.1 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\left(\frac{{\left(\beta + 2\right)}^{2}}{\alpha \cdot \alpha} - \frac{\beta + 2}{\alpha}\right) - \frac{\left(\beta + 2\right) \cdot {\left(\beta + 2\right)}^{2}}{\alpha \cdot \color{blue}{{\alpha}^{2}}}\right)}{2}
\] |
times-frac [=>]94.9 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\left(\frac{{\left(\beta + 2\right)}^{2}}{\alpha \cdot \alpha} - \frac{\beta + 2}{\alpha}\right) - \color{blue}{\frac{\beta + 2}{\alpha} \cdot \frac{{\left(\beta + 2\right)}^{2}}{{\alpha}^{2}}}\right)}{2}
\] |
unpow2 [=>]94.9 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\left(\frac{{\left(\beta + 2\right)}^{2}}{\alpha \cdot \alpha} - \frac{\beta + 2}{\alpha}\right) - \frac{\beta + 2}{\alpha} \cdot \frac{\color{blue}{\left(\beta + 2\right) \cdot \left(\beta + 2\right)}}{{\alpha}^{2}}\right)}{2}
\] |
unpow2 [=>]94.9 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\left(\frac{{\left(\beta + 2\right)}^{2}}{\alpha \cdot \alpha} - \frac{\beta + 2}{\alpha}\right) - \frac{\beta + 2}{\alpha} \cdot \frac{\left(\beta + 2\right) \cdot \left(\beta + 2\right)}{\color{blue}{\alpha \cdot \alpha}}\right)}{2}
\] |
Taylor expanded in alpha around inf 94.5%
Simplified98.7%
[Start]94.5 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(-1 \cdot \frac{\beta + 2}{\alpha} + \frac{{\left(\beta + 2\right)}^{2}}{{\alpha}^{2}}\right)}{2}
\] |
|---|---|
+-commutative [=>]94.5 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \color{blue}{\left(\frac{{\left(\beta + 2\right)}^{2}}{{\alpha}^{2}} + -1 \cdot \frac{\beta + 2}{\alpha}\right)}}{2}
\] |
unpow2 [=>]94.5 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\frac{{\left(\beta + 2\right)}^{2}}{\color{blue}{\alpha \cdot \alpha}} + -1 \cdot \frac{\beta + 2}{\alpha}\right)}{2}
\] |
unpow2 [=>]94.5 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\frac{\color{blue}{\left(\beta + 2\right) \cdot \left(\beta + 2\right)}}{\alpha \cdot \alpha} + -1 \cdot \frac{\beta + 2}{\alpha}\right)}{2}
\] |
times-frac [=>]98.7 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\color{blue}{\frac{\beta + 2}{\alpha} \cdot \frac{\beta + 2}{\alpha}} + -1 \cdot \frac{\beta + 2}{\alpha}\right)}{2}
\] |
unpow2 [<=]98.7 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\color{blue}{{\left(\frac{\beta + 2}{\alpha}\right)}^{2}} + -1 \cdot \frac{\beta + 2}{\alpha}\right)}{2}
\] |
+-commutative [=>]98.7 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left({\left(\frac{\color{blue}{2 + \beta}}{\alpha}\right)}^{2} + -1 \cdot \frac{\beta + 2}{\alpha}\right)}{2}
\] |
mul-1-neg [=>]98.7 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left({\left(\frac{2 + \beta}{\alpha}\right)}^{2} + \color{blue}{\left(-\frac{\beta + 2}{\alpha}\right)}\right)}{2}
\] |
distribute-neg-frac [=>]98.7 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left({\left(\frac{2 + \beta}{\alpha}\right)}^{2} + \color{blue}{\frac{-\left(\beta + 2\right)}{\alpha}}\right)}{2}
\] |
+-commutative [=>]98.7 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left({\left(\frac{2 + \beta}{\alpha}\right)}^{2} + \frac{-\color{blue}{\left(2 + \beta\right)}}{\alpha}\right)}{2}
\] |
distribute-neg-in [=>]98.7 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left({\left(\frac{2 + \beta}{\alpha}\right)}^{2} + \frac{\color{blue}{\left(-2\right) + \left(-\beta\right)}}{\alpha}\right)}{2}
\] |
metadata-eval [=>]98.7 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left({\left(\frac{2 + \beta}{\alpha}\right)}^{2} + \frac{\color{blue}{-2} + \left(-\beta\right)}{\alpha}\right)}{2}
\] |
unsub-neg [=>]98.7 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left({\left(\frac{2 + \beta}{\alpha}\right)}^{2} + \frac{\color{blue}{-2 - \beta}}{\alpha}\right)}{2}
\] |
Applied egg-rr98.7%
[Start]98.7 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left({\left(\frac{2 + \beta}{\alpha}\right)}^{2} + \frac{-2 - \beta}{\alpha}\right)}{2}
\] |
|---|---|
unpow2 [=>]98.7 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\color{blue}{\frac{2 + \beta}{\alpha} \cdot \frac{2 + \beta}{\alpha}} + \frac{-2 - \beta}{\alpha}\right)}{2}
\] |
clear-num [=>]98.7 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\frac{2 + \beta}{\alpha} \cdot \color{blue}{\frac{1}{\frac{\alpha}{2 + \beta}}} + \frac{-2 - \beta}{\alpha}\right)}{2}
\] |
un-div-inv [=>]98.7 | \[ \frac{\frac{\beta}{\beta + \left(\alpha + 2\right)} - \left(\color{blue}{\frac{\frac{2 + \beta}{\alpha}}{\frac{\alpha}{2 + \beta}}} + \frac{-2 - \beta}{\alpha}\right)}{2}
\] |
if -0.5 < (/.f64 (-.f64 beta alpha) (+.f64 (+.f64 alpha beta) 2)) Initial program 100.0%
Simplified100.0%
[Start]100.0 | \[ \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}
\] |
|---|---|
+-commutative [=>]100.0 | \[ \frac{\frac{\beta - \alpha}{\color{blue}{\left(\beta + \alpha\right)} + 2} + 1}{2}
\] |
Applied egg-rr100.0%
[Start]100.0 | \[ \frac{\frac{\beta - \alpha}{\left(\beta + \alpha\right) + 2} + 1}{2}
\] |
|---|---|
div-sub [=>]100.0 | \[ \frac{\color{blue}{\left(\frac{\beta}{\left(\beta + \alpha\right) + 2} - \frac{\alpha}{\left(\beta + \alpha\right) + 2}\right)} + 1}{2}
\] |
associate-+l- [=>]100.0 | \[ \frac{\color{blue}{\frac{\beta}{\left(\beta + \alpha\right) + 2} - \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2} - 1\right)}}{2}
\] |
div-inv [=>]100.0 | \[ \frac{\color{blue}{\beta \cdot \frac{1}{\left(\beta + \alpha\right) + 2}} - \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2} - 1\right)}{2}
\] |
fma-neg [=>]100.0 | \[ \frac{\color{blue}{\mathsf{fma}\left(\beta, \frac{1}{\left(\beta + \alpha\right) + 2}, -\left(\frac{\alpha}{\left(\beta + \alpha\right) + 2} - 1\right)\right)}}{2}
\] |
associate-+l+ [=>]100.0 | \[ \frac{\mathsf{fma}\left(\beta, \frac{1}{\color{blue}{\beta + \left(\alpha + 2\right)}}, -\left(\frac{\alpha}{\left(\beta + \alpha\right) + 2} - 1\right)\right)}{2}
\] |
associate-+l+ [=>]100.0 | \[ \frac{\mathsf{fma}\left(\beta, \frac{1}{\beta + \left(\alpha + 2\right)}, -\left(\frac{\alpha}{\color{blue}{\beta + \left(\alpha + 2\right)}} - 1\right)\right)}{2}
\] |
Final simplification99.6%
| Alternative 1 | |
|---|---|
| Accuracy | 99.6% |
| Cost | 2372 |
| Alternative 2 | |
|---|---|
| Accuracy | 99.6% |
| Cost | 1860 |
| Alternative 3 | |
|---|---|
| Accuracy | 99.6% |
| Cost | 1476 |
| Alternative 4 | |
|---|---|
| Accuracy | 71.0% |
| Cost | 844 |
| Alternative 5 | |
|---|---|
| Accuracy | 71.2% |
| Cost | 844 |
| Alternative 6 | |
|---|---|
| Accuracy | 87.8% |
| Cost | 708 |
| Alternative 7 | |
|---|---|
| Accuracy | 93.0% |
| Cost | 708 |
| Alternative 8 | |
|---|---|
| Accuracy | 70.6% |
| Cost | 584 |
| Alternative 9 | |
|---|---|
| Accuracy | 71.7% |
| Cost | 196 |
| Alternative 10 | |
|---|---|
| Accuracy | 49.7% |
| Cost | 64 |
herbie shell --seed 2023153
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/1"
:precision binary64
:pre (and (> alpha -1.0) (> beta -1.0))
(/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0) 2.0))