Details

Time bar (total: 11.7s)

analyze1.3s (11.1%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
12.5%87.4%0.1%5
18.7%81.2%0.1%6
21.9%78%0.1%7
23.4%76.5%0.1%8
24.2%75.7%0.1%9
24.6%75.3%0.1%10
24.8%75.1%0.1%11
24.9%75%0.1%12
24.9%75%0.1%13
25%75%0.1%14
Compiler

Compiled 10 to 7 computations (30% saved)

sample4.1s (34.8%)

Results
2.1s3592×body1024valid
1.1s1281×body2048valid
532.0ms1387×body512valid
235.0ms1390×body128valid
139.0ms603×body256valid
4.0msbody4096valid
Compiler

Compiled 29 to 20 computations (31% saved)

simplify16.0ms (0.1%)

Algorithm
egg-herbie
Rules
39×fma-def_binary64
32×fma-neg_binary64
14×cancel-sign-sub-inv_binary64
12×sub-neg_binary64
10×distribute-rgt-in_binary64
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
11011
21511
32211
42911
54611
67211
79311
811011
912011
1012411
1112611
1211211

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
35.1b
Counts
2 → 1
Alt Table
StatusErrorProgram
35.1b
(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x))
Compiler

Compiled 27 to 18 computations (33.3% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
2.0b
(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x))
3.6b
(tan.f64 (+.f64 x eps))

series69.0ms (0.6%)

Counts
2 → 48
Calls

2 calls:

41.0ms
(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x))
27.0ms
(tan.f64 (+.f64 x eps))

rewrite13.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
12×*-un-lft-identity_binary64
12×add-sqr-sqrt_binary64
10×add-cube-cbrt_binary64
prod-diff_binary64
add-log-exp_binary64
Counts
2 → 43
Calls

2 calls:

6.0ms
(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x))
5.0ms
(tan.f64 (+.f64 x eps))

simplify109.0ms (0.9%)

Algorithm
egg-herbie
Rules
936×fma-def_binary64
909×times-frac_binary64
194×associate-+r+_binary64
142×unswap-sqr_binary64
125×+-commutative_binary64
Counts
91 → 93
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02072570
15072289
217872148
349652145
449862145
549432145

prune99.0ms (0.8%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New87693
Fresh000
Picked101
Done000
Total88694
Error
0.1b
Counts
94 → 6
Alt Table
StatusErrorProgram
20.6b
(-.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (tan.f64 x))
20.7b
(/.f64 (fma.f64 (sin.f64 x) (+.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) -1) (*.f64 (cos.f64 x) (+.f64 (tan.f64 x) (tan.f64 eps)))) (*.f64 (cos.f64 x) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))))
32.2b
(+.f64 (+.f64 eps (+.f64 (/.f64 (pow.f64 eps 3) (pow.f64 (/.f64 (cos.f64 x) (sin.f64 x)) 4)) (fma.f64 5/3 (/.f64 (pow.f64 eps 4) (pow.f64 (/.f64 (cos.f64 x) (sin.f64 x)) 3)) (fma.f64 (/.f64 (pow.f64 eps 4) (pow.f64 (cos.f64 x) 5)) (pow.f64 (sin.f64 x) 5) (fma.f64 4/3 (/.f64 (*.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 eps 3)) (pow.f64 (cos.f64 x) 2)) (fma.f64 eps (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) (fma.f64 1/3 (pow.f64 eps 3) (*.f64 2/3 (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 eps 4)))))))))) (*.f64 (/.f64 (*.f64 eps eps) (cos.f64 x)) (+.f64 (sin.f64 x) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 2)))))
32.1b
(+.f64 (+.f64 (/.f64 (pow.f64 eps 3) (pow.f64 (/.f64 (cos.f64 x) (sin.f64 x)) 4)) (+.f64 (fma.f64 4/3 (/.f64 (*.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 eps 3)) (pow.f64 (cos.f64 x) 2)) (*.f64 1/3 (pow.f64 eps 3))) (fma.f64 eps (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) eps))) (*.f64 (/.f64 (*.f64 eps eps) (cos.f64 x)) (+.f64 (sin.f64 x) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 2)))))
31.8b
(+.f64 (fma.f64 (/.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 (cos.f64 eps) 2)) x (fma.f64 (/.f64 (sin.f64 eps) (cos.f64 eps)) (*.f64 x x) (/.f64 (sin.f64 eps) (cos.f64 eps)))) (fma.f64 4/3 (/.f64 (*.f64 (pow.f64 (sin.f64 eps) 2) (pow.f64 x 3)) (pow.f64 (cos.f64 eps) 2)) (fma.f64 (/.f64 (pow.f64 (sin.f64 eps) 3) (pow.f64 (cos.f64 eps) 3)) (*.f64 x x) (/.f64 (*.f64 (pow.f64 x 3) (pow.f64 (sin.f64 eps) 4)) (pow.f64 (cos.f64 eps) 4)))))
20.7b
(/.f64 (-.f64 (*.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (cos.f64 x)) (*.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps))) (sin.f64 x))) (*.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps))) (cos.f64 x)))
Compiler

Compiled 3079 to 1289 computations (58.1% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(+.f64 (tan.f64 x) (tan.f64 eps))
0.1b
(/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps))))
0.2b
(*.f64 (tan.f64 x) (tan.f64 eps))
3.8b
(-.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (tan.f64 x))

series396.0ms (3.4%)

Counts
4 → 96
Calls

4 calls:

207.0ms
(-.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (tan.f64 x))
124.0ms
(/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps))))
33.0ms
(*.f64 (tan.f64 x) (tan.f64 eps))
32.0ms
(+.f64 (tan.f64 x) (tan.f64 eps))

rewrite46.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
103×*-un-lft-identity_binary64
74×add-sqr-sqrt_binary64
67×add-cube-cbrt_binary64
61×times-frac_binary64
54×prod-diff_binary64
Counts
4 → 171
Calls

4 calls:

12.0ms
(-.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (tan.f64 x))
6.0ms
(/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps))))
5.0ms
(+.f64 (tan.f64 x) (tan.f64 eps))
4.0ms
(*.f64 (tan.f64 x) (tan.f64 eps))

simplify230.0ms (2%)

Algorithm
egg-herbie
Rules
228×unswap-sqr_binary64
225×associate-+r+_binary64
225×distribute-rgt-in_binary64
203×distribute-lft-in_binary64
184×associate-*l*_binary64
Counts
267 → 245
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
038510657
19259025
231708501
347678501
449238501

prune269.0ms (2.3%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New2387245
Fresh235
Picked101
Done000
Total24110251
Error
0.1b
Counts
251 → 10
Alt Table
StatusErrorProgram
20.8b
(-.f64 (/.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (cos.f64 x))))) (tan.f64 x))
32.2b
(+.f64 (+.f64 eps (+.f64 (/.f64 (pow.f64 eps 3) (pow.f64 (/.f64 (cos.f64 x) (sin.f64 x)) 4)) (fma.f64 5/3 (/.f64 (pow.f64 eps 4) (pow.f64 (/.f64 (cos.f64 x) (sin.f64 x)) 3)) (fma.f64 (/.f64 (pow.f64 eps 4) (pow.f64 (cos.f64 x) 5)) (pow.f64 (sin.f64 x) 5) (fma.f64 4/3 (/.f64 (*.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 eps 3)) (pow.f64 (cos.f64 x) 2)) (fma.f64 eps (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) (fma.f64 1/3 (pow.f64 eps 3) (*.f64 2/3 (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 eps 4)))))))))) (*.f64 (/.f64 (*.f64 eps eps) (cos.f64 x)) (+.f64 (sin.f64 x) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 2)))))
20.7b
(-.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (cbrt.f64 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 3)))) (tan.f64 x))
32.1b
(+.f64 (+.f64 (/.f64 (pow.f64 eps 3) (pow.f64 (/.f64 (cos.f64 x) (sin.f64 x)) 4)) (+.f64 (fma.f64 4/3 (/.f64 (*.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 eps 3)) (pow.f64 (cos.f64 x) 2)) (*.f64 1/3 (pow.f64 eps 3))) (fma.f64 eps (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) eps))) (*.f64 (/.f64 (*.f64 eps eps) (cos.f64 x)) (+.f64 (sin.f64 x) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 2)))))
20.6b
(fma.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (neg.f64 (tan.f64 x)))
21.2b
(-.f64 (/.f64 (log1p.f64 (expm1.f64 (+.f64 (tan.f64 x) (tan.f64 eps)))) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (tan.f64 x))
20.6b
(-.f64 (*.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) (*.f64 (tan.f64 x) (tan.f64 eps))))) (+.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (tan.f64 x))
20.7b
(/.f64 (fma.f64 (sin.f64 x) (+.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) -1) (*.f64 (cos.f64 x) (+.f64 (tan.f64 x) (tan.f64 eps)))) (*.f64 (cos.f64 x) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))))
21.6b
(-.f64 (/.f64 (*.f64 (*.f64 (cbrt.f64 (+.f64 (tan.f64 x) (tan.f64 eps))) (cbrt.f64 (+.f64 (tan.f64 x) (tan.f64 eps)))) (cbrt.f64 (+.f64 (tan.f64 x) (tan.f64 eps)))) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (tan.f64 x))
20.6b
(+.f64 (fma.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 3))) (fma.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) 1) (neg.f64 (tan.f64 x))) 0)
Compiler

Compiled 9511 to 3263 computations (65.7% saved)

localize18.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 3)))
0.2b
(*.f64 (tan.f64 x) (tan.f64 eps))
0.3b
(pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 3)
3.8b
(fma.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 3))) (fma.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) 1) (neg.f64 (tan.f64 x)))

series708.0ms (6%)

Counts
3 → 72
Calls

3 calls:

407.0ms
(fma.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 3))) (fma.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) 1) (neg.f64 (tan.f64 x)))
236.0ms
(/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 3)))
65.0ms
(pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 3)

rewrite22.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
56×*-un-lft-identity_binary64
38×add-sqr-sqrt_binary64
32×times-frac_binary64
20×difference-of-squares_binary64
18×add-cube-cbrt_binary64
Counts
3 → 100
Calls

3 calls:

10.0ms
(/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 3)))
4.0ms
(pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 3)
0.0ms
(fma.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 3))) (fma.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) 1) (neg.f64 (tan.f64 x)))

simplify198.0ms (1.7%)

Algorithm
egg-herbie
Rules
385×unswap-sqr_binary64
292×times-frac_binary64
217×associate-/l*_binary64
202×associate-*r*_binary64
191×associate-*l*_binary64
Counts
172 → 153
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
032211027
185910697
2372710572
3504910572

prune363.0ms (3.1%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New2374241
Fresh369
Picked101
Done000
Total24110251
Error
0.1b
Counts
251 → 10
Alt Table
StatusErrorProgram
20.8b
(-.f64 (/.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (cos.f64 x))))) (tan.f64 x))
20.6b
(+.f64 (fma.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (cbrt.f64 (pow.f64 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 3) 3)))) (fma.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) 1) (neg.f64 (tan.f64 x))) 0)
32.2b
(+.f64 (+.f64 eps (+.f64 (/.f64 (pow.f64 eps 3) (pow.f64 (/.f64 (cos.f64 x) (sin.f64 x)) 4)) (fma.f64 5/3 (/.f64 (pow.f64 eps 4) (pow.f64 (/.f64 (cos.f64 x) (sin.f64 x)) 3)) (fma.f64 (/.f64 (pow.f64 eps 4) (pow.f64 (cos.f64 x) 5)) (pow.f64 (sin.f64 x) 5) (fma.f64 4/3 (/.f64 (*.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 eps 3)) (pow.f64 (cos.f64 x) 2)) (fma.f64 eps (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) (fma.f64 1/3 (pow.f64 eps 3) (*.f64 2/3 (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 eps 4)))))))))) (*.f64 (/.f64 (*.f64 eps eps) (cos.f64 x)) (+.f64 (sin.f64 x) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 2)))))
20.8b
(+.f64 (fma.f64 (/.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (-.f64 1 (/.f64 (*.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (sin.f64 eps) 3)) (*.f64 (pow.f64 (cos.f64 eps) 3) (pow.f64 (cos.f64 x) 3))))) (fma.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) 1) (neg.f64 (tan.f64 x))) 0)
20.7b
(/.f64 (fma.f64 (sin.f64 x) (+.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) -1) (*.f64 (cos.f64 x) (+.f64 (tan.f64 x) (tan.f64 eps)))) (*.f64 (cos.f64 x) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))))
20.6b
(+.f64 (fma.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (pow.f64 (tan.f64 x) 3) (pow.f64 (tan.f64 eps) 3)))) (fma.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) 1) (neg.f64 (tan.f64 x))) 0)
32.1b
(+.f64 (+.f64 (/.f64 (pow.f64 eps 3) (pow.f64 (/.f64 (cos.f64 x) (sin.f64 x)) 4)) (+.f64 (fma.f64 4/3 (/.f64 (*.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 eps 3)) (pow.f64 (cos.f64 x) 2)) (*.f64 1/3 (pow.f64 eps 3))) (fma.f64 eps (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) eps))) (*.f64 (/.f64 (*.f64 eps eps) (cos.f64 x)) (+.f64 (sin.f64 x) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 2)))))
20.6b
(fma.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (neg.f64 (tan.f64 x)))
21.2b
(-.f64 (/.f64 (log1p.f64 (expm1.f64 (+.f64 (tan.f64 x) (tan.f64 eps)))) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (tan.f64 x))
20.6b
(+.f64 (fma.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 3))) (fma.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (tan.f64 x) (tan.f64 x)) (tan.f64 x)) (*.f64 (*.f64 (tan.f64 eps) (tan.f64 eps)) (tan.f64 eps)))) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) 1) (neg.f64 (tan.f64 x))) 0)
Compiler

Compiled 12575 to 5299 computations (57.9% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (tan.f64 x) (tan.f64 eps))
0.3b
(pow.f64 (tan.f64 x) 3)
0.3b
(pow.f64 (tan.f64 eps) 3)
3.8b
(fma.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (pow.f64 (tan.f64 x) 3) (pow.f64 (tan.f64 eps) 3)))) (fma.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) 1) (neg.f64 (tan.f64 x)))

series422.0ms (3.6%)

Counts
3 → 48
Calls

3 calls:

394.0ms
(fma.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (pow.f64 (tan.f64 x) 3) (pow.f64 (tan.f64 eps) 3)))) (fma.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) 1) (neg.f64 (tan.f64 x)))
14.0ms
(pow.f64 (tan.f64 eps) 3)
13.0ms
(pow.f64 (tan.f64 x) 3)

rewrite6.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
cube-prod_binary64
pow-unpow_binary64
Counts
3 → 62
Calls

3 calls:

2.0ms
(pow.f64 (tan.f64 eps) 3)
2.0ms
(pow.f64 (tan.f64 x) 3)
0.0ms
(fma.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (pow.f64 (tan.f64 x) 3) (pow.f64 (tan.f64 eps) 3)))) (fma.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) 1) (neg.f64 (tan.f64 x)))

simplify167.0ms (1.4%)

Algorithm
egg-herbie
Rules
811×fma-def_binary64
176×times-frac_binary64
173×exp-prod_binary64
164×log-prod_binary64
162×associate-*r*_binary64
Counts
110 → 97
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02277747
16147504
226306491
347136491
449226491

prune254.0ms (2.2%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New1410141
Fresh099
Picked011
Done000
Total14110151
Error
0.1b
Counts
151 → 10
Alt Table
StatusErrorProgram
20.8b
(-.f64 (/.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (cos.f64 x))))) (tan.f64 x))
20.6b
(+.f64 (fma.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (cbrt.f64 (pow.f64 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 3) 3)))) (fma.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) 1) (neg.f64 (tan.f64 x))) 0)
32.2b
(+.f64 (+.f64 eps (+.f64 (/.f64 (pow.f64 eps 3) (pow.f64 (/.f64 (cos.f64 x) (sin.f64 x)) 4)) (fma.f64 5/3 (/.f64 (pow.f64 eps 4) (pow.f64 (/.f64 (cos.f64 x) (sin.f64 x)) 3)) (fma.f64 (/.f64 (pow.f64 eps 4) (pow.f64 (cos.f64 x) 5)) (pow.f64 (sin.f64 x) 5) (fma.f64 4/3 (/.f64 (*.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 eps 3)) (pow.f64 (cos.f64 x) 2)) (fma.f64 eps (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) (fma.f64 1/3 (pow.f64 eps 3) (*.f64 2/3 (*.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (pow.f64 eps 4)))))))))) (*.f64 (/.f64 (*.f64 eps eps) (cos.f64 x)) (+.f64 (sin.f64 x) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 2)))))
20.8b
(+.f64 (fma.f64 (/.f64 (+.f64 (/.f64 (sin.f64 x) (cos.f64 x)) (/.f64 (sin.f64 eps) (cos.f64 eps))) (-.f64 1 (/.f64 (*.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (sin.f64 eps) 3)) (*.f64 (pow.f64 (cos.f64 eps) 3) (pow.f64 (cos.f64 x) 3))))) (fma.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) 1) (neg.f64 (tan.f64 x))) 0)
20.7b
(/.f64 (fma.f64 (sin.f64 x) (+.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) -1) (*.f64 (cos.f64 x) (+.f64 (tan.f64 x) (tan.f64 eps)))) (*.f64 (cos.f64 x) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))))
20.6b
(+.f64 (fma.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (pow.f64 (tan.f64 x) 3) (pow.f64 (tan.f64 eps) 3)))) (fma.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) 1) (neg.f64 (tan.f64 x))) 0)
32.1b
(+.f64 (+.f64 (/.f64 (pow.f64 eps 3) (pow.f64 (/.f64 (cos.f64 x) (sin.f64 x)) 4)) (+.f64 (fma.f64 4/3 (/.f64 (*.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 eps 3)) (pow.f64 (cos.f64 x) 2)) (*.f64 1/3 (pow.f64 eps 3))) (fma.f64 eps (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2)) eps))) (*.f64 (/.f64 (*.f64 eps eps) (cos.f64 x)) (+.f64 (sin.f64 x) (/.f64 (pow.f64 (sin.f64 x) 3) (pow.f64 (cos.f64 x) 2)))))
20.6b
(fma.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (neg.f64 (tan.f64 x)))
21.2b
(-.f64 (/.f64 (log1p.f64 (expm1.f64 (+.f64 (tan.f64 x) (tan.f64 eps)))) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (tan.f64 x))
20.6b
(+.f64 (fma.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 3))) (fma.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (tan.f64 x) (tan.f64 x)) (tan.f64 x)) (*.f64 (*.f64 (tan.f64 eps) (tan.f64 eps)) (tan.f64 eps)))) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) 1) (neg.f64 (tan.f64 x))) 0)
Compiler

Compiled 7057 to 3345 computations (52.6% saved)

regimes2.4s (20.9%)

Accuracy

Total 0.2b remaining (53.8%)

Threshold costs 0.2b (53.8%)

Counts
223 → 3
Compiler

Compiled 21768 to 12227 computations (43.8% saved)

bsearch98.0ms (0.8%)

Steps
ItersRangePoint
9
5.222365317166374e-13
1.9637915449143233e-6
1.923034667284573e-6
9
-55655.67173154163
-5.951511235245345e-5
-0.00018896478073308958
Compiler

Compiled 3 to 2 computations (33.3% saved)

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Rules
15×+-commutative_binary64
12×*-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
072250
197250
2114250
3125250
4132250
5134250
6133250

end343.0ms (2.9%)

Compiler

Compiled 776 to 447 computations (42.4% saved)

Profiling

Loading profile data...