| Alternative 1 | |
|---|---|
| Error | 15.32% |
| Cost | 1100 |
(FPCore (alpha beta i) :precision binary64 (/ (/ (* (* i (+ (+ alpha beta) i)) (+ (* beta alpha) (* i (+ (+ alpha beta) i)))) (* (+ (+ alpha beta) (* 2.0 i)) (+ (+ alpha beta) (* 2.0 i)))) (- (* (+ (+ alpha beta) (* 2.0 i)) (+ (+ alpha beta) (* 2.0 i))) 1.0)))
(FPCore (alpha beta i)
:precision binary64
(let* ((t_0 (fma i 2.0 (+ beta alpha))))
(if (<= beta 4.4e+82)
(+ 0.0625 (/ 0.015625 (* i i)))
(if (or (<= beta 5.5e+96) (not (<= beta 4.9e+171)))
(/ (/ i (+ 1.0 t_0)) (/ (+ t_0 -1.0) (+ i alpha)))
(* (* (/ i (+ beta (* i 2.0))) 0.5) 0.25)))))double code(double alpha, double beta, double i) {
return (((i * ((alpha + beta) + i)) * ((beta * alpha) + (i * ((alpha + beta) + i)))) / (((alpha + beta) + (2.0 * i)) * ((alpha + beta) + (2.0 * i)))) / ((((alpha + beta) + (2.0 * i)) * ((alpha + beta) + (2.0 * i))) - 1.0);
}
double code(double alpha, double beta, double i) {
double t_0 = fma(i, 2.0, (beta + alpha));
double tmp;
if (beta <= 4.4e+82) {
tmp = 0.0625 + (0.015625 / (i * i));
} else if ((beta <= 5.5e+96) || !(beta <= 4.9e+171)) {
tmp = (i / (1.0 + t_0)) / ((t_0 + -1.0) / (i + alpha));
} else {
tmp = ((i / (beta + (i * 2.0))) * 0.5) * 0.25;
}
return tmp;
}
function code(alpha, beta, i) return Float64(Float64(Float64(Float64(i * Float64(Float64(alpha + beta) + i)) * Float64(Float64(beta * alpha) + Float64(i * Float64(Float64(alpha + beta) + i)))) / Float64(Float64(Float64(alpha + beta) + Float64(2.0 * i)) * Float64(Float64(alpha + beta) + Float64(2.0 * i)))) / Float64(Float64(Float64(Float64(alpha + beta) + Float64(2.0 * i)) * Float64(Float64(alpha + beta) + Float64(2.0 * i))) - 1.0)) end
function code(alpha, beta, i) t_0 = fma(i, 2.0, Float64(beta + alpha)) tmp = 0.0 if (beta <= 4.4e+82) tmp = Float64(0.0625 + Float64(0.015625 / Float64(i * i))); elseif ((beta <= 5.5e+96) || !(beta <= 4.9e+171)) tmp = Float64(Float64(i / Float64(1.0 + t_0)) / Float64(Float64(t_0 + -1.0) / Float64(i + alpha))); else tmp = Float64(Float64(Float64(i / Float64(beta + Float64(i * 2.0))) * 0.5) * 0.25); end return tmp end
code[alpha_, beta_, i_] := N[(N[(N[(N[(i * N[(N[(alpha + beta), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision] * N[(N[(beta * alpha), $MachinePrecision] + N[(i * N[(N[(alpha + beta), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(alpha + beta), $MachinePrecision] + N[(2.0 * i), $MachinePrecision]), $MachinePrecision] * N[(N[(alpha + beta), $MachinePrecision] + N[(2.0 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(N[(alpha + beta), $MachinePrecision] + N[(2.0 * i), $MachinePrecision]), $MachinePrecision] * N[(N[(alpha + beta), $MachinePrecision] + N[(2.0 * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision]), $MachinePrecision]
code[alpha_, beta_, i_] := Block[{t$95$0 = N[(i * 2.0 + N[(beta + alpha), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[beta, 4.4e+82], N[(0.0625 + N[(0.015625 / N[(i * i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[beta, 5.5e+96], N[Not[LessEqual[beta, 4.9e+171]], $MachinePrecision]], N[(N[(i / N[(1.0 + t$95$0), $MachinePrecision]), $MachinePrecision] / N[(N[(t$95$0 + -1.0), $MachinePrecision] / N[(i + alpha), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(i / N[(beta + N[(i * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 0.5), $MachinePrecision] * 0.25), $MachinePrecision]]]]
\frac{\frac{\left(i \cdot \left(\left(\alpha + \beta\right) + i\right)\right) \cdot \left(\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1}
\begin{array}{l}
t_0 := \mathsf{fma}\left(i, 2, \beta + \alpha\right)\\
\mathbf{if}\;\beta \leq 4.4 \cdot 10^{+82}:\\
\;\;\;\;0.0625 + \frac{0.015625}{i \cdot i}\\
\mathbf{elif}\;\beta \leq 5.5 \cdot 10^{+96} \lor \neg \left(\beta \leq 4.9 \cdot 10^{+171}\right):\\
\;\;\;\;\frac{\frac{i}{1 + t_0}}{\frac{t_0 + -1}{i + \alpha}}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{i}{\beta + i \cdot 2} \cdot 0.5\right) \cdot 0.25\\
\end{array}
if beta < 4.4000000000000002e82Initial program 74.54
Taylor expanded in i around inf 53.23
Simplified53.23
[Start]53.23 | \[ \frac{0.25 \cdot {i}^{2}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1}
\] |
|---|---|
*-commutative [=>]53.23 | \[ \frac{\color{blue}{{i}^{2} \cdot 0.25}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1}
\] |
unpow2 [=>]53.23 | \[ \frac{\color{blue}{\left(i \cdot i\right)} \cdot 0.25}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1}
\] |
Taylor expanded in i around inf 53.23
Simplified53.23
[Start]53.23 | \[ \frac{\left(i \cdot i\right) \cdot 0.25}{4 \cdot {i}^{2} - 1}
\] |
|---|---|
*-commutative [=>]53.23 | \[ \frac{\left(i \cdot i\right) \cdot 0.25}{\color{blue}{{i}^{2} \cdot 4} - 1}
\] |
unpow2 [=>]53.23 | \[ \frac{\left(i \cdot i\right) \cdot 0.25}{\color{blue}{\left(i \cdot i\right)} \cdot 4 - 1}
\] |
Taylor expanded in i around inf 3.49
Simplified3.49
[Start]3.49 | \[ 0.0625 + 0.015625 \cdot \frac{1}{{i}^{2}}
\] |
|---|---|
associate-*r/ [=>]3.49 | \[ 0.0625 + \color{blue}{\frac{0.015625 \cdot 1}{{i}^{2}}}
\] |
metadata-eval [=>]3.49 | \[ 0.0625 + \frac{\color{blue}{0.015625}}{{i}^{2}}
\] |
unpow2 [=>]3.49 | \[ 0.0625 + \frac{0.015625}{\color{blue}{i \cdot i}}
\] |
if 4.4000000000000002e82 < beta < 5.5000000000000002e96 or 4.8999999999999998e171 < beta Initial program 98.61
Taylor expanded in beta around inf 73.44
Applied egg-rr53.4
Simplified23.78
[Start]53.4 | \[ \frac{1}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + 1} \cdot \frac{i \cdot \left(i + \alpha\right)}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + -1}
\] |
|---|---|
associate-*r/ [=>]53.4 | \[ \color{blue}{\frac{\frac{1}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + 1} \cdot \left(i \cdot \left(i + \alpha\right)\right)}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + -1}}
\] |
associate-*l/ [=>]53.36 | \[ \frac{\color{blue}{\frac{1 \cdot \left(i \cdot \left(i + \alpha\right)\right)}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + 1}}}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + -1}
\] |
distribute-lft-in [=>]53.36 | \[ \frac{\frac{1 \cdot \color{blue}{\left(i \cdot i + i \cdot \alpha\right)}}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + 1}}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + -1}
\] |
distribute-rgt-out [<=]53.36 | \[ \frac{\frac{\color{blue}{\left(i \cdot i\right) \cdot 1 + \left(i \cdot \alpha\right) \cdot 1}}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + 1}}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + -1}
\] |
*-rgt-identity [=>]53.36 | \[ \frac{\frac{\color{blue}{i \cdot i} + \left(i \cdot \alpha\right) \cdot 1}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + 1}}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + -1}
\] |
*-rgt-identity [=>]53.36 | \[ \frac{\frac{i \cdot i + \color{blue}{i \cdot \alpha}}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + 1}}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + -1}
\] |
distribute-lft-in [<=]53.36 | \[ \frac{\frac{\color{blue}{i \cdot \left(i + \alpha\right)}}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + 1}}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + -1}
\] |
associate-*l/ [<=]23.76 | \[ \frac{\color{blue}{\frac{i}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + 1} \cdot \left(i + \alpha\right)}}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + -1}
\] |
associate-/l* [=>]23.78 | \[ \color{blue}{\frac{\frac{i}{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + 1}}{\frac{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + -1}{i + \alpha}}}
\] |
+-commutative [=>]23.78 | \[ \frac{\frac{i}{\color{blue}{1 + \mathsf{fma}\left(i, 2, \alpha + \beta\right)}}}{\frac{\mathsf{fma}\left(i, 2, \alpha + \beta\right) + -1}{i + \alpha}}
\] |
+-commutative [=>]23.78 | \[ \frac{\frac{i}{1 + \mathsf{fma}\left(i, 2, \alpha + \beta\right)}}{\frac{\color{blue}{-1 + \mathsf{fma}\left(i, 2, \alpha + \beta\right)}}{i + \alpha}}
\] |
if 5.5000000000000002e96 < beta < 4.8999999999999998e171Initial program 94.17
Simplified63.82
[Start]94.17 | \[ \frac{\frac{\left(i \cdot \left(\left(\alpha + \beta\right) + i\right)\right) \cdot \left(\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1}
\] |
|---|---|
associate-/r* [<=]99.65 | \[ \color{blue}{\frac{\left(i \cdot \left(\left(\alpha + \beta\right) + i\right)\right) \cdot \left(\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}{\left(\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)\right) \cdot \left(\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1\right)}}
\] |
times-frac [=>]63.92 | \[ \color{blue}{\frac{i \cdot \left(\left(\alpha + \beta\right) + i\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)} \cdot \frac{\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1}}
\] |
Taylor expanded in i around inf 41.75
Taylor expanded in i around inf 42.5
Taylor expanded in alpha around 0 42.5
Final simplification14.59
| Alternative 1 | |
|---|---|
| Error | 15.32% |
| Cost | 1100 |
| Alternative 2 | |
|---|---|
| Error | 15.27% |
| Cost | 972 |
| Alternative 3 | |
|---|---|
| Error | 15.14% |
| Cost | 972 |
| Alternative 4 | |
|---|---|
| Error | 17.64% |
| Cost | 845 |
| Alternative 5 | |
|---|---|
| Error | 17.32% |
| Cost | 845 |
| Alternative 6 | |
|---|---|
| Error | 24.58% |
| Cost | 580 |
| Alternative 7 | |
|---|---|
| Error | 29.5% |
| Cost | 64 |
herbie shell --seed 2023102
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/4"
:precision binary64
:pre (and (and (> alpha -1.0) (> beta -1.0)) (> i 1.0))
(/ (/ (* (* i (+ (+ alpha beta) i)) (+ (* beta alpha) (* i (+ (+ alpha beta) i)))) (* (+ (+ alpha beta) (* 2.0 i)) (+ (+ alpha beta) (* 2.0 i)))) (- (* (+ (+ alpha beta) (* 2.0 i)) (+ (+ alpha beta) (* 2.0 i))) 1.0)))