Details

Time bar (total: 15.4s)

analyze2.3s (15.1%)

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
49%50.8%0.2%13
50.1%49.7%0.2%14
Compiler

Compiled 42 to 20 computations (52.4% saved)

sample258.0ms (1.7%)

Algorithm
intervals
Results
67.0ms82×body1024invalid
38.0ms243×body128valid
13.0msbody2048invalid
9.0ms19×body512invalid
3.0msbody512valid
3.0msbody1024valid
3.0msbody256invalid
3.0ms17×body128invalid
1.0msbody2048valid
0.0msbody256valid
Compiler

Compiled 87 to 43 computations (50.6% saved)

simplify65.0ms (0.4%)

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
7.3b
Counts
3 → 2
Alt Table
StatusErrorProgram
9.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 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
35.8b
(*.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)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.7b
(/.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.1b
(*.f64 (atan2.f64 x.im x.re) y.im)
33.5b
(sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))

series692.0ms (4.5%)

Counts
4 → 96
Calls

4 calls:

572.0ms
(/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
104.0ms
(sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))
8.0ms
(*.f64 (atan2.f64 x.im x.re) y.im)
7.0ms
(*.f64 y.re (atan2.f64 x.im x.re))

rewrite18.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
28×add-sqr-sqrt_binary64
24×*-un-lft-identity_binary64
24×add-cube-cbrt_binary64
21×times-frac_binary64
12×unpow-prod-down_binary64
Counts
4 → 97
Calls

4 calls:

4.0ms
(/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))
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))))

simplify229.0ms (1.5%)

Algorithm
egg-herbie
Rules
731×times-frac_binary64
680×associate-/l*_binary64
644×fma-def_binary64
277×*-commutative_binary64
143×cancel-sign-sub-inv_binary64
Counts
193 → 273
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
06999245
121818424
245208364
349568364
448808364

prune451.0ms (2.9%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New25914273
Fresh101
Picked101
Done000
Total26114275
Error
3.3b
Counts
275 → 14
Alt Table
StatusErrorProgram
9.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 (*.f64 (*.f64 (cbrt.f64 y.re) (cbrt.f64 y.re)) (*.f64 (cbrt.f64 y.re) (atan2.f64 x.im x.re))))))
10.3b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (fma.f64 (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))) (*.f64 y.im (log.f64 (hypot.f64 x.im x.re))) (sin.f64 (*.f64 y.re (atan2.f64 x.im x.re)))))
35.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (*.f64 (sqrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) (sqrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
24.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 y.re (atan2.f64 x.im x.re))))
10.0b
(*.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)))))))
39.6b
(*.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))))
9.6b
(*.f64 (/.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (*.f64 (cbrt.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))) (cbrt.f64 (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)))))
21.5b
(*.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)))
9.6b
(*.f64 (/.f64 (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re) (/.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
30.7b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (log.f64 (exp.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
41.2b
(*.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)))))
17.5b
(*.f64 (pow.f64 (hypot.f64 x.im x.re) y.re) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
20.4b
(*.f64 (/.f64 1 (exp.f64 (*.f64 y.im (atan2.f64 x.im x.re)))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
9.6b
(*.f64 (*.f64 (*.f64 (cbrt.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 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))) (cbrt.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)))))
Compiler

Compiled 15995 to 5100 computations (68.1% saved)

localize19.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(/.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re))
1.2b
(*.f64 y.re (atan2.f64 x.im x.re))
2.1b
(*.f64 (atan2.f64 x.im x.re) y.im)
33.5b
(sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))

series646.0ms (4.2%)

Counts
1 → 32
Calls

1 calls:

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

rewrite10.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
30×times-frac_binary64
24×*-un-lft-identity_binary64
24×unpow-prod-down_binary64
24×add-sqr-sqrt_binary64
24×add-cube-cbrt_binary64
Counts
1 → 59
Calls

1 calls:

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

simplify133.0ms (0.9%)

Algorithm
egg-herbie
Rules
480×cancel-sign-sub-inv_binary64
301×times-frac_binary64
274×unswap-sqr_binary64
259×associate-/l*_binary64
255×associate-*r*_binary64
Counts
91 → 124
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03024255
18294107
236604102
352534102

prune600.0ms (3.9%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New2512253
Fresh11213
Picked101
Done000
Total25314267
Error
3.3b
Counts
267 → 14
Alt Table
StatusErrorProgram
9.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 (*.f64 (*.f64 (cbrt.f64 y.re) (cbrt.f64 y.re)) (*.f64 (cbrt.f64 y.re) (atan2.f64 x.im x.re))))))
10.3b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (fma.f64 (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))) (*.f64 y.im (log.f64 (hypot.f64 x.im x.re))) (sin.f64 (*.f64 y.re (atan2.f64 x.im x.re)))))
35.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (*.f64 (sqrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) (sqrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
24.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 y.re (atan2.f64 x.im x.re))))
10.0b
(*.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)))))))
39.6b
(*.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))))
9.6b
(*.f64 (/.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (*.f64 (cbrt.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))) (cbrt.f64 (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)))))
21.5b
(*.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)))
9.6b
(*.f64 (/.f64 (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re) (*.f64 (*.f64 (cbrt.f64 (/.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re))) (cbrt.f64 (/.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re)))) (cbrt.f64 (/.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re))))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
20.4b
(*.f64 (/.f64 1 (exp.f64 (*.f64 y.im (atan2.f64 x.im x.re)))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
41.2b
(*.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)))))
17.5b
(*.f64 (pow.f64 (hypot.f64 x.im x.re) y.re) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
9.6b
(*.f64 (/.f64 (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re) (/.f64 (/.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (sqrt.f64 (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re))) (sqrt.f64 (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re)))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
9.6b
(*.f64 (*.f64 (*.f64 (cbrt.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 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))) (cbrt.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)))))
Compiler

Compiled 16411 to 4339 computations (73.6% saved)

localize21.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(/.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (sqrt.f64 (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re)))
1.2b
(*.f64 y.re (atan2.f64 x.im x.re))
2.1b
(*.f64 (atan2.f64 x.im x.re) y.im)
33.5b
(sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))

series721.0ms (4.7%)

Counts
1 → 32
Calls

1 calls:

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

rewrite15.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
52×sqrt-prod_binary64
39×times-frac_binary64
31×*-un-lft-identity_binary64
31×add-sqr-sqrt_binary64
31×add-cube-cbrt_binary64
Counts
1 → 69
Calls

1 calls:

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

simplify160.0ms (1%)

Algorithm
egg-herbie
Rules
682×fma-def_binary64
347×fma-neg_binary64
274×cancel-sign-sub-inv_binary64
217×unswap-sqr_binary64
191×associate-*r*_binary64
Counts
101 → 135
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02844710
16944460
223594227
346424199
449654199
549744199

prune702.0ms (4.6%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New2631264
Fresh01313
Picked101
Done000
Total26414278
Error
3.3b
Counts
278 → 14
Alt Table
StatusErrorProgram
9.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 (*.f64 (*.f64 (cbrt.f64 y.re) (cbrt.f64 y.re)) (*.f64 (cbrt.f64 y.re) (atan2.f64 x.im x.re))))))
10.3b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (fma.f64 (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))) (*.f64 y.im (log.f64 (hypot.f64 x.im x.re))) (sin.f64 (*.f64 y.re (atan2.f64 x.im x.re)))))
35.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (*.f64 (sqrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) (sqrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
24.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 y.re (atan2.f64 x.im x.re))))
10.0b
(*.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)))))))
39.6b
(*.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))))
9.6b
(*.f64 (/.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (*.f64 (cbrt.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))) (cbrt.f64 (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)))))
21.5b
(*.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)))
9.6b
(*.f64 (/.f64 (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re) (*.f64 (*.f64 (cbrt.f64 (/.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re))) (cbrt.f64 (/.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re)))) (cbrt.f64 (/.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re))))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
20.4b
(*.f64 (/.f64 1 (exp.f64 (*.f64 y.im (atan2.f64 x.im x.re)))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
9.6b
(*.f64 (/.f64 (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re) (/.f64 (/.f64 (/.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (sqrt.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re)))) (sqrt.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re)))) (sqrt.f64 (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re)))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
41.2b
(*.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)))))
17.5b
(*.f64 (pow.f64 (hypot.f64 x.im x.re) y.re) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
9.6b
(*.f64 (*.f64 (*.f64 (cbrt.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 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))) (cbrt.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)))))
Compiler

Compiled 18890 to 4512 computations (76.1% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.7b
(/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (*.f64 (cbrt.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))))
1.2b
(*.f64 y.re (atan2.f64 x.im x.re))
2.1b
(*.f64 (atan2.f64 x.im x.re) y.im)
33.5b
(sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))

series1.4s (9.1%)

Counts
1 → 48
Calls

1 calls:

1.4s
(/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (*.f64 (cbrt.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)))))

rewrite9.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
14×add-exp-log_binary64
associate-/l*_binary64
times-frac_binary64
unpow-prod-down_binary64
div-exp_binary64
Counts
1 → 35
Calls

1 calls:

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

simplify124.0ms (0.8%)

Algorithm
egg-herbie
Rules
451×associate-*r*_binary64
442×associate-*l*_binary64
307×fma-def_binary64
289×fma-neg_binary64
229×times-frac_binary64
Counts
83 → 122
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03965989
112214988
248884976
351484976

prune782.0ms (5.1%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New3112313
Fresh11213
Picked101
Done000
Total31314327
Error
3.3b
Counts
327 → 14
Alt Table
StatusErrorProgram
9.6b
(*.f64 (/.f64 (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re) (/.f64 (/.f64 (/.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (sqrt.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re)))) (sqrt.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re)))) (sqrt.f64 (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re)))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
6.8b
(*.f64 (/.f64 (exp.f64 (fma.f64 y.re (log.f64 (hypot.f64 x.im x.re)) (*.f64 -2 (log.f64 (cbrt.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))))) (cbrt.f64 (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)))))
9.6b
(*.f64 (/.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (*.f64 (cbrt.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (cbrt.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))) (cbrt.f64 (exp.f64 (*.f64 (*.f64 (atan2.f64 x.im x.re) (*.f64 (cbrt.f64 y.im) (cbrt.f64 y.im))) (cbrt.f64 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)))))
9.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 (*.f64 (*.f64 (cbrt.f64 y.re) (cbrt.f64 y.re)) (*.f64 (cbrt.f64 y.re) (atan2.f64 x.im x.re))))))
10.3b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (fma.f64 (cos.f64 (*.f64 y.re (atan2.f64 x.im x.re))) (*.f64 y.im (log.f64 (hypot.f64 x.im x.re))) (sin.f64 (*.f64 y.re (atan2.f64 x.im x.re)))))
35.9b
(*.f64 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))) (*.f64 (sqrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re))))) (sqrt.f64 (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))))
24.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 y.re (atan2.f64 x.im x.re))))
10.0b
(*.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)))))))
39.6b
(*.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))))
21.5b
(*.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)))
41.2b
(*.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)))))
17.5b
(*.f64 (pow.f64 (hypot.f64 x.im x.re) y.re) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
9.6b
(*.f64 (/.f64 (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re) (*.f64 (*.f64 (cbrt.f64 (/.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re))) (cbrt.f64 (/.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re)))) (cbrt.f64 (/.f64 (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im)) (pow.f64 (sqrt.f64 (hypot.f64 x.re x.im)) y.re))))) (sin.f64 (fma.f64 (log.f64 (hypot.f64 x.re x.im)) y.im (*.f64 y.re (atan2.f64 x.im x.re)))))
9.6b
(*.f64 (*.f64 (*.f64 (cbrt.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 (/.f64 (pow.f64 (hypot.f64 x.re x.im) y.re) (exp.f64 (*.f64 (atan2.f64 x.im x.re) y.im))))) (cbrt.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)))))
Compiler

Compiled 22031 to 6301 computations (71.4% saved)

regimes600.0ms (3.9%)

Accuracy

Total 1.6b remaining (35.4%)

Threshold costs 0b (0%)

Counts
85 → 2
Compiler

Compiled 18412 to 8205 computations (55.4% saved)

bsearch6.0ms (0%)

Steps
ItersRangePoint
0
-2.2640823595479625e+127
-2.261306351947414e+127
-2.2626943557476885e+127
Compiler

Compiled 5 to 4 computations (20% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02993
13493
23493

end1.0ms (0%)

Compiler

Compiled 64 to 27 computations (57.8% saved)

sample5.4s (34.8%)

Algorithm
intervals
Results
1.8s2455×body1024invalid
1.1s7605×body128valid
707.0ms306×body256invalid
430.0ms917×body512invalid
181.0ms164×body2048invalid
115.0ms157×body1024valid
80.0ms502×body128invalid
55.0ms125×body512valid
30.0ms98×body256valid
19.0ms15×body2048valid
Compiler

Compiled 695 to 305 computations (56.1% saved)

Profiling

Loading profile data...