| Alternative 1 | |
|---|---|
| Error | 10.2 |
| Cost | 2252 |
(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 (+ (+ alpha beta) (* 2.0 i)))
(t_1 (* t_0 t_0))
(t_2 (* i (+ (+ alpha beta) i)))
(t_3 (* 0.125 (/ beta i)))
(t_4 (+ alpha (+ (+ beta i) i))))
(if (<= (/ (/ (* t_2 (+ (* beta alpha) t_2)) t_1) (- t_1 1.0)) INFINITY)
(/
(/ (+ (* beta alpha) (* i (+ beta (+ alpha i)))) (- 1.0 (* t_4 t_4)))
(* -1.0 (* (+ (* i 2.0) beta) (+ (/ 1.0 (+ i beta)) (/ 1.0 i)))))
(- (+ 0.0625 t_3) t_3))))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 = (alpha + beta) + (2.0 * i);
double t_1 = t_0 * t_0;
double t_2 = i * ((alpha + beta) + i);
double t_3 = 0.125 * (beta / i);
double t_4 = alpha + ((beta + i) + i);
double tmp;
if ((((t_2 * ((beta * alpha) + t_2)) / t_1) / (t_1 - 1.0)) <= ((double) INFINITY)) {
tmp = (((beta * alpha) + (i * (beta + (alpha + i)))) / (1.0 - (t_4 * t_4))) / (-1.0 * (((i * 2.0) + beta) * ((1.0 / (i + beta)) + (1.0 / i))));
} else {
tmp = (0.0625 + t_3) - t_3;
}
return tmp;
}
public static 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);
}
public static double code(double alpha, double beta, double i) {
double t_0 = (alpha + beta) + (2.0 * i);
double t_1 = t_0 * t_0;
double t_2 = i * ((alpha + beta) + i);
double t_3 = 0.125 * (beta / i);
double t_4 = alpha + ((beta + i) + i);
double tmp;
if ((((t_2 * ((beta * alpha) + t_2)) / t_1) / (t_1 - 1.0)) <= Double.POSITIVE_INFINITY) {
tmp = (((beta * alpha) + (i * (beta + (alpha + i)))) / (1.0 - (t_4 * t_4))) / (-1.0 * (((i * 2.0) + beta) * ((1.0 / (i + beta)) + (1.0 / i))));
} else {
tmp = (0.0625 + t_3) - t_3;
}
return tmp;
}
def code(alpha, beta, 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)
def code(alpha, beta, i): t_0 = (alpha + beta) + (2.0 * i) t_1 = t_0 * t_0 t_2 = i * ((alpha + beta) + i) t_3 = 0.125 * (beta / i) t_4 = alpha + ((beta + i) + i) tmp = 0 if (((t_2 * ((beta * alpha) + t_2)) / t_1) / (t_1 - 1.0)) <= math.inf: tmp = (((beta * alpha) + (i * (beta + (alpha + i)))) / (1.0 - (t_4 * t_4))) / (-1.0 * (((i * 2.0) + beta) * ((1.0 / (i + beta)) + (1.0 / i)))) else: tmp = (0.0625 + t_3) - t_3 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 = Float64(Float64(alpha + beta) + Float64(2.0 * i)) t_1 = Float64(t_0 * t_0) t_2 = Float64(i * Float64(Float64(alpha + beta) + i)) t_3 = Float64(0.125 * Float64(beta / i)) t_4 = Float64(alpha + Float64(Float64(beta + i) + i)) tmp = 0.0 if (Float64(Float64(Float64(t_2 * Float64(Float64(beta * alpha) + t_2)) / t_1) / Float64(t_1 - 1.0)) <= Inf) tmp = Float64(Float64(Float64(Float64(beta * alpha) + Float64(i * Float64(beta + Float64(alpha + i)))) / Float64(1.0 - Float64(t_4 * t_4))) / Float64(-1.0 * Float64(Float64(Float64(i * 2.0) + beta) * Float64(Float64(1.0 / Float64(i + beta)) + Float64(1.0 / i))))); else tmp = Float64(Float64(0.0625 + t_3) - t_3); end return tmp end
function tmp = code(alpha, beta, i) tmp = (((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); end
function tmp_2 = code(alpha, beta, i) t_0 = (alpha + beta) + (2.0 * i); t_1 = t_0 * t_0; t_2 = i * ((alpha + beta) + i); t_3 = 0.125 * (beta / i); t_4 = alpha + ((beta + i) + i); tmp = 0.0; if ((((t_2 * ((beta * alpha) + t_2)) / t_1) / (t_1 - 1.0)) <= Inf) tmp = (((beta * alpha) + (i * (beta + (alpha + i)))) / (1.0 - (t_4 * t_4))) / (-1.0 * (((i * 2.0) + beta) * ((1.0 / (i + beta)) + (1.0 / i)))); else tmp = (0.0625 + t_3) - t_3; end tmp_2 = 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[(N[(alpha + beta), $MachinePrecision] + N[(2.0 * i), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(t$95$0 * t$95$0), $MachinePrecision]}, Block[{t$95$2 = N[(i * N[(N[(alpha + beta), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(0.125 * N[(beta / i), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(alpha + N[(N[(beta + i), $MachinePrecision] + i), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(N[(N[(t$95$2 * N[(N[(beta * alpha), $MachinePrecision] + t$95$2), $MachinePrecision]), $MachinePrecision] / t$95$1), $MachinePrecision] / N[(t$95$1 - 1.0), $MachinePrecision]), $MachinePrecision], Infinity], N[(N[(N[(N[(beta * alpha), $MachinePrecision] + N[(i * N[(beta + N[(alpha + i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(1.0 - N[(t$95$4 * t$95$4), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(-1.0 * N[(N[(N[(i * 2.0), $MachinePrecision] + beta), $MachinePrecision] * N[(N[(1.0 / N[(i + beta), $MachinePrecision]), $MachinePrecision] + N[(1.0 / i), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(0.0625 + t$95$3), $MachinePrecision] - t$95$3), $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 := \left(\alpha + \beta\right) + 2 \cdot i\\
t_1 := t_0 \cdot t_0\\
t_2 := i \cdot \left(\left(\alpha + \beta\right) + i\right)\\
t_3 := 0.125 \cdot \frac{\beta}{i}\\
t_4 := \alpha + \left(\left(\beta + i\right) + i\right)\\
\mathbf{if}\;\frac{\frac{t_2 \cdot \left(\beta \cdot \alpha + t_2\right)}{t_1}}{t_1 - 1} \leq \infty:\\
\;\;\;\;\frac{\frac{\beta \cdot \alpha + i \cdot \left(\beta + \left(\alpha + i\right)\right)}{1 - t_4 \cdot t_4}}{-1 \cdot \left(\left(i \cdot 2 + \beta\right) \cdot \left(\frac{1}{i + \beta} + \frac{1}{i}\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\left(0.0625 + t_3\right) - t_3\\
\end{array}
Results
if (/.f64 (/.f64 (*.f64 (*.f64 i (+.f64 (+.f64 alpha beta) i)) (+.f64 (*.f64 beta alpha) (*.f64 i (+.f64 (+.f64 alpha beta) i)))) (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i)))) (-.f64 (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i))) 1)) < +inf.0Initial program 34.9
Simplified36.6
[Start]34.9 | \[ \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}
\] |
|---|---|
rational.json-simplify-47 [=>]37.7 | \[ \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)}}
\] |
rational.json-simplify-2 [=>]37.7 | \[ \frac{\color{blue}{\left(\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)\right) \cdot \left(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)}
\] |
rational.json-simplify-49 [=>]36.6 | \[ \color{blue}{\left(i \cdot \left(\left(\alpha + \beta\right) + i\right)\right) \cdot \frac{\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\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)}}
\] |
rational.json-simplify-1 [=>]36.6 | \[ \left(i \cdot \color{blue}{\left(i + \left(\alpha + \beta\right)\right)}\right) \cdot \frac{\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\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)}
\] |
Applied egg-rr0.2
Simplified0.3
[Start]0.2 | \[ \frac{\frac{-\left(i \cdot \left(i + \left(\alpha + \beta\right)\right) + \alpha \cdot \beta\right)}{\left(i + \left(i + \left(\alpha + \beta\right)\right)\right) \cdot \left(i + \left(i + \left(\alpha + \beta\right)\right)\right) + -1}}{\frac{-\left(i + \left(i + \left(\alpha + \beta\right)\right)\right) \cdot \left(i + \left(i + \left(\alpha + \beta\right)\right)\right)}{i \cdot \left(i + \left(\alpha + \beta\right)\right)}}
\] |
|---|
Taylor expanded in alpha around 0 0.4
Simplified0.4
[Start]0.4 | \[ \frac{\frac{\beta \cdot \alpha + i \cdot \left(\beta + \left(\alpha + i\right)\right)}{1 - \left(\alpha + \left(\left(\beta + i\right) + i\right)\right) \cdot \left(\alpha + \left(\left(\beta + i\right) + i\right)\right)}}{-1 \cdot \left(\left(\beta + 2 \cdot i\right) \cdot \left(\frac{1}{\beta + i} + \frac{1}{i}\right)\right)}
\] |
|---|---|
rational.json-simplify-1 [=>]0.4 | \[ \frac{\frac{\beta \cdot \alpha + i \cdot \left(\beta + \left(\alpha + i\right)\right)}{1 - \left(\alpha + \left(\left(\beta + i\right) + i\right)\right) \cdot \left(\alpha + \left(\left(\beta + i\right) + i\right)\right)}}{-1 \cdot \left(\color{blue}{\left(2 \cdot i + \beta\right)} \cdot \left(\frac{1}{\beta + i} + \frac{1}{i}\right)\right)}
\] |
rational.json-simplify-2 [=>]0.4 | \[ \frac{\frac{\beta \cdot \alpha + i \cdot \left(\beta + \left(\alpha + i\right)\right)}{1 - \left(\alpha + \left(\left(\beta + i\right) + i\right)\right) \cdot \left(\alpha + \left(\left(\beta + i\right) + i\right)\right)}}{-1 \cdot \left(\left(\color{blue}{i \cdot 2} + \beta\right) \cdot \left(\frac{1}{\beta + i} + \frac{1}{i}\right)\right)}
\] |
rational.json-simplify-1 [=>]0.4 | \[ \frac{\frac{\beta \cdot \alpha + i \cdot \left(\beta + \left(\alpha + i\right)\right)}{1 - \left(\alpha + \left(\left(\beta + i\right) + i\right)\right) \cdot \left(\alpha + \left(\left(\beta + i\right) + i\right)\right)}}{-1 \cdot \left(\left(i \cdot 2 + \beta\right) \cdot \left(\frac{1}{\color{blue}{i + \beta}} + \frac{1}{i}\right)\right)}
\] |
if +inf.0 < (/.f64 (/.f64 (*.f64 (*.f64 i (+.f64 (+.f64 alpha beta) i)) (+.f64 (*.f64 beta alpha) (*.f64 i (+.f64 (+.f64 alpha beta) i)))) (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i)))) (-.f64 (*.f64 (+.f64 (+.f64 alpha beta) (*.f64 2 i)) (+.f64 (+.f64 alpha beta) (*.f64 2 i))) 1)) Initial program 64.0
Simplified60.8
[Start]64.0 | \[ \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}
\] |
|---|---|
rational.json-simplify-49 [=>]60.8 | \[ \frac{\color{blue}{\left(\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)\right) \cdot \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)}}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1}
\] |
rational.json-simplify-49 [=>]60.8 | \[ \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 15.7
Simplified15.7
[Start]15.7 | \[ \left(0.0625 + 0.0625 \cdot \frac{2 \cdot \beta + 2 \cdot \alpha}{i}\right) - 0.125 \cdot \frac{\beta + \alpha}{i}
\] |
|---|---|
rational.json-simplify-2 [=>]15.7 | \[ \left(0.0625 + 0.0625 \cdot \frac{\color{blue}{\beta \cdot 2} + 2 \cdot \alpha}{i}\right) - 0.125 \cdot \frac{\beta + \alpha}{i}
\] |
rational.json-simplify-2 [=>]15.7 | \[ \left(0.0625 + 0.0625 \cdot \frac{\beta \cdot 2 + \color{blue}{\alpha \cdot 2}}{i}\right) - 0.125 \cdot \frac{\beta + \alpha}{i}
\] |
Taylor expanded in beta around inf 15.7
Taylor expanded in i around 0 15.7
Taylor expanded in beta around inf 15.7
Final simplification10.2
| Alternative 1 | |
|---|---|
| Error | 10.2 |
| Cost | 2252 |
| Alternative 2 | |
|---|---|
| Error | 10.3 |
| Cost | 2188 |
| Alternative 3 | |
|---|---|
| Error | 10.2 |
| Cost | 2188 |
| Alternative 4 | |
|---|---|
| Error | 10.4 |
| Cost | 1352 |
| Alternative 5 | |
|---|---|
| Error | 10.4 |
| Cost | 1228 |
| Alternative 6 | |
|---|---|
| Error | 16.1 |
| Cost | 844 |
| Alternative 7 | |
|---|---|
| Error | 9.4 |
| Cost | 836 |
| Alternative 8 | |
|---|---|
| Error | 9.4 |
| Cost | 708 |
| Alternative 9 | |
|---|---|
| Error | 16.0 |
| Cost | 580 |
| Alternative 10 | |
|---|---|
| Error | 16.7 |
| Cost | 324 |
| Alternative 11 | |
|---|---|
| Error | 19.0 |
| Cost | 64 |
herbie shell --seed 2023073
(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)))