Average Error: 31.8 → 9.6
Time: 1.5m
Precision: 64
Internal Precision: 128
\[\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 -2.969244267219701 \cdot 10^{-135} \lor \neg \left(t \le 1.2090988001197642 \cdot 10^{-74}\right):\\ \;\;\;\;\frac{2}{\left(\frac{1}{\ell} \cdot \frac{(\left(\frac{k}{t}\right) \cdot \left(\frac{k}{t}\right) + 2)_* \cdot \left(\sin k \cdot t\right)}{\cos k}\right) \cdot \frac{\sin k \cdot t}{\frac{\ell}{t}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{\frac{\frac{\left({k}^{2} \cdot {\left(\sin k\right)}^{2}\right) \cdot t}{\ell} + 2 \cdot \frac{{\left(\sin k\right)}^{2} \cdot {t}^{3}}{\ell}}{\cos k \cdot \ell}}\\ \end{array}\]

Error

Bits error versus t

Bits error versus l

Bits error versus k

Derivation

  1. Split input into 2 regimes
  2. if t < -2.969244267219701e-135 or 1.2090988001197642e-74 < t

    1. Initial program 23.1

      \[\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. Using strategy rm
    3. Applied unpow323.1

      \[\leadsto \frac{2}{\left(\left(\frac{\color{blue}{\left(t \cdot t\right) \cdot t}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}\]
    4. Applied times-frac16.8

      \[\leadsto \frac{2}{\left(\left(\color{blue}{\left(\frac{t \cdot t}{\ell} \cdot \frac{t}{\ell}\right)} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}\]
    5. Applied associate-*l*14.4

      \[\leadsto \frac{2}{\left(\color{blue}{\left(\frac{t \cdot t}{\ell} \cdot \left(\frac{t}{\ell} \cdot \sin k\right)\right)} \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}\]
    6. Using strategy rm
    7. Applied tan-quot14.4

      \[\leadsto \frac{2}{\left(\left(\frac{t \cdot t}{\ell} \cdot \left(\frac{t}{\ell} \cdot \sin k\right)\right) \cdot \color{blue}{\frac{\sin k}{\cos k}}\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}\]
    8. Applied associate-*l/14.6

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

      \[\leadsto \frac{2}{\left(\color{blue}{\frac{\frac{t \cdot t}{\ell} \cdot \left(t \cdot \sin k\right)}{\ell}} \cdot \frac{\sin k}{\cos k}\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}\]
    10. Applied frac-times15.2

      \[\leadsto \frac{2}{\color{blue}{\frac{\left(\frac{t \cdot t}{\ell} \cdot \left(t \cdot \sin k\right)\right) \cdot \sin k}{\ell \cdot \cos k}} \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}\]
    11. Applied associate-*l/15.0

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

      \[\leadsto \frac{2}{\frac{\color{blue}{\frac{\sin k \cdot t}{\frac{\ell}{t}} \cdot \left(\left(\sin k \cdot t\right) \cdot (\left(\frac{k}{t}\right) \cdot \left(\frac{k}{t}\right) + 2)_*\right)}}{\ell \cdot \cos k}}\]
    13. Using strategy rm
    14. Applied times-frac7.5

      \[\leadsto \frac{2}{\color{blue}{\frac{\frac{\sin k \cdot t}{\frac{\ell}{t}}}{\ell} \cdot \frac{\left(\sin k \cdot t\right) \cdot (\left(\frac{k}{t}\right) \cdot \left(\frac{k}{t}\right) + 2)_*}{\cos k}}}\]
    15. Using strategy rm
    16. Applied div-inv7.5

      \[\leadsto \frac{2}{\color{blue}{\left(\frac{\sin k \cdot t}{\frac{\ell}{t}} \cdot \frac{1}{\ell}\right)} \cdot \frac{\left(\sin k \cdot t\right) \cdot (\left(\frac{k}{t}\right) \cdot \left(\frac{k}{t}\right) + 2)_*}{\cos k}}\]
    17. Applied associate-*l*5.6

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

    if -2.969244267219701e-135 < t < 1.2090988001197642e-74

    1. Initial program 59.9

      \[\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. Using strategy rm
    3. Applied unpow359.9

      \[\leadsto \frac{2}{\left(\left(\frac{\color{blue}{\left(t \cdot t\right) \cdot t}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}\]
    4. Applied times-frac51.9

      \[\leadsto \frac{2}{\left(\left(\color{blue}{\left(\frac{t \cdot t}{\ell} \cdot \frac{t}{\ell}\right)} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}\]
    5. Applied associate-*l*51.6

      \[\leadsto \frac{2}{\left(\color{blue}{\left(\frac{t \cdot t}{\ell} \cdot \left(\frac{t}{\ell} \cdot \sin k\right)\right)} \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}\]
    6. Using strategy rm
    7. Applied tan-quot51.6

      \[\leadsto \frac{2}{\left(\left(\frac{t \cdot t}{\ell} \cdot \left(\frac{t}{\ell} \cdot \sin k\right)\right) \cdot \color{blue}{\frac{\sin k}{\cos k}}\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}\]
    8. Applied associate-*l/51.9

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

      \[\leadsto \frac{2}{\left(\color{blue}{\frac{\frac{t \cdot t}{\ell} \cdot \left(t \cdot \sin k\right)}{\ell}} \cdot \frac{\sin k}{\cos k}\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}\]
    10. Applied frac-times54.1

      \[\leadsto \frac{2}{\color{blue}{\frac{\left(\frac{t \cdot t}{\ell} \cdot \left(t \cdot \sin k\right)\right) \cdot \sin k}{\ell \cdot \cos k}} \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}\]
    11. Applied associate-*l/54.1

      \[\leadsto \frac{2}{\color{blue}{\frac{\left(\left(\frac{t \cdot t}{\ell} \cdot \left(t \cdot \sin k\right)\right) \cdot \sin k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}{\ell \cdot \cos k}}}\]
    12. Simplified40.9

      \[\leadsto \frac{2}{\frac{\color{blue}{\frac{\sin k \cdot t}{\frac{\ell}{t}} \cdot \left(\left(\sin k \cdot t\right) \cdot (\left(\frac{k}{t}\right) \cdot \left(\frac{k}{t}\right) + 2)_*\right)}}{\ell \cdot \cos k}}\]
    13. Taylor expanded around inf 22.5

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -2.969244267219701 \cdot 10^{-135} \lor \neg \left(t \le 1.2090988001197642 \cdot 10^{-74}\right):\\ \;\;\;\;\frac{2}{\left(\frac{1}{\ell} \cdot \frac{(\left(\frac{k}{t}\right) \cdot \left(\frac{k}{t}\right) + 2)_* \cdot \left(\sin k \cdot t\right)}{\cos k}\right) \cdot \frac{\sin k \cdot t}{\frac{\ell}{t}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2}{\frac{\frac{\left({k}^{2} \cdot {\left(\sin k\right)}^{2}\right) \cdot t}{\ell} + 2 \cdot \frac{{\left(\sin k\right)}^{2} \cdot {t}^{3}}{\ell}}{\cos k \cdot \ell}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019002 +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))))

Details

Time bar (total: 1.5m)Debug log

sample497.0ms

Algorithm
intervals

simplify154.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

154.0ms
(/ 2 (* (* (* (/ (pow t 3) (* l l)) (sin k)) (tan k)) (+ (+ 1 (pow (/ k t) 2)) 1)))

prune10.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 34.8b

localize48.0ms

Local error

Found 4 expressions with local error:

16.3b
(/ (pow t 3) (* l l))
14.3b
(* (* (* (/ (pow t 3) (* l l)) (sin k)) (tan k)) (+ (+ 1 (pow (/ k t) 2)) 1))
5.0b
(* (/ (pow t 3) (* l l)) (sin k))
3.4b
(* (* (/ (pow t 3) (* l l)) (sin k)) (tan k))

rewrite83.0ms

Algorithm
rewrite-expression-head
Counts
4 → 120
Calls

4 calls. Slowest were:

51.0ms
(* (* (* (/ (pow t 3) (* l l)) (sin k)) (tan k)) (+ (+ 1 (pow (/ k t) 2)) 1))
19.0ms
(* (* (/ (pow t 3) (* l l)) (sin k)) (tan k))
8.0ms
(* (/ (pow t 3) (* l l)) (sin k))

series661.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

360.0ms
(* (* (* (/ (pow t 3) (* l l)) (sin k)) (tan k)) (+ (+ 1 (pow (/ k t) 2)) 1))
175.0ms
(* (* (/ (pow t 3) (* l l)) (sin k)) (tan k))
101.0ms
(* (/ (pow t 3) (* l l)) (sin k))
25.0ms
(/ (pow t 3) (* l l))

simplify17.4s

Counts
98 → 132
Calls

98 calls. Slowest were:

1.6s
(* (* l l) (- (+ 1 (pow (/ k t) 2)) 1))
930.0ms
(- (+ 1 (pow (/ k t) 2)) 1)
825.0ms
(* (* (* l l) (cos k)) (- (+ 1 (pow (/ k t) 2)) 1))

prune2.4s

Pruning

11 alts after pruning (11 fresh and 0 done)

Merged error: 17.6b

localize45.0ms

Local error

Found 4 expressions with local error:

14.3b
(* (* (* (/ (* t t) l) (* (/ t l) (sin k))) (tan k)) (+ (+ 1 (pow (/ k t) 2)) 1))
8.2b
(/ (* t t) l)
3.4b
(* (* (/ (* t t) l) (* (/ t l) (sin k))) (tan k))
2.9b
(* (/ t l) (sin k))

rewrite176.0ms

Algorithm
rewrite-expression-head
Counts
4 → 115
Calls

4 calls. Slowest were:

138.0ms
(* (* (* (/ (* t t) l) (* (/ t l) (sin k))) (tan k)) (+ (+ 1 (pow (/ k t) 2)) 1))
27.0ms
(* (* (/ (* t t) l) (* (/ t l) (sin k))) (tan k))
5.0ms
(/ (* t t) l)

series661.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

385.0ms
(* (* (* (/ (* t t) l) (* (/ t l) (sin k))) (tan k)) (+ (+ 1 (pow (/ k t) 2)) 1))
185.0ms
(* (* (/ (* t t) l) (* (/ t l) (sin k))) (tan k))
74.0ms
(* (/ t l) (sin k))
16.0ms
(/ (* t t) l)

simplify23.9s

Counts
99 → 127
Calls

99 calls. Slowest were:

1.4s
(* (* l l) (- (+ 1 (pow (/ k t) 2)) 1))
1.0s
(* (* l (cos k)) (+ (* (+ 1 (pow (/ k t) 2)) (+ 1 (pow (/ k t) 2))) (- (* 1 1) (* (+ 1 (pow (/ k t) 2)) 1))))
817.0ms
(* (* (* l l) (cos k)) (- (+ 1 (pow (/ k t) 2)) 1))

prune2.2s

Pruning

12 alts after pruning (12 fresh and 0 done)

Merged error: 9.0b

localize63.0ms

Local error

Found 4 expressions with local error:

11.0b
(* (/ (* (sin k) t) (/ l t)) (* (* (sin k) t) (fma (/ k t) (/ k t) 2)))
5.3b
(/ (* (/ (* (sin k) t) (/ l t)) (* (* (sin k) t) (fma (/ k t) (/ k t) 2))) (* l (cos k)))
2.6b
(* (* (sin k) t) (fma (/ k t) (/ k t) 2))
0.8b
(/ (* (sin k) t) (/ l t))

rewrite66.0ms

Algorithm
rewrite-expression-head
Counts
4 → 104
Calls

4 calls. Slowest were:

25.0ms
(/ (* (/ (* (sin k) t) (/ l t)) (* (* (sin k) t) (fma (/ k t) (/ k t) 2))) (* l (cos k)))
22.0ms
(* (/ (* (sin k) t) (/ l t)) (* (* (sin k) t) (fma (/ k t) (/ k t) 2)))
10.0ms
(/ (* (sin k) t) (/ l t))

series558.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

221.0ms
(/ (* (/ (* (sin k) t) (/ l t)) (* (* (sin k) t) (fma (/ k t) (/ k t) 2))) (* l (cos k)))
177.0ms
(* (/ (* (sin k) t) (/ l t)) (* (* (sin k) t) (fma (/ k t) (/ k t) 2)))
85.0ms
(* (* (sin k) t) (fma (/ k t) (/ k t) 2))
75.0ms
(/ (* (sin k) t) (/ l t))

simplify13.6s

Counts
75 → 116
Calls

75 calls. Slowest were:

1.3s
(/ (* (/ (* (* (* (sin k) t) (* (sin k) t)) (* (sin k) t)) (* (* (/ l t) (/ l t)) (/ l t))) (* (* (* (* (sin k) t) (* (sin k) t)) (* (sin k) t)) (* (* (fma (/ k t) (/ k t) 2) (fma (/ k t) (/ k t) 2)) (fma (/ k t) (/ k t) 2)))) (* (* (* l (cos k)) (* l (cos k))) (* l (cos k))))
1.2s
(/ (* (/ (* (* (* (sin k) t) (* (sin k) t)) (* (sin k) t)) (* (* (/ l t) (/ l t)) (/ l t))) (* (* (* (* (sin k) t) (fma (/ k t) (/ k t) 2)) (* (* (sin k) t) (fma (/ k t) (/ k t) 2))) (* (* (sin k) t) (fma (/ k t) (/ k t) 2)))) (* (* (* l (cos k)) (* l (cos k))) (* l (cos k))))
1.1s
(/ (* (* (* (/ (* (sin k) t) (/ l t)) (/ (* (sin k) t) (/ l t))) (/ (* (sin k) t) (/ l t))) (* (* (* (* (sin k) t) (* (sin k) t)) (* (sin k) t)) (* (* (fma (/ k t) (/ k t) 2) (fma (/ k t) (/ k t) 2)) (fma (/ k t) (/ k t) 2)))) (* (* (* l (cos k)) (* l (cos k))) (* l (cos k))))

prune1.7s

Pruning

13 alts after pruning (13 fresh and 0 done)

Merged error: 7.7b

localize12.0ms

Local error

Found 4 expressions with local error:

12.3b
(* (/ (/ (* (sin k) t) (/ l t)) l) (/ (* (* (sin k) t) (fma (/ k t) (/ k t) 2)) (cos k)))
4.5b
(/ (/ (* (sin k) t) (/ l t)) l)
2.6b
(* (* (sin k) t) (fma (/ k t) (/ k t) 2))
0.8b
(/ (* (sin k) t) (/ l t))

rewrite48.0ms

Algorithm
rewrite-expression-head
Counts
4 → 96
Calls

4 calls. Slowest were:

20.0ms
(* (/ (/ (* (sin k) t) (/ l t)) l) (/ (* (* (sin k) t) (fma (/ k t) (/ k t) 2)) (cos k)))
10.0ms
(* (* (sin k) t) (fma (/ k t) (/ k t) 2))
10.0ms
(/ (* (sin k) t) (/ l t))

series428.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

207.0ms
(* (/ (/ (* (sin k) t) (/ l t)) l) (/ (* (* (sin k) t) (fma (/ k t) (/ k t) 2)) (cos k)))
75.0ms
(/ (* (sin k) t) (/ l t))
75.0ms
(* (* (sin k) t) (fma (/ k t) (/ k t) 2))
72.0ms
(/ (/ (* (sin k) t) (/ l t)) l)

simplify6.4s

Counts
66 → 108
Calls

66 calls. Slowest were:

633.0ms
(* (/ (* (sin k) t) (/ l t)) (/ (* (* (sin k) t) (fma (/ k t) (/ k t) 2)) (cos k)))
541.0ms
(* (/ (* (sin k) t) (/ l t)) (* (* (sin k) t) (fma (/ k t) (/ k t) 2)))
530.0ms
(* (* (* (/ (/ (* (sin k) t) (/ l t)) l) (/ (/ (* (sin k) t) (/ l t)) l)) (/ (/ (* (sin k) t) (/ l t)) l)) (/ (* (* (* (* (sin k) t) (* (sin k) t)) (* (sin k) t)) (* (* (fma (/ k t) (/ k t) 2) (fma (/ k t) (/ k t) 2)) (fma (/ k t) (/ k t) 2))) (* (* (cos k) (cos k)) (cos k))))

prune1.5s

Pruning

13 alts after pruning (13 fresh and 0 done)

Merged error: 7.7b

regimes458.0ms

Accuracy

58% (3.0b remaining)

Error of 9.6b against oracle of 6.6b and baseline of 13.7b

bsearch1.4s

end0.0ms

sample15.9s

Algorithm
intervals