| Alternative 1 | |
|---|---|
| Error | 79.4% |
| Cost | 34640.00 |
(FPCore (c0 A V l) :precision binary64 (* c0 (sqrt (/ A (* V l)))))
(FPCore (c0 A V l)
:precision binary64
(if (<= (* V l) -2e+234)
(/ c0 (/ (sqrt l) (sqrt (/ A V))))
(if (<= (* V l) -5e-255)
(* c0 (/ (sqrt (- A)) (sqrt (* V (- l)))))
(if (<= (* V l) 0.0)
(* c0 (/ (sqrt (/ A (- l))) (sqrt (- V))))
(if (<= (* V l) 5e+294)
(* c0 (/ (sqrt A) (sqrt (* V l))))
(/ (/ c0 (/ (sqrt l) (sqrt A))) (sqrt 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 tmp;
if ((V * l) <= -2e+234) {
tmp = c0 / (sqrt(l) / sqrt((A / V)));
} else if ((V * l) <= -5e-255) {
tmp = c0 * (sqrt(-A) / sqrt((V * -l)));
} else if ((V * l) <= 0.0) {
tmp = c0 * (sqrt((A / -l)) / sqrt(-V));
} else if ((V * l) <= 5e+294) {
tmp = c0 * (sqrt(A) / sqrt((V * l)));
} else {
tmp = (c0 / (sqrt(l) / sqrt(A))) / sqrt(V);
}
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+234)) then
tmp = c0 / (sqrt(l) / sqrt((a / v)))
else if ((v * l) <= (-5d-255)) then
tmp = c0 * (sqrt(-a) / sqrt((v * -l)))
else if ((v * l) <= 0.0d0) then
tmp = c0 * (sqrt((a / -l)) / sqrt(-v))
else if ((v * l) <= 5d+294) then
tmp = c0 * (sqrt(a) / sqrt((v * l)))
else
tmp = (c0 / (sqrt(l) / sqrt(a))) / sqrt(v)
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+234) {
tmp = c0 / (Math.sqrt(l) / Math.sqrt((A / V)));
} else if ((V * l) <= -5e-255) {
tmp = c0 * (Math.sqrt(-A) / Math.sqrt((V * -l)));
} else if ((V * l) <= 0.0) {
tmp = c0 * (Math.sqrt((A / -l)) / Math.sqrt(-V));
} else if ((V * l) <= 5e+294) {
tmp = c0 * (Math.sqrt(A) / Math.sqrt((V * l)));
} else {
tmp = (c0 / (Math.sqrt(l) / Math.sqrt(A))) / Math.sqrt(V);
}
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+234: tmp = c0 / (math.sqrt(l) / math.sqrt((A / V))) elif (V * l) <= -5e-255: tmp = c0 * (math.sqrt(-A) / math.sqrt((V * -l))) elif (V * l) <= 0.0: tmp = c0 * (math.sqrt((A / -l)) / math.sqrt(-V)) elif (V * l) <= 5e+294: tmp = c0 * (math.sqrt(A) / math.sqrt((V * l))) else: tmp = (c0 / (math.sqrt(l) / math.sqrt(A))) / math.sqrt(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) tmp = 0.0 if (Float64(V * l) <= -2e+234) tmp = Float64(c0 / Float64(sqrt(l) / sqrt(Float64(A / V)))); elseif (Float64(V * l) <= -5e-255) tmp = Float64(c0 * Float64(sqrt(Float64(-A)) / sqrt(Float64(V * Float64(-l))))); elseif (Float64(V * l) <= 0.0) tmp = Float64(c0 * Float64(sqrt(Float64(A / Float64(-l))) / sqrt(Float64(-V)))); elseif (Float64(V * l) <= 5e+294) tmp = Float64(c0 * Float64(sqrt(A) / sqrt(Float64(V * l)))); else tmp = Float64(Float64(c0 / Float64(sqrt(l) / sqrt(A))) / sqrt(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) tmp = 0.0; if ((V * l) <= -2e+234) tmp = c0 / (sqrt(l) / sqrt((A / V))); elseif ((V * l) <= -5e-255) tmp = c0 * (sqrt(-A) / sqrt((V * -l))); elseif ((V * l) <= 0.0) tmp = c0 * (sqrt((A / -l)) / sqrt(-V)); elseif ((V * l) <= 5e+294) tmp = c0 * (sqrt(A) / sqrt((V * l))); else tmp = (c0 / (sqrt(l) / sqrt(A))) / sqrt(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_] := If[LessEqual[N[(V * l), $MachinePrecision], -2e+234], N[(c0 / N[(N[Sqrt[l], $MachinePrecision] / N[Sqrt[N[(A / V), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(V * l), $MachinePrecision], -5e-255], N[(c0 * N[(N[Sqrt[(-A)], $MachinePrecision] / N[Sqrt[N[(V * (-l)), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(V * l), $MachinePrecision], 0.0], N[(c0 * N[(N[Sqrt[N[(A / (-l)), $MachinePrecision]], $MachinePrecision] / N[Sqrt[(-V)], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(V * l), $MachinePrecision], 5e+294], N[(c0 * N[(N[Sqrt[A], $MachinePrecision] / N[Sqrt[N[(V * l), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(c0 / N[(N[Sqrt[l], $MachinePrecision] / N[Sqrt[A], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Sqrt[V], $MachinePrecision]), $MachinePrecision]]]]]
c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\begin{array}{l}
\mathbf{if}\;V \cdot \ell \leq -2 \cdot 10^{+234}:\\
\;\;\;\;\frac{c0}{\frac{\sqrt{\ell}}{\sqrt{\frac{A}{V}}}}\\
\mathbf{elif}\;V \cdot \ell \leq -5 \cdot 10^{-255}:\\
\;\;\;\;c0 \cdot \frac{\sqrt{-A}}{\sqrt{V \cdot \left(-\ell\right)}}\\
\mathbf{elif}\;V \cdot \ell \leq 0:\\
\;\;\;\;c0 \cdot \frac{\sqrt{\frac{A}{-\ell}}}{\sqrt{-V}}\\
\mathbf{elif}\;V \cdot \ell \leq 5 \cdot 10^{+294}:\\
\;\;\;\;c0 \cdot \frac{\sqrt{A}}{\sqrt{V \cdot \ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{c0}{\frac{\sqrt{\ell}}{\sqrt{A}}}}{\sqrt{V}}\\
\end{array}
Results
if (*.f64 V l) < -2.00000000000000004e234Initial program 49.4
Applied egg-rr85.6
[Start]49.4 | \[ c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\] |
|---|---|
associate-/r* [=>]67.4 | \[ c0 \cdot \sqrt{\color{blue}{\frac{\frac{A}{V}}{\ell}}}
\] |
sqrt-div [=>]86.3 | \[ c0 \cdot \color{blue}{\frac{\sqrt{\frac{A}{V}}}{\sqrt{\ell}}}
\] |
associate-*r/ [=>]85.6 | \[ \color{blue}{\frac{c0 \cdot \sqrt{\frac{A}{V}}}{\sqrt{\ell}}}
\] |
Simplified86.4
[Start]85.6 | \[ \frac{c0 \cdot \sqrt{\frac{A}{V}}}{\sqrt{\ell}}
\] |
|---|---|
associate-/l* [=>]86.4 | \[ \color{blue}{\frac{c0}{\frac{\sqrt{\ell}}{\sqrt{\frac{A}{V}}}}}
\] |
if -2.00000000000000004e234 < (*.f64 V l) < -4.9999999999999996e-255Initial program 87.8
Applied egg-rr96.4
[Start]87.8 | \[ c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\] |
|---|---|
frac-2neg [=>]87.8 | \[ c0 \cdot \sqrt{\color{blue}{\frac{-A}{-V \cdot \ell}}}
\] |
sqrt-div [=>]99.4 | \[ c0 \cdot \color{blue}{\frac{\sqrt{-A}}{\sqrt{-V \cdot \ell}}}
\] |
associate-*r/ [=>]96.4 | \[ \color{blue}{\frac{c0 \cdot \sqrt{-A}}{\sqrt{-V \cdot \ell}}}
\] |
distribute-rgt-neg-in [=>]96.4 | \[ \frac{c0 \cdot \sqrt{-A}}{\sqrt{\color{blue}{V \cdot \left(-\ell\right)}}}
\] |
Simplified99.4
[Start]96.4 | \[ \frac{c0 \cdot \sqrt{-A}}{\sqrt{V \cdot \left(-\ell\right)}}
\] |
|---|---|
*-commutative [<=]96.4 | \[ \frac{\color{blue}{\sqrt{-A} \cdot c0}}{\sqrt{V \cdot \left(-\ell\right)}}
\] |
associate-/l* [=>]96.4 | \[ \color{blue}{\frac{\sqrt{-A}}{\frac{\sqrt{V \cdot \left(-\ell\right)}}{c0}}}
\] |
associate-/r/ [=>]99.4 | \[ \color{blue}{\frac{\sqrt{-A}}{\sqrt{V \cdot \left(-\ell\right)}} \cdot c0}
\] |
if -4.9999999999999996e-255 < (*.f64 V l) < 0.0Initial program 12.9
Applied egg-rr11.5
[Start]12.9 | \[ c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\] |
|---|---|
div-inv [=>]11.5 | \[ c0 \cdot \sqrt{\color{blue}{A \cdot \frac{1}{V \cdot \ell}}}
\] |
*-commutative [=>]11.5 | \[ c0 \cdot \sqrt{\color{blue}{\frac{1}{V \cdot \ell} \cdot A}}
\] |
Applied egg-rr44.0
[Start]11.5 | \[ c0 \cdot \sqrt{\frac{1}{V \cdot \ell} \cdot A}
\] |
|---|---|
*-commutative [=>]11.5 | \[ c0 \cdot \sqrt{\color{blue}{A \cdot \frac{1}{V \cdot \ell}}}
\] |
div-inv [<=]12.9 | \[ c0 \cdot \sqrt{\color{blue}{\frac{A}{V \cdot \ell}}}
\] |
associate-/l/ [<=]44.0 | \[ c0 \cdot \sqrt{\color{blue}{\frac{\frac{A}{\ell}}{V}}}
\] |
Applied egg-rr60.2
[Start]44.0 | \[ c0 \cdot \sqrt{\frac{\frac{A}{\ell}}{V}}
\] |
|---|---|
frac-2neg [=>]44.0 | \[ c0 \cdot \sqrt{\color{blue}{\frac{-\frac{A}{\ell}}{-V}}}
\] |
sqrt-div [=>]60.2 | \[ c0 \cdot \color{blue}{\frac{\sqrt{-\frac{A}{\ell}}}{\sqrt{-V}}}
\] |
frac-2neg [=>]60.2 | \[ c0 \cdot \frac{\sqrt{-\color{blue}{\frac{-A}{-\ell}}}}{\sqrt{-V}}
\] |
distribute-neg-frac [=>]60.2 | \[ c0 \cdot \frac{\sqrt{\color{blue}{\frac{-\left(-A\right)}{-\ell}}}}{\sqrt{-V}}
\] |
*-un-lft-identity [=>]60.2 | \[ c0 \cdot \frac{\sqrt{\frac{-\left(-\color{blue}{1 \cdot A}\right)}{-\ell}}}{\sqrt{-V}}
\] |
distribute-lft-neg-in [=>]60.2 | \[ c0 \cdot \frac{\sqrt{\frac{-\color{blue}{\left(-1\right) \cdot A}}{-\ell}}}{\sqrt{-V}}
\] |
distribute-lft-neg-in [=>]60.2 | \[ c0 \cdot \frac{\sqrt{\frac{\color{blue}{\left(-\left(-1\right)\right) \cdot A}}{-\ell}}}{\sqrt{-V}}
\] |
metadata-eval [=>]60.2 | \[ c0 \cdot \frac{\sqrt{\frac{\left(-\color{blue}{-1}\right) \cdot A}{-\ell}}}{\sqrt{-V}}
\] |
metadata-eval [=>]60.2 | \[ c0 \cdot \frac{\sqrt{\frac{\color{blue}{1} \cdot A}{-\ell}}}{\sqrt{-V}}
\] |
*-un-lft-identity [<=]60.2 | \[ c0 \cdot \frac{\sqrt{\frac{\color{blue}{A}}{-\ell}}}{\sqrt{-V}}
\] |
if 0.0 < (*.f64 V l) < 4.9999999999999999e294Initial program 82.5
Applied egg-rr98.6
[Start]82.5 | \[ c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\] |
|---|---|
sqrt-div [=>]98.7 | \[ c0 \cdot \color{blue}{\frac{\sqrt{A}}{\sqrt{V \cdot \ell}}}
\] |
div-inv [=>]98.6 | \[ c0 \cdot \color{blue}{\left(\sqrt{A} \cdot \frac{1}{\sqrt{V \cdot \ell}}\right)}
\] |
Simplified98.7
[Start]98.6 | \[ c0 \cdot \left(\sqrt{A} \cdot \frac{1}{\sqrt{V \cdot \ell}}\right)
\] |
|---|---|
*-commutative [<=]98.6 | \[ c0 \cdot \color{blue}{\left(\frac{1}{\sqrt{V \cdot \ell}} \cdot \sqrt{A}\right)}
\] |
associate-*l/ [=>]98.7 | \[ c0 \cdot \color{blue}{\frac{1 \cdot \sqrt{A}}{\sqrt{V \cdot \ell}}}
\] |
*-lft-identity [=>]98.7 | \[ c0 \cdot \frac{\color{blue}{\sqrt{A}}}{\sqrt{V \cdot \ell}}
\] |
if 4.9999999999999999e294 < (*.f64 V l) Initial program 39.6
Applied egg-rr44.1
[Start]39.6 | \[ c0 \cdot \sqrt{\frac{A}{V \cdot \ell}}
\] |
|---|---|
sqrt-div [=>]41.0 | \[ c0 \cdot \color{blue}{\frac{\sqrt{A}}{\sqrt{V \cdot \ell}}}
\] |
associate-*r/ [=>]40.7 | \[ \color{blue}{\frac{c0 \cdot \sqrt{A}}{\sqrt{V \cdot \ell}}}
\] |
sqrt-prod [=>]44.1 | \[ \frac{c0 \cdot \sqrt{A}}{\color{blue}{\sqrt{V} \cdot \sqrt{\ell}}}
\] |
associate-/r* [=>]44.1 | \[ \color{blue}{\frac{\frac{c0 \cdot \sqrt{A}}{\sqrt{V}}}{\sqrt{\ell}}}
\] |
Simplified47.2
[Start]44.1 | \[ \frac{\frac{c0 \cdot \sqrt{A}}{\sqrt{V}}}{\sqrt{\ell}}
\] |
|---|---|
associate-/l/ [=>]44.1 | \[ \color{blue}{\frac{c0 \cdot \sqrt{A}}{\sqrt{\ell} \cdot \sqrt{V}}}
\] |
associate-/r* [=>]44.1 | \[ \color{blue}{\frac{\frac{c0 \cdot \sqrt{A}}{\sqrt{\ell}}}{\sqrt{V}}}
\] |
associate-/l* [=>]47.2 | \[ \frac{\color{blue}{\frac{c0}{\frac{\sqrt{\ell}}{\sqrt{A}}}}}{\sqrt{V}}
\] |
Final simplification89.8
| Alternative 1 | |
|---|---|
| Error | 79.4% |
| Cost | 34640.00 |
| Alternative 2 | |
|---|---|
| Error | 79.4% |
| Cost | 34640.00 |
| Alternative 3 | |
|---|---|
| Error | 79.4% |
| Cost | 34640.00 |
| Alternative 4 | |
|---|---|
| Error | 77.0% |
| Cost | 34514.00 |
| Alternative 5 | |
|---|---|
| Error | 77.7% |
| Cost | 34512.00 |
| Alternative 6 | |
|---|---|
| Error | 77.7% |
| Cost | 34512.00 |
| Alternative 7 | |
|---|---|
| Error | 77.7% |
| Cost | 34512.00 |
| Alternative 8 | |
|---|---|
| Error | 90.2% |
| Cost | 20168.00 |
| Alternative 9 | |
|---|---|
| Error | 85.6% |
| Cost | 14156.00 |
| Alternative 10 | |
|---|---|
| Error | 88.2% |
| Cost | 14156.00 |
| Alternative 11 | |
|---|---|
| Error | 89.3% |
| Cost | 14156.00 |
| Alternative 12 | |
|---|---|
| Error | 81.8% |
| Cost | 14028.00 |
| Alternative 13 | |
|---|---|
| Error | 84.9% |
| Cost | 14028.00 |
| Alternative 14 | |
|---|---|
| Error | 85.4% |
| Cost | 14028.00 |
| Alternative 15 | |
|---|---|
| Error | 85.8% |
| Cost | 14028.00 |
| Alternative 16 | |
|---|---|
| Error | 70.5% |
| Cost | 6848.00 |
herbie shell --seed 2023121
(FPCore (c0 A V l)
:name "Henrywood and Agarwal, Equation (3)"
:precision binary64
(* c0 (sqrt (/ A (* V l)))))