Details

Time bar (total: 5.1s)

analyze763.0ms (14.8%)

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 (23.1%)

Results
1.1s8256×body128valid
60.0ms479×body128invalid
Compiler

Compiled 59 to 35 computations (40.7% saved)

simplify35.0ms (0.7%)

Algorithm
egg-herbie
Rules
832×fma-def_binary64
768×times-frac_binary64
756×fma-neg_binary64
281×associate-/l*_binary64
228×div-sub_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01220
12520
25120
38220
416620
529720
648820
773820
8119920
9180020
10276920
11492820
Stop Event
node limit
Counts
1 → 2

prune3.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 69 to 35 computations (49.3% saved)

localize9.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 y.re y.re (*.f64 y.im y.im))
0.5b
(fma.f64 y.im (neg.f64 x.re) (*.f64 x.im y.re))
24.1b
(/.f64 (fma.f64 y.im (neg.f64 x.re) (*.f64 x.im y.re)) (fma.f64 y.re y.re (*.f64 y.im y.im)))

series91.0ms (1.8%)

Counts
3 → 120
Calls

3 calls:

75.0ms
(/.f64 (fma.f64 y.im (neg.f64 x.re) (*.f64 x.im y.re)) (fma.f64 y.re y.re (*.f64 y.im y.im)))
9.0ms
(fma.f64 y.im (neg.f64 x.re) (*.f64 x.im y.re))
7.0ms
(fma.f64 y.re y.re (*.f64 y.im y.im))

rewrite50.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
527×log-prod_binary64
286×prod-diff_binary64
190×expm1-udef_binary64
190×log1p-udef_binary64
175×log-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01138
122632
2292132
Stop Event
node limit
Counts
3 → 94
Calls

3 calls:

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

simplify48.0ms (0.9%)

Algorithm
egg-herbie
Rules
643×fma-def_binary64
469×cancel-sign-sub-inv_binary64
421×associate-/r/_binary64
414×fma-neg_binary64
298×associate-/l/_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0481926
11331806
23901767
318361722
Stop Event
node limit
Counts
214 → 128

prune85.0ms (1.6%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1226128
Fresh000
Picked011
Done000
Total1227129
Error
0.8b
Counts
129 → 7
Alt Table
StatusErrorProgram
24.7b
(*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2))))
32.2b
(-.f64 (*.f64 x.im (/.f64 (/.f64 y.re y.im) y.im)) (/.f64 x.re y.im))
24.6b
(/.f64 (fma.f64 y.im (neg.f64 x.re) (*.f64 x.im y.re)) (fma.f64 y.re y.re (*.f64 y.im y.im)))
40.1b
(pow.f64 (cbrt.f64 (/.f64 (fma.f64 y.im x.re (*.f64 x.im y.re)) (pow.f64 (hypot.f64 y.im y.re) 2))) 3)
37.9b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 (fma.f64 y.im x.re (*.f64 x.im y.re)) (hypot.f64 y.im y.re)))
35.8b
(-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 y.im (*.f64 y.re y.re)) (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re))))
32.8b
(fma.f64 (/.f64 y.im y.re) (/.f64 (neg.f64 x.re) y.re) (/.f64 x.im y.re))
Compiler

Compiled 2528 to 883 computations (65.1% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 y.im y.re)
0.5b
(/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2)))
0.9b
(-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re))
24.1b
(*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2))))

series145.0ms (2.8%)

Counts
4 → 144
Calls

4 calls:

106.0ms
(*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2))))
19.0ms
(/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2)))
10.0ms
(hypot.f64 y.im y.re)
10.0ms
(-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re))

rewrite65.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
253×expm1-udef_binary64
253×log1p-udef_binary64
157×add-sqr-sqrt_binary64
149×log1p-expm1-u_binary64
149×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01547
132643
2425043
Stop Event
node limit
Counts
4 → 143
Calls

4 calls:

62.0ms
(hypot.f64 y.im y.re)
62.0ms
(/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2)))
62.0ms
(-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re))
62.0ms
(*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2))))

simplify72.0ms (1.4%)

Algorithm
egg-herbie
Rules
505×times-frac_binary64
338×associate-/l*_binary64
307×sub-neg_binary64
247×associate-/r*_binary64
228×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01142810
13262708
29892653
347692653
Stop Event
node limit
Counts
287 → 217

prune144.0ms (2.8%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New2143217
Fresh145
Picked011
Done011
Total2159224
Error
0.1b
Counts
224 → 9
Alt Table
StatusErrorProgram
24.7b
(*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2))))
32.2b
(-.f64 (*.f64 x.im (/.f64 (/.f64 y.re y.im) y.im)) (/.f64 x.re y.im))
24.6b
(/.f64 (fma.f64 y.im (neg.f64 x.re) (*.f64 x.im y.re)) (fma.f64 y.re y.re (*.f64 y.im y.im)))
40.1b
(pow.f64 (cbrt.f64 (/.f64 (fma.f64 y.im x.re (*.f64 x.im y.re)) (pow.f64 (hypot.f64 y.im y.re) 2))) 3)
35.8b
(-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 y.im (*.f64 y.re y.re)) (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re))))
32.8b
(fma.f64 (/.f64 y.im y.re) (/.f64 (neg.f64 x.re) y.re) (/.f64 x.im y.re))
37.8b
(*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im))))
32.3b
(-.f64 (/.f64 y.re (*.f64 (/.f64 y.im x.im) y.im)) (/.f64 x.re y.im))
33.1b
(-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 (/.f64 y.im y.re) y.re) x.re))
Compiler

Compiled 5215 to 2333 computations (55.3% saved)

localize8.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (/.f64 y.re y.im) y.im)
1.8b
(-.f64 (*.f64 x.im (/.f64 (/.f64 y.re y.im) y.im)) (/.f64 x.re y.im))
6.4b
(*.f64 x.im (/.f64 (/.f64 y.re y.im) y.im))

series123.0ms (2.4%)

Counts
3 → 108
Calls

3 calls:

52.0ms
(*.f64 x.im (/.f64 (/.f64 y.re y.im) y.im))
48.0ms
(-.f64 (*.f64 x.im (/.f64 (/.f64 y.re y.im) y.im)) (/.f64 x.re y.im))
23.0ms
(/.f64 (/.f64 y.re y.im) y.im)

rewrite68.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
295×fma-def_binary64
214×expm1-udef_binary64
214×log1p-udef_binary64
194×egg-rr
190×log-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01033
122630
2345430
Stop Event
node limit
Counts
3 → 194
Calls

3 calls:

64.0ms
(/.f64 (/.f64 y.re y.im) y.im)
64.0ms
(-.f64 (*.f64 x.im (/.f64 (/.f64 y.re y.im) y.im)) (/.f64 x.re y.im))
64.0ms
(*.f64 x.im (/.f64 (/.f64 y.re y.im) y.im))

simplify45.0ms (0.9%)

Algorithm
egg-herbie
Rules
770×times-frac_binary64
637×associate-/l/_binary64
393×associate-/l*_binary64
241×associate-*l*_binary64
211×associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0141200
1271200
2521200
31171200
43271200
511811200
Stop Event
node limit
Counts
302 → 202

prune111.0ms (2.2%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New1984202
Fresh246
Picked101
Done022
Total20110211
Error
0.1b
Counts
211 → 10
Alt Table
StatusErrorProgram
31.1b
(fma.f64 (/.f64 y.re y.im) (*.f64 (/.f64 1 y.im) x.im) (/.f64 (neg.f64 x.re) y.im))
24.7b
(*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2))))
32.3b
(-.f64 (/.f64 x.im (*.f64 y.im (/.f64 y.im y.re))) (/.f64 x.re y.im))
35.8b
(-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 y.im (*.f64 y.re y.re)) (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re))))
24.6b
(/.f64 (fma.f64 y.im (neg.f64 x.re) (*.f64 x.im y.re)) (fma.f64 y.re y.re (*.f64 y.im y.im)))
31.2b
(fma.f64 (/.f64 x.im (pow.f64 (cbrt.f64 y.im) 2)) (/.f64 (/.f64 y.re y.im) (cbrt.f64 y.im)) (/.f64 (neg.f64 x.re) y.im))
33.4b
(-.f64 (pow.f64 (cbrt.f64 (/.f64 (/.f64 (*.f64 x.im y.re) y.im) y.im)) 3) (/.f64 x.re y.im))
32.8b
(fma.f64 (/.f64 y.im y.re) (/.f64 (neg.f64 x.re) y.re) (/.f64 x.im y.re))
32.3b
(-.f64 (/.f64 y.re (*.f64 (/.f64 y.im x.im) y.im)) (/.f64 x.re y.im))
33.1b
(-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 (/.f64 y.im y.re) y.re) x.re))
Compiler

Compiled 4193 to 1137 computations (72.9% saved)

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (/.f64 1 y.im) x.im)
3.6b
(fma.f64 (/.f64 y.re y.im) (*.f64 (/.f64 1 y.im) x.im) (/.f64 (neg.f64 x.re) y.im))

series32.0ms (0.6%)

Counts
2 → 72
Calls

2 calls:

27.0ms
(fma.f64 (/.f64 y.re y.im) (*.f64 (/.f64 1 y.im) x.im) (/.f64 (neg.f64 x.re) y.im))
5.0ms
(*.f64 (/.f64 1 y.im) x.im)

rewrite95.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
351×prod-diff_binary64
257×egg-rr
199×expm1-udef_binary64
199×log1p-udef_binary64
184×log-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01220
124818
2337718
Stop Event
node limit
Counts
2 → 257
Calls

2 calls:

85.0ms
(*.f64 (/.f64 1 y.im) x.im)
85.0ms
(fma.f64 (/.f64 y.re y.im) (*.f64 (/.f64 1 y.im) x.im) (/.f64 (neg.f64 x.re) y.im))

simplify39.0ms (0.8%)

Algorithm
egg-herbie
Rules
789×times-frac_binary64
602×associate-/l/_binary64
398×associate-/l*_binary64
241×associate-*l*_binary64
202×associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014768
127768
251768
3115768
4320768
51173768
Stop Event
node limit
Counts
329 → 263

prune173.0ms (3.4%)

Pruning

9 alts after pruning (6 fresh and 3 done)

PrunedKeptTotal
New2621263
Fresh257
Picked011
Done022
Total2649273
Error
0.1b
Counts
273 → 9
Alt Table
StatusErrorProgram
24.6b
(/.f64 (fma.f64 y.im (neg.f64 x.re) (*.f64 x.im y.re)) (fma.f64 y.re y.re (*.f64 y.im y.im)))
31.1b
(fma.f64 (/.f64 y.re y.im) (pow.f64 (cbrt.f64 (/.f64 x.im y.im)) 3) (/.f64 (neg.f64 x.re) y.im))
31.1b
(fma.f64 (/.f64 y.re y.im) (*.f64 (/.f64 1 y.im) x.im) (/.f64 (neg.f64 x.re) y.im))
24.7b
(*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 y.im y.re) 2))))
32.3b
(-.f64 (/.f64 x.im (*.f64 y.im (/.f64 y.im y.re))) (/.f64 x.re y.im))
35.8b
(-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 y.im (*.f64 y.re y.re)) (+.f64 x.re (/.f64 (*.f64 x.im y.im) y.re))))
32.8b
(fma.f64 (/.f64 y.im y.re) (/.f64 (neg.f64 x.re) y.re) (/.f64 x.im y.re))
32.3b
(-.f64 (/.f64 y.re (*.f64 (/.f64 y.im x.im) y.im)) (/.f64 x.re y.im))
33.1b
(-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 (/.f64 y.im y.re) y.re) x.re))
Compiler

Compiled 10139 to 3806 computations (62.5% saved)

regimes1.5s (29.2%)

Accuracy

Total 11.9b remaining (97.2%)

Threshold costs 0b (0%)

Counts
77 → 6
Compiler

Compiled 6448 to 4159 computations (35.5% saved)

bsearch81.0ms (1.6%)

Steps
ItersRangePoint
5
5.90120665875336e+62
2.0807438758843815e+63
1.8454883815855177e+63
7
5.1314403485896385e-111
1.7559298781140565e-109
1.700724934216277e-110
11
-1.2788452108889373e-88
-6.1878964206463e-110
-1.7029803518844395e-105
0
-1.7014204412768508e+24
-1.693526029288618e+24
-1.6974732352827345e+24
10
-1.447572801113306e+53
-2.3291054698633433e+41
-5.174874392946877e+44
Compiler

Compiled 5 to 4 computations (20% saved)

simplify10.0ms (0.2%)

Algorithm
egg-herbie
Rules
29×distribute-rgt-neg-in_binary64
22×cancel-sign-sub-inv_binary64
22×neg-sub0_binary64
21×neg-mul-1_binary64
20×sub-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
047141
165140
284140
3103138
4140138
5173138
6199138
7214138
8238138
9269138
10281138
Stop Event
saturated

end134.0ms (2.6%)

Compiler

Compiled 350 to 189 computations (46% saved)

Profiling

Loading profile data...