Details

Time bar (total: 4.7s)

analyze765.0ms (16.2%)

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

Results
1.1s8256×body128valid
61.0ms488×body128invalid
Compiler

Compiled 40 to 24 computations (40% saved)

preprocess41.0ms (0.9%)

Algorithm
egg-herbie
Rules
905×fma-def_binary64
532×associate-/l*_binary64
381×fma-neg_binary64
305×div-sub_binary64
300×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
039140
1122140
2243140
3398140
4872140
51687140
63097140
044
Stop Event
saturated
node limit
Compiler

Compiled 19 to 11 computations (42.1% 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
28.4b
Counts
3 → 1
Alt Table
StatusErrorProgram
28.4b
(/.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)

localize11.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.5b
(fma.f64 y.im (neg.f64 x.re) (*.f64 x.im y.re))
27.9b
(/.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)))

series83.0ms (1.8%)

Counts
2 → 96
Calls

24 calls:

12.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)))
x.im
0
11.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)))
x.im
inf
11.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)))
x.re
inf
9.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)))
x.re
-inf
9.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)))
x.im
-inf

rewrite45.0ms (1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
01130
122625
2290225
Stop Event
node limit
Counts
2 → 65

simplify46.0ms (1%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
0471722
11331638
23901599
318361554
Stop Event
node limit
Counts
161 → 92

prune59.0ms (1.3%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New83992
Fresh000
Picked101
Done000
Total84993
Error
0.7b
Counts
93 → 9
Alt Table
StatusErrorProgram
28.6b
(*.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))))
40.8b
(/.f64 x.im (/.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) y.re))
33.6b
(-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 y.im y.re) (/.f64 x.re y.re)))
32.1b
(-.f64 (*.f64 (/.f64 (/.f64 y.re y.im) y.im) (+.f64 x.im (/.f64 (*.f64 y.re x.re) y.im))) (/.f64 x.re y.im))
37.9b
(/.f64 x.im y.re)
36.5b
(*.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)))
44.6b
(sqrt.f64 (pow.f64 (/.f64 (fma.f64 y.im x.re (*.f64 x.im y.re)) (pow.f64 (hypot.f64 y.im y.re) 2)) 2))
30.5b
(fma.f64 x.im (/.f64 (/.f64 y.re y.im) y.im) (/.f64 (neg.f64 x.re) y.im))
38.0b
(-.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))))
Compiler

Compiled 1968 to 719 computations (63.5% saved)

localize10.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.7b
(-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re))
27.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))))

series149.0ms (3.1%)

Counts
4 → 144
Calls

36 calls:

17.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))))
x.im
inf
16.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))))
x.im
-inf
15.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))))
x.re
inf
15.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))))
x.re
0
14.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))))
x.im
0

rewrite63.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
253×expm1-udef_binary64
253×log1p-udef_binary64
161×add-sqr-sqrt_binary64
157×pow1_binary64
155×*-un-lft-identity_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01547
132743
2425943
Stop Event
node limit
Counts
4 → 143

simplify77.0ms (1.6%)

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

prune143.0ms (3%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New2125217
Fresh538
Picked011
Done000
Total2179226
Error
0.1b
Counts
226 → 9
Alt Table
StatusErrorProgram
28.6b
(*.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))))
33.6b
(-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 y.im y.re) (/.f64 x.re y.re)))
32.1b
(-.f64 (*.f64 (/.f64 (/.f64 y.re y.im) y.im) (+.f64 x.im (/.f64 (*.f64 y.re x.re) y.im))) (/.f64 x.re y.im))
31.4b
(-.f64 (/.f64 y.re (*.f64 (/.f64 y.im x.im) y.im)) (/.f64 x.re y.im))
26.3b
(-.f64 (*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))) (/.f64 x.re (/.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) y.im)))
36.5b
(*.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)))
34.5b
(-.f64 (fma.f64 (/.f64 x.im y.im) (/.f64 y.re y.im) (/.f64 y.re (/.f64 (pow.f64 y.im 3) (*.f64 y.re x.re)))) (/.f64 x.re y.im))
34.5b
(-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 (/.f64 y.im y.re) y.re) x.re))
28.4b
(/.f64 (neg.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re))) (pow.f64 (hypot.f64 y.im y.re) 2))
Compiler

Compiled 5275 to 2354 computations (55.4% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
3.8b
(*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im))))
4.5b
(/.f64 x.re (/.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) y.im))
19.3b
(/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))
20.2b
(/.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) y.im)

series148.0ms (3.1%)

Counts
4 → 120
Calls

30 calls:

18.0ms
(*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im))))
x.im
-inf
16.0ms
(/.f64 x.re (/.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) y.im))
x.re
-inf
15.0ms
(/.f64 x.re (/.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) y.im))
x.re
0
14.0ms
(*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im))))
x.im
0
14.0ms
(*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im))))
x.im
inf

rewrite62.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
218×expm1-udef_binary64
218×log1p-udef_binary64
191×log-pow_binary64
175×log-div_binary64
140×prod-diff_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01150
123746
2335846
Stop Event
node limit
Counts
4 → 133

simplify70.0ms (1.5%)

Algorithm
egg-herbie
Rules
496×times-frac_binary64
406×associate-/l*_binary64
313×associate-/r*_binary64
237×sub-neg_binary64
226×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01032568
12662520
28442397
347232397
Stop Event
node limit
Counts
253 → 189

prune147.0ms (3.1%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New1881189
Fresh077
Picked011
Done011
Total18810198
Error
0.1b
Counts
198 → 10
Alt Table
StatusErrorProgram
28.6b
(*.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))))
33.6b
(-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 y.im y.re) (/.f64 x.re y.re)))
32.1b
(-.f64 (*.f64 (/.f64 (/.f64 y.re y.im) y.im) (+.f64 x.im (/.f64 (*.f64 y.re x.re) y.im))) (/.f64 x.re y.im))
31.4b
(-.f64 (/.f64 y.re (*.f64 (/.f64 y.im x.im) y.im)) (/.f64 x.re y.im))
26.3b
(-.f64 (*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))) (/.f64 x.re (/.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) y.im)))
36.5b
(*.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)))
34.5b
(-.f64 (fma.f64 (/.f64 x.im y.im) (/.f64 y.re y.im) (/.f64 y.re (/.f64 (pow.f64 y.im 3) (*.f64 y.re x.re)))) (/.f64 x.re y.im))
34.5b
(-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 (/.f64 y.im y.re) y.re) x.re))
28.4b
(/.f64 (neg.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re))) (pow.f64 (hypot.f64 y.im y.re) 2))
16.9b
(-.f64 (*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))) (/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re))))
Compiler

Compiled 5243 to 1928 computations (63.2% saved)

localize12.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (/.f64 y.re y.im) y.re)
3.8b
(*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im))))
4.5b
(/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re)))
19.3b
(/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))

series62.0ms (1.3%)

Counts
2 → 60
Calls

15 calls:

13.0ms
(/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re)))
x.re
-inf
12.0ms
(/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re)))
x.re
0
12.0ms
(/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re)))
x.re
inf
3.0ms
(/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re)))
y.re
inf
3.0ms
(/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re)))
y.im
0

rewrite48.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
857×prod-diff_binary64
174×expm1-udef_binary64
174×log1p-udef_binary64
129×fma-neg_binary64
97×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0820
118118
2274018
Stop Event
node limit
Counts
2 → 57

simplify35.0ms (0.7%)

Algorithm
egg-herbie
Rules
555×fma-def_binary64
521×associate-/r/_binary64
383×fma-neg_binary64
291×associate-/l/_binary64
200×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0461032
11181032
2365975
31890936
Stop Event
node limit
Counts
117 → 76

prune136.0ms (2.9%)

Pruning

10 alts after pruning (7 fresh and 3 done)

PrunedKeptTotal
New1651166
Fresh167
Picked011
Done022
Total16610176
Error
0.0b
Counts
176 → 10
Alt Table
StatusErrorProgram
28.6b
(*.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))))
33.6b
(-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 y.im y.re) (/.f64 x.re y.re)))
32.1b
(-.f64 (*.f64 (/.f64 (/.f64 y.re y.im) y.im) (+.f64 x.im (/.f64 (*.f64 y.re x.re) y.im))) (/.f64 x.re y.im))
31.4b
(-.f64 (/.f64 y.re (*.f64 (/.f64 y.im x.im) y.im)) (/.f64 x.re y.im))
26.3b
(-.f64 (*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))) (/.f64 x.re (/.f64 (fma.f64 y.re y.re (*.f64 y.im y.im)) y.im)))
35.9b
(-.f64 (*.f64 x.im (pow.f64 (/.f64 (sqrt.f64 y.re) (hypot.f64 y.re y.im)) 2)) (/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re))))
34.5b
(-.f64 (fma.f64 (/.f64 x.im y.im) (/.f64 y.re y.im) (/.f64 y.re (/.f64 (pow.f64 y.im 3) (*.f64 y.re x.re)))) (/.f64 x.re y.im))
34.5b
(-.f64 (/.f64 x.im y.re) (*.f64 (/.f64 (/.f64 y.im y.re) y.re) x.re))
28.4b
(/.f64 (neg.f64 (-.f64 (*.f64 y.im x.re) (*.f64 x.im y.re))) (pow.f64 (hypot.f64 y.im y.re) 2))
16.9b
(-.f64 (*.f64 x.im (/.f64 y.re (fma.f64 y.re y.re (*.f64 y.im y.im)))) (/.f64 x.re (+.f64 y.im (*.f64 (/.f64 y.re y.im) y.re))))
Compiler

Compiled 4408 to 1496 computations (66.1% saved)

regimes1.1s (24%)

Accuracy

Total 4.4b remaining (95.6%)

Threshold costs 0b (0%)

Counts
71 → 3
Compiler

Compiled 6713 to 4074 computations (39.3% saved)

bsearch61.0ms (1.3%)

Algorithm
binary-search
Calls

2 calls:

56.0ms
y.re
2.0ms
y.re
Steps
ItersPointRange
-3.9696921097903e-311
∈ [
-2.4589133606071e-308
,
5.141751627714131e-306
]
-7.579958549150986e+153
∈ [
-1.3891652471045586e+155
,
-4.1192307090218054e+152
]
Compiler

Compiled 5 to 4 computations (20% saved)

simplify4.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02989
13689
24589
34989
45289
55389
Stop Event
saturated

end129.0ms (2.7%)

Stop Event
fuel
Compiler

Compiled 329 to 174 computations (47.1% saved)

Profiling

Loading profile data...