(FPCore (n U t l Om U*) :precision binary64 (sqrt (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))))
(FPCore (n U t l Om U*)
:precision binary64
(let* ((t_1
(sqrt
(*
(* 2.0 (* n U))
(+ t (* (/ l Om) (fma l -2.0 (* (- U* U) (* n (/ l Om))))))))))
(if (<= l -2.0626575918686287e+228)
(*
(sqrt 2.0)
(*
(sqrt
(*
n
(*
U
(+
(/ (* n U*) (pow Om 2.0))
(- (* (/ 1.0 Om) -2.0) (/ (* n U) (pow Om 2.0)))))))
(- l)))
(if (<= l -5.438743501710158e+153)
(pow
(pow (* 2.0 (* n (fma U t (* (* U (/ l (/ Om l))) -2.0)))) 0.25)
2.0)
(if (<= l -4.362243388401799e+119)
(*
(sqrt 2.0)
(sqrt (+ (* n (* U t)) (* -2.0 (/ (* n (* U (pow l 2.0))) Om)))))
(if (<= l -2.66377957353005e-83)
t_1
(if (<= l -9.579590953786636e-114)
(pow
(pow
(*
2.0
(pow
(sqrt
(*
n
(*
U
(fma
(/ l Om)
(fma l -2.0 (* n (* (/ l Om) (- U* U))))
t))))
2.0))
0.25)
2.0)
(if (<= l -4.5557220936498896e-266)
(sqrt
(fma 2.0 (* U (* n t)) (* (/ (* n (* U (* l l))) Om) -4.0)))
(if (<= l 1.0079913196216918e+181)
t_1
(*
(sqrt 2.0)
(*
l
(sqrt
(*
n
(*
U
(+
(/ n (/ Om (/ U* Om)))
(- (/ -2.0 Om) (/ n (/ Om (/ U Om)))))))))))))))))))double code(double n, double U, double t, double l, double Om, double U_42_) {
return sqrt((((2.0 * n) * U) * ((t - (2.0 * ((l * l) / Om))) - ((n * pow((l / Om), 2.0)) * (U - U_42_)))));
}
double code(double n, double U, double t, double l, double Om, double U_42_) {
double t_1 = sqrt(((2.0 * (n * U)) * (t + ((l / Om) * fma(l, -2.0, ((U_42_ - U) * (n * (l / Om))))))));
double tmp;
if (l <= -2.0626575918686287e+228) {
tmp = sqrt(2.0) * (sqrt((n * (U * (((n * U_42_) / pow(Om, 2.0)) + (((1.0 / Om) * -2.0) - ((n * U) / pow(Om, 2.0))))))) * -l);
} else if (l <= -5.438743501710158e+153) {
tmp = pow(pow((2.0 * (n * fma(U, t, ((U * (l / (Om / l))) * -2.0)))), 0.25), 2.0);
} else if (l <= -4.362243388401799e+119) {
tmp = sqrt(2.0) * sqrt(((n * (U * t)) + (-2.0 * ((n * (U * pow(l, 2.0))) / Om))));
} else if (l <= -2.66377957353005e-83) {
tmp = t_1;
} else if (l <= -9.579590953786636e-114) {
tmp = pow(pow((2.0 * pow(sqrt((n * (U * fma((l / Om), fma(l, -2.0, (n * ((l / Om) * (U_42_ - U)))), t)))), 2.0)), 0.25), 2.0);
} else if (l <= -4.5557220936498896e-266) {
tmp = sqrt(fma(2.0, (U * (n * t)), (((n * (U * (l * l))) / Om) * -4.0)));
} else if (l <= 1.0079913196216918e+181) {
tmp = t_1;
} else {
tmp = sqrt(2.0) * (l * sqrt((n * (U * ((n / (Om / (U_42_ / Om))) + ((-2.0 / Om) - (n / (Om / (U / Om)))))))));
}
return tmp;
}
function code(n, U, t, l, Om, U_42_) return sqrt(Float64(Float64(Float64(2.0 * n) * U) * Float64(Float64(t - Float64(2.0 * Float64(Float64(l * l) / Om))) - Float64(Float64(n * (Float64(l / Om) ^ 2.0)) * Float64(U - U_42_))))) end
function code(n, U, t, l, Om, U_42_) t_1 = sqrt(Float64(Float64(2.0 * Float64(n * U)) * Float64(t + Float64(Float64(l / Om) * fma(l, -2.0, Float64(Float64(U_42_ - U) * Float64(n * Float64(l / Om)))))))) tmp = 0.0 if (l <= -2.0626575918686287e+228) tmp = Float64(sqrt(2.0) * Float64(sqrt(Float64(n * Float64(U * Float64(Float64(Float64(n * U_42_) / (Om ^ 2.0)) + Float64(Float64(Float64(1.0 / Om) * -2.0) - Float64(Float64(n * U) / (Om ^ 2.0))))))) * Float64(-l))); elseif (l <= -5.438743501710158e+153) tmp = (Float64(2.0 * Float64(n * fma(U, t, Float64(Float64(U * Float64(l / Float64(Om / l))) * -2.0)))) ^ 0.25) ^ 2.0; elseif (l <= -4.362243388401799e+119) tmp = Float64(sqrt(2.0) * sqrt(Float64(Float64(n * Float64(U * t)) + Float64(-2.0 * Float64(Float64(n * Float64(U * (l ^ 2.0))) / Om))))); elseif (l <= -2.66377957353005e-83) tmp = t_1; elseif (l <= -9.579590953786636e-114) tmp = (Float64(2.0 * (sqrt(Float64(n * Float64(U * fma(Float64(l / Om), fma(l, -2.0, Float64(n * Float64(Float64(l / Om) * Float64(U_42_ - U)))), t)))) ^ 2.0)) ^ 0.25) ^ 2.0; elseif (l <= -4.5557220936498896e-266) tmp = sqrt(fma(2.0, Float64(U * Float64(n * t)), Float64(Float64(Float64(n * Float64(U * Float64(l * l))) / Om) * -4.0))); elseif (l <= 1.0079913196216918e+181) tmp = t_1; else tmp = Float64(sqrt(2.0) * Float64(l * sqrt(Float64(n * Float64(U * Float64(Float64(n / Float64(Om / Float64(U_42_ / Om))) + Float64(Float64(-2.0 / Om) - Float64(n / Float64(Om / Float64(U / Om)))))))))); end return tmp end
code[n_, U_, t_, l_, Om_, U$42$_] := N[Sqrt[N[(N[(N[(2.0 * n), $MachinePrecision] * U), $MachinePrecision] * N[(N[(t - N[(2.0 * N[(N[(l * l), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(N[(n * N[Power[N[(l / Om), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] * N[(U - U$42$), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
code[n_, U_, t_, l_, Om_, U$42$_] := Block[{t$95$1 = N[Sqrt[N[(N[(2.0 * N[(n * U), $MachinePrecision]), $MachinePrecision] * N[(t + N[(N[(l / Om), $MachinePrecision] * N[(l * -2.0 + N[(N[(U$42$ - U), $MachinePrecision] * N[(n * N[(l / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[l, -2.0626575918686287e+228], N[(N[Sqrt[2.0], $MachinePrecision] * N[(N[Sqrt[N[(n * N[(U * N[(N[(N[(n * U$42$), $MachinePrecision] / N[Power[Om, 2.0], $MachinePrecision]), $MachinePrecision] + N[(N[(N[(1.0 / Om), $MachinePrecision] * -2.0), $MachinePrecision] - N[(N[(n * U), $MachinePrecision] / N[Power[Om, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * (-l)), $MachinePrecision]), $MachinePrecision], If[LessEqual[l, -5.438743501710158e+153], N[Power[N[Power[N[(2.0 * N[(n * N[(U * t + N[(N[(U * N[(l / N[(Om / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * -2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 0.25], $MachinePrecision], 2.0], $MachinePrecision], If[LessEqual[l, -4.362243388401799e+119], N[(N[Sqrt[2.0], $MachinePrecision] * N[Sqrt[N[(N[(n * N[(U * t), $MachinePrecision]), $MachinePrecision] + N[(-2.0 * N[(N[(n * N[(U * N[Power[l, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[l, -2.66377957353005e-83], t$95$1, If[LessEqual[l, -9.579590953786636e-114], N[Power[N[Power[N[(2.0 * N[Power[N[Sqrt[N[(n * N[(U * N[(N[(l / Om), $MachinePrecision] * N[(l * -2.0 + N[(n * N[(N[(l / Om), $MachinePrecision] * N[(U$42$ - U), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 0.25], $MachinePrecision], 2.0], $MachinePrecision], If[LessEqual[l, -4.5557220936498896e-266], N[Sqrt[N[(2.0 * N[(U * N[(n * t), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(n * N[(U * N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / Om), $MachinePrecision] * -4.0), $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[l, 1.0079913196216918e+181], t$95$1, N[(N[Sqrt[2.0], $MachinePrecision] * N[(l * N[Sqrt[N[(n * N[(U * N[(N[(n / N[(Om / N[(U$42$ / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(-2.0 / Om), $MachinePrecision] - N[(n / N[(Om / N[(U / Om), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]]]]
\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}
\begin{array}{l}
t_1 := \sqrt{\left(2 \cdot \left(n \cdot U\right)\right) \cdot \left(t + \frac{\ell}{Om} \cdot \mathsf{fma}\left(\ell, -2, \left(U* - U\right) \cdot \left(n \cdot \frac{\ell}{Om}\right)\right)\right)}\\
\mathbf{if}\;\ell \leq -2.0626575918686287 \cdot 10^{+228}:\\
\;\;\;\;\sqrt{2} \cdot \left(\sqrt{n \cdot \left(U \cdot \left(\frac{n \cdot U*}{{Om}^{2}} + \left(\frac{1}{Om} \cdot -2 - \frac{n \cdot U}{{Om}^{2}}\right)\right)\right)} \cdot \left(-\ell\right)\right)\\
\mathbf{elif}\;\ell \leq -5.438743501710158 \cdot 10^{+153}:\\
\;\;\;\;{\left({\left(2 \cdot \left(n \cdot \mathsf{fma}\left(U, t, \left(U \cdot \frac{\ell}{\frac{Om}{\ell}}\right) \cdot -2\right)\right)\right)}^{0.25}\right)}^{2}\\
\mathbf{elif}\;\ell \leq -4.362243388401799 \cdot 10^{+119}:\\
\;\;\;\;\sqrt{2} \cdot \sqrt{n \cdot \left(U \cdot t\right) + -2 \cdot \frac{n \cdot \left(U \cdot {\ell}^{2}\right)}{Om}}\\
\mathbf{elif}\;\ell \leq -2.66377957353005 \cdot 10^{-83}:\\
\;\;\;\;t_1\\
\mathbf{elif}\;\ell \leq -9.579590953786636 \cdot 10^{-114}:\\
\;\;\;\;{\left({\left(2 \cdot {\left(\sqrt{n \cdot \left(U \cdot \mathsf{fma}\left(\frac{\ell}{Om}, \mathsf{fma}\left(\ell, -2, n \cdot \left(\frac{\ell}{Om} \cdot \left(U* - U\right)\right)\right), t\right)\right)}\right)}^{2}\right)}^{0.25}\right)}^{2}\\
\mathbf{elif}\;\ell \leq -4.5557220936498896 \cdot 10^{-266}:\\
\;\;\;\;\sqrt{\mathsf{fma}\left(2, U \cdot \left(n \cdot t\right), \frac{n \cdot \left(U \cdot \left(\ell \cdot \ell\right)\right)}{Om} \cdot -4\right)}\\
\mathbf{elif}\;\ell \leq 1.0079913196216918 \cdot 10^{+181}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2} \cdot \left(\ell \cdot \sqrt{n \cdot \left(U \cdot \left(\frac{n}{\frac{Om}{\frac{U*}{Om}}} + \left(\frac{-2}{Om} - \frac{n}{\frac{Om}{\frac{U}{Om}}}\right)\right)\right)}\right)\\
\end{array}



Bits error versus n



Bits error versus U



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus U*
if l < -2.06265759186862865e228Initial program 64.0
Simplified55.4
Applied egg-rr55.4
Taylor expanded in l around -inf 31.5
if -2.06265759186862865e228 < l < -5.4387435017101581e153Initial program 63.8
Simplified38.5
Applied egg-rr38.6
Taylor expanded in n around 0 63.8
Simplified40.3
if -5.4387435017101581e153 < l < -4.3622433884017993e119Initial program 36.8
Simplified35.7
Applied egg-rr35.8
Taylor expanded in Om around inf 38.5
if -4.3622433884017993e119 < l < -2.6637795735300499e-83 or -4.55572209364988956e-266 < l < 1.0079913196216918e181Initial program 30.1
Simplified27.8
if -2.6637795735300499e-83 < l < -9.5795909537866356e-114Initial program 27.9
Simplified26.0
Applied egg-rr26.2
Applied egg-rr26.1
if -9.5795909537866356e-114 < l < -4.55572209364988956e-266Initial program 25.5
Simplified24.3
Taylor expanded in Om around inf 30.6
Simplified29.8
if 1.0079913196216918e181 < l Initial program 64.0
Simplified50.6
Applied egg-rr50.6
Taylor expanded in l around inf 35.2
Simplified33.4
Final simplification29.4
herbie shell --seed 2022146
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
:precision binary64
(sqrt (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))))