
(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 (* 2.0 w))) (t_1 (/ (* c0 (* d d)) (* (* w h) (* D D)))))
(if (<= (* t_0 (+ t_1 (sqrt (- (* t_1 t_1) (* M M))))) INFINITY)
(/ (* t_0 (* d (* 2.0 (* c0 d)))) (* h (* w (* D D))))
(/ (/ (* h (* (* M (* D M)) (* D 0.25))) d) d))))
double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = c0 / (2.0 * w);
double t_1 = (c0 * (d * d)) / ((w * h) * (D * D));
double tmp;
if ((t_0 * (t_1 + sqrt(((t_1 * t_1) - (M * M))))) <= ((double) INFINITY)) {
tmp = (t_0 * (d * (2.0 * (c0 * d)))) / (h * (w * (D * D)));
} else {
tmp = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d;
}
return tmp;
}
public static double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = c0 / (2.0 * w);
double t_1 = (c0 * (d * d)) / ((w * h) * (D * D));
double tmp;
if ((t_0 * (t_1 + Math.sqrt(((t_1 * t_1) - (M * M))))) <= Double.POSITIVE_INFINITY) {
tmp = (t_0 * (d * (2.0 * (c0 * d)))) / (h * (w * (D * D)));
} else {
tmp = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d;
}
return tmp;
}
def code(c0, w, h, D, d, M): t_0 = c0 / (2.0 * w) t_1 = (c0 * (d * d)) / ((w * h) * (D * D)) tmp = 0 if (t_0 * (t_1 + math.sqrt(((t_1 * t_1) - (M * M))))) <= math.inf: tmp = (t_0 * (d * (2.0 * (c0 * d)))) / (h * (w * (D * D))) else: tmp = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d return tmp
function code(c0, w, h, D, d, M) t_0 = Float64(c0 / Float64(2.0 * w)) t_1 = Float64(Float64(c0 * Float64(d * d)) / Float64(Float64(w * h) * Float64(D * D))) tmp = 0.0 if (Float64(t_0 * Float64(t_1 + sqrt(Float64(Float64(t_1 * t_1) - Float64(M * M))))) <= Inf) tmp = Float64(Float64(t_0 * Float64(d * Float64(2.0 * Float64(c0 * d)))) / Float64(h * Float64(w * Float64(D * D)))); else tmp = Float64(Float64(Float64(h * Float64(Float64(M * Float64(D * M)) * Float64(D * 0.25))) / d) / d); end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) t_0 = c0 / (2.0 * w); t_1 = (c0 * (d * d)) / ((w * h) * (D * D)); tmp = 0.0; if ((t_0 * (t_1 + sqrt(((t_1 * t_1) - (M * M))))) <= Inf) tmp = (t_0 * (d * (2.0 * (c0 * d)))) / (h * (w * (D * D))); else tmp = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d; end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := Block[{t$95$0 = N[(c0 / N[(2.0 * w), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(c0 * N[(d * d), $MachinePrecision]), $MachinePrecision] / N[(N[(w * h), $MachinePrecision] * N[(D * D), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(t$95$0 * 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[(t$95$0 * N[(d * N[(2.0 * N[(c0 * d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(h * N[(w * N[(D * D), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(h * N[(N[(M * N[(D * M), $MachinePrecision]), $MachinePrecision] * N[(D * 0.25), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{c0}{2 \cdot w}\\
t_1 := \frac{c0 \cdot \left(d \cdot d\right)}{\left(w \cdot h\right) \cdot \left(D \cdot D\right)}\\
\mathbf{if}\;t\_0 \cdot \left(t\_1 + \sqrt{t\_1 \cdot t\_1 - M \cdot M}\right) \leq \infty:\\
\;\;\;\;\frac{t\_0 \cdot \left(d \cdot \left(2 \cdot \left(c0 \cdot d\right)\right)\right)}{h \cdot \left(w \cdot \left(D \cdot D\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{h \cdot \left(\left(M \cdot \left(D \cdot M\right)\right) \cdot \left(D \cdot 0.25\right)\right)}{d}}{d}\\
\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 74.4%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified69.7%
Taylor expanded in d around inf
times-fracN/A
associate-*l/N/A
associate-/l*N/A
/-lowering-/.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6467.4%
Simplified67.4%
associate-/r*N/A
associate-/r*N/A
count-2N/A
*-lowering-*.f64N/A
associate-/r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
associate-/l/N/A
*-commutativeN/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6468.6%
Applied egg-rr68.6%
associate-/l/N/A
associate-*r*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6472.5%
Applied egg-rr72.5%
frac-timesN/A
associate-*r*N/A
*-commutativeN/A
associate-/l*N/A
associate-*r/N/A
*-commutativeN/A
clear-numN/A
associate-*r/N/A
div-invN/A
/-lowering-/.f64N/A
Applied egg-rr78.9%
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.7%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified16.8%
div0N/A
+-lft-identityN/A
unswap-sqrN/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr44.8%
Taylor expanded in c0 around 0
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6459.5%
Simplified59.5%
associate-*r*N/A
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6462.8%
Applied egg-rr62.8%
Final simplification67.4%
(FPCore (c0 w h D d M)
:precision binary64
(let* ((t_0 (/ (/ (* h (* (* M (* D M)) (* D 0.25))) d) d)))
(if (<= D 5.6e-275)
t_0
(if (<= D 1.95e-241)
(* c0 (/ (/ (* c0 d) (/ (* D D) (/ d (* w h)))) w))
(if (<= D 3.8e-23)
(/ (/ (* D (* M (* 0.25 (* D (* h M))))) d) d)
(if (<= D 1.04e+96)
(* (/ c0 (* 2.0 w)) (* 2.0 (/ (* (/ d h) (* d (/ c0 w))) (* D D))))
t_0))))))
double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d;
double tmp;
if (D <= 5.6e-275) {
tmp = t_0;
} else if (D <= 1.95e-241) {
tmp = c0 * (((c0 * d) / ((D * D) / (d / (w * h)))) / w);
} else if (D <= 3.8e-23) {
tmp = ((D * (M * (0.25 * (D * (h * M))))) / d) / d;
} else if (D <= 1.04e+96) {
tmp = (c0 / (2.0 * w)) * (2.0 * (((d / h) * (d * (c0 / w))) / (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 = ((h * ((m * (d * m)) * (d * 0.25d0))) / d_1) / d_1
if (d <= 5.6d-275) then
tmp = t_0
else if (d <= 1.95d-241) then
tmp = c0 * (((c0 * d_1) / ((d * d) / (d_1 / (w * h)))) / w)
else if (d <= 3.8d-23) then
tmp = ((d * (m * (0.25d0 * (d * (h * m))))) / d_1) / d_1
else if (d <= 1.04d+96) then
tmp = (c0 / (2.0d0 * w)) * (2.0d0 * (((d_1 / h) * (d_1 * (c0 / w))) / (d * 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 = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d;
double tmp;
if (D <= 5.6e-275) {
tmp = t_0;
} else if (D <= 1.95e-241) {
tmp = c0 * (((c0 * d) / ((D * D) / (d / (w * h)))) / w);
} else if (D <= 3.8e-23) {
tmp = ((D * (M * (0.25 * (D * (h * M))))) / d) / d;
} else if (D <= 1.04e+96) {
tmp = (c0 / (2.0 * w)) * (2.0 * (((d / h) * (d * (c0 / w))) / (D * D)));
} else {
tmp = t_0;
}
return tmp;
}
def code(c0, w, h, D, d, M): t_0 = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d tmp = 0 if D <= 5.6e-275: tmp = t_0 elif D <= 1.95e-241: tmp = c0 * (((c0 * d) / ((D * D) / (d / (w * h)))) / w) elif D <= 3.8e-23: tmp = ((D * (M * (0.25 * (D * (h * M))))) / d) / d elif D <= 1.04e+96: tmp = (c0 / (2.0 * w)) * (2.0 * (((d / h) * (d * (c0 / w))) / (D * D))) else: tmp = t_0 return tmp
function code(c0, w, h, D, d, M) t_0 = Float64(Float64(Float64(h * Float64(Float64(M * Float64(D * M)) * Float64(D * 0.25))) / d) / d) tmp = 0.0 if (D <= 5.6e-275) tmp = t_0; elseif (D <= 1.95e-241) tmp = Float64(c0 * Float64(Float64(Float64(c0 * d) / Float64(Float64(D * D) / Float64(d / Float64(w * h)))) / w)); elseif (D <= 3.8e-23) tmp = Float64(Float64(Float64(D * Float64(M * Float64(0.25 * Float64(D * Float64(h * M))))) / d) / d); elseif (D <= 1.04e+96) tmp = Float64(Float64(c0 / Float64(2.0 * w)) * Float64(2.0 * Float64(Float64(Float64(d / h) * Float64(d * Float64(c0 / w))) / Float64(D * D)))); else tmp = t_0; end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) t_0 = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d; tmp = 0.0; if (D <= 5.6e-275) tmp = t_0; elseif (D <= 1.95e-241) tmp = c0 * (((c0 * d) / ((D * D) / (d / (w * h)))) / w); elseif (D <= 3.8e-23) tmp = ((D * (M * (0.25 * (D * (h * M))))) / d) / d; elseif (D <= 1.04e+96) tmp = (c0 / (2.0 * w)) * (2.0 * (((d / h) * (d * (c0 / w))) / (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[(h * N[(N[(M * N[(D * M), $MachinePrecision]), $MachinePrecision] * N[(D * 0.25), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision]}, If[LessEqual[D, 5.6e-275], t$95$0, If[LessEqual[D, 1.95e-241], N[(c0 * N[(N[(N[(c0 * d), $MachinePrecision] / N[(N[(D * D), $MachinePrecision] / N[(d / N[(w * h), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / w), $MachinePrecision]), $MachinePrecision], If[LessEqual[D, 3.8e-23], N[(N[(N[(D * N[(M * N[(0.25 * N[(D * N[(h * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision], If[LessEqual[D, 1.04e+96], N[(N[(c0 / N[(2.0 * w), $MachinePrecision]), $MachinePrecision] * N[(2.0 * N[(N[(N[(d / h), $MachinePrecision] * N[(d * N[(c0 / w), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(D * D), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{\frac{h \cdot \left(\left(M \cdot \left(D \cdot M\right)\right) \cdot \left(D \cdot 0.25\right)\right)}{d}}{d}\\
\mathbf{if}\;D \leq 5.6 \cdot 10^{-275}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;D \leq 1.95 \cdot 10^{-241}:\\
\;\;\;\;c0 \cdot \frac{\frac{c0 \cdot d}{\frac{D \cdot D}{\frac{d}{w \cdot h}}}}{w}\\
\mathbf{elif}\;D \leq 3.8 \cdot 10^{-23}:\\
\;\;\;\;\frac{\frac{D \cdot \left(M \cdot \left(0.25 \cdot \left(D \cdot \left(h \cdot M\right)\right)\right)\right)}{d}}{d}\\
\mathbf{elif}\;D \leq 1.04 \cdot 10^{+96}:\\
\;\;\;\;\frac{c0}{2 \cdot w} \cdot \left(2 \cdot \frac{\frac{d}{h} \cdot \left(d \cdot \frac{c0}{w}\right)}{D \cdot D}\right)\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if D < 5.59999999999999989e-275 or 1.03999999999999996e96 < D Initial program 20.6%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified19.2%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified13.4%
div0N/A
+-lft-identityN/A
unswap-sqrN/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr33.4%
Taylor expanded in c0 around 0
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6449.2%
Simplified49.2%
associate-*r*N/A
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6452.1%
Applied egg-rr52.1%
if 5.59999999999999989e-275 < D < 1.9499999999999999e-241Initial program 37.5%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified38.0%
Taylor expanded in d around inf
times-fracN/A
associate-*l/N/A
associate-/l*N/A
/-lowering-/.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6462.5%
Simplified62.5%
associate-/r*N/A
associate-/r*N/A
count-2N/A
*-lowering-*.f64N/A
associate-/r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
associate-/l/N/A
*-commutativeN/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6462.5%
Applied egg-rr62.5%
associate-/l/N/A
associate-*r*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6475.3%
Applied egg-rr75.3%
*-commutativeN/A
frac-timesN/A
associate-*r*N/A
*-commutativeN/A
associate-/l*N/A
clear-numN/A
associate-*r/N/A
div-invN/A
associate-/r*N/A
associate-/r/N/A
*-lowering-*.f64N/A
Applied egg-rr75.3%
if 1.9499999999999999e-241 < D < 3.80000000000000011e-23Initial program 19.3%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified19.2%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified22.3%
div0N/A
+-lft-identityN/A
unswap-sqrN/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr50.3%
Taylor expanded in c0 around 0
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6456.4%
Simplified56.4%
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6462.0%
Applied egg-rr62.0%
if 3.80000000000000011e-23 < D < 1.03999999999999996e96Initial program 24.4%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified24.4%
Taylor expanded in d around inf
times-fracN/A
associate-*l/N/A
associate-/l*N/A
/-lowering-/.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6429.4%
Simplified29.4%
associate-/r*N/A
associate-/r*N/A
count-2N/A
*-lowering-*.f64N/A
associate-/r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
associate-/l/N/A
*-commutativeN/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6429.6%
Applied egg-rr29.6%
times-fracN/A
associate-/l*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f6463.6%
Applied egg-rr63.6%
Final simplification56.8%
(FPCore (c0 w h D d M)
:precision binary64
(let* ((t_0 (/ (/ (* h (* (* M (* D M)) (* D 0.25))) d) d))
(t_1 (/ (* c0 d) (/ (* D D) (/ d (* w h))))))
(if (<= D 5.25e-275)
t_0
(if (<= D 1.65e-241)
(* c0 (/ t_1 w))
(if (<= D 1.72e-22)
(/ (/ (* D (* M (* 0.25 (* D (* h M))))) d) d)
(if (<= D 6.2e+36) (/ t_1 (/ w c0)) t_0))))))
double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d;
double t_1 = (c0 * d) / ((D * D) / (d / (w * h)));
double tmp;
if (D <= 5.25e-275) {
tmp = t_0;
} else if (D <= 1.65e-241) {
tmp = c0 * (t_1 / w);
} else if (D <= 1.72e-22) {
tmp = ((D * (M * (0.25 * (D * (h * M))))) / d) / d;
} else if (D <= 6.2e+36) {
tmp = t_1 / (w / c0);
} 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) :: t_1
real(8) :: tmp
t_0 = ((h * ((m * (d * m)) * (d * 0.25d0))) / d_1) / d_1
t_1 = (c0 * d_1) / ((d * d) / (d_1 / (w * h)))
if (d <= 5.25d-275) then
tmp = t_0
else if (d <= 1.65d-241) then
tmp = c0 * (t_1 / w)
else if (d <= 1.72d-22) then
tmp = ((d * (m * (0.25d0 * (d * (h * m))))) / d_1) / d_1
else if (d <= 6.2d+36) then
tmp = t_1 / (w / c0)
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 = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d;
double t_1 = (c0 * d) / ((D * D) / (d / (w * h)));
double tmp;
if (D <= 5.25e-275) {
tmp = t_0;
} else if (D <= 1.65e-241) {
tmp = c0 * (t_1 / w);
} else if (D <= 1.72e-22) {
tmp = ((D * (M * (0.25 * (D * (h * M))))) / d) / d;
} else if (D <= 6.2e+36) {
tmp = t_1 / (w / c0);
} else {
tmp = t_0;
}
return tmp;
}
def code(c0, w, h, D, d, M): t_0 = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d t_1 = (c0 * d) / ((D * D) / (d / (w * h))) tmp = 0 if D <= 5.25e-275: tmp = t_0 elif D <= 1.65e-241: tmp = c0 * (t_1 / w) elif D <= 1.72e-22: tmp = ((D * (M * (0.25 * (D * (h * M))))) / d) / d elif D <= 6.2e+36: tmp = t_1 / (w / c0) else: tmp = t_0 return tmp
function code(c0, w, h, D, d, M) t_0 = Float64(Float64(Float64(h * Float64(Float64(M * Float64(D * M)) * Float64(D * 0.25))) / d) / d) t_1 = Float64(Float64(c0 * d) / Float64(Float64(D * D) / Float64(d / Float64(w * h)))) tmp = 0.0 if (D <= 5.25e-275) tmp = t_0; elseif (D <= 1.65e-241) tmp = Float64(c0 * Float64(t_1 / w)); elseif (D <= 1.72e-22) tmp = Float64(Float64(Float64(D * Float64(M * Float64(0.25 * Float64(D * Float64(h * M))))) / d) / d); elseif (D <= 6.2e+36) tmp = Float64(t_1 / Float64(w / c0)); else tmp = t_0; end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) t_0 = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d; t_1 = (c0 * d) / ((D * D) / (d / (w * h))); tmp = 0.0; if (D <= 5.25e-275) tmp = t_0; elseif (D <= 1.65e-241) tmp = c0 * (t_1 / w); elseif (D <= 1.72e-22) tmp = ((D * (M * (0.25 * (D * (h * M))))) / d) / d; elseif (D <= 6.2e+36) tmp = t_1 / (w / c0); else tmp = t_0; end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := Block[{t$95$0 = N[(N[(N[(h * N[(N[(M * N[(D * M), $MachinePrecision]), $MachinePrecision] * N[(D * 0.25), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision]}, Block[{t$95$1 = N[(N[(c0 * d), $MachinePrecision] / N[(N[(D * D), $MachinePrecision] / N[(d / N[(w * h), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[D, 5.25e-275], t$95$0, If[LessEqual[D, 1.65e-241], N[(c0 * N[(t$95$1 / w), $MachinePrecision]), $MachinePrecision], If[LessEqual[D, 1.72e-22], N[(N[(N[(D * N[(M * N[(0.25 * N[(D * N[(h * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision], If[LessEqual[D, 6.2e+36], N[(t$95$1 / N[(w / c0), $MachinePrecision]), $MachinePrecision], t$95$0]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{\frac{h \cdot \left(\left(M \cdot \left(D \cdot M\right)\right) \cdot \left(D \cdot 0.25\right)\right)}{d}}{d}\\
t_1 := \frac{c0 \cdot d}{\frac{D \cdot D}{\frac{d}{w \cdot h}}}\\
\mathbf{if}\;D \leq 5.25 \cdot 10^{-275}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;D \leq 1.65 \cdot 10^{-241}:\\
\;\;\;\;c0 \cdot \frac{t\_1}{w}\\
\mathbf{elif}\;D \leq 1.72 \cdot 10^{-22}:\\
\;\;\;\;\frac{\frac{D \cdot \left(M \cdot \left(0.25 \cdot \left(D \cdot \left(h \cdot M\right)\right)\right)\right)}{d}}{d}\\
\mathbf{elif}\;D \leq 6.2 \cdot 10^{+36}:\\
\;\;\;\;\frac{t\_1}{\frac{w}{c0}}\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if D < 5.24999999999999985e-275 or 6.1999999999999999e36 < D Initial program 20.9%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified19.5%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified12.7%
div0N/A
+-lft-identityN/A
unswap-sqrN/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr33.7%
Taylor expanded in c0 around 0
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6448.8%
Simplified48.8%
associate-*r*N/A
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6451.5%
Applied egg-rr51.5%
if 5.24999999999999985e-275 < D < 1.6499999999999999e-241Initial program 37.5%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified38.0%
Taylor expanded in d around inf
times-fracN/A
associate-*l/N/A
associate-/l*N/A
/-lowering-/.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6462.5%
Simplified62.5%
associate-/r*N/A
associate-/r*N/A
count-2N/A
*-lowering-*.f64N/A
associate-/r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
associate-/l/N/A
*-commutativeN/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6462.5%
Applied egg-rr62.5%
associate-/l/N/A
associate-*r*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6475.3%
Applied egg-rr75.3%
*-commutativeN/A
frac-timesN/A
associate-*r*N/A
*-commutativeN/A
associate-/l*N/A
clear-numN/A
associate-*r/N/A
div-invN/A
associate-/r*N/A
associate-/r/N/A
*-lowering-*.f64N/A
Applied egg-rr75.3%
if 1.6499999999999999e-241 < D < 1.72000000000000001e-22Initial program 19.3%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified19.2%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified22.3%
div0N/A
+-lft-identityN/A
unswap-sqrN/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr50.3%
Taylor expanded in c0 around 0
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6456.4%
Simplified56.4%
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6462.0%
Applied egg-rr62.0%
if 1.72000000000000001e-22 < D < 6.1999999999999999e36Initial program 24.1%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified24.2%
Taylor expanded in d around inf
times-fracN/A
associate-*l/N/A
associate-/l*N/A
/-lowering-/.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6425.5%
Simplified25.5%
associate-/r*N/A
associate-/r*N/A
count-2N/A
*-lowering-*.f64N/A
associate-/r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
associate-/l/N/A
*-commutativeN/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6425.7%
Applied egg-rr25.7%
associate-/l/N/A
associate-*r*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6462.9%
Applied egg-rr62.9%
*-commutativeN/A
associate-*l*N/A
clear-numN/A
associate-*r/N/A
div-invN/A
associate-/l*N/A
times-fracN/A
metadata-evalN/A
*-lft-identityN/A
/-lowering-/.f64N/A
Applied egg-rr62.8%
Final simplification56.0%
(FPCore (c0 w h D d M)
:precision binary64
(let* ((t_0 (* c0 (/ (/ (* c0 d) (/ (* D D) (/ d (* w h)))) w)))
(t_1 (/ (/ (* h (* (* M (* D M)) (* D 0.25))) d) d)))
(if (<= D 1.35e-274)
t_1
(if (<= D 1.75e-241)
t_0
(if (<= D 8.2e-23)
(/ (/ (* D (* M (* 0.25 (* D (* h M))))) d) d)
(if (<= D 6.2e+96) t_0 t_1))))))
double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = c0 * (((c0 * d) / ((D * D) / (d / (w * h)))) / w);
double t_1 = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d;
double tmp;
if (D <= 1.35e-274) {
tmp = t_1;
} else if (D <= 1.75e-241) {
tmp = t_0;
} else if (D <= 8.2e-23) {
tmp = ((D * (M * (0.25 * (D * (h * M))))) / d) / d;
} else if (D <= 6.2e+96) {
tmp = t_0;
} 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 = c0 * (((c0 * d_1) / ((d * d) / (d_1 / (w * h)))) / w)
t_1 = ((h * ((m * (d * m)) * (d * 0.25d0))) / d_1) / d_1
if (d <= 1.35d-274) then
tmp = t_1
else if (d <= 1.75d-241) then
tmp = t_0
else if (d <= 8.2d-23) then
tmp = ((d * (m * (0.25d0 * (d * (h * m))))) / d_1) / d_1
else if (d <= 6.2d+96) then
tmp = t_0
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 = c0 * (((c0 * d) / ((D * D) / (d / (w * h)))) / w);
double t_1 = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d;
double tmp;
if (D <= 1.35e-274) {
tmp = t_1;
} else if (D <= 1.75e-241) {
tmp = t_0;
} else if (D <= 8.2e-23) {
tmp = ((D * (M * (0.25 * (D * (h * M))))) / d) / d;
} else if (D <= 6.2e+96) {
tmp = t_0;
} else {
tmp = t_1;
}
return tmp;
}
def code(c0, w, h, D, d, M): t_0 = c0 * (((c0 * d) / ((D * D) / (d / (w * h)))) / w) t_1 = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d tmp = 0 if D <= 1.35e-274: tmp = t_1 elif D <= 1.75e-241: tmp = t_0 elif D <= 8.2e-23: tmp = ((D * (M * (0.25 * (D * (h * M))))) / d) / d elif D <= 6.2e+96: tmp = t_0 else: tmp = t_1 return tmp
function code(c0, w, h, D, d, M) t_0 = Float64(c0 * Float64(Float64(Float64(c0 * d) / Float64(Float64(D * D) / Float64(d / Float64(w * h)))) / w)) t_1 = Float64(Float64(Float64(h * Float64(Float64(M * Float64(D * M)) * Float64(D * 0.25))) / d) / d) tmp = 0.0 if (D <= 1.35e-274) tmp = t_1; elseif (D <= 1.75e-241) tmp = t_0; elseif (D <= 8.2e-23) tmp = Float64(Float64(Float64(D * Float64(M * Float64(0.25 * Float64(D * Float64(h * M))))) / d) / d); elseif (D <= 6.2e+96) tmp = t_0; else tmp = t_1; end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) t_0 = c0 * (((c0 * d) / ((D * D) / (d / (w * h)))) / w); t_1 = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d; tmp = 0.0; if (D <= 1.35e-274) tmp = t_1; elseif (D <= 1.75e-241) tmp = t_0; elseif (D <= 8.2e-23) tmp = ((D * (M * (0.25 * (D * (h * M))))) / d) / d; elseif (D <= 6.2e+96) tmp = t_0; else tmp = t_1; end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := Block[{t$95$0 = N[(c0 * N[(N[(N[(c0 * d), $MachinePrecision] / N[(N[(D * D), $MachinePrecision] / N[(d / N[(w * h), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / w), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(N[(h * N[(N[(M * N[(D * M), $MachinePrecision]), $MachinePrecision] * N[(D * 0.25), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision]}, If[LessEqual[D, 1.35e-274], t$95$1, If[LessEqual[D, 1.75e-241], t$95$0, If[LessEqual[D, 8.2e-23], N[(N[(N[(D * N[(M * N[(0.25 * N[(D * N[(h * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision], If[LessEqual[D, 6.2e+96], t$95$0, t$95$1]]]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := c0 \cdot \frac{\frac{c0 \cdot d}{\frac{D \cdot D}{\frac{d}{w \cdot h}}}}{w}\\
t_1 := \frac{\frac{h \cdot \left(\left(M \cdot \left(D \cdot M\right)\right) \cdot \left(D \cdot 0.25\right)\right)}{d}}{d}\\
\mathbf{if}\;D \leq 1.35 \cdot 10^{-274}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;D \leq 1.75 \cdot 10^{-241}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;D \leq 8.2 \cdot 10^{-23}:\\
\;\;\;\;\frac{\frac{D \cdot \left(M \cdot \left(0.25 \cdot \left(D \cdot \left(h \cdot M\right)\right)\right)\right)}{d}}{d}\\
\mathbf{elif}\;D \leq 6.2 \cdot 10^{+96}:\\
\;\;\;\;t\_0\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if D < 1.35e-274 or 6.1999999999999996e96 < D Initial program 20.6%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified19.2%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified13.4%
div0N/A
+-lft-identityN/A
unswap-sqrN/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr33.4%
Taylor expanded in c0 around 0
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6449.2%
Simplified49.2%
associate-*r*N/A
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6452.1%
Applied egg-rr52.1%
if 1.35e-274 < D < 1.7499999999999999e-241 or 8.20000000000000059e-23 < D < 6.1999999999999996e96Initial program 27.2%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified27.3%
Taylor expanded in d around inf
times-fracN/A
associate-*l/N/A
associate-/l*N/A
/-lowering-/.f64N/A
associate-/r*N/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
count-2N/A
*-lowering-*.f64N/A
associate-/r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
associate-/l/N/A
*-commutativeN/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6436.7%
Applied egg-rr36.7%
associate-/l/N/A
associate-*r*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6465.9%
Applied egg-rr65.9%
*-commutativeN/A
frac-timesN/A
associate-*r*N/A
*-commutativeN/A
associate-/l*N/A
clear-numN/A
associate-*r/N/A
div-invN/A
associate-/r*N/A
associate-/r/N/A
*-lowering-*.f64N/A
Applied egg-rr63.3%
if 1.7499999999999999e-241 < D < 8.20000000000000059e-23Initial program 19.3%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified19.2%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified22.3%
div0N/A
+-lft-identityN/A
unswap-sqrN/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr50.3%
Taylor expanded in c0 around 0
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6456.4%
Simplified56.4%
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6462.0%
Applied egg-rr62.0%
Final simplification56.4%
(FPCore (c0 w h D d M)
:precision binary64
(let* ((t_0 (* D (* h M))))
(if (<= M 3.5e-166)
(/ (/ (* t_0 (* D (* M 0.25))) d) d)
(if (<= M 6.4e+61)
(* (/ c0 (* 2.0 w)) (* 2.0 (/ (/ (/ d h) (/ D (* c0 d))) (* w D))))
(/ (/ (* D (* M (* 0.25 t_0))) d) d)))))
double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = D * (h * M);
double tmp;
if (M <= 3.5e-166) {
tmp = ((t_0 * (D * (M * 0.25))) / d) / d;
} else if (M <= 6.4e+61) {
tmp = (c0 / (2.0 * w)) * (2.0 * (((d / h) / (D / (c0 * d))) / (w * D)));
} else {
tmp = ((D * (M * (0.25 * t_0))) / 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)
if (m <= 3.5d-166) then
tmp = ((t_0 * (d * (m * 0.25d0))) / d_1) / d_1
else if (m <= 6.4d+61) then
tmp = (c0 / (2.0d0 * w)) * (2.0d0 * (((d_1 / h) / (d / (c0 * d_1))) / (w * d)))
else
tmp = ((d * (m * (0.25d0 * t_0))) / 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 = D * (h * M);
double tmp;
if (M <= 3.5e-166) {
tmp = ((t_0 * (D * (M * 0.25))) / d) / d;
} else if (M <= 6.4e+61) {
tmp = (c0 / (2.0 * w)) * (2.0 * (((d / h) / (D / (c0 * d))) / (w * D)));
} else {
tmp = ((D * (M * (0.25 * t_0))) / d) / d;
}
return tmp;
}
def code(c0, w, h, D, d, M): t_0 = D * (h * M) tmp = 0 if M <= 3.5e-166: tmp = ((t_0 * (D * (M * 0.25))) / d) / d elif M <= 6.4e+61: tmp = (c0 / (2.0 * w)) * (2.0 * (((d / h) / (D / (c0 * d))) / (w * D))) else: tmp = ((D * (M * (0.25 * t_0))) / d) / d return tmp
function code(c0, w, h, D, d, M) t_0 = Float64(D * Float64(h * M)) tmp = 0.0 if (M <= 3.5e-166) tmp = Float64(Float64(Float64(t_0 * Float64(D * Float64(M * 0.25))) / d) / d); elseif (M <= 6.4e+61) tmp = Float64(Float64(c0 / Float64(2.0 * w)) * Float64(2.0 * Float64(Float64(Float64(d / h) / Float64(D / Float64(c0 * d))) / Float64(w * D)))); else tmp = Float64(Float64(Float64(D * Float64(M * Float64(0.25 * t_0))) / d) / d); end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) t_0 = D * (h * M); tmp = 0.0; if (M <= 3.5e-166) tmp = ((t_0 * (D * (M * 0.25))) / d) / d; elseif (M <= 6.4e+61) tmp = (c0 / (2.0 * w)) * (2.0 * (((d / h) / (D / (c0 * d))) / (w * D))); else tmp = ((D * (M * (0.25 * t_0))) / d) / d; end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := Block[{t$95$0 = N[(D * N[(h * M), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[M, 3.5e-166], N[(N[(N[(t$95$0 * N[(D * N[(M * 0.25), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision], If[LessEqual[M, 6.4e+61], N[(N[(c0 / N[(2.0 * w), $MachinePrecision]), $MachinePrecision] * N[(2.0 * N[(N[(N[(d / h), $MachinePrecision] / N[(D / N[(c0 * d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(w * D), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(D * N[(M * N[(0.25 * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := D \cdot \left(h \cdot M\right)\\
\mathbf{if}\;M \leq 3.5 \cdot 10^{-166}:\\
\;\;\;\;\frac{\frac{t\_0 \cdot \left(D \cdot \left(M \cdot 0.25\right)\right)}{d}}{d}\\
\mathbf{elif}\;M \leq 6.4 \cdot 10^{+61}:\\
\;\;\;\;\frac{c0}{2 \cdot w} \cdot \left(2 \cdot \frac{\frac{\frac{d}{h}}{\frac{D}{c0 \cdot d}}}{w \cdot D}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{D \cdot \left(M \cdot \left(0.25 \cdot t\_0\right)\right)}{d}}{d}\\
\end{array}
\end{array}
if M < 3.4999999999999999e-166Initial program 23.0%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified21.6%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified17.8%
div0N/A
+-lft-identityN/A
unswap-sqrN/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr39.5%
Taylor expanded in c0 around 0
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6451.9%
Simplified51.9%
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6452.0%
Applied egg-rr52.0%
if 3.4999999999999999e-166 < M < 6.3999999999999997e61Initial program 32.3%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified30.3%
Taylor expanded in d around inf
times-fracN/A
associate-*l/N/A
associate-/l*N/A
/-lowering-/.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6430.9%
Simplified30.9%
associate-/r*N/A
associate-/r*N/A
count-2N/A
*-lowering-*.f64N/A
associate-/r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
associate-/l/N/A
*-commutativeN/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6430.9%
Applied egg-rr30.9%
associate-/l/N/A
associate-*r*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6439.8%
Applied egg-rr39.8%
*-commutativeN/A
associate-/r*N/A
associate-/r*N/A
frac-timesN/A
/-lowering-/.f64N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6450.6%
Applied egg-rr50.6%
if 6.3999999999999997e61 < M Initial program 5.8%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified7.8%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified12.0%
div0N/A
+-lft-identityN/A
unswap-sqrN/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr37.9%
Taylor expanded in c0 around 0
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6452.2%
Simplified52.2%
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6459.2%
Applied egg-rr59.2%
Final simplification53.2%
(FPCore (c0 w h D d M)
:precision binary64
(let* ((t_0 (* D (* h M))))
(if (<= M 3.6e-166)
(/ (/ (* t_0 (* D (* M 0.25))) d) d)
(if (<= M 0.00094)
(* (/ c0 (* 2.0 w)) (* 2.0 (/ (/ d (/ D c0)) (/ D (/ d (* w h))))))
(/ (/ (* D (* M (* 0.25 t_0))) d) d)))))
double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = D * (h * M);
double tmp;
if (M <= 3.6e-166) {
tmp = ((t_0 * (D * (M * 0.25))) / d) / d;
} else if (M <= 0.00094) {
tmp = (c0 / (2.0 * w)) * (2.0 * ((d / (D / c0)) / (D / (d / (w * h)))));
} else {
tmp = ((D * (M * (0.25 * t_0))) / 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)
if (m <= 3.6d-166) then
tmp = ((t_0 * (d * (m * 0.25d0))) / d_1) / d_1
else if (m <= 0.00094d0) then
tmp = (c0 / (2.0d0 * w)) * (2.0d0 * ((d_1 / (d / c0)) / (d / (d_1 / (w * h)))))
else
tmp = ((d * (m * (0.25d0 * t_0))) / 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 = D * (h * M);
double tmp;
if (M <= 3.6e-166) {
tmp = ((t_0 * (D * (M * 0.25))) / d) / d;
} else if (M <= 0.00094) {
tmp = (c0 / (2.0 * w)) * (2.0 * ((d / (D / c0)) / (D / (d / (w * h)))));
} else {
tmp = ((D * (M * (0.25 * t_0))) / d) / d;
}
return tmp;
}
def code(c0, w, h, D, d, M): t_0 = D * (h * M) tmp = 0 if M <= 3.6e-166: tmp = ((t_0 * (D * (M * 0.25))) / d) / d elif M <= 0.00094: tmp = (c0 / (2.0 * w)) * (2.0 * ((d / (D / c0)) / (D / (d / (w * h))))) else: tmp = ((D * (M * (0.25 * t_0))) / d) / d return tmp
function code(c0, w, h, D, d, M) t_0 = Float64(D * Float64(h * M)) tmp = 0.0 if (M <= 3.6e-166) tmp = Float64(Float64(Float64(t_0 * Float64(D * Float64(M * 0.25))) / d) / d); elseif (M <= 0.00094) tmp = Float64(Float64(c0 / Float64(2.0 * w)) * Float64(2.0 * Float64(Float64(d / Float64(D / c0)) / Float64(D / Float64(d / Float64(w * h)))))); else tmp = Float64(Float64(Float64(D * Float64(M * Float64(0.25 * t_0))) / d) / d); end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) t_0 = D * (h * M); tmp = 0.0; if (M <= 3.6e-166) tmp = ((t_0 * (D * (M * 0.25))) / d) / d; elseif (M <= 0.00094) tmp = (c0 / (2.0 * w)) * (2.0 * ((d / (D / c0)) / (D / (d / (w * h))))); else tmp = ((D * (M * (0.25 * t_0))) / d) / d; end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := Block[{t$95$0 = N[(D * N[(h * M), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[M, 3.6e-166], N[(N[(N[(t$95$0 * N[(D * N[(M * 0.25), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision], If[LessEqual[M, 0.00094], N[(N[(c0 / N[(2.0 * w), $MachinePrecision]), $MachinePrecision] * N[(2.0 * N[(N[(d / N[(D / c0), $MachinePrecision]), $MachinePrecision] / N[(D / N[(d / N[(w * h), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(D * N[(M * N[(0.25 * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := D \cdot \left(h \cdot M\right)\\
\mathbf{if}\;M \leq 3.6 \cdot 10^{-166}:\\
\;\;\;\;\frac{\frac{t\_0 \cdot \left(D \cdot \left(M \cdot 0.25\right)\right)}{d}}{d}\\
\mathbf{elif}\;M \leq 0.00094:\\
\;\;\;\;\frac{c0}{2 \cdot w} \cdot \left(2 \cdot \frac{\frac{d}{\frac{D}{c0}}}{\frac{D}{\frac{d}{w \cdot h}}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{D \cdot \left(M \cdot \left(0.25 \cdot t\_0\right)\right)}{d}}{d}\\
\end{array}
\end{array}
if M < 3.6000000000000001e-166Initial program 23.0%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified21.6%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified17.8%
div0N/A
+-lft-identityN/A
unswap-sqrN/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr39.5%
Taylor expanded in c0 around 0
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6451.9%
Simplified51.9%
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6452.0%
Applied egg-rr52.0%
if 3.6000000000000001e-166 < M < 9.39999999999999972e-4Initial program 32.1%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified29.6%
Taylor expanded in d around inf
times-fracN/A
associate-*l/N/A
associate-/l*N/A
/-lowering-/.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6430.1%
Simplified30.1%
associate-/r*N/A
associate-/r*N/A
count-2N/A
*-lowering-*.f64N/A
associate-/r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
associate-/l/N/A
*-commutativeN/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6430.0%
Applied egg-rr30.0%
associate-/l/N/A
associate-*r*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6435.8%
Applied egg-rr35.8%
clear-numN/A
associate-/r*N/A
frac-timesN/A
*-rgt-identityN/A
/-lowering-/.f64N/A
*-commutativeN/A
associate-/l*N/A
clear-numN/A
div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6448.5%
Applied egg-rr48.5%
if 9.39999999999999972e-4 < M Initial program 9.9%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified11.6%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified12.0%
div0N/A
+-lft-identityN/A
unswap-sqrN/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr38.8%
Taylor expanded in c0 around 0
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6452.7%
Simplified52.7%
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6458.7%
Applied egg-rr58.7%
Final simplification53.1%
(FPCore (c0 w h D d M)
:precision binary64
(let* ((t_0 (/ (/ (* (* D (* h M)) (* D (* M 0.25))) d) d)))
(if (<= w -2.2e+60)
t_0
(if (<= w 1.85e-256)
(* 0.25 (* D (* D (/ (/ (* h (* M M)) d) d))))
t_0))))
double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = (((D * (h * M)) * (D * (M * 0.25))) / d) / d;
double tmp;
if (w <= -2.2e+60) {
tmp = t_0;
} else if (w <= 1.85e-256) {
tmp = 0.25 * (D * (D * (((h * (M * M)) / 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)) * (d * (m * 0.25d0))) / d_1) / d_1
if (w <= (-2.2d+60)) then
tmp = t_0
else if (w <= 1.85d-256) then
tmp = 0.25d0 * (d * (d * (((h * (m * m)) / d_1) / d_1)))
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)) * (D * (M * 0.25))) / d) / d;
double tmp;
if (w <= -2.2e+60) {
tmp = t_0;
} else if (w <= 1.85e-256) {
tmp = 0.25 * (D * (D * (((h * (M * M)) / d) / d)));
} else {
tmp = t_0;
}
return tmp;
}
def code(c0, w, h, D, d, M): t_0 = (((D * (h * M)) * (D * (M * 0.25))) / d) / d tmp = 0 if w <= -2.2e+60: tmp = t_0 elif w <= 1.85e-256: tmp = 0.25 * (D * (D * (((h * (M * M)) / 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 * M)) * Float64(D * Float64(M * 0.25))) / d) / d) tmp = 0.0 if (w <= -2.2e+60) tmp = t_0; elseif (w <= 1.85e-256) tmp = Float64(0.25 * Float64(D * Float64(D * Float64(Float64(Float64(h * Float64(M * M)) / 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)) * (D * (M * 0.25))) / d) / d; tmp = 0.0; if (w <= -2.2e+60) tmp = t_0; elseif (w <= 1.85e-256) tmp = 0.25 * (D * (D * (((h * (M * M)) / 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 * M), $MachinePrecision]), $MachinePrecision] * N[(D * N[(M * 0.25), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision]}, If[LessEqual[w, -2.2e+60], t$95$0, If[LessEqual[w, 1.85e-256], N[(0.25 * N[(D * N[(D * N[(N[(N[(h * N[(M * M), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \frac{\frac{\left(D \cdot \left(h \cdot M\right)\right) \cdot \left(D \cdot \left(M \cdot 0.25\right)\right)}{d}}{d}\\
\mathbf{if}\;w \leq -2.2 \cdot 10^{+60}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;w \leq 1.85 \cdot 10^{-256}:\\
\;\;\;\;0.25 \cdot \left(D \cdot \left(D \cdot \frac{\frac{h \cdot \left(M \cdot M\right)}{d}}{d}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if w < -2.19999999999999996e60 or 1.85000000000000014e-256 < w Initial program 20.9%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified20.0%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified17.4%
div0N/A
+-lft-identityN/A
unswap-sqrN/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr32.0%
Taylor expanded in c0 around 0
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6443.7%
Simplified43.7%
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6449.6%
Applied egg-rr49.6%
if -2.19999999999999996e60 < w < 1.85000000000000014e-256Initial program 21.6%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified21.0%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified10.4%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6438.6%
Simplified38.6%
associate-/l*N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6456.8%
Applied egg-rr56.8%
Final simplification52.8%
(FPCore (c0 w h D d M) :precision binary64 (if (<= D 1.15e-223) (/ (/ (* h (* (* M (* D M)) (* D 0.25))) d) d) (/ (/ (* D (* M (* 0.25 (* D (* h M))))) d) d)))
double code(double c0, double w, double h, double D, double d, double M) {
double tmp;
if (D <= 1.15e-223) {
tmp = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d;
} else {
tmp = ((D * (M * (0.25 * (D * (h * 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 <= 1.15d-223) then
tmp = ((h * ((m * (d * m)) * (d * 0.25d0))) / d_1) / d_1
else
tmp = ((d * (m * (0.25d0 * (d * (h * 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 <= 1.15e-223) {
tmp = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d;
} else {
tmp = ((D * (M * (0.25 * (D * (h * M))))) / d) / d;
}
return tmp;
}
def code(c0, w, h, D, d, M): tmp = 0 if D <= 1.15e-223: tmp = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d else: tmp = ((D * (M * (0.25 * (D * (h * M))))) / d) / d return tmp
function code(c0, w, h, D, d, M) tmp = 0.0 if (D <= 1.15e-223) tmp = Float64(Float64(Float64(h * Float64(Float64(M * Float64(D * M)) * Float64(D * 0.25))) / d) / d); else tmp = Float64(Float64(Float64(D * Float64(M * Float64(0.25 * Float64(D * Float64(h * M))))) / d) / d); end return tmp end
function tmp_2 = code(c0, w, h, D, d, M) tmp = 0.0; if (D <= 1.15e-223) tmp = ((h * ((M * (D * M)) * (D * 0.25))) / d) / d; else tmp = ((D * (M * (0.25 * (D * (h * M))))) / d) / d; end tmp_2 = tmp; end
code[c0_, w_, h_, D_, d_, M_] := If[LessEqual[D, 1.15e-223], N[(N[(N[(h * N[(N[(M * N[(D * M), $MachinePrecision]), $MachinePrecision] * N[(D * 0.25), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision], N[(N[(N[(D * N[(M * N[(0.25 * N[(D * N[(h * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;D \leq 1.15 \cdot 10^{-223}:\\
\;\;\;\;\frac{\frac{h \cdot \left(\left(M \cdot \left(D \cdot M\right)\right) \cdot \left(D \cdot 0.25\right)\right)}{d}}{d}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{D \cdot \left(M \cdot \left(0.25 \cdot \left(D \cdot \left(h \cdot M\right)\right)\right)\right)}{d}}{d}\\
\end{array}
\end{array}
if D < 1.15e-223Initial program 20.0%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified17.8%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified13.8%
div0N/A
+-lft-identityN/A
unswap-sqrN/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr33.9%
Taylor expanded in c0 around 0
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6449.5%
Simplified49.5%
associate-*r*N/A
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6449.7%
Applied egg-rr49.7%
if 1.15e-223 < D Initial program 22.9%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified23.8%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified15.0%
div0N/A
+-lft-identityN/A
unswap-sqrN/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr40.7%
Taylor expanded in c0 around 0
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6446.8%
Simplified46.8%
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6451.2%
Applied egg-rr51.2%
Final simplification50.4%
(FPCore (c0 w h D d M) :precision binary64 (/ (/ (* D (* M (* 0.25 (* D (* h M))))) d) d))
double code(double c0, double w, double h, double D, double d, double M) {
return ((D * (M * (0.25 * (D * (h * M))))) / d) / d;
}
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 = ((d * (m * (0.25d0 * (d * (h * m))))) / d_1) / d_1
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
return ((D * (M * (0.25 * (D * (h * M))))) / d) / d;
}
def code(c0, w, h, D, d, M): return ((D * (M * (0.25 * (D * (h * M))))) / d) / d
function code(c0, w, h, D, d, M) return Float64(Float64(Float64(D * Float64(M * Float64(0.25 * Float64(D * Float64(h * M))))) / d) / d) end
function tmp = code(c0, w, h, D, d, M) tmp = ((D * (M * (0.25 * (D * (h * M))))) / d) / d; end
code[c0_, w_, h_, D_, d_, M_] := N[(N[(N[(D * N[(M * N[(0.25 * N[(D * N[(h * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision]
\begin{array}{l}
\\
\frac{\frac{D \cdot \left(M \cdot \left(0.25 \cdot \left(D \cdot \left(h \cdot M\right)\right)\right)\right)}{d}}{d}
\end{array}
Initial program 21.2%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified20.4%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified14.3%
div0N/A
+-lft-identityN/A
unswap-sqrN/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr36.9%
Taylor expanded in c0 around 0
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6448.3%
Simplified48.3%
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6450.4%
Applied egg-rr50.4%
Final simplification50.4%
(FPCore (c0 w h D d M) :precision binary64 (/ (/ (* 0.25 (* D (* D (* h (* M M))))) d) d))
double code(double c0, double w, double h, double D, double d, double M) {
return ((0.25 * (D * (D * (h * (M * M))))) / d) / d;
}
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.25d0 * (d * (d * (h * (m * m))))) / d_1) / d_1
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
return ((0.25 * (D * (D * (h * (M * M))))) / d) / d;
}
def code(c0, w, h, D, d, M): return ((0.25 * (D * (D * (h * (M * M))))) / d) / d
function code(c0, w, h, D, d, M) return Float64(Float64(Float64(0.25 * Float64(D * Float64(D * Float64(h * Float64(M * M))))) / d) / d) end
function tmp = code(c0, w, h, D, d, M) tmp = ((0.25 * (D * (D * (h * (M * M))))) / d) / d; end
code[c0_, w_, h_, D_, d_, M_] := N[(N[(N[(0.25 * N[(D * N[(D * N[(h * N[(M * M), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision]
\begin{array}{l}
\\
\frac{\frac{0.25 \cdot \left(D \cdot \left(D \cdot \left(h \cdot \left(M \cdot M\right)\right)\right)\right)}{d}}{d}
\end{array}
Initial program 21.2%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified20.4%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified14.3%
div0N/A
+-lft-identityN/A
unswap-sqrN/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr36.9%
Taylor expanded in c0 around 0
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6448.3%
Simplified48.3%
Final simplification48.3%
(FPCore (c0 w h D d M) :precision binary64 (/ (* D (* D (/ (* h (* (* M M) 0.25)) d))) d))
double code(double c0, double w, double h, double D, double d, double M) {
return (D * (D * ((h * ((M * M) * 0.25)) / d))) / d;
}
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 = (d * (d * ((h * ((m * m) * 0.25d0)) / d_1))) / d_1
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
return (D * (D * ((h * ((M * M) * 0.25)) / d))) / d;
}
def code(c0, w, h, D, d, M): return (D * (D * ((h * ((M * M) * 0.25)) / d))) / d
function code(c0, w, h, D, d, M) return Float64(Float64(D * Float64(D * Float64(Float64(h * Float64(Float64(M * M) * 0.25)) / d))) / d) end
function tmp = code(c0, w, h, D, d, M) tmp = (D * (D * ((h * ((M * M) * 0.25)) / d))) / d; end
code[c0_, w_, h_, D_, d_, M_] := N[(N[(D * N[(D * N[(N[(h * N[(N[(M * M), $MachinePrecision] * 0.25), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision]
\begin{array}{l}
\\
\frac{D \cdot \left(D \cdot \frac{h \cdot \left(\left(M \cdot M\right) \cdot 0.25\right)}{d}\right)}{d}
\end{array}
Initial program 21.2%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified20.4%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified14.3%
div0N/A
+-lft-identityN/A
unswap-sqrN/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr36.9%
Taylor expanded in c0 around 0
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6448.3%
Simplified48.3%
Taylor expanded in D around 0
unpow2N/A
associate-/r*N/A
associate-*r/N/A
/-lowering-/.f64N/A
Simplified47.9%
Final simplification47.9%
(FPCore (c0 w h D d M) :precision binary64 (* 0.25 (* D (* D (/ (/ (* h (* M M)) d) d)))))
double code(double c0, double w, double h, double D, double d, double M) {
return 0.25 * (D * (D * (((h * (M * M)) / d) / d)));
}
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.25d0 * (d * (d * (((h * (m * m)) / d_1) / d_1)))
end function
public static double code(double c0, double w, double h, double D, double d, double M) {
return 0.25 * (D * (D * (((h * (M * M)) / d) / d)));
}
def code(c0, w, h, D, d, M): return 0.25 * (D * (D * (((h * (M * M)) / d) / d)))
function code(c0, w, h, D, d, M) return Float64(0.25 * Float64(D * Float64(D * Float64(Float64(Float64(h * Float64(M * M)) / d) / d)))) end
function tmp = code(c0, w, h, D, d, M) tmp = 0.25 * (D * (D * (((h * (M * M)) / d) / d))); end
code[c0_, w_, h_, D_, d_, M_] := N[(0.25 * N[(D * N[(D * N[(N[(N[(h * N[(M * M), $MachinePrecision]), $MachinePrecision] / d), $MachinePrecision] / d), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
0.25 \cdot \left(D \cdot \left(D \cdot \frac{\frac{h \cdot \left(M \cdot M\right)}{d}}{d}\right)\right)
\end{array}
Initial program 21.2%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified20.4%
Taylor expanded in c0 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified14.3%
Taylor expanded in c0 around 0
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6433.1%
Simplified33.1%
associate-/l*N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6447.9%
Applied egg-rr47.9%
Final simplification47.9%
(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 21.2%
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
Simplified20.4%
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-eval27.8%
Simplified27.8%
associate-*r*N/A
mul0-rgt32.0%
Applied egg-rr32.0%
herbie shell --seed 2024145
(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))))))