| Alternative 1 | |
|---|---|
| Accuracy | 78.0% |
| Cost | 34768 |
(FPCore (c0 A V l) :precision binary64 (* c0 (sqrt (/ A (* V l)))))
(FPCore (c0 A V l)
:precision binary64
(if (<= (* V l) 0.0)
(/ c0 (/ (sqrt (- V)) (/ (sqrt (- A)) (sqrt l))))
(if (<= (* V l) 2e+296)
(* c0 (/ (sqrt A) (sqrt (* V l))))
(/ (/ c0 (/ (sqrt V) (sqrt A))) (sqrt l)))))double code(double c0, double A, double V, double l) {
return c0 * sqrt((A / (V * l)));
}
double code(double c0, double A, double V, double l) {
double tmp;
if ((V * l) <= 0.0) {
tmp = c0 / (sqrt(-V) / (sqrt(-A) / sqrt(l)));
} else if ((V * l) <= 2e+296) {
tmp = c0 * (sqrt(A) / sqrt((V * l)));
} else {
tmp = (c0 / (sqrt(V) / sqrt(A))) / sqrt(l);
}
return tmp;
}
real(8) function code(c0, a, v, l)
real(8), intent (in) :: c0
real(8), intent (in) :: a
real(8), intent (in) :: v
real(8), intent (in) :: l
code = c0 * sqrt((a / (v * l)))
end function
real(8) function code(c0, a, v, l)
real(8), intent (in) :: c0
real(8), intent (in) :: a
real(8), intent (in) :: v
real(8), intent (in) :: l
real(8) :: tmp
if ((v * l) <= 0.0d0) then
tmp = c0 / (sqrt(-v) / (sqrt(-a) / sqrt(l)))
else if ((v * l) <= 2d+296) then
tmp = c0 * (sqrt(a) / sqrt((v * l)))
else
tmp = (c0 / (sqrt(v) / sqrt(a))) / sqrt(l)
end if
code = tmp
end function
public static double code(double c0, double A, double V, double l) {
return c0 * Math.sqrt((A / (V * l)));
}
public static double code(double c0, double A, double V, double l) {
double tmp;
if ((V * l) <= 0.0) {
tmp = c0 / (Math.sqrt(-V) / (Math.sqrt(-A) / Math.sqrt(l)));
} else if ((V * l) <= 2e+296) {
tmp = c0 * (Math.sqrt(A) / Math.sqrt((V * l)));
} else {
tmp = (c0 / (Math.sqrt(V) / Math.sqrt(A))) / Math.sqrt(l);
}
return tmp;
}
def code(c0, A, V, l): return c0 * math.sqrt((A / (V * l)))
def code(c0, A, V, l): tmp = 0 if (V * l) <= 0.0: tmp = c0 / (math.sqrt(-V) / (math.sqrt(-A) / math.sqrt(l))) elif (V * l) <= 2e+296: tmp = c0 * (math.sqrt(A) / math.sqrt((V * l))) else: tmp = (c0 / (math.sqrt(V) / math.sqrt(A))) / math.sqrt(l) return tmp
function code(c0, A, V, l) return Float64(c0 * sqrt(Float64(A / Float64(V * l)))) end
function code(c0, A, V, l) tmp = 0.0 if (Float64(V * l) <= 0.0) tmp = Float64(c0 / Float64(sqrt(Float64(-V)) / Float64(sqrt(Float64(-A)) / sqrt(l)))); elseif (Float64(V * l) <= 2e+296) tmp = Float64(c0 * Float64(sqrt(A) / sqrt(Float64(V * l)))); else tmp = Float64(Float64(c0 / Float64(sqrt(V) / sqrt(A))) / sqrt(l)); end return tmp end
function tmp = code(c0, A, V, l) tmp = c0 * sqrt((A / (V * l))); end
function tmp_2 = code(c0, A, V, l) tmp = 0.0; if ((V * l) <= 0.0) tmp = c0 / (sqrt(-V) / (sqrt(-A) / sqrt(l))); elseif ((V * l) <= 2e+296) tmp = c0 * (sqrt(A) / sqrt((V * l))); else tmp = (c0 / (sqrt(V) / sqrt(A))) / sqrt(l); end tmp_2 = tmp; end
code[c0_, A_, V_, l_] := N[(c0 * N[Sqrt[N[(A / N[(V * l), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]
code[c0_, A_, V_, l_] := If[LessEqual[N[(V * l), $MachinePrecision], 0.0], N[(c0 / N[(N[Sqrt[(-V)], $MachinePrecision] / N[(N[Sqrt[(-A)], $MachinePrecision] / N[Sqrt[l], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(V * l), $MachinePrecision], 2e+296], N[(c0 * N[(N[Sqrt[A], $MachinePrecision] / N[Sqrt[N[(V * l), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(c0 / N[(N[Sqrt[V], $MachinePrecision] / N[Sqrt[A], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Sqrt[l], $MachinePrecision]), $MachinePrecision]]]
c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\begin{array}{l}
\mathbf{if}\;V \cdot \ell \leq 0:\\
\;\;\;\;\frac{c0}{\frac{\sqrt{-V}}{\frac{\sqrt{-A}}{\sqrt{\ell}}}}\\
\mathbf{elif}\;V \cdot \ell \leq 2 \cdot 10^{+296}:\\
\;\;\;\;c0 \cdot \frac{\sqrt{A}}{\sqrt{V \cdot \ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{c0}{\frac{\sqrt{V}}{\sqrt{A}}}}{\sqrt{\ell}}\\
\end{array}
Results
if (*.f64 V l) < 0.0Initial program 64.9%
Applied egg-rr68.9%
[Start]64.9 | \[ c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\] |
|---|---|
clear-num [=>]64.5 | \[ c0 \cdot \sqrt{\color{blue}{\frac{1}{\frac{V \cdot \ell}{A}}}}
\] |
sqrt-div [=>]64.9 | \[ c0 \cdot \color{blue}{\frac{\sqrt{1}}{\sqrt{\frac{V \cdot \ell}{A}}}}
\] |
metadata-eval [=>]64.9 | \[ c0 \cdot \frac{\color{blue}{1}}{\sqrt{\frac{V \cdot \ell}{A}}}
\] |
associate-*r/ [=>]65.0 | \[ \color{blue}{\frac{c0 \cdot 1}{\sqrt{\frac{V \cdot \ell}{A}}}}
\] |
*-commutative [<=]65.0 | \[ \frac{\color{blue}{1 \cdot c0}}{\sqrt{\frac{V \cdot \ell}{A}}}
\] |
*-un-lft-identity [<=]65.0 | \[ \frac{\color{blue}{c0}}{\sqrt{\frac{V \cdot \ell}{A}}}
\] |
associate-/l* [=>]68.9 | \[ \frac{c0}{\sqrt{\color{blue}{\frac{V}{\frac{A}{\ell}}}}}
\] |
Simplified68.1%
[Start]68.9 | \[ \frac{c0}{\sqrt{\frac{V}{\frac{A}{\ell}}}}
\] |
|---|---|
associate-/r/ [=>]68.1 | \[ \frac{c0}{\sqrt{\color{blue}{\frac{V}{A} \cdot \ell}}}
\] |
Applied egg-rr89.5%
[Start]68.1 | \[ \frac{c0}{\sqrt{\frac{V}{A} \cdot \ell}}
\] |
|---|---|
sqrt-prod [=>]78.1 | \[ \frac{c0}{\color{blue}{\sqrt{\frac{V}{A}} \cdot \sqrt{\ell}}}
\] |
*-commutative [=>]78.1 | \[ \frac{c0}{\color{blue}{\sqrt{\ell} \cdot \sqrt{\frac{V}{A}}}}
\] |
frac-2neg [=>]78.1 | \[ \frac{c0}{\sqrt{\ell} \cdot \sqrt{\color{blue}{\frac{-V}{-A}}}}
\] |
sqrt-div [=>]89.5 | \[ \frac{c0}{\sqrt{\ell} \cdot \color{blue}{\frac{\sqrt{-V}}{\sqrt{-A}}}}
\] |
associate-*r/ [=>]89.5 | \[ \frac{c0}{\color{blue}{\frac{\sqrt{\ell} \cdot \sqrt{-V}}{\sqrt{-A}}}}
\] |
Simplified89.5%
[Start]89.5 | \[ \frac{c0}{\frac{\sqrt{\ell} \cdot \sqrt{-V}}{\sqrt{-A}}}
\] |
|---|---|
*-commutative [<=]89.5 | \[ \frac{c0}{\frac{\color{blue}{\sqrt{-V} \cdot \sqrt{\ell}}}{\sqrt{-A}}}
\] |
associate-/l* [=>]89.5 | \[ \frac{c0}{\color{blue}{\frac{\sqrt{-V}}{\frac{\sqrt{-A}}{\sqrt{\ell}}}}}
\] |
if 0.0 < (*.f64 V l) < 1.99999999999999996e296Initial program 83.9%
Applied egg-rr98.8%
[Start]83.9 | \[ c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\] |
|---|---|
sqrt-div [=>]98.9 | \[ c0 \cdot \color{blue}{\frac{\sqrt{A}}{\sqrt{V \cdot \ell}}}
\] |
div-inv [=>]98.8 | \[ c0 \cdot \color{blue}{\left(\sqrt{A} \cdot \frac{1}{\sqrt{V \cdot \ell}}\right)}
\] |
Simplified98.9%
[Start]98.8 | \[ c0 \cdot \left(\sqrt{A} \cdot \frac{1}{\sqrt{V \cdot \ell}}\right)
\] |
|---|---|
*-commutative [<=]98.8 | \[ c0 \cdot \color{blue}{\left(\frac{1}{\sqrt{V \cdot \ell}} \cdot \sqrt{A}\right)}
\] |
associate-*l/ [=>]98.9 | \[ c0 \cdot \color{blue}{\frac{1 \cdot \sqrt{A}}{\sqrt{V \cdot \ell}}}
\] |
*-lft-identity [=>]98.9 | \[ c0 \cdot \frac{\color{blue}{\sqrt{A}}}{\sqrt{V \cdot \ell}}
\] |
if 1.99999999999999996e296 < (*.f64 V l) Initial program 36.1%
Applied egg-rr46.4%
[Start]36.1 | \[ c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\] |
|---|---|
*-commutative [=>]36.1 | \[ \color{blue}{\sqrt{\frac{A}{V \cdot \ell}} \cdot c0}
\] |
associate-/r* [=>]65.6 | \[ \sqrt{\color{blue}{\frac{\frac{A}{V}}{\ell}}} \cdot c0
\] |
sqrt-div [=>]47.7 | \[ \color{blue}{\frac{\sqrt{\frac{A}{V}}}{\sqrt{\ell}}} \cdot c0
\] |
associate-*l/ [=>]46.4 | \[ \color{blue}{\frac{\sqrt{\frac{A}{V}} \cdot c0}{\sqrt{\ell}}}
\] |
Applied egg-rr52.8%
[Start]46.4 | \[ \frac{\sqrt{\frac{A}{V}} \cdot c0}{\sqrt{\ell}}
\] |
|---|---|
sqrt-div [=>]52.8 | \[ \frac{\color{blue}{\frac{\sqrt{A}}{\sqrt{V}}} \cdot c0}{\sqrt{\ell}}
\] |
clear-num [=>]52.8 | \[ \frac{\color{blue}{\frac{1}{\frac{\sqrt{V}}{\sqrt{A}}}} \cdot c0}{\sqrt{\ell}}
\] |
associate-*l/ [=>]52.8 | \[ \frac{\color{blue}{\frac{1 \cdot c0}{\frac{\sqrt{V}}{\sqrt{A}}}}}{\sqrt{\ell}}
\] |
*-un-lft-identity [<=]52.8 | \[ \frac{\frac{\color{blue}{c0}}{\frac{\sqrt{V}}{\sqrt{A}}}}{\sqrt{\ell}}
\] |
Final simplification90.3%
| Alternative 1 | |
|---|---|
| Accuracy | 78.0% |
| Cost | 34768 |
| Alternative 2 | |
|---|---|
| Accuracy | 78.2% |
| Cost | 34641 |
| Alternative 3 | |
|---|---|
| Accuracy | 78.0% |
| Cost | 34640 |
| Alternative 4 | |
|---|---|
| Accuracy | 76.5% |
| Cost | 34514 |
| Alternative 5 | |
|---|---|
| Accuracy | 77.3% |
| Cost | 34512 |
| Alternative 6 | |
|---|---|
| Accuracy | 88.4% |
| Cost | 20688 |
| Alternative 7 | |
|---|---|
| Accuracy | 85.6% |
| Cost | 14289 |
| Alternative 8 | |
|---|---|
| Accuracy | 85.6% |
| Cost | 14288 |
| Alternative 9 | |
|---|---|
| Accuracy | 88.0% |
| Cost | 14288 |
| Alternative 10 | |
|---|---|
| Accuracy | 81.2% |
| Cost | 14028 |
| Alternative 11 | |
|---|---|
| Accuracy | 84.3% |
| Cost | 13768 |
| Alternative 12 | |
|---|---|
| Accuracy | 77.9% |
| Cost | 7624 |
| Alternative 13 | |
|---|---|
| Accuracy | 70.0% |
| Cost | 6848 |
herbie shell --seed 2023135
(FPCore (c0 A V l)
:name "Henrywood and Agarwal, Equation (3)"
:precision binary64
(* c0 (sqrt (/ A (* V l)))))