Average Error: 32.3 → 9.1
Time: 1.2m
Precision: 64
\[\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}\;t \le -8.448835479690807 \cdot 10^{-37}:\\ \;\;\;\;\frac{\frac{2}{t \cdot \frac{\sin k \cdot t}{\ell}}}{\frac{\tan k \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}{\frac{\ell}{t}}}\\ \mathbf{elif}\;t \le 1.1003810475973448 \cdot 10^{-104}:\\ \;\;\;\;\frac{2}{\frac{\mathsf{fma}\left(\frac{\left(\sin k \cdot \sin k\right) \cdot \left(t \cdot t\right)}{\cos k \cdot \ell}, 2, \frac{\frac{\left(k \cdot k\right) \cdot \left(\sin k \cdot \sin k\right)}{\cos k}}{\ell}\right)}{\frac{\ell}{t}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{2}{t \cdot \frac{\sin k \cdot t}{\ell}}}{\frac{\tan k \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}{\frac{\ell}{t}}}\\ \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}\;t \le -8.448835479690807 \cdot 10^{-37}:\\
\;\;\;\;\frac{\frac{2}{t \cdot \frac{\sin k \cdot t}{\ell}}}{\frac{\tan k \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}{\frac{\ell}{t}}}\\

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

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

\end{array}
double f(double t, double l, double k) {
        double r1776434 = 2.0;
        double r1776435 = t;
        double r1776436 = 3.0;
        double r1776437 = pow(r1776435, r1776436);
        double r1776438 = l;
        double r1776439 = r1776438 * r1776438;
        double r1776440 = r1776437 / r1776439;
        double r1776441 = k;
        double r1776442 = sin(r1776441);
        double r1776443 = r1776440 * r1776442;
        double r1776444 = tan(r1776441);
        double r1776445 = r1776443 * r1776444;
        double r1776446 = 1.0;
        double r1776447 = r1776441 / r1776435;
        double r1776448 = pow(r1776447, r1776434);
        double r1776449 = r1776446 + r1776448;
        double r1776450 = r1776449 + r1776446;
        double r1776451 = r1776445 * r1776450;
        double r1776452 = r1776434 / r1776451;
        return r1776452;
}

double f(double t, double l, double k) {
        double r1776453 = t;
        double r1776454 = -8.448835479690807e-37;
        bool r1776455 = r1776453 <= r1776454;
        double r1776456 = 2.0;
        double r1776457 = k;
        double r1776458 = sin(r1776457);
        double r1776459 = r1776458 * r1776453;
        double r1776460 = l;
        double r1776461 = r1776459 / r1776460;
        double r1776462 = r1776453 * r1776461;
        double r1776463 = r1776456 / r1776462;
        double r1776464 = tan(r1776457);
        double r1776465 = r1776457 / r1776453;
        double r1776466 = fma(r1776465, r1776465, r1776456);
        double r1776467 = r1776464 * r1776466;
        double r1776468 = r1776460 / r1776453;
        double r1776469 = r1776467 / r1776468;
        double r1776470 = r1776463 / r1776469;
        double r1776471 = 1.1003810475973448e-104;
        bool r1776472 = r1776453 <= r1776471;
        double r1776473 = r1776458 * r1776458;
        double r1776474 = r1776453 * r1776453;
        double r1776475 = r1776473 * r1776474;
        double r1776476 = cos(r1776457);
        double r1776477 = r1776476 * r1776460;
        double r1776478 = r1776475 / r1776477;
        double r1776479 = r1776457 * r1776457;
        double r1776480 = r1776479 * r1776473;
        double r1776481 = r1776480 / r1776476;
        double r1776482 = r1776481 / r1776460;
        double r1776483 = fma(r1776478, r1776456, r1776482);
        double r1776484 = r1776483 / r1776468;
        double r1776485 = r1776456 / r1776484;
        double r1776486 = r1776472 ? r1776485 : r1776470;
        double r1776487 = r1776455 ? r1776470 : r1776486;
        return r1776487;
}

Error

Bits error versus t

Bits error versus l

Bits error versus k

Derivation

  1. Split input into 2 regimes
  2. if t < -8.448835479690807e-37 or 1.1003810475973448e-104 < t

    1. Initial program 22.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. Simplified13.2

      \[\leadsto \color{blue}{\frac{2}{\left(\left(\frac{t}{\frac{\ell}{t} \cdot \frac{\ell}{t}} \cdot \sin k\right) \cdot \tan k\right) \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}}\]
    3. Using strategy rm
    4. Applied *-un-lft-identity13.2

      \[\leadsto \frac{2}{\left(\left(\frac{\color{blue}{1 \cdot t}}{\frac{\ell}{t} \cdot \frac{\ell}{t}} \cdot \sin k\right) \cdot \tan k\right) \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}\]
    5. Applied times-frac12.4

      \[\leadsto \frac{2}{\left(\left(\color{blue}{\left(\frac{1}{\frac{\ell}{t}} \cdot \frac{t}{\frac{\ell}{t}}\right)} \cdot \sin k\right) \cdot \tan k\right) \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}\]
    6. Applied associate-*l*9.4

      \[\leadsto \frac{2}{\left(\color{blue}{\left(\frac{1}{\frac{\ell}{t}} \cdot \left(\frac{t}{\frac{\ell}{t}} \cdot \sin k\right)\right)} \cdot \tan k\right) \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}\]
    7. Using strategy rm
    8. Applied associate-*l/8.1

      \[\leadsto \frac{2}{\left(\left(\frac{1}{\frac{\ell}{t}} \cdot \color{blue}{\frac{t \cdot \sin k}{\frac{\ell}{t}}}\right) \cdot \tan k\right) \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}\]
    9. Applied associate-*r/8.0

      \[\leadsto \frac{2}{\left(\color{blue}{\frac{\frac{1}{\frac{\ell}{t}} \cdot \left(t \cdot \sin k\right)}{\frac{\ell}{t}}} \cdot \tan k\right) \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}\]
    10. Applied associate-*l/5.7

      \[\leadsto \frac{2}{\color{blue}{\frac{\left(\frac{1}{\frac{\ell}{t}} \cdot \left(t \cdot \sin k\right)\right) \cdot \tan k}{\frac{\ell}{t}}} \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}\]
    11. Applied associate-*l/5.1

      \[\leadsto \frac{2}{\color{blue}{\frac{\left(\left(\frac{1}{\frac{\ell}{t}} \cdot \left(t \cdot \sin k\right)\right) \cdot \tan k\right) \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}{\frac{\ell}{t}}}}\]
    12. Simplified5.1

      \[\leadsto \frac{2}{\frac{\color{blue}{\frac{\sin k \cdot t}{\frac{\ell}{t}} \cdot \left(\mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right) \cdot \tan k\right)}}{\frac{\ell}{t}}}\]
    13. Using strategy rm
    14. Applied *-un-lft-identity5.1

      \[\leadsto \frac{2}{\frac{\frac{\sin k \cdot t}{\frac{\ell}{t}} \cdot \left(\mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right) \cdot \tan k\right)}{\frac{\ell}{\color{blue}{1 \cdot t}}}}\]
    15. Applied *-un-lft-identity5.1

      \[\leadsto \frac{2}{\frac{\frac{\sin k \cdot t}{\frac{\ell}{t}} \cdot \left(\mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right) \cdot \tan k\right)}{\frac{\color{blue}{1 \cdot \ell}}{1 \cdot t}}}\]
    16. Applied times-frac5.1

      \[\leadsto \frac{2}{\frac{\frac{\sin k \cdot t}{\frac{\ell}{t}} \cdot \left(\mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right) \cdot \tan k\right)}{\color{blue}{\frac{1}{1} \cdot \frac{\ell}{t}}}}\]
    17. Applied times-frac4.0

      \[\leadsto \frac{2}{\color{blue}{\frac{\frac{\sin k \cdot t}{\frac{\ell}{t}}}{\frac{1}{1}} \cdot \frac{\mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right) \cdot \tan k}{\frac{\ell}{t}}}}\]
    18. Applied associate-/r*3.8

      \[\leadsto \color{blue}{\frac{\frac{2}{\frac{\frac{\sin k \cdot t}{\frac{\ell}{t}}}{\frac{1}{1}}}}{\frac{\mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right) \cdot \tan k}{\frac{\ell}{t}}}}\]
    19. Simplified3.8

      \[\leadsto \frac{\color{blue}{\frac{2}{\frac{t \cdot \sin k}{\frac{\ell}{t}}}}}{\frac{\mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right) \cdot \tan k}{\frac{\ell}{t}}}\]
    20. Using strategy rm
    21. Applied associate-/r/3.7

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

    if -8.448835479690807e-37 < t < 1.1003810475973448e-104

    1. Initial program 57.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. Simplified41.5

      \[\leadsto \color{blue}{\frac{2}{\left(\left(\frac{t}{\frac{\ell}{t} \cdot \frac{\ell}{t}} \cdot \sin k\right) \cdot \tan k\right) \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}}\]
    3. Using strategy rm
    4. Applied *-un-lft-identity41.5

      \[\leadsto \frac{2}{\left(\left(\frac{\color{blue}{1 \cdot t}}{\frac{\ell}{t} \cdot \frac{\ell}{t}} \cdot \sin k\right) \cdot \tan k\right) \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}\]
    5. Applied times-frac40.8

      \[\leadsto \frac{2}{\left(\left(\color{blue}{\left(\frac{1}{\frac{\ell}{t}} \cdot \frac{t}{\frac{\ell}{t}}\right)} \cdot \sin k\right) \cdot \tan k\right) \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}\]
    6. Applied associate-*l*40.3

      \[\leadsto \frac{2}{\left(\color{blue}{\left(\frac{1}{\frac{\ell}{t}} \cdot \left(\frac{t}{\frac{\ell}{t}} \cdot \sin k\right)\right)} \cdot \tan k\right) \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}\]
    7. Using strategy rm
    8. Applied associate-*l/40.9

      \[\leadsto \frac{2}{\left(\left(\frac{1}{\frac{\ell}{t}} \cdot \color{blue}{\frac{t \cdot \sin k}{\frac{\ell}{t}}}\right) \cdot \tan k\right) \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}\]
    9. Applied associate-*r/40.9

      \[\leadsto \frac{2}{\left(\color{blue}{\frac{\frac{1}{\frac{\ell}{t}} \cdot \left(t \cdot \sin k\right)}{\frac{\ell}{t}}} \cdot \tan k\right) \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}\]
    10. Applied associate-*l/41.5

      \[\leadsto \frac{2}{\color{blue}{\frac{\left(\frac{1}{\frac{\ell}{t}} \cdot \left(t \cdot \sin k\right)\right) \cdot \tan k}{\frac{\ell}{t}}} \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}\]
    11. Applied associate-*l/38.6

      \[\leadsto \frac{2}{\color{blue}{\frac{\left(\left(\frac{1}{\frac{\ell}{t}} \cdot \left(t \cdot \sin k\right)\right) \cdot \tan k\right) \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}{\frac{\ell}{t}}}}\]
    12. Simplified37.4

      \[\leadsto \frac{2}{\frac{\color{blue}{\frac{\sin k \cdot t}{\frac{\ell}{t}} \cdot \left(\mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right) \cdot \tan k\right)}}{\frac{\ell}{t}}}\]
    13. Taylor expanded around inf 23.0

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

      \[\leadsto \frac{2}{\frac{\color{blue}{\mathsf{fma}\left(\frac{\left(\sin k \cdot \sin k\right) \cdot \left(t \cdot t\right)}{\ell \cdot \cos k}, 2, \frac{\frac{\left(k \cdot k\right) \cdot \left(\sin k \cdot \sin k\right)}{\cos k}}{\ell}\right)}}{\frac{\ell}{t}}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification9.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -8.448835479690807 \cdot 10^{-37}:\\ \;\;\;\;\frac{\frac{2}{t \cdot \frac{\sin k \cdot t}{\ell}}}{\frac{\tan k \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}{\frac{\ell}{t}}}\\ \mathbf{elif}\;t \le 1.1003810475973448 \cdot 10^{-104}:\\ \;\;\;\;\frac{2}{\frac{\mathsf{fma}\left(\frac{\left(\sin k \cdot \sin k\right) \cdot \left(t \cdot t\right)}{\cos k \cdot \ell}, 2, \frac{\frac{\left(k \cdot k\right) \cdot \left(\sin k \cdot \sin k\right)}{\cos k}}{\ell}\right)}{\frac{\ell}{t}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{2}{t \cdot \frac{\sin k \cdot t}{\ell}}}{\frac{\tan k \cdot \mathsf{fma}\left(\frac{k}{t}, \frac{k}{t}, 2\right)}{\frac{\ell}{t}}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019151 +o rules:numerics
(FPCore (t l k)
  :name "Toniolo and Linder, Equation (10+)"
  (/ 2 (* (* (* (/ (pow t 3) (* l l)) (sin k)) (tan k)) (+ (+ 1 (pow (/ k t) 2)) 1))))