| Alternative 1 | |
|---|---|
| Accuracy | 78.6% |
| Cost | 34769 |
(FPCore (c0 A V l) :precision binary64 (* c0 (sqrt (/ A (* V l)))))
(FPCore (c0 A V l)
:precision binary64
(if (<= (* V l) -2e-194)
(/ c0 (/ (sqrt (- V)) (/ (sqrt (- A)) (sqrt l))))
(if (<= (* V l) 0.0)
(* c0 (/ (sqrt (/ -1.0 V)) (sqrt (/ l (- A)))))
(/ c0 (* (sqrt (* V l)) (sqrt (/ 1.0 A)))))))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) <= -2e-194) {
tmp = c0 / (sqrt(-V) / (sqrt(-A) / sqrt(l)));
} else if ((V * l) <= 0.0) {
tmp = c0 * (sqrt((-1.0 / V)) / sqrt((l / -A)));
} else {
tmp = c0 / (sqrt((V * l)) * sqrt((1.0 / A)));
}
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) <= (-2d-194)) then
tmp = c0 / (sqrt(-v) / (sqrt(-a) / sqrt(l)))
else if ((v * l) <= 0.0d0) then
tmp = c0 * (sqrt(((-1.0d0) / v)) / sqrt((l / -a)))
else
tmp = c0 / (sqrt((v * l)) * sqrt((1.0d0 / a)))
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) <= -2e-194) {
tmp = c0 / (Math.sqrt(-V) / (Math.sqrt(-A) / Math.sqrt(l)));
} else if ((V * l) <= 0.0) {
tmp = c0 * (Math.sqrt((-1.0 / V)) / Math.sqrt((l / -A)));
} else {
tmp = c0 / (Math.sqrt((V * l)) * Math.sqrt((1.0 / A)));
}
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) <= -2e-194: tmp = c0 / (math.sqrt(-V) / (math.sqrt(-A) / math.sqrt(l))) elif (V * l) <= 0.0: tmp = c0 * (math.sqrt((-1.0 / V)) / math.sqrt((l / -A))) else: tmp = c0 / (math.sqrt((V * l)) * math.sqrt((1.0 / A))) 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) <= -2e-194) tmp = Float64(c0 / Float64(sqrt(Float64(-V)) / Float64(sqrt(Float64(-A)) / sqrt(l)))); elseif (Float64(V * l) <= 0.0) tmp = Float64(c0 * Float64(sqrt(Float64(-1.0 / V)) / sqrt(Float64(l / Float64(-A))))); else tmp = Float64(c0 / Float64(sqrt(Float64(V * l)) * sqrt(Float64(1.0 / A)))); 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) <= -2e-194) tmp = c0 / (sqrt(-V) / (sqrt(-A) / sqrt(l))); elseif ((V * l) <= 0.0) tmp = c0 * (sqrt((-1.0 / V)) / sqrt((l / -A))); else tmp = c0 / (sqrt((V * l)) * sqrt((1.0 / A))); 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], -2e-194], 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], 0.0], N[(c0 * N[(N[Sqrt[N[(-1.0 / V), $MachinePrecision]], $MachinePrecision] / N[Sqrt[N[(l / (-A)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(c0 / N[(N[Sqrt[N[(V * l), $MachinePrecision]], $MachinePrecision] * N[Sqrt[N[(1.0 / A), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\begin{array}{l}
\mathbf{if}\;V \cdot \ell \leq -2 \cdot 10^{-194}:\\
\;\;\;\;\frac{c0}{\frac{\sqrt{-V}}{\frac{\sqrt{-A}}{\sqrt{\ell}}}}\\
\mathbf{elif}\;V \cdot \ell \leq 0:\\
\;\;\;\;c0 \cdot \frac{\sqrt{\frac{-1}{V}}}{\sqrt{\frac{\ell}{-A}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{c0}{\sqrt{V \cdot \ell} \cdot \sqrt{\frac{1}{A}}}\\
\end{array}
Results
if (*.f64 V l) < -2.00000000000000004e-194Initial program 79.0%
Applied egg-rr73.9%
[Start]79.0 | \[ c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\] |
|---|---|
clear-num [=>]78.6 | \[ c0 \cdot \sqrt{\color{blue}{\frac{1}{\frac{V \cdot \ell}{A}}}}
\] |
sqrt-div [=>]79.1 | \[ c0 \cdot \color{blue}{\frac{\sqrt{1}}{\sqrt{\frac{V \cdot \ell}{A}}}}
\] |
metadata-eval [=>]79.1 | \[ c0 \cdot \frac{\color{blue}{1}}{\sqrt{\frac{V \cdot \ell}{A}}}
\] |
associate-*r/ [=>]79.1 | \[ \color{blue}{\frac{c0 \cdot 1}{\sqrt{\frac{V \cdot \ell}{A}}}}
\] |
*-commutative [<=]79.1 | \[ \frac{\color{blue}{1 \cdot c0}}{\sqrt{\frac{V \cdot \ell}{A}}}
\] |
*-un-lft-identity [<=]79.1 | \[ \frac{\color{blue}{c0}}{\sqrt{\frac{V \cdot \ell}{A}}}
\] |
associate-/l* [=>]73.9 | \[ \frac{c0}{\sqrt{\color{blue}{\frac{V}{\frac{A}{\ell}}}}}
\] |
Simplified74.2%
[Start]73.9 | \[ \frac{c0}{\sqrt{\frac{V}{\frac{A}{\ell}}}}
\] |
|---|---|
associate-/r/ [=>]74.2 | \[ \frac{c0}{\sqrt{\color{blue}{\frac{V}{A} \cdot \ell}}}
\] |
Applied egg-rr98.1%
[Start]74.2 | \[ \frac{c0}{\sqrt{\frac{V}{A} \cdot \ell}}
\] |
|---|---|
sqrt-prod [=>]83.0 | \[ \frac{c0}{\color{blue}{\sqrt{\frac{V}{A}} \cdot \sqrt{\ell}}}
\] |
*-commutative [=>]83.0 | \[ \frac{c0}{\color{blue}{\sqrt{\ell} \cdot \sqrt{\frac{V}{A}}}}
\] |
frac-2neg [=>]83.0 | \[ \frac{c0}{\sqrt{\ell} \cdot \sqrt{\color{blue}{\frac{-V}{-A}}}}
\] |
sqrt-div [=>]98.1 | \[ \frac{c0}{\sqrt{\ell} \cdot \color{blue}{\frac{\sqrt{-V}}{\sqrt{-A}}}}
\] |
associate-*r/ [=>]98.1 | \[ \frac{c0}{\color{blue}{\frac{\sqrt{\ell} \cdot \sqrt{-V}}{\sqrt{-A}}}}
\] |
Simplified98.1%
[Start]98.1 | \[ \frac{c0}{\frac{\sqrt{\ell} \cdot \sqrt{-V}}{\sqrt{-A}}}
\] |
|---|---|
*-commutative [<=]98.1 | \[ \frac{c0}{\frac{\color{blue}{\sqrt{-V} \cdot \sqrt{\ell}}}{\sqrt{-A}}}
\] |
associate-/l* [=>]98.1 | \[ \frac{c0}{\color{blue}{\frac{\sqrt{-V}}{\frac{\sqrt{-A}}{\sqrt{\ell}}}}}
\] |
if -2.00000000000000004e-194 < (*.f64 V l) < -0.0Initial program 25.4%
Applied egg-rr49.7%
[Start]25.4 | \[ c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\] |
|---|---|
*-un-lft-identity [=>]25.4 | \[ c0 \cdot \sqrt{\frac{\color{blue}{1 \cdot A}}{V \cdot \ell}}
\] |
times-frac [=>]49.7 | \[ c0 \cdot \sqrt{\color{blue}{\frac{1}{V} \cdot \frac{A}{\ell}}}
\] |
*-commutative [=>]49.7 | \[ c0 \cdot \sqrt{\color{blue}{\frac{A}{\ell} \cdot \frac{1}{V}}}
\] |
Applied egg-rr49.7%
[Start]49.7 | \[ c0 \cdot \sqrt{\frac{A}{\ell} \cdot \frac{1}{V}}
\] |
|---|---|
associate-*l/ [=>]50.0 | \[ c0 \cdot \sqrt{\color{blue}{\frac{A \cdot \frac{1}{V}}{\ell}}}
\] |
*-commutative [=>]50.0 | \[ c0 \cdot \sqrt{\frac{\color{blue}{\frac{1}{V} \cdot A}}{\ell}}
\] |
associate-/l* [=>]49.7 | \[ c0 \cdot \sqrt{\color{blue}{\frac{\frac{1}{V}}{\frac{\ell}{A}}}}
\] |
Applied egg-rr63.9%
[Start]49.7 | \[ c0 \cdot \sqrt{\frac{\frac{1}{V}}{\frac{\ell}{A}}}
\] |
|---|---|
frac-2neg [=>]49.7 | \[ c0 \cdot \sqrt{\color{blue}{\frac{-\frac{1}{V}}{-\frac{\ell}{A}}}}
\] |
sqrt-div [=>]63.9 | \[ c0 \cdot \color{blue}{\frac{\sqrt{-\frac{1}{V}}}{\sqrt{-\frac{\ell}{A}}}}
\] |
distribute-neg-frac [=>]63.9 | \[ c0 \cdot \frac{\sqrt{\color{blue}{\frac{-1}{V}}}}{\sqrt{-\frac{\ell}{A}}}
\] |
metadata-eval [=>]63.9 | \[ c0 \cdot \frac{\sqrt{\frac{\color{blue}{-1}}{V}}}{\sqrt{-\frac{\ell}{A}}}
\] |
frac-2neg [=>]63.9 | \[ c0 \cdot \frac{\sqrt{\frac{-1}{V}}}{\sqrt{-\color{blue}{\frac{-\ell}{-A}}}}
\] |
distribute-neg-frac [=>]63.9 | \[ c0 \cdot \frac{\sqrt{\frac{-1}{V}}}{\sqrt{\color{blue}{\frac{-\left(-\ell\right)}{-A}}}}
\] |
*-un-lft-identity [=>]63.9 | \[ c0 \cdot \frac{\sqrt{\frac{-1}{V}}}{\sqrt{\frac{-\left(-\color{blue}{1 \cdot \ell}\right)}{-A}}}
\] |
distribute-lft-neg-in [=>]63.9 | \[ c0 \cdot \frac{\sqrt{\frac{-1}{V}}}{\sqrt{\frac{-\color{blue}{\left(-1\right) \cdot \ell}}{-A}}}
\] |
distribute-lft-neg-in [=>]63.9 | \[ c0 \cdot \frac{\sqrt{\frac{-1}{V}}}{\sqrt{\frac{\color{blue}{\left(-\left(-1\right)\right) \cdot \ell}}{-A}}}
\] |
metadata-eval [=>]63.9 | \[ c0 \cdot \frac{\sqrt{\frac{-1}{V}}}{\sqrt{\frac{\left(-\color{blue}{-1}\right) \cdot \ell}{-A}}}
\] |
metadata-eval [=>]63.9 | \[ c0 \cdot \frac{\sqrt{\frac{-1}{V}}}{\sqrt{\frac{\color{blue}{1} \cdot \ell}{-A}}}
\] |
*-un-lft-identity [<=]63.9 | \[ c0 \cdot \frac{\sqrt{\frac{-1}{V}}}{\sqrt{\frac{\color{blue}{\ell}}{-A}}}
\] |
if -0.0 < (*.f64 V l) Initial program 75.9%
Applied egg-rr71.9%
[Start]75.9 | \[ c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\] |
|---|---|
clear-num [=>]75.4 | \[ c0 \cdot \sqrt{\color{blue}{\frac{1}{\frac{V \cdot \ell}{A}}}}
\] |
sqrt-div [=>]75.9 | \[ c0 \cdot \color{blue}{\frac{\sqrt{1}}{\sqrt{\frac{V \cdot \ell}{A}}}}
\] |
metadata-eval [=>]75.9 | \[ c0 \cdot \frac{\color{blue}{1}}{\sqrt{\frac{V \cdot \ell}{A}}}
\] |
associate-*r/ [=>]76.0 | \[ \color{blue}{\frac{c0 \cdot 1}{\sqrt{\frac{V \cdot \ell}{A}}}}
\] |
*-commutative [<=]76.0 | \[ \frac{\color{blue}{1 \cdot c0}}{\sqrt{\frac{V \cdot \ell}{A}}}
\] |
*-un-lft-identity [<=]76.0 | \[ \frac{\color{blue}{c0}}{\sqrt{\frac{V \cdot \ell}{A}}}
\] |
associate-/l* [=>]71.9 | \[ \frac{c0}{\sqrt{\color{blue}{\frac{V}{\frac{A}{\ell}}}}}
\] |
Simplified72.6%
[Start]71.9 | \[ \frac{c0}{\sqrt{\frac{V}{\frac{A}{\ell}}}}
\] |
|---|---|
associate-/r/ [=>]72.6 | \[ \frac{c0}{\sqrt{\color{blue}{\frac{V}{A} \cdot \ell}}}
\] |
Taylor expanded in V around 0 76.0%
Applied egg-rr88.5%
[Start]76.0 | \[ \frac{c0}{\sqrt{\frac{V \cdot \ell}{A}}}
\] |
|---|---|
div-inv [=>]76.0 | \[ \frac{c0}{\sqrt{\color{blue}{\left(V \cdot \ell\right) \cdot \frac{1}{A}}}}
\] |
sqrt-prod [=>]88.5 | \[ \frac{c0}{\color{blue}{\sqrt{V \cdot \ell} \cdot \sqrt{\frac{1}{A}}}}
\] |
Final simplification89.0%
| Alternative 1 | |
|---|---|
| Accuracy | 78.6% |
| Cost | 34769 |
| Alternative 2 | |
|---|---|
| Accuracy | 78.2% |
| Cost | 34768 |
| Alternative 3 | |
|---|---|
| Accuracy | 76.7% |
| Cost | 34640 |
| Alternative 4 | |
|---|---|
| Accuracy | 76.9% |
| Cost | 34640 |
| Alternative 5 | |
|---|---|
| Accuracy | 77.6% |
| Cost | 34640 |
| Alternative 6 | |
|---|---|
| Accuracy | 77.6% |
| Cost | 34640 |
| Alternative 7 | |
|---|---|
| Accuracy | 77.7% |
| Cost | 34640 |
| Alternative 8 | |
|---|---|
| Accuracy | 77.1% |
| Cost | 34640 |
| Alternative 9 | |
|---|---|
| Accuracy | 77.2% |
| Cost | 34640 |
| Alternative 10 | |
|---|---|
| Accuracy | 84.2% |
| Cost | 14416 |
| Alternative 11 | |
|---|---|
| Accuracy | 88.4% |
| Cost | 14220 |
| Alternative 12 | |
|---|---|
| Accuracy | 87.2% |
| Cost | 14156 |
| Alternative 13 | |
|---|---|
| Accuracy | 87.2% |
| Cost | 14156 |
| Alternative 14 | |
|---|---|
| Accuracy | 88.3% |
| Cost | 14156 |
| Alternative 15 | |
|---|---|
| Accuracy | 85.1% |
| Cost | 14092 |
| Alternative 16 | |
|---|---|
| Accuracy | 81.2% |
| Cost | 14028 |
| Alternative 17 | |
|---|---|
| Accuracy | 85.5% |
| Cost | 14028 |
| Alternative 18 | |
|---|---|
| Accuracy | 85.5% |
| Cost | 14028 |
| Alternative 19 | |
|---|---|
| Accuracy | 85.0% |
| Cost | 14028 |
| Alternative 20 | |
|---|---|
| Accuracy | 77.1% |
| Cost | 7625 |
| Alternative 21 | |
|---|---|
| Accuracy | 77.5% |
| Cost | 7624 |
| Alternative 22 | |
|---|---|
| Accuracy | 70.2% |
| Cost | 6848 |
herbie shell --seed 2023133
(FPCore (c0 A V l)
:name "Henrywood and Agarwal, Equation (3)"
:precision binary64
(* c0 (sqrt (/ A (* V l)))))