Details

Time bar (total: 14.4s)

analyze1.2s (8.4%)

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)

sample3.8s (26.2%)

Results
1.7s3632×body1024valid
1.0s1241×body2048valid
579.0ms1399×body512valid
257.0ms1376×body128valid
143.0ms605×body256valid
4.0msbody4096valid
Compiler

Compiled 29 to 20 computations (31% saved)

simplify13.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
38.8b
Counts
2 → 1
Alt Table
StatusErrorProgram
38.8b
(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x))
Compiler

Compiled 27 to 18 computations (33.3% saved)

localize6.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
1.5b
(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x))
2.7b
(tan.f64 (+.f64 x eps))

series68.0ms (0.5%)

Counts
2 → 48
Calls

2 calls:

43.0ms
(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x))
26.0ms
(tan.f64 (+.f64 x eps))

rewrite112.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
883×prod-diff_binary64
412×fma-def_binary64
215×fma-neg_binary64
170×expm1-udef_binary64
170×log1p-udef_binary64
Counts
2 → 115
Calls

2 calls:

109.0ms
(-.f64 (tan.f64 (+.f64 x eps)) (tan.f64 x))
109.0ms
(tan.f64 (+.f64 x eps))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0717
116917
2243017
3485317
4498917
5498917
000
100

simplify49.0ms (0.3%)

Algorithm
egg-herbie
Rules
909×times-frac_binary64
730×fma-def_binary64
605×associate-/l*_binary64
330×associate-/r*_binary64
192×associate-+r+_binary64
Counts
163 → 145
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01281638
13631636
213621545
350211545

prune139.0ms (1%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1369145
Fresh000
Picked101
Done000
Total1379146
Error
0.2b
Counts
146 → 9
Alt Table
StatusErrorProgram
22.3b
(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)))
22.4b
(-.f64 (*.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps))))) (tan.f64 x))
32.9b
(+.f64 (+.f64 eps (fma.f64 (/.f64 (pow.f64 eps 3) (pow.f64 (cos.f64 x) 4)) (pow.f64 (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)))))
22.6b
(+.f64 (fma.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (neg.f64 (*.f64 (/.f64 1 (cos.f64 x)) (sin.f64 x)))) (fma.f64 (neg.f64 (/.f64 1 (cos.f64 x))) (sin.f64 x) (*.f64 (/.f64 1 (cos.f64 x)) (sin.f64 x))))
33.0b
(+.f64 (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)))))
33.0b
(+.f64 (/.f64 (*.f64 (pow.f64 eps 2) (pow.f64 (sin.f64 x) 3)) (pow.f64 (cos.f64 x) 3)) (+.f64 (/.f64 (*.f64 (pow.f64 eps 2) (sin.f64 x)) (cos.f64 x)) (+.f64 eps (/.f64 (*.f64 eps (pow.f64 (sin.f64 x) 2)) (pow.f64 (cos.f64 x) 2)))))
22.5b
(-.f64 (/.f64 1 (/.f64 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps))) (+.f64 (tan.f64 x) (tan.f64 eps)))) (tan.f64 x))
32.6b
(*.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))))
22.5b
(/.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 4061 to 1686 computations (58.5% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))
0.1b
(+.f64 (tan.f64 x) (tan.f64 eps))
0.2b
(*.f64 (tan.f64 x) (tan.f64 eps))
2.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)))

series229.0ms (1.6%)

Counts
4 → 96
Calls

4 calls:

137.0ms
(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)))
33.0ms
(-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))
32.0ms
(*.f64 (tan.f64 x) (tan.f64 eps))
27.0ms
(+.f64 (tan.f64 x) (tan.f64 eps))

rewrite107.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
332×fma-def_binary64
218×expm1-udef_binary64
218×log1p-udef_binary64
192×egg-rr
191×log-pow_binary64
Counts
4 → 192
Calls

4 calls:

103.0ms
(-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))
103.0ms
(+.f64 (tan.f64 x) (tan.f64 eps))
103.0ms
(*.f64 (tan.f64 x) (tan.f64 eps))
103.0ms
(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)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01256
126553
2308049
3500049
4496649
000
100

simplify79.0ms (0.5%)

Algorithm
egg-herbie
Rules
745×associate-/l*_binary64
671×fma-def_binary64
424×associate-/r*_binary64
170×associate-/r/_binary64
136×unswap-sqr_binary64
Counts
288 → 254
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01693294
14923274
216413223
350303223

prune291.0ms (2%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2486254
Fresh178
Picked101
Done000
Total25013263
Error
0.1b
Counts
263 → 13
Alt Table
StatusErrorProgram
32.9b
(+.f64 (+.f64 eps (fma.f64 (/.f64 (pow.f64 eps 3) (pow.f64 (cos.f64 x) 4)) (pow.f64 (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)))))
22.4b
(fma.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (+.f64 (/.f64 1 (fma.f64 (tan.f64 x) (tan.f64 eps) 1)) (neg.f64 (/.f64 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 2) (fma.f64 (tan.f64 x) (tan.f64 eps) 1))))) (neg.f64 (tan.f64 x)))
22.6b
(fma.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (log.f64 (pow.f64 (exp.f64 (tan.f64 x)) (tan.f64 eps))))) (neg.f64 (tan.f64 x)))
22.6b
(+.f64 (fma.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (neg.f64 (*.f64 (/.f64 1 (cos.f64 x)) (sin.f64 x)))) (fma.f64 (neg.f64 (/.f64 1 (cos.f64 x))) (sin.f64 x) (*.f64 (/.f64 1 (cos.f64 x)) (sin.f64 x))))
24.8b
(fma.f64 (/.f64 1 (/.f64 (-.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 (pow.f64 (tan.f64 x) 2) (pow.f64 (tan.f64 eps) 2)))) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (neg.f64 (tan.f64 x)))
33.0b
(+.f64 (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)))))
33.0b
(+.f64 (/.f64 (*.f64 (pow.f64 eps 2) (pow.f64 (sin.f64 x) 3)) (pow.f64 (cos.f64 x) 3)) (+.f64 (/.f64 (*.f64 (pow.f64 eps 2) (sin.f64 x)) (cos.f64 x)) (+.f64 eps (/.f64 (*.f64 eps (pow.f64 (sin.f64 x) 2)) (pow.f64 (cos.f64 x) 2)))))
32.6b
(*.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))))
24.8b
(fma.f64 (-.f64 (/.f64 (pow.f64 (tan.f64 x) 2) (-.f64 (tan.f64 x) (tan.f64 eps))) (/.f64 (pow.f64 (tan.f64 eps) 2) (-.f64 (tan.f64 x) (tan.f64 eps)))) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (neg.f64 (tan.f64 x)))
22.5b
(-.f64 (+.f64 (/.f64 (sin.f64 x) (*.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (cos.f64 x)))) (cos.f64 x))) (/.f64 (sin.f64 eps) (*.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (cos.f64 x)))) (cos.f64 eps)))) (/.f64 (sin.f64 x) (cos.f64 x)))
23.1b
(fma.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (log1p.f64 (expm1.f64 (*.f64 (tan.f64 x) (tan.f64 eps)))))) (neg.f64 (tan.f64 x)))
22.4b
(-.f64 (*.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps))))) (tan.f64 x))
22.5b
(/.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 7870 to 3251 computations (58.7% saved)

localize10.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 1 (*.f64 (tan.f64 x) (tan.f64 eps)))))
0.2b
(*.f64 (tan.f64 x) (tan.f64 eps))
2.6b
(-.f64 (*.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps))))) (tan.f64 x))

series316.0ms (2.2%)

Counts
2 → 48
Calls

2 calls:

202.0ms
(-.f64 (*.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps))))) (tan.f64 x))
114.0ms
(*.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))))

rewrite92.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
538×fma-def_binary64
279×fma-neg_binary64
251×expm1-udef_binary64
250×log1p-udef_binary64
164×egg-rr
Counts
2 → 164
Calls

2 calls:

87.0ms
(*.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))))
87.0ms
(-.f64 (*.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps))))) (tan.f64 x))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01247
127747
2369947
3523947
000
100

simplify70.0ms (0.5%)

Algorithm
egg-herbie
Rules
932×times-frac_binary64
724×fma-def_binary64
630×associate-/l*_binary64
352×associate-/r*_binary64
188×associate-+r+_binary64
Counts
212 → 196
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01332870
13872856
214272777
352322777

prune408.0ms (2.8%)

Pruning

15 alts after pruning (14 fresh and 1 done)

PrunedKeptTotal
New3183321
Fresh11112
Picked011
Done000
Total31915334
Error
0.1b
Counts
334 → 15
Alt Table
StatusErrorProgram
32.9b
(+.f64 (+.f64 eps (fma.f64 (/.f64 (pow.f64 eps 3) (pow.f64 (cos.f64 x) 4)) (pow.f64 (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)))))
22.4b
(fma.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (+.f64 (/.f64 1 (fma.f64 (tan.f64 x) (tan.f64 eps) 1)) (neg.f64 (/.f64 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 2) (fma.f64 (tan.f64 x) (tan.f64 eps) 1))))) (neg.f64 (tan.f64 x)))
22.6b
(fma.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (log.f64 (pow.f64 (exp.f64 (tan.f64 x)) (tan.f64 eps))))) (neg.f64 (tan.f64 x)))
22.6b
(+.f64 (fma.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (neg.f64 (*.f64 (/.f64 1 (cos.f64 x)) (sin.f64 x)))) (fma.f64 (neg.f64 (/.f64 1 (cos.f64 x))) (sin.f64 x) (*.f64 (/.f64 1 (cos.f64 x)) (sin.f64 x))))
24.8b
(fma.f64 (/.f64 1 (/.f64 (-.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 (pow.f64 (tan.f64 x) 2) (pow.f64 (tan.f64 eps) 2)))) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (neg.f64 (tan.f64 x)))
32.6b
(*.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))))
24.8b
(/.f64 1 (/.f64 (+.f64 (tan.f64 x) (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps))))) (-.f64 (pow.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) 2) (pow.f64 (tan.f64 x) 2))))
33.0b
(+.f64 (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)))))
33.0b
(+.f64 (/.f64 (*.f64 (pow.f64 eps 2) (pow.f64 (sin.f64 x) 3)) (pow.f64 (cos.f64 x) 3)) (+.f64 (/.f64 (*.f64 (pow.f64 eps 2) (sin.f64 x)) (cos.f64 x)) (+.f64 eps (/.f64 (*.f64 eps (pow.f64 (sin.f64 x) 2)) (pow.f64 (cos.f64 x) 2)))))
24.8b
(fma.f64 (-.f64 (/.f64 (pow.f64 (tan.f64 x) 2) (-.f64 (tan.f64 x) (tan.f64 eps))) (/.f64 (pow.f64 (tan.f64 eps) 2) (-.f64 (tan.f64 x) (tan.f64 eps)))) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (neg.f64 (tan.f64 x)))
22.5b
(-.f64 (+.f64 (/.f64 (sin.f64 x) (*.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (cos.f64 x)))) (cos.f64 x))) (/.f64 (sin.f64 eps) (*.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (cos.f64 x)))) (cos.f64 eps)))) (/.f64 (sin.f64 x) (cos.f64 x)))
22.4b
(fma.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 2))) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) (neg.f64 (tan.f64 x)))
23.5b
(fma.f64 (pow.f64 (cbrt.f64 (+.f64 (tan.f64 x) (tan.f64 eps))) 2) (*.f64 (cbrt.f64 (+.f64 (tan.f64 x) (tan.f64 eps))) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps))))) (neg.f64 (tan.f64 x)))
22.4b
(-.f64 (*.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps))))) (tan.f64 x))
22.5b
(/.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 10621 to 4367 computations (58.9% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series469.0ms (3.2%)

Counts
2 → 48
Calls

2 calls:

417.0ms
(fma.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 2))) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) (neg.f64 (tan.f64 x)))
51.0ms
(pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 2)

rewrite74.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
482×fma-def_binary64
263×expm1-udef_binary64
263×log1p-udef_binary64
240×fma-neg_binary64
162×add-sqr-sqrt_binary64
Counts
2 → 65
Calls

2 calls:

71.0ms
(pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 2)
71.0ms
(fma.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 2))) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) (neg.f64 (tan.f64 x)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01551
133049
2379949
3519649
000
100

simplify144.0ms (1%)

Algorithm
egg-herbie
Rules
732×fma-def_binary64
663×associate-/r*_binary64
226×associate-*l/_binary64
225×associate-/r/_binary64
195×unswap-sqr_binary64
Counts
113 → 102
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01745016
14874944
218594255
349784255
449924255
549774255

prune323.0ms (2.2%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2261227
Fresh11213
Picked101
Done101
Total22913242
Error
0.1b
Counts
242 → 13
Alt Table
StatusErrorProgram
32.9b
(+.f64 (+.f64 eps (fma.f64 (/.f64 (pow.f64 eps 3) (pow.f64 (cos.f64 x) 4)) (pow.f64 (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)))))
22.4b
(fma.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (+.f64 (/.f64 1 (fma.f64 (tan.f64 x) (tan.f64 eps) 1)) (neg.f64 (/.f64 (pow.f64 (*.f64 (tan.f64 x) (tan.f64 eps)) 2) (fma.f64 (tan.f64 x) (tan.f64 eps) 1))))) (neg.f64 (tan.f64 x)))
22.6b
(+.f64 (fma.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (neg.f64 (*.f64 (/.f64 1 (cos.f64 x)) (sin.f64 x)))) (fma.f64 (neg.f64 (/.f64 1 (cos.f64 x))) (sin.f64 x) (*.f64 (/.f64 1 (cos.f64 x)) (sin.f64 x))))
24.8b
(fma.f64 (/.f64 1 (/.f64 (-.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 (pow.f64 (tan.f64 x) 2) (pow.f64 (tan.f64 eps) 2)))) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (neg.f64 (tan.f64 x)))
32.6b
(*.f64 eps (+.f64 1 (/.f64 (pow.f64 (sin.f64 x) 2) (pow.f64 (cos.f64 x) 2))))
24.8b
(/.f64 1 (/.f64 (+.f64 (tan.f64 x) (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps))))) (-.f64 (pow.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) 2) (pow.f64 (tan.f64 x) 2))))
23.5b
(fma.f64 (pow.f64 (cbrt.f64 (+.f64 (tan.f64 x) (tan.f64 eps))) 2) (*.f64 (cbrt.f64 (+.f64 (tan.f64 x) (tan.f64 eps))) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps))))) (neg.f64 (tan.f64 x)))
22.3b
(fma.f64 (/.f64 (+.f64 (tan.f64 x) (tan.f64 eps)) (-.f64 1 (*.f64 (pow.f64 (tan.f64 x) 2) (pow.f64 (tan.f64 eps) 2)))) (fma.f64 (tan.f64 x) (tan.f64 eps) 1) (neg.f64 (tan.f64 x)))
33.0b
(+.f64 (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)))))
33.0b
(+.f64 (/.f64 (*.f64 (pow.f64 eps 2) (pow.f64 (sin.f64 x) 3)) (pow.f64 (cos.f64 x) 3)) (+.f64 (/.f64 (*.f64 (pow.f64 eps 2) (sin.f64 x)) (cos.f64 x)) (+.f64 eps (/.f64 (*.f64 eps (pow.f64 (sin.f64 x) 2)) (pow.f64 (cos.f64 x) 2)))))
24.8b
(fma.f64 (-.f64 (/.f64 (pow.f64 (tan.f64 x) 2) (-.f64 (tan.f64 x) (tan.f64 eps))) (/.f64 (pow.f64 (tan.f64 eps) 2) (-.f64 (tan.f64 x) (tan.f64 eps)))) (/.f64 1 (-.f64 1 (*.f64 (tan.f64 x) (tan.f64 eps)))) (neg.f64 (tan.f64 x)))
22.5b
(-.f64 (+.f64 (/.f64 (sin.f64 x) (*.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (cos.f64 x)))) (cos.f64 x))) (/.f64 (sin.f64 eps) (*.f64 (-.f64 1 (/.f64 (*.f64 (sin.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 eps) (cos.f64 x)))) (cos.f64 eps)))) (/.f64 (sin.f64 x) (cos.f64 x)))
22.5b
(/.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 8916 to 3879 computations (56.5% saved)

regimes5.4s (37.7%)

Accuracy

Total 0.6b remaining (85.6%)

Threshold costs 0.6b (85.6%)

Counts
376 → 3
Compiler

Compiled 28230 to 17178 computations (39.1% saved)

bsearch181.0ms (1.3%)

Steps
ItersRangePoint
8
5.459498802287287e-30
3.004738242384428e-26
2.941971583774042e-26
9
-0.0019398058595436693
-7.897087120918734e-13
-0.00022498455180266905
Compiler

Compiled 3 to 2 computations (33.3% saved)

simplify22.0ms (0.2%)

Algorithm
egg-herbie
Rules
14×+-commutative_binary64
13×*-commutative_binary64
10×sub-neg_binary64
distribute-rgt-neg-in_binary64
neg-sub0_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
074266
1102266
2121266
3136266
4142266
5143266
6142266

end749.0ms (5.2%)

Compiler

Compiled 862 to 494 computations (42.7% saved)

Profiling

Loading profile data...