\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}
\mathbf{if}\;n \le -9.014626965436397950093167243230168496464 \cdot 10^{-81}:\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(\left({\left(\frac{\ell}{Om}\right)}^{2} \cdot \left(\left(U* - U\right) \cdot n\right) - \left(\left(\frac{\ell}{Om} \cdot \ell\right) \cdot 2 - t\right)\right) \cdot U\right)}\\
\mathbf{elif}\;n \le 1.008725107202353820896882228886919841361 \cdot 10^{-199}:\\
\;\;\;\;\sqrt{U \cdot \left(\left(t + \left(0 \cdot \left(U* - U\right) - \left(2 \cdot \ell\right) \cdot \frac{\ell}{Om}\right)\right) \cdot \left(2 \cdot n\right)\right)}\\
\mathbf{elif}\;n \le 31641216734603.953125:\\
\;\;\;\;\sqrt{\left(\left(\left(\left(2 \cdot n\right) \cdot \left(\sqrt[3]{U} \cdot \sqrt[3]{U}\right)\right) \cdot \left(U* - U\right)\right) \cdot \left({\left(\frac{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}\right)}^{2} \cdot \left(n \cdot {\left(\frac{\sqrt[3]{\ell}}{\sqrt[3]{Om}}\right)}^{2}\right)\right) + \left(-\left(\left(2 \cdot \ell\right) \cdot \frac{\ell}{Om} - t\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot \left(\sqrt[3]{U} \cdot \sqrt[3]{U}\right)\right)\right) \cdot \sqrt[3]{U}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\left({\left(\sqrt[3]{U* - U}\right)}^{3} \cdot \left({\left(\frac{\ell}{Om}\right)}^{2} \cdot n\right) - \left(\ell \cdot \left(2 \cdot \frac{\ell}{Om}\right) - t\right)\right) \cdot \left(U \cdot \left(2 \cdot n\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r207177 = 2.0;
double r207178 = n;
double r207179 = r207177 * r207178;
double r207180 = U;
double r207181 = r207179 * r207180;
double r207182 = t;
double r207183 = l;
double r207184 = r207183 * r207183;
double r207185 = Om;
double r207186 = r207184 / r207185;
double r207187 = r207177 * r207186;
double r207188 = r207182 - r207187;
double r207189 = r207183 / r207185;
double r207190 = pow(r207189, r207177);
double r207191 = r207178 * r207190;
double r207192 = U_;
double r207193 = r207180 - r207192;
double r207194 = r207191 * r207193;
double r207195 = r207188 - r207194;
double r207196 = r207181 * r207195;
double r207197 = sqrt(r207196);
return r207197;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r207198 = n;
double r207199 = -9.014626965436398e-81;
bool r207200 = r207198 <= r207199;
double r207201 = 2.0;
double r207202 = r207201 * r207198;
double r207203 = l;
double r207204 = Om;
double r207205 = r207203 / r207204;
double r207206 = pow(r207205, r207201);
double r207207 = U_;
double r207208 = U;
double r207209 = r207207 - r207208;
double r207210 = r207209 * r207198;
double r207211 = r207206 * r207210;
double r207212 = r207205 * r207203;
double r207213 = r207212 * r207201;
double r207214 = t;
double r207215 = r207213 - r207214;
double r207216 = r207211 - r207215;
double r207217 = r207216 * r207208;
double r207218 = r207202 * r207217;
double r207219 = sqrt(r207218);
double r207220 = 1.0087251072023538e-199;
bool r207221 = r207198 <= r207220;
double r207222 = 0.0;
double r207223 = r207222 * r207209;
double r207224 = r207201 * r207203;
double r207225 = r207224 * r207205;
double r207226 = r207223 - r207225;
double r207227 = r207214 + r207226;
double r207228 = r207227 * r207202;
double r207229 = r207208 * r207228;
double r207230 = sqrt(r207229);
double r207231 = 31641216734603.953;
bool r207232 = r207198 <= r207231;
double r207233 = cbrt(r207208);
double r207234 = r207233 * r207233;
double r207235 = r207202 * r207234;
double r207236 = r207235 * r207209;
double r207237 = cbrt(r207203);
double r207238 = r207237 * r207237;
double r207239 = cbrt(r207204);
double r207240 = r207239 * r207239;
double r207241 = r207238 / r207240;
double r207242 = pow(r207241, r207201);
double r207243 = r207237 / r207239;
double r207244 = pow(r207243, r207201);
double r207245 = r207198 * r207244;
double r207246 = r207242 * r207245;
double r207247 = r207236 * r207246;
double r207248 = r207225 - r207214;
double r207249 = -r207248;
double r207250 = r207249 * r207235;
double r207251 = r207247 + r207250;
double r207252 = r207251 * r207233;
double r207253 = sqrt(r207252);
double r207254 = cbrt(r207209);
double r207255 = 3.0;
double r207256 = pow(r207254, r207255);
double r207257 = r207206 * r207198;
double r207258 = r207256 * r207257;
double r207259 = r207201 * r207205;
double r207260 = r207203 * r207259;
double r207261 = r207260 - r207214;
double r207262 = r207258 - r207261;
double r207263 = r207208 * r207202;
double r207264 = r207262 * r207263;
double r207265 = sqrt(r207264);
double r207266 = r207232 ? r207253 : r207265;
double r207267 = r207221 ? r207230 : r207266;
double r207268 = r207200 ? r207219 : r207267;
return r207268;
}



Bits error versus n



Bits error versus U



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus U*
Results
if n < -9.014626965436398e-81Initial program 33.2
Simplified34.0
rmApplied associate-*l*31.1
Simplified35.2
if -9.014626965436398e-81 < n < 1.0087251072023538e-199Initial program 37.1
Simplified30.3
Taylor expanded around 0 30.9
if 1.0087251072023538e-199 < n < 31641216734603.953Initial program 31.7
Simplified26.0
rmApplied add-cube-cbrt26.0
Applied associate-*r*26.0
Simplified26.0
rmApplied add-cube-cbrt26.4
Applied associate-*r*26.4
Simplified26.5
rmApplied sub-neg26.5
Applied distribute-lft-in26.5
Simplified27.6
Simplified27.6
rmApplied add-cube-cbrt27.7
Applied add-cube-cbrt27.7
Applied times-frac27.7
Applied unpow-prod-down27.7
Applied associate-*l*26.7
Simplified26.7
if 31641216734603.953 < n Initial program 33.8
Simplified36.8
rmApplied add-cube-cbrt36.8
Applied associate-*r*36.8
Simplified36.8
rmApplied pow136.8
Applied pow136.8
Applied pow136.8
Applied pow136.8
Applied pow-prod-down36.8
Applied pow-prod-down36.8
Applied pow-prod-down36.8
Simplified31.0
Final simplification31.2
herbie shell --seed 2019194
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
(sqrt (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))))