Average Error: 32.9 → 11.5
Time: 22.2s
Precision: binary64
\[\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)} \]
\[\begin{array}{l} t_1 := \sqrt[3]{\sin k}\\ t_2 := 0 \cdot \tan k\\ t_3 := -t_2\\ t_4 := 2 + {\left(\frac{k}{t}\right)}^{2}\\ t_5 := \frac{t}{{\left(\sqrt[3]{\ell}\right)}^{2}}\\ t_6 := t_5 \cdot t_1\\ t_7 := \mathsf{fma}\left(0, \tan k, t_2\right)\\ \mathbf{if}\;t \leq -3.519484547635524 \cdot 10^{-73}:\\ \;\;\;\;\frac{2}{\left(\mathsf{fma}\left(t_6, \tan k \cdot {\left(t_5 \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(t_1\right)\right)\right)}^{2}, t_3\right) + t_7\right) \cdot t_4}\\ \mathbf{elif}\;t \leq 2.330754811211471 \cdot 10^{-198}:\\ \;\;\;\;\frac{2}{{\sin k}^{2} \cdot \frac{t \cdot \mathsf{fma}\left(k, k, 2 \cdot \left(t \cdot t\right)\right)}{\left(\ell \cdot \ell\right) \cdot \cos k}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{\left(\mathsf{fma}\left(t_5 \cdot {\left(\sqrt[3]{t_1}\right)}^{3}, \tan k \cdot {t_6}^{2}, t_3\right) + t_7\right) \cdot t_4}\\ \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))))
(FPCore (t l k)
 :precision binary64
 (let* ((t_1 (cbrt (sin k)))
        (t_2 (* 0.0 (tan k)))
        (t_3 (- t_2))
        (t_4 (+ 2.0 (pow (/ k t) 2.0)))
        (t_5 (/ t (pow (cbrt l) 2.0)))
        (t_6 (* t_5 t_1))
        (t_7 (fma 0.0 (tan k) t_2)))
   (if (<= t -3.519484547635524e-73)
     (/
      2.0
      (*
       (+ (fma t_6 (* (tan k) (pow (* t_5 (log1p (expm1 t_1))) 2.0)) t_3) t_7)
       t_4))
     (if (<= t 2.330754811211471e-198)
       (/
        2.0
        (*
         (pow (sin k) 2.0)
         (/ (* t (fma k k (* 2.0 (* t t)))) (* (* l l) (cos k)))))
       (/
        2.0
        (*
         (+
          (fma (* t_5 (pow (cbrt t_1) 3.0)) (* (tan k) (pow t_6 2.0)) t_3)
          t_7)
         t_4))))))
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));
}
double code(double t, double l, double k) {
	double t_1 = cbrt(sin(k));
	double t_2 = 0.0 * tan(k);
	double t_3 = -t_2;
	double t_4 = 2.0 + pow((k / t), 2.0);
	double t_5 = t / pow(cbrt(l), 2.0);
	double t_6 = t_5 * t_1;
	double t_7 = fma(0.0, tan(k), t_2);
	double tmp;
	if (t <= -3.519484547635524e-73) {
		tmp = 2.0 / ((fma(t_6, (tan(k) * pow((t_5 * log1p(expm1(t_1))), 2.0)), t_3) + t_7) * t_4);
	} else if (t <= 2.330754811211471e-198) {
		tmp = 2.0 / (pow(sin(k), 2.0) * ((t * fma(k, k, (2.0 * (t * t)))) / ((l * l) * cos(k))));
	} else {
		tmp = 2.0 / ((fma((t_5 * pow(cbrt(t_1), 3.0)), (tan(k) * pow(t_6, 2.0)), t_3) + t_7) * t_4);
	}
	return tmp;
}
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 code(t, l, k)
	t_1 = cbrt(sin(k))
	t_2 = Float64(0.0 * tan(k))
	t_3 = Float64(-t_2)
	t_4 = Float64(2.0 + (Float64(k / t) ^ 2.0))
	t_5 = Float64(t / (cbrt(l) ^ 2.0))
	t_6 = Float64(t_5 * t_1)
	t_7 = fma(0.0, tan(k), t_2)
	tmp = 0.0
	if (t <= -3.519484547635524e-73)
		tmp = Float64(2.0 / Float64(Float64(fma(t_6, Float64(tan(k) * (Float64(t_5 * log1p(expm1(t_1))) ^ 2.0)), t_3) + t_7) * t_4));
	elseif (t <= 2.330754811211471e-198)
		tmp = Float64(2.0 / Float64((sin(k) ^ 2.0) * Float64(Float64(t * fma(k, k, Float64(2.0 * Float64(t * t)))) / Float64(Float64(l * l) * cos(k)))));
	else
		tmp = Float64(2.0 / Float64(Float64(fma(Float64(t_5 * (cbrt(t_1) ^ 3.0)), Float64(tan(k) * (t_6 ^ 2.0)), t_3) + t_7) * t_4));
	end
	return tmp
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]
code[t_, l_, k_] := Block[{t$95$1 = N[Power[N[Sin[k], $MachinePrecision], 1/3], $MachinePrecision]}, Block[{t$95$2 = N[(0.0 * N[Tan[k], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = (-t$95$2)}, Block[{t$95$4 = N[(2.0 + N[Power[N[(k / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(t / N[Power[N[Power[l, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$6 = N[(t$95$5 * t$95$1), $MachinePrecision]}, Block[{t$95$7 = N[(0.0 * N[Tan[k], $MachinePrecision] + t$95$2), $MachinePrecision]}, If[LessEqual[t, -3.519484547635524e-73], N[(2.0 / N[(N[(N[(t$95$6 * N[(N[Tan[k], $MachinePrecision] * N[Power[N[(t$95$5 * N[Log[1 + N[(Exp[t$95$1] - 1), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] + t$95$3), $MachinePrecision] + t$95$7), $MachinePrecision] * t$95$4), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 2.330754811211471e-198], N[(2.0 / N[(N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision] * N[(N[(t * N[(k * k + N[(2.0 * N[(t * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(l * l), $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(t$95$5 * N[Power[N[Power[t$95$1, 1/3], $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[Power[t$95$6, 2.0], $MachinePrecision]), $MachinePrecision] + t$95$3), $MachinePrecision] + t$95$7), $MachinePrecision] * t$95$4), $MachinePrecision]), $MachinePrecision]]]]]]]]]]
\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)}
\begin{array}{l}
t_1 := \sqrt[3]{\sin k}\\
t_2 := 0 \cdot \tan k\\
t_3 := -t_2\\
t_4 := 2 + {\left(\frac{k}{t}\right)}^{2}\\
t_5 := \frac{t}{{\left(\sqrt[3]{\ell}\right)}^{2}}\\
t_6 := t_5 \cdot t_1\\
t_7 := \mathsf{fma}\left(0, \tan k, t_2\right)\\
\mathbf{if}\;t \leq -3.519484547635524 \cdot 10^{-73}:\\
\;\;\;\;\frac{2}{\left(\mathsf{fma}\left(t_6, \tan k \cdot {\left(t_5 \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(t_1\right)\right)\right)}^{2}, t_3\right) + t_7\right) \cdot t_4}\\

\mathbf{elif}\;t \leq 2.330754811211471 \cdot 10^{-198}:\\
\;\;\;\;\frac{2}{{\sin k}^{2} \cdot \frac{t \cdot \mathsf{fma}\left(k, k, 2 \cdot \left(t \cdot t\right)\right)}{\left(\ell \cdot \ell\right) \cdot \cos k}}\\

\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\mathsf{fma}\left(t_5 \cdot {\left(\sqrt[3]{t_1}\right)}^{3}, \tan k \cdot {t_6}^{2}, t_3\right) + t_7\right) \cdot t_4}\\


\end{array}

Error

Bits error versus t

Bits error versus l

Bits error versus k

Derivation

  1. Split input into 3 regimes
  2. if t < -3.51948454763552423e-73

    1. Initial program 23.0

      \[\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)} \]
    2. Simplified23.0

      \[\leadsto \color{blue}{\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(2 + {\left(\frac{k}{t}\right)}^{2}\right)}} \]
    3. Applied egg-rr5.5

      \[\leadsto \frac{2}{\color{blue}{\left(\mathsf{fma}\left(\frac{t}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \sqrt[3]{\sin k}, \tan k \cdot {\left(\frac{t}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \sqrt[3]{\sin k}\right)}^{2}, -0 \cdot \tan k\right) + \mathsf{fma}\left(0, \tan k, 0 \cdot \tan k\right)\right)} \cdot \left(2 + {\left(\frac{k}{t}\right)}^{2}\right)} \]
    4. Applied egg-rr5.5

      \[\leadsto \frac{2}{\left(\mathsf{fma}\left(\frac{t}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \sqrt[3]{\sin k}, \tan k \cdot {\left(\frac{t}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left(\sqrt[3]{\sin k}\right)\right)}\right)}^{2}, -0 \cdot \tan k\right) + \mathsf{fma}\left(0, \tan k, 0 \cdot \tan k\right)\right) \cdot \left(2 + {\left(\frac{k}{t}\right)}^{2}\right)} \]

    if -3.51948454763552423e-73 < t < 2.33075481121147108e-198

    1. Initial program 60.6

      \[\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)} \]
    2. Simplified60.6

      \[\leadsto \color{blue}{\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(2 + {\left(\frac{k}{t}\right)}^{2}\right)}} \]
    3. Taylor expanded in l around 0 60.0

      \[\leadsto \frac{2}{\color{blue}{\frac{{t}^{3} \cdot \left(\left(2 + \frac{{k}^{2}}{{t}^{2}}\right) \cdot {\sin k}^{2}\right)}{\cos k \cdot {\ell}^{2}}}} \]
    4. Simplified24.7

      \[\leadsto \frac{2}{\color{blue}{{\sin k}^{2} \cdot \frac{t \cdot \mathsf{fma}\left(k, k, 2 \cdot \left(t \cdot t\right)\right)}{\left(\ell \cdot \ell\right) \cdot \cos k}}} \]

    if 2.33075481121147108e-198 < t

    1. Initial program 28.5

      \[\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)} \]
    2. Simplified28.5

      \[\leadsto \color{blue}{\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(2 + {\left(\frac{k}{t}\right)}^{2}\right)}} \]
    3. Applied egg-rr10.5

      \[\leadsto \frac{2}{\color{blue}{\left(\mathsf{fma}\left(\frac{t}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \sqrt[3]{\sin k}, \tan k \cdot {\left(\frac{t}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \sqrt[3]{\sin k}\right)}^{2}, -0 \cdot \tan k\right) + \mathsf{fma}\left(0, \tan k, 0 \cdot \tan k\right)\right)} \cdot \left(2 + {\left(\frac{k}{t}\right)}^{2}\right)} \]
    4. Applied egg-rr10.5

      \[\leadsto \frac{2}{\left(\mathsf{fma}\left(\frac{t}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \color{blue}{{\left(\sqrt[3]{\sqrt[3]{\sin k}}\right)}^{3}}, \tan k \cdot {\left(\frac{t}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \sqrt[3]{\sin k}\right)}^{2}, -0 \cdot \tan k\right) + \mathsf{fma}\left(0, \tan k, 0 \cdot \tan k\right)\right) \cdot \left(2 + {\left(\frac{k}{t}\right)}^{2}\right)} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification11.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \leq -3.519484547635524 \cdot 10^{-73}:\\ \;\;\;\;\frac{2}{\left(\mathsf{fma}\left(\frac{t}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \sqrt[3]{\sin k}, \tan k \cdot {\left(\frac{t}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \mathsf{log1p}\left(\mathsf{expm1}\left(\sqrt[3]{\sin k}\right)\right)\right)}^{2}, -0 \cdot \tan k\right) + \mathsf{fma}\left(0, \tan k, 0 \cdot \tan k\right)\right) \cdot \left(2 + {\left(\frac{k}{t}\right)}^{2}\right)}\\ \mathbf{elif}\;t \leq 2.330754811211471 \cdot 10^{-198}:\\ \;\;\;\;\frac{2}{{\sin k}^{2} \cdot \frac{t \cdot \mathsf{fma}\left(k, k, 2 \cdot \left(t \cdot t\right)\right)}{\left(\ell \cdot \ell\right) \cdot \cos k}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{\left(\mathsf{fma}\left(\frac{t}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot {\left(\sqrt[3]{\sqrt[3]{\sin k}}\right)}^{3}, \tan k \cdot {\left(\frac{t}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \sqrt[3]{\sin k}\right)}^{2}, -0 \cdot \tan k\right) + \mathsf{fma}\left(0, \tan k, 0 \cdot \tan k\right)\right) \cdot \left(2 + {\left(\frac{k}{t}\right)}^{2}\right)}\\ \end{array} \]

Reproduce

herbie shell --seed 2022131 
(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))))