Details

Time bar (total: 9.5s)

analyze545.0ms (5.7%)

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.2s (65.4%)

Results
2.9s4243×body1024valid
1.1s2005×body1024invalid
844.0ms2176×body512valid
407.0ms1093×body512invalid
252.0ms951×body256valid
239.0ms235×body2048valid
145.0ms555×body256invalid
125.0ms822×body128invalid
95.0ms651×body128valid
Compiler

Compiled 41 to 32 computations (22% saved)

simplify112.0ms (1.2%)

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

series19.0ms (0.2%)

Counts
2 → 32
Calls

2 calls:

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

rewrite56.0ms (0.6%)

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:

56.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
56.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

simplify72.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

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New27128
Fresh000
Picked011
Done000
Total27229
Error
0.1b
Counts
29 → 2
Alt Table
StatusErrorProgram
42.7b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
0.7b
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 -2 im))))
Compiler

Compiled 672 to 411 computations (38.8% saved)

localize13.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 -2 im)))
0.1b
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 -2 im))))

series40.0ms (0.4%)

Counts
2 → 36
Calls

2 calls:

36.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 -2 im))))
3.0ms
(fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 -2 im)))

rewrite113.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
292×expm1-udef_binary64
292×log1p-udef_binary64
188×prod-diff_binary64
169×add-sqr-sqrt_binary64
168×fma-neg_binary64
Counts
2 → 43
Calls

2 calls:

112.0ms
(fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 -2 im)))
112.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 -2 im))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01744
135644
2371444
3500044
4496844
5483644
000
100

simplify39.0ms (0.4%)

Algorithm
egg-herbie
Rules
788×fma-def_binary64
579×associate-*l*_binary64
500×associate-*r*_binary64
339×associate--r+_binary64
268×cancel-sign-sub-inv_binary64
Counts
79 → 72
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0981001
1313983
21224893
34978893

prune83.0ms (0.9%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New67572
Fresh000
Picked011
Done011
Total67774
Error
0.1b
Counts
74 → 7
Alt Table
StatusErrorProgram
33.0b
(cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (sin.f64 re)) 3) (pow.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2))) 3)))
23.3b
(pow.f64 (sqrt.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2))))) 2)
42.7b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
0.7b
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 -2 im))))
33.2b
(*.f64 (*.f64 1/2 (sin.f64 re)) (pow.f64 (sqrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) 2))
17.8b
(*.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 5) -1/60)) (pow.f64 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)) 2)) (-.f64 (*.f64 (pow.f64 im 5) -1/60) (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))))
1.6b
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) (pow.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) 2)))
Compiler

Compiled 2049 to 1553 computations (24.2% saved)

localize15.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) (pow.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) 2)))
0.3b
(*.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) (pow.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) 2))
0.5b
(pow.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) 2)
0.6b
(cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2))))

series60.0ms (0.6%)

Counts
4 → 60
Calls

4 calls:

36.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) (pow.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) 2)))
13.0ms
(pow.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) 2)
7.0ms
(cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2))))
4.0ms
(*.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) (pow.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) 2))

rewrite70.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
326×log1p-udef_binary64
193×add-sqr-sqrt_binary64
188×prod-diff_binary64
186×log1p-expm1-u_binary64
186×expm1-log1p-u_binary64
Counts
4 → 81
Calls

4 calls:

68.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) (pow.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) 2)))
68.0ms
(*.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) (pow.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) 2))
68.0ms
(pow.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) 2)
68.0ms
(cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02187
141987
2420787
3484387
000
100

simplify84.0ms (0.9%)

Algorithm
egg-herbie
Rules
592×fma-neg_binary64
436×cancel-sign-sub-inv_binary64
336×times-frac_binary64
206×associate-/r*_binary64
194×fma-def_binary64
Counts
141 → 158
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01972449
16102293
221091936
348041931
450951931

prune237.0ms (2.5%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New2060206
Fresh044
Picked011
Done022
Total2067213
Error
0.1b
Counts
213 → 7
Alt Table
StatusErrorProgram
33.0b
(cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (sin.f64 re)) 3) (pow.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2))) 3)))
23.3b
(pow.f64 (sqrt.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2))))) 2)
42.7b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
0.7b
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 -2 im))))
33.2b
(*.f64 (*.f64 1/2 (sin.f64 re)) (pow.f64 (sqrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) 2))
17.8b
(*.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 5) -1/60)) (pow.f64 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)) 2)) (-.f64 (*.f64 (pow.f64 im 5) -1/60) (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))))
1.6b
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) (pow.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) 2)))
Compiler

Compiled 8643 to 6826 computations (21% saved)

localize18.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 5) -1/60))
0.1b
(*.f64 (pow.f64 im 5) -1/60)
0.1b
(*.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 5) -1/60)) (pow.f64 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)) 2)) (-.f64 (*.f64 (pow.f64 im 5) -1/60) (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))))
28.1b
(/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 5) -1/60)) (pow.f64 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)) 2)) (-.f64 (*.f64 (pow.f64 im 5) -1/60) (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2))))

series178.0ms (1.9%)

Counts
4 → 60
Calls

4 calls:

166.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 5) -1/60)) (pow.f64 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)) 2)) (-.f64 (*.f64 (pow.f64 im 5) -1/60) (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))))
5.0ms
(/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 5) -1/60)) (pow.f64 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)) 2)) (-.f64 (*.f64 (pow.f64 im 5) -1/60) (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2))))
3.0ms
(*.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 5) -1/60))
3.0ms
(*.f64 (pow.f64 im 5) -1/60)

rewrite94.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
242×add-sqr-sqrt_binary64
237×log1p-expm1-u_binary64
237×expm1-log1p-u_binary64
230×add-log-exp_binary64
229×add-cbrt-cube_binary64
Counts
4 → 68
Calls

4 calls:

92.0ms
(*.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 5) -1/60))
92.0ms
(*.f64 (pow.f64 im 5) -1/60)
92.0ms
(*.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 5) -1/60)) (pow.f64 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)) 2)) (-.f64 (*.f64 (pow.f64 im 5) -1/60) (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))))
92.0ms
(/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 5) -1/60)) (pow.f64 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)) 2)) (-.f64 (*.f64 (pow.f64 im 5) -1/60) (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
023121
1514112
24812112
34879112
000
100

simplify100.0ms (1%)

Algorithm
egg-herbie
Rules
512×fma-def_binary64
393×fma-neg_binary64
343×associate-/l*_binary64
228×associate-/r*_binary64
192×div-sub_binary64
Counts
128 → 97
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01612415
14832415
218192276
349042276
451462276

prune519.0ms (5.4%)

Pruning

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New1210121
Fresh033
Picked011
Done033
Total1217128
Error
0.1b
Counts
128 → 7
Alt Table
StatusErrorProgram
33.0b
(cbrt.f64 (*.f64 (pow.f64 (*.f64 1/2 (sin.f64 re)) 3) (pow.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2))) 3)))
23.3b
(pow.f64 (sqrt.f64 (*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2))))) 2)
42.7b
(*.f64 (*.f64 1/2 (sin.f64 re)) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
0.7b
(*.f64 (*.f64 1/2 (sin.f64 re)) (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 -2 im))))
33.2b
(*.f64 (*.f64 1/2 (sin.f64 re)) (pow.f64 (sqrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) 2))
17.8b
(*.f64 (*.f64 1/2 (sin.f64 re)) (/.f64 (-.f64 (*.f64 (*.f64 (pow.f64 im 5) -1/60) (*.f64 (pow.f64 im 5) -1/60)) (pow.f64 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)) 2)) (-.f64 (*.f64 (pow.f64 im 5) -1/60) (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))))
1.6b
(*.f64 (*.f64 1/2 (sin.f64 re)) (*.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) (pow.f64 (cbrt.f64 (fma.f64 (pow.f64 im 5) -1/60 (fma.f64 (pow.f64 im 3) -1/3 (*.f64 im -2)))) 2)))
Compiler

Compiled 6963 to 5495 computations (21.1% saved)

regimes609.0ms (6.4%)

Accuracy

Total 0.7b remaining (86.4%)

Threshold costs 0.7b (86.4%)

Counts
62 → 1
Compiler

Compiled 11378 to 9224 computations (18.9% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01726
12026
22026

end182.0ms (1.9%)

Compiler

Compiled 226 to 184 computations (18.6% saved)

Profiling

Loading profile data...