Details

Time bar (total: 6.1s)

analyze2.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)

sample135.0ms (2.2%)

Algorithm
intervals
Results
52.0ms107×body1024valid
37.0ms38×body2048valid
12.0ms45×body512valid
4.0ms53×body128valid
2.0ms13×body256valid
Compiler

Compiled 21 to 15 computations (28.6% saved)

simplify11.0ms (0.2%)

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
33.8b
Counts
2 → 1
Alt Table
StatusErrorProgram
33.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.6b
(-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))
3.4b
(sin.f64 (+.f64 x eps))

series14.0ms (0.2%)

Counts
2 → 48
Calls

2 calls:

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

rewrite10.0ms (0.2%)

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 → 42
Calls

2 calls:

6.0ms
(-.f64 (sin.f64 (+.f64 x eps)) (sin.f64 x))
3.0ms
(sin.f64 (+.f64 x eps))

simplify93.0ms (1.5%)

Algorithm
egg-herbie
Rules
639×fma-neg_binary64
483×fma-def_binary64
351×cancel-sign-sub-inv_binary64
291×sub-neg_binary64
284×associate-+l-_binary64
Counts
90 → 92
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01281256
12971180
29601116
324261108
447761108
549531108
648391108

prune69.0ms (1.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New89392
Fresh000
Picked101
Done000
Total90393
Error
0.2b
Counts
93 → 3
Alt Table
StatusErrorProgram
20.3b
(+.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))
20.3b
(-.f64 (+.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (*.f64 (cos.f64 x) (sin.f64 eps))) (sin.f64 x))
31.3b
(+.f64 (*.f64 (cos.f64 x) (+.f64 eps (*.f64 (pow.f64 eps 3) -1/6))) (*.f64 (sin.f64 x) (-.f64 (*.f64 1/24 (pow.f64 eps 4)) (*.f64 1/2 (*.f64 eps eps)))))
Compiler

Compiled 1671 to 515 computations (69.2% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x))
0.1b
(*.f64 (cos.f64 x) (sin.f64 eps))
0.2b
(*.f64 (sin.f64 x) (cos.f64 eps))
2.6b
(+.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))

series49.0ms (0.8%)

Counts
4 → 64
Calls

4 calls:

18.0ms
(+.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))
12.0ms
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x))
9.0ms
(*.f64 (sin.f64 x) (cos.f64 eps))
9.0ms
(*.f64 (cos.f64 x) (sin.f64 eps))

rewrite23.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
16×add-sqr-sqrt_binary64
12×*-un-lft-identity_binary64
12×add-cube-cbrt_binary64
11×add-log-exp_binary64
add-cbrt-cube_binary64
Counts
4 → 86
Calls

4 calls:

8.0ms
(+.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))
4.0ms
(-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x))
3.0ms
(*.f64 (sin.f64 x) (cos.f64 eps))
3.0ms
(*.f64 (cos.f64 x) (sin.f64 eps))

simplify98.0ms (1.6%)

Algorithm
egg-herbie
Rules
1032×fma-neg_binary64
429×distribute-rgt-in_binary64
243×associate-*r*_binary64
235×associate-*l*_binary64
225×distribute-rgt-neg-in_binary64
Counts
150 → 192
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02422802
16442630
223702544
347652537
452462537

prune168.0ms (2.8%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New18111192
Fresh112
Picked101
Done000
Total18312195
Error
0.1b
Counts
195 → 12
Alt Table
StatusErrorProgram
36.2b
(*.f64 (sqrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))) (sqrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))))
31.3b
(+.f64 (*.f64 (cos.f64 x) (+.f64 eps (*.f64 (pow.f64 eps 3) -1/6))) (*.f64 (sin.f64 x) (-.f64 (*.f64 1/24 (pow.f64 eps 4)) (*.f64 1/2 (*.f64 eps eps)))))
1.5b
(*.f64 (*.f64 (cbrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))) (cbrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1))))) (cbrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))))
21.3b
(+.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) 3)) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))
19.8b
(cbrt.f64 (pow.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1))) 3))
30.2b
(log.f64 (exp.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))))
20.7b
(+.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1))) (fma.f64 (neg.f64 (cbrt.f64 (sin.f64 x))) (*.f64 (cbrt.f64 (sin.f64 x)) (cbrt.f64 (sin.f64 x))) (*.f64 (cbrt.f64 (sin.f64 x)) (*.f64 (cbrt.f64 (sin.f64 x)) (cbrt.f64 (sin.f64 x))))))
20.4b
(+.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (-.f64 (*.f64 (*.f64 (cbrt.f64 (cos.f64 x)) (cbrt.f64 (cos.f64 x))) (*.f64 (cbrt.f64 (cos.f64 x)) (sin.f64 eps))) (sin.f64 x)))
5.0b
(/.f64 (*.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1))) (fma.f64 (cos.f64 eps) (sin.f64 x) (fma.f64 (sin.f64 eps) (neg.f64 (cos.f64 x)) (sin.f64 x)))) (fma.f64 (cos.f64 eps) (sin.f64 x) (fma.f64 (sin.f64 eps) (neg.f64 (cos.f64 x)) (sin.f64 x))))
0.3b
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
20.3b
(+.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (fma.f64 (cos.f64 x) (sin.f64 eps) (neg.f64 (sin.f64 x))))
25.2b
(/.f64 (+.f64 (pow.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) 3) (pow.f64 (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)) 3)) (+.f64 (*.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps))) (-.f64 (*.f64 (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x))) (*.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x))))))
Compiler

Compiled 5028 to 1465 computations (70.9% saved)

localize10.0ms (0.2%)

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)))
2.1b
(+.f64 (cos.f64 eps) -1)

series35.0ms (0.6%)

Counts
4 → 64
Calls

4 calls:

18.0ms
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
13.0ms
(*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1))
2.0ms
(+.f64 (cos.f64 eps) -1)
2.0ms
(cos.f64 x)

rewrite13.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
11×*-un-lft-identity_binary64
11×add-sqr-sqrt_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
add-exp-log_binary64
Counts
4 → 63
Calls

4 calls:

5.0ms
(*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1))
3.0ms
(+.f64 (cos.f64 eps) -1)
1.0ms
(cos.f64 x)
0.0ms
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))

simplify110.0ms (1.8%)

Algorithm
egg-herbie
Rules
940×fma-neg_binary64
831×fma-def_binary64
480×cancel-sign-sub-inv_binary64
296×distribute-rgt-in_binary64
256×distribute-lft-in_binary64
Counts
127 → 148
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01912034
15151858
216201811
343661809
450211809

prune209.0ms (3.4%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New1417148
Fresh5611
Picked101
Done000
Total14713160
Error
0.0b
Counts
160 → 13
Alt Table
StatusErrorProgram
0.7b
(fma.f64 (sin.f64 eps) (*.f64 (*.f64 (cbrt.f64 (cos.f64 x)) (cbrt.f64 (cos.f64 x))) (cbrt.f64 (cos.f64 x))) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
20.4b
(+.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (-.f64 (*.f64 (*.f64 (cbrt.f64 (cos.f64 x)) (cbrt.f64 (cos.f64 x))) (*.f64 (cbrt.f64 (cos.f64 x)) (sin.f64 eps))) (sin.f64 x)))
30.0b
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (fma.f64 -1/2 (*.f64 eps eps) (*.f64 1/24 (pow.f64 eps 4)))))
5.0b
(/.f64 (*.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1))) (fma.f64 (cos.f64 eps) (sin.f64 x) (fma.f64 (sin.f64 eps) (neg.f64 (cos.f64 x)) (sin.f64 x)))) (fma.f64 (cos.f64 eps) (sin.f64 x) (fma.f64 (sin.f64 eps) (neg.f64 (cos.f64 x)) (sin.f64 x))))
0.3b
(+.f64 (*.f64 (sin.f64 eps) (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) (log.f64 (exp.f64 (-.f64 (cos.f64 eps) 1)))))
25.2b
(/.f64 (+.f64 (pow.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) 3) (pow.f64 (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)) 3)) (+.f64 (*.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (*.f64 (sin.f64 x) (cos.f64 eps))) (-.f64 (*.f64 (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x))) (*.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x))))))
0.4b
(log1p.f64 (expm1.f64 (fma.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))))
36.2b
(*.f64 (sqrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))) (sqrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))))
0.5b
(fma.f64 (sin.f64 eps) (log.f64 (exp.f64 (cos.f64 x))) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
21.3b
(+.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) 3)) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))
30.2b
(log.f64 (exp.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.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 3485 to 1642 computations (52.9% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(+.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
0.1b
(*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1))
0.1b
(*.f64 (sin.f64 eps) (cos.f64 x))
2.1b
(+.f64 (cos.f64 eps) -1)

series29.0ms (0.5%)

Counts
2 → 40
Calls

2 calls:

18.0ms
(+.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
11.0ms
(*.f64 (sin.f64 eps) (cos.f64 x))

rewrite12.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
add-sqr-sqrt_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
add-log-exp_binary64
Counts
2 → 39
Calls

2 calls:

7.0ms
(+.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
3.0ms
(*.f64 (sin.f64 eps) (cos.f64 x))

simplify77.0ms (1.3%)

Algorithm
egg-herbie
Rules
747×fma-def_binary64
433×distribute-rgt-in_binary64
422×sub-neg_binary64
383×distribute-lft-in_binary64
358×cancel-sign-sub-inv_binary64
Counts
79 → 91
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01601575
14741472
215581438
345251434
451831434

prune269.0ms (4.4%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New1861187
Fresh11112
Picked011
Done000
Total18713200
Error
0.0b
Counts
200 → 13
Alt Table
StatusErrorProgram
0.7b
(fma.f64 (sin.f64 eps) (*.f64 (*.f64 (cbrt.f64 (cos.f64 x)) (cbrt.f64 (cos.f64 x))) (cbrt.f64 (cos.f64 x))) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
20.4b
(+.f64 (*.f64 (sin.f64 x) (cos.f64 eps)) (-.f64 (*.f64 (*.f64 (cbrt.f64 (cos.f64 x)) (cbrt.f64 (cos.f64 x))) (*.f64 (cbrt.f64 (cos.f64 x)) (sin.f64 eps))) (sin.f64 x)))
30.0b
(fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (fma.f64 -1/2 (*.f64 eps eps) (*.f64 1/24 (pow.f64 eps 4)))))
5.0b
(/.f64 (*.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1))) (fma.f64 (cos.f64 eps) (sin.f64 x) (fma.f64 (sin.f64 eps) (neg.f64 (cos.f64 x)) (sin.f64 x)))) (fma.f64 (cos.f64 eps) (sin.f64 x) (fma.f64 (sin.f64 eps) (neg.f64 (cos.f64 x)) (sin.f64 x))))
0.3b
(+.f64 (*.f64 (sin.f64 eps) (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) (log.f64 (exp.f64 (-.f64 (cos.f64 eps) 1)))))
14.4b
(/.f64 (-.f64 (*.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (sin.f64 eps) (cos.f64 x))) (*.f64 (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))) (-.f64 (*.f64 (sin.f64 eps) (cos.f64 x)) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1))))
0.4b
(log1p.f64 (expm1.f64 (fma.f64 (-.f64 (cos.f64 eps) 1) (sin.f64 x) (*.f64 (cos.f64 x) (sin.f64 eps)))))
36.2b
(*.f64 (sqrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))) (sqrt.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))))
0.5b
(fma.f64 (sin.f64 eps) (log.f64 (exp.f64 (cos.f64 x))) (*.f64 (sin.f64 x) (+.f64 (cos.f64 eps) -1)))
21.3b
(+.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 eps) (sin.f64 x)) 3)) (-.f64 (*.f64 (cos.f64 x) (sin.f64 eps)) (sin.f64 x)))
30.2b
(log.f64 (exp.f64 (fma.f64 (sin.f64 eps) (cos.f64 x) (*.f64 (sin.f64 x) (+.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 4284 to 1882 computations (56.1% saved)

regimes798.0ms (13.1%)

Accuracy

Total 0.3b remaining (76.9%)

Threshold costs 0.3b (76.9%)

Counts
230 → 1
Compiler

Compiled 13548 to 8420 computations (37.9% saved)

simplify3.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01430
11830
21730

end1.0ms (0%)

Compiler

Compiled 21 to 13 computations (38.1% saved)

sample3.8s (62.8%)

Algorithm
intervals
Results
1.6s3525×body1024valid
1.2s1220×body2048valid
329.0ms1349×body512valid
103.0ms1296×body128valid
100.0ms609×body256valid
3.0msbody4096valid
Compiler

Compiled 330 to 200 computations (39.4% saved)

Profiling

Loading profile data...