Average Error: 48.3 → 16.0
Time: 24.0s
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} \mathbf{if}\;\ell \cdot \ell \leq 2.085808446250641 \cdot 10^{+304}:\\ \;\;\;\;2 \cdot \frac{\frac{\cos k \cdot {\ell}^{2}}{k}}{k \cdot \left(\sin k \cdot \left(t \cdot \sin k\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{\left(\left(\sin k \cdot \left(\frac{t \cdot t}{\ell} \cdot \frac{t}{\ell}\right)\right) \cdot \tan k\right) \cdot {\left(\frac{k}{t}\right)}^{2}}\\ \end{array} \]
\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}
\mathbf{if}\;\ell \cdot \ell \leq 2.085808446250641 \cdot 10^{+304}:\\
\;\;\;\;2 \cdot \frac{\frac{\cos k \cdot {\ell}^{2}}{k}}{k \cdot \left(\sin k \cdot \left(t \cdot \sin k\right)\right)}\\

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


\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
 (if (<= (* l l) 2.085808446250641e+304)
   (* 2.0 (/ (/ (* (cos k) (pow l 2.0)) k) (* k (* (sin k) (* t (sin k))))))
   (/
    2.0
    (* (* (* (sin k) (* (/ (* t t) l) (/ t l))) (tan k)) (pow (/ k t) 2.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));
}
double code(double t, double l, double k) {
	double tmp;
	if ((l * l) <= 2.085808446250641e+304) {
		tmp = 2.0 * (((cos(k) * pow(l, 2.0)) / k) / (k * (sin(k) * (t * sin(k)))));
	} else {
		tmp = 2.0 / (((sin(k) * (((t * t) / l) * (t / l))) * tan(k)) * pow((k / t), 2.0));
	}
	return tmp;
}

Error

Bits error versus t

Bits error versus l

Bits error versus k

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if (*.f64 l l) < 2.085808446250641e304

    1. Initial program 45.4

      \[\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. Simplified35.8

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

      \[\leadsto \color{blue}{2 \cdot \frac{\cos k \cdot {\ell}^{2}}{{k}^{2} \cdot \left(t \cdot {\sin k}^{2}\right)}} \]
    4. Applied unpow2_binary6415.2

      \[\leadsto 2 \cdot \frac{\cos k \cdot {\ell}^{2}}{\color{blue}{\left(k \cdot k\right)} \cdot \left(t \cdot {\sin k}^{2}\right)} \]
    5. Applied associate-*l*_binary6412.6

      \[\leadsto 2 \cdot \frac{\cos k \cdot {\ell}^{2}}{\color{blue}{k \cdot \left(k \cdot \left(t \cdot {\sin k}^{2}\right)\right)}} \]
    6. Applied associate-/r*_binary6410.4

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

      \[\leadsto 2 \cdot \frac{\frac{\cos k \cdot {\ell}^{2}}{k}}{k \cdot \left(t \cdot \color{blue}{\left(\sin k \cdot \sin k\right)}\right)} \]
    8. Applied associate-*r*_binary6410.2

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

    if 2.085808446250641e304 < (*.f64 l l)

    1. Initial program 63.8

      \[\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. Simplified63.8

      \[\leadsto \color{blue}{\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot {\left(\frac{k}{t}\right)}^{2}}} \]
    3. Applied add-cube-cbrt_binary6463.8

      \[\leadsto \frac{2}{\left(\left(\frac{{\color{blue}{\left(\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}\right)}}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot {\left(\frac{k}{t}\right)}^{2}} \]
    4. Applied unpow-prod-down_binary6463.8

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

      \[\leadsto \frac{2}{\left(\left(\color{blue}{\left(\frac{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{3}}{\ell} \cdot \frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell}\right)} \cdot \sin k\right) \cdot \tan k\right) \cdot {\left(\frac{k}{t}\right)}^{2}} \]
    6. Simplified48.3

      \[\leadsto \frac{2}{\left(\left(\left(\color{blue}{\frac{t \cdot t}{\ell}} \cdot \frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell}\right) \cdot \sin k\right) \cdot \tan k\right) \cdot {\left(\frac{k}{t}\right)}^{2}} \]
    7. Simplified48.2

      \[\leadsto \frac{2}{\left(\left(\left(\frac{t \cdot t}{\ell} \cdot \color{blue}{\frac{t}{\ell}}\right) \cdot \sin k\right) \cdot \tan k\right) \cdot {\left(\frac{k}{t}\right)}^{2}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification16.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;\ell \cdot \ell \leq 2.085808446250641 \cdot 10^{+304}:\\ \;\;\;\;2 \cdot \frac{\frac{\cos k \cdot {\ell}^{2}}{k}}{k \cdot \left(\sin k \cdot \left(t \cdot \sin k\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{\left(\left(\sin k \cdot \left(\frac{t \cdot t}{\ell} \cdot \frac{t}{\ell}\right)\right) \cdot \tan k\right) \cdot {\left(\frac{k}{t}\right)}^{2}}\\ \end{array} \]

Reproduce

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