| Alternative 1 | |
|---|---|
| Accuracy | 75.1% |
| Cost | 8268 |

(FPCore (w0 M D h l d) :precision binary64 (* w0 (sqrt (- 1.0 (* (pow (/ (* M D) (* 2.0 d)) 2.0) (/ h l))))))
(FPCore (w0 M D h l d) :precision binary64 (let* ((t_0 (* 0.5 (/ (* D M) d)))) (* w0 (sqrt (- 1.0 (/ (* t_0 (* t_0 h)) l))))))
double code(double w0, double M, double D, double h, double l, double d) {
return w0 * sqrt((1.0 - (pow(((M * D) / (2.0 * d)), 2.0) * (h / l))));
}
double code(double w0, double M, double D, double h, double l, double d) {
double t_0 = 0.5 * ((D * M) / d);
return w0 * sqrt((1.0 - ((t_0 * (t_0 * h)) / l)));
}
real(8) function code(w0, m, d, h, l, d_1)
real(8), intent (in) :: w0
real(8), intent (in) :: m
real(8), intent (in) :: d
real(8), intent (in) :: h
real(8), intent (in) :: l
real(8), intent (in) :: d_1
code = w0 * sqrt((1.0d0 - ((((m * d) / (2.0d0 * d_1)) ** 2.0d0) * (h / l))))
end function
real(8) function code(w0, m, d, h, l, d_1)
real(8), intent (in) :: w0
real(8), intent (in) :: m
real(8), intent (in) :: d
real(8), intent (in) :: h
real(8), intent (in) :: l
real(8), intent (in) :: d_1
real(8) :: t_0
t_0 = 0.5d0 * ((d * m) / d_1)
code = w0 * sqrt((1.0d0 - ((t_0 * (t_0 * h)) / l)))
end function
public static double code(double w0, double M, double D, double h, double l, double d) {
return w0 * Math.sqrt((1.0 - (Math.pow(((M * D) / (2.0 * d)), 2.0) * (h / l))));
}
public static double code(double w0, double M, double D, double h, double l, double d) {
double t_0 = 0.5 * ((D * M) / d);
return w0 * Math.sqrt((1.0 - ((t_0 * (t_0 * h)) / l)));
}
def code(w0, M, D, h, l, d): return w0 * math.sqrt((1.0 - (math.pow(((M * D) / (2.0 * d)), 2.0) * (h / l))))
def code(w0, M, D, h, l, d): t_0 = 0.5 * ((D * M) / d) return w0 * math.sqrt((1.0 - ((t_0 * (t_0 * h)) / l)))
function code(w0, M, D, h, l, d) return Float64(w0 * sqrt(Float64(1.0 - Float64((Float64(Float64(M * D) / Float64(2.0 * d)) ^ 2.0) * Float64(h / l))))) end
function code(w0, M, D, h, l, d) t_0 = Float64(0.5 * Float64(Float64(D * M) / d)) return Float64(w0 * sqrt(Float64(1.0 - Float64(Float64(t_0 * Float64(t_0 * h)) / l)))) end
function tmp = code(w0, M, D, h, l, d) tmp = w0 * sqrt((1.0 - ((((M * D) / (2.0 * d)) ^ 2.0) * (h / l)))); end
function tmp = code(w0, M, D, h, l, d) t_0 = 0.5 * ((D * M) / d); tmp = w0 * sqrt((1.0 - ((t_0 * (t_0 * h)) / l))); end
code[w0_, M_, D_, h_, l_, d_] := N[(w0 * N[Sqrt[N[(1.0 - N[(N[Power[N[(N[(M * D), $MachinePrecision] / N[(2.0 * d), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] * N[(h / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
code[w0_, M_, D_, h_, l_, d_] := Block[{t$95$0 = N[(0.5 * N[(N[(D * M), $MachinePrecision] / d), $MachinePrecision]), $MachinePrecision]}, N[(w0 * N[Sqrt[N[(1.0 - N[(N[(t$95$0 * N[(t$95$0 * h), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]]
w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}
\begin{array}{l}
t_0 := 0.5 \cdot \frac{D \cdot M}{d}\\
w0 \cdot \sqrt{1 - \frac{t_0 \cdot \left(t_0 \cdot h\right)}{\ell}}
\end{array}
Herbie found 13 alternatives:
| Alternative | Accuracy | Speedup |
|---|
Results
Initial program 82.3%
Applied egg-rr85.6%
[Start]82.3 | \[ w0 \cdot \sqrt{1 - {\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot \frac{h}{\ell}}
\] |
|---|---|
associate-*r/ [=>]85.5 | \[ w0 \cdot \sqrt{1 - \color{blue}{\frac{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot h}{\ell}}}
\] |
clear-num [=>]85.6 | \[ w0 \cdot \sqrt{1 - \color{blue}{\frac{1}{\frac{\ell}{{\left(\frac{M \cdot D}{2 \cdot d}\right)}^{2} \cdot h}}}}
\] |
div-inv [=>]85.2 | \[ w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{{\color{blue}{\left(\left(M \cdot D\right) \cdot \frac{1}{2 \cdot d}\right)}}^{2} \cdot h}}}
\] |
associate-*l* [=>]85.6 | \[ w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{{\color{blue}{\left(M \cdot \left(D \cdot \frac{1}{2 \cdot d}\right)\right)}}^{2} \cdot h}}}
\] |
associate-/r* [=>]85.6 | \[ w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{{\left(M \cdot \left(D \cdot \color{blue}{\frac{\frac{1}{2}}{d}}\right)\right)}^{2} \cdot h}}}
\] |
metadata-eval [=>]85.6 | \[ w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{{\left(M \cdot \left(D \cdot \frac{\color{blue}{0.5}}{d}\right)\right)}^{2} \cdot h}}}
\] |
Simplified85.2%
[Start]85.6 | \[ w0 \cdot \sqrt{1 - \frac{1}{\frac{\ell}{{\left(M \cdot \left(D \cdot \frac{0.5}{d}\right)\right)}^{2} \cdot h}}}
\] |
|---|---|
associate-/r/ [=>]85.6 | \[ w0 \cdot \sqrt{1 - \color{blue}{\frac{1}{\ell} \cdot \left({\left(M \cdot \left(D \cdot \frac{0.5}{d}\right)\right)}^{2} \cdot h\right)}}
\] |
*-commutative [=>]85.6 | \[ w0 \cdot \sqrt{1 - \color{blue}{\left({\left(M \cdot \left(D \cdot \frac{0.5}{d}\right)\right)}^{2} \cdot h\right) \cdot \frac{1}{\ell}}}
\] |
*-commutative [=>]85.6 | \[ w0 \cdot \sqrt{1 - \color{blue}{\left(h \cdot {\left(M \cdot \left(D \cdot \frac{0.5}{d}\right)\right)}^{2}\right)} \cdot \frac{1}{\ell}}
\] |
*-commutative [=>]85.6 | \[ w0 \cdot \sqrt{1 - \left(h \cdot {\left(M \cdot \color{blue}{\left(\frac{0.5}{d} \cdot D\right)}\right)}^{2}\right) \cdot \frac{1}{\ell}}
\] |
associate-/r/ [<=]86.0 | \[ w0 \cdot \sqrt{1 - \left(h \cdot {\left(M \cdot \color{blue}{\frac{0.5}{\frac{d}{D}}}\right)}^{2}\right) \cdot \frac{1}{\ell}}
\] |
metadata-eval [<=]86.0 | \[ w0 \cdot \sqrt{1 - \left(h \cdot {\left(M \cdot \frac{\color{blue}{\frac{1}{2}}}{\frac{d}{D}}\right)}^{2}\right) \cdot \frac{1}{\ell}}
\] |
associate-/r* [<=]86.0 | \[ w0 \cdot \sqrt{1 - \left(h \cdot {\left(M \cdot \color{blue}{\frac{1}{2 \cdot \frac{d}{D}}}\right)}^{2}\right) \cdot \frac{1}{\ell}}
\] |
associate-*r/ [=>]86.0 | \[ w0 \cdot \sqrt{1 - \left(h \cdot {\color{blue}{\left(\frac{M \cdot 1}{2 \cdot \frac{d}{D}}\right)}}^{2}\right) \cdot \frac{1}{\ell}}
\] |
*-rgt-identity [=>]86.0 | \[ w0 \cdot \sqrt{1 - \left(h \cdot {\left(\frac{\color{blue}{M}}{2 \cdot \frac{d}{D}}\right)}^{2}\right) \cdot \frac{1}{\ell}}
\] |
associate-*r/ [=>]86.0 | \[ w0 \cdot \sqrt{1 - \left(h \cdot {\left(\frac{M}{\color{blue}{\frac{2 \cdot d}{D}}}\right)}^{2}\right) \cdot \frac{1}{\ell}}
\] |
associate-/r/ [=>]85.2 | \[ w0 \cdot \sqrt{1 - \left(h \cdot {\color{blue}{\left(\frac{M}{2 \cdot d} \cdot D\right)}}^{2}\right) \cdot \frac{1}{\ell}}
\] |
*-commutative [<=]85.2 | \[ w0 \cdot \sqrt{1 - \left(h \cdot {\color{blue}{\left(D \cdot \frac{M}{2 \cdot d}\right)}}^{2}\right) \cdot \frac{1}{\ell}}
\] |
Applied egg-rr84.7%
[Start]85.2 | \[ w0 \cdot \sqrt{1 - \left(h \cdot {\left(D \cdot \frac{M}{2 \cdot d}\right)}^{2}\right) \cdot \frac{1}{\ell}}
\] |
|---|---|
expm1-log1p-u [=>]84.7 | \[ w0 \cdot \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt{1 - \left(h \cdot {\left(D \cdot \frac{M}{2 \cdot d}\right)}^{2}\right) \cdot \frac{1}{\ell}}\right)\right)}
\] |
expm1-udef [=>]84.7 | \[ w0 \cdot \color{blue}{\left(e^{\mathsf{log1p}\left(\sqrt{1 - \left(h \cdot {\left(D \cdot \frac{M}{2 \cdot d}\right)}^{2}\right) \cdot \frac{1}{\ell}}\right)} - 1\right)}
\] |
associate-*l* [=>]84.7 | \[ w0 \cdot \left(e^{\mathsf{log1p}\left(\sqrt{1 - \color{blue}{h \cdot \left({\left(D \cdot \frac{M}{2 \cdot d}\right)}^{2} \cdot \frac{1}{\ell}\right)}}\right)} - 1\right)
\] |
un-div-inv [=>]84.7 | \[ w0 \cdot \left(e^{\mathsf{log1p}\left(\sqrt{1 - h \cdot \color{blue}{\frac{{\left(D \cdot \frac{M}{2 \cdot d}\right)}^{2}}{\ell}}}\right)} - 1\right)
\] |
Simplified86.3%
[Start]84.7 | \[ w0 \cdot \left(e^{\mathsf{log1p}\left(\sqrt{1 - h \cdot \frac{{\left(D \cdot \frac{M}{2 \cdot d}\right)}^{2}}{\ell}}\right)} - 1\right)
\] |
|---|---|
expm1-def [=>]84.7 | \[ w0 \cdot \color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt{1 - h \cdot \frac{{\left(D \cdot \frac{M}{2 \cdot d}\right)}^{2}}{\ell}}\right)\right)}
\] |
expm1-log1p [=>]85.2 | \[ w0 \cdot \color{blue}{\sqrt{1 - h \cdot \frac{{\left(D \cdot \frac{M}{2 \cdot d}\right)}^{2}}{\ell}}}
\] |
associate-*r/ [=>]85.9 | \[ w0 \cdot \sqrt{1 - h \cdot \frac{{\color{blue}{\left(\frac{D \cdot M}{2 \cdot d}\right)}}^{2}}{\ell}}
\] |
*-lft-identity [<=]85.9 | \[ w0 \cdot \sqrt{1 - h \cdot \frac{{\left(\frac{\color{blue}{1 \cdot \left(D \cdot M\right)}}{2 \cdot d}\right)}^{2}}{\ell}}
\] |
associate-*l/ [<=]85.5 | \[ w0 \cdot \sqrt{1 - h \cdot \frac{{\color{blue}{\left(\frac{1}{2 \cdot d} \cdot \left(D \cdot M\right)\right)}}^{2}}{\ell}}
\] |
associate-/r/ [<=]85.9 | \[ w0 \cdot \sqrt{1 - h \cdot \frac{{\color{blue}{\left(\frac{1}{\frac{2 \cdot d}{D \cdot M}}\right)}}^{2}}{\ell}}
\] |
associate-/l* [=>]85.9 | \[ w0 \cdot \sqrt{1 - h \cdot \frac{{\left(\frac{1}{\color{blue}{\frac{2}{\frac{D \cdot M}{d}}}}\right)}^{2}}{\ell}}
\] |
associate-/r/ [=>]85.9 | \[ w0 \cdot \sqrt{1 - h \cdot \frac{{\color{blue}{\left(\frac{1}{2} \cdot \frac{D \cdot M}{d}\right)}}^{2}}{\ell}}
\] |
metadata-eval [=>]85.9 | \[ w0 \cdot \sqrt{1 - h \cdot \frac{{\left(\color{blue}{0.5} \cdot \frac{D \cdot M}{d}\right)}^{2}}{\ell}}
\] |
associate-/l* [=>]85.5 | \[ w0 \cdot \sqrt{1 - h \cdot \frac{{\left(0.5 \cdot \color{blue}{\frac{D}{\frac{d}{M}}}\right)}^{2}}{\ell}}
\] |
associate-/r/ [=>]86.3 | \[ w0 \cdot \sqrt{1 - h \cdot \frac{{\left(0.5 \cdot \color{blue}{\left(\frac{D}{d} \cdot M\right)}\right)}^{2}}{\ell}}
\] |
Applied egg-rr87.4%
[Start]86.3 | \[ w0 \cdot \sqrt{1 - h \cdot \frac{{\left(0.5 \cdot \left(\frac{D}{d} \cdot M\right)\right)}^{2}}{\ell}}
\] |
|---|---|
unpow2 [=>]86.3 | \[ w0 \cdot \sqrt{1 - h \cdot \frac{\color{blue}{\left(0.5 \cdot \left(\frac{D}{d} \cdot M\right)\right) \cdot \left(0.5 \cdot \left(\frac{D}{d} \cdot M\right)\right)}}{\ell}}
\] |
*-un-lft-identity [=>]86.3 | \[ w0 \cdot \sqrt{1 - h \cdot \frac{\left(0.5 \cdot \left(\frac{D}{d} \cdot M\right)\right) \cdot \left(0.5 \cdot \left(\frac{D}{d} \cdot M\right)\right)}{\color{blue}{1 \cdot \ell}}}
\] |
times-frac [=>]87.4 | \[ w0 \cdot \sqrt{1 - h \cdot \color{blue}{\left(\frac{0.5 \cdot \left(\frac{D}{d} \cdot M\right)}{1} \cdot \frac{0.5 \cdot \left(\frac{D}{d} \cdot M\right)}{\ell}\right)}}
\] |
*-commutative [=>]87.4 | \[ w0 \cdot \sqrt{1 - h \cdot \left(\frac{\color{blue}{\left(\frac{D}{d} \cdot M\right) \cdot 0.5}}{1} \cdot \frac{0.5 \cdot \left(\frac{D}{d} \cdot M\right)}{\ell}\right)}
\] |
associate-*l* [=>]87.4 | \[ w0 \cdot \sqrt{1 - h \cdot \left(\frac{\color{blue}{\frac{D}{d} \cdot \left(M \cdot 0.5\right)}}{1} \cdot \frac{0.5 \cdot \left(\frac{D}{d} \cdot M\right)}{\ell}\right)}
\] |
*-commutative [=>]87.4 | \[ w0 \cdot \sqrt{1 - h \cdot \left(\frac{\frac{D}{d} \cdot \left(M \cdot 0.5\right)}{1} \cdot \frac{\color{blue}{\left(\frac{D}{d} \cdot M\right) \cdot 0.5}}{\ell}\right)}
\] |
associate-*l* [=>]87.4 | \[ w0 \cdot \sqrt{1 - h \cdot \left(\frac{\frac{D}{d} \cdot \left(M \cdot 0.5\right)}{1} \cdot \frac{\color{blue}{\frac{D}{d} \cdot \left(M \cdot 0.5\right)}}{\ell}\right)}
\] |
Applied egg-rr88.5%
[Start]87.4 | \[ w0 \cdot \sqrt{1 - h \cdot \left(\frac{\frac{D}{d} \cdot \left(M \cdot 0.5\right)}{1} \cdot \frac{\frac{D}{d} \cdot \left(M \cdot 0.5\right)}{\ell}\right)}
\] |
|---|---|
/-rgt-identity [=>]87.4 | \[ w0 \cdot \sqrt{1 - h \cdot \left(\color{blue}{\left(\frac{D}{d} \cdot \left(M \cdot 0.5\right)\right)} \cdot \frac{\frac{D}{d} \cdot \left(M \cdot 0.5\right)}{\ell}\right)}
\] |
associate-*r* [=>]88.5 | \[ w0 \cdot \sqrt{1 - \color{blue}{\left(h \cdot \left(\frac{D}{d} \cdot \left(M \cdot 0.5\right)\right)\right) \cdot \frac{\frac{D}{d} \cdot \left(M \cdot 0.5\right)}{\ell}}}
\] |
associate-*r/ [=>]88.9 | \[ w0 \cdot \sqrt{1 - \color{blue}{\frac{\left(h \cdot \left(\frac{D}{d} \cdot \left(M \cdot 0.5\right)\right)\right) \cdot \left(\frac{D}{d} \cdot \left(M \cdot 0.5\right)\right)}{\ell}}}
\] |
*-commutative [=>]88.9 | \[ w0 \cdot \sqrt{1 - \frac{\color{blue}{\left(\left(\frac{D}{d} \cdot \left(M \cdot 0.5\right)\right) \cdot h\right)} \cdot \left(\frac{D}{d} \cdot \left(M \cdot 0.5\right)\right)}{\ell}}
\] |
associate-*r* [=>]88.9 | \[ w0 \cdot \sqrt{1 - \frac{\left(\color{blue}{\left(\left(\frac{D}{d} \cdot M\right) \cdot 0.5\right)} \cdot h\right) \cdot \left(\frac{D}{d} \cdot \left(M \cdot 0.5\right)\right)}{\ell}}
\] |
*-commutative [=>]88.9 | \[ w0 \cdot \sqrt{1 - \frac{\left(\color{blue}{\left(0.5 \cdot \left(\frac{D}{d} \cdot M\right)\right)} \cdot h\right) \cdot \left(\frac{D}{d} \cdot \left(M \cdot 0.5\right)\right)}{\ell}}
\] |
associate-*l/ [=>]88.1 | \[ w0 \cdot \sqrt{1 - \frac{\left(\left(0.5 \cdot \color{blue}{\frac{D \cdot M}{d}}\right) \cdot h\right) \cdot \left(\frac{D}{d} \cdot \left(M \cdot 0.5\right)\right)}{\ell}}
\] |
associate-*r* [=>]88.1 | \[ w0 \cdot \sqrt{1 - \frac{\left(\left(0.5 \cdot \frac{D \cdot M}{d}\right) \cdot h\right) \cdot \color{blue}{\left(\left(\frac{D}{d} \cdot M\right) \cdot 0.5\right)}}{\ell}}
\] |
*-commutative [=>]88.1 | \[ w0 \cdot \sqrt{1 - \frac{\left(\left(0.5 \cdot \frac{D \cdot M}{d}\right) \cdot h\right) \cdot \color{blue}{\left(0.5 \cdot \left(\frac{D}{d} \cdot M\right)\right)}}{\ell}}
\] |
associate-*l/ [=>]88.5 | \[ w0 \cdot \sqrt{1 - \frac{\left(\left(0.5 \cdot \frac{D \cdot M}{d}\right) \cdot h\right) \cdot \left(0.5 \cdot \color{blue}{\frac{D \cdot M}{d}}\right)}{\ell}}
\] |
Final simplification88.5%
| Alternative 1 | |
|---|---|
| Accuracy | 75.1% |
| Cost | 8268 |
| Alternative 2 | |
|---|---|
| Accuracy | 78.6% |
| Cost | 8264 |
| Alternative 3 | |
|---|---|
| Accuracy | 75.1% |
| Cost | 8140 |
| Alternative 4 | |
|---|---|
| Accuracy | 77.1% |
| Cost | 8008 |
| Alternative 5 | |
|---|---|
| Accuracy | 77.9% |
| Cost | 8008 |
| Alternative 6 | |
|---|---|
| Accuracy | 74.9% |
| Cost | 8008 |
| Alternative 7 | |
|---|---|
| Accuracy | 72.1% |
| Cost | 1609 |
| Alternative 8 | |
|---|---|
| Accuracy | 73.4% |
| Cost | 1608 |
| Alternative 9 | |
|---|---|
| Accuracy | 73.7% |
| Cost | 1476 |
| Alternative 10 | |
|---|---|
| Accuracy | 76.1% |
| Cost | 1476 |
| Alternative 11 | |
|---|---|
| Accuracy | 75.0% |
| Cost | 1344 |
| Alternative 12 | |
|---|---|
| Accuracy | 67.8% |
| Cost | 64 |
herbie shell --seed 2023163
(FPCore (w0 M D h l d)
:name "Henrywood and Agarwal, Equation (9a)"
:precision binary64
(* w0 (sqrt (- 1.0 (* (pow (/ (* M D) (* 2.0 d)) 2.0) (/ h l))))))