| Alternative 1 | |
|---|---|
| Accuracy | 93.0% |
| Cost | 20624 |
(FPCore (t l k) :precision binary64 (/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (- (+ 1.0 (pow (/ k t) 2.0)) 1.0))))
(FPCore (t l k) :precision binary64 (let* ((t_1 (/ (/ l k) (sin k)))) (* 2.0 (* (/ t_1 t) (/ t_1 (/ 1.0 (cos k)))))))
double code(double t, double l, double k) {
return 2.0 / ((((pow(t, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t), 2.0)) - 1.0));
}
double code(double t, double l, double k) {
double t_1 = (l / k) / sin(k);
return 2.0 * ((t_1 / t) * (t_1 / (1.0 / cos(k))));
}
real(8) function code(t, l, k)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k
code = 2.0d0 / (((((t ** 3.0d0) / (l * l)) * sin(k)) * tan(k)) * ((1.0d0 + ((k / t) ** 2.0d0)) - 1.0d0))
end function
real(8) function code(t, l, k)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: t_1
t_1 = (l / k) / sin(k)
code = 2.0d0 * ((t_1 / t) * (t_1 / (1.0d0 / cos(k))))
end function
public static double code(double t, double l, double k) {
return 2.0 / ((((Math.pow(t, 3.0) / (l * l)) * Math.sin(k)) * Math.tan(k)) * ((1.0 + Math.pow((k / t), 2.0)) - 1.0));
}
public static double code(double t, double l, double k) {
double t_1 = (l / k) / Math.sin(k);
return 2.0 * ((t_1 / t) * (t_1 / (1.0 / Math.cos(k))));
}
def code(t, l, k): return 2.0 / ((((math.pow(t, 3.0) / (l * l)) * math.sin(k)) * math.tan(k)) * ((1.0 + math.pow((k / t), 2.0)) - 1.0))
def code(t, l, k): t_1 = (l / k) / math.sin(k) return 2.0 * ((t_1 / t) * (t_1 / (1.0 / math.cos(k))))
function code(t, l, k) return Float64(2.0 / Float64(Float64(Float64(Float64((t ^ 3.0) / Float64(l * l)) * sin(k)) * tan(k)) * Float64(Float64(1.0 + (Float64(k / t) ^ 2.0)) - 1.0))) end
function code(t, l, k) t_1 = Float64(Float64(l / k) / sin(k)) return Float64(2.0 * Float64(Float64(t_1 / t) * Float64(t_1 / Float64(1.0 / cos(k))))) end
function tmp = code(t, l, k) tmp = 2.0 / (((((t ^ 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + ((k / t) ^ 2.0)) - 1.0)); end
function tmp = code(t, l, k) t_1 = (l / k) / sin(k); tmp = 2.0 * ((t_1 / t) * (t_1 / (1.0 / cos(k)))); end
code[t_, l_, k_] := N[(2.0 / N[(N[(N[(N[(N[Power[t, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[(1.0 + N[Power[N[(k / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[t_, l_, k_] := Block[{t$95$1 = N[(N[(l / k), $MachinePrecision] / N[Sin[k], $MachinePrecision]), $MachinePrecision]}, N[(2.0 * N[(N[(t$95$1 / t), $MachinePrecision] * N[(t$95$1 / N[(1.0 / N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)}
\begin{array}{l}
t_1 := \frac{\frac{\ell}{k}}{\sin k}\\
2 \cdot \left(\frac{t_1}{t} \cdot \frac{t_1}{\frac{1}{\cos k}}\right)
\end{array}
Results
Initial program 25.1%
Simplified36.9%
[Start]25.1 | \[ \frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)}
\] |
|---|---|
+-rgt-identity [<=]25.1 | \[ \frac{2}{\color{blue}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right) + 0}}
\] |
associate-*l* [=>]25.1 | \[ \frac{2}{\color{blue}{\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \left(\tan k \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)\right)} + 0}
\] |
mul0-rgt [<=]9.6 | \[ \frac{2}{\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \left(\tan k \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)\right) + \color{blue}{\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot 0}}
\] |
distribute-lft-in [<=]25.1 | \[ \frac{2}{\color{blue}{\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \left(\tan k \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right) + 0\right)}}
\] |
+-rgt-identity [=>]25.1 | \[ \frac{2}{\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \color{blue}{\left(\tan k \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)\right)}}
\] |
sub-neg [=>]25.1 | \[ \frac{2}{\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \left(\tan k \cdot \color{blue}{\left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + \left(-1\right)\right)}\right)}
\] |
+-commutative [=>]25.1 | \[ \frac{2}{\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \left(\tan k \cdot \left(\color{blue}{\left({\left(\frac{k}{t}\right)}^{2} + 1\right)} + \left(-1\right)\right)\right)}
\] |
associate-+l+ [=>]36.9 | \[ \frac{2}{\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \left(\tan k \cdot \color{blue}{\left({\left(\frac{k}{t}\right)}^{2} + \left(1 + \left(-1\right)\right)\right)}\right)}
\] |
metadata-eval [=>]36.9 | \[ \frac{2}{\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \left(\tan k \cdot \left({\left(\frac{k}{t}\right)}^{2} + \left(1 + \color{blue}{-1}\right)\right)\right)}
\] |
metadata-eval [=>]36.9 | \[ \frac{2}{\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \left(\tan k \cdot \left({\left(\frac{k}{t}\right)}^{2} + \color{blue}{0}\right)\right)}
\] |
+-rgt-identity [=>]36.9 | \[ \frac{2}{\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \left(\tan k \cdot \color{blue}{{\left(\frac{k}{t}\right)}^{2}}\right)}
\] |
Taylor expanded in t around 0 65.0%
Simplified63.1%
[Start]65.0 | \[ 2 \cdot \frac{\cos k \cdot {\ell}^{2}}{{k}^{2} \cdot \left({\sin k}^{2} \cdot t\right)}
\] |
|---|---|
unpow2 [=>]65.0 | \[ 2 \cdot \frac{\cos k \cdot \color{blue}{\left(\ell \cdot \ell\right)}}{{k}^{2} \cdot \left({\sin k}^{2} \cdot t\right)}
\] |
*-commutative [=>]65.0 | \[ 2 \cdot \frac{\color{blue}{\left(\ell \cdot \ell\right) \cdot \cos k}}{{k}^{2} \cdot \left({\sin k}^{2} \cdot t\right)}
\] |
associate-*r* [=>]63.1 | \[ 2 \cdot \frac{\left(\ell \cdot \ell\right) \cdot \cos k}{\color{blue}{\left({k}^{2} \cdot {\sin k}^{2}\right) \cdot t}}
\] |
times-frac [=>]63.1 | \[ 2 \cdot \color{blue}{\left(\frac{\ell \cdot \ell}{{k}^{2} \cdot {\sin k}^{2}} \cdot \frac{\cos k}{t}\right)}
\] |
unpow2 [=>]63.1 | \[ 2 \cdot \left(\frac{\ell \cdot \ell}{\color{blue}{\left(k \cdot k\right)} \cdot {\sin k}^{2}} \cdot \frac{\cos k}{t}\right)
\] |
associate-*l* [=>]63.1 | \[ 2 \cdot \left(\frac{\ell \cdot \ell}{\color{blue}{k \cdot \left(k \cdot {\sin k}^{2}\right)}} \cdot \frac{\cos k}{t}\right)
\] |
Taylor expanded in l around 0 63.1%
Simplified87.8%
[Start]63.1 | \[ 2 \cdot \left(\frac{{\ell}^{2}}{{k}^{2} \cdot {\sin k}^{2}} \cdot \frac{\cos k}{t}\right)
\] |
|---|---|
unpow2 [=>]63.1 | \[ 2 \cdot \left(\frac{\color{blue}{\ell \cdot \ell}}{{k}^{2} \cdot {\sin k}^{2}} \cdot \frac{\cos k}{t}\right)
\] |
unpow2 [=>]63.1 | \[ 2 \cdot \left(\frac{\ell \cdot \ell}{\color{blue}{\left(k \cdot k\right)} \cdot {\sin k}^{2}} \cdot \frac{\cos k}{t}\right)
\] |
unpow2 [=>]63.1 | \[ 2 \cdot \left(\frac{\ell \cdot \ell}{\left(k \cdot k\right) \cdot \color{blue}{\left(\sin k \cdot \sin k\right)}} \cdot \frac{\cos k}{t}\right)
\] |
swap-sqr [<=]63.1 | \[ 2 \cdot \left(\frac{\ell \cdot \ell}{\color{blue}{\left(k \cdot \sin k\right) \cdot \left(k \cdot \sin k\right)}} \cdot \frac{\cos k}{t}\right)
\] |
times-frac [=>]87.8 | \[ 2 \cdot \left(\color{blue}{\left(\frac{\ell}{k \cdot \sin k} \cdot \frac{\ell}{k \cdot \sin k}\right)} \cdot \frac{\cos k}{t}\right)
\] |
unpow2 [<=]87.8 | \[ 2 \cdot \left(\color{blue}{{\left(\frac{\ell}{k \cdot \sin k}\right)}^{2}} \cdot \frac{\cos k}{t}\right)
\] |
Applied egg-rr89.3%
[Start]87.8 | \[ 2 \cdot \left({\left(\frac{\ell}{k \cdot \sin k}\right)}^{2} \cdot \frac{\cos k}{t}\right)
\] |
|---|---|
clear-num [=>]87.8 | \[ 2 \cdot \left({\left(\frac{\ell}{k \cdot \sin k}\right)}^{2} \cdot \color{blue}{\frac{1}{\frac{t}{\cos k}}}\right)
\] |
un-div-inv [=>]87.9 | \[ 2 \cdot \color{blue}{\frac{{\left(\frac{\ell}{k \cdot \sin k}\right)}^{2}}{\frac{t}{\cos k}}}
\] |
associate-/r* [=>]89.3 | \[ 2 \cdot \frac{{\color{blue}{\left(\frac{\frac{\ell}{k}}{\sin k}\right)}}^{2}}{\frac{t}{\cos k}}
\] |
Applied egg-rr99.3%
[Start]89.3 | \[ 2 \cdot \frac{{\left(\frac{\frac{\ell}{k}}{\sin k}\right)}^{2}}{\frac{t}{\cos k}}
\] |
|---|---|
unpow2 [=>]89.3 | \[ 2 \cdot \frac{\color{blue}{\frac{\frac{\ell}{k}}{\sin k} \cdot \frac{\frac{\ell}{k}}{\sin k}}}{\frac{t}{\cos k}}
\] |
div-inv [=>]89.3 | \[ 2 \cdot \frac{\frac{\frac{\ell}{k}}{\sin k} \cdot \frac{\frac{\ell}{k}}{\sin k}}{\color{blue}{t \cdot \frac{1}{\cos k}}}
\] |
times-frac [=>]99.3 | \[ 2 \cdot \color{blue}{\left(\frac{\frac{\frac{\ell}{k}}{\sin k}}{t} \cdot \frac{\frac{\frac{\ell}{k}}{\sin k}}{\frac{1}{\cos k}}\right)}
\] |
Final simplification99.3%
| Alternative 1 | |
|---|---|
| Accuracy | 93.0% |
| Cost | 20624 |
| Alternative 2 | |
|---|---|
| Accuracy | 93.0% |
| Cost | 20496 |
| Alternative 3 | |
|---|---|
| Accuracy | 93.1% |
| Cost | 20496 |
| Alternative 4 | |
|---|---|
| Accuracy | 99.3% |
| Cost | 20288 |
| Alternative 5 | |
|---|---|
| Accuracy | 79.5% |
| Cost | 14600 |
| Alternative 6 | |
|---|---|
| Accuracy | 79.4% |
| Cost | 14280 |
| Alternative 7 | |
|---|---|
| Accuracy | 79.8% |
| Cost | 14280 |
| Alternative 8 | |
|---|---|
| Accuracy | 63.8% |
| Cost | 7424 |
| Alternative 9 | |
|---|---|
| Accuracy | 63.9% |
| Cost | 960 |
| Alternative 10 | |
|---|---|
| Accuracy | 49.5% |
| Cost | 832 |
herbie shell --seed 2023146
(FPCore (t l k)
:name "Toniolo and Linder, Equation (10-)"
:precision binary64
(/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (- (+ 1.0 (pow (/ k t) 2.0)) 1.0))))