Details

Time bar (total: 4.3s)

analyze463.0ms (10.8%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
50%50%0.1%3
50%50%0.1%4
62.4%37.5%0.1%5
62.4%37.5%0.1%6
68.7%31.2%0.1%7
68.7%31.2%0.1%8
71.8%28.1%0.1%9
71.8%28.1%0.1%10
73.4%26.5%0.1%11
73.4%26.5%0.1%12
74.1%25.8%0.1%13
74.1%25.8%0.1%14
Compiler

Compiled 18 to 13 computations (27.8% saved)

sample1.7s (40.4%)

Results
748.0ms6197×body128valid
347.0ms576×body4096valid
330.0ms653×body2048valid
176.0ms448×body1024valid
79.0ms253×body512valid
26.0ms129×body256valid
Compiler

Compiled 53 to 38 computations (28.3% saved)

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Rules
fma-def_binary64
*-commutative_binary64
+-commutative_binary64
distribute-lft-in_binary64
distribute-rgt-in_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01315
12515
22915
33115
43115

prune7.0ms (0.2%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
14.4b
Counts
3 → 2
Alt Table
StatusErrorProgram
14.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
41.3b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im))) re))))
Compiler

Compiled 85 to 61 computations (28.2% saved)

localize6.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 re im)
0.2b
(sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))
1.2b
(+.f64 re (hypot.f64 re im))

series47.0ms (1.1%)

Counts
3 → 56
Calls

3 calls:

29.0ms
(sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))
9.0ms
(hypot.f64 re im)
9.0ms
(+.f64 re (hypot.f64 re im))

rewrite59.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
844×log1p-expm1-u_binary64
844×expm1-log1p-u_binary64
589×prod-diff_binary64
88×add-sqr-sqrt_binary64
84×add-log-exp_binary64
Counts
3 → 82
Calls

3 calls:

58.0ms
(hypot.f64 re im)
58.0ms
(sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im))))
58.0ms
(+.f64 re (hypot.f64 re im))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0823
117723
2212623
3625923
000
100

simplify63.0ms (1.5%)

Algorithm
egg-herbie
Rules
744×fma-neg_binary64
527×fma-def_binary64
416×associate-*r*_binary64
335×associate-*l*_binary64
287×cancel-sign-sub-inv_binary64
Counts
138 → 154
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01381348
14111280
212561216
346931216
452321216

prune101.0ms (2.3%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1486154
Fresh101
Picked011
Done000
Total1497156
Error
6.9b
Counts
156 → 7
Alt Table
StatusErrorProgram
14.8b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2))
14.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
53.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
14.5b
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2)))
44.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
48.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
57.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 (/.f64 (*.f64 im im) re) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))))))
Compiler

Compiled 3192 to 2160 computations (32.3% saved)

localize7.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (+.f64 re (hypot.f64 re im)))
0.0b
(hypot.f64 re im)
0.4b
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
1.2b
(+.f64 re (hypot.f64 re im))

series48.0ms (1.1%)

Counts
2 → 16
Calls

2 calls:

27.0ms
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
20.0ms
(sqrt.f64 (+.f64 re (hypot.f64 re im)))

rewrite55.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
856×log1p-expm1-u_binary64
856×expm1-log1p-u_binary64
506×prod-diff_binary64
92×add-sqr-sqrt_binary64
88×add-log-exp_binary64
Counts
2 → 44
Calls

2 calls:

54.0ms
(sqrt.f64 (+.f64 re (hypot.f64 re im)))
53.0ms
(*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0921
119021
2218421
3617521
000
100

simplify57.0ms (1.3%)

Algorithm
egg-herbie
Rules
999×fma-neg_binary64
527×fma-def_binary64
439×associate-*r*_binary64
360×associate-*l*_binary64
310×cancel-sign-sub-inv_binary64
Counts
60 → 73
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0120800
1339731
21119664
34613664
45488664

prune111.0ms (2.6%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New1860186
Fresh055
Picked011
Done011
Total1867193
Error
6.9b
Counts
193 → 7
Alt Table
StatusErrorProgram
14.8b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2))
14.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
53.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
14.5b
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2)))
44.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
48.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
57.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 (/.f64 (*.f64 im im) re) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))))))
Compiler

Compiled 4107 to 2841 computations (30.8% saved)

localize9.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 re im)
0.3b
(pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)
0.4b
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2)
1.2b
(+.f64 re (hypot.f64 re im))

series66.0ms (1.5%)

Counts
2 → 48
Calls

2 calls:

37.0ms
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2)
29.0ms
(pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)

rewrite56.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
506×prod-diff_binary64
460×log-prod_binary64
201×fma-def_binary64
180×expm1-udef_binary64
180×log1p-udef_binary64
Counts
2 → 57
Calls

2 calls:

54.0ms
(pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4)
54.0ms
(pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01026
122525
2245625
3508225
000
100

simplify69.0ms (1.6%)

Algorithm
egg-herbie
Rules
746×fma-def_binary64
324×associate-/r/_binary64
307×cancel-sign-sub-inv_binary64
187×unswap-sqr_binary64
179×associate-*r*_binary64
Counts
105 → 149
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02732695
17742559
225272357
350402357

prune198.0ms (4.6%)

Pruning

14 alts after pruning (11 fresh and 3 done)

PrunedKeptTotal
New2557262
Fresh044
Picked011
Done022
Total25514269
Error
4.8b
Counts
269 → 14
Alt Table
StatusErrorProgram
53.9b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (*.f64 (/.f64 (*.f64 im im) re) -1/2) 2) 1/4) 2))
53.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
14.8b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2))
14.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
46.0b
(*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 2) (log.f64 (/.f64 1 im))))) 2))
48.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
57.3b
(*.f64 1/2 (pow.f64 (exp.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 1/2))
57.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 (/.f64 (*.f64 im im) re) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))))))
14.5b
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2)))
48.7b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (neg.f64 im) 2) 1/4) 2))
52.8b
(*.f64 1/2 (pow.f64 (fma.f64 (*.f64 (*.f64 (/.f64 im re) (/.f64 im re)) (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (pow.f64 (*.f64 im im) 1/4))) -1/16 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (pow.f64 (*.f64 im im) 1/4))) 2))
44.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 im)))
49.8b
(*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 2) (log.f64 (/.f64 -1 im))))) 2))
46.2b
(*.f64 1/2 (pow.f64 (exp.f64 (+.f64 (log.f64 2) (log.f64 im))) 1/2))
Compiler

Compiled 7516 to 5555 computations (26.1% saved)

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(sqrt.f64 (*.f64 2 im))

series5.0ms (0.1%)

Counts
1 → 0
Calls

1 calls:

5.0ms
(sqrt.f64 (*.f64 2 im))

rewrite72.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
706×log1p-udef_binary64
392×log1p-expm1-u_binary64
392×expm1-log1p-u_binary64
340×unpow-prod-down_binary64
338×pow1_binary64
Counts
1 → 56
Calls

1 calls:

71.0ms
(sqrt.f64 (*.f64 2 im))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056
11006
210536
347126
457946
000
100

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Counts
56 → 56
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
100

prune37.0ms (0.9%)

Pruning

16 alts after pruning (13 fresh and 3 done)

PrunedKeptTotal
New52456
Fresh1910
Picked101
Done033
Total541670
Error
4.8b
Counts
70 → 16
Alt Table
StatusErrorProgram
53.9b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (*.f64 (/.f64 (*.f64 im im) re) -1/2) 2) 1/4) 2))
53.8b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (*.f64 -1/2 (/.f64 (pow.f64 im 2) re)))))
14.8b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (+.f64 re (hypot.f64 re im)) 2) 1/4) 2))
14.4b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (+.f64 re (hypot.f64 re im)))))
46.8b
(*.f64 1/2 (pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 im im)))) 2)) (cbrt.f64 (log.f64 (sqrt.f64 (+.f64 im im))))))
46.0b
(*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 2) (log.f64 (/.f64 1 im))))) 2))
48.7b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (neg.f64 im))))
57.3b
(*.f64 1/2 (pow.f64 (exp.f64 (fma.f64 2 (log.f64 im) (log.f64 (/.f64 -1 re)))) 1/2))
57.1b
(*.f64 1/2 (sqrt.f64 (*.f64 2 (fma.f64 1/8 (/.f64 (pow.f64 im 4) (pow.f64 re 3)) (fma.f64 (/.f64 (*.f64 im im) re) -1/2 (*.f64 (/.f64 (pow.f64 im 6) (pow.f64 re 5)) -1/16))))))
14.5b
(*.f64 1/2 (*.f64 (sqrt.f64 (+.f64 re (hypot.f64 re im))) (sqrt.f64 2)))
48.7b
(*.f64 1/2 (pow.f64 (pow.f64 (*.f64 (neg.f64 im) 2) 1/4) 2))
48.4b
(*.f64 1/2 (*.f64 (pow.f64 (pow.f64 (+.f64 im im) 5/4) 1/3) (cbrt.f64 (pow.f64 (+.f64 im im) 1/4))))
49.8b
(*.f64 1/2 (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 im im)) 4) 1/3) (cbrt.f64 (pow.f64 (+.f64 im im) 1/6))))
52.8b
(*.f64 1/2 (pow.f64 (fma.f64 (*.f64 (*.f64 (/.f64 im re) (/.f64 im re)) (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (pow.f64 (*.f64 im im) 1/4))) -1/16 (*.f64 (pow.f64 (/.f64 -1 re) 1/4) (pow.f64 (*.f64 im im) 1/4))) 2))
49.8b
(*.f64 1/2 (pow.f64 (exp.f64 (*.f64 1/4 (-.f64 (log.f64 2) (log.f64 (/.f64 -1 im))))) 2))
46.3b
(*.f64 1/2 (pow.f64 (exp.f64 1/2) (log.f64 (+.f64 im im))))
Compiler

Compiled 927 to 599 computations (35.4% saved)

regimes767.0ms (17.9%)

Accuracy

Total 4.8b remaining (50.4%)

Threshold costs 0b (0%)

Counts
70 → 3
Compiler

Compiled 7881 to 6372 computations (19.1% saved)

bsearch2.0ms (0%)

Compiler

Compiled 12 to 7 computations (41.7% saved)

simplify3.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
035123
143123
243123

end233.0ms (5.4%)

Compiler

Compiled 445 to 314 computations (29.4% saved)

Profiling

Loading profile data...