Details

Time bar (total: 8.7s)

analyze2.1s (24.3%)

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
0%99.8%0.2%8
0%99.8%0.2%9
0%99.8%0.2%10
0%99.8%0.2%11
0%99.8%0.2%12
0%99.8%0.2%13
0%99.8%0.2%14
Compiler

Compiled 20 to 12 computations (40% saved)

sample1.5s (17.4%)

Results
1.2s8256×body128valid
193.0ms270×body8192exit
31.0ms231×body128invalid
Compiler

Compiled 39 to 23 computations (41% saved)

simplify67.0ms (0.8%)

Algorithm
egg-herbie
Rules
1070×fma-neg_binary64
881×fma-def_binary64
768×times-frac_binary64
551×cancel-sign-sub-inv_binary64
514×unsub-neg_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01220
12520
24720
37820
414920
522820
632420
750020
869420
986720
1099920
11242220
12392020
13495020

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
21.4b
Counts
3 → 2
Alt Table
StatusErrorProgram
21.4b
(/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (fma.f64 y.re y.re (*.f64 y.im y.im)))
21.4b
(/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))
Compiler

Compiled 107 to 55 computations (48.6% saved)

localize11.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))
0.2b
(-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))
21.1b
(/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))

series110.0ms (1.3%)

Counts
3 → 120
Calls

3 calls:

93.0ms
(/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))
9.0ms
(-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))
7.0ms
(+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))

rewrite15.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
11×*-un-lft-identity_binary64
11×add-sqr-sqrt_binary64
11×add-cube-cbrt_binary64
times-frac_binary64
add-log-exp_binary64
Counts
3 → 64
Calls

3 calls:

6.0ms
(/.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im)))
3.0ms
(+.f64 (*.f64 y.re y.re) (*.f64 y.im y.im))
3.0ms
(-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im))

simplify102.0ms (1.2%)

Algorithm
egg-herbie
Rules
514×fma-def_binary64
396×fma-neg_binary64
392×times-frac_binary64
348×associate-/l*_binary64
235×associate-*l/_binary64
Counts
184 → 145
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01513114
14132977
213922931
348372930
450472930

prune107.0ms (1.2%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1369145
Fresh101
Picked101
Done000
Total1389147
Error
1.3b
Counts
147 → 9
Alt Table
StatusErrorProgram
39.0b
(/.f64 (-.f64 (*.f64 (*.f64 x.im y.re) (*.f64 x.im y.re)) (*.f64 (*.f64 x.re y.im) (*.f64 x.re y.im))) (*.f64 (fma.f64 y.im y.im (*.f64 y.re y.re)) (fma.f64 x.re y.im (*.f64 y.re x.im))))
36.5b
(neg.f64 (/.f64 x.re y.im))
21.7b
(*.f64 (-.f64 (*.f64 x.im y.re) (*.f64 x.re y.im)) (/.f64 1 (fma.f64 y.im y.im (*.f64 y.re y.re))))
12.1b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (hypot.f64 y.im y.re)))
38.3b
(*.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))) (hypot.f64 y.im y.re)) (/.f64 (sqrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))) (hypot.f64 y.im y.re)))
39.2b
(-.f64 (/.f64 x.im y.re) (fma.f64 (/.f64 x.re y.re) (/.f64 y.im y.re) (/.f64 (*.f64 (*.f64 y.im y.im) x.im) (pow.f64 y.re 3))))
12.7b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))) (cbrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)))) (hypot.f64 y.im y.re)) (/.f64 (cbrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))) (hypot.f64 y.im y.re)))
37.6b
(/.f64 x.im y.re)
38.6b
(-.f64 (fma.f64 (/.f64 y.re y.im) (/.f64 x.im y.im) (/.f64 (*.f64 x.re (*.f64 y.re y.re)) (pow.f64 y.im 3))) (/.f64 x.re y.im))
Compiler

Compiled 3729 to 791 computations (78.8% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
0.2b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (hypot.f64 y.im y.re)))
11.3b
(/.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (hypot.f64 y.im y.re))

series239.0ms (2.8%)

Counts
3 → 108
Calls

3 calls:

118.0ms
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (hypot.f64 y.im y.re)))
112.0ms
(/.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (hypot.f64 y.im y.re))
9.0ms
(-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))

rewrite33.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
42×add-sqr-sqrt_binary64
34×times-frac_binary64
27×*-un-lft-identity_binary64
27×add-exp-log_binary64
25×add-cube-cbrt_binary64
Counts
3 → 106
Calls

3 calls:

10.0ms
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (/.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (hypot.f64 y.im y.re)))
10.0ms
(/.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (hypot.f64 y.im y.re))
3.0ms
(-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))

simplify144.0ms (1.7%)

Algorithm
egg-herbie
Rules
747×times-frac_binary64
528×fma-neg_binary64
402×fma-def_binary64
254×cancel-sign-sub-inv_binary64
230×distribute-rgt-in_binary64
Counts
214 → 211
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02265757
16074941
220964883
347654882
451024882

prune162.0ms (1.9%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New2047211
Fresh358
Picked101
Done000
Total20812220
Error
1.2b
Counts
220 → 12
Alt Table
StatusErrorProgram
12.2b
(*.f64 (*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))) (/.f64 1 (hypot.f64 y.im y.re)))
44.5b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (-.f64 x.im (/.f64 (*.f64 x.re y.im) y.re)))
12.3b
(*.f64 (/.f64 1 (sqrt.f64 (hypot.f64 y.im y.re))) (/.f64 (/.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (hypot.f64 y.im y.re)) (sqrt.f64 (hypot.f64 y.im y.re))))
36.5b
(neg.f64 (/.f64 x.re y.im))
12.1b
(*.f64 (/.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (hypot.f64 y.im y.re)) (/.f64 1 (hypot.f64 y.im y.re)))
17.1b
(*.f64 (/.f64 (/.f64 1 (sqrt.f64 (hypot.f64 y.im y.re))) (hypot.f64 y.im y.re)) (/.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (sqrt.f64 (hypot.f64 y.im y.re))))
38.5b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (*.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))) (*.f64 (cbrt.f64 (hypot.f64 y.im y.re)) (cbrt.f64 (hypot.f64 y.im y.re)))) (/.f64 (sqrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))) (cbrt.f64 (hypot.f64 y.im y.re)))))
39.2b
(-.f64 (/.f64 x.im y.re) (fma.f64 (/.f64 x.re y.re) (/.f64 y.im y.re) (/.f64 (*.f64 (*.f64 y.im y.im) x.im) (pow.f64 y.re 3))))
12.7b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))) (cbrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)))) (hypot.f64 y.im y.re)) (/.f64 (cbrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))) (hypot.f64 y.im y.re)))
12.0b
(/.f64 (/.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))
37.6b
(/.f64 x.im y.re)
38.6b
(-.f64 (fma.f64 (/.f64 y.re y.im) (/.f64 x.im y.im) (/.f64 (*.f64 x.re (*.f64 y.re y.re)) (pow.f64 y.im 3))) (/.f64 x.re y.im))
Compiler

Compiled 6034 to 1718 computations (71.5% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (/.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (hypot.f64 y.im y.re)) (hypot.f64 y.im y.re))
0.2b
(-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
11.3b
(/.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (hypot.f64 y.im y.re))

series115.0ms (1.3%)

Counts
1 → 48
Calls

1 calls:

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

rewrite15.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
75×times-frac_binary64
43×*-un-lft-identity_binary64
43×add-sqr-sqrt_binary64
43×add-cube-cbrt_binary64
13×associate-/l*_binary64
Counts
1 → 73
Calls

1 calls:

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

simplify388.0ms (4.5%)

Algorithm
egg-herbie
Rules
566×times-frac_binary64
497×fma-neg_binary64
471×associate-/l*_binary64
471×associate-/l/_binary64
359×div-sub_binary64
Counts
121 → 139
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01894368
14404066
210933872
341043805
453093805

prune224.0ms (2.6%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New2305235
Fresh5611
Picked101
Done000
Total23611247
Error
1.2b
Counts
247 → 11
Alt Table
StatusErrorProgram
36.5b
(neg.f64 (/.f64 x.re y.im))
12.1b
(/.f64 (*.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (/.f64 1 (hypot.f64 y.im y.re))) (hypot.f64 y.im y.re))
38.6b
(-.f64 (fma.f64 (/.f64 y.re y.im) (/.f64 x.im y.im) (/.f64 (*.f64 x.re (*.f64 y.re y.re)) (pow.f64 y.im 3))) (/.f64 x.re y.im))
15.3b
(*.f64 (/.f64 (/.f64 1 (*.f64 (cbrt.f64 (hypot.f64 y.im y.re)) (cbrt.f64 (hypot.f64 y.im y.re)))) (*.f64 (cbrt.f64 (hypot.f64 y.im y.re)) (cbrt.f64 (hypot.f64 y.im y.re)))) (/.f64 (/.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (cbrt.f64 (hypot.f64 y.im y.re))) (cbrt.f64 (hypot.f64 y.im y.re))))
43.9b
(/.f64 x.im (hypot.f64 y.im y.re))
44.5b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (-.f64 x.im (/.f64 (*.f64 x.re y.im) y.re)))
12.2b
(/.f64 (/.f64 (/.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (sqrt.f64 (hypot.f64 y.im y.re))) (sqrt.f64 (hypot.f64 y.im y.re))) (hypot.f64 y.im y.re))
39.2b
(-.f64 (/.f64 x.im y.re) (fma.f64 (/.f64 x.re y.re) (/.f64 y.im y.re) (/.f64 (*.f64 (*.f64 y.im y.im) x.im) (pow.f64 y.re 3))))
12.7b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))) (cbrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)))) (hypot.f64 y.im y.re)) (/.f64 (cbrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))) (hypot.f64 y.im y.re)))
38.3b
(/.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))) (/.f64 (sqrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))) (hypot.f64 y.im y.re))) (hypot.f64 y.im y.re))
37.6b
(/.f64 x.im y.re)
Compiler

Compiled 6549 to 1428 computations (78.2% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (*.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (/.f64 1 (hypot.f64 y.im y.re))) (hypot.f64 y.im y.re))
0.2b
(-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))
11.4b
(*.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (/.f64 1 (hypot.f64 y.im y.re)))

series231.0ms (2.7%)

Counts
2 → 96
Calls

2 calls:

118.0ms
(/.f64 (*.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (/.f64 1 (hypot.f64 y.im y.re))) (hypot.f64 y.im y.re))
113.0ms
(*.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (/.f64 1 (hypot.f64 y.im y.re)))

rewrite23.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
26×add-exp-log_binary64
19×add-sqr-sqrt_binary64
16×add-cbrt-cube_binary64
14×times-frac_binary64
13×associate-*r*_binary64
Counts
2 → 75
Calls

2 calls:

8.0ms
(*.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (/.f64 1 (hypot.f64 y.im y.re)))
8.0ms
(/.f64 (*.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (/.f64 1 (hypot.f64 y.im y.re))) (hypot.f64 y.im y.re))

simplify161.0ms (1.9%)

Algorithm
egg-herbie
Rules
398×fma-def_binary64
394×fma-neg_binary64
343×associate-/l/_binary64
328×associate-/r/_binary64
249×cancel-sign-sub-inv_binary64
Counts
171 → 171
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01964671
15413918
218793858
346163856
449923856
549683856

prune148.0ms (1.7%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New1950195
Fresh01010
Picked011
Done000
Total19511206
Error
1.2b
Counts
206 → 11
Alt Table
StatusErrorProgram
36.5b
(neg.f64 (/.f64 x.re y.im))
12.1b
(/.f64 (*.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (/.f64 1 (hypot.f64 y.im y.re))) (hypot.f64 y.im y.re))
38.6b
(-.f64 (fma.f64 (/.f64 y.re y.im) (/.f64 x.im y.im) (/.f64 (*.f64 x.re (*.f64 y.re y.re)) (pow.f64 y.im 3))) (/.f64 x.re y.im))
15.3b
(*.f64 (/.f64 (/.f64 1 (*.f64 (cbrt.f64 (hypot.f64 y.im y.re)) (cbrt.f64 (hypot.f64 y.im y.re)))) (*.f64 (cbrt.f64 (hypot.f64 y.im y.re)) (cbrt.f64 (hypot.f64 y.im y.re)))) (/.f64 (/.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (cbrt.f64 (hypot.f64 y.im y.re))) (cbrt.f64 (hypot.f64 y.im y.re))))
43.9b
(/.f64 x.im (hypot.f64 y.im y.re))
44.5b
(*.f64 (/.f64 1 (hypot.f64 y.im y.re)) (-.f64 x.im (/.f64 (*.f64 x.re y.im) y.re)))
12.2b
(/.f64 (/.f64 (/.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)) (sqrt.f64 (hypot.f64 y.im y.re))) (sqrt.f64 (hypot.f64 y.im y.re))) (hypot.f64 y.im y.re))
39.2b
(-.f64 (/.f64 x.im y.re) (fma.f64 (/.f64 x.re y.re) (/.f64 y.im y.re) (/.f64 (*.f64 (*.f64 y.im y.im) x.im) (pow.f64 y.re 3))))
12.7b
(*.f64 (/.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))) (cbrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im)))) (hypot.f64 y.im y.re)) (/.f64 (cbrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))) (hypot.f64 y.im y.re)))
38.3b
(/.f64 (*.f64 (sqrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))) (/.f64 (sqrt.f64 (-.f64 (*.f64 y.re x.im) (*.f64 x.re y.im))) (hypot.f64 y.im y.re))) (hypot.f64 y.im y.re))
37.6b
(/.f64 x.im y.re)
Compiler

Compiled 4984 to 1460 computations (70.7% saved)

regimes2.6s (29.7%)

Accuracy

Total 9.2b remaining (85%)

Threshold costs 0b (0%)

Counts
213 → 2
Compiler

Compiled 26722 to 13966 computations (47.7% saved)

bsearch11.0ms (0.1%)

Compiler

Compiled 19 to 11 computations (42.1% saved)

simplify4.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02359
13259
24659
35459
45959
56059
66059

end135.0ms (1.6%)

Compiler

Compiled 333 to 161 computations (51.7% saved)

Profiling

Loading profile data...