Details

Time bar (total: 5.6s)

analyze701.0ms (12.5%)

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

Results
1.1s8256×body128valid
63.0ms502×body128invalid
Compiler

Compiled 59 to 35 computations (40.7% saved)

simplify9.0ms (0.2%)

Algorithm
egg-herbie
Rules
fma-def_binary64
+-commutative_binary64
*-commutative_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01218
11818
22218
32218

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
31.9b
Counts
3 → 1
Alt Table
StatusErrorProgram
31.9b
(/.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 3 expressions with local error:

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

series84.0ms (1.5%)

Counts
3 → 120
Calls

3 calls:

68.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))
5.0ms
(fma.f64 y.re y.re (*.f64 y.im y.im))

rewrite85.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
512×log-prod_binary64
348×prod-diff_binary64
186×expm1-udef_binary64
186×log1p-udef_binary64
175×pow3_binary64
Counts
3 → 97
Calls

3 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01034
120332
2245732
3497632
4515332
000
100

simplify56.0ms (1%)

Algorithm
egg-herbie
Rules
608×associate-*l/_binary64
519×fma-def_binary64
472×associate-/r/_binary64
341×fma-neg_binary64
285×associate-/l/_binary64
Counts
217 → 129
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0421830
11121710
23521626
315831578
452001578

prune177.0ms (3.2%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New11910129
Fresh000
Picked101
Done000
Total12010130
Error
2.4b
Counts
130 → 10
Alt Table
StatusErrorProgram
21.2b
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x.re y.re (*.f64 x.im y.im))) 2) (hypot.f64 y.re y.im)) (/.f64 (cbrt.f64 (fma.f64 x.re y.re (*.f64 x.im y.im))) (hypot.f64 y.re y.im)))
20.7b
(*.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)))
38.8b
(/.f64 x.re y.re)
36.0b
(+.f64 (/.f64 x.im y.im) (*.f64 (/.f64 y.re (*.f64 y.im y.im)) (-.f64 x.re (/.f64 (*.f64 x.im y.re) y.im))))
34.1b
(fma.f64 y.re (/.f64 x.re (*.f64 y.im y.im)) (/.f64 x.im y.im))
36.1b
(/.f64 x.im y.im)
49.8b
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (/.f64 (-.f64 (*.f64 (*.f64 y.re y.re) (*.f64 y.re y.re)) (pow.f64 y.im 4)) (-.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))))
30.6b
(fma.f64 x.im (/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re))) (/.f64 (*.f64 y.re x.re) (fma.f64 y.im y.im (*.f64 y.re y.re))))
32.0b
(pow.f64 (/.f64 (pow.f64 (hypot.f64 y.re y.im) 2) (fma.f64 x.re y.re (*.f64 x.im y.im))) -1)
43.8b
(pow.f64 (/.f64 (sqrt.f64 (fma.f64 x.re y.re (*.f64 x.im y.im))) (hypot.f64 y.re y.im)) 2)
Compiler

Compiled 2643 to 941 computations (64.4% 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.3b
(fma.f64 x.re y.re (*.f64 x.im y.im))
0.3b
(*.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)))
19.3b
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im))

series267.0ms (4.8%)

Counts
3 → 120
Calls

3 calls:

131.0ms
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im))
122.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)))
14.0ms
(/.f64 1 (hypot.f64 y.re y.im))

rewrite102.0ms (1.8%)

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
Counts
3 → 127
Calls

3 calls:

99.0ms
(/.f64 1 (hypot.f64 y.re y.im))
99.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)))
99.0ms
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01241
124538
2294438
3562738
000
100

simplify93.0ms (1.7%)

Algorithm
egg-herbie
Rules
617×fma-neg_binary64
600×times-frac_binary64
438×associate-/l*_binary64
337×associate-/r*_binary64
329×fma-def_binary64
Counts
247 → 211
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01193272
13762866
212822666
347412658
451672658

prune163.0ms (2.9%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New2388246
Fresh729
Picked011
Done000
Total24511256
Error
0.0b
Counts
256 → 11
Alt Table
StatusErrorProgram
46.9b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (neg.f64 (fma.f64 (/.f64 y.im y.re) x.im x.re)))
20.7b
(*.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)))
44.0b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (/.f64 y.im y.re) x.im x.re))
36.0b
(+.f64 (/.f64 x.im y.im) (*.f64 (/.f64 y.re (*.f64 y.im y.im)) (-.f64 x.re (/.f64 (*.f64 x.im y.re) y.im))))
33.7b
(fma.f64 (/.f64 y.im y.re) (/.f64 x.im y.re) (/.f64 x.re y.re))
34.1b
(fma.f64 y.re (/.f64 x.re (*.f64 y.im y.im)) (/.f64 x.im y.im))
31.5b
(*.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (pow.f64 (hypot.f64 y.re y.im) -2))
30.1b
(fma.f64 (/.f64 x.re y.im) (/.f64 y.re y.im) (/.f64 x.im y.im))
32.9b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (cbrt.f64 (pow.f64 (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)) 3)))
20.8b
(*.f64 (pow.f64 (pow.f64 (hypot.f64 y.re y.im) -1/2) 2) (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)))
45.8b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (neg.f64 (fma.f64 (/.f64 x.re y.im) y.re x.im)))
Compiler

Compiled 5672 to 2114 computations (62.7% saved)

localize14.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 (pow.f64 (pow.f64 (hypot.f64 y.re y.im) -1/2) 2) (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)))
0.5b
(pow.f64 (pow.f64 (hypot.f64 y.re y.im) -1/2) 2)
19.3b
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im))

series129.0ms (2.3%)

Counts
2 → 72
Calls

2 calls:

94.0ms
(*.f64 (pow.f64 (pow.f64 (hypot.f64 y.re y.im) -1/2) 2) (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)))
34.0ms
(pow.f64 (pow.f64 (hypot.f64 y.re y.im) -1/2) 2)

rewrite60.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
254×prod-diff_binary64
251×expm1-udef_binary64
251×log1p-udef_binary64
234×log-pow_binary64
144×add-sqr-sqrt_binary64
Counts
2 → 51
Calls

2 calls:

59.0ms
(*.f64 (pow.f64 (pow.f64 (hypot.f64 y.re y.im) -1/2) 2) (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)))
59.0ms
(pow.f64 (pow.f64 (hypot.f64 y.re y.im) -1/2) 2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01430
129824
2334724
3492224
000
100

simplify64.0ms (1.1%)

Algorithm
egg-herbie
Rules
743×fma-neg_binary64
512×distribute-neg-frac_binary64
332×times-frac_binary64
272×associate-/l*_binary64
224×cancel-sign-sub-inv_binary64
Counts
123 → 99
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0861890
12491802
28091702
334991694
451981694

prune192.0ms (3.4%)

Pruning

12 alts after pruning (10 fresh and 2 done)

PrunedKeptTotal
New2191220
Fresh099
Picked011
Done011
Total21912231
Error
0.0b
Counts
231 → 12
Alt Table
StatusErrorProgram
46.9b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (neg.f64 (fma.f64 (/.f64 y.im y.re) x.im x.re)))
20.7b
(*.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)))
44.0b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (/.f64 y.im y.re) x.im x.re))
36.0b
(+.f64 (/.f64 x.im y.im) (*.f64 (/.f64 y.re (*.f64 y.im y.im)) (-.f64 x.re (/.f64 (*.f64 x.im y.re) y.im))))
33.7b
(fma.f64 (/.f64 y.im y.re) (/.f64 x.im y.re) (/.f64 x.re y.re))
34.1b
(fma.f64 y.re (/.f64 x.re (*.f64 y.im y.im)) (/.f64 x.im y.im))
31.5b
(*.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (pow.f64 (hypot.f64 y.re y.im) -2))
30.1b
(fma.f64 (/.f64 x.re y.im) (/.f64 y.re y.im) (/.f64 x.im y.im))
45.8b
(*.f64 (pow.f64 (pow.f64 (hypot.f64 y.re y.im) -1/2) 2) (neg.f64 (fma.f64 (/.f64 x.re y.im) y.re x.im)))
32.9b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (cbrt.f64 (pow.f64 (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)) 3)))
20.8b
(*.f64 (pow.f64 (pow.f64 (hypot.f64 y.re y.im) -1/2) 2) (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)))
45.8b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (neg.f64 (fma.f64 (/.f64 x.re y.im) y.re x.im)))
Compiler

Compiled 5448 to 2261 computations (58.5% saved)

localize10.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
1.8b
(fma.f64 (/.f64 x.re y.im) (/.f64 y.re y.im) (/.f64 x.im y.im))

series29.0ms (0.5%)

Counts
1 → 48
Calls

1 calls:

29.0ms
(fma.f64 (/.f64 x.re y.im) (/.f64 y.re y.im) (/.f64 x.im y.im))

rewrite49.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
532×log-prod_binary64
278×prod-diff_binary64
181×expm1-udef_binary64
181×log1p-udef_binary64
166×log-pow_binary64
Counts
1 → 30
Calls

1 calls:

48.0ms
(fma.f64 (/.f64 x.re y.im) (/.f64 y.re y.im) (/.f64 x.im y.im))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0914
119114
2258414
3509514
000
100

simplify130.0ms (2.3%)

Algorithm
egg-herbie
Rules
984×associate-/r/_binary64
976×*-commutative_binary64
624×times-frac_binary64
533×associate-/l/_binary64
434×unswap-sqr_binary64
Counts
78 → 35
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
011660
120660
237588
383588
4202588
5611588
62273588
73120588
83121588
93275588
103464588
113600588
123944588
134798588
144793588

prune22.0ms (0.4%)

Pruning

13 alts after pruning (10 fresh and 3 done)

PrunedKeptTotal
New34135
Fresh099
Picked011
Done022
Total341347
Error
0.0b
Counts
47 → 13
Alt Table
StatusErrorProgram
46.9b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (neg.f64 (fma.f64 (/.f64 y.im y.re) x.im x.re)))
20.7b
(*.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)))
44.0b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (/.f64 y.im y.re) x.im x.re))
36.0b
(+.f64 (/.f64 x.im y.im) (*.f64 (/.f64 y.re (*.f64 y.im y.im)) (-.f64 x.re (/.f64 (*.f64 x.im y.re) y.im))))
33.7b
(fma.f64 (/.f64 y.im y.re) (/.f64 x.im y.re) (/.f64 x.re y.re))
34.1b
(fma.f64 y.re (/.f64 x.re (*.f64 y.im y.im)) (/.f64 x.im y.im))
31.5b
(*.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (pow.f64 (hypot.f64 y.re y.im) -2))
30.1b
(fma.f64 (/.f64 x.re y.im) (/.f64 y.re y.im) (/.f64 x.im y.im))
45.8b
(*.f64 (pow.f64 (pow.f64 (hypot.f64 y.re y.im) -1/2) 2) (neg.f64 (fma.f64 (/.f64 x.re y.im) y.re x.im)))
30.6b
(*.f64 (cbrt.f64 (fma.f64 (/.f64 x.re y.im) (/.f64 y.re y.im) (/.f64 x.im y.im))) (pow.f64 (cbrt.f64 (fma.f64 (/.f64 x.re y.im) (/.f64 y.re y.im) (/.f64 x.im y.im))) 2))
32.9b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (cbrt.f64 (pow.f64 (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)) 3)))
20.8b
(*.f64 (pow.f64 (pow.f64 (hypot.f64 y.re y.im) -1/2) 2) (/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im)))
45.8b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (neg.f64 (fma.f64 (/.f64 x.re y.im) y.re x.im)))
Compiler

Compiled 800 to 253 computations (68.4% saved)

regimes1.7s (30.4%)

Accuracy

Total 11.8b remaining (98.7%)

Threshold costs 0b (0%)

Counts
113 → 5
Compiler

Compiled 10313 to 6204 computations (39.8% saved)

bsearch77.0ms (1.4%)

Steps
ItersRangePoint
9
3.627282684220053e+113
6.1617923709117596e+119
2.2666934726198564e+115
7
9.859358158521771e-48
2.1916706673406483e-46
1.0144811947290463e-47
6
-3.9297576502057126e-51
-7.667654871302878e-52
-7.788909268214381e-52
8
-4.3144961082925656e+88
-3.793265380744982e+85
-7.484249059006481e+87
Compiler

Compiled 5 to 4 computations (20% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
/-rgt-identity_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
042117
147117
246117

end171.0ms (3%)

Compiler

Compiled 414 to 219 computations (47.1% saved)

Profiling

Loading profile data...