Toniolo and Linder, Equation (10+)

Percentage Accurate: 54.1% → 82.5%
Time: 17.0s
Alternatives: 19
Speedup: 2.0×

Specification

?
\[\begin{array}{l} \\ \frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)} \end{array} \]
(FPCore (t l k)
 :precision binary64
 (/
  2.0
  (*
   (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k))
   (+ (+ 1.0 (pow (/ k t) 2.0)) 1.0))))
double code(double t, double l, double k) {
	return 2.0 / ((((pow(t, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t), 2.0)) + 1.0));
}
real(8) function code(t, l, k)
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    code = 2.0d0 / (((((t ** 3.0d0) / (l * l)) * sin(k)) * tan(k)) * ((1.0d0 + ((k / t) ** 2.0d0)) + 1.0d0))
end function
public static double code(double t, double l, double k) {
	return 2.0 / ((((Math.pow(t, 3.0) / (l * l)) * Math.sin(k)) * Math.tan(k)) * ((1.0 + Math.pow((k / t), 2.0)) + 1.0));
}
def code(t, l, k):
	return 2.0 / ((((math.pow(t, 3.0) / (l * l)) * math.sin(k)) * math.tan(k)) * ((1.0 + math.pow((k / t), 2.0)) + 1.0))
function code(t, l, k)
	return Float64(2.0 / Float64(Float64(Float64(Float64((t ^ 3.0) / Float64(l * l)) * sin(k)) * tan(k)) * Float64(Float64(1.0 + (Float64(k / t) ^ 2.0)) + 1.0)))
end
function tmp = code(t, l, k)
	tmp = 2.0 / (((((t ^ 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + ((k / t) ^ 2.0)) + 1.0));
end
code[t_, l_, k_] := N[(2.0 / N[(N[(N[(N[(N[Power[t, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[(1.0 + N[Power[N[(k / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}
\end{array}

Sampling outcomes in binary64 precision:

Local Percentage Accuracy vs ?

The average percentage accuracy by input value. Horizontal axis shows value of an input variable; the variable is choosen in the title. Vertical axis is accuracy; higher is better. Red represent the original program, while blue represents Herbie's suggestion. These can be toggled with buttons below the plot. The line is an average while dots represent individual samples.

Accuracy vs Speed?

Herbie found 19 alternatives:

AlternativeAccuracySpeedup
The accuracy (vertical axis) and speed (horizontal axis) of each alternatives. Up and to the right is better. The red square shows the initial program, and each blue circle shows an alternative.The line shows the best available speed-accuracy tradeoffs.

Initial Program: 54.1% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)} \end{array} \]
(FPCore (t l k)
 :precision binary64
 (/
  2.0
  (*
   (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k))
   (+ (+ 1.0 (pow (/ k t) 2.0)) 1.0))))
double code(double t, double l, double k) {
	return 2.0 / ((((pow(t, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t), 2.0)) + 1.0));
}
real(8) function code(t, l, k)
    real(8), intent (in) :: t
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    code = 2.0d0 / (((((t ** 3.0d0) / (l * l)) * sin(k)) * tan(k)) * ((1.0d0 + ((k / t) ** 2.0d0)) + 1.0d0))
end function
public static double code(double t, double l, double k) {
	return 2.0 / ((((Math.pow(t, 3.0) / (l * l)) * Math.sin(k)) * Math.tan(k)) * ((1.0 + Math.pow((k / t), 2.0)) + 1.0));
}
def code(t, l, k):
	return 2.0 / ((((math.pow(t, 3.0) / (l * l)) * math.sin(k)) * math.tan(k)) * ((1.0 + math.pow((k / t), 2.0)) + 1.0))
function code(t, l, k)
	return Float64(2.0 / Float64(Float64(Float64(Float64((t ^ 3.0) / Float64(l * l)) * sin(k)) * tan(k)) * Float64(Float64(1.0 + (Float64(k / t) ^ 2.0)) + 1.0)))
end
function tmp = code(t, l, k)
	tmp = 2.0 / (((((t ^ 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + ((k / t) ^ 2.0)) + 1.0));
end
code[t_, l_, k_] := N[(2.0 / N[(N[(N[(N[(N[Power[t, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[(1.0 + N[Power[N[(k / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}
\end{array}

Alternative 1: 82.5% accurate, 0.6× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ t_s \cdot \begin{array}{l} \mathbf{if}\;t_m \leq 8.6 \cdot 10^{-23}:\\ \;\;\;\;\frac{2 \cdot \left(\left({\ell}^{2} \cdot \cos k\right) \cdot {\sin k}^{-2}\right)}{t_m \cdot {k}^{2}}\\ \mathbf{else}:\\ \;\;\;\;{\left(\frac{\sqrt[3]{\frac{2}{\sin k}}}{t_m} \cdot \left(\sqrt[3]{\ell} \cdot \sqrt[3]{\frac{1}{\tan k}}\right)\right)}^{3} \cdot \frac{\ell}{2 + {\left(\frac{k}{t_m}\right)}^{2}}\\ \end{array} \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (*
  t_s
  (if (<= t_m 8.6e-23)
    (/
     (* 2.0 (* (* (pow l 2.0) (cos k)) (pow (sin k) -2.0)))
     (* t_m (pow k 2.0)))
    (*
     (pow
      (* (/ (cbrt (/ 2.0 (sin k))) t_m) (* (cbrt l) (cbrt (/ 1.0 (tan k)))))
      3.0)
     (/ l (+ 2.0 (pow (/ k t_m) 2.0)))))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 8.6e-23) {
		tmp = (2.0 * ((pow(l, 2.0) * cos(k)) * pow(sin(k), -2.0))) / (t_m * pow(k, 2.0));
	} else {
		tmp = pow(((cbrt((2.0 / sin(k))) / t_m) * (cbrt(l) * cbrt((1.0 / tan(k))))), 3.0) * (l / (2.0 + pow((k / t_m), 2.0)));
	}
	return t_s * tmp;
}
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 8.6e-23) {
		tmp = (2.0 * ((Math.pow(l, 2.0) * Math.cos(k)) * Math.pow(Math.sin(k), -2.0))) / (t_m * Math.pow(k, 2.0));
	} else {
		tmp = Math.pow(((Math.cbrt((2.0 / Math.sin(k))) / t_m) * (Math.cbrt(l) * Math.cbrt((1.0 / Math.tan(k))))), 3.0) * (l / (2.0 + Math.pow((k / t_m), 2.0)));
	}
	return t_s * tmp;
}
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	tmp = 0.0
	if (t_m <= 8.6e-23)
		tmp = Float64(Float64(2.0 * Float64(Float64((l ^ 2.0) * cos(k)) * (sin(k) ^ -2.0))) / Float64(t_m * (k ^ 2.0)));
	else
		tmp = Float64((Float64(Float64(cbrt(Float64(2.0 / sin(k))) / t_m) * Float64(cbrt(l) * cbrt(Float64(1.0 / tan(k))))) ^ 3.0) * Float64(l / Float64(2.0 + (Float64(k / t_m) ^ 2.0))));
	end
	return Float64(t_s * tmp)
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 8.6e-23], N[(N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision] * N[Power[N[Sin[k], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(t$95$m * N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[Power[N[(N[(N[Power[N[(2.0 / N[Sin[k], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision] / t$95$m), $MachinePrecision] * N[(N[Power[l, 1/3], $MachinePrecision] * N[Power[N[(1.0 / N[Tan[k], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision] * N[(l / N[(2.0 + N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 8.6 \cdot 10^{-23}:\\
\;\;\;\;\frac{2 \cdot \left(\left({\ell}^{2} \cdot \cos k\right) \cdot {\sin k}^{-2}\right)}{t_m \cdot {k}^{2}}\\

\mathbf{else}:\\
\;\;\;\;{\left(\frac{\sqrt[3]{\frac{2}{\sin k}}}{t_m} \cdot \left(\sqrt[3]{\ell} \cdot \sqrt[3]{\frac{1}{\tan k}}\right)\right)}^{3} \cdot \frac{\ell}{2 + {\left(\frac{k}{t_m}\right)}^{2}}\\


\end{array}
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 2: 82.5% accurate, 0.6× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ t_s \cdot \begin{array}{l} \mathbf{if}\;t_m \leq 2.1 \cdot 10^{-20}:\\ \;\;\;\;\frac{2 \cdot \left(\left({\ell}^{2} \cdot \cos k\right) \cdot {\sin k}^{-2}\right)}{t_m \cdot {k}^{2}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\ell}{2 + {\left(\frac{k}{t_m}\right)}^{2}} \cdot {\left(\frac{\sqrt[3]{\frac{2}{\sin k}}}{t_m} \cdot \frac{\sqrt[3]{\ell}}{\sqrt[3]{\tan k}}\right)}^{3}\\ \end{array} \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (*
  t_s
  (if (<= t_m 2.1e-20)
    (/
     (* 2.0 (* (* (pow l 2.0) (cos k)) (pow (sin k) -2.0)))
     (* t_m (pow k 2.0)))
    (*
     (/ l (+ 2.0 (pow (/ k t_m) 2.0)))
     (pow
      (* (/ (cbrt (/ 2.0 (sin k))) t_m) (/ (cbrt l) (cbrt (tan k))))
      3.0)))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 2.1e-20) {
		tmp = (2.0 * ((pow(l, 2.0) * cos(k)) * pow(sin(k), -2.0))) / (t_m * pow(k, 2.0));
	} else {
		tmp = (l / (2.0 + pow((k / t_m), 2.0))) * pow(((cbrt((2.0 / sin(k))) / t_m) * (cbrt(l) / cbrt(tan(k)))), 3.0);
	}
	return t_s * tmp;
}
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 2.1e-20) {
		tmp = (2.0 * ((Math.pow(l, 2.0) * Math.cos(k)) * Math.pow(Math.sin(k), -2.0))) / (t_m * Math.pow(k, 2.0));
	} else {
		tmp = (l / (2.0 + Math.pow((k / t_m), 2.0))) * Math.pow(((Math.cbrt((2.0 / Math.sin(k))) / t_m) * (Math.cbrt(l) / Math.cbrt(Math.tan(k)))), 3.0);
	}
	return t_s * tmp;
}
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	tmp = 0.0
	if (t_m <= 2.1e-20)
		tmp = Float64(Float64(2.0 * Float64(Float64((l ^ 2.0) * cos(k)) * (sin(k) ^ -2.0))) / Float64(t_m * (k ^ 2.0)));
	else
		tmp = Float64(Float64(l / Float64(2.0 + (Float64(k / t_m) ^ 2.0))) * (Float64(Float64(cbrt(Float64(2.0 / sin(k))) / t_m) * Float64(cbrt(l) / cbrt(tan(k)))) ^ 3.0));
	end
	return Float64(t_s * tmp)
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 2.1e-20], N[(N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision] * N[Power[N[Sin[k], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(t$95$m * N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(l / N[(2.0 + N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Power[N[(N[(N[Power[N[(2.0 / N[Sin[k], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision] / t$95$m), $MachinePrecision] * N[(N[Power[l, 1/3], $MachinePrecision] / N[Power[N[Tan[k], $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 2.1 \cdot 10^{-20}:\\
\;\;\;\;\frac{2 \cdot \left(\left({\ell}^{2} \cdot \cos k\right) \cdot {\sin k}^{-2}\right)}{t_m \cdot {k}^{2}}\\

\mathbf{else}:\\
\;\;\;\;\frac{\ell}{2 + {\left(\frac{k}{t_m}\right)}^{2}} \cdot {\left(\frac{\sqrt[3]{\frac{2}{\sin k}}}{t_m} \cdot \frac{\sqrt[3]{\ell}}{\sqrt[3]{\tan k}}\right)}^{3}\\


\end{array}
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 3: 80.3% accurate, 0.7× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ t_s \cdot \begin{array}{l} \mathbf{if}\;t_m \leq 8.6 \cdot 10^{-23}:\\ \;\;\;\;\frac{2 \cdot \left(\left({\ell}^{2} \cdot \cos k\right) \cdot {\sin k}^{-2}\right)}{t_m \cdot {k}^{2}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\ell}{2 + {\left(\frac{k}{t_m}\right)}^{2}} \cdot {\left(\frac{\sqrt[3]{\frac{2}{\sin k}}}{t_m} \cdot \sqrt[3]{\frac{\ell}{\tan k}}\right)}^{3}\\ \end{array} \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (*
  t_s
  (if (<= t_m 8.6e-23)
    (/
     (* 2.0 (* (* (pow l 2.0) (cos k)) (pow (sin k) -2.0)))
     (* t_m (pow k 2.0)))
    (*
     (/ l (+ 2.0 (pow (/ k t_m) 2.0)))
     (pow (* (/ (cbrt (/ 2.0 (sin k))) t_m) (cbrt (/ l (tan k)))) 3.0)))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 8.6e-23) {
		tmp = (2.0 * ((pow(l, 2.0) * cos(k)) * pow(sin(k), -2.0))) / (t_m * pow(k, 2.0));
	} else {
		tmp = (l / (2.0 + pow((k / t_m), 2.0))) * pow(((cbrt((2.0 / sin(k))) / t_m) * cbrt((l / tan(k)))), 3.0);
	}
	return t_s * tmp;
}
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 8.6e-23) {
		tmp = (2.0 * ((Math.pow(l, 2.0) * Math.cos(k)) * Math.pow(Math.sin(k), -2.0))) / (t_m * Math.pow(k, 2.0));
	} else {
		tmp = (l / (2.0 + Math.pow((k / t_m), 2.0))) * Math.pow(((Math.cbrt((2.0 / Math.sin(k))) / t_m) * Math.cbrt((l / Math.tan(k)))), 3.0);
	}
	return t_s * tmp;
}
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	tmp = 0.0
	if (t_m <= 8.6e-23)
		tmp = Float64(Float64(2.0 * Float64(Float64((l ^ 2.0) * cos(k)) * (sin(k) ^ -2.0))) / Float64(t_m * (k ^ 2.0)));
	else
		tmp = Float64(Float64(l / Float64(2.0 + (Float64(k / t_m) ^ 2.0))) * (Float64(Float64(cbrt(Float64(2.0 / sin(k))) / t_m) * cbrt(Float64(l / tan(k)))) ^ 3.0));
	end
	return Float64(t_s * tmp)
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 8.6e-23], N[(N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision] * N[Power[N[Sin[k], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(t$95$m * N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(l / N[(2.0 + N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Power[N[(N[(N[Power[N[(2.0 / N[Sin[k], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision] / t$95$m), $MachinePrecision] * N[Power[N[(l / N[Tan[k], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 8.6 \cdot 10^{-23}:\\
\;\;\;\;\frac{2 \cdot \left(\left({\ell}^{2} \cdot \cos k\right) \cdot {\sin k}^{-2}\right)}{t_m \cdot {k}^{2}}\\

\mathbf{else}:\\
\;\;\;\;\frac{\ell}{2 + {\left(\frac{k}{t_m}\right)}^{2}} \cdot {\left(\frac{\sqrt[3]{\frac{2}{\sin k}}}{t_m} \cdot \sqrt[3]{\frac{\ell}{\tan k}}\right)}^{3}\\


\end{array}
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 4: 79.4% accurate, 0.8× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ \begin{array}{l} t_2 := \frac{\ell}{\tan k}\\ t_s \cdot \begin{array}{l} \mathbf{if}\;t_m \leq 3.2 \cdot 10^{-32}:\\ \;\;\;\;\frac{2}{t_m \cdot \left(k \cdot k\right)} \cdot \frac{{\ell}^{2} \cdot \cos k}{{\sin k}^{2}}\\ \mathbf{elif}\;t_m \leq 6.4 \cdot 10^{+103}:\\ \;\;\;\;\frac{\ell}{2 + {\left(\frac{k}{t_m}\right)}^{2}} \cdot \left(t_2 \cdot \frac{2}{\sin k \cdot {t_m}^{3}}\right)\\ \mathbf{else}:\\ \;\;\;\;{\left(\frac{\sqrt[3]{\frac{2}{\sin k}}}{t_m} \cdot \sqrt[3]{t_2}\right)}^{3} \cdot \left(\ell \cdot 0.5\right)\\ \end{array} \end{array} \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (let* ((t_2 (/ l (tan k))))
   (*
    t_s
    (if (<= t_m 3.2e-32)
      (* (/ 2.0 (* t_m (* k k))) (/ (* (pow l 2.0) (cos k)) (pow (sin k) 2.0)))
      (if (<= t_m 6.4e+103)
        (*
         (/ l (+ 2.0 (pow (/ k t_m) 2.0)))
         (* t_2 (/ 2.0 (* (sin k) (pow t_m 3.0)))))
        (*
         (pow (* (/ (cbrt (/ 2.0 (sin k))) t_m) (cbrt t_2)) 3.0)
         (* l 0.5)))))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	double t_2 = l / tan(k);
	double tmp;
	if (t_m <= 3.2e-32) {
		tmp = (2.0 / (t_m * (k * k))) * ((pow(l, 2.0) * cos(k)) / pow(sin(k), 2.0));
	} else if (t_m <= 6.4e+103) {
		tmp = (l / (2.0 + pow((k / t_m), 2.0))) * (t_2 * (2.0 / (sin(k) * pow(t_m, 3.0))));
	} else {
		tmp = pow(((cbrt((2.0 / sin(k))) / t_m) * cbrt(t_2)), 3.0) * (l * 0.5);
	}
	return t_s * tmp;
}
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	double t_2 = l / Math.tan(k);
	double tmp;
	if (t_m <= 3.2e-32) {
		tmp = (2.0 / (t_m * (k * k))) * ((Math.pow(l, 2.0) * Math.cos(k)) / Math.pow(Math.sin(k), 2.0));
	} else if (t_m <= 6.4e+103) {
		tmp = (l / (2.0 + Math.pow((k / t_m), 2.0))) * (t_2 * (2.0 / (Math.sin(k) * Math.pow(t_m, 3.0))));
	} else {
		tmp = Math.pow(((Math.cbrt((2.0 / Math.sin(k))) / t_m) * Math.cbrt(t_2)), 3.0) * (l * 0.5);
	}
	return t_s * tmp;
}
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	t_2 = Float64(l / tan(k))
	tmp = 0.0
	if (t_m <= 3.2e-32)
		tmp = Float64(Float64(2.0 / Float64(t_m * Float64(k * k))) * Float64(Float64((l ^ 2.0) * cos(k)) / (sin(k) ^ 2.0)));
	elseif (t_m <= 6.4e+103)
		tmp = Float64(Float64(l / Float64(2.0 + (Float64(k / t_m) ^ 2.0))) * Float64(t_2 * Float64(2.0 / Float64(sin(k) * (t_m ^ 3.0)))));
	else
		tmp = Float64((Float64(Float64(cbrt(Float64(2.0 / sin(k))) / t_m) * cbrt(t_2)) ^ 3.0) * Float64(l * 0.5));
	end
	return Float64(t_s * tmp)
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := Block[{t$95$2 = N[(l / N[Tan[k], $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 3.2e-32], N[(N[(2.0 / N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision] / N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 6.4e+103], N[(N[(l / N[(2.0 + N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(t$95$2 * N[(2.0 / N[(N[Sin[k], $MachinePrecision] * N[Power[t$95$m, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[Power[N[(N[(N[Power[N[(2.0 / N[Sin[k], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision] / t$95$m), $MachinePrecision] * N[Power[t$95$2, 1/3], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision] * N[(l * 0.5), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
\begin{array}{l}
t_2 := \frac{\ell}{\tan k}\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 3.2 \cdot 10^{-32}:\\
\;\;\;\;\frac{2}{t_m \cdot \left(k \cdot k\right)} \cdot \frac{{\ell}^{2} \cdot \cos k}{{\sin k}^{2}}\\

\mathbf{elif}\;t_m \leq 6.4 \cdot 10^{+103}:\\
\;\;\;\;\frac{\ell}{2 + {\left(\frac{k}{t_m}\right)}^{2}} \cdot \left(t_2 \cdot \frac{2}{\sin k \cdot {t_m}^{3}}\right)\\

\mathbf{else}:\\
\;\;\;\;{\left(\frac{\sqrt[3]{\frac{2}{\sin k}}}{t_m} \cdot \sqrt[3]{t_2}\right)}^{3} \cdot \left(\ell \cdot 0.5\right)\\


\end{array}
\end{array}
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 5: 79.4% accurate, 0.8× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ \begin{array}{l} t_2 := \frac{\ell}{\tan k}\\ t_s \cdot \begin{array}{l} \mathbf{if}\;t_m \leq 1.6 \cdot 10^{-32}:\\ \;\;\;\;\frac{2 \cdot \left(\left({\ell}^{2} \cdot \cos k\right) \cdot {\sin k}^{-2}\right)}{t_m \cdot {k}^{2}}\\ \mathbf{elif}\;t_m \leq 6.4 \cdot 10^{+103}:\\ \;\;\;\;\frac{\ell}{2 + {\left(\frac{k}{t_m}\right)}^{2}} \cdot \left(t_2 \cdot \frac{2}{\sin k \cdot {t_m}^{3}}\right)\\ \mathbf{else}:\\ \;\;\;\;{\left(\frac{\sqrt[3]{\frac{2}{\sin k}}}{t_m} \cdot \sqrt[3]{t_2}\right)}^{3} \cdot \left(\ell \cdot 0.5\right)\\ \end{array} \end{array} \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (let* ((t_2 (/ l (tan k))))
   (*
    t_s
    (if (<= t_m 1.6e-32)
      (/
       (* 2.0 (* (* (pow l 2.0) (cos k)) (pow (sin k) -2.0)))
       (* t_m (pow k 2.0)))
      (if (<= t_m 6.4e+103)
        (*
         (/ l (+ 2.0 (pow (/ k t_m) 2.0)))
         (* t_2 (/ 2.0 (* (sin k) (pow t_m 3.0)))))
        (*
         (pow (* (/ (cbrt (/ 2.0 (sin k))) t_m) (cbrt t_2)) 3.0)
         (* l 0.5)))))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	double t_2 = l / tan(k);
	double tmp;
	if (t_m <= 1.6e-32) {
		tmp = (2.0 * ((pow(l, 2.0) * cos(k)) * pow(sin(k), -2.0))) / (t_m * pow(k, 2.0));
	} else if (t_m <= 6.4e+103) {
		tmp = (l / (2.0 + pow((k / t_m), 2.0))) * (t_2 * (2.0 / (sin(k) * pow(t_m, 3.0))));
	} else {
		tmp = pow(((cbrt((2.0 / sin(k))) / t_m) * cbrt(t_2)), 3.0) * (l * 0.5);
	}
	return t_s * tmp;
}
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	double t_2 = l / Math.tan(k);
	double tmp;
	if (t_m <= 1.6e-32) {
		tmp = (2.0 * ((Math.pow(l, 2.0) * Math.cos(k)) * Math.pow(Math.sin(k), -2.0))) / (t_m * Math.pow(k, 2.0));
	} else if (t_m <= 6.4e+103) {
		tmp = (l / (2.0 + Math.pow((k / t_m), 2.0))) * (t_2 * (2.0 / (Math.sin(k) * Math.pow(t_m, 3.0))));
	} else {
		tmp = Math.pow(((Math.cbrt((2.0 / Math.sin(k))) / t_m) * Math.cbrt(t_2)), 3.0) * (l * 0.5);
	}
	return t_s * tmp;
}
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	t_2 = Float64(l / tan(k))
	tmp = 0.0
	if (t_m <= 1.6e-32)
		tmp = Float64(Float64(2.0 * Float64(Float64((l ^ 2.0) * cos(k)) * (sin(k) ^ -2.0))) / Float64(t_m * (k ^ 2.0)));
	elseif (t_m <= 6.4e+103)
		tmp = Float64(Float64(l / Float64(2.0 + (Float64(k / t_m) ^ 2.0))) * Float64(t_2 * Float64(2.0 / Float64(sin(k) * (t_m ^ 3.0)))));
	else
		tmp = Float64((Float64(Float64(cbrt(Float64(2.0 / sin(k))) / t_m) * cbrt(t_2)) ^ 3.0) * Float64(l * 0.5));
	end
	return Float64(t_s * tmp)
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := Block[{t$95$2 = N[(l / N[Tan[k], $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 1.6e-32], N[(N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision] * N[Power[N[Sin[k], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(t$95$m * N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 6.4e+103], N[(N[(l / N[(2.0 + N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(t$95$2 * N[(2.0 / N[(N[Sin[k], $MachinePrecision] * N[Power[t$95$m, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[Power[N[(N[(N[Power[N[(2.0 / N[Sin[k], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision] / t$95$m), $MachinePrecision] * N[Power[t$95$2, 1/3], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision] * N[(l * 0.5), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
\begin{array}{l}
t_2 := \frac{\ell}{\tan k}\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 1.6 \cdot 10^{-32}:\\
\;\;\;\;\frac{2 \cdot \left(\left({\ell}^{2} \cdot \cos k\right) \cdot {\sin k}^{-2}\right)}{t_m \cdot {k}^{2}}\\

\mathbf{elif}\;t_m \leq 6.4 \cdot 10^{+103}:\\
\;\;\;\;\frac{\ell}{2 + {\left(\frac{k}{t_m}\right)}^{2}} \cdot \left(t_2 \cdot \frac{2}{\sin k \cdot {t_m}^{3}}\right)\\

\mathbf{else}:\\
\;\;\;\;{\left(\frac{\sqrt[3]{\frac{2}{\sin k}}}{t_m} \cdot \sqrt[3]{t_2}\right)}^{3} \cdot \left(\ell \cdot 0.5\right)\\


\end{array}
\end{array}
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 6: 77.3% accurate, 1.0× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ t_s \cdot \begin{array}{l} \mathbf{if}\;t_m \leq 4 \cdot 10^{-32}:\\ \;\;\;\;\frac{2}{t_m \cdot \left(k \cdot k\right)} \cdot \frac{{\ell}^{2} \cdot \cos k}{{\sin k}^{2}}\\ \mathbf{elif}\;t_m \leq 6.4 \cdot 10^{+103}:\\ \;\;\;\;\frac{\ell}{2 + {\left(\frac{k}{t_m}\right)}^{2}} \cdot \left(\frac{\ell}{\tan k} \cdot \frac{2}{\sin k \cdot {t_m}^{3}}\right)\\ \mathbf{elif}\;t_m \leq 3.1 \cdot 10^{+236}:\\ \;\;\;\;\frac{{\ell}^{2}}{{\left(t_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{\left(\sin k \cdot \frac{\frac{{t_m}^{3}}{\ell}}{\ell}\right) \cdot \left(\tan k \cdot \left(2 + \frac{k}{t_m \cdot \frac{t_m}{k}}\right)\right)}\\ \end{array} \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (*
  t_s
  (if (<= t_m 4e-32)
    (* (/ 2.0 (* t_m (* k k))) (/ (* (pow l 2.0) (cos k)) (pow (sin k) 2.0)))
    (if (<= t_m 6.4e+103)
      (*
       (/ l (+ 2.0 (pow (/ k t_m) 2.0)))
       (* (/ l (tan k)) (/ 2.0 (* (sin k) (pow t_m 3.0)))))
      (if (<= t_m 3.1e+236)
        (/ (pow l 2.0) (pow (* t_m (pow (cbrt k) 2.0)) 3.0))
        (/
         2.0
         (*
          (* (sin k) (/ (/ (pow t_m 3.0) l) l))
          (* (tan k) (+ 2.0 (/ k (* t_m (/ t_m k))))))))))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 4e-32) {
		tmp = (2.0 / (t_m * (k * k))) * ((pow(l, 2.0) * cos(k)) / pow(sin(k), 2.0));
	} else if (t_m <= 6.4e+103) {
		tmp = (l / (2.0 + pow((k / t_m), 2.0))) * ((l / tan(k)) * (2.0 / (sin(k) * pow(t_m, 3.0))));
	} else if (t_m <= 3.1e+236) {
		tmp = pow(l, 2.0) / pow((t_m * pow(cbrt(k), 2.0)), 3.0);
	} else {
		tmp = 2.0 / ((sin(k) * ((pow(t_m, 3.0) / l) / l)) * (tan(k) * (2.0 + (k / (t_m * (t_m / k))))));
	}
	return t_s * tmp;
}
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 4e-32) {
		tmp = (2.0 / (t_m * (k * k))) * ((Math.pow(l, 2.0) * Math.cos(k)) / Math.pow(Math.sin(k), 2.0));
	} else if (t_m <= 6.4e+103) {
		tmp = (l / (2.0 + Math.pow((k / t_m), 2.0))) * ((l / Math.tan(k)) * (2.0 / (Math.sin(k) * Math.pow(t_m, 3.0))));
	} else if (t_m <= 3.1e+236) {
		tmp = Math.pow(l, 2.0) / Math.pow((t_m * Math.pow(Math.cbrt(k), 2.0)), 3.0);
	} else {
		tmp = 2.0 / ((Math.sin(k) * ((Math.pow(t_m, 3.0) / l) / l)) * (Math.tan(k) * (2.0 + (k / (t_m * (t_m / k))))));
	}
	return t_s * tmp;
}
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	tmp = 0.0
	if (t_m <= 4e-32)
		tmp = Float64(Float64(2.0 / Float64(t_m * Float64(k * k))) * Float64(Float64((l ^ 2.0) * cos(k)) / (sin(k) ^ 2.0)));
	elseif (t_m <= 6.4e+103)
		tmp = Float64(Float64(l / Float64(2.0 + (Float64(k / t_m) ^ 2.0))) * Float64(Float64(l / tan(k)) * Float64(2.0 / Float64(sin(k) * (t_m ^ 3.0)))));
	elseif (t_m <= 3.1e+236)
		tmp = Float64((l ^ 2.0) / (Float64(t_m * (cbrt(k) ^ 2.0)) ^ 3.0));
	else
		tmp = Float64(2.0 / Float64(Float64(sin(k) * Float64(Float64((t_m ^ 3.0) / l) / l)) * Float64(tan(k) * Float64(2.0 + Float64(k / Float64(t_m * Float64(t_m / k)))))));
	end
	return Float64(t_s * tmp)
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 4e-32], N[(N[(2.0 / N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision] / N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 6.4e+103], N[(N[(l / N[(2.0 + N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(l / N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(2.0 / N[(N[Sin[k], $MachinePrecision] * N[Power[t$95$m, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 3.1e+236], N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[N[(t$95$m * N[Power[N[Power[k, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[(N[(N[Power[t$95$m, 3.0], $MachinePrecision] / l), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[(k / N[(t$95$m * N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]), $MachinePrecision]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 4 \cdot 10^{-32}:\\
\;\;\;\;\frac{2}{t_m \cdot \left(k \cdot k\right)} \cdot \frac{{\ell}^{2} \cdot \cos k}{{\sin k}^{2}}\\

\mathbf{elif}\;t_m \leq 6.4 \cdot 10^{+103}:\\
\;\;\;\;\frac{\ell}{2 + {\left(\frac{k}{t_m}\right)}^{2}} \cdot \left(\frac{\ell}{\tan k} \cdot \frac{2}{\sin k \cdot {t_m}^{3}}\right)\\

\mathbf{elif}\;t_m \leq 3.1 \cdot 10^{+236}:\\
\;\;\;\;\frac{{\ell}^{2}}{{\left(t_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}\\

\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\sin k \cdot \frac{\frac{{t_m}^{3}}{\ell}}{\ell}\right) \cdot \left(\tan k \cdot \left(2 + \frac{k}{t_m \cdot \frac{t_m}{k}}\right)\right)}\\


\end{array}
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 7: 76.1% accurate, 1.0× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ \begin{array}{l} t_2 := \frac{{t_m}^{3}}{\ell}\\ t_s \cdot \begin{array}{l} \mathbf{if}\;t_m \leq 2.65 \cdot 10^{-95}:\\ \;\;\;\;\frac{2}{t_m \cdot \left(k \cdot k\right)} \cdot \frac{{\ell}^{2} \cdot \cos k}{{\sin k}^{2}}\\ \mathbf{elif}\;t_m \leq 1.5 \cdot 10^{+84}:\\ \;\;\;\;\frac{2}{\frac{\sin k \cdot t_2}{\ell} \cdot \left(\tan k \cdot \left(2 + \frac{\frac{k}{t_m}}{\frac{t_m}{k}}\right)\right)}\\ \mathbf{elif}\;t_m \leq 1.15 \cdot 10^{+236}:\\ \;\;\;\;\frac{{\ell}^{2}}{{\left(t_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{\left(\sin k \cdot \frac{t_2}{\ell}\right) \cdot \left(\tan k \cdot \left(2 + \frac{k}{t_m \cdot \frac{t_m}{k}}\right)\right)}\\ \end{array} \end{array} \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (let* ((t_2 (/ (pow t_m 3.0) l)))
   (*
    t_s
    (if (<= t_m 2.65e-95)
      (* (/ 2.0 (* t_m (* k k))) (/ (* (pow l 2.0) (cos k)) (pow (sin k) 2.0)))
      (if (<= t_m 1.5e+84)
        (/
         2.0
         (* (/ (* (sin k) t_2) l) (* (tan k) (+ 2.0 (/ (/ k t_m) (/ t_m k))))))
        (if (<= t_m 1.15e+236)
          (/ (pow l 2.0) (pow (* t_m (pow (cbrt k) 2.0)) 3.0))
          (/
           2.0
           (*
            (* (sin k) (/ t_2 l))
            (* (tan k) (+ 2.0 (/ k (* t_m (/ t_m k)))))))))))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	double t_2 = pow(t_m, 3.0) / l;
	double tmp;
	if (t_m <= 2.65e-95) {
		tmp = (2.0 / (t_m * (k * k))) * ((pow(l, 2.0) * cos(k)) / pow(sin(k), 2.0));
	} else if (t_m <= 1.5e+84) {
		tmp = 2.0 / (((sin(k) * t_2) / l) * (tan(k) * (2.0 + ((k / t_m) / (t_m / k)))));
	} else if (t_m <= 1.15e+236) {
		tmp = pow(l, 2.0) / pow((t_m * pow(cbrt(k), 2.0)), 3.0);
	} else {
		tmp = 2.0 / ((sin(k) * (t_2 / l)) * (tan(k) * (2.0 + (k / (t_m * (t_m / k))))));
	}
	return t_s * tmp;
}
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	double t_2 = Math.pow(t_m, 3.0) / l;
	double tmp;
	if (t_m <= 2.65e-95) {
		tmp = (2.0 / (t_m * (k * k))) * ((Math.pow(l, 2.0) * Math.cos(k)) / Math.pow(Math.sin(k), 2.0));
	} else if (t_m <= 1.5e+84) {
		tmp = 2.0 / (((Math.sin(k) * t_2) / l) * (Math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))));
	} else if (t_m <= 1.15e+236) {
		tmp = Math.pow(l, 2.0) / Math.pow((t_m * Math.pow(Math.cbrt(k), 2.0)), 3.0);
	} else {
		tmp = 2.0 / ((Math.sin(k) * (t_2 / l)) * (Math.tan(k) * (2.0 + (k / (t_m * (t_m / k))))));
	}
	return t_s * tmp;
}
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	t_2 = Float64((t_m ^ 3.0) / l)
	tmp = 0.0
	if (t_m <= 2.65e-95)
		tmp = Float64(Float64(2.0 / Float64(t_m * Float64(k * k))) * Float64(Float64((l ^ 2.0) * cos(k)) / (sin(k) ^ 2.0)));
	elseif (t_m <= 1.5e+84)
		tmp = Float64(2.0 / Float64(Float64(Float64(sin(k) * t_2) / l) * Float64(tan(k) * Float64(2.0 + Float64(Float64(k / t_m) / Float64(t_m / k))))));
	elseif (t_m <= 1.15e+236)
		tmp = Float64((l ^ 2.0) / (Float64(t_m * (cbrt(k) ^ 2.0)) ^ 3.0));
	else
		tmp = Float64(2.0 / Float64(Float64(sin(k) * Float64(t_2 / l)) * Float64(tan(k) * Float64(2.0 + Float64(k / Float64(t_m * Float64(t_m / k)))))));
	end
	return Float64(t_s * tmp)
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := Block[{t$95$2 = N[(N[Power[t$95$m, 3.0], $MachinePrecision] / l), $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 2.65e-95], N[(N[(2.0 / N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision] / N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 1.5e+84], N[(2.0 / N[(N[(N[(N[Sin[k], $MachinePrecision] * t$95$2), $MachinePrecision] / l), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[(N[(k / t$95$m), $MachinePrecision] / N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 1.15e+236], N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[N[(t$95$m * N[Power[N[Power[k, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[(t$95$2 / l), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[(k / N[(t$95$m * N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]), $MachinePrecision]]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
\begin{array}{l}
t_2 := \frac{{t_m}^{3}}{\ell}\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 2.65 \cdot 10^{-95}:\\
\;\;\;\;\frac{2}{t_m \cdot \left(k \cdot k\right)} \cdot \frac{{\ell}^{2} \cdot \cos k}{{\sin k}^{2}}\\

\mathbf{elif}\;t_m \leq 1.5 \cdot 10^{+84}:\\
\;\;\;\;\frac{2}{\frac{\sin k \cdot t_2}{\ell} \cdot \left(\tan k \cdot \left(2 + \frac{\frac{k}{t_m}}{\frac{t_m}{k}}\right)\right)}\\

\mathbf{elif}\;t_m \leq 1.15 \cdot 10^{+236}:\\
\;\;\;\;\frac{{\ell}^{2}}{{\left(t_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}\\

\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\sin k \cdot \frac{t_2}{\ell}\right) \cdot \left(\tan k \cdot \left(2 + \frac{k}{t_m \cdot \frac{t_m}{k}}\right)\right)}\\


\end{array}
\end{array}
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 8: 72.1% accurate, 1.0× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ \begin{array}{l} t_2 := \frac{{t_m}^{3}}{\ell}\\ t_s \cdot \begin{array}{l} \mathbf{if}\;t_m \leq 2.7 \cdot 10^{-108}:\\ \;\;\;\;\frac{2 \cdot \left({\ell}^{2} \cdot \cos k\right)}{t_m} \cdot \frac{1}{{k}^{4}}\\ \mathbf{elif}\;t_m \leq 1.5 \cdot 10^{+84}:\\ \;\;\;\;\frac{2}{\frac{\sin k \cdot t_2}{\ell} \cdot \left(\tan k \cdot \left(2 + \frac{\frac{k}{t_m}}{\frac{t_m}{k}}\right)\right)}\\ \mathbf{elif}\;t_m \leq 2.7 \cdot 10^{+236}:\\ \;\;\;\;\frac{{\ell}^{2}}{{\left(t_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{\left(\sin k \cdot \frac{t_2}{\ell}\right) \cdot \left(\tan k \cdot \left(2 + \frac{k}{t_m \cdot \frac{t_m}{k}}\right)\right)}\\ \end{array} \end{array} \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (let* ((t_2 (/ (pow t_m 3.0) l)))
   (*
    t_s
    (if (<= t_m 2.7e-108)
      (* (/ (* 2.0 (* (pow l 2.0) (cos k))) t_m) (/ 1.0 (pow k 4.0)))
      (if (<= t_m 1.5e+84)
        (/
         2.0
         (* (/ (* (sin k) t_2) l) (* (tan k) (+ 2.0 (/ (/ k t_m) (/ t_m k))))))
        (if (<= t_m 2.7e+236)
          (/ (pow l 2.0) (pow (* t_m (pow (cbrt k) 2.0)) 3.0))
          (/
           2.0
           (*
            (* (sin k) (/ t_2 l))
            (* (tan k) (+ 2.0 (/ k (* t_m (/ t_m k)))))))))))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	double t_2 = pow(t_m, 3.0) / l;
	double tmp;
	if (t_m <= 2.7e-108) {
		tmp = ((2.0 * (pow(l, 2.0) * cos(k))) / t_m) * (1.0 / pow(k, 4.0));
	} else if (t_m <= 1.5e+84) {
		tmp = 2.0 / (((sin(k) * t_2) / l) * (tan(k) * (2.0 + ((k / t_m) / (t_m / k)))));
	} else if (t_m <= 2.7e+236) {
		tmp = pow(l, 2.0) / pow((t_m * pow(cbrt(k), 2.0)), 3.0);
	} else {
		tmp = 2.0 / ((sin(k) * (t_2 / l)) * (tan(k) * (2.0 + (k / (t_m * (t_m / k))))));
	}
	return t_s * tmp;
}
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	double t_2 = Math.pow(t_m, 3.0) / l;
	double tmp;
	if (t_m <= 2.7e-108) {
		tmp = ((2.0 * (Math.pow(l, 2.0) * Math.cos(k))) / t_m) * (1.0 / Math.pow(k, 4.0));
	} else if (t_m <= 1.5e+84) {
		tmp = 2.0 / (((Math.sin(k) * t_2) / l) * (Math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))));
	} else if (t_m <= 2.7e+236) {
		tmp = Math.pow(l, 2.0) / Math.pow((t_m * Math.pow(Math.cbrt(k), 2.0)), 3.0);
	} else {
		tmp = 2.0 / ((Math.sin(k) * (t_2 / l)) * (Math.tan(k) * (2.0 + (k / (t_m * (t_m / k))))));
	}
	return t_s * tmp;
}
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	t_2 = Float64((t_m ^ 3.0) / l)
	tmp = 0.0
	if (t_m <= 2.7e-108)
		tmp = Float64(Float64(Float64(2.0 * Float64((l ^ 2.0) * cos(k))) / t_m) * Float64(1.0 / (k ^ 4.0)));
	elseif (t_m <= 1.5e+84)
		tmp = Float64(2.0 / Float64(Float64(Float64(sin(k) * t_2) / l) * Float64(tan(k) * Float64(2.0 + Float64(Float64(k / t_m) / Float64(t_m / k))))));
	elseif (t_m <= 2.7e+236)
		tmp = Float64((l ^ 2.0) / (Float64(t_m * (cbrt(k) ^ 2.0)) ^ 3.0));
	else
		tmp = Float64(2.0 / Float64(Float64(sin(k) * Float64(t_2 / l)) * Float64(tan(k) * Float64(2.0 + Float64(k / Float64(t_m * Float64(t_m / k)))))));
	end
	return Float64(t_s * tmp)
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := Block[{t$95$2 = N[(N[Power[t$95$m, 3.0], $MachinePrecision] / l), $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 2.7e-108], N[(N[(N[(2.0 * N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision] * N[(1.0 / N[Power[k, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 1.5e+84], N[(2.0 / N[(N[(N[(N[Sin[k], $MachinePrecision] * t$95$2), $MachinePrecision] / l), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[(N[(k / t$95$m), $MachinePrecision] / N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 2.7e+236], N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[N[(t$95$m * N[Power[N[Power[k, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[(t$95$2 / l), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[(k / N[(t$95$m * N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]), $MachinePrecision]]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
\begin{array}{l}
t_2 := \frac{{t_m}^{3}}{\ell}\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 2.7 \cdot 10^{-108}:\\
\;\;\;\;\frac{2 \cdot \left({\ell}^{2} \cdot \cos k\right)}{t_m} \cdot \frac{1}{{k}^{4}}\\

\mathbf{elif}\;t_m \leq 1.5 \cdot 10^{+84}:\\
\;\;\;\;\frac{2}{\frac{\sin k \cdot t_2}{\ell} \cdot \left(\tan k \cdot \left(2 + \frac{\frac{k}{t_m}}{\frac{t_m}{k}}\right)\right)}\\

\mathbf{elif}\;t_m \leq 2.7 \cdot 10^{+236}:\\
\;\;\;\;\frac{{\ell}^{2}}{{\left(t_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}\\

\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\sin k \cdot \frac{t_2}{\ell}\right) \cdot \left(\tan k \cdot \left(2 + \frac{k}{t_m \cdot \frac{t_m}{k}}\right)\right)}\\


\end{array}
\end{array}
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 9: 71.6% accurate, 1.0× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ \begin{array}{l} t_2 := \frac{{t_m}^{3}}{\ell}\\ t_s \cdot \begin{array}{l} \mathbf{if}\;t_m \leq 3.5 \cdot 10^{-98}:\\ \;\;\;\;\frac{{\ell}^{2}}{\frac{t_m}{2}} \cdot \frac{{\sin k}^{-2}}{{k}^{2}}\\ \mathbf{elif}\;t_m \leq 1.35 \cdot 10^{+84}:\\ \;\;\;\;\frac{2}{\frac{\sin k \cdot t_2}{\ell} \cdot \left(\tan k \cdot \left(2 + \frac{\frac{k}{t_m}}{\frac{t_m}{k}}\right)\right)}\\ \mathbf{elif}\;t_m \leq 3 \cdot 10^{+236}:\\ \;\;\;\;\frac{{\ell}^{2}}{{\left(t_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{\left(\sin k \cdot \frac{t_2}{\ell}\right) \cdot \left(\tan k \cdot \left(2 + \frac{k}{t_m \cdot \frac{t_m}{k}}\right)\right)}\\ \end{array} \end{array} \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (let* ((t_2 (/ (pow t_m 3.0) l)))
   (*
    t_s
    (if (<= t_m 3.5e-98)
      (* (/ (pow l 2.0) (/ t_m 2.0)) (/ (pow (sin k) -2.0) (pow k 2.0)))
      (if (<= t_m 1.35e+84)
        (/
         2.0
         (* (/ (* (sin k) t_2) l) (* (tan k) (+ 2.0 (/ (/ k t_m) (/ t_m k))))))
        (if (<= t_m 3e+236)
          (/ (pow l 2.0) (pow (* t_m (pow (cbrt k) 2.0)) 3.0))
          (/
           2.0
           (*
            (* (sin k) (/ t_2 l))
            (* (tan k) (+ 2.0 (/ k (* t_m (/ t_m k)))))))))))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	double t_2 = pow(t_m, 3.0) / l;
	double tmp;
	if (t_m <= 3.5e-98) {
		tmp = (pow(l, 2.0) / (t_m / 2.0)) * (pow(sin(k), -2.0) / pow(k, 2.0));
	} else if (t_m <= 1.35e+84) {
		tmp = 2.0 / (((sin(k) * t_2) / l) * (tan(k) * (2.0 + ((k / t_m) / (t_m / k)))));
	} else if (t_m <= 3e+236) {
		tmp = pow(l, 2.0) / pow((t_m * pow(cbrt(k), 2.0)), 3.0);
	} else {
		tmp = 2.0 / ((sin(k) * (t_2 / l)) * (tan(k) * (2.0 + (k / (t_m * (t_m / k))))));
	}
	return t_s * tmp;
}
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	double t_2 = Math.pow(t_m, 3.0) / l;
	double tmp;
	if (t_m <= 3.5e-98) {
		tmp = (Math.pow(l, 2.0) / (t_m / 2.0)) * (Math.pow(Math.sin(k), -2.0) / Math.pow(k, 2.0));
	} else if (t_m <= 1.35e+84) {
		tmp = 2.0 / (((Math.sin(k) * t_2) / l) * (Math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))));
	} else if (t_m <= 3e+236) {
		tmp = Math.pow(l, 2.0) / Math.pow((t_m * Math.pow(Math.cbrt(k), 2.0)), 3.0);
	} else {
		tmp = 2.0 / ((Math.sin(k) * (t_2 / l)) * (Math.tan(k) * (2.0 + (k / (t_m * (t_m / k))))));
	}
	return t_s * tmp;
}
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	t_2 = Float64((t_m ^ 3.0) / l)
	tmp = 0.0
	if (t_m <= 3.5e-98)
		tmp = Float64(Float64((l ^ 2.0) / Float64(t_m / 2.0)) * Float64((sin(k) ^ -2.0) / (k ^ 2.0)));
	elseif (t_m <= 1.35e+84)
		tmp = Float64(2.0 / Float64(Float64(Float64(sin(k) * t_2) / l) * Float64(tan(k) * Float64(2.0 + Float64(Float64(k / t_m) / Float64(t_m / k))))));
	elseif (t_m <= 3e+236)
		tmp = Float64((l ^ 2.0) / (Float64(t_m * (cbrt(k) ^ 2.0)) ^ 3.0));
	else
		tmp = Float64(2.0 / Float64(Float64(sin(k) * Float64(t_2 / l)) * Float64(tan(k) * Float64(2.0 + Float64(k / Float64(t_m * Float64(t_m / k)))))));
	end
	return Float64(t_s * tmp)
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := Block[{t$95$2 = N[(N[Power[t$95$m, 3.0], $MachinePrecision] / l), $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 3.5e-98], N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[(t$95$m / 2.0), $MachinePrecision]), $MachinePrecision] * N[(N[Power[N[Sin[k], $MachinePrecision], -2.0], $MachinePrecision] / N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 1.35e+84], N[(2.0 / N[(N[(N[(N[Sin[k], $MachinePrecision] * t$95$2), $MachinePrecision] / l), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[(N[(k / t$95$m), $MachinePrecision] / N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 3e+236], N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[N[(t$95$m * N[Power[N[Power[k, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[(t$95$2 / l), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[(k / N[(t$95$m * N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]), $MachinePrecision]]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
\begin{array}{l}
t_2 := \frac{{t_m}^{3}}{\ell}\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 3.5 \cdot 10^{-98}:\\
\;\;\;\;\frac{{\ell}^{2}}{\frac{t_m}{2}} \cdot \frac{{\sin k}^{-2}}{{k}^{2}}\\

\mathbf{elif}\;t_m \leq 1.35 \cdot 10^{+84}:\\
\;\;\;\;\frac{2}{\frac{\sin k \cdot t_2}{\ell} \cdot \left(\tan k \cdot \left(2 + \frac{\frac{k}{t_m}}{\frac{t_m}{k}}\right)\right)}\\

\mathbf{elif}\;t_m \leq 3 \cdot 10^{+236}:\\
\;\;\;\;\frac{{\ell}^{2}}{{\left(t_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}\\

\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\sin k \cdot \frac{t_2}{\ell}\right) \cdot \left(\tan k \cdot \left(2 + \frac{k}{t_m \cdot \frac{t_m}{k}}\right)\right)}\\


\end{array}
\end{array}
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 10: 71.4% accurate, 1.3× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ t_s \cdot \begin{array}{l} \mathbf{if}\;t_m \leq 3.1 \cdot 10^{-162}:\\ \;\;\;\;\frac{2 \cdot \left({\ell}^{2} \cdot \cos k\right)}{t_m} \cdot \frac{1}{{k}^{4}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{\left(\tan k \cdot \left(2 + \frac{\frac{k}{t_m}}{\frac{t_m}{k}}\right)\right) \cdot \left(\sin k \cdot \left(\frac{{t_m}^{2}}{\ell} \cdot \frac{t_m}{\ell}\right)\right)}\\ \end{array} \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (*
  t_s
  (if (<= t_m 3.1e-162)
    (* (/ (* 2.0 (* (pow l 2.0) (cos k))) t_m) (/ 1.0 (pow k 4.0)))
    (/
     2.0
     (*
      (* (tan k) (+ 2.0 (/ (/ k t_m) (/ t_m k))))
      (* (sin k) (* (/ (pow t_m 2.0) l) (/ t_m l))))))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 3.1e-162) {
		tmp = ((2.0 * (pow(l, 2.0) * cos(k))) / t_m) * (1.0 / pow(k, 4.0));
	} else {
		tmp = 2.0 / ((tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) * (sin(k) * ((pow(t_m, 2.0) / l) * (t_m / l))));
	}
	return t_s * tmp;
}
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
    real(8), intent (in) :: t_s
    real(8), intent (in) :: t_m
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    real(8) :: tmp
    if (t_m <= 3.1d-162) then
        tmp = ((2.0d0 * ((l ** 2.0d0) * cos(k))) / t_m) * (1.0d0 / (k ** 4.0d0))
    else
        tmp = 2.0d0 / ((tan(k) * (2.0d0 + ((k / t_m) / (t_m / k)))) * (sin(k) * (((t_m ** 2.0d0) / l) * (t_m / l))))
    end if
    code = t_s * tmp
end function
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 3.1e-162) {
		tmp = ((2.0 * (Math.pow(l, 2.0) * Math.cos(k))) / t_m) * (1.0 / Math.pow(k, 4.0));
	} else {
		tmp = 2.0 / ((Math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) * (Math.sin(k) * ((Math.pow(t_m, 2.0) / l) * (t_m / l))));
	}
	return t_s * tmp;
}
t_m = math.fabs(t)
t_s = math.copysign(1.0, t)
def code(t_s, t_m, l, k):
	tmp = 0
	if t_m <= 3.1e-162:
		tmp = ((2.0 * (math.pow(l, 2.0) * math.cos(k))) / t_m) * (1.0 / math.pow(k, 4.0))
	else:
		tmp = 2.0 / ((math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) * (math.sin(k) * ((math.pow(t_m, 2.0) / l) * (t_m / l))))
	return t_s * tmp
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	tmp = 0.0
	if (t_m <= 3.1e-162)
		tmp = Float64(Float64(Float64(2.0 * Float64((l ^ 2.0) * cos(k))) / t_m) * Float64(1.0 / (k ^ 4.0)));
	else
		tmp = Float64(2.0 / Float64(Float64(tan(k) * Float64(2.0 + Float64(Float64(k / t_m) / Float64(t_m / k)))) * Float64(sin(k) * Float64(Float64((t_m ^ 2.0) / l) * Float64(t_m / l)))));
	end
	return Float64(t_s * tmp)
end
t_m = abs(t);
t_s = sign(t) * abs(1.0);
function tmp_2 = code(t_s, t_m, l, k)
	tmp = 0.0;
	if (t_m <= 3.1e-162)
		tmp = ((2.0 * ((l ^ 2.0) * cos(k))) / t_m) * (1.0 / (k ^ 4.0));
	else
		tmp = 2.0 / ((tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) * (sin(k) * (((t_m ^ 2.0) / l) * (t_m / l))));
	end
	tmp_2 = t_s * tmp;
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 3.1e-162], N[(N[(N[(2.0 * N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision] * N[(1.0 / N[Power[k, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[(N[(k / t$95$m), $MachinePrecision] / N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(N[(N[Power[t$95$m, 2.0], $MachinePrecision] / l), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 3.1 \cdot 10^{-162}:\\
\;\;\;\;\frac{2 \cdot \left({\ell}^{2} \cdot \cos k\right)}{t_m} \cdot \frac{1}{{k}^{4}}\\

\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \left(2 + \frac{\frac{k}{t_m}}{\frac{t_m}{k}}\right)\right) \cdot \left(\sin k \cdot \left(\frac{{t_m}^{2}}{\ell} \cdot \frac{t_m}{\ell}\right)\right)}\\


\end{array}
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 11: 67.6% accurate, 1.3× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ t_s \cdot \begin{array}{l} \mathbf{if}\;t_m \leq 1.48 \cdot 10^{-108}:\\ \;\;\;\;\frac{2 \cdot \left({\ell}^{2} \cdot \cos k\right)}{t_m} \cdot \frac{1}{{k}^{4}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{\left(\sin k \cdot \frac{\frac{{t_m}^{3}}{\ell}}{\ell}\right) \cdot \left(\tan k \cdot \left(2 + \frac{k}{t_m \cdot \frac{t_m}{k}}\right)\right)}\\ \end{array} \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (*
  t_s
  (if (<= t_m 1.48e-108)
    (* (/ (* 2.0 (* (pow l 2.0) (cos k))) t_m) (/ 1.0 (pow k 4.0)))
    (/
     2.0
     (*
      (* (sin k) (/ (/ (pow t_m 3.0) l) l))
      (* (tan k) (+ 2.0 (/ k (* t_m (/ t_m k))))))))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 1.48e-108) {
		tmp = ((2.0 * (pow(l, 2.0) * cos(k))) / t_m) * (1.0 / pow(k, 4.0));
	} else {
		tmp = 2.0 / ((sin(k) * ((pow(t_m, 3.0) / l) / l)) * (tan(k) * (2.0 + (k / (t_m * (t_m / k))))));
	}
	return t_s * tmp;
}
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
    real(8), intent (in) :: t_s
    real(8), intent (in) :: t_m
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    real(8) :: tmp
    if (t_m <= 1.48d-108) then
        tmp = ((2.0d0 * ((l ** 2.0d0) * cos(k))) / t_m) * (1.0d0 / (k ** 4.0d0))
    else
        tmp = 2.0d0 / ((sin(k) * (((t_m ** 3.0d0) / l) / l)) * (tan(k) * (2.0d0 + (k / (t_m * (t_m / k))))))
    end if
    code = t_s * tmp
end function
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 1.48e-108) {
		tmp = ((2.0 * (Math.pow(l, 2.0) * Math.cos(k))) / t_m) * (1.0 / Math.pow(k, 4.0));
	} else {
		tmp = 2.0 / ((Math.sin(k) * ((Math.pow(t_m, 3.0) / l) / l)) * (Math.tan(k) * (2.0 + (k / (t_m * (t_m / k))))));
	}
	return t_s * tmp;
}
t_m = math.fabs(t)
t_s = math.copysign(1.0, t)
def code(t_s, t_m, l, k):
	tmp = 0
	if t_m <= 1.48e-108:
		tmp = ((2.0 * (math.pow(l, 2.0) * math.cos(k))) / t_m) * (1.0 / math.pow(k, 4.0))
	else:
		tmp = 2.0 / ((math.sin(k) * ((math.pow(t_m, 3.0) / l) / l)) * (math.tan(k) * (2.0 + (k / (t_m * (t_m / k))))))
	return t_s * tmp
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	tmp = 0.0
	if (t_m <= 1.48e-108)
		tmp = Float64(Float64(Float64(2.0 * Float64((l ^ 2.0) * cos(k))) / t_m) * Float64(1.0 / (k ^ 4.0)));
	else
		tmp = Float64(2.0 / Float64(Float64(sin(k) * Float64(Float64((t_m ^ 3.0) / l) / l)) * Float64(tan(k) * Float64(2.0 + Float64(k / Float64(t_m * Float64(t_m / k)))))));
	end
	return Float64(t_s * tmp)
end
t_m = abs(t);
t_s = sign(t) * abs(1.0);
function tmp_2 = code(t_s, t_m, l, k)
	tmp = 0.0;
	if (t_m <= 1.48e-108)
		tmp = ((2.0 * ((l ^ 2.0) * cos(k))) / t_m) * (1.0 / (k ^ 4.0));
	else
		tmp = 2.0 / ((sin(k) * (((t_m ^ 3.0) / l) / l)) * (tan(k) * (2.0 + (k / (t_m * (t_m / k))))));
	end
	tmp_2 = t_s * tmp;
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 1.48e-108], N[(N[(N[(2.0 * N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision] * N[(1.0 / N[Power[k, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[(N[(N[Power[t$95$m, 3.0], $MachinePrecision] / l), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[(k / N[(t$95$m * N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 1.48 \cdot 10^{-108}:\\
\;\;\;\;\frac{2 \cdot \left({\ell}^{2} \cdot \cos k\right)}{t_m} \cdot \frac{1}{{k}^{4}}\\

\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\sin k \cdot \frac{\frac{{t_m}^{3}}{\ell}}{\ell}\right) \cdot \left(\tan k \cdot \left(2 + \frac{k}{t_m \cdot \frac{t_m}{k}}\right)\right)}\\


\end{array}
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 12: 67.6% accurate, 1.3× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ t_s \cdot \begin{array}{l} \mathbf{if}\;t_m \leq 3.4 \cdot 10^{-107}:\\ \;\;\;\;\frac{2 \cdot \left({\ell}^{2} \cdot \cos k\right)}{t_m} \cdot \frac{1}{{k}^{4}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{\left(\sin k \cdot \frac{\frac{{t_m}^{3}}{\ell}}{\ell}\right) \cdot \left(\tan k \cdot \left(2 + \frac{\frac{k}{t_m}}{\frac{t_m}{k}}\right)\right)}\\ \end{array} \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (*
  t_s
  (if (<= t_m 3.4e-107)
    (* (/ (* 2.0 (* (pow l 2.0) (cos k))) t_m) (/ 1.0 (pow k 4.0)))
    (/
     2.0
     (*
      (* (sin k) (/ (/ (pow t_m 3.0) l) l))
      (* (tan k) (+ 2.0 (/ (/ k t_m) (/ t_m k)))))))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 3.4e-107) {
		tmp = ((2.0 * (pow(l, 2.0) * cos(k))) / t_m) * (1.0 / pow(k, 4.0));
	} else {
		tmp = 2.0 / ((sin(k) * ((pow(t_m, 3.0) / l) / l)) * (tan(k) * (2.0 + ((k / t_m) / (t_m / k)))));
	}
	return t_s * tmp;
}
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
    real(8), intent (in) :: t_s
    real(8), intent (in) :: t_m
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    real(8) :: tmp
    if (t_m <= 3.4d-107) then
        tmp = ((2.0d0 * ((l ** 2.0d0) * cos(k))) / t_m) * (1.0d0 / (k ** 4.0d0))
    else
        tmp = 2.0d0 / ((sin(k) * (((t_m ** 3.0d0) / l) / l)) * (tan(k) * (2.0d0 + ((k / t_m) / (t_m / k)))))
    end if
    code = t_s * tmp
end function
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 3.4e-107) {
		tmp = ((2.0 * (Math.pow(l, 2.0) * Math.cos(k))) / t_m) * (1.0 / Math.pow(k, 4.0));
	} else {
		tmp = 2.0 / ((Math.sin(k) * ((Math.pow(t_m, 3.0) / l) / l)) * (Math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))));
	}
	return t_s * tmp;
}
t_m = math.fabs(t)
t_s = math.copysign(1.0, t)
def code(t_s, t_m, l, k):
	tmp = 0
	if t_m <= 3.4e-107:
		tmp = ((2.0 * (math.pow(l, 2.0) * math.cos(k))) / t_m) * (1.0 / math.pow(k, 4.0))
	else:
		tmp = 2.0 / ((math.sin(k) * ((math.pow(t_m, 3.0) / l) / l)) * (math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))))
	return t_s * tmp
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	tmp = 0.0
	if (t_m <= 3.4e-107)
		tmp = Float64(Float64(Float64(2.0 * Float64((l ^ 2.0) * cos(k))) / t_m) * Float64(1.0 / (k ^ 4.0)));
	else
		tmp = Float64(2.0 / Float64(Float64(sin(k) * Float64(Float64((t_m ^ 3.0) / l) / l)) * Float64(tan(k) * Float64(2.0 + Float64(Float64(k / t_m) / Float64(t_m / k))))));
	end
	return Float64(t_s * tmp)
end
t_m = abs(t);
t_s = sign(t) * abs(1.0);
function tmp_2 = code(t_s, t_m, l, k)
	tmp = 0.0;
	if (t_m <= 3.4e-107)
		tmp = ((2.0 * ((l ^ 2.0) * cos(k))) / t_m) * (1.0 / (k ^ 4.0));
	else
		tmp = 2.0 / ((sin(k) * (((t_m ^ 3.0) / l) / l)) * (tan(k) * (2.0 + ((k / t_m) / (t_m / k)))));
	end
	tmp_2 = t_s * tmp;
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 3.4e-107], N[(N[(N[(2.0 * N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision] * N[(1.0 / N[Power[k, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[(N[(N[Power[t$95$m, 3.0], $MachinePrecision] / l), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[(N[(k / t$95$m), $MachinePrecision] / N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 3.4 \cdot 10^{-107}:\\
\;\;\;\;\frac{2 \cdot \left({\ell}^{2} \cdot \cos k\right)}{t_m} \cdot \frac{1}{{k}^{4}}\\

\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\sin k \cdot \frac{\frac{{t_m}^{3}}{\ell}}{\ell}\right) \cdot \left(\tan k \cdot \left(2 + \frac{\frac{k}{t_m}}{\frac{t_m}{k}}\right)\right)}\\


\end{array}
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 13: 69.0% accurate, 1.3× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ t_s \cdot \begin{array}{l} \mathbf{if}\;t_m \leq 3 \cdot 10^{-108}:\\ \;\;\;\;\frac{2 \cdot \left({\ell}^{2} \cdot \cos k\right)}{t_m} \cdot \frac{1}{{k}^{4}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{\frac{\sin k \cdot \frac{{t_m}^{3}}{\ell}}{\ell} \cdot \left(\tan k \cdot \left(2 + \frac{\frac{k}{t_m}}{\frac{t_m}{k}}\right)\right)}\\ \end{array} \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (*
  t_s
  (if (<= t_m 3e-108)
    (* (/ (* 2.0 (* (pow l 2.0) (cos k))) t_m) (/ 1.0 (pow k 4.0)))
    (/
     2.0
     (*
      (/ (* (sin k) (/ (pow t_m 3.0) l)) l)
      (* (tan k) (+ 2.0 (/ (/ k t_m) (/ t_m k)))))))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 3e-108) {
		tmp = ((2.0 * (pow(l, 2.0) * cos(k))) / t_m) * (1.0 / pow(k, 4.0));
	} else {
		tmp = 2.0 / (((sin(k) * (pow(t_m, 3.0) / l)) / l) * (tan(k) * (2.0 + ((k / t_m) / (t_m / k)))));
	}
	return t_s * tmp;
}
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
    real(8), intent (in) :: t_s
    real(8), intent (in) :: t_m
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    real(8) :: tmp
    if (t_m <= 3d-108) then
        tmp = ((2.0d0 * ((l ** 2.0d0) * cos(k))) / t_m) * (1.0d0 / (k ** 4.0d0))
    else
        tmp = 2.0d0 / (((sin(k) * ((t_m ** 3.0d0) / l)) / l) * (tan(k) * (2.0d0 + ((k / t_m) / (t_m / k)))))
    end if
    code = t_s * tmp
end function
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 3e-108) {
		tmp = ((2.0 * (Math.pow(l, 2.0) * Math.cos(k))) / t_m) * (1.0 / Math.pow(k, 4.0));
	} else {
		tmp = 2.0 / (((Math.sin(k) * (Math.pow(t_m, 3.0) / l)) / l) * (Math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))));
	}
	return t_s * tmp;
}
t_m = math.fabs(t)
t_s = math.copysign(1.0, t)
def code(t_s, t_m, l, k):
	tmp = 0
	if t_m <= 3e-108:
		tmp = ((2.0 * (math.pow(l, 2.0) * math.cos(k))) / t_m) * (1.0 / math.pow(k, 4.0))
	else:
		tmp = 2.0 / (((math.sin(k) * (math.pow(t_m, 3.0) / l)) / l) * (math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))))
	return t_s * tmp
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	tmp = 0.0
	if (t_m <= 3e-108)
		tmp = Float64(Float64(Float64(2.0 * Float64((l ^ 2.0) * cos(k))) / t_m) * Float64(1.0 / (k ^ 4.0)));
	else
		tmp = Float64(2.0 / Float64(Float64(Float64(sin(k) * Float64((t_m ^ 3.0) / l)) / l) * Float64(tan(k) * Float64(2.0 + Float64(Float64(k / t_m) / Float64(t_m / k))))));
	end
	return Float64(t_s * tmp)
end
t_m = abs(t);
t_s = sign(t) * abs(1.0);
function tmp_2 = code(t_s, t_m, l, k)
	tmp = 0.0;
	if (t_m <= 3e-108)
		tmp = ((2.0 * ((l ^ 2.0) * cos(k))) / t_m) * (1.0 / (k ^ 4.0));
	else
		tmp = 2.0 / (((sin(k) * ((t_m ^ 3.0) / l)) / l) * (tan(k) * (2.0 + ((k / t_m) / (t_m / k)))));
	end
	tmp_2 = t_s * tmp;
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 3e-108], N[(N[(N[(2.0 * N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision] * N[(1.0 / N[Power[k, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[Sin[k], $MachinePrecision] * N[(N[Power[t$95$m, 3.0], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[(N[(k / t$95$m), $MachinePrecision] / N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 3 \cdot 10^{-108}:\\
\;\;\;\;\frac{2 \cdot \left({\ell}^{2} \cdot \cos k\right)}{t_m} \cdot \frac{1}{{k}^{4}}\\

\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\sin k \cdot \frac{{t_m}^{3}}{\ell}}{\ell} \cdot \left(\tan k \cdot \left(2 + \frac{\frac{k}{t_m}}{\frac{t_m}{k}}\right)\right)}\\


\end{array}
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 14: 62.1% accurate, 1.3× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ t_s \cdot \begin{array}{l} \mathbf{if}\;k \leq 2.7 \cdot 10^{+75}:\\ \;\;\;\;\left(\frac{\ell}{\tan k} \cdot \frac{2}{\sin k \cdot {t_m}^{3}}\right) \cdot \left(\ell \cdot 0.5\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{t_m \cdot {k}^{2}} \cdot \frac{{\ell}^{2}}{{k}^{2}}\\ \end{array} \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (*
  t_s
  (if (<= k 2.7e+75)
    (* (* (/ l (tan k)) (/ 2.0 (* (sin k) (pow t_m 3.0)))) (* l 0.5))
    (* (/ 2.0 (* t_m (pow k 2.0))) (/ (pow l 2.0) (pow k 2.0))))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (k <= 2.7e+75) {
		tmp = ((l / tan(k)) * (2.0 / (sin(k) * pow(t_m, 3.0)))) * (l * 0.5);
	} else {
		tmp = (2.0 / (t_m * pow(k, 2.0))) * (pow(l, 2.0) / pow(k, 2.0));
	}
	return t_s * tmp;
}
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
    real(8), intent (in) :: t_s
    real(8), intent (in) :: t_m
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    real(8) :: tmp
    if (k <= 2.7d+75) then
        tmp = ((l / tan(k)) * (2.0d0 / (sin(k) * (t_m ** 3.0d0)))) * (l * 0.5d0)
    else
        tmp = (2.0d0 / (t_m * (k ** 2.0d0))) * ((l ** 2.0d0) / (k ** 2.0d0))
    end if
    code = t_s * tmp
end function
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (k <= 2.7e+75) {
		tmp = ((l / Math.tan(k)) * (2.0 / (Math.sin(k) * Math.pow(t_m, 3.0)))) * (l * 0.5);
	} else {
		tmp = (2.0 / (t_m * Math.pow(k, 2.0))) * (Math.pow(l, 2.0) / Math.pow(k, 2.0));
	}
	return t_s * tmp;
}
t_m = math.fabs(t)
t_s = math.copysign(1.0, t)
def code(t_s, t_m, l, k):
	tmp = 0
	if k <= 2.7e+75:
		tmp = ((l / math.tan(k)) * (2.0 / (math.sin(k) * math.pow(t_m, 3.0)))) * (l * 0.5)
	else:
		tmp = (2.0 / (t_m * math.pow(k, 2.0))) * (math.pow(l, 2.0) / math.pow(k, 2.0))
	return t_s * tmp
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	tmp = 0.0
	if (k <= 2.7e+75)
		tmp = Float64(Float64(Float64(l / tan(k)) * Float64(2.0 / Float64(sin(k) * (t_m ^ 3.0)))) * Float64(l * 0.5));
	else
		tmp = Float64(Float64(2.0 / Float64(t_m * (k ^ 2.0))) * Float64((l ^ 2.0) / (k ^ 2.0)));
	end
	return Float64(t_s * tmp)
end
t_m = abs(t);
t_s = sign(t) * abs(1.0);
function tmp_2 = code(t_s, t_m, l, k)
	tmp = 0.0;
	if (k <= 2.7e+75)
		tmp = ((l / tan(k)) * (2.0 / (sin(k) * (t_m ^ 3.0)))) * (l * 0.5);
	else
		tmp = (2.0 / (t_m * (k ^ 2.0))) * ((l ^ 2.0) / (k ^ 2.0));
	end
	tmp_2 = t_s * tmp;
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 2.7e+75], N[(N[(N[(l / N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(2.0 / N[(N[Sin[k], $MachinePrecision] * N[Power[t$95$m, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(l * 0.5), $MachinePrecision]), $MachinePrecision], N[(N[(2.0 / N[(t$95$m * N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 2.7 \cdot 10^{+75}:\\
\;\;\;\;\left(\frac{\ell}{\tan k} \cdot \frac{2}{\sin k \cdot {t_m}^{3}}\right) \cdot \left(\ell \cdot 0.5\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{2}{t_m \cdot {k}^{2}} \cdot \frac{{\ell}^{2}}{{k}^{2}}\\


\end{array}
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 15: 53.0% accurate, 1.3× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ t_s \cdot \begin{array}{l} \mathbf{if}\;k \leq 2.1 \cdot 10^{-33}:\\ \;\;\;\;\frac{\frac{{\ell}^{2}}{{t_m}^{3}}}{{k}^{2}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot \left({\ell}^{2} \cdot \cos k\right)}{t_m} \cdot \frac{1}{{k}^{4}}\\ \end{array} \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (*
  t_s
  (if (<= k 2.1e-33)
    (/ (/ (pow l 2.0) (pow t_m 3.0)) (pow k 2.0))
    (* (/ (* 2.0 (* (pow l 2.0) (cos k))) t_m) (/ 1.0 (pow k 4.0))))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (k <= 2.1e-33) {
		tmp = (pow(l, 2.0) / pow(t_m, 3.0)) / pow(k, 2.0);
	} else {
		tmp = ((2.0 * (pow(l, 2.0) * cos(k))) / t_m) * (1.0 / pow(k, 4.0));
	}
	return t_s * tmp;
}
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
    real(8), intent (in) :: t_s
    real(8), intent (in) :: t_m
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    real(8) :: tmp
    if (k <= 2.1d-33) then
        tmp = ((l ** 2.0d0) / (t_m ** 3.0d0)) / (k ** 2.0d0)
    else
        tmp = ((2.0d0 * ((l ** 2.0d0) * cos(k))) / t_m) * (1.0d0 / (k ** 4.0d0))
    end if
    code = t_s * tmp
end function
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (k <= 2.1e-33) {
		tmp = (Math.pow(l, 2.0) / Math.pow(t_m, 3.0)) / Math.pow(k, 2.0);
	} else {
		tmp = ((2.0 * (Math.pow(l, 2.0) * Math.cos(k))) / t_m) * (1.0 / Math.pow(k, 4.0));
	}
	return t_s * tmp;
}
t_m = math.fabs(t)
t_s = math.copysign(1.0, t)
def code(t_s, t_m, l, k):
	tmp = 0
	if k <= 2.1e-33:
		tmp = (math.pow(l, 2.0) / math.pow(t_m, 3.0)) / math.pow(k, 2.0)
	else:
		tmp = ((2.0 * (math.pow(l, 2.0) * math.cos(k))) / t_m) * (1.0 / math.pow(k, 4.0))
	return t_s * tmp
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	tmp = 0.0
	if (k <= 2.1e-33)
		tmp = Float64(Float64((l ^ 2.0) / (t_m ^ 3.0)) / (k ^ 2.0));
	else
		tmp = Float64(Float64(Float64(2.0 * Float64((l ^ 2.0) * cos(k))) / t_m) * Float64(1.0 / (k ^ 4.0)));
	end
	return Float64(t_s * tmp)
end
t_m = abs(t);
t_s = sign(t) * abs(1.0);
function tmp_2 = code(t_s, t_m, l, k)
	tmp = 0.0;
	if (k <= 2.1e-33)
		tmp = ((l ^ 2.0) / (t_m ^ 3.0)) / (k ^ 2.0);
	else
		tmp = ((2.0 * ((l ^ 2.0) * cos(k))) / t_m) * (1.0 / (k ^ 4.0));
	end
	tmp_2 = t_s * tmp;
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 2.1e-33], N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[t$95$m, 3.0], $MachinePrecision]), $MachinePrecision] / N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision], N[(N[(N[(2.0 * N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision] * N[(1.0 / N[Power[k, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 2.1 \cdot 10^{-33}:\\
\;\;\;\;\frac{\frac{{\ell}^{2}}{{t_m}^{3}}}{{k}^{2}}\\

\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot \left({\ell}^{2} \cdot \cos k\right)}{t_m} \cdot \frac{1}{{k}^{4}}\\


\end{array}
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 16: 52.9% accurate, 1.3× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ t_s \cdot \left(\frac{2}{t_m \cdot {k}^{2}} \cdot \frac{{\ell}^{2}}{{k}^{2}}\right) \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (* t_s (* (/ 2.0 (* t_m (pow k 2.0))) (/ (pow l 2.0) (pow k 2.0)))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	return t_s * ((2.0 / (t_m * pow(k, 2.0))) * (pow(l, 2.0) / pow(k, 2.0)));
}
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
    real(8), intent (in) :: t_s
    real(8), intent (in) :: t_m
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    code = t_s * ((2.0d0 / (t_m * (k ** 2.0d0))) * ((l ** 2.0d0) / (k ** 2.0d0)))
end function
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	return t_s * ((2.0 / (t_m * Math.pow(k, 2.0))) * (Math.pow(l, 2.0) / Math.pow(k, 2.0)));
}
t_m = math.fabs(t)
t_s = math.copysign(1.0, t)
def code(t_s, t_m, l, k):
	return t_s * ((2.0 / (t_m * math.pow(k, 2.0))) * (math.pow(l, 2.0) / math.pow(k, 2.0)))
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	return Float64(t_s * Float64(Float64(2.0 / Float64(t_m * (k ^ 2.0))) * Float64((l ^ 2.0) / (k ^ 2.0))))
end
t_m = abs(t);
t_s = sign(t) * abs(1.0);
function tmp = code(t_s, t_m, l, k)
	tmp = t_s * ((2.0 / (t_m * (k ^ 2.0))) * ((l ^ 2.0) / (k ^ 2.0)));
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * N[(N[(2.0 / N[(t$95$m * N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
t_s \cdot \left(\frac{2}{t_m \cdot {k}^{2}} \cdot \frac{{\ell}^{2}}{{k}^{2}}\right)
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 17: 55.9% accurate, 1.4× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ t_s \cdot \begin{array}{l} \mathbf{if}\;t_m \leq 2 \cdot 10^{-108}:\\ \;\;\;\;\frac{{\ell}^{2} \cdot \left(2 \cdot {k}^{-4}\right)}{t_m}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{{\ell}^{2}}{{t_m}^{3}}}{{k}^{2}}\\ \end{array} \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (*
  t_s
  (if (<= t_m 2e-108)
    (/ (* (pow l 2.0) (* 2.0 (pow k -4.0))) t_m)
    (/ (/ (pow l 2.0) (pow t_m 3.0)) (pow k 2.0)))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 2e-108) {
		tmp = (pow(l, 2.0) * (2.0 * pow(k, -4.0))) / t_m;
	} else {
		tmp = (pow(l, 2.0) / pow(t_m, 3.0)) / pow(k, 2.0);
	}
	return t_s * tmp;
}
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
    real(8), intent (in) :: t_s
    real(8), intent (in) :: t_m
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    real(8) :: tmp
    if (t_m <= 2d-108) then
        tmp = ((l ** 2.0d0) * (2.0d0 * (k ** (-4.0d0)))) / t_m
    else
        tmp = ((l ** 2.0d0) / (t_m ** 3.0d0)) / (k ** 2.0d0)
    end if
    code = t_s * tmp
end function
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 2e-108) {
		tmp = (Math.pow(l, 2.0) * (2.0 * Math.pow(k, -4.0))) / t_m;
	} else {
		tmp = (Math.pow(l, 2.0) / Math.pow(t_m, 3.0)) / Math.pow(k, 2.0);
	}
	return t_s * tmp;
}
t_m = math.fabs(t)
t_s = math.copysign(1.0, t)
def code(t_s, t_m, l, k):
	tmp = 0
	if t_m <= 2e-108:
		tmp = (math.pow(l, 2.0) * (2.0 * math.pow(k, -4.0))) / t_m
	else:
		tmp = (math.pow(l, 2.0) / math.pow(t_m, 3.0)) / math.pow(k, 2.0)
	return t_s * tmp
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	tmp = 0.0
	if (t_m <= 2e-108)
		tmp = Float64(Float64((l ^ 2.0) * Float64(2.0 * (k ^ -4.0))) / t_m);
	else
		tmp = Float64(Float64((l ^ 2.0) / (t_m ^ 3.0)) / (k ^ 2.0));
	end
	return Float64(t_s * tmp)
end
t_m = abs(t);
t_s = sign(t) * abs(1.0);
function tmp_2 = code(t_s, t_m, l, k)
	tmp = 0.0;
	if (t_m <= 2e-108)
		tmp = ((l ^ 2.0) * (2.0 * (k ^ -4.0))) / t_m;
	else
		tmp = ((l ^ 2.0) / (t_m ^ 3.0)) / (k ^ 2.0);
	end
	tmp_2 = t_s * tmp;
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 2e-108], N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[(2.0 * N[Power[k, -4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision], N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[t$95$m, 3.0], $MachinePrecision]), $MachinePrecision] / N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 2 \cdot 10^{-108}:\\
\;\;\;\;\frac{{\ell}^{2} \cdot \left(2 \cdot {k}^{-4}\right)}{t_m}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{{\ell}^{2}}{{t_m}^{3}}}{{k}^{2}}\\


\end{array}
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 18: 56.0% accurate, 2.0× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ t_s \cdot \begin{array}{l} \mathbf{if}\;t_m \leq 4 \cdot 10^{-107}:\\ \;\;\;\;\frac{{\ell}^{2} \cdot \left(2 \cdot {k}^{-4}\right)}{t_m}\\ \mathbf{else}:\\ \;\;\;\;\frac{{\ell}^{2}}{{t_m}^{3} \cdot \left(k \cdot k\right)}\\ \end{array} \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (*
  t_s
  (if (<= t_m 4e-107)
    (/ (* (pow l 2.0) (* 2.0 (pow k -4.0))) t_m)
    (/ (pow l 2.0) (* (pow t_m 3.0) (* k k))))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 4e-107) {
		tmp = (pow(l, 2.0) * (2.0 * pow(k, -4.0))) / t_m;
	} else {
		tmp = pow(l, 2.0) / (pow(t_m, 3.0) * (k * k));
	}
	return t_s * tmp;
}
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
    real(8), intent (in) :: t_s
    real(8), intent (in) :: t_m
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    real(8) :: tmp
    if (t_m <= 4d-107) then
        tmp = ((l ** 2.0d0) * (2.0d0 * (k ** (-4.0d0)))) / t_m
    else
        tmp = (l ** 2.0d0) / ((t_m ** 3.0d0) * (k * k))
    end if
    code = t_s * tmp
end function
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	double tmp;
	if (t_m <= 4e-107) {
		tmp = (Math.pow(l, 2.0) * (2.0 * Math.pow(k, -4.0))) / t_m;
	} else {
		tmp = Math.pow(l, 2.0) / (Math.pow(t_m, 3.0) * (k * k));
	}
	return t_s * tmp;
}
t_m = math.fabs(t)
t_s = math.copysign(1.0, t)
def code(t_s, t_m, l, k):
	tmp = 0
	if t_m <= 4e-107:
		tmp = (math.pow(l, 2.0) * (2.0 * math.pow(k, -4.0))) / t_m
	else:
		tmp = math.pow(l, 2.0) / (math.pow(t_m, 3.0) * (k * k))
	return t_s * tmp
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	tmp = 0.0
	if (t_m <= 4e-107)
		tmp = Float64(Float64((l ^ 2.0) * Float64(2.0 * (k ^ -4.0))) / t_m);
	else
		tmp = Float64((l ^ 2.0) / Float64((t_m ^ 3.0) * Float64(k * k)));
	end
	return Float64(t_s * tmp)
end
t_m = abs(t);
t_s = sign(t) * abs(1.0);
function tmp_2 = code(t_s, t_m, l, k)
	tmp = 0.0;
	if (t_m <= 4e-107)
		tmp = ((l ^ 2.0) * (2.0 * (k ^ -4.0))) / t_m;
	else
		tmp = (l ^ 2.0) / ((t_m ^ 3.0) * (k * k));
	end
	tmp_2 = t_s * tmp;
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 4e-107], N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[(2.0 * N[Power[k, -4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision], N[(N[Power[l, 2.0], $MachinePrecision] / N[(N[Power[t$95$m, 3.0], $MachinePrecision] * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 4 \cdot 10^{-107}:\\
\;\;\;\;\frac{{\ell}^{2} \cdot \left(2 \cdot {k}^{-4}\right)}{t_m}\\

\mathbf{else}:\\
\;\;\;\;\frac{{\ell}^{2}}{{t_m}^{3} \cdot \left(k \cdot k\right)}\\


\end{array}
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Alternative 19: 50.8% accurate, 2.0× speedup?

\[\begin{array}{l} t_m = \left|t\right| \\ t_s = \mathsf{copysign}\left(1, t\right) \\ t_s \cdot \left(2 \cdot \frac{{\ell}^{2}}{t_m \cdot {k}^{4}}\right) \end{array} \]
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
 :precision binary64
 (* t_s (* 2.0 (/ (pow l 2.0) (* t_m (pow k 4.0))))))
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
	return t_s * (2.0 * (pow(l, 2.0) / (t_m * pow(k, 4.0))));
}
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
    real(8), intent (in) :: t_s
    real(8), intent (in) :: t_m
    real(8), intent (in) :: l
    real(8), intent (in) :: k
    code = t_s * (2.0d0 * ((l ** 2.0d0) / (t_m * (k ** 4.0d0))))
end function
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
	return t_s * (2.0 * (Math.pow(l, 2.0) / (t_m * Math.pow(k, 4.0))));
}
t_m = math.fabs(t)
t_s = math.copysign(1.0, t)
def code(t_s, t_m, l, k):
	return t_s * (2.0 * (math.pow(l, 2.0) / (t_m * math.pow(k, 4.0))))
t_m = abs(t)
t_s = copysign(1.0, t)
function code(t_s, t_m, l, k)
	return Float64(t_s * Float64(2.0 * Float64((l ^ 2.0) / Float64(t_m * (k ^ 4.0)))))
end
t_m = abs(t);
t_s = sign(t) * abs(1.0);
function tmp = code(t_s, t_m, l, k)
	tmp = t_s * (2.0 * ((l ^ 2.0) / (t_m * (k ^ 4.0))));
end
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * N[(2.0 * N[(N[Power[l, 2.0], $MachinePrecision] / N[(t$95$m * N[Power[k, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)

\\
t_s \cdot \left(2 \cdot \frac{{\ell}^{2}}{t_m \cdot {k}^{4}}\right)
\end{array}
Derivation
    &prev;&pcontext;&pcontext2;&ctx;
  1. Add Preprocessing

Reproduce

?
herbie shell --seed 2023343 
(FPCore (t l k)
  :name "Toniolo and Linder, Equation (10+)"
  :precision binary64
  (/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (+ (+ 1.0 (pow (/ k t) 2.0)) 1.0))))