| Alternative 1 | |
|---|---|
| Accuracy | 92.0% |
| Cost | 20036 |
(FPCore (c0 A V l) :precision binary64 (* c0 (sqrt (/ A (* V l)))))
(FPCore (c0 A V l)
:precision binary64
(let* ((t_0 (sqrt (- (/ A l)))) (t_1 (sqrt (- V))))
(if (<= (* V l) (- INFINITY))
(* (/ c0 t_1) t_0)
(if (<= (* V l) -5e-318)
(/ c0 (/ (sqrt (* V (- l))) (sqrt (- A))))
(if (<= (* V l) 0.0)
(/ c0 (/ t_1 t_0))
(if (<= (* V l) 1e+306)
(* c0 (/ (sqrt A) (sqrt (* V l))))
(* c0 (sqrt (/ (/ A l) V)))))))))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 t_0 = sqrt(-(A / l));
double t_1 = sqrt(-V);
double tmp;
if ((V * l) <= -((double) INFINITY)) {
tmp = (c0 / t_1) * t_0;
} else if ((V * l) <= -5e-318) {
tmp = c0 / (sqrt((V * -l)) / sqrt(-A));
} else if ((V * l) <= 0.0) {
tmp = c0 / (t_1 / t_0);
} else if ((V * l) <= 1e+306) {
tmp = c0 * (sqrt(A) / sqrt((V * l)));
} else {
tmp = c0 * sqrt(((A / l) / V));
}
return tmp;
}
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 t_0 = Math.sqrt(-(A / l));
double t_1 = Math.sqrt(-V);
double tmp;
if ((V * l) <= -Double.POSITIVE_INFINITY) {
tmp = (c0 / t_1) * t_0;
} else if ((V * l) <= -5e-318) {
tmp = c0 / (Math.sqrt((V * -l)) / Math.sqrt(-A));
} else if ((V * l) <= 0.0) {
tmp = c0 / (t_1 / t_0);
} else if ((V * l) <= 1e+306) {
tmp = c0 * (Math.sqrt(A) / Math.sqrt((V * l)));
} else {
tmp = c0 * Math.sqrt(((A / l) / V));
}
return tmp;
}
def code(c0, A, V, l): return c0 * math.sqrt((A / (V * l)))
def code(c0, A, V, l): t_0 = math.sqrt(-(A / l)) t_1 = math.sqrt(-V) tmp = 0 if (V * l) <= -math.inf: tmp = (c0 / t_1) * t_0 elif (V * l) <= -5e-318: tmp = c0 / (math.sqrt((V * -l)) / math.sqrt(-A)) elif (V * l) <= 0.0: tmp = c0 / (t_1 / t_0) elif (V * l) <= 1e+306: tmp = c0 * (math.sqrt(A) / math.sqrt((V * l))) else: tmp = c0 * math.sqrt(((A / l) / V)) return tmp
function code(c0, A, V, l) return Float64(c0 * sqrt(Float64(A / Float64(V * l)))) end
function code(c0, A, V, l) t_0 = sqrt(Float64(-Float64(A / l))) t_1 = sqrt(Float64(-V)) tmp = 0.0 if (Float64(V * l) <= Float64(-Inf)) tmp = Float64(Float64(c0 / t_1) * t_0); elseif (Float64(V * l) <= -5e-318) tmp = Float64(c0 / Float64(sqrt(Float64(V * Float64(-l))) / sqrt(Float64(-A)))); elseif (Float64(V * l) <= 0.0) tmp = Float64(c0 / Float64(t_1 / t_0)); elseif (Float64(V * l) <= 1e+306) tmp = Float64(c0 * Float64(sqrt(A) / sqrt(Float64(V * l)))); else tmp = Float64(c0 * sqrt(Float64(Float64(A / l) / V))); 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) t_0 = sqrt(-(A / l)); t_1 = sqrt(-V); tmp = 0.0; if ((V * l) <= -Inf) tmp = (c0 / t_1) * t_0; elseif ((V * l) <= -5e-318) tmp = c0 / (sqrt((V * -l)) / sqrt(-A)); elseif ((V * l) <= 0.0) tmp = c0 / (t_1 / t_0); elseif ((V * l) <= 1e+306) tmp = c0 * (sqrt(A) / sqrt((V * l))); else tmp = c0 * sqrt(((A / l) / V)); 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_] := Block[{t$95$0 = N[Sqrt[(-N[(A / l), $MachinePrecision])], $MachinePrecision]}, Block[{t$95$1 = N[Sqrt[(-V)], $MachinePrecision]}, If[LessEqual[N[(V * l), $MachinePrecision], (-Infinity)], N[(N[(c0 / t$95$1), $MachinePrecision] * t$95$0), $MachinePrecision], If[LessEqual[N[(V * l), $MachinePrecision], -5e-318], N[(c0 / N[(N[Sqrt[N[(V * (-l)), $MachinePrecision]], $MachinePrecision] / N[Sqrt[(-A)], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(V * l), $MachinePrecision], 0.0], N[(c0 / N[(t$95$1 / t$95$0), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(V * l), $MachinePrecision], 1e+306], N[(c0 * N[(N[Sqrt[A], $MachinePrecision] / N[Sqrt[N[(V * l), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(c0 * N[Sqrt[N[(N[(A / l), $MachinePrecision] / V), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]]]]]]]
c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\begin{array}{l}
t_0 := \sqrt{-\frac{A}{\ell}}\\
t_1 := \sqrt{-V}\\
\mathbf{if}\;V \cdot \ell \leq -\infty:\\
\;\;\;\;\frac{c0}{t_1} \cdot t_0\\
\mathbf{elif}\;V \cdot \ell \leq -5 \cdot 10^{-318}:\\
\;\;\;\;\frac{c0}{\frac{\sqrt{V \cdot \left(-\ell\right)}}{\sqrt{-A}}}\\
\mathbf{elif}\;V \cdot \ell \leq 0:\\
\;\;\;\;\frac{c0}{\frac{t_1}{t_0}}\\
\mathbf{elif}\;V \cdot \ell \leq 10^{+306}:\\
\;\;\;\;c0 \cdot \frac{\sqrt{A}}{\sqrt{V \cdot \ell}}\\
\mathbf{else}:\\
\;\;\;\;c0 \cdot \sqrt{\frac{\frac{A}{\ell}}{V}}\\
\end{array}
Results
if (*.f64 V l) < -inf.0Initial program 36.2%
Applied egg-rr66.3%
[Start]36.2 | \[ c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\] |
|---|---|
clear-num [=>]36.2 | \[ c0 \cdot \sqrt{\color{blue}{\frac{1}{\frac{V \cdot \ell}{A}}}}
\] |
sqrt-div [=>]36.2 | \[ c0 \cdot \color{blue}{\frac{\sqrt{1}}{\sqrt{\frac{V \cdot \ell}{A}}}}
\] |
metadata-eval [=>]36.2 | \[ c0 \cdot \frac{\color{blue}{1}}{\sqrt{\frac{V \cdot \ell}{A}}}
\] |
associate-*r/ [=>]36.2 | \[ \color{blue}{\frac{c0 \cdot 1}{\sqrt{\frac{V \cdot \ell}{A}}}}
\] |
*-commutative [<=]36.2 | \[ \frac{\color{blue}{1 \cdot c0}}{\sqrt{\frac{V \cdot \ell}{A}}}
\] |
*-un-lft-identity [<=]36.2 | \[ \frac{\color{blue}{c0}}{\sqrt{\frac{V \cdot \ell}{A}}}
\] |
associate-/l* [=>]66.3 | \[ \frac{c0}{\sqrt{\color{blue}{\frac{V}{\frac{A}{\ell}}}}}
\] |
Applied egg-rr86.0%
[Start]66.3 | \[ \frac{c0}{\sqrt{\frac{V}{\frac{A}{\ell}}}}
\] |
|---|---|
frac-2neg [=>]66.3 | \[ \frac{c0}{\sqrt{\color{blue}{\frac{-V}{-\frac{A}{\ell}}}}}
\] |
sqrt-div [=>]86.6 | \[ \frac{c0}{\color{blue}{\frac{\sqrt{-V}}{\sqrt{-\frac{A}{\ell}}}}}
\] |
associate-/r/ [=>]86.0 | \[ \color{blue}{\frac{c0}{\sqrt{-V}} \cdot \sqrt{-\frac{A}{\ell}}}
\] |
distribute-neg-frac [=>]86.0 | \[ \frac{c0}{\sqrt{-V}} \cdot \sqrt{\color{blue}{\frac{-A}{\ell}}}
\] |
if -inf.0 < (*.f64 V l) < -4.9999987e-318Initial program 84.6%
Applied egg-rr95.7%
[Start]84.6 | \[ c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\] |
|---|---|
frac-2neg [=>]84.6 | \[ c0 \cdot \sqrt{\color{blue}{\frac{-A}{-V \cdot \ell}}}
\] |
sqrt-div [=>]99.2 | \[ c0 \cdot \color{blue}{\frac{\sqrt{-A}}{\sqrt{-V \cdot \ell}}}
\] |
associate-*r/ [=>]95.7 | \[ \color{blue}{\frac{c0 \cdot \sqrt{-A}}{\sqrt{-V \cdot \ell}}}
\] |
distribute-rgt-neg-in [=>]95.7 | \[ \frac{c0 \cdot \sqrt{-A}}{\sqrt{\color{blue}{V \cdot \left(-\ell\right)}}}
\] |
Simplified99.3%
[Start]95.7 | \[ \frac{c0 \cdot \sqrt{-A}}{\sqrt{V \cdot \left(-\ell\right)}}
\] |
|---|---|
associate-/l* [=>]99.3 | \[ \color{blue}{\frac{c0}{\frac{\sqrt{V \cdot \left(-\ell\right)}}{\sqrt{-A}}}}
\] |
if -4.9999987e-318 < (*.f64 V l) < 0.0Initial program 1.0%
Applied egg-rr39.4%
[Start]1.0 | \[ c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\] |
|---|---|
clear-num [=>]1.0 | \[ c0 \cdot \sqrt{\color{blue}{\frac{1}{\frac{V \cdot \ell}{A}}}}
\] |
sqrt-div [=>]1.0 | \[ c0 \cdot \color{blue}{\frac{\sqrt{1}}{\sqrt{\frac{V \cdot \ell}{A}}}}
\] |
metadata-eval [=>]1.0 | \[ c0 \cdot \frac{\color{blue}{1}}{\sqrt{\frac{V \cdot \ell}{A}}}
\] |
associate-*r/ [=>]1.0 | \[ \color{blue}{\frac{c0 \cdot 1}{\sqrt{\frac{V \cdot \ell}{A}}}}
\] |
*-commutative [<=]1.0 | \[ \frac{\color{blue}{1 \cdot c0}}{\sqrt{\frac{V \cdot \ell}{A}}}
\] |
*-un-lft-identity [<=]1.0 | \[ \frac{\color{blue}{c0}}{\sqrt{\frac{V \cdot \ell}{A}}}
\] |
associate-/l* [=>]39.4 | \[ \frac{c0}{\sqrt{\color{blue}{\frac{V}{\frac{A}{\ell}}}}}
\] |
Applied egg-rr55.8%
[Start]39.4 | \[ \frac{c0}{\sqrt{\frac{V}{\frac{A}{\ell}}}}
\] |
|---|---|
frac-2neg [=>]39.4 | \[ \frac{c0}{\sqrt{\color{blue}{\frac{-V}{-\frac{A}{\ell}}}}}
\] |
sqrt-div [=>]55.8 | \[ \frac{c0}{\color{blue}{\frac{\sqrt{-V}}{\sqrt{-\frac{A}{\ell}}}}}
\] |
distribute-neg-frac [=>]55.8 | \[ \frac{c0}{\frac{\sqrt{-V}}{\sqrt{\color{blue}{\frac{-A}{\ell}}}}}
\] |
if 0.0 < (*.f64 V l) < 1.00000000000000002e306Initial program 83.3%
Applied egg-rr98.7%
[Start]83.3 | \[ c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\] |
|---|---|
sqrt-div [=>]98.8 | \[ c0 \cdot \color{blue}{\frac{\sqrt{A}}{\sqrt{V \cdot \ell}}}
\] |
div-inv [=>]98.7 | \[ c0 \cdot \color{blue}{\left(\sqrt{A} \cdot \frac{1}{\sqrt{V \cdot \ell}}\right)}
\] |
Simplified98.8%
[Start]98.7 | \[ c0 \cdot \left(\sqrt{A} \cdot \frac{1}{\sqrt{V \cdot \ell}}\right)
\] |
|---|---|
*-commutative [<=]98.7 | \[ c0 \cdot \color{blue}{\left(\frac{1}{\sqrt{V \cdot \ell}} \cdot \sqrt{A}\right)}
\] |
associate-*l/ [=>]98.8 | \[ c0 \cdot \color{blue}{\frac{1 \cdot \sqrt{A}}{\sqrt{V \cdot \ell}}}
\] |
*-lft-identity [=>]98.8 | \[ c0 \cdot \frac{\color{blue}{\sqrt{A}}}{\sqrt{V \cdot \ell}}
\] |
if 1.00000000000000002e306 < (*.f64 V l) Initial program 33.3%
Applied egg-rr63.7%
[Start]33.3 | \[ c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\] |
|---|---|
*-un-lft-identity [=>]33.3 | \[ c0 \cdot \sqrt{\frac{\color{blue}{1 \cdot A}}{V \cdot \ell}}
\] |
times-frac [=>]63.7 | \[ c0 \cdot \sqrt{\color{blue}{\frac{1}{V} \cdot \frac{A}{\ell}}}
\] |
*-commutative [=>]63.7 | \[ c0 \cdot \sqrt{\color{blue}{\frac{A}{\ell} \cdot \frac{1}{V}}}
\] |
Applied egg-rr63.7%
[Start]63.7 | \[ c0 \cdot \sqrt{\frac{A}{\ell} \cdot \frac{1}{V}}
\] |
|---|---|
un-div-inv [=>]63.7 | \[ c0 \cdot \sqrt{\color{blue}{\frac{\frac{A}{\ell}}{V}}}
\] |
Final simplification92.3%
| Alternative 1 | |
|---|---|
| Accuracy | 92.0% |
| Cost | 20036 |
| Alternative 2 | |
|---|---|
| Accuracy | 83.7% |
| Cost | 14288 |
| Alternative 3 | |
|---|---|
| Accuracy | 87.4% |
| Cost | 14288 |
| Alternative 4 | |
|---|---|
| Accuracy | 87.7% |
| Cost | 14288 |
| Alternative 5 | |
|---|---|
| Accuracy | 87.0% |
| Cost | 14288 |
| Alternative 6 | |
|---|---|
| Accuracy | 90.7% |
| Cost | 14288 |
| Alternative 7 | |
|---|---|
| Accuracy | 90.8% |
| Cost | 14288 |
| Alternative 8 | |
|---|---|
| Accuracy | 77.5% |
| Cost | 7952 |
| Alternative 9 | |
|---|---|
| Accuracy | 77.6% |
| Cost | 7888 |
| Alternative 10 | |
|---|---|
| Accuracy | 77.9% |
| Cost | 7752 |
| Alternative 11 | |
|---|---|
| Accuracy | 78.0% |
| Cost | 7624 |
| Alternative 12 | |
|---|---|
| Accuracy | 74.4% |
| Cost | 7369 |
| Alternative 13 | |
|---|---|
| Accuracy | 70.6% |
| Cost | 6848 |
herbie shell --seed 2023140
(FPCore (c0 A V l)
:name "Henrywood and Agarwal, Equation (3)"
:precision binary64
(* c0 (sqrt (/ A (* V l)))))