Details

Time bar (total: 5.7s)

analyze711.0ms (12.4%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
6.2%93.6%0.2%8
25%74.9%0.2%9
28.1%71.7%0.2%10
29.6%70.2%0.2%11
53%46.8%0.2%12
71.3%28.5%0.2%13
71.7%28.1%0.2%14
Compiler

Compiled 20 to 12 computations (40% saved)

sample1.1s (19.1%)

Results
1.0s8256×body128valid
56.0ms475×body128invalid
Compiler

Compiled 59 to 35 computations (40.7% saved)

simplify6.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01218
11818
22218
Stop Event
saturated
Counts
1 → 2

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
27.6b
Counts
3 → 1
Alt Table
StatusErrorProgram
27.6b
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im)))
Compiler

Compiled 66 to 32 computations (51.5% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(fma.f64 x.re y.re (*.f64 x.im y.im))
27.1b
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im)))

series80.0ms (1.4%)

Counts
2 → 96
Calls

2 calls:

69.0ms
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im)))
11.0ms
(fma.f64 x.re y.re (*.f64 x.im y.im))

rewrite50.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
512×log-prod_binary64
271×prod-diff_binary64
186×expm1-udef_binary64
186×log1p-udef_binary64
174×log-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01026
120325
2258925
Stop Event
node limit
Counts
2 → 65
Calls

2 calls:

49.0ms
(fma.f64 x.re y.re (*.f64 x.im y.im))
49.0ms
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im)))

simplify54.0ms (0.9%)

Algorithm
egg-herbie
Rules
608×associate-*l/_binary64
519×fma-def_binary64
455×associate-/r/_binary64
341×fma-neg_binary64
284×associate-/l/_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0411626
11141542
23581458
318271410
Stop Event
node limit
Counts
161 → 90

prune62.0ms (1.1%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New83790
Fresh000
Picked011
Done000
Total83891
Error
1.9b
Counts
91 → 8
Alt Table
StatusErrorProgram
24.4b
(fma.f64 x.im (/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re))) (*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re))
28.0b
(*.f64 (pow.f64 (cbrt.f64 (fma.f64 x.re y.re (*.f64 x.im y.im))) 2) (*.f64 (cbrt.f64 (fma.f64 x.re y.re (*.f64 x.im y.im))) (/.f64 1 (pow.f64 (hypot.f64 y.re y.im) 2))))
27.6b
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im)))
34.8b
(/.f64 x.re y.re)
34.5b
(fma.f64 y.re (/.f64 x.re (*.f64 y.im y.im)) (/.f64 x.im y.im))
18.8b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)))
37.3b
(/.f64 x.im y.im)
28.0b
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x.re y.re (*.f64 x.im y.im))) 2) 1) (/.f64 (cbrt.f64 (fma.f64 x.re y.re (*.f64 x.im y.im))) (pow.f64 (hypot.f64 y.re y.im) 2)))
Compiler

Compiled 1915 to 675 computations (64.8% saved)

localize9.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 1 (hypot.f64 y.re y.im))
0.2b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)))
0.3b
(fma.f64 x.re y.re (*.f64 x.im y.im))
17.6b
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im))

series200.0ms (3.5%)

Counts
3 → 120
Calls

3 calls:

98.0ms
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im))
89.0ms
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)))
13.0ms
(/.f64 1 (hypot.f64 y.re y.im))

rewrite65.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
614×log-prod_binary64
254×prod-diff_binary64
213×expm1-udef_binary64
213×log1p-udef_binary64
200×log-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01241
124638
2315538
Stop Event
node limit
Counts
3 → 124
Calls

3 calls:

62.0ms
(/.f64 1 (hypot.f64 y.re y.im))
62.0ms
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)))
62.0ms
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im))

simplify55.0ms (1%)

Algorithm
egg-herbie
Rules
600×times-frac_binary64
438×associate-/l*_binary64
334×associate-/r*_binary64
329×fma-def_binary64
322×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01193272
13792866
213322666
Stop Event
node limit
Counts
244 → 208

prune196.0ms (3.4%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New2357242
Fresh516
Picked101
Done101
Total2428250
Error
0.0b
Counts
250 → 8
Alt Table
StatusErrorProgram
24.4b
(fma.f64 x.im (/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re))) (*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re))
18.9b
(/.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)) (sqrt.f64 (hypot.f64 y.re y.im))) (sqrt.f64 (hypot.f64 y.re y.im)))
46.2b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (/.f64 y.im y.re) x.im x.re))
42.2b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (/.f64 x.re y.im) y.re x.im))
31.8b
(fma.f64 (/.f64 y.im y.re) (/.f64 x.im y.re) (/.f64 x.re y.re))
32.2b
(fma.f64 (/.f64 y.re y.im) (/.f64 x.re y.im) (/.f64 x.im y.im))
43.5b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (-.f64 (*.f64 1/2 (*.f64 (/.f64 x.re y.re) (*.f64 (/.f64 y.im y.re) y.im))) (fma.f64 (/.f64 y.im y.re) x.im x.re)))
27.1b
(+.f64 0 (*.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (pow.f64 (hypot.f64 y.re y.im) -2)))
Compiler

Compiled 5556 to 2071 computations (62.7% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(fma.f64 x.re y.re (*.f64 x.im y.im))
0.3b
(/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)) (sqrt.f64 (hypot.f64 y.re y.im)))
0.3b
(/.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)) (sqrt.f64 (hypot.f64 y.re y.im))) (sqrt.f64 (hypot.f64 y.re y.im)))
17.6b
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im))

series276.0ms (4.8%)

Counts
2 → 80
Calls

2 calls:

180.0ms
(/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)) (sqrt.f64 (hypot.f64 y.re y.im)))
96.0ms
(/.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)) (sqrt.f64 (hypot.f64 y.re y.im))) (sqrt.f64 (hypot.f64 y.re y.im)))

rewrite67.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
302×prod-diff_binary64
234×expm1-udef_binary64
234×log1p-udef_binary64
130×add-sqr-sqrt_binary64
121×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01242
125734
2363034
Stop Event
node limit
Counts
2 → 88
Calls

2 calls:

65.0ms
(/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)) (sqrt.f64 (hypot.f64 y.re y.im)))
65.0ms
(/.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)) (sqrt.f64 (hypot.f64 y.re y.im))) (sqrt.f64 (hypot.f64 y.re y.im)))

simplify67.0ms (1.2%)

Algorithm
egg-herbie
Rules
843×fma-neg_binary64
361×associate-*r*_binary64
339×associate-*l*_binary64
291×cancel-sign-sub-inv_binary64
269×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0983222
12782436
29352315
341952315
Stop Event
node limit
Counts
168 → 131

prune182.0ms (3.2%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New2491250
Fresh077
Picked011
Done000
Total2499258
Error
0.0b
Counts
258 → 9
Alt Table
StatusErrorProgram
24.4b
(fma.f64 x.im (/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re))) (*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re))
18.9b
(/.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)) (sqrt.f64 (hypot.f64 y.re y.im))) (sqrt.f64 (hypot.f64 y.re y.im)))
46.2b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (/.f64 y.im y.re) x.im x.re))
46.3b
(/.f64 (/.f64 (fma.f64 (/.f64 y.im y.re) x.im x.re) (sqrt.f64 (hypot.f64 y.re y.im))) (sqrt.f64 (hypot.f64 y.re y.im)))
42.2b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (/.f64 x.re y.im) y.re x.im))
31.8b
(fma.f64 (/.f64 y.im y.re) (/.f64 x.im y.re) (/.f64 x.re y.re))
32.2b
(fma.f64 (/.f64 y.re y.im) (/.f64 x.re y.im) (/.f64 x.im y.im))
43.5b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (-.f64 (*.f64 1/2 (*.f64 (/.f64 x.re y.re) (*.f64 (/.f64 y.im y.re) y.im))) (fma.f64 (/.f64 y.im y.re) x.im x.re)))
27.1b
(+.f64 0 (*.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (pow.f64 (hypot.f64 y.re y.im) -2)))
Compiler

Compiled 6659 to 2168 computations (67.4% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.3b
(fma.f64 x.im (/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re))) (*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re))
2.6b
(*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re)
17.3b
(/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re)))
19.2b
(/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re)))

series209.0ms (3.7%)

Counts
4 → 132
Calls

4 calls:

120.0ms
(fma.f64 x.im (/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re))) (*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re))
63.0ms
(*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re)
14.0ms
(/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re)))
12.0ms
(/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re)))

rewrite58.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
359×prod-diff_binary64
210×expm1-udef_binary64
210×log1p-udef_binary64
195×log-pow_binary64
117×egg-rr
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01164
122959
2306759
Stop Event
node limit
Counts
4 → 117
Calls

4 calls:

56.0ms
(fma.f64 x.im (/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re))) (*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re))
56.0ms
(*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re)
56.0ms
(/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re)))
56.0ms
(/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re)))

simplify79.0ms (1.4%)

Algorithm
egg-herbie
Rules
443×times-frac_binary64
364×associate-/l*_binary64
310×sub-neg_binary64
301×associate-/r*_binary64
279×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01103318
12813210
28913069
346333069
Stop Event
node limit
Counts
249 → 183

prune133.0ms (2.3%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New1803183
Fresh347
Picked101
Done011
Total1848192
Error
0.0b
Counts
192 → 8
Alt Table
StatusErrorProgram
31.8b
(fma.f64 (/.f64 y.im y.re) (/.f64 x.im y.re) (/.f64 x.re y.re))
25.9b
(+.f64 (*.f64 (/.f64 y.re (pow.f64 (hypot.f64 y.im y.re) 2)) x.re) (/.f64 (*.f64 x.im y.im) (pow.f64 (hypot.f64 y.im y.re) 2)))
14.1b
(fma.f64 x.im (/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re))) (*.f64 (*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 y.re (hypot.f64 y.im y.re))) x.re))
27.1b
(+.f64 0 (*.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (pow.f64 (hypot.f64 y.re y.im) -2)))
18.9b
(/.f64 (/.f64 (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)) (sqrt.f64 (hypot.f64 y.re y.im))) (sqrt.f64 (hypot.f64 y.re y.im)))
46.3b
(/.f64 (/.f64 (fma.f64 (/.f64 y.im y.re) x.im x.re) (sqrt.f64 (hypot.f64 y.re y.im))) (sqrt.f64 (hypot.f64 y.re y.im)))
32.2b
(fma.f64 (/.f64 y.re y.im) (/.f64 x.re y.im) (/.f64 x.im y.im))
14.6b
(fma.f64 x.im (/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re))) (*.f64 (*.f64 (/.f64 (pow.f64 (cbrt.f64 y.re) 2) (hypot.f64 y.im y.re)) (/.f64 (cbrt.f64 y.re) (hypot.f64 y.im y.re))) x.re))
Compiler

Compiled 4713 to 1885 computations (60% saved)

regimes1.8s (31.5%)

Accuracy

Total 6.0b remaining (98.5%)

Threshold costs 0b (0%)

Counts
162 → 5
Compiler

Compiled 16378 to 9554 computations (41.7% saved)

bsearch70.0ms (1.2%)

Steps
ItersRangePoint
7
6.562056014661816e+146
1.3431863955885362e+149
2.8787453566117075e+148
5
4.99906880909566e-176
1.908895327455839e-175
1.642430271924372e-175
7
-1.2099652610369252e-134
-2.478227783215375e-136
-6.458426761032663e-136
7
-5.736318420317651e+152
-4.5476779251414906e+150
-5.165129542917535e+152
Compiler

Compiled 5 to 4 computations (20% saved)

simplify4.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
036132
140132
Stop Event
saturated

end159.0ms (2.8%)

Compiler

Compiled 363 to 171 computations (52.9% saved)

Profiling

Loading profile data...