| Alternative 1 | |
|---|---|
| Accuracy | 99.9% |
| Cost | 13636 |
(FPCore (a k m) :precision binary64 (/ (* a (pow k m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))
(FPCore (a k m)
:precision binary64
(let* ((t_0 (hypot k (sqrt (fma k 10.0 1.0)))))
(if (<= k 2e+56)
(/ (/ a (fma k (+ k 10.0) 1.0)) (pow k (- m)))
(* (/ 1.0 t_0) (/ (pow k m) (/ t_0 a))))))double code(double a, double k, double m) {
return (a * pow(k, m)) / ((1.0 + (10.0 * k)) + (k * k));
}
double code(double a, double k, double m) {
double t_0 = hypot(k, sqrt(fma(k, 10.0, 1.0)));
double tmp;
if (k <= 2e+56) {
tmp = (a / fma(k, (k + 10.0), 1.0)) / pow(k, -m);
} else {
tmp = (1.0 / t_0) * (pow(k, m) / (t_0 / a));
}
return tmp;
}
function code(a, k, m) return Float64(Float64(a * (k ^ m)) / Float64(Float64(1.0 + Float64(10.0 * k)) + Float64(k * k))) end
function code(a, k, m) t_0 = hypot(k, sqrt(fma(k, 10.0, 1.0))) tmp = 0.0 if (k <= 2e+56) tmp = Float64(Float64(a / fma(k, Float64(k + 10.0), 1.0)) / (k ^ Float64(-m))); else tmp = Float64(Float64(1.0 / t_0) * Float64((k ^ m) / Float64(t_0 / a))); end return tmp end
code[a_, k_, m_] := N[(N[(a * N[Power[k, m], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 + N[(10.0 * k), $MachinePrecision]), $MachinePrecision] + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[a_, k_, m_] := Block[{t$95$0 = N[Sqrt[k ^ 2 + N[Sqrt[N[(k * 10.0 + 1.0), $MachinePrecision]], $MachinePrecision] ^ 2], $MachinePrecision]}, If[LessEqual[k, 2e+56], N[(N[(a / N[(k * N[(k + 10.0), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision] / N[Power[k, (-m)], $MachinePrecision]), $MachinePrecision], N[(N[(1.0 / t$95$0), $MachinePrecision] * N[(N[Power[k, m], $MachinePrecision] / N[(t$95$0 / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}
\begin{array}{l}
t_0 := \mathsf{hypot}\left(k, \sqrt{\mathsf{fma}\left(k, 10, 1\right)}\right)\\
\mathbf{if}\;k \leq 2 \cdot 10^{+56}:\\
\;\;\;\;\frac{\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}}{{k}^{\left(-m\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{t_0} \cdot \frac{{k}^{m}}{\frac{t_0}{a}}\\
\end{array}
if k < 2.00000000000000018e56Initial program 99.8%
Simplified99.8%
[Start]99.8 | \[ \frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}
\] |
|---|---|
associate-/l* [=>]99.8 | \[ \color{blue}{\frac{a}{\frac{\left(1 + 10 \cdot k\right) + k \cdot k}{{k}^{m}}}}
\] |
associate-+l+ [=>]99.8 | \[ \frac{a}{\frac{\color{blue}{1 + \left(10 \cdot k + k \cdot k\right)}}{{k}^{m}}}
\] |
*-commutative [=>]99.8 | \[ \frac{a}{\frac{1 + \left(\color{blue}{k \cdot 10} + k \cdot k\right)}{{k}^{m}}}
\] |
Applied egg-rr99.9%
[Start]99.8 | \[ \frac{a}{\frac{1 + \left(k \cdot 10 + k \cdot k\right)}{{k}^{m}}}
\] |
|---|---|
*-un-lft-identity [=>]99.8 | \[ \frac{\color{blue}{1 \cdot a}}{\frac{1 + \left(k \cdot 10 + k \cdot k\right)}{{k}^{m}}}
\] |
div-inv [=>]99.8 | \[ \frac{1 \cdot a}{\color{blue}{\left(1 + \left(k \cdot 10 + k \cdot k\right)\right) \cdot \frac{1}{{k}^{m}}}}
\] |
times-frac [=>]99.8 | \[ \color{blue}{\frac{1}{1 + \left(k \cdot 10 + k \cdot k\right)} \cdot \frac{a}{\frac{1}{{k}^{m}}}}
\] |
+-commutative [=>]99.8 | \[ \frac{1}{\color{blue}{\left(k \cdot 10 + k \cdot k\right) + 1}} \cdot \frac{a}{\frac{1}{{k}^{m}}}
\] |
distribute-lft-out [=>]99.9 | \[ \frac{1}{\color{blue}{k \cdot \left(10 + k\right)} + 1} \cdot \frac{a}{\frac{1}{{k}^{m}}}
\] |
fma-def [=>]99.9 | \[ \frac{1}{\color{blue}{\mathsf{fma}\left(k, 10 + k, 1\right)}} \cdot \frac{a}{\frac{1}{{k}^{m}}}
\] |
+-commutative [=>]99.9 | \[ \frac{1}{\mathsf{fma}\left(k, \color{blue}{k + 10}, 1\right)} \cdot \frac{a}{\frac{1}{{k}^{m}}}
\] |
pow-flip [=>]99.9 | \[ \frac{1}{\mathsf{fma}\left(k, k + 10, 1\right)} \cdot \frac{a}{\color{blue}{{k}^{\left(-m\right)}}}
\] |
Simplified99.9%
[Start]99.9 | \[ \frac{1}{\mathsf{fma}\left(k, k + 10, 1\right)} \cdot \frac{a}{{k}^{\left(-m\right)}}
\] |
|---|---|
associate-*r/ [=>]99.9 | \[ \color{blue}{\frac{\frac{1}{\mathsf{fma}\left(k, k + 10, 1\right)} \cdot a}{{k}^{\left(-m\right)}}}
\] |
associate-*l/ [=>]99.9 | \[ \frac{\color{blue}{\frac{1 \cdot a}{\mathsf{fma}\left(k, k + 10, 1\right)}}}{{k}^{\left(-m\right)}}
\] |
*-commutative [<=]99.9 | \[ \frac{\frac{\color{blue}{a \cdot 1}}{\mathsf{fma}\left(k, k + 10, 1\right)}}{{k}^{\left(-m\right)}}
\] |
associate-*l/ [<=]99.9 | \[ \frac{\color{blue}{\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)} \cdot 1}}{{k}^{\left(-m\right)}}
\] |
*-rgt-identity [=>]99.9 | \[ \frac{\color{blue}{\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}}}{{k}^{\left(-m\right)}}
\] |
if 2.00000000000000018e56 < k Initial program 90.5%
Applied egg-rr99.8%
[Start]90.5 | \[ \frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}
\] |
|---|---|
*-un-lft-identity [=>]90.5 | \[ \frac{\color{blue}{1 \cdot \left(a \cdot {k}^{m}\right)}}{\left(1 + 10 \cdot k\right) + k \cdot k}
\] |
add-sqr-sqrt [=>]90.5 | \[ \frac{1 \cdot \left(a \cdot {k}^{m}\right)}{\color{blue}{\sqrt{\left(1 + 10 \cdot k\right) + k \cdot k} \cdot \sqrt{\left(1 + 10 \cdot k\right) + k \cdot k}}}
\] |
times-frac [=>]90.5 | \[ \color{blue}{\frac{1}{\sqrt{\left(1 + 10 \cdot k\right) + k \cdot k}} \cdot \frac{a \cdot {k}^{m}}{\sqrt{\left(1 + 10 \cdot k\right) + k \cdot k}}}
\] |
+-commutative [=>]90.5 | \[ \frac{1}{\sqrt{\color{blue}{k \cdot k + \left(1 + 10 \cdot k\right)}}} \cdot \frac{a \cdot {k}^{m}}{\sqrt{\left(1 + 10 \cdot k\right) + k \cdot k}}
\] |
add-sqr-sqrt [=>]90.5 | \[ \frac{1}{\sqrt{k \cdot k + \color{blue}{\sqrt{1 + 10 \cdot k} \cdot \sqrt{1 + 10 \cdot k}}}} \cdot \frac{a \cdot {k}^{m}}{\sqrt{\left(1 + 10 \cdot k\right) + k \cdot k}}
\] |
hypot-def [=>]90.5 | \[ \frac{1}{\color{blue}{\mathsf{hypot}\left(k, \sqrt{1 + 10 \cdot k}\right)}} \cdot \frac{a \cdot {k}^{m}}{\sqrt{\left(1 + 10 \cdot k\right) + k \cdot k}}
\] |
+-commutative [=>]90.5 | \[ \frac{1}{\mathsf{hypot}\left(k, \sqrt{\color{blue}{10 \cdot k + 1}}\right)} \cdot \frac{a \cdot {k}^{m}}{\sqrt{\left(1 + 10 \cdot k\right) + k \cdot k}}
\] |
*-commutative [=>]90.5 | \[ \frac{1}{\mathsf{hypot}\left(k, \sqrt{\color{blue}{k \cdot 10} + 1}\right)} \cdot \frac{a \cdot {k}^{m}}{\sqrt{\left(1 + 10 \cdot k\right) + k \cdot k}}
\] |
fma-def [=>]90.5 | \[ \frac{1}{\mathsf{hypot}\left(k, \sqrt{\color{blue}{\mathsf{fma}\left(k, 10, 1\right)}}\right)} \cdot \frac{a \cdot {k}^{m}}{\sqrt{\left(1 + 10 \cdot k\right) + k \cdot k}}
\] |
*-commutative [=>]90.5 | \[ \frac{1}{\mathsf{hypot}\left(k, \sqrt{\mathsf{fma}\left(k, 10, 1\right)}\right)} \cdot \frac{\color{blue}{{k}^{m} \cdot a}}{\sqrt{\left(1 + 10 \cdot k\right) + k \cdot k}}
\] |
associate-/l* [=>]90.5 | \[ \frac{1}{\mathsf{hypot}\left(k, \sqrt{\mathsf{fma}\left(k, 10, 1\right)}\right)} \cdot \color{blue}{\frac{{k}^{m}}{\frac{\sqrt{\left(1 + 10 \cdot k\right) + k \cdot k}}{a}}}
\] |
Final simplification99.9%
| Alternative 1 | |
|---|---|
| Accuracy | 99.9% |
| Cost | 13636 |
| Alternative 2 | |
|---|---|
| Accuracy | 99.9% |
| Cost | 13572 |
| Alternative 3 | |
|---|---|
| Accuracy | 99.8% |
| Cost | 7428 |
| Alternative 4 | |
|---|---|
| Accuracy | 99.8% |
| Cost | 7428 |
| Alternative 5 | |
|---|---|
| Accuracy | 99.8% |
| Cost | 7300 |
| Alternative 6 | |
|---|---|
| Accuracy | 98.9% |
| Cost | 7172 |
| Alternative 7 | |
|---|---|
| Accuracy | 99.2% |
| Cost | 7172 |
| Alternative 8 | |
|---|---|
| Accuracy | 96.0% |
| Cost | 7048 |
| Alternative 9 | |
|---|---|
| Accuracy | 96.0% |
| Cost | 7048 |
| Alternative 10 | |
|---|---|
| Accuracy | 98.8% |
| Cost | 7044 |
| Alternative 11 | |
|---|---|
| Accuracy | 96.1% |
| Cost | 6921 |
| Alternative 12 | |
|---|---|
| Accuracy | 74.0% |
| Cost | 1736 |
| Alternative 13 | |
|---|---|
| Accuracy | 65.1% |
| Cost | 844 |
| Alternative 14 | |
|---|---|
| Accuracy | 66.4% |
| Cost | 844 |
| Alternative 15 | |
|---|---|
| Accuracy | 66.5% |
| Cost | 844 |
| Alternative 16 | |
|---|---|
| Accuracy | 74.7% |
| Cost | 840 |
| Alternative 17 | |
|---|---|
| Accuracy | 64.8% |
| Cost | 716 |
| Alternative 18 | |
|---|---|
| Accuracy | 73.6% |
| Cost | 712 |
| Alternative 19 | |
|---|---|
| Accuracy | 67.9% |
| Cost | 580 |
| Alternative 20 | |
|---|---|
| Accuracy | 32.7% |
| Cost | 452 |
| Alternative 21 | |
|---|---|
| Accuracy | 26.8% |
| Cost | 64 |
herbie shell --seed 2023139
(FPCore (a k m)
:name "Falkner and Boettcher, Appendix A"
:precision binary64
(/ (* a (pow k m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))