Details

Time bar (total: 5.6s)

analyze753.0ms (13.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.1s (20.5%)

Results
1.0s8256×body128valid
64.0ms498×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.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
26.7b
Counts
3 → 1
Alt Table
StatusErrorProgram
26.7b
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))
Compiler

Compiled 70 to 36 computations (48.6% saved)

localize9.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))
26.2b
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))

series74.0ms (1.3%)

Counts
2 → 96
Calls

2 calls:

66.0ms
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))
8.0ms
(+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))

rewrite56.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
506×fma-def_binary64
244×fma-neg_binary64
239×expm1-udef_binary64
239×log1p-udef_binary64
134×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01226
126425
2378225
Stop Event
node limit
Counts
2 → 94
Calls

2 calls:

54.0ms
(+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im))
54.0ms
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))

simplify59.0ms (1.1%)

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
318281410
Stop Event
node limit
Counts
190 → 119

prune83.0ms (1.5%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1136119
Fresh000
Picked011
Done000
Total1137120
Error
2.2b
Counts
120 → 7
Alt Table
StatusErrorProgram
19.8b
(*.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)))
35.7b
(/.f64 x.re y.re)
19.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)))
26.7b
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))
37.2b
(/.f64 x.im y.im)
23.2b
(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))
38.7b
(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 2522 to 802 computations (68.2% saved)

localize9.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 x.re y.re (*.f64 x.im y.im))
0.0b
(hypot.f64 y.re 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)))
17.9b
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im))

series186.0ms (3.3%)

Counts
4 → 168
Calls

4 calls:

88.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)))
78.0ms
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im))
11.0ms
(fma.f64 x.re y.re (*.f64 x.im y.im))
9.0ms
(hypot.f64 y.re y.im)

rewrite61.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
01246
124643
2315543
Stop Event
node limit
Counts
4 → 153
Calls

4 calls:

58.0ms
(fma.f64 x.re y.re (*.f64 x.im y.im))
58.0ms
(hypot.f64 y.re y.im)
58.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)))
58.0ms
(/.f64 (fma.f64 x.re y.re (*.f64 x.im y.im)) (hypot.f64 y.re y.im))

simplify56.0ms (1%)

Algorithm
egg-herbie
Rules
585×times-frac_binary64
422×associate-/l*_binary64
319×fma-def_binary64
314×associate-/r*_binary64
293×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01143496
13733040
213002876
Stop Event
node limit
Counts
321 → 244

prune200.0ms (3.6%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New2956301
Fresh415
Picked101
Done011
Total3008308
Error
0.0b
Counts
308 → 8
Alt Table
StatusErrorProgram
19.3b
(/.f64 (/.f64 1 (hypot.f64 y.re y.im)) (/.f64 (hypot.f64 y.re y.im) (fma.f64 x.re y.re (*.f64 x.im y.im))))
45.0b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (*.f64 (/.f64 x.re y.re) (*.f64 (/.f64 y.im y.re) y.im)) -1/2 (fma.f64 (/.f64 y.im y.re) x.im x.re)))
44.1b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (neg.f64 (fma.f64 (/.f64 y.im y.re) x.im x.re)))
26.7b
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))
44.5b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (/.f64 x.re y.im) y.re x.im))
23.2b
(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))
31.1b
(fma.f64 (/.f64 y.im y.re) (/.f64 x.im y.re) (/.f64 x.re y.re))
32.4b
(fma.f64 (/.f64 y.re y.im) (/.f64 x.re y.im) (/.f64 x.im y.im))
Compiler

Compiled 6919 to 2567 computations (62.9% saved)

localize9.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series137.0ms (2.5%)

Counts
2 → 96
Calls

2 calls:

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

rewrite60.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
281×prod-diff_binary64
221×expm1-udef_binary64
221×log1p-udef_binary64
207×log-pow_binary64
127×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01237
125231
2338231
Stop Event
node limit
Counts
2 → 79
Calls

2 calls:

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

simplify66.0ms (1.2%)

Algorithm
egg-herbie
Rules
534×cancel-sign-sub-inv_binary64
533×fma-def_binary64
280×associate-/l/_binary64
239×times-frac_binary64
239×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01373924
15113324
223623100
Stop Event
node limit
Counts
175 → 143

prune209.0ms (3.7%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New2910291
Fresh066
Picked011
Done011
Total2918299
Error
0.0b
Counts
299 → 8
Alt Table
StatusErrorProgram
19.3b
(/.f64 (/.f64 1 (hypot.f64 y.re y.im)) (/.f64 (hypot.f64 y.re y.im) (fma.f64 x.re y.re (*.f64 x.im y.im))))
45.0b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (*.f64 (/.f64 x.re y.re) (*.f64 (/.f64 y.im y.re) y.im)) -1/2 (fma.f64 (/.f64 y.im y.re) x.im x.re)))
44.1b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (neg.f64 (fma.f64 (/.f64 y.im y.re) x.im x.re)))
26.7b
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))
44.5b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (/.f64 x.re y.im) y.re x.im))
23.2b
(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))
31.1b
(fma.f64 (/.f64 y.im y.re) (/.f64 x.im y.re) (/.f64 x.re y.re))
32.4b
(fma.f64 (/.f64 y.re y.im) (/.f64 x.re y.im) (/.f64 x.im y.im))
Compiler

Compiled 7591 to 3177 computations (58.1% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.2b
(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))
4.0b
(*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re)
17.0b
(/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re)))
18.5b
(/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re)))

series203.0ms (3.6%)

Counts
4 → 132
Calls

4 calls:

115.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))
60.0ms
(*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re)
15.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)))

rewrite65.0ms (1.2%)

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:

62.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))
62.0ms
(*.f64 (/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re))) x.re)
62.0ms
(/.f64 y.re (fma.f64 y.im y.im (*.f64 y.re y.re)))
62.0ms
(/.f64 y.im (fma.f64 y.im y.im (*.f64 y.re y.re)))

simplify74.0ms (1.3%)

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

prune127.0ms (2.3%)

Pruning

8 alts after pruning (5 fresh and 3 done)

PrunedKeptTotal
New1830183
Fresh055
Picked011
Done022
Total1838191
Error
0.0b
Counts
191 → 8
Alt Table
StatusErrorProgram
19.3b
(/.f64 (/.f64 1 (hypot.f64 y.re y.im)) (/.f64 (hypot.f64 y.re y.im) (fma.f64 x.re y.re (*.f64 x.im y.im))))
45.0b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (*.f64 (/.f64 x.re y.re) (*.f64 (/.f64 y.im y.re) y.im)) -1/2 (fma.f64 (/.f64 y.im y.re) x.im x.re)))
44.1b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (neg.f64 (fma.f64 (/.f64 y.im y.re) x.im x.re)))
26.7b
(/.f64 (+.f64 (*.f64 x.re y.re) (*.f64 x.im y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))
44.5b
(*.f64 (/.f64 1 (hypot.f64 y.re y.im)) (fma.f64 (/.f64 x.re y.im) y.re x.im))
23.2b
(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))
31.1b
(fma.f64 (/.f64 y.im y.re) (/.f64 x.im y.re) (/.f64 x.re y.re))
32.4b
(fma.f64 (/.f64 y.re y.im) (/.f64 x.re y.im) (/.f64 x.im y.im))
Compiler

Compiled 4693 to 1876 computations (60% saved)

regimes1.6s (29%)

Accuracy

Total 10.8b remaining (98.7%)

Threshold costs 0b (0%)

Counts
128 → 5
Compiler

Compiled 11803 to 7189 computations (39.1% saved)

bsearch90.0ms (1.6%)

Steps
ItersRangePoint
4
3.5965325781940086e+140
5.90931478180851e+140
3.6360166068854995e+140
9
2.634451215286903e-71
3.60595376629138e-65
2.670610561569208e-71
8
-2.4141280899525958e-105
-1.8387138583883085e-108
-1.1965629553159867e-107
10
-1.1215020233833144e+95
-3.5217700334405997e+83
-1.1090419202097725e+95
Compiler

Compiled 5 to 4 computations (20% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
043121
152121
259119
366119
469119
570119
Stop Event
saturated

end209.0ms (3.7%)

Compiler

Compiled 325 to 168 computations (48.3% saved)

Profiling

Loading profile data...