Details

Time bar (total: 7.2s)

analyze1.0ms (0%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
99.9%0%0.1%1
Compiler

Compiled 10 to 7 computations (30% saved)

sample5.0s (69.7%)

Results
2.3s3593×body1024valid
1.7s1294×body2048valid
591.0ms1459×body512valid
207.0ms1317×body128valid
157.0ms590×body256valid
9.0msbody4096valid
Compiler

Compiled 29 to 20 computations (31% saved)

simplify9.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
11011
21511
32211
43111
54811
68611
712411
817211
920811
1023411
1123611
Stop Event
saturated
Counts
1 → 1

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 (sin.f64 (+.f64 x eps)) (sin.f64 x))
Compiler

Compiled 27 to 18 computations (33.3% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
1.3b
(-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))
3.6b
(sin.f64 (+.f64 x eps))

series10.0ms (0.1%)

Counts
2 → 48
Calls

2 calls:

5.0ms
(-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))
4.0ms
(sin.f64 (+.f64 x eps))

rewrite57.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
464×fma-def_binary64
445×log-prod_binary64
214×fma-neg_binary64
179×expm1-udef_binary64
179×log1p-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0717
117317
2269217
Stop Event
node limit
Counts
2 → 151
Calls

2 calls:

52.0ms
(-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))
52.0ms
(sin.f64 (+.f64 x eps))

simplify32.0ms (0.4%)

Algorithm
egg-herbie
Rules
730×fma-neg_binary64
266×cancel-sign-sub-inv_binary64
264×associate-+l-_binary64
245×distribute-rgt-neg-in_binary64
243×sub-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
053602
1172587
2566572
32209569
Stop Event
node limit
Counts
199 → 180

prune130.0ms (1.8%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1719180
Fresh000
Picked101
Done000
Total1729181
Error
0.1b
Counts
181 → 9
Alt Table
StatusErrorProgram
24.5b
(+.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))
24.5b
(-.f64 (+.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
32.3b
(-.f64 (log.f64 (*.f64 (exp.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (exp.f64 (*.f64 (sin.f64 x) (cos.f64 eps))))) (sin.f64 x))
25.2b
(fma.f64 (*.f64 (cbrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (cbrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps)))) (cbrt.f64 (*.f64 (sin.f64 x) (cos.f64 eps))) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))
24.5b
(fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))
43.3b
(fma.f64 (sqrt.f64 (sin.f64 x)) (*.f64 (sqrt.f64 (sin.f64 x)) (cos.f64 eps)) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))
29.4b
(-.f64 (*.f64 eps (cos.f64 x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
29.8b
(-.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) 3) (pow.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) 3)) (fma.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps)) (-.f64 (*.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 x) (sin.f64 eps))) (*.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (*.f64 (cos.f64 x) (sin.f64 eps)))))) (sin.f64 x))
25.1b
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (*.f64 (cbrt.f64 (sin.f64 x)) (cos.f64 eps)) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))
Compiler

Compiled 3639 to 1150 computations (68.4% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(cos.f64 x)
0.1b
(fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))
2.4b
(fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))

series29.0ms (0.4%)

Counts
3 → 52
Calls

3 calls:

16.0ms
(fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))
11.0ms
(fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))
1.0ms
(cos.f64 x)

rewrite80.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
826×log1p-expm1-u_binary64
826×expm1-log1p-u_binary64
285×prod-diff_binary64
197×egg-rr
104×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01037
119933
2245833
Stop Event
node limit
Counts
3 → 197
Calls

3 calls:

75.0ms
(cos.f64 x)
75.0ms
(fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x)))
75.0ms
(fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))

simplify40.0ms (0.6%)

Algorithm
egg-herbie
Rules
936×fma-neg_binary64
320×distribute-rgt-neg-in_binary64
309×distribute-lft-neg-in_binary64
297×sub-neg_binary64
294×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
084918
1247892
2728845
32849834
Stop Event
node limit
Counts
249 → 237

prune174.0ms (2.4%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New2343237
Fresh268
Picked101
Done000
Total2379246
Error
0.1b
Counts
246 → 9
Alt Table
StatusErrorProgram
24.5b
(+.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))
24.5b
(-.f64 (+.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
32.3b
(-.f64 (log.f64 (*.f64 (exp.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) (exp.f64 (*.f64 (sin.f64 x) (cos.f64 eps))))) (sin.f64 x))
43.3b
(fma.f64 (sqrt.f64 (sin.f64 x)) (*.f64 (sqrt.f64 (sin.f64 x)) (cos.f64 eps)) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))
24.5b
(fma.f64 (sin.f64 x) (cos.f64 eps) (fma.f64 (-.f64 (exp.f64 (log1p.f64 (cos.f64 x))) 1) (sin.f64 eps) (neg.f64 (sin.f64 x))))
27.4b
(fma.f64 (sin.f64 x) (cos.f64 eps) (/.f64 (-.f64 (*.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (*.f64 (cos.f64 x) (sin.f64 eps))) (pow.f64 (sin.f64 x) 2)) (fma.f64 (cos.f64 x) (sin.f64 eps) (sin.f64 x))))
29.4b
(-.f64 (*.f64 eps (cos.f64 x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
25.1b
(fma.f64 (pow.f64 (cbrt.f64 (sin.f64 x)) 2) (*.f64 (cbrt.f64 (sin.f64 x)) (cos.f64 eps)) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))
0.3b
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
Compiler

Compiled 6685 to 1964 computations (70.6% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(cos.f64 x)
0.1b
(*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1))
0.1b
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
1.3b
(+.f64 (cos.f64 eps) -1)

series28.0ms (0.4%)

Counts
3 → 60
Calls

3 calls:

16.0ms
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
10.0ms
(*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1))
2.0ms
(+.f64 (cos.f64 eps) -1)

rewrite55.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
485×prod-diff_binary64
209×expm1-udef_binary64
209×log1p-udef_binary64
189×fma-def_binary64
146×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01136
122736
2292730
Stop Event
node limit
Counts
3 → 113
Calls

3 calls:

53.0ms
(*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1))
53.0ms
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
53.0ms
(+.f64 (cos.f64 eps) -1)

simplify48.0ms (0.7%)

Algorithm
egg-herbie
Rules
630×fma-def_binary64
575×sub-neg_binary64
424×cancel-sign-sub-inv_binary64
273×associate-*l*_binary64
257×associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01061102
13271032
21070986
34767986
Stop Event
node limit
Counts
173 → 157

prune233.0ms (3.2%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New17111182
Fresh628
Picked101
Done000
Total17813191
Error
0.0b
Counts
191 → 13
Alt Table
StatusErrorProgram
0.3b
(fma.f64 (sin.f64 eps) (cos.f64 x) (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (neg.f64 (sin.f64 x))))
0.4b
(fma.f64 (sin.f64 eps) (*.f64 (cbrt.f64 (pow.f64 (cos.f64 x) 2)) (cbrt.f64 (cos.f64 x))) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
0.3b
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (*.f64 (+.f64 -1 (pow.f64 (cos.f64 eps) 3)) (/.f64 1 (+.f64 (pow.f64 (cos.f64 eps) 2) (-.f64 1 (*.f64 (cos.f64 eps) -1)))))))
29.4b
(-.f64 (*.f64 eps (cos.f64 x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
13.9b
(fma.f64 (sin.f64 eps) (pow.f64 (sqrt.f64 (cos.f64 x)) 2) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
0.3b
(fma.f64 (sin.f64 eps) (cos.f64 x) (cbrt.f64 (pow.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)) 3)))
0.4b
(fma.f64 (sin.f64 eps) (log.f64 (exp.f64 (cos.f64 x))) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
0.3b
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
0.3b
(fma.f64 (sin.f64 eps) (expm1.f64 (log1p.f64 (cos.f64 x))) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
0.3b
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (cbrt.f64 (pow.f64 (+.f64 (cos.f64 eps) -1) 3))))
24.5b
(-.f64 (+.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
0.3b
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (*.f64 (neg.f64 (pow.f64 (sin.f64 eps) 2)) (/.f64 1 (+.f64 (cos.f64 eps) 1)))))
0.4b
(fma.f64 (sin.f64 eps) (cbrt.f64 (pow.f64 (cos.f64 x) 3)) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
Compiler

Compiled 3808 to 1723 computations (54.8% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(cos.f64 x)
0.1b
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
0.1b
(*.f64 (cos.f64 x) (sin.f64 eps))
1.3b
(+.f64 (cos.f64 eps) -1)

series25.0ms (0.4%)

Counts
2 → 40
Calls

2 calls:

17.0ms
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
8.0ms
(*.f64 (cos.f64 x) (sin.f64 eps))

rewrite44.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
512×log-prod_binary64
323×prod-diff_binary64
205×expm1-udef_binary64
205×log1p-udef_binary64
182×log-pow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01127
122127
2271827
Stop Event
node limit
Counts
2 → 48
Calls

2 calls:

43.0ms
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
43.0ms
(*.f64 (cos.f64 x) (sin.f64 eps))

simplify35.0ms (0.5%)

Algorithm
egg-herbie
Rules
370×distribute-rgt-neg-in_binary64
363×distribute-lft-neg-in_binary64
332×fma-def_binary64
293×sub-neg_binary64
282×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
079782
1245752
2788692
33188686
Stop Event
node limit
Counts
88 → 78

prune221.0ms (3.1%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New1462148
Fresh11112
Picked011
Done000
Total14714161
Error
0.0b
Counts
161 → 14
Alt Table
StatusErrorProgram
0.3b
(fma.f64 (sin.f64 eps) (cos.f64 x) (+.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) (neg.f64 (sin.f64 x))))
0.4b
(fma.f64 (sin.f64 eps) (*.f64 (cbrt.f64 (pow.f64 (cos.f64 x) 2)) (cbrt.f64 (cos.f64 x))) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
0.3b
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (*.f64 (+.f64 -1 (pow.f64 (cos.f64 eps) 3)) (/.f64 1 (+.f64 (pow.f64 (cos.f64 eps) 2) (-.f64 1 (*.f64 (cos.f64 eps) -1)))))))
29.4b
(-.f64 (*.f64 eps (cos.f64 x)) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 eps 3) (cos.f64 x))) (*.f64 1/2 (*.f64 (pow.f64 eps 2) (sin.f64 x)))))
13.9b
(fma.f64 (sin.f64 eps) (pow.f64 (sqrt.f64 (cos.f64 x)) 2) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
0.3b
(fma.f64 (sin.f64 eps) (cos.f64 x) (cbrt.f64 (pow.f64 (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)) 3)))
0.4b
(fma.f64 (sin.f64 eps) (log.f64 (exp.f64 (cos.f64 x))) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
0.3b
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))
0.3b
(fma.f64 (sin.f64 eps) (expm1.f64 (log1p.f64 (cos.f64 x))) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
0.3b
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (cbrt.f64 (pow.f64 (+.f64 (cos.f64 eps) -1) 3))))
1.4b
(fma.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 x) (sin.f64 eps))) 3))
18.0b
(*.f64 (cbrt.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x)))) (cbrt.f64 (pow.f64 (fma.f64 (cos.f64 x) (sin.f64 eps) (*.f64 (+.f64 (cos.f64 eps) -1) (sin.f64 x))) 2)))
0.3b
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (*.f64 (neg.f64 (pow.f64 (sin.f64 eps) 2)) (/.f64 1 (+.f64 (cos.f64 eps) 1)))))
0.4b
(fma.f64 (sin.f64 eps) (cbrt.f64 (pow.f64 (cos.f64 x) 3)) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
Compiler

Compiled 3029 to 1438 computations (52.5% saved)

regimes653.0ms (9.1%)

Accuracy

Total 0.3b remaining (82.7%)

Threshold costs 0.3b (82.7%)

Counts
205 → 1
Compiler

Compiled 10276 to 7023 computations (31.7% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01323
11523
Stop Event
saturated

end236.0ms (3.3%)

Compiler

Compiled 307 to 222 computations (27.7% saved)

Profiling

Loading profile data...