Details

Time bar (total: 13.6s)

analyze2.1s (15.6%)

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.9%0.2%13
50%49.7%0.2%14
Compiler

Compiled 42 to 20 computations (52.4% saved)

sample6.2s (45.7%)

Results
2.7s2620×body1024invalid
1.9s7862×body128valid
636.0ms946×body512invalid
256.0ms192×body1024valid
239.0ms172×body2048invalid
144.0ms333×body256invalid
126.0ms535×body128invalid
78.0ms121×body512valid
31.0ms72×body256valid
13.0msbody2048valid
Compiler

Compiled 125 to 59 computations (52.8% saved)

simplify67.0ms (0.5%)

Algorithm
egg-herbie
Rules
892×unswap-sqr_binary64
461×associate-/l*_binary64
323×associate-/r*_binary64
296×associate-*l/_binary64
286×associate-*r/_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02040
13938
27038
311838
426338
599638
6304338
7408538
8454138
9486638
10493238

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
3.9b
Counts
3 → 2
Alt Table
StatusErrorProgram
7.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
31.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))) (sin.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 96 computations (53.4% saved)

localize15.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))
1.2b
(*.f64 (atan2.f64 x.im x.re) y.im)
1.8b
(*.f64 y.re (atan2.f64 x.im x.re))
31.2b
(sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))

series436.0ms (3.2%)

Counts
4 → 96
Calls

4 calls:

319.0ms
(fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))
103.0ms
(sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))
7.0ms
(*.f64 y.re (atan2.f64 x.im x.re))
7.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)

rewrite9.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
12×add-sqr-sqrt_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
add-exp-log_binary64
Counts
4 → 60
Calls

4 calls:

3.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
3.0ms
(*.f64 y.re (atan2.f64 x.im x.re))
1.0ms
(sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))
0.0ms
(fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))

simplify150.0ms (1.1%)

Algorithm
egg-herbie
Rules
433×associate-*r*_binary64
296×sub-neg_binary64
295×fma-neg_binary64
279×fma-def_binary64
278×associate-*l*_binary64
Counts
156 → 185
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
04245775
112735176
241985164
349945164
449315164

prune211.0ms (1.6%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New17411185
Fresh011
Picked101
Done000
Total17512187
Error
3.7b
Counts
187 → 12
Alt Table
StatusErrorProgram
33.8b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (*.f64 (sqrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) (sqrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
41.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (-.f64 (*.f64 y.re (atan2.f64 x.im x.re)) (*.f64 (log.f64 (/.f64 -1 x.im)) y.im))))
35.0b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (cbrt.f64 (pow.f64 (fma.f64 y.im (log.f64 (hypot.f64 x.im x.re)) (*.f64 y.re (atan2.f64 x.im x.re))) 3))))
22.7b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (cbrt.f64 (*.f64 (*.f64 (*.f64 y.re y.re) y.re) (*.f64 (*.f64 (atan2.f64 x.im x.re) (atan2.f64 x.im x.re)) (atan2.f64 x.im x.re)))))))
20.7b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (expm1.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
31.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))) (sin.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))))
8.5b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) (cbrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) (cbrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
38.3b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (fma.f64 (log.f64 x.im) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
8.4b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (*.f64 (*.f64 (cbrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) (cbrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (cbrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
18.0b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (pow.f64 (sin.f64 (fma.f64 y.im (log.f64 (hypot.f64 x.im x.re)) (*.f64 y.re (atan2.f64 x.im x.re)))) 3)))
7.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
37.8b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 (sqrt.f64 y.re) (*.f64 (sqrt.f64 y.re) (atan2.f64 x.im x.re))))))
Compiler

Compiled 9783 to 3312 computations (66.1% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.2b
(*.f64 (atan2.f64 x.im x.re) y.im)
1.8b
(*.f64 y.re (atan2.f64 x.im x.re))
7.1b
(cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))
31.2b
(sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))

series813.0ms (6%)

Counts
1 → 36
Calls

1 calls:

812.0ms
(cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))

rewrite2.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
cbrt-prod_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
Counts
1 → 11
Calls

1 calls:

2.0ms
(cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))

simplify56.0ms (0.4%)

Algorithm
egg-herbie
Rules
622×log-prod_binary64
528×associate-*l*_binary64
522×fma-neg_binary64
384×distribute-rgt-in_binary64
381×associate-*r*_binary64
Counts
47 → 18
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
041501
172501
2125495
3291471
4821471
53990471
65058471

prune491.0ms (3.6%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2352237
Fresh01111
Picked101
Done000
Total23613249
Error
3.7b
Counts
249 → 13
Alt Table
StatusErrorProgram
33.8b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (*.f64 (sqrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) (sqrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
41.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (-.f64 (*.f64 y.re (atan2.f64 x.im x.re)) (*.f64 (log.f64 (/.f64 -1 x.im)) y.im))))
35.0b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (cbrt.f64 (pow.f64 (fma.f64 y.im (log.f64 (hypot.f64 x.im x.re)) (*.f64 y.re (atan2.f64 x.im x.re))) 3))))
22.7b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (cbrt.f64 (*.f64 (*.f64 (*.f64 y.re y.re) y.re) (*.f64 (*.f64 (atan2.f64 x.im x.re) (atan2.f64 x.im x.re)) (atan2.f64 x.im x.re)))))))
7.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
20.7b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (expm1.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
31.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))) (sin.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))))
8.5b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) (cbrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) (cbrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
38.3b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (fma.f64 (log.f64 x.im) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
8.4b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (*.f64 (*.f64 (cbrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) (cbrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (cbrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
18.0b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (pow.f64 (sin.f64 (fma.f64 y.im (log.f64 (hypot.f64 x.im x.re)) (*.f64 y.re (atan2.f64 x.im x.re)))) 3)))
7.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))) (cbrt.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
37.8b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 (sqrt.f64 y.re) (*.f64 (sqrt.f64 y.re) (atan2.f64 x.im x.re))))))
Compiler

Compiled 14551 to 3348 computations (77% saved)

localize35.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.8b
(*.f64 y.re (atan2.f64 x.im x.re))
7.1b
(cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))
7.1b
(cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))
31.2b
(sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))

series846.0ms (6.2%)

Counts
1 → 36
Calls

1 calls:

846.0ms
(cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))

rewrite6.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
rem-cbrt-cube_binary64
pow3_binary64
cbrt-prod_binary64
Counts
1 → 12
Calls

1 calls:

5.0ms
(cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))

simplify57.0ms (0.4%)

Algorithm
egg-herbie
Rules
622×log-prod_binary64
529×associate-*l*_binary64
522×fma-neg_binary64
384×distribute-rgt-in_binary64
381×associate-*r*_binary64
Counts
48 → 25
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
043525
173515
2126509
3290485
4822485
53991485
65059485

prune504.0ms (3.7%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2062208
Fresh11112
Picked101
Done000
Total20813221
Error
3.7b
Counts
221 → 13
Alt Table
StatusErrorProgram
33.8b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (*.f64 (sqrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) (sqrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
41.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (-.f64 (*.f64 y.re (atan2.f64 x.im x.re)) (*.f64 (log.f64 (/.f64 -1 x.im)) y.im))))
35.0b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (cbrt.f64 (pow.f64 (fma.f64 y.im (log.f64 (hypot.f64 x.im x.re)) (*.f64 y.re (atan2.f64 x.im x.re))) 3))))
22.7b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (cbrt.f64 (*.f64 (*.f64 (*.f64 y.re y.re) y.re) (*.f64 (*.f64 (atan2.f64 x.im x.re) (atan2.f64 x.im x.re)) (atan2.f64 x.im x.re)))))))
8.4b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (*.f64 (*.f64 (cbrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) (cbrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (cbrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
7.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
20.7b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (expm1.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
31.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))) (sin.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))))
8.5b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) (cbrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) (cbrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
38.3b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (fma.f64 (log.f64 x.im) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
18.0b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (pow.f64 (sin.f64 (fma.f64 y.im (log.f64 (hypot.f64 x.im x.re)) (*.f64 y.re (atan2.f64 x.im x.re)))) 3)))
37.8b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 (sqrt.f64 y.re) (*.f64 (sqrt.f64 y.re) (atan2.f64 x.im x.re))))))
7.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))) (cbrt.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
Compiler

Compiled 16261 to 3343 computations (79.4% saved)

localize25.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.8b
(*.f64 y.re (atan2.f64 x.im x.re))
7.1b
(cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))
7.1b
(cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))
31.2b
(sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))

prune597.0ms (4.4%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2672269
Fresh11112
Picked101
Done000
Total26913282
Error
3.7b
Counts
282 → 13
Alt Table
StatusErrorProgram
7.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
33.8b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (*.f64 (sqrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) (sqrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
41.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (-.f64 (*.f64 y.re (atan2.f64 x.im x.re)) (*.f64 (log.f64 (/.f64 -1 x.im)) y.im))))
35.0b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (cbrt.f64 (pow.f64 (fma.f64 y.im (log.f64 (hypot.f64 x.im x.re)) (*.f64 y.re (atan2.f64 x.im x.re))) 3))))
22.7b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (cbrt.f64 (*.f64 (*.f64 (*.f64 y.re y.re) y.re) (*.f64 (*.f64 (atan2.f64 x.im x.re) (atan2.f64 x.im x.re)) (atan2.f64 x.im x.re)))))))
7.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (*.f64 (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))) (cbrt.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))) (cbrt.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
18.0b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (pow.f64 (sin.f64 (fma.f64 y.im (log.f64 (hypot.f64 x.im x.re)) (*.f64 y.re (atan2.f64 x.im x.re)))) 3)))
20.7b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (expm1.f64 (log1p.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
31.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))) (sin.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))))
8.5b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))) (cbrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) (cbrt.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
38.3b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (fma.f64 (log.f64 x.im) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
8.4b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (*.f64 (*.f64 (cbrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) (cbrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))) (cbrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
37.8b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 (sqrt.f64 y.re) (*.f64 (sqrt.f64 y.re) (atan2.f64 x.im x.re))))))
Compiler

Compiled 23273 to 3602 computations (84.5% saved)

regimes615.0ms (4.5%)

Accuracy

Total 0.4b remaining (6.5%)

Threshold costs 0.4b (6.5%)

Counts
78 → 2
Compiler

Compiled 15707 to 7080 computations (54.9% saved)

bsearch5.0ms (0%)

Compiler

Compiled 41 to 19 computations (53.7% saved)

simplify8.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
042259
158259
267259
373259
477259
578259
678259

end280.0ms (2.1%)

Compiler

Compiled 941 to 320 computations (66% saved)

Profiling

Loading profile data...