Details

Time bar (total: 12.0s)

analyze1.8s (15.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
9.4%90.4%0.2%6
17.2%82.7%0.2%7
19.5%80.3%0.2%8
30.8%69%0.2%9
35.5%64.3%0.2%10
42.4%57.4%0.2%11
47.1%52.7%0.2%12
48.9%50.8%0.3%13
50%49.7%0.4%14
Compiler

Compiled 42 to 20 computations (52.4% saved)

sample5.5s (45.9%)

Results
2.3s2460×body1024invalid
1.8s7800×body128valid
615.0ms1015×body512invalid
196.0ms460×body256invalid
184.0ms198×body1024valid
125.0ms556×body128invalid
91.0ms154×body512valid
44.0ms31×body2048invalid
34.0ms84×body256valid
33.0ms20×body2048valid
Compiler

Compiled 125 to 59 computations (52.8% saved)

simplify25.0ms (0.2%)

Algorithm
egg-herbie
Rules
892×unswap-sqr_binary64
451×associate-/l*_binary64
320×associate-/r*_binary64
273×associate-*l/_binary64
263×associate-*r/_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02040
13938
27638
312638
428638
5109638
6414138
Stop Event
node limit
Counts
1 → 2

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
6.8b
Counts
3 → 2
Alt Table
StatusErrorProgram
10.7b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
29.0b
(*.f64 (exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))) (cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re))))
Compiler

Compiled 206 to 97 computations (52.9% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(exp.f64 (atan2.f64 x.im x.re))
0.7b
(pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)
1.2b
(*.f64 y.re (atan2.f64 x.im x.re))
32.5b
(cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))

series480.0ms (4%)

Counts
4 → 68
Calls

4 calls:

392.0ms
(pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)
79.0ms
(cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))
6.0ms
(*.f64 y.re (atan2.f64 x.im x.re))
4.0ms
(exp.f64 (atan2.f64 x.im x.re))

rewrite55.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
609×log-prod_binary64
253×prod-diff_binary64
232×expm1-udef_binary64
232×log1p-udef_binary64
230×log-pow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01340
125640
2305540
Stop Event
node limit
Counts
4 → 87
Calls

4 calls:

53.0ms
(exp.f64 (atan2.f64 x.im x.re))
53.0ms
(pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)
53.0ms
(*.f64 y.re (atan2.f64 x.im x.re))
53.0ms
(cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))

simplify66.0ms (0.5%)

Algorithm
egg-herbie
Rules
714×fma-def_binary64
370×associate-*r*_binary64
225×*-commutative_binary64
218×associate-*l*_binary64
218×times-frac_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03153589
110223343
244753327
Stop Event
node limit
Counts
155 → 150

prune295.0ms (2.5%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New13713150
Fresh011
Picked101
Done000
Total13814152
Error
4.5b
Counts
152 → 14
Alt Table
StatusErrorProgram
10.7b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (cbrt.f64 (pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 3)))
29.0b
(*.f64 (exp.f64 (-.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.re) (*.f64 (atan2.f64 x.im x.re) y.im))) (cos.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)))) y.im) (*.f64 (atan2.f64 x.im x.re) y.re))))
10.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (sqrt.f64 (pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 2)))
10.8b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (pow.f64 (cbrt.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) 3))
10.8b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (*.f64 (cbrt.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) (cbrt.f64 (pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 2))))
10.7b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))))
11.6b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (cbrt.f64 (exp.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))))
24.3b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (sin.f64 1))))
17.0b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) 1) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
9.8b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
13.2b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (exp.f64 (atan2.f64 x.im x.re)))) (cbrt.f64 (exp.f64 (exp.f64 (atan2.f64 x.im x.re)))))) (log.f64 (cbrt.f64 (exp.f64 (exp.f64 (atan2.f64 x.im x.re)))))) y.im)) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
11.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im))) (cbrt.f64 (exp.f64 (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)))))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
11.0b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))))
37.0b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (cos.f64 (-.f64 (*.f64 y.re (atan2.f64 x.im x.re)) (*.f64 (log.f64 (/.f64 -1 x.im)) y.im))))
Compiler

Compiled 8466 to 2860 computations (66.2% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
1.2b
(*.f64 y.re (atan2.f64 x.im x.re))
2.5b
(*.f64 (atan2.f64 x.im x.re) y.im)
32.5b
(cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))

series377.0ms (3.1%)

Counts
2 → 64
Calls

2 calls:

370.0ms
(/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
6.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)

rewrite44.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
566×log-prod_binary64
291×prod-diff_binary64
211×log-pow_binary64
206×expm1-udef_binary64
206×log1p-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01125
122425
2284125
Stop Event
node limit
Counts
2 → 56
Calls

2 calls:

43.0ms
(/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
43.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)

simplify48.0ms (0.4%)

Algorithm
egg-herbie
Rules
485×times-frac_binary64
415×associate-/l*_binary64
360×associate-*r*_binary64
271×associate-/r*_binary64
214×associate-*l*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03003784
112053556
Stop Event
node limit
Counts
120 → 125

prune416.0ms (3.5%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New2195224
Fresh7613
Picked101
Done000
Total22711238
Error
3.2b
Counts
238 → 11
Alt Table
StatusErrorProgram
37.0b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (cos.f64 (-.f64 (*.f64 y.re (atan2.f64 x.im x.re)) (*.f64 (log.f64 (/.f64 -1 x.im)) y.im))))
10.2b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (-.f64 (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))) (*.f64 y.im (*.f64 (log.f64 (hypot.f64 x.im x.re)) (sin.f64 (*.f64 y.re (atan2.f64 x.im x.re)))))))
11.6b
(*.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 x.im x.re) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)))) (cbrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 x.im x.re) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)))))) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 x.im x.re) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)))))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
17.0b
(*.f64 (pow.f64 (hypot.f64 x.im x.re) y.re) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
20.0b
(*.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) (neg.f64 y.im))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
24.3b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (sin.f64 1))))
13.2b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (exp.f64 (atan2.f64 x.im x.re)))) (cbrt.f64 (exp.f64 (exp.f64 (atan2.f64 x.im x.re)))))) (log.f64 (cbrt.f64 (exp.f64 (exp.f64 (atan2.f64 x.im x.re)))))) y.im)) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
11.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im))) (cbrt.f64 (exp.f64 (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)))))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
11.0b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))))
10.7b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (cbrt.f64 (pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 3)))
9.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sqrt.f64 (pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 2)))
Compiler

Compiled 13821 to 4863 computations (64.8% saved)

localize19.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 2)
1.2b
(*.f64 y.re (atan2.f64 x.im x.re))
2.5b
(*.f64 (atan2.f64 x.im x.re) y.im)
32.5b
(cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))

series156.0ms (1.3%)

Counts
1 → 32
Calls

1 calls:

156.0ms
(pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 2)

rewrite43.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
565×log-prod_binary64
253×prod-diff_binary64
224×expm1-udef_binary64
224×log1p-udef_binary64
210×log-pow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01321
125621
2292121
Stop Event
node limit
Counts
1 → 23
Calls

1 calls:

43.0ms
(pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 2)

simplify67.0ms (0.6%)

Algorithm
egg-herbie
Rules
674×associate-*r*_binary64
411×associate-*l*_binary64
342×times-frac_binary64
323×fma-def_binary64
299×associate-/l*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
04445611
114995134
Stop Event
node limit
Counts
55 → 83

prune472.0ms (3.9%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2003203
Fresh01010
Picked101
Done000
Total20113214
Error
3.2b
Counts
214 → 13
Alt Table
StatusErrorProgram
11.6b
(*.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 x.im x.re) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)))) (cbrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 x.im x.re) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)))))) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 x.im x.re) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)))))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
10.5b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sqrt.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 2))) (cbrt.f64 (exp.f64 (pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 2))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 2)))))))
37.0b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (cos.f64 (-.f64 (*.f64 y.re (atan2.f64 x.im x.re)) (*.f64 (log.f64 (/.f64 -1 x.im)) y.im))))
10.2b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (-.f64 (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))) (*.f64 y.im (*.f64 (log.f64 (hypot.f64 x.im x.re)) (sin.f64 (*.f64 y.re (atan2.f64 x.im x.re)))))))
17.0b
(*.f64 (pow.f64 (hypot.f64 x.im x.re) y.re) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
20.0b
(*.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) (neg.f64 y.im))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
36.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sqrt.f64 (pow.f64 (cos.f64 (-.f64 (*.f64 y.re (atan2.f64 x.im x.re)) (*.f64 (log.f64 (/.f64 -1 x.im)) y.im))) 2)))
24.3b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (sin.f64 1))))
38.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sqrt.f64 (pow.f64 (cos.f64 (fma.f64 y.re (atan2.f64 x.im x.re) (*.f64 (log.f64 x.im) y.im))) 2)))
13.2b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (exp.f64 (atan2.f64 x.im x.re)))) (cbrt.f64 (exp.f64 (exp.f64 (atan2.f64 x.im x.re)))))) (log.f64 (cbrt.f64 (exp.f64 (exp.f64 (atan2.f64 x.im x.re)))))) y.im)) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
11.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im))) (cbrt.f64 (exp.f64 (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)))))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
11.0b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))))
10.7b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (cbrt.f64 (pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 3)))
Compiler

Compiled 16685 to 6524 computations (60.9% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.5b
(*.f64 y.im (*.f64 (log.f64 (hypot.f64 x.im x.re)) (sin.f64 (*.f64 y.re (atan2.f64 x.im x.re)))))
2.5b
(*.f64 (atan2.f64 x.im x.re) y.im)
18.3b
(cos.f64 (*.f64 y.re (atan2.f64 x.im x.re)))
18.4b
(sin.f64 (*.f64 y.re (atan2.f64 x.im x.re)))

series857.0ms (7.1%)

Counts
3 → 56
Calls

3 calls:

829.0ms
(*.f64 y.im (*.f64 (log.f64 (hypot.f64 x.im x.re)) (sin.f64 (*.f64 y.re (atan2.f64 x.im x.re)))))
14.0ms
(sin.f64 (*.f64 y.re (atan2.f64 x.im x.re)))
13.0ms
(cos.f64 (*.f64 y.re (atan2.f64 x.im x.re)))

rewrite50.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
654×log-prod_binary64
276×prod-diff_binary64
233×expm1-udef_binary64
233×log1p-udef_binary64
221×log-pow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01338
125338
2303638
Stop Event
node limit
Counts
3 → 62
Calls

3 calls:

49.0ms
(*.f64 y.im (*.f64 (log.f64 (hypot.f64 x.im x.re)) (sin.f64 (*.f64 y.re (atan2.f64 x.im x.re)))))
49.0ms
(cos.f64 (*.f64 y.re (atan2.f64 x.im x.re)))
49.0ms
(sin.f64 (*.f64 y.re (atan2.f64 x.im x.re)))

simplify71.0ms (0.6%)

Algorithm
egg-herbie
Rules
635×fma-def_binary64
492×times-frac_binary64
446×cancel-sign-sub-inv_binary64
307×associate-/l*_binary64
230×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01692580
15402320
219192258
Stop Event
node limit
Counts
118 → 126

prune298.0ms (2.5%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New1461147
Fresh11112
Picked011
Done000
Total14713160
Error
3.2b
Counts
160 → 13
Alt Table
StatusErrorProgram
11.6b
(*.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 x.im x.re) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)))) (cbrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 x.im x.re) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)))))) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 x.im x.re) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)))))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
10.5b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sqrt.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 2))) (cbrt.f64 (exp.f64 (pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 2))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 2)))))))
20.0b
(*.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) (neg.f64 y.im))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
8.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (sqrt.f64 (pow.f64 (*.f64 (atan2.f64 x.im x.re) y.im) 2)))) (-.f64 (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))) (*.f64 y.im (*.f64 (log.f64 (hypot.f64 x.im x.re)) (sin.f64 (*.f64 y.re (atan2.f64 x.im x.re)))))))
37.0b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (cos.f64 (-.f64 (*.f64 y.re (atan2.f64 x.im x.re)) (*.f64 (log.f64 (/.f64 -1 x.im)) y.im))))
10.2b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (-.f64 (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))) (*.f64 y.im (*.f64 (log.f64 (hypot.f64 x.im x.re)) (sin.f64 (*.f64 y.re (atan2.f64 x.im x.re)))))))
36.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sqrt.f64 (pow.f64 (cos.f64 (-.f64 (*.f64 y.re (atan2.f64 x.im x.re)) (*.f64 (log.f64 (/.f64 -1 x.im)) y.im))) 2)))
24.3b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (sin.f64 1))))
38.1b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sqrt.f64 (pow.f64 (cos.f64 (fma.f64 y.re (atan2.f64 x.im x.re) (*.f64 (log.f64 x.im) y.im))) 2)))
13.2b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (exp.f64 (atan2.f64 x.im x.re)))) (cbrt.f64 (exp.f64 (exp.f64 (atan2.f64 x.im x.re)))))) (log.f64 (cbrt.f64 (exp.f64 (exp.f64 (atan2.f64 x.im x.re)))))) y.im)) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
11.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im))) (cbrt.f64 (exp.f64 (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)))))) (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
11.0b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))))
10.7b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (pow.f64 (exp.f64 (atan2.f64 x.im x.re)) y.im)) (cbrt.f64 (pow.f64 (cos.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) 3)))
Compiler

Compiled 7410 to 1966 computations (73.5% saved)

regimes467.0ms (3.9%)

Accuracy

Total 2.0b remaining (39.1%)

Threshold costs 0b (0%)

Counts
56 → 2
Compiler

Compiled 9887 to 5270 computations (46.7% saved)

bsearch4.0ms (0%)

Compiler

Compiled 41 to 19 computations (53.7% saved)

simplify6.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
040177
160177
281177
397177
4107177
5112177
6114177
Stop Event
saturated

end300.0ms (2.5%)

Compiler

Compiled 766 to 338 computations (55.9% saved)

Profiling

Loading profile data...