double code(double c0, double w, double h, double D, double d, double M) {
return (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))));
}
↓
double code(double c0, double w, double h, double D, double d, double M) {
double t_0 = (c0 / h) / w;
double t_1 = pow((d / D), 2.0);
double t_2 = (c0 * (d * d)) / ((w * h) * (D * D));
double t_3 = (c0 / (2.0 * w)) * (t_2 + sqrt(((t_2 * t_2) - (M * M))));
double t_4 = cbrt((d / D));
double tmp;
if (t_3 <= -1e-25) {
tmp = c0 / ((2.0 * w) / fma(t_0, t_1, hypot((t_0 * t_1), M)));
} else if (t_3 <= 0.0) {
tmp = fma(0.25, ((M / pow(t_4, 4.0)) * (M / (pow(t_4, 2.0) / h))), 0.0);
} else if (t_3 <= ((double) INFINITY)) {
tmp = pow((((c0 * d) / sqrt((h * (w * w)))) / D), 2.0);
} else {
tmp = fma(0.25, (((h * M) / (d / D)) * (M / (d / D))), 0.0);
}
return tmp;
}
function code(c0, w, h, D, d, M)
return Float64(Float64(c0 / Float64(2.0 * w)) * Float64(Float64(Float64(c0 * Float64(d * d)) / Float64(Float64(w * h) * Float64(D * D))) + sqrt(Float64(Float64(Float64(Float64(c0 * Float64(d * d)) / Float64(Float64(w * h) * Float64(D * D))) * Float64(Float64(c0 * Float64(d * d)) / Float64(Float64(w * h) * Float64(D * D)))) - Float64(M * M)))))
end
↓
function code(c0, w, h, D, d, M)
t_0 = Float64(Float64(c0 / h) / w)
t_1 = Float64(d / D) ^ 2.0
t_2 = Float64(Float64(c0 * Float64(d * d)) / Float64(Float64(w * h) * Float64(D * D)))
t_3 = Float64(Float64(c0 / Float64(2.0 * w)) * Float64(t_2 + sqrt(Float64(Float64(t_2 * t_2) - Float64(M * M)))))
t_4 = cbrt(Float64(d / D))
tmp = 0.0
if (t_3 <= -1e-25)
tmp = Float64(c0 / Float64(Float64(2.0 * w) / fma(t_0, t_1, hypot(Float64(t_0 * t_1), M))));
elseif (t_3 <= 0.0)
tmp = fma(0.25, Float64(Float64(M / (t_4 ^ 4.0)) * Float64(M / Float64((t_4 ^ 2.0) / h))), 0.0);
elseif (t_3 <= Inf)
tmp = Float64(Float64(Float64(c0 * d) / sqrt(Float64(h * Float64(w * w)))) / D) ^ 2.0;
else
tmp = fma(0.25, Float64(Float64(Float64(h * M) / Float64(d / D)) * Float64(M / Float64(d / D))), 0.0);
end
return tmp
end
code[c0_, w_, h_, D_, d_, M_] := N[(N[(c0 / N[(2.0 * w), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(c0 * N[(d * d), $MachinePrecision]), $MachinePrecision] / N[(N[(w * h), $MachinePrecision] * N[(D * D), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[Sqrt[N[(N[(N[(N[(c0 * N[(d * d), $MachinePrecision]), $MachinePrecision] / N[(N[(w * h), $MachinePrecision] * N[(D * D), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(c0 * N[(d * d), $MachinePrecision]), $MachinePrecision] / N[(N[(w * h), $MachinePrecision] * N[(D * D), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(M * M), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
↓
code[c0_, w_, h_, D_, d_, M_] := Block[{t$95$0 = N[(N[(c0 / h), $MachinePrecision] / w), $MachinePrecision]}, Block[{t$95$1 = N[Power[N[(d / D), $MachinePrecision], 2.0], $MachinePrecision]}, Block[{t$95$2 = N[(N[(c0 * N[(d * d), $MachinePrecision]), $MachinePrecision] / N[(N[(w * h), $MachinePrecision] * N[(D * D), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[(c0 / N[(2.0 * w), $MachinePrecision]), $MachinePrecision] * N[(t$95$2 + N[Sqrt[N[(N[(t$95$2 * t$95$2), $MachinePrecision] - N[(M * M), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[Power[N[(d / D), $MachinePrecision], 1/3], $MachinePrecision]}, If[LessEqual[t$95$3, -1e-25], N[(c0 / N[(N[(2.0 * w), $MachinePrecision] / N[(t$95$0 * t$95$1 + N[Sqrt[N[(t$95$0 * t$95$1), $MachinePrecision] ^ 2 + M ^ 2], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$3, 0.0], N[(0.25 * N[(N[(M / N[Power[t$95$4, 4.0], $MachinePrecision]), $MachinePrecision] * N[(M / N[(N[Power[t$95$4, 2.0], $MachinePrecision] / h), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + 0.0), $MachinePrecision], If[LessEqual[t$95$3, Infinity], N[Power[N[(N[(N[(c0 * d), $MachinePrecision] / N[Sqrt[N[(h * N[(w * w), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / D), $MachinePrecision], 2.0], $MachinePrecision], N[(0.25 * N[(N[(N[(h * M), $MachinePrecision] / N[(d / D), $MachinePrecision]), $MachinePrecision] * N[(M / N[(d / D), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + 0.0), $MachinePrecision]]]]]]]]]