Details

Time bar (total: 9.2s)

analyze1.0s (11.2%)

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
50%50%0.1%5
50%50%0.1%6
50%40.6%9.5%7
50%39%11%8
50%33.6%16.5%9
50%32.4%17.7%10
50%29.5%20.6%11
50%28.8%21.3%12
50%27.3%22.8%13
50%26.9%23.1%14
Compiler

Compiled 14 to 11 computations (21.4% saved)

sample6.4s (70%)

Results
3.0s4186×body1024valid
1.2s2042×body1024invalid
871.0ms2112×body512valid
384.0ms1018×body512invalid
297.0ms1068×body256valid
253.0ms234×body2048valid
140.0ms532×body256invalid
123.0ms814×body128invalid
95.0ms656×body128valid
Compiler

Compiled 41 to 32 computations (22% saved)

simplify130.0ms (1.4%)

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

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 50 to 35 computations (30% saved)

localize8.0ms (0.1%)

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)))
6.3b
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))

series17.0ms (0.2%)

Counts
2 → 32
Calls

2 calls:

14.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
2.0ms
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))

rewrite61.0ms (0.7%)

Algorithm
batch-egg-rewrite
egg-rewrite
Rules
116×add-sqr-sqrt_binary64
109×log1p-expm1-u_binary64
109×expm1-log1p-u_binary64
108×add-log-exp_binary64
106×add-cbrt-cube_binary64
Counts
2 → 0
Calls

2 calls:

61.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
61.0ms
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01120
122820
22720
0610
112710
27010
01118
122818
22718
000
100

simplify73.0ms (0.8%)

Algorithm
egg-herbie
Rules
698×fma-def_binary64
412×sub-neg_binary64
382×distribute-rgt-neg-in_binary64
359×distribute-lft-neg-in_binary64
297×neg-mul-1_binary64
Counts
32 → 28
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0100734
1297716
2990666
33580666
44813666
54949666

prune26.0ms (0.3%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New26228
Fresh000
Picked011
Done000
Total26329
Error
0.1b
Counts
29 → 3
Alt Table
StatusErrorProgram
0.9b
(*.f64 (sin.f64 re) (+.f64 (neg.f64 im) (*.f64 (pow.f64 im 3) -1/6)))
47.6b
(fma.f64 1/2 (/.f64 re (exp.f64 im)) (+.f64 (*.f64 (*.f64 1/12 (pow.f64 re 3)) (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 (exp.f64 im) re) -1/2)))
45.4b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 712 to 435 computations (38.9% saved)

localize8.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (neg.f64 im) (*.f64 (pow.f64 im 3) -1/6))
0.1b
(*.f64 (sin.f64 re) (+.f64 (neg.f64 im) (*.f64 (pow.f64 im 3) -1/6)))
0.1b
(*.f64 (pow.f64 im 3) -1/6)

series31.0ms (0.3%)

Counts
3 → 48
Calls

3 calls:

25.0ms
(*.f64 (sin.f64 re) (+.f64 (neg.f64 im) (*.f64 (pow.f64 im 3) -1/6)))
3.0ms
(+.f64 (neg.f64 im) (*.f64 (pow.f64 im 3) -1/6))
3.0ms
(*.f64 (pow.f64 im 3) -1/6)

rewrite102.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
511×log-prod_binary64
367×fma-def_binary64
261×egg-rr
187×expm1-udef_binary64
187×log1p-udef_binary64
Counts
3 → 261
Calls

3 calls:

97.0ms
(+.f64 (neg.f64 im) (*.f64 (pow.f64 im 3) -1/6))
97.0ms
(*.f64 (sin.f64 re) (+.f64 (neg.f64 im) (*.f64 (pow.f64 im 3) -1/6)))
97.0ms
(*.f64 (pow.f64 im 3) -1/6)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01136
124228
2266128
3498328
4485128
000
100

simplify53.0ms (0.6%)

Algorithm
egg-herbie
Rules
407×fma-def_binary64
390×associate-*l*_binary64
357×distribute-lft-out_binary64
337×sub-neg_binary64
312×associate-*r*_binary64
Counts
309 → 281
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
061677
1197672
2712646
32826643
45337643

prune190.0ms (2.1%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New2783281
Fresh011
Picked011
Done011
Total2786284
Error
0.1b
Counts
284 → 6
Alt Table
StatusErrorProgram
32.8b
(-.f64 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 im 1/6) (*.f64 (pow.f64 im 3) 1/36))) (*.f64 re (fma.f64 (pow.f64 im 3) 1/6 im)))
45.4b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
0.9b
(*.f64 (sin.f64 re) (+.f64 (neg.f64 im) (*.f64 (pow.f64 im 3) -1/6)))
35.9b
(*.f64 (sin.f64 re) (fma.f64 (sqrt.f64 im) (neg.f64 (sqrt.f64 im)) (*.f64 (pow.f64 im 3) -1/6)))
20.9b
(*.f64 (sin.f64 re) (fma.f64 (cbrt.f64 (*.f64 im im)) (neg.f64 (cbrt.f64 im)) (*.f64 (pow.f64 im 3) -1/6)))
47.6b
(fma.f64 1/2 (/.f64 re (exp.f64 im)) (+.f64 (*.f64 (*.f64 1/12 (pow.f64 re 3)) (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 (exp.f64 im) re) -1/2)))
Compiler

Compiled 5580 to 3527 computations (36.8% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (pow.f64 im 3) -1/6)
0.2b
(fma.f64 (cbrt.f64 (*.f64 im im)) (neg.f64 (cbrt.f64 im)) (*.f64 (pow.f64 im 3) -1/6))
0.6b
(cbrt.f64 im)
29.6b
(cbrt.f64 (*.f64 im im))

series87.0ms (0.9%)

Counts
3 → 36
Calls

3 calls:

31.0ms
(fma.f64 (cbrt.f64 (*.f64 im im)) (neg.f64 (cbrt.f64 im)) (*.f64 (pow.f64 im 3) -1/6))
28.0ms
(cbrt.f64 (*.f64 im im))
28.0ms
(cbrt.f64 im)

rewrite47.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
757×log1p-expm1-u_binary64
757×expm1-log1p-u_binary64
273×prod-diff_binary64
102×add-sqr-sqrt_binary64
98×add-cbrt-cube_binary64
Counts
3 → 86
Calls

3 calls:

45.0ms
(fma.f64 (cbrt.f64 (*.f64 im im)) (neg.f64 (cbrt.f64 im)) (*.f64 (pow.f64 im 3) -1/6))
45.0ms
(cbrt.f64 im)
45.0ms
(cbrt.f64 (*.f64 im im))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01129
122117
2201017
3498417
000
100

simplify124.0ms (1.3%)

Algorithm
egg-herbie
Rules
1634×fma-def_binary64
674×fma-neg_binary64
445×unswap-sqr_binary64
425×distribute-rgt-neg-in_binary64
406×sqr-pow_binary64
Counts
122 → 99
Iterations

Useful iterations: 9 (0.0ms)

IterNodesCost
022258
160252
2124252
3337252
4953252
51712252
63309252
73666252
84058252
94489230
103969230
114778230

prune76.0ms (0.8%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New1151116
Fresh033
Picked101
Done022
Total1166122
Error
0.1b
Counts
122 → 6
Alt Table
StatusErrorProgram
32.8b
(-.f64 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 im 1/6) (*.f64 (pow.f64 im 3) 1/36))) (*.f64 re (fma.f64 (pow.f64 im 3) 1/6 im)))
45.4b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
0.9b
(*.f64 (sin.f64 re) (+.f64 (neg.f64 im) (*.f64 (pow.f64 im 3) -1/6)))
35.9b
(*.f64 (sin.f64 re) (fma.f64 (sqrt.f64 im) (neg.f64 (sqrt.f64 im)) (*.f64 (pow.f64 im 3) -1/6)))
47.6b
(fma.f64 1/2 (/.f64 re (exp.f64 im)) (+.f64 (*.f64 (*.f64 1/12 (pow.f64 re 3)) (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 (exp.f64 im) re) -1/2)))
8.3b
(*.f64 (sin.f64 re) (fma.f64 (sqrt.f64 (*.f64 im (cbrt.f64 im))) (neg.f64 (cbrt.f64 im)) (*.f64 (pow.f64 im 3) -1/6)))
Compiler

Compiled 2272 to 1293 computations (43.1% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 im (cbrt.f64 im))
0.2b
(fma.f64 (sqrt.f64 (*.f64 im (cbrt.f64 im))) (neg.f64 (cbrt.f64 im)) (*.f64 (pow.f64 im 3) -1/6))
0.6b
(cbrt.f64 im)
11.6b
(sqrt.f64 (*.f64 im (cbrt.f64 im)))

series128.0ms (1.4%)

Counts
3 → 36
Calls

3 calls:

50.0ms
(fma.f64 (sqrt.f64 (*.f64 im (cbrt.f64 im))) (neg.f64 (cbrt.f64 im)) (*.f64 (pow.f64 im 3) -1/6))
41.0ms
(sqrt.f64 (*.f64 im (cbrt.f64 im)))
36.0ms
(*.f64 im (cbrt.f64 im))

rewrite48.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
793×log1p-expm1-u_binary64
793×expm1-log1p-u_binary64
299×prod-diff_binary64
107×add-sqr-sqrt_binary64
101×add-cbrt-cube_binary64
Counts
3 → 68
Calls

3 calls:

47.0ms
(*.f64 im (cbrt.f64 im))
47.0ms
(fma.f64 (sqrt.f64 (*.f64 im (cbrt.f64 im))) (neg.f64 (cbrt.f64 im)) (*.f64 (pow.f64 im 3) -1/6))
47.0ms
(sqrt.f64 (*.f64 im (cbrt.f64 im)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01136
122618
2211818
3524318
000
100

simplify90.0ms (1%)

Algorithm
egg-herbie
Rules
1125×fma-neg_binary64
414×distribute-rgt-neg-in_binary64
402×cancel-sign-sub-inv_binary64
388×neg-mul-1_binary64
377×associate-*l*_binary64
Counts
104 → 83
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
028393
177393
2193393
3544393
41557393
52971393
64553393
74930393
84854393

prune96.0ms (1%)

Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New1630163
Fresh033
Picked011
Done022
Total1636169
Error
0.1b
Counts
169 → 6
Alt Table
StatusErrorProgram
32.8b
(-.f64 (*.f64 (pow.f64 re 3) (+.f64 (*.f64 im 1/6) (*.f64 (pow.f64 im 3) 1/36))) (*.f64 re (fma.f64 (pow.f64 im 3) 1/6 im)))
45.4b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
0.9b
(*.f64 (sin.f64 re) (+.f64 (neg.f64 im) (*.f64 (pow.f64 im 3) -1/6)))
35.9b
(*.f64 (sin.f64 re) (fma.f64 (sqrt.f64 im) (neg.f64 (sqrt.f64 im)) (*.f64 (pow.f64 im 3) -1/6)))
47.6b
(fma.f64 1/2 (/.f64 re (exp.f64 im)) (+.f64 (*.f64 (*.f64 1/12 (pow.f64 re 3)) (-.f64 (exp.f64 im) (exp.f64 (neg.f64 im)))) (*.f64 (*.f64 (exp.f64 im) re) -1/2)))
8.3b
(*.f64 (sin.f64 re) (fma.f64 (sqrt.f64 (*.f64 im (cbrt.f64 im))) (neg.f64 (cbrt.f64 im)) (*.f64 (pow.f64 im 3) -1/6)))
Compiler

Compiled 3219 to 1849 computations (42.6% saved)

regimes206.0ms (2.2%)

Accuracy

Total 0.7b remaining (84.8%)

Threshold costs 0.7b (84.8%)

Counts
37 → 1
Compiler

Compiled 3087 to 2282 computations (26.1% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
unsub-neg_binary64
neg-sub0_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01117
11815
22115
32215
42215

end99.0ms (1.1%)

Compiler

Compiled 136 to 98 computations (27.9% saved)

Profiling

Loading profile data...