
(FPCore (c0 w h D d M) :precision binary64 (let* ((t_0 (/ (* c0 (* d d)) (* (* w h) (* D D))))) (* (/ c0 (* 2.0 w)) (+ t_0 (sqrt (- (* t_0 t_0) (* M M)))))))
double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = (c0 * (d * d)) / ((w * h) * (D * D));
return (c0 / (2.0 * w)) * (t_0 + sqrt(((t_0 * t_0) - (M * M))));
}
real(8) function code(c0, w, h, d, d_1, m)
real(8), intent (in) :: c0
real(8), intent (in) :: w
real(8), intent (in) :: h
real(8), intent (in) :: d
real(8), intent (in) :: d_1
real(8), intent (in) :: m
real(8) :: t_0
t_0 = (c0 * (d_1 * d_1)) / ((w * h) * (d * d))
code = (c0 / (2.0d0 * w)) * (t_0 + sqrt(((t_0 * t_0) - (m * m))))
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = (c0 * (d * d)) / ((w * h) * (D * D));
return (c0 / (2.0 * w)) * (t_0 + Math.sqrt(((t_0 * t_0) - (M * M))));
}
def code(c0, w, h, D, d, M): t_0 = (c0 * (d * d)) / ((w * h) * (D * D)) return (c0 / (2.0 * w)) * (t_0 + math.sqrt(((t_0 * t_0) - (M * M))))
function code(c0, w, h, D, d, M) t_0 = Float64(Float64(c0 * Float64(d * d)) / Float64(Float64(w * h) * Float64(D * D))) return Float64(Float64(c0 / Float64(2.0 * w)) * Float64(t_0 + sqrt(Float64(Float64(t_0 * t_0) - Float64(M * M))))) end
function tmp = code(c0, w, h, D, d, M) t_0 = (c0 * (d * d)) / ((w * h) * (D * D)); tmp = (c0 / (2.0 * w)) * (t_0 + sqrt(((t_0 * t_0) - (M * M)))); end
code[c0_, w_, h_, D_, d_, M_] := Block[{t$95$0 = N[(N[(c0 * N[(d * d), $MachinePrecision]), $MachinePrecision] / N[(N[(w * h), $MachinePrecision] * N[(D * D), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, N[(N[(c0 / N[(2.0 * w), $MachinePrecision]), $MachinePrecision] * N[(t$95$0 + N[Sqrt[N[(N[(t$95$0 * t$95$0), $MachinePrecision] - N[(M * M), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)}\\
\frac{c0}{2 \cdot w} \cdot \left(t\_0 + \sqrt{t\_0 \cdot t\_0 - M \cdot M}\right)
\end{array}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 13 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (c0 w h D d M) :precision binary64 (let* ((t_0 (/ (* c0 (* d d)) (* (* w h) (* D D))))) (* (/ c0 (* 2.0 w)) (+ t_0 (sqrt (- (* t_0 t_0) (* M M)))))))
double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = (c0 * (d * d)) / ((w * h) * (D * D));
return (c0 / (2.0 * w)) * (t_0 + sqrt(((t_0 * t_0) - (M * M))));
}
real(8) function code(c0, w, h, d, d_1, m)
real(8), intent (in) :: c0
real(8), intent (in) :: w
real(8), intent (in) :: h
real(8), intent (in) :: d
real(8), intent (in) :: d_1
real(8), intent (in) :: m
real(8) :: t_0
t_0 = (c0 * (d_1 * d_1)) / ((w * h) * (d * d))
code = (c0 / (2.0d0 * w)) * (t_0 + sqrt(((t_0 * t_0) - (m * m))))
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = (c0 * (d * d)) / ((w * h) * (D * D));
return (c0 / (2.0 * w)) * (t_0 + Math.sqrt(((t_0 * t_0) - (M * M))));
}
def code(c0, w, h, D, d, M): t_0 = (c0 * (d * d)) / ((w * h) * (D * D)) return (c0 / (2.0 * w)) * (t_0 + math.sqrt(((t_0 * t_0) - (M * M))))
function code(c0, w, h, D, d, M) t_0 = Float64(Float64(c0 * Float64(d * d)) / Float64(Float64(w * h) * Float64(D * D))) return Float64(Float64(c0 / Float64(2.0 * w)) * Float64(t_0 + sqrt(Float64(Float64(t_0 * t_0) - Float64(M * M))))) end
function tmp = code(c0, w, h, D, d, M) t_0 = (c0 * (d * d)) / ((w * h) * (D * D)); tmp = (c0 / (2.0 * w)) * (t_0 + sqrt(((t_0 * t_0) - (M * M)))); end
code[c0_, w_, h_, D_, d_, M_] := Block[{t$95$0 = N[(N[(c0 * N[(d * d), $MachinePrecision]), $MachinePrecision] / N[(N[(w * h), $MachinePrecision] * N[(D * D), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, N[(N[(c0 / N[(2.0 * w), $MachinePrecision]), $MachinePrecision] * N[(t$95$0 + N[Sqrt[N[(N[(t$95$0 * t$95$0), $MachinePrecision] - N[(M * M), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)}\\
\frac{c0}{2 \cdot w} \cdot \left(t\_0 + \sqrt{t\_0 \cdot t\_0 - M \cdot M}\right)
\end{array}
\end{array}
(FPCore (c0 w h D d M)
:precision binary64
(let* ((t_0 (* c0 (* d d))) (t_1 (/ t_0 (* (* w h) (* D D)))))
(if (<=
(* (/ c0 (* 2.0 w)) (+ t_1 (sqrt (- (* t_1 t_1) (* M M)))))
INFINITY)
(* (/ (/ (/ c0 w) h) D) (/ (/ t_0 w) D))
(* (/ 0.25 d) (* D (/ (* D (* h (* M M))) d))))))
double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = c0 * (d * d);
double t_1 = t_0 / ((w * h) * (D * D));
double tmp;
if (((c0 / (2.0 * w)) * (t_1 + sqrt(((t_1 * t_1) - (M * M))))) <= ((double) INFINITY)) {
tmp = (((c0 / w) / h) / D) * ((t_0 / w) / D);
} else {
tmp = (0.25 / d) * (D * ((D * (h * (M * M))) / d));
}
return tmp;
}
public static double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = c0 * (d * d);
double t_1 = t_0 / ((w * h) * (D * D));
double tmp;
if (((c0 / (2.0 * w)) * (t_1 + Math.sqrt(((t_1 * t_1) - (M * M))))) <= Double.POSITIVE_INFINITY) {
tmp = (((c0 / w) / h) / D) * ((t_0 / w) / D);
} else {
tmp = (0.25 / d) * (D * ((D * (h * (M * M))) / d));
}
return tmp;
}
def code(c0, w, h, D, d, M): t_0 = c0 * (d * d) t_1 = t_0 / ((w * h) * (D * D)) tmp = 0 if ((c0 / (2.0 * w)) * (t_1 + math.sqrt(((t_1 * t_1) - (M * M))))) <= math.inf: tmp = (((c0 / w) / h) / D) * ((t_0 / w) / D) else: tmp = (0.25 / d) * (D * ((D * (h * (M * M))) / d)) return tmp
function code(c0, w, h, D, d, M) t_0 = Float64(c0 * Float64(d * d)) t_1 = Float64(t_0 / Float64(Float64(w * h) * Float64(D * D))) tmp = 0.0 if (Float64(Float64(c0 / Float64(2.0 * w)) * Float64(t_1 + sqrt(Float64(Float64(t_1 * t_1) - Float64(M * M))))) <= Inf) tmp = Float64(Float64(Float64(Float64(c0 / w) / h) / D) * Float64(Float64(t_0 / w) / D)); else tmp = Float64(Float64(0.25 / d) * Float64(D * Float64(Float64(D * Float64(h * Float64(M * M))) / d))); end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) t_0 = c0 * (d * d); t_1 = t_0 / ((w * h) * (D * D)); tmp = 0.0; if (((c0 / (2.0 * w)) * (t_1 + sqrt(((t_1 * t_1) - (M * M))))) <= Inf) tmp = (((c0 / w) / h) / D) * ((t_0 / w) / D); else tmp = (0.25 / d) * (D * ((D * (h * (M * M))) / d)); end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := Block[{t$95$0 = N[(c0 * N[(d * d), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(t$95$0 / N[(N[(w * h), $MachinePrecision] * N[(D * D), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(N[(c0 / N[(2.0 * w), $MachinePrecision]), $MachinePrecision] * N[(t$95$1 + N[Sqrt[N[(N[(t$95$1 * t$95$1), $MachinePrecision] - N[(M * M), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], Infinity], N[(N[(N[(N[(c0 / w), $MachinePrecision] / h), $MachinePrecision] / D), $MachinePrecision] * N[(N[(t$95$0 / w), $MachinePrecision] / D), $MachinePrecision]), $MachinePrecision], N[(N[(0.25 / d), $MachinePrecision] * N[(D * N[(N[(D * N[(h * N[(M * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := c0 \cdot \left(d \cdot d\right)\\
t_1 := \frac{t\_0}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)}\\
\mathbf{if}\;\frac{c0}{2 \cdot w} \cdot \left(t\_1 + \sqrt{t\_1 \cdot t\_1 - M \cdot M}\right) \leq \infty:\\
\;\;\;\;\frac{\frac{\frac{c0}{w}}{h}}{D} \cdot \frac{\frac{t\_0}{w}}{D}\\
\mathbf{else}:\\
\;\;\;\;\frac{0.25}{d} \cdot \left(D \cdot \frac{D \cdot \left(h \cdot \left(M \cdot M\right)\right)}{d}\right)\\
\end{array}
\end{array}
if (*.f64 (/.f64 c0 (*.f64 #s(literal 2 binary64) w)) (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 M M))))) < +inf.0Initial program 77.4%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified67.6%
Taylor expanded in c0 around inf
associate-*r/N/A
*-commutativeN/A
associate-/r*N/A
associate-*r/N/A
/-lowering-/.f64N/A
associate-*r/N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6478.6%
Simplified78.6%
associate-*r/N/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr79.5%
associate-/l/N/A
associate-/r/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-/r/N/A
div-invN/A
metadata-evalN/A
times-fracN/A
metadata-evalN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6482.6%
Applied egg-rr82.6%
if +inf.0 < (*.f64 (/.f64 c0 (*.f64 #s(literal 2 binary64) w)) (+.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (sqrt.f64 (-.f64 (*.f64 (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D))) (/.f64 (*.f64 c0 (*.f64 d d)) (*.f64 (*.f64 w h) (*.f64 D D)))) (*.f64 M M))))) Initial program 0.0%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified0.6%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified20.9%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6419.1%
Simplified19.1%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6445.4%
Simplified45.4%
associate-*r/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6459.9%
Applied egg-rr59.9%
Final simplification66.7%
(FPCore (c0 w h D d M)
:precision binary64
(let* ((t_0 (* D (* h (* M M)))) (t_1 (/ (/ (* t_0 (* D 0.25)) d) d)))
(if (<= d 1.6e-68)
t_1
(if (<= d 2.3e+119)
(* (/ (/ c0 (* w h)) D) (/ (/ c0 (/ w (* d d))) D))
(if (<= d 1.6e+185)
(* (/ 0.25 d) (* D (/ t_0 d)))
(if (<= d 3e+225)
(/ (/ (* (* d (/ c0 (/ h (/ c0 w)))) (/ d w)) D) D)
t_1))))))
double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = D * (h * (M * M));
double t_1 = ((t_0 * (D * 0.25)) / d) / d;
double tmp;
if (d <= 1.6e-68) {
tmp = t_1;
} else if (d <= 2.3e+119) {
tmp = ((c0 / (w * h)) / D) * ((c0 / (w / (d * d))) / D);
} else if (d <= 1.6e+185) {
tmp = (0.25 / d) * (D * (t_0 / d));
} else if (d <= 3e+225) {
tmp = (((d * (c0 / (h / (c0 / w)))) * (d / w)) / D) / D;
} else {
tmp = t_1;
}
return tmp;
}
real(8) function code(c0, w, h, d, d_1, m)
real(8), intent (in) :: c0
real(8), intent (in) :: w
real(8), intent (in) :: h
real(8), intent (in) :: d
real(8), intent (in) :: d_1
real(8), intent (in) :: m
real(8) :: t_0
real(8) :: t_1
real(8) :: tmp
t_0 = d * (h * (m * m))
t_1 = ((t_0 * (d * 0.25d0)) / d_1) / d_1
if (d_1 <= 1.6d-68) then
tmp = t_1
else if (d_1 <= 2.3d+119) then
tmp = ((c0 / (w * h)) / d) * ((c0 / (w / (d_1 * d_1))) / d)
else if (d_1 <= 1.6d+185) then
tmp = (0.25d0 / d_1) * (d * (t_0 / d_1))
else if (d_1 <= 3d+225) then
tmp = (((d_1 * (c0 / (h / (c0 / w)))) * (d_1 / w)) / d) / d
else
tmp = t_1
end if
code = tmp
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = D * (h * (M * M));
double t_1 = ((t_0 * (D * 0.25)) / d) / d;
double tmp;
if (d <= 1.6e-68) {
tmp = t_1;
} else if (d <= 2.3e+119) {
tmp = ((c0 / (w * h)) / D) * ((c0 / (w / (d * d))) / D);
} else if (d <= 1.6e+185) {
tmp = (0.25 / d) * (D * (t_0 / d));
} else if (d <= 3e+225) {
tmp = (((d * (c0 / (h / (c0 / w)))) * (d / w)) / D) / D;
} else {
tmp = t_1;
}
return tmp;
}
def code(c0, w, h, D, d, M): t_0 = D * (h * (M * M)) t_1 = ((t_0 * (D * 0.25)) / d) / d tmp = 0 if d <= 1.6e-68: tmp = t_1 elif d <= 2.3e+119: tmp = ((c0 / (w * h)) / D) * ((c0 / (w / (d * d))) / D) elif d <= 1.6e+185: tmp = (0.25 / d) * (D * (t_0 / d)) elif d <= 3e+225: tmp = (((d * (c0 / (h / (c0 / w)))) * (d / w)) / D) / D else: tmp = t_1 return tmp
function code(c0, w, h, D, d, M) t_0 = Float64(D * Float64(h * Float64(M * M))) t_1 = Float64(Float64(Float64(t_0 * Float64(D * 0.25)) / d) / d) tmp = 0.0 if (d <= 1.6e-68) tmp = t_1; elseif (d <= 2.3e+119) tmp = Float64(Float64(Float64(c0 / Float64(w * h)) / D) * Float64(Float64(c0 / Float64(w / Float64(d * d))) / D)); elseif (d <= 1.6e+185) tmp = Float64(Float64(0.25 / d) * Float64(D * Float64(t_0 / d))); elseif (d <= 3e+225) tmp = Float64(Float64(Float64(Float64(d * Float64(c0 / Float64(h / Float64(c0 / w)))) * Float64(d / w)) / D) / D); else tmp = t_1; end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) t_0 = D * (h * (M * M)); t_1 = ((t_0 * (D * 0.25)) / d) / d; tmp = 0.0; if (d <= 1.6e-68) tmp = t_1; elseif (d <= 2.3e+119) tmp = ((c0 / (w * h)) / D) * ((c0 / (w / (d * d))) / D); elseif (d <= 1.6e+185) tmp = (0.25 / d) * (D * (t_0 / d)); elseif (d <= 3e+225) tmp = (((d * (c0 / (h / (c0 / w)))) * (d / w)) / D) / D; else tmp = t_1; end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := Block[{t$95$0 = N[(D * N[(h * N[(M * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(N[(t$95$0 * N[(D * 0.25), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision]}, If[LessEqual[d, 1.6e-68], t$95$1, If[LessEqual[d, 2.3e+119], N[(N[(N[(c0 / N[(w * h), $MachinePrecision]), $MachinePrecision] / D), $MachinePrecision] * N[(N[(c0 / N[(w / N[(d * d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / D), $MachinePrecision]), $MachinePrecision], If[LessEqual[d, 1.6e+185], N[(N[(0.25 / d), $MachinePrecision] * N[(D * N[(t$95$0 / d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[d, 3e+225], N[(N[(N[(N[(d * N[(c0 / N[(h / N[(c0 / w), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(d / w), $MachinePrecision]), $MachinePrecision] / D), $MachinePrecision] / D), $MachinePrecision], t$95$1]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := D \cdot \left(h \cdot \left(M \cdot M\right)\right)\\
t_1 := \frac{\frac{t\_0 \cdot \left(D \cdot 0.25\right)}{d}}{d}\\
\mathbf{if}\;d \leq 1.6 \cdot 10^{-68}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;d \leq 2.3 \cdot 10^{+119}:\\
\;\;\;\;\frac{\frac{c0}{w \cdot h}}{D} \cdot \frac{\frac{c0}{\frac{w}{d \cdot d}}}{D}\\
\mathbf{elif}\;d \leq 1.6 \cdot 10^{+185}:\\
\;\;\;\;\frac{0.25}{d} \cdot \left(D \cdot \frac{t\_0}{d}\right)\\
\mathbf{elif}\;d \leq 3 \cdot 10^{+225}:\\
\;\;\;\;\frac{\frac{\left(d \cdot \frac{c0}{\frac{h}{\frac{c0}{w}}}\right) \cdot \frac{d}{w}}{D}}{D}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if d < 1.5999999999999999e-68 or 3e225 < d Initial program 21.9%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified18.6%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified13.2%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6413.7%
Simplified13.7%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6433.1%
Simplified33.1%
associate-*r/N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6447.8%
Applied egg-rr47.8%
if 1.5999999999999999e-68 < d < 2.3000000000000001e119Initial program 26.7%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified22.5%
Taylor expanded in c0 around inf
associate-*r/N/A
*-commutativeN/A
associate-/r*N/A
associate-*r/N/A
/-lowering-/.f64N/A
associate-*r/N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6434.8%
Simplified34.8%
associate-*r/N/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr42.3%
associate-*r*N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f6447.0%
Applied egg-rr47.0%
associate-/l/N/A
associate-/r/N/A
associate-/r/N/A
div-invN/A
metadata-evalN/A
times-fracN/A
metadata-evalN/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-rgt-identityN/A
associate-/l/N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
Applied egg-rr44.3%
if 2.3000000000000001e119 < d < 1.60000000000000003e185Initial program 5.9%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified5.9%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified35.4%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6429.5%
Simplified29.5%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6459.8%
Simplified59.8%
associate-*r/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6465.6%
Applied egg-rr65.6%
if 1.60000000000000003e185 < d < 3e225Initial program 41.2%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified45.7%
Taylor expanded in c0 around inf
associate-*r/N/A
*-commutativeN/A
associate-/r*N/A
associate-*r/N/A
/-lowering-/.f64N/A
associate-*r/N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6446.8%
Simplified46.8%
associate-*r/N/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr46.8%
associate-*r*N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f6451.4%
Applied egg-rr51.4%
associate-/r/N/A
associate-/r/N/A
div-invN/A
metadata-evalN/A
times-fracN/A
metadata-evalN/A
associate-*l*N/A
associate-/l*N/A
associate-*l*N/A
associate-/l*N/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr64.5%
Final simplification49.9%
(FPCore (c0 w h D d M)
:precision binary64
(let* ((t_0 (* D (* h (* M M)))))
(if (<= c0 -5.2e+32)
(* (/ 0.25 d) (* D (/ t_0 d)))
(if (<= c0 6e+70)
(/ (/ (/ (/ c0 (* w h)) (/ (/ w d) (* c0 d))) D) D)
(if (<= c0 1.06e+165)
(/ (/ (* t_0 (* D 0.25)) d) d)
(/ (/ (/ (* (/ c0 w) (/ c0 (/ w (* d d)))) h) D) D))))))
double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = D * (h * (M * M));
double tmp;
if (c0 <= -5.2e+32) {
tmp = (0.25 / d) * (D * (t_0 / d));
} else if (c0 <= 6e+70) {
tmp = (((c0 / (w * h)) / ((w / d) / (c0 * d))) / D) / D;
} else if (c0 <= 1.06e+165) {
tmp = ((t_0 * (D * 0.25)) / d) / d;
} else {
tmp = ((((c0 / w) * (c0 / (w / (d * d)))) / h) / D) / D;
}
return tmp;
}
real(8) function code(c0, w, h, d, d_1, m)
real(8), intent (in) :: c0
real(8), intent (in) :: w
real(8), intent (in) :: h
real(8), intent (in) :: d
real(8), intent (in) :: d_1
real(8), intent (in) :: m
real(8) :: t_0
real(8) :: tmp
t_0 = d * (h * (m * m))
if (c0 <= (-5.2d+32)) then
tmp = (0.25d0 / d_1) * (d * (t_0 / d_1))
else if (c0 <= 6d+70) then
tmp = (((c0 / (w * h)) / ((w / d_1) / (c0 * d_1))) / d) / d
else if (c0 <= 1.06d+165) then
tmp = ((t_0 * (d * 0.25d0)) / d_1) / d_1
else
tmp = ((((c0 / w) * (c0 / (w / (d_1 * d_1)))) / h) / d) / d
end if
code = tmp
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = D * (h * (M * M));
double tmp;
if (c0 <= -5.2e+32) {
tmp = (0.25 / d) * (D * (t_0 / d));
} else if (c0 <= 6e+70) {
tmp = (((c0 / (w * h)) / ((w / d) / (c0 * d))) / D) / D;
} else if (c0 <= 1.06e+165) {
tmp = ((t_0 * (D * 0.25)) / d) / d;
} else {
tmp = ((((c0 / w) * (c0 / (w / (d * d)))) / h) / D) / D;
}
return tmp;
}
def code(c0, w, h, D, d, M): t_0 = D * (h * (M * M)) tmp = 0 if c0 <= -5.2e+32: tmp = (0.25 / d) * (D * (t_0 / d)) elif c0 <= 6e+70: tmp = (((c0 / (w * h)) / ((w / d) / (c0 * d))) / D) / D elif c0 <= 1.06e+165: tmp = ((t_0 * (D * 0.25)) / d) / d else: tmp = ((((c0 / w) * (c0 / (w / (d * d)))) / h) / D) / D return tmp
function code(c0, w, h, D, d, M) t_0 = Float64(D * Float64(h * Float64(M * M))) tmp = 0.0 if (c0 <= -5.2e+32) tmp = Float64(Float64(0.25 / d) * Float64(D * Float64(t_0 / d))); elseif (c0 <= 6e+70) tmp = Float64(Float64(Float64(Float64(c0 / Float64(w * h)) / Float64(Float64(w / d) / Float64(c0 * d))) / D) / D); elseif (c0 <= 1.06e+165) tmp = Float64(Float64(Float64(t_0 * Float64(D * 0.25)) / d) / d); else tmp = Float64(Float64(Float64(Float64(Float64(c0 / w) * Float64(c0 / Float64(w / Float64(d * d)))) / h) / D) / D); end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) t_0 = D * (h * (M * M)); tmp = 0.0; if (c0 <= -5.2e+32) tmp = (0.25 / d) * (D * (t_0 / d)); elseif (c0 <= 6e+70) tmp = (((c0 / (w * h)) / ((w / d) / (c0 * d))) / D) / D; elseif (c0 <= 1.06e+165) tmp = ((t_0 * (D * 0.25)) / d) / d; else tmp = ((((c0 / w) * (c0 / (w / (d * d)))) / h) / D) / D; end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := Block[{t$95$0 = N[(D * N[(h * N[(M * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[c0, -5.2e+32], N[(N[(0.25 / d), $MachinePrecision] * N[(D * N[(t$95$0 / d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[c0, 6e+70], N[(N[(N[(N[(c0 / N[(w * h), $MachinePrecision]), $MachinePrecision] / N[(N[(w / d), $MachinePrecision] / N[(c0 * d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / D), $MachinePrecision] / D), $MachinePrecision], If[LessEqual[c0, 1.06e+165], N[(N[(N[(t$95$0 * N[(D * 0.25), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision], N[(N[(N[(N[(N[(c0 / w), $MachinePrecision] * N[(c0 / N[(w / N[(d * d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / h), $MachinePrecision] / D), $MachinePrecision] / D), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := D \cdot \left(h \cdot \left(M \cdot M\right)\right)\\
\mathbf{if}\;c0 \leq -5.2 \cdot 10^{+32}:\\
\;\;\;\;\frac{0.25}{d} \cdot \left(D \cdot \frac{t\_0}{d}\right)\\
\mathbf{elif}\;c0 \leq 6 \cdot 10^{+70}:\\
\;\;\;\;\frac{\frac{\frac{\frac{c0}{w \cdot h}}{\frac{\frac{w}{d}}{c0 \cdot d}}}{D}}{D}\\
\mathbf{elif}\;c0 \leq 1.06 \cdot 10^{+165}:\\
\;\;\;\;\frac{\frac{t\_0 \cdot \left(D \cdot 0.25\right)}{d}}{d}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{\frac{c0}{w} \cdot \frac{c0}{\frac{w}{d \cdot d}}}{h}}{D}}{D}\\
\end{array}
\end{array}
if c0 < -5.2000000000000004e32Initial program 14.8%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified13.3%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified23.7%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6418.6%
Simplified18.6%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6444.0%
Simplified44.0%
associate-*r/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6461.7%
Applied egg-rr61.7%
if -5.2000000000000004e32 < c0 < 5.99999999999999952e70Initial program 27.7%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified24.4%
Taylor expanded in c0 around inf
associate-*r/N/A
*-commutativeN/A
associate-/r*N/A
associate-*r/N/A
/-lowering-/.f64N/A
associate-*r/N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6436.5%
Simplified36.5%
associate-*r/N/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr44.4%
associate-*r*N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f6449.8%
Applied egg-rr49.8%
/-lowering-/.f64N/A
Applied egg-rr54.6%
if 5.99999999999999952e70 < c0 < 1.0600000000000001e165Initial program 0.4%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified0.3%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified31.9%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6426.5%
Simplified26.5%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6443.7%
Simplified43.7%
associate-*r/N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6460.1%
Applied egg-rr60.1%
if 1.0600000000000001e165 < c0 Initial program 32.5%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified29.8%
Taylor expanded in c0 around inf
associate-*r/N/A
*-commutativeN/A
associate-/r*N/A
associate-*r/N/A
/-lowering-/.f64N/A
associate-*r/N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6444.0%
Simplified44.0%
associate-*r/N/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr50.1%
associate-*r*N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f6450.3%
Applied egg-rr50.3%
associate-/r/N/A
associate-/r/N/A
div-invN/A
metadata-evalN/A
times-fracN/A
metadata-evalN/A
*-rgt-identityN/A
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*l*N/A
associate-/l*N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6452.7%
Applied egg-rr52.7%
Final simplification56.4%
(FPCore (c0 w h D d M)
:precision binary64
(let* ((t_0 (* D (* h (* M M)))))
(if (<= D 1.06e-181)
(* 0.25 (/ (* D (* M (* D (* h M)))) (* d d)))
(if (<= D 5.8e-61)
(/ (/ (* t_0 (* D 0.25)) d) d)
(if (<= D 4e+95)
(* c0 (/ (* c0 (* d d)) (* (* D D) (* h (* w w)))))
(* (/ 0.25 d) (* D (/ t_0 d))))))))
double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = D * (h * (M * M));
double tmp;
if (D <= 1.06e-181) {
tmp = 0.25 * ((D * (M * (D * (h * M)))) / (d * d));
} else if (D <= 5.8e-61) {
tmp = ((t_0 * (D * 0.25)) / d) / d;
} else if (D <= 4e+95) {
tmp = c0 * ((c0 * (d * d)) / ((D * D) * (h * (w * w))));
} else {
tmp = (0.25 / d) * (D * (t_0 / d));
}
return tmp;
}
real(8) function code(c0, w, h, d, d_1, m)
real(8), intent (in) :: c0
real(8), intent (in) :: w
real(8), intent (in) :: h
real(8), intent (in) :: d
real(8), intent (in) :: d_1
real(8), intent (in) :: m
real(8) :: t_0
real(8) :: tmp
t_0 = d * (h * (m * m))
if (d <= 1.06d-181) then
tmp = 0.25d0 * ((d * (m * (d * (h * m)))) / (d_1 * d_1))
else if (d <= 5.8d-61) then
tmp = ((t_0 * (d * 0.25d0)) / d_1) / d_1
else if (d <= 4d+95) then
tmp = c0 * ((c0 * (d_1 * d_1)) / ((d * d) * (h * (w * w))))
else
tmp = (0.25d0 / d_1) * (d * (t_0 / d_1))
end if
code = tmp
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = D * (h * (M * M));
double tmp;
if (D <= 1.06e-181) {
tmp = 0.25 * ((D * (M * (D * (h * M)))) / (d * d));
} else if (D <= 5.8e-61) {
tmp = ((t_0 * (D * 0.25)) / d) / d;
} else if (D <= 4e+95) {
tmp = c0 * ((c0 * (d * d)) / ((D * D) * (h * (w * w))));
} else {
tmp = (0.25 / d) * (D * (t_0 / d));
}
return tmp;
}
def code(c0, w, h, D, d, M): t_0 = D * (h * (M * M)) tmp = 0 if D <= 1.06e-181: tmp = 0.25 * ((D * (M * (D * (h * M)))) / (d * d)) elif D <= 5.8e-61: tmp = ((t_0 * (D * 0.25)) / d) / d elif D <= 4e+95: tmp = c0 * ((c0 * (d * d)) / ((D * D) * (h * (w * w)))) else: tmp = (0.25 / d) * (D * (t_0 / d)) return tmp
function code(c0, w, h, D, d, M) t_0 = Float64(D * Float64(h * Float64(M * M))) tmp = 0.0 if (D <= 1.06e-181) tmp = Float64(0.25 * Float64(Float64(D * Float64(M * Float64(D * Float64(h * M)))) / Float64(d * d))); elseif (D <= 5.8e-61) tmp = Float64(Float64(Float64(t_0 * Float64(D * 0.25)) / d) / d); elseif (D <= 4e+95) tmp = Float64(c0 * Float64(Float64(c0 * Float64(d * d)) / Float64(Float64(D * D) * Float64(h * Float64(w * w))))); else tmp = Float64(Float64(0.25 / d) * Float64(D * Float64(t_0 / d))); end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) t_0 = D * (h * (M * M)); tmp = 0.0; if (D <= 1.06e-181) tmp = 0.25 * ((D * (M * (D * (h * M)))) / (d * d)); elseif (D <= 5.8e-61) tmp = ((t_0 * (D * 0.25)) / d) / d; elseif (D <= 4e+95) tmp = c0 * ((c0 * (d * d)) / ((D * D) * (h * (w * w)))); else tmp = (0.25 / d) * (D * (t_0 / d)); end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := Block[{t$95$0 = N[(D * N[(h * N[(M * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[D, 1.06e-181], N[(0.25 * N[(N[(D * N[(M * N[(D * N[(h * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(d * d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[D, 5.8e-61], N[(N[(N[(t$95$0 * N[(D * 0.25), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision], If[LessEqual[D, 4e+95], N[(c0 * N[(N[(c0 * N[(d * d), $MachinePrecision]), $MachinePrecision] / N[(N[(D * D), $MachinePrecision] * N[(h * N[(w * w), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(0.25 / d), $MachinePrecision] * N[(D * N[(t$95$0 / d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := D \cdot \left(h \cdot \left(M \cdot M\right)\right)\\
\mathbf{if}\;D \leq 1.06 \cdot 10^{-181}:\\
\;\;\;\;0.25 \cdot \frac{D \cdot \left(M \cdot \left(D \cdot \left(h \cdot M\right)\right)\right)}{d \cdot d}\\
\mathbf{elif}\;D \leq 5.8 \cdot 10^{-61}:\\
\;\;\;\;\frac{\frac{t\_0 \cdot \left(D \cdot 0.25\right)}{d}}{d}\\
\mathbf{elif}\;D \leq 4 \cdot 10^{+95}:\\
\;\;\;\;c0 \cdot \frac{c0 \cdot \left(d \cdot d\right)}{\left(D \cdot D\right) \cdot \left(h \cdot \left(w \cdot w\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{0.25}{d} \cdot \left(D \cdot \frac{t\_0}{d}\right)\\
\end{array}
\end{array}
if D < 1.06000000000000001e-181Initial program 21.5%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified19.4%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified16.5%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6415.8%
Simplified15.8%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6436.5%
Simplified36.5%
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6443.9%
Applied egg-rr43.9%
if 1.06000000000000001e-181 < D < 5.7999999999999999e-61Initial program 11.3%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified11.3%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified26.5%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6422.8%
Simplified22.8%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6445.5%
Simplified45.5%
associate-*r/N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6471.5%
Applied egg-rr71.5%
if 5.7999999999999999e-61 < D < 4.00000000000000008e95Initial program 52.4%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified46.9%
Applied egg-rr40.1%
Taylor expanded in w around 0
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6449.5%
Simplified49.5%
if 4.00000000000000008e95 < D Initial program 6.7%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified0.0%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified20.0%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6420.1%
Simplified20.1%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6442.0%
Simplified42.0%
associate-*r/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6460.7%
Applied egg-rr60.7%
Final simplification48.5%
(FPCore (c0 w h D d M)
:precision binary64
(if (<= (* D D) 1e-298)
0.0
(if (<= (* D D) 1e+308)
(* 0.25 (* (/ (* D D) d) (/ (* h (* M M)) d)))
(* 0.25 (/ (* D (* h (* D (* M M)))) (* d d))))))
double code(double c0, double w, double h, double D, double d, double M) {
double tmp;
if ((D * D) <= 1e-298) {
tmp = 0.0;
} else if ((D * D) <= 1e+308) {
tmp = 0.25 * (((D * D) / d) * ((h * (M * M)) / d));
} else {
tmp = 0.25 * ((D * (h * (D * (M * M)))) / (d * d));
}
return tmp;
}
real(8) function code(c0, w, h, d, d_1, m)
real(8), intent (in) :: c0
real(8), intent (in) :: w
real(8), intent (in) :: h
real(8), intent (in) :: d
real(8), intent (in) :: d_1
real(8), intent (in) :: m
real(8) :: tmp
if ((d * d) <= 1d-298) then
tmp = 0.0d0
else if ((d * d) <= 1d+308) then
tmp = 0.25d0 * (((d * d) / d_1) * ((h * (m * m)) / d_1))
else
tmp = 0.25d0 * ((d * (h * (d * (m * m)))) / (d_1 * d_1))
end if
code = tmp
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
double tmp;
if ((D * D) <= 1e-298) {
tmp = 0.0;
} else if ((D * D) <= 1e+308) {
tmp = 0.25 * (((D * D) / d) * ((h * (M * M)) / d));
} else {
tmp = 0.25 * ((D * (h * (D * (M * M)))) / (d * d));
}
return tmp;
}
def code(c0, w, h, D, d, M): tmp = 0 if (D * D) <= 1e-298: tmp = 0.0 elif (D * D) <= 1e+308: tmp = 0.25 * (((D * D) / d) * ((h * (M * M)) / d)) else: tmp = 0.25 * ((D * (h * (D * (M * M)))) / (d * d)) return tmp
function code(c0, w, h, D, d, M) tmp = 0.0 if (Float64(D * D) <= 1e-298) tmp = 0.0; elseif (Float64(D * D) <= 1e+308) tmp = Float64(0.25 * Float64(Float64(Float64(D * D) / d) * Float64(Float64(h * Float64(M * M)) / d))); else tmp = Float64(0.25 * Float64(Float64(D * Float64(h * Float64(D * Float64(M * M)))) / Float64(d * d))); end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) tmp = 0.0; if ((D * D) <= 1e-298) tmp = 0.0; elseif ((D * D) <= 1e+308) tmp = 0.25 * (((D * D) / d) * ((h * (M * M)) / d)); else tmp = 0.25 * ((D * (h * (D * (M * M)))) / (d * d)); end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := If[LessEqual[N[(D * D), $MachinePrecision], 1e-298], 0.0, If[LessEqual[N[(D * D), $MachinePrecision], 1e+308], N[(0.25 * N[(N[(N[(D * D), $MachinePrecision] / d), $MachinePrecision] * N[(N[(h * N[(M * M), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(0.25 * N[(N[(D * N[(h * N[(D * N[(M * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(d * d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;D \cdot D \leq 10^{-298}:\\
\;\;\;\;0\\
\mathbf{elif}\;D \cdot D \leq 10^{+308}:\\
\;\;\;\;0.25 \cdot \left(\frac{D \cdot D}{d} \cdot \frac{h \cdot \left(M \cdot M\right)}{d}\right)\\
\mathbf{else}:\\
\;\;\;\;0.25 \cdot \frac{D \cdot \left(h \cdot \left(D \cdot \left(M \cdot M\right)\right)\right)}{d \cdot d}\\
\end{array}
\end{array}
if (*.f64 D D) < 9.99999999999999912e-299Initial program 18.5%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified17.5%
Taylor expanded in c0 around -inf
associate-*r*N/A
mul-1-negN/A
distribute-lft1-inN/A
metadata-evalN/A
mul0-lftN/A
metadata-evalN/A
distribute-lft-neg-inN/A
distribute-rgt-neg-inN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
metadata-eval39.0%
Simplified39.0%
associate-*r*N/A
mul0-rgt45.7%
Applied egg-rr45.7%
if 9.99999999999999912e-299 < (*.f64 D D) < 1e308Initial program 31.0%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified26.8%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified18.3%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6417.4%
Simplified17.4%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6435.2%
Simplified35.2%
associate-*r*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6444.3%
Applied egg-rr44.3%
if 1e308 < (*.f64 D D) Initial program 0.0%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified0.0%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified0.0%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f640.1%
Simplified0.1%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6427.5%
Simplified27.5%
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6437.5%
Applied egg-rr37.5%
Final simplification44.3%
(FPCore (c0 w h D d M)
:precision binary64
(if (<= (* d d) 1e-154)
(* 0.25 (* (/ (* D D) d) (/ (* h (* M M)) d)))
(if (<= (* d d) 5e+294)
(* 0.25 (/ (* D (* D (* M (* h M)))) (* d d)))
0.0)))
double code(double c0, double w, double h, double D, double d, double M) {
double tmp;
if ((d * d) <= 1e-154) {
tmp = 0.25 * (((D * D) / d) * ((h * (M * M)) / d));
} else if ((d * d) <= 5e+294) {
tmp = 0.25 * ((D * (D * (M * (h * M)))) / (d * d));
} else {
tmp = 0.0;
}
return tmp;
}
real(8) function code(c0, w, h, d, d_1, m)
real(8), intent (in) :: c0
real(8), intent (in) :: w
real(8), intent (in) :: h
real(8), intent (in) :: d
real(8), intent (in) :: d_1
real(8), intent (in) :: m
real(8) :: tmp
if ((d_1 * d_1) <= 1d-154) then
tmp = 0.25d0 * (((d * d) / d_1) * ((h * (m * m)) / d_1))
else if ((d_1 * d_1) <= 5d+294) then
tmp = 0.25d0 * ((d * (d * (m * (h * m)))) / (d_1 * d_1))
else
tmp = 0.0d0
end if
code = tmp
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
double tmp;
if ((d * d) <= 1e-154) {
tmp = 0.25 * (((D * D) / d) * ((h * (M * M)) / d));
} else if ((d * d) <= 5e+294) {
tmp = 0.25 * ((D * (D * (M * (h * M)))) / (d * d));
} else {
tmp = 0.0;
}
return tmp;
}
def code(c0, w, h, D, d, M): tmp = 0 if (d * d) <= 1e-154: tmp = 0.25 * (((D * D) / d) * ((h * (M * M)) / d)) elif (d * d) <= 5e+294: tmp = 0.25 * ((D * (D * (M * (h * M)))) / (d * d)) else: tmp = 0.0 return tmp
function code(c0, w, h, D, d, M) tmp = 0.0 if (Float64(d * d) <= 1e-154) tmp = Float64(0.25 * Float64(Float64(Float64(D * D) / d) * Float64(Float64(h * Float64(M * M)) / d))); elseif (Float64(d * d) <= 5e+294) tmp = Float64(0.25 * Float64(Float64(D * Float64(D * Float64(M * Float64(h * M)))) / Float64(d * d))); else tmp = 0.0; end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) tmp = 0.0; if ((d * d) <= 1e-154) tmp = 0.25 * (((D * D) / d) * ((h * (M * M)) / d)); elseif ((d * d) <= 5e+294) tmp = 0.25 * ((D * (D * (M * (h * M)))) / (d * d)); else tmp = 0.0; end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := If[LessEqual[N[(d * d), $MachinePrecision], 1e-154], N[(0.25 * N[(N[(N[(D * D), $MachinePrecision] / d), $MachinePrecision] * N[(N[(h * N[(M * M), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(d * d), $MachinePrecision], 5e+294], N[(0.25 * N[(N[(D * N[(D * N[(M * N[(h * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(d * d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 0.0]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;d \cdot d \leq 10^{-154}:\\
\;\;\;\;0.25 \cdot \left(\frac{D \cdot D}{d} \cdot \frac{h \cdot \left(M \cdot M\right)}{d}\right)\\
\mathbf{elif}\;d \cdot d \leq 5 \cdot 10^{+294}:\\
\;\;\;\;0.25 \cdot \frac{D \cdot \left(D \cdot \left(M \cdot \left(h \cdot M\right)\right)\right)}{d \cdot d}\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}
\end{array}
if (*.f64 d d) < 9.9999999999999997e-155Initial program 6.8%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified4.7%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified11.2%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f648.9%
Simplified8.9%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6431.9%
Simplified31.9%
associate-*r*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6444.6%
Applied egg-rr44.6%
if 9.9999999999999997e-155 < (*.f64 d d) < 4.9999999999999999e294Initial program 29.7%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified24.6%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified21.2%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6420.1%
Simplified20.1%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6442.6%
Simplified42.6%
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f6448.0%
Applied egg-rr48.0%
if 4.9999999999999999e294 < (*.f64 d d) Initial program 24.1%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified24.1%
Taylor expanded in c0 around -inf
associate-*r*N/A
mul-1-negN/A
distribute-lft1-inN/A
metadata-evalN/A
mul0-lftN/A
metadata-evalN/A
distribute-lft-neg-inN/A
distribute-rgt-neg-inN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
metadata-eval33.9%
Simplified33.9%
associate-*r*N/A
mul0-rgt40.0%
Applied egg-rr40.0%
Final simplification44.3%
(FPCore (c0 w h D d M)
:precision binary64
(let* ((t_0 (* h (* M M))))
(if (<= (* D D) 1e-298)
0.0
(if (<= (* D D) 1e+294)
(* 0.25 (* (/ (* D D) d) (/ t_0 d)))
(* 0.25 (* (* D t_0) (/ D (* d d))))))))
double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = h * (M * M);
double tmp;
if ((D * D) <= 1e-298) {
tmp = 0.0;
} else if ((D * D) <= 1e+294) {
tmp = 0.25 * (((D * D) / d) * (t_0 / d));
} else {
tmp = 0.25 * ((D * t_0) * (D / (d * d)));
}
return tmp;
}
real(8) function code(c0, w, h, d, d_1, m)
real(8), intent (in) :: c0
real(8), intent (in) :: w
real(8), intent (in) :: h
real(8), intent (in) :: d
real(8), intent (in) :: d_1
real(8), intent (in) :: m
real(8) :: t_0
real(8) :: tmp
t_0 = h * (m * m)
if ((d * d) <= 1d-298) then
tmp = 0.0d0
else if ((d * d) <= 1d+294) then
tmp = 0.25d0 * (((d * d) / d_1) * (t_0 / d_1))
else
tmp = 0.25d0 * ((d * t_0) * (d / (d_1 * d_1)))
end if
code = tmp
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = h * (M * M);
double tmp;
if ((D * D) <= 1e-298) {
tmp = 0.0;
} else if ((D * D) <= 1e+294) {
tmp = 0.25 * (((D * D) / d) * (t_0 / d));
} else {
tmp = 0.25 * ((D * t_0) * (D / (d * d)));
}
return tmp;
}
def code(c0, w, h, D, d, M): t_0 = h * (M * M) tmp = 0 if (D * D) <= 1e-298: tmp = 0.0 elif (D * D) <= 1e+294: tmp = 0.25 * (((D * D) / d) * (t_0 / d)) else: tmp = 0.25 * ((D * t_0) * (D / (d * d))) return tmp
function code(c0, w, h, D, d, M) t_0 = Float64(h * Float64(M * M)) tmp = 0.0 if (Float64(D * D) <= 1e-298) tmp = 0.0; elseif (Float64(D * D) <= 1e+294) tmp = Float64(0.25 * Float64(Float64(Float64(D * D) / d) * Float64(t_0 / d))); else tmp = Float64(0.25 * Float64(Float64(D * t_0) * Float64(D / Float64(d * d)))); end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) t_0 = h * (M * M); tmp = 0.0; if ((D * D) <= 1e-298) tmp = 0.0; elseif ((D * D) <= 1e+294) tmp = 0.25 * (((D * D) / d) * (t_0 / d)); else tmp = 0.25 * ((D * t_0) * (D / (d * d))); end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := Block[{t$95$0 = N[(h * N[(M * M), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(D * D), $MachinePrecision], 1e-298], 0.0, If[LessEqual[N[(D * D), $MachinePrecision], 1e+294], N[(0.25 * N[(N[(N[(D * D), $MachinePrecision] / d), $MachinePrecision] * N[(t$95$0 / d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(0.25 * N[(N[(D * t$95$0), $MachinePrecision] * N[(D / N[(d * d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := h \cdot \left(M \cdot M\right)\\
\mathbf{if}\;D \cdot D \leq 10^{-298}:\\
\;\;\;\;0\\
\mathbf{elif}\;D \cdot D \leq 10^{+294}:\\
\;\;\;\;0.25 \cdot \left(\frac{D \cdot D}{d} \cdot \frac{t\_0}{d}\right)\\
\mathbf{else}:\\
\;\;\;\;0.25 \cdot \left(\left(D \cdot t\_0\right) \cdot \frac{D}{d \cdot d}\right)\\
\end{array}
\end{array}
if (*.f64 D D) < 9.99999999999999912e-299Initial program 18.5%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified17.5%
Taylor expanded in c0 around -inf
associate-*r*N/A
mul-1-negN/A
distribute-lft1-inN/A
metadata-evalN/A
mul0-lftN/A
metadata-evalN/A
distribute-lft-neg-inN/A
distribute-rgt-neg-inN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
metadata-eval39.0%
Simplified39.0%
associate-*r*N/A
mul0-rgt45.7%
Applied egg-rr45.7%
if 9.99999999999999912e-299 < (*.f64 D D) < 1.00000000000000007e294Initial program 31.3%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified27.0%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified18.5%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6417.5%
Simplified17.5%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6434.7%
Simplified34.7%
associate-*r*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6443.8%
Applied egg-rr43.8%
if 1.00000000000000007e294 < (*.f64 D D) Initial program 0.0%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified0.0%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified0.1%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f640.1%
Simplified0.1%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6430.9%
Simplified30.9%
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6435.7%
Applied egg-rr35.7%
(FPCore (c0 w h D d M)
:precision binary64
(let* ((t_0 (/ (/ (* (* D (* h (* M M))) (* D 0.25)) d) d)))
(if (<= d 1.4e-69)
t_0
(if (<= d 3.1e+119)
(* (/ (/ c0 (* w h)) D) (/ (/ c0 (/ w (* d d))) D))
t_0))))
double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = (((D * (h * (M * M))) * (D * 0.25)) / d) / d;
double tmp;
if (d <= 1.4e-69) {
tmp = t_0;
} else if (d <= 3.1e+119) {
tmp = ((c0 / (w * h)) / D) * ((c0 / (w / (d * d))) / D);
} else {
tmp = t_0;
}
return tmp;
}
real(8) function code(c0, w, h, d, d_1, m)
real(8), intent (in) :: c0
real(8), intent (in) :: w
real(8), intent (in) :: h
real(8), intent (in) :: d
real(8), intent (in) :: d_1
real(8), intent (in) :: m
real(8) :: t_0
real(8) :: tmp
t_0 = (((d * (h * (m * m))) * (d * 0.25d0)) / d_1) / d_1
if (d_1 <= 1.4d-69) then
tmp = t_0
else if (d_1 <= 3.1d+119) then
tmp = ((c0 / (w * h)) / d) * ((c0 / (w / (d_1 * d_1))) / d)
else
tmp = t_0
end if
code = tmp
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = (((D * (h * (M * M))) * (D * 0.25)) / d) / d;
double tmp;
if (d <= 1.4e-69) {
tmp = t_0;
} else if (d <= 3.1e+119) {
tmp = ((c0 / (w * h)) / D) * ((c0 / (w / (d * d))) / D);
} else {
tmp = t_0;
}
return tmp;
}
def code(c0, w, h, D, d, M): t_0 = (((D * (h * (M * M))) * (D * 0.25)) / d) / d tmp = 0 if d <= 1.4e-69: tmp = t_0 elif d <= 3.1e+119: tmp = ((c0 / (w * h)) / D) * ((c0 / (w / (d * d))) / D) else: tmp = t_0 return tmp
function code(c0, w, h, D, d, M) t_0 = Float64(Float64(Float64(Float64(D * Float64(h * Float64(M * M))) * Float64(D * 0.25)) / d) / d) tmp = 0.0 if (d <= 1.4e-69) tmp = t_0; elseif (d <= 3.1e+119) tmp = Float64(Float64(Float64(c0 / Float64(w * h)) / D) * Float64(Float64(c0 / Float64(w / Float64(d * d))) / D)); else tmp = t_0; end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) t_0 = (((D * (h * (M * M))) * (D * 0.25)) / d) / d; tmp = 0.0; if (d <= 1.4e-69) tmp = t_0; elseif (d <= 3.1e+119) tmp = ((c0 / (w * h)) / D) * ((c0 / (w / (d * d))) / D); else tmp = t_0; end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := Block[{t$95$0 = N[(N[(N[(N[(D * N[(h * N[(M * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(D * 0.25), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision]}, If[LessEqual[d, 1.4e-69], t$95$0, If[LessEqual[d, 3.1e+119], N[(N[(N[(c0 / N[(w * h), $MachinePrecision]), $MachinePrecision] / D), $MachinePrecision] * N[(N[(c0 / N[(w / N[(d * d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / D), $MachinePrecision]), $MachinePrecision], t$95$0]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{\frac{\left(D \cdot \left(h \cdot \left(M \cdot M\right)\right)\right) \cdot \left(D \cdot 0.25\right)}{d}}{d}\\
\mathbf{if}\;d \leq 1.4 \cdot 10^{-69}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;d \leq 3.1 \cdot 10^{+119}:\\
\;\;\;\;\frac{\frac{c0}{w \cdot h}}{D} \cdot \frac{\frac{c0}{\frac{w}{d \cdot d}}}{D}\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if d < 1.3999999999999999e-69 or 3.09999999999999995e119 < d Initial program 22.6%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified20.4%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified15.6%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6415.1%
Simplified15.1%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6433.8%
Simplified33.8%
associate-*r/N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6446.8%
Applied egg-rr46.8%
if 1.3999999999999999e-69 < d < 3.09999999999999995e119Initial program 26.7%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified22.5%
Taylor expanded in c0 around inf
associate-*r/N/A
*-commutativeN/A
associate-/r*N/A
associate-*r/N/A
/-lowering-/.f64N/A
associate-*r/N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6434.8%
Simplified34.8%
associate-*r/N/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr42.3%
associate-*r*N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f6447.0%
Applied egg-rr47.0%
associate-/l/N/A
associate-/r/N/A
associate-/r/N/A
div-invN/A
metadata-evalN/A
times-fracN/A
metadata-evalN/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-rgt-identityN/A
associate-/l/N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
Applied egg-rr44.3%
Final simplification46.4%
(FPCore (c0 w h D d M)
:precision binary64
(if (<= D 2.5e-153)
(* 0.25 (/ (* D (* M (* D (* h M)))) (* d d)))
(if (<= D 2.25e+154)
(* 0.25 (* (/ (* D D) d) (/ (* h (* M M)) d)))
(* 0.25 (/ (* D (* h (* D (* M M)))) (* d d))))))
double code(double c0, double w, double h, double D, double d, double M) {
double tmp;
if (D <= 2.5e-153) {
tmp = 0.25 * ((D * (M * (D * (h * M)))) / (d * d));
} else if (D <= 2.25e+154) {
tmp = 0.25 * (((D * D) / d) * ((h * (M * M)) / d));
} else {
tmp = 0.25 * ((D * (h * (D * (M * M)))) / (d * d));
}
return tmp;
}
real(8) function code(c0, w, h, d, d_1, m)
real(8), intent (in) :: c0
real(8), intent (in) :: w
real(8), intent (in) :: h
real(8), intent (in) :: d
real(8), intent (in) :: d_1
real(8), intent (in) :: m
real(8) :: tmp
if (d <= 2.5d-153) then
tmp = 0.25d0 * ((d * (m * (d * (h * m)))) / (d_1 * d_1))
else if (d <= 2.25d+154) then
tmp = 0.25d0 * (((d * d) / d_1) * ((h * (m * m)) / d_1))
else
tmp = 0.25d0 * ((d * (h * (d * (m * m)))) / (d_1 * d_1))
end if
code = tmp
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
double tmp;
if (D <= 2.5e-153) {
tmp = 0.25 * ((D * (M * (D * (h * M)))) / (d * d));
} else if (D <= 2.25e+154) {
tmp = 0.25 * (((D * D) / d) * ((h * (M * M)) / d));
} else {
tmp = 0.25 * ((D * (h * (D * (M * M)))) / (d * d));
}
return tmp;
}
def code(c0, w, h, D, d, M): tmp = 0 if D <= 2.5e-153: tmp = 0.25 * ((D * (M * (D * (h * M)))) / (d * d)) elif D <= 2.25e+154: tmp = 0.25 * (((D * D) / d) * ((h * (M * M)) / d)) else: tmp = 0.25 * ((D * (h * (D * (M * M)))) / (d * d)) return tmp
function code(c0, w, h, D, d, M) tmp = 0.0 if (D <= 2.5e-153) tmp = Float64(0.25 * Float64(Float64(D * Float64(M * Float64(D * Float64(h * M)))) / Float64(d * d))); elseif (D <= 2.25e+154) tmp = Float64(0.25 * Float64(Float64(Float64(D * D) / d) * Float64(Float64(h * Float64(M * M)) / d))); else tmp = Float64(0.25 * Float64(Float64(D * Float64(h * Float64(D * Float64(M * M)))) / Float64(d * d))); end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) tmp = 0.0; if (D <= 2.5e-153) tmp = 0.25 * ((D * (M * (D * (h * M)))) / (d * d)); elseif (D <= 2.25e+154) tmp = 0.25 * (((D * D) / d) * ((h * (M * M)) / d)); else tmp = 0.25 * ((D * (h * (D * (M * M)))) / (d * d)); end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := If[LessEqual[D, 2.5e-153], N[(0.25 * N[(N[(D * N[(M * N[(D * N[(h * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(d * d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[D, 2.25e+154], N[(0.25 * N[(N[(N[(D * D), $MachinePrecision] / d), $MachinePrecision] * N[(N[(h * N[(M * M), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(0.25 * N[(N[(D * N[(h * N[(D * N[(M * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(d * d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;D \leq 2.5 \cdot 10^{-153}:\\
\;\;\;\;0.25 \cdot \frac{D \cdot \left(M \cdot \left(D \cdot \left(h \cdot M\right)\right)\right)}{d \cdot d}\\
\mathbf{elif}\;D \leq 2.25 \cdot 10^{+154}:\\
\;\;\;\;0.25 \cdot \left(\frac{D \cdot D}{d} \cdot \frac{h \cdot \left(M \cdot M\right)}{d}\right)\\
\mathbf{else}:\\
\;\;\;\;0.25 \cdot \frac{D \cdot \left(h \cdot \left(D \cdot \left(M \cdot M\right)\right)\right)}{d \cdot d}\\
\end{array}
\end{array}
if D < 2.50000000000000016e-153Initial program 20.8%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified18.8%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified17.6%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6416.5%
Simplified16.5%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6437.5%
Simplified37.5%
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6444.6%
Applied egg-rr44.6%
if 2.50000000000000016e-153 < D < 2.25000000000000005e154Initial program 37.1%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified31.9%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified16.4%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6416.3%
Simplified16.3%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6430.9%
Simplified30.9%
associate-*r*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6433.2%
Applied egg-rr33.2%
if 2.25000000000000005e154 < D Initial program 0.0%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified0.0%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified0.0%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f640.2%
Simplified0.2%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6423.0%
Simplified23.0%
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6433.0%
Applied egg-rr33.0%
Final simplification41.8%
(FPCore (c0 w h D d M) :precision binary64 (if (<= D 9.5e-182) (* 0.25 (/ (* D (* M (* D (* h M)))) (* d d))) (/ (/ (* (* D (* h (* M M))) (* D 0.25)) d) d)))
double code(double c0, double w, double h, double D, double d, double M) {
double tmp;
if (D <= 9.5e-182) {
tmp = 0.25 * ((D * (M * (D * (h * M)))) / (d * d));
} else {
tmp = (((D * (h * (M * M))) * (D * 0.25)) / d) / d;
}
return tmp;
}
real(8) function code(c0, w, h, d, d_1, m)
real(8), intent (in) :: c0
real(8), intent (in) :: w
real(8), intent (in) :: h
real(8), intent (in) :: d
real(8), intent (in) :: d_1
real(8), intent (in) :: m
real(8) :: tmp
if (d <= 9.5d-182) then
tmp = 0.25d0 * ((d * (m * (d * (h * m)))) / (d_1 * d_1))
else
tmp = (((d * (h * (m * m))) * (d * 0.25d0)) / d_1) / d_1
end if
code = tmp
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
double tmp;
if (D <= 9.5e-182) {
tmp = 0.25 * ((D * (M * (D * (h * M)))) / (d * d));
} else {
tmp = (((D * (h * (M * M))) * (D * 0.25)) / d) / d;
}
return tmp;
}
def code(c0, w, h, D, d, M): tmp = 0 if D <= 9.5e-182: tmp = 0.25 * ((D * (M * (D * (h * M)))) / (d * d)) else: tmp = (((D * (h * (M * M))) * (D * 0.25)) / d) / d return tmp
function code(c0, w, h, D, d, M) tmp = 0.0 if (D <= 9.5e-182) tmp = Float64(0.25 * Float64(Float64(D * Float64(M * Float64(D * Float64(h * M)))) / Float64(d * d))); else tmp = Float64(Float64(Float64(Float64(D * Float64(h * Float64(M * M))) * Float64(D * 0.25)) / d) / d); end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) tmp = 0.0; if (D <= 9.5e-182) tmp = 0.25 * ((D * (M * (D * (h * M)))) / (d * d)); else tmp = (((D * (h * (M * M))) * (D * 0.25)) / d) / d; end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := If[LessEqual[D, 9.5e-182], N[(0.25 * N[(N[(D * N[(M * N[(D * N[(h * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(d * d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(N[(D * N[(h * N[(M * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(D * 0.25), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;D \leq 9.5 \cdot 10^{-182}:\\
\;\;\;\;0.25 \cdot \frac{D \cdot \left(M \cdot \left(D \cdot \left(h \cdot M\right)\right)\right)}{d \cdot d}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\left(D \cdot \left(h \cdot \left(M \cdot M\right)\right)\right) \cdot \left(D \cdot 0.25\right)}{d}}{d}\\
\end{array}
\end{array}
if D < 9.4999999999999994e-182Initial program 21.5%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified19.4%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified16.5%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6415.8%
Simplified15.8%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6436.5%
Simplified36.5%
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6443.9%
Applied egg-rr43.9%
if 9.4999999999999994e-182 < D Initial program 27.8%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified24.1%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified17.2%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6415.8%
Simplified15.8%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6433.5%
Simplified33.5%
associate-*r/N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6446.0%
Applied egg-rr46.0%
Final simplification44.5%
(FPCore (c0 w h D d M) :precision binary64 (if (<= D 1.35e-181) (* 0.25 (/ (* D (* M (* D (* h M)))) (* d d))) (* (/ 0.25 d) (* D (/ (* D (* h (* M M))) d)))))
double code(double c0, double w, double h, double D, double d, double M) {
double tmp;
if (D <= 1.35e-181) {
tmp = 0.25 * ((D * (M * (D * (h * M)))) / (d * d));
} else {
tmp = (0.25 / d) * (D * ((D * (h * (M * M))) / d));
}
return tmp;
}
real(8) function code(c0, w, h, d, d_1, m)
real(8), intent (in) :: c0
real(8), intent (in) :: w
real(8), intent (in) :: h
real(8), intent (in) :: d
real(8), intent (in) :: d_1
real(8), intent (in) :: m
real(8) :: tmp
if (d <= 1.35d-181) then
tmp = 0.25d0 * ((d * (m * (d * (h * m)))) / (d_1 * d_1))
else
tmp = (0.25d0 / d_1) * (d * ((d * (h * (m * m))) / d_1))
end if
code = tmp
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
double tmp;
if (D <= 1.35e-181) {
tmp = 0.25 * ((D * (M * (D * (h * M)))) / (d * d));
} else {
tmp = (0.25 / d) * (D * ((D * (h * (M * M))) / d));
}
return tmp;
}
def code(c0, w, h, D, d, M): tmp = 0 if D <= 1.35e-181: tmp = 0.25 * ((D * (M * (D * (h * M)))) / (d * d)) else: tmp = (0.25 / d) * (D * ((D * (h * (M * M))) / d)) return tmp
function code(c0, w, h, D, d, M) tmp = 0.0 if (D <= 1.35e-181) tmp = Float64(0.25 * Float64(Float64(D * Float64(M * Float64(D * Float64(h * M)))) / Float64(d * d))); else tmp = Float64(Float64(0.25 / d) * Float64(D * Float64(Float64(D * Float64(h * Float64(M * M))) / d))); end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) tmp = 0.0; if (D <= 1.35e-181) tmp = 0.25 * ((D * (M * (D * (h * M)))) / (d * d)); else tmp = (0.25 / d) * (D * ((D * (h * (M * M))) / d)); end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := If[LessEqual[D, 1.35e-181], N[(0.25 * N[(N[(D * N[(M * N[(D * N[(h * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(d * d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(0.25 / d), $MachinePrecision] * N[(D * N[(N[(D * N[(h * N[(M * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;D \leq 1.35 \cdot 10^{-181}:\\
\;\;\;\;0.25 \cdot \frac{D \cdot \left(M \cdot \left(D \cdot \left(h \cdot M\right)\right)\right)}{d \cdot d}\\
\mathbf{else}:\\
\;\;\;\;\frac{0.25}{d} \cdot \left(D \cdot \frac{D \cdot \left(h \cdot \left(M \cdot M\right)\right)}{d}\right)\\
\end{array}
\end{array}
if D < 1.35e-181Initial program 21.5%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified19.4%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified16.5%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6415.8%
Simplified15.8%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6436.5%
Simplified36.5%
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6443.9%
Applied egg-rr43.9%
if 1.35e-181 < D Initial program 27.8%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified24.1%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified17.2%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6415.8%
Simplified15.8%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6433.5%
Simplified33.5%
associate-*r/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6445.8%
Applied egg-rr45.8%
Final simplification44.5%
(FPCore (c0 w h D d M) :precision binary64 (if (<= d 4.7e+148) (* 0.25 (* (* D (* h (* M M))) (/ D (* d d)))) 0.0))
double code(double c0, double w, double h, double D, double d, double M) {
double tmp;
if (d <= 4.7e+148) {
tmp = 0.25 * ((D * (h * (M * M))) * (D / (d * d)));
} else {
tmp = 0.0;
}
return tmp;
}
real(8) function code(c0, w, h, d, d_1, m)
real(8), intent (in) :: c0
real(8), intent (in) :: w
real(8), intent (in) :: h
real(8), intent (in) :: d
real(8), intent (in) :: d_1
real(8), intent (in) :: m
real(8) :: tmp
if (d_1 <= 4.7d+148) then
tmp = 0.25d0 * ((d * (h * (m * m))) * (d / (d_1 * d_1)))
else
tmp = 0.0d0
end if
code = tmp
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
double tmp;
if (d <= 4.7e+148) {
tmp = 0.25 * ((D * (h * (M * M))) * (D / (d * d)));
} else {
tmp = 0.0;
}
return tmp;
}
def code(c0, w, h, D, d, M): tmp = 0 if d <= 4.7e+148: tmp = 0.25 * ((D * (h * (M * M))) * (D / (d * d))) else: tmp = 0.0 return tmp
function code(c0, w, h, D, d, M) tmp = 0.0 if (d <= 4.7e+148) tmp = Float64(0.25 * Float64(Float64(D * Float64(h * Float64(M * M))) * Float64(D / Float64(d * d)))); else tmp = 0.0; end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) tmp = 0.0; if (d <= 4.7e+148) tmp = 0.25 * ((D * (h * (M * M))) * (D / (d * d))); else tmp = 0.0; end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := If[LessEqual[d, 4.7e+148], N[(0.25 * N[(N[(D * N[(h * N[(M * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(D / N[(d * d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 0.0]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;d \leq 4.7 \cdot 10^{+148}:\\
\;\;\;\;0.25 \cdot \left(\left(D \cdot \left(h \cdot \left(M \cdot M\right)\right)\right) \cdot \frac{D}{d \cdot d}\right)\\
\mathbf{else}:\\
\;\;\;\;0\\
\end{array}
\end{array}
if d < 4.6999999999999997e148Initial program 23.1%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified19.4%
Taylor expanded in c0 around -inf
mul-1-negN/A
*-commutativeN/A
distribute-rgt-neg-inN/A
mul-1-negN/A
*-lowering-*.f64N/A
Simplified16.1%
Taylor expanded in D around 0
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6415.5%
Simplified15.5%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6437.2%
Simplified37.2%
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6437.7%
Applied egg-rr37.7%
if 4.6999999999999997e148 < d Initial program 23.8%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified25.6%
Taylor expanded in c0 around -inf
associate-*r*N/A
mul-1-negN/A
distribute-lft1-inN/A
metadata-evalN/A
mul0-lftN/A
metadata-evalN/A
distribute-lft-neg-inN/A
distribute-rgt-neg-inN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
metadata-eval38.6%
Simplified38.6%
associate-*r*N/A
mul0-rgt42.4%
Applied egg-rr42.4%
(FPCore (c0 w h D d M) :precision binary64 0.0)
double code(double c0, double w, double h, double D, double d, double M) {
return 0.0;
}
real(8) function code(c0, w, h, d, d_1, m)
real(8), intent (in) :: c0
real(8), intent (in) :: w
real(8), intent (in) :: h
real(8), intent (in) :: d
real(8), intent (in) :: d_1
real(8), intent (in) :: m
code = 0.0d0
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
return 0.0;
}
def code(c0, w, h, D, d, M): return 0.0
function code(c0, w, h, D, d, M) return 0.0 end
function tmp = code(c0, w, h, D, d, M) tmp = 0.0; end
code[c0_, w_, h_, D_, d_, M_] := 0.0
\begin{array}{l}
\\
0
\end{array}
Initial program 23.3%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified20.8%
Taylor expanded in c0 around -inf
associate-*r*N/A
mul-1-negN/A
distribute-lft1-inN/A
metadata-evalN/A
mul0-lftN/A
metadata-evalN/A
distribute-lft-neg-inN/A
distribute-rgt-neg-inN/A
metadata-evalN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
metadata-eval29.9%
Simplified29.9%
associate-*r*N/A
mul0-rgt36.1%
Applied egg-rr36.1%
herbie shell --seed 2024141
(FPCore (c0 w h D d M)
:name "Henrywood and Agarwal, Equation (13)"
:precision binary64
(* (/ c0 (* 2.0 w)) (+ (/ (* c0 (* d d)) (* (* w h) (* D D))) (sqrt (- (* (/ (* c0 (* d d)) (* (* w h) (* D D))) (/ (* c0 (* d d)) (* (* w h) (* D D)))) (* M M))))))