Details

Time bar (total: 20.7s)

analyze1.8s (8.6%)

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
0%99.9%0.1%5
0%99.9%0.1%6
0%95.2%4.8%7
0%94.4%5.6%8
0%91.7%8.3%9
0%91.1%8.9%10
0%89.7%10.3%11
1.4%88%10.7%12
1.4%87.2%11.4%13
1.4%87%11.6%14
Compiler

Compiled 14 to 11 computations (21.4% saved)

sample16.2s (78.6%)

Results
10.3s4048×body8192exit
3.2s4230×body1024valid
995.0ms2134×body512valid
588.0ms977×body1024invalid
308.0ms1019×body256valid
270.0ms222×body2048valid
209.0ms508×body512invalid
118.0ms651×body128valid
87.0ms389×body128invalid
82.0ms250×body256invalid
Compiler

Compiled 27 to 21 computations (22.2% saved)

simplify117.0ms (0.6%)

Algorithm
egg-herbie
Rules
454×fma-def_binary64
444×times-frac_binary64
419×sub-neg_binary64
365×distribute-rgt-neg-in_binary64
340×fma-neg_binary64
Counts
1 → 2
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01118
12318
24918
310618
422517
544917
696217
7171317
8358817
9428217
10477317
11492317
12495717
13474817

prune3.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
42.7b
Counts
3 → 1
Alt Table
StatusErrorProgram
42.7b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 50 to 35 computations (30% saved)

localize9.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
4.4b
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))

series20.0ms (0.1%)

Counts
2 → 32
Calls

2 calls:

18.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
3.0ms
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))

rewrite20.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
29×*-un-lft-identity_binary64
29×add-sqr-sqrt_binary64
27×prod-diff_binary64
25×add-cube-cbrt_binary64
13×distribute-lft-in_binary64
Counts
2 → 80
Calls

2 calls:

9.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
5.0ms
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))

simplify104.0ms (0.5%)

Algorithm
egg-herbie
Rules
584×fma-neg_binary64
356×cancel-sign-sub-inv_binary64
302×distribute-rgt-in_binary64
277×associate-*r*_binary64
274×associate-*l*_binary64
Counts
112 → 124
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02252646
15472347
220432132
344152127
448972127

prune83.0ms (0.4%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New1213124
Fresh000
Picked101
Done000
Total1223125
Error
0.1b
Counts
125 → 3
Alt Table
StatusErrorProgram
42.7b
(*.f64 (*.f64 1/2 (sin.f64 re)) (expm1.f64 (log1p.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))
0.4b
(neg.f64 (+.f64 (*.f64 (sin.f64 re) im) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
0.5b
(neg.f64 (fma.f64 im (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (*.f64 1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5))))))
Compiler

Compiled 3289 to 1178 computations (64.2% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
0.1b
(*.f64 (sin.f64 re) (pow.f64 im 3))
0.1b
(*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
0.1b
(*.f64 (sin.f64 re) im)

series65.0ms (0.3%)

Counts
4 → 16
Calls

4 calls:

23.0ms
(*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
20.0ms
(*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
14.0ms
(*.f64 (sin.f64 re) (pow.f64 im 3))
8.0ms
(*.f64 (sin.f64 re) im)

rewrite25.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
31×add-exp-log_binary64
21×add-sqr-sqrt_binary64
18×add-cbrt-cube_binary64
18×prod-exp_binary64
17×associate-*r*_binary64
Counts
4 → 95
Calls

4 calls:

7.0ms
(*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
5.0ms
(*.f64 (sin.f64 re) (pow.f64 im 3))
5.0ms
(*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
3.0ms
(*.f64 (sin.f64 re) im)

simplify243.0ms (1.2%)

Algorithm
egg-herbie
Rules
778×fma-neg_binary64
477×fma-def_binary64
370×cancel-sign-sub-inv_binary64
332×associate-*r*_binary64
269×associate-*l*_binary64
Counts
111 → 163
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01931752
14831508
217721434
337621434
448331434
549941434
649721434

prune374.0ms (1.8%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New1576163
Fresh022
Picked101
Done000
Total1588166
Error
0.0b
Counts
166 → 8
Alt Table
StatusErrorProgram
0.5b
(neg.f64 (fma.f64 im (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (*.f64 1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5))))))
1.2b
(neg.f64 (+.f64 (*.f64 (*.f64 (cbrt.f64 (sin.f64 re)) (cbrt.f64 (sin.f64 re))) (*.f64 (cbrt.f64 (sin.f64 re)) im)) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
42.7b
(*.f64 (*.f64 1/2 (sin.f64 re)) (expm1.f64 (log1p.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))
35.1b
(neg.f64 (+.f64 (*.f64 (sqrt.f64 (sin.f64 re)) (*.f64 (sqrt.f64 (sin.f64 re)) im)) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
22.2b
(neg.f64 (+.f64 (*.f64 (sqrt.f64 (*.f64 (sin.f64 re) im)) (sqrt.f64 (*.f64 (sin.f64 re) im))) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
32.1b
(neg.f64 (+.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (sin.f64 re) (sin.f64 re)) (sin.f64 re)) (*.f64 (*.f64 im im) im))) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
0.4b
(neg.f64 (+.f64 (*.f64 im (sin.f64 re)) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
33.3b
(neg.f64 (+.f64 (*.f64 (*.f64 (sin.f64 re) (sqrt.f64 im)) (sqrt.f64 im)) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
Compiler

Compiled 6881 to 4244 computations (38.3% saved)

localize21.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5)))
0.1b
(*.f64 (sin.f64 re) (pow.f64 im 3))
0.1b
(*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3)))
0.1b
(*.f64 im (sin.f64 re))

series8.0ms (0%)

Counts
1 → 24
Calls

1 calls:

8.0ms
(*.f64 im (sin.f64 re))

rewrite4.0ms (0%)

Algorithm
rewrite-expression-head
Rules
add-sqr-sqrt_binary64
associate-*r*_binary64
associate-*l*_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
Counts
1 → 20
Calls

1 calls:

3.0ms
(*.f64 im (sin.f64 re))

simplify82.0ms (0.4%)

Algorithm
egg-herbie
Rules
563×fma-def_binary64
513×distribute-rgt-neg-in_binary64
407×cancel-sign-sub-inv_binary64
348×fma-neg_binary64
347×distribute-lft-neg-in_binary64
Counts
44 → 37
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
056400
1132366
2399356
3982352
42253352
53072352
64622352
74864352

prune296.0ms (1.4%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New1612163
Fresh077
Picked011
Done000
Total16110171
Error
0.0b
Counts
171 → 10
Alt Table
StatusErrorProgram
0.5b
(neg.f64 (fma.f64 im (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (*.f64 1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5))))))
1.2b
(neg.f64 (+.f64 (*.f64 (*.f64 (cbrt.f64 (sin.f64 re)) (cbrt.f64 (sin.f64 re))) (*.f64 (cbrt.f64 (sin.f64 re)) im)) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
42.7b
(*.f64 (*.f64 1/2 (sin.f64 re)) (expm1.f64 (log1p.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))
35.1b
(neg.f64 (+.f64 (*.f64 (sqrt.f64 (sin.f64 re)) (*.f64 (sqrt.f64 (sin.f64 re)) im)) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
22.2b
(neg.f64 (+.f64 (*.f64 (sqrt.f64 (*.f64 (sin.f64 re) im)) (sqrt.f64 (*.f64 (sin.f64 re) im))) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
32.1b
(neg.f64 (+.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (sin.f64 re) (sin.f64 re)) (sin.f64 re)) (*.f64 (*.f64 im im) im))) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
1.2b
(neg.f64 (+.f64 (*.f64 (*.f64 im (*.f64 (cbrt.f64 (sin.f64 re)) (cbrt.f64 (sin.f64 re)))) (cbrt.f64 (sin.f64 re))) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
1.3b
(neg.f64 (+.f64 (*.f64 (*.f64 (cbrt.f64 im) (cbrt.f64 im)) (*.f64 (cbrt.f64 im) (sin.f64 re))) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
0.4b
(neg.f64 (+.f64 (*.f64 im (sin.f64 re)) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
33.3b
(neg.f64 (+.f64 (*.f64 (*.f64 (sin.f64 re) (sqrt.f64 im)) (sqrt.f64 im)) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
Compiler

Compiled 7010 to 4324 computations (38.3% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 1/120 (pow.f64 im 5))
0.1b
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5))))
0.1b
(fma.f64 im (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (*.f64 1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
0.1b
(*.f64 1/6 (pow.f64 im 3))

series85.0ms (0.4%)

Counts
4 → 48
Calls

4 calls:

41.0ms
(fma.f64 im (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (*.f64 1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))
36.0ms
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5))))
3.0ms
(*.f64 1/120 (pow.f64 im 5))
3.0ms
(*.f64 1/6 (pow.f64 im 3))

rewrite19.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
27×add-sqr-sqrt_binary64
22×associate-*r*_binary64
16×add-exp-log_binary64
13×*-un-lft-identity_binary64
13×add-cube-cbrt_binary64
Counts
4 → 94
Calls

4 calls:

6.0ms
(*.f64 (sin.f64 re) (+.f64 (*.f64 1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5))))
5.0ms
(*.f64 1/6 (pow.f64 im 3))
4.0ms
(*.f64 1/120 (pow.f64 im 5))
0.0ms
(fma.f64 im (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (*.f64 1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5)))))

simplify126.0ms (0.6%)

Algorithm
egg-herbie
Rules
430×cancel-sign-sub-inv_binary64
374×distribute-rgt-in_binary64
351×distribute-lft-in_binary64
327×fma-neg_binary64
256×associate-*r*_binary64
Counts
142 → 156
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02262918
15772607
221372544
346162543
449792543
549662543

prune253.0ms (1.2%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New1551156
Fresh178
Picked011
Done011
Total15610166
Error
0.0b
Counts
166 → 10
Alt Table
StatusErrorProgram
0.5b
(neg.f64 (fma.f64 im (sin.f64 re) (*.f64 (sin.f64 re) (+.f64 (*.f64 1/6 (pow.f64 im 3)) (*.f64 1/120 (pow.f64 im 5))))))
1.2b
(neg.f64 (+.f64 (*.f64 (*.f64 (cbrt.f64 (sin.f64 re)) (cbrt.f64 (sin.f64 re))) (*.f64 (cbrt.f64 (sin.f64 re)) im)) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
22.3b
(neg.f64 (*.f64 (sqrt.f64 (*.f64 (sin.f64 re) (fma.f64 1/120 (pow.f64 im 5) (fma.f64 1/6 (pow.f64 im 3) im)))) (sqrt.f64 (*.f64 (sin.f64 re) (fma.f64 1/120 (pow.f64 im 5) (fma.f64 1/6 (pow.f64 im 3) im))))))
42.7b
(*.f64 (*.f64 1/2 (sin.f64 re)) (expm1.f64 (log1p.f64 (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))))
35.1b
(neg.f64 (+.f64 (*.f64 (sqrt.f64 (sin.f64 re)) (*.f64 (sqrt.f64 (sin.f64 re)) im)) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
32.1b
(neg.f64 (+.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (sin.f64 re) (sin.f64 re)) (sin.f64 re)) (*.f64 (*.f64 im im) im))) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
1.2b
(neg.f64 (+.f64 (*.f64 (*.f64 im (*.f64 (cbrt.f64 (sin.f64 re)) (cbrt.f64 (sin.f64 re)))) (cbrt.f64 (sin.f64 re))) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
1.3b
(neg.f64 (+.f64 (*.f64 (*.f64 (cbrt.f64 im) (cbrt.f64 im)) (*.f64 (cbrt.f64 im) (sin.f64 re))) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
0.4b
(neg.f64 (+.f64 (*.f64 im (sin.f64 re)) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
33.3b
(neg.f64 (+.f64 (*.f64 (*.f64 (sin.f64 re) (sqrt.f64 im)) (sqrt.f64 im)) (+.f64 (*.f64 1/120 (*.f64 (sin.f64 re) (pow.f64 im 5))) (+.f64 (*.f64 1/6 (*.f64 (sin.f64 re) (pow.f64 im 3))) (*.f64 1/5040 (*.f64 (sin.f64 re) (pow.f64 im 7)))))))
Compiler

Compiled 4773 to 3256 computations (31.8% saved)

regimes427.0ms (2.1%)

Accuracy

Total 0.3b remaining (48.8%)

Threshold costs 0.3b (48.8%)

Counts
59 → 1
Compiler

Compiled 9573 to 6683 computations (30.2% saved)

simplify9.0ms (0%)

Algorithm
egg-herbie
Rules
22×*-commutative_binary64
18×+-commutative_binary64
16×distribute-rgt-neg-in_binary64
15×distribute-lft-neg-in_binary64
15×sub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02650
14550
26748
39348
413048
515648
616948
717648
817848
917348

end227.0ms (1.1%)

Compiler

Compiled 419 to 275 computations (34.4% saved)

Profiling

Loading profile data...