Details

Time bar (total: 6.5s)

analyze681.0ms (10.5%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%99.9%0.1%6
23.4%51.5%25.1%7
24.2%50.7%25.1%8
24.6%50.3%25.1%9
36.9%25.5%37.6%10
37.2%25.3%37.6%11
37.3%25.1%37.6%12
43.5%12.7%43.8%13
43.6%12.6%43.8%14
Compiler

Compiled 32 to 21 computations (34.4% saved)

sample1.9s (29.9%)

Results
1.7s8256×body128valid
178.0ms1004×body128invalid
Compiler

Compiled 95 to 62 computations (34.7% saved)

simplify125.0ms (1.9%)

Algorithm
egg-herbie
Rules
1042×fma-def_binary64
693×fma-neg_binary64
662×cube-prod_binary64
522×pow-sqr_binary64
453×associate-/l*_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01920
13519
25712
3809
4899
52169
64869
79789
812969
919969
1022879
1133119
1243679
1346449
1447219
1549869
1648269

prune5.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.3b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.3b
(/.f64 (atan2.f64 im re) (log.f64 base))
33.2b
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
Compiler

Compiled 117 to 73 computations (37.6% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (atan2.f64 im re) (log.f64 base))

series356.0ms (5.5%)

Counts
1 → 8
Calls

1 calls:

356.0ms
(/.f64 (atan2.f64 im re) (log.f64 base))

rewrite44.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
643×log1p-expm1-u_binary64
643×expm1-log1p-u_binary64
351×log-prod_binary64
131×expm1-udef_binary64
131×log1p-udef_binary64
Counts
1 → 37
Calls

1 calls:

43.0ms
(/.f64 (atan2.f64 im re) (log.f64 base))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
079
11389
216879
352249
000
100

simplify246.0ms (3.8%)

Algorithm
egg-herbie
Rules
1250×distribute-rgt-in_binary64
882×div-sub_binary64
628×fma-neg_binary64
606×associate--r-_binary64
502×fma-def_binary64
Counts
45 → 39
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
016104
129104
24296
39072
415472
546272
698772
7189972
8236372
9243072
10249172
11259972
12462872
13363672
14410672
15434072
16436472
17436472
18431372
19436372
20446972
21447572
22553872

prune34.0ms (0.5%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New30939
Fresh011
Picked011
Done000
Total301141
Error
0.1b
Counts
41 → 11
Alt Table
StatusErrorProgram
7.1b
(cbrt.f64 (/.f64 (pow.f64 (atan2.f64 im re) 3) (pow.f64 (log.f64 base) 3)))
0.3b
(/.f64 (atan2.f64 im re) (log.f64 base))
29.4b
(*.f64 (/.f64 (sqrt.f64 (atan2.f64 im re)) (pow.f64 (cbrt.f64 (log.f64 base)) 2)) (/.f64 (sqrt.f64 (atan2.f64 im re)) (cbrt.f64 (log.f64 base))))
33.2b
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
35.8b
(*.f64 (/.f64 1 (sqrt.f64 (log.f64 base))) (/.f64 (atan2.f64 im re) (sqrt.f64 (log.f64 base))))
1.2b
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (log.f64 base)) 2)) (/.f64 (atan2.f64 im re) (cbrt.f64 (log.f64 base))))
1.7b
(*.f64 (pow.f64 (cbrt.f64 (atan2.f64 im re)) 2) (*.f64 (cbrt.f64 (atan2.f64 im re)) (/.f64 1 (log.f64 base))))
0.4b
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))
31.2b
(exp.f64 (log.f64 (/.f64 (atan2.f64 im re) (log.f64 base))))
0.6b
(pow.f64 (/.f64 (log.f64 base) (atan2.f64 im re)) -1)
30.5b
(pow.f64 (sqrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))) 2)
Compiler

Compiled 804 to 373 computations (53.6% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(/.f64 1 (log.f64 base))
0.3b
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))

series362.0ms (5.6%)

Counts
2 → 44
Calls

2 calls:

329.0ms
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))
33.0ms
(/.f64 1 (log.f64 base))

rewrite105.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
712×log1p-expm1-u_binary64
712×expm1-log1p-u_binary64
149×expm1-udef_binary64
149×log1p-udef_binary64
92×fma-neg_binary64
Counts
2 → 50
Calls

2 calls:

103.0ms
(/.f64 1 (log.f64 base))
103.0ms
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0915
117415
2190915
3498815
4500015
5500715
000
100

simplify273.0ms (4.2%)

Algorithm
egg-herbie
Rules
1250×distribute-rgt-in_binary64
882×div-sub_binary64
628×fma-neg_binary64
606×associate--r-_binary64
502×fma-def_binary64
Counts
94 → 54
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
020388
132388
245372
392372
4154372
5462372
6987372
71899372
82365372
92430372
102491372
112599372
124628372
133636372
144106372
154340372
164364372
174364372
184313372
194363372
204469372
214475372
225538372

prune46.0ms (0.7%)

Pruning

15 alts after pruning (13 fresh and 2 done)

PrunedKeptTotal
New47754
Fresh369
Picked011
Done011
Total501565
Error
0.0b
Counts
65 → 15
Alt Table
StatusErrorProgram
0.4b
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))
7.2b
(cbrt.f64 (*.f64 (pow.f64 (atan2.f64 im re) 3) (pow.f64 (/.f64 1 (log.f64 base)) 3)))
31.2b
(exp.f64 (log.f64 (/.f64 (atan2.f64 im re) (log.f64 base))))
1.2b
(/.f64 (/.f64 (atan2.f64 im re) (pow.f64 (cbrt.f64 (log.f64 base)) 2)) (cbrt.f64 (log.f64 base)))
7.1b
(cbrt.f64 (/.f64 (pow.f64 (atan2.f64 im re) 3) (pow.f64 (log.f64 base) 3)))
0.3b
(/.f64 (atan2.f64 im re) (log.f64 base))
0.6b
(pow.f64 (/.f64 (log.f64 base) (atan2.f64 im re)) -1)
1.7b
(/.f64 (pow.f64 (cbrt.f64 (atan2.f64 im re)) 2) (/.f64 (log.f64 base) (cbrt.f64 (atan2.f64 im re))))
0.7b
(*.f64 (atan2.f64 im re) (cbrt.f64 (pow.f64 (/.f64 1 (log.f64 base)) 3)))
1.2b
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (log.f64 base)) 2)) (/.f64 (atan2.f64 im re) (cbrt.f64 (log.f64 base))))
35.7b
(*.f64 (atan2.f64 im re) (pow.f64 (pow.f64 (log.f64 base) -1/2) 2))
1.2b
(*.f64 (atan2.f64 im re) (pow.f64 (/.f64 1 (cbrt.f64 (log.f64 base))) 3))
0.9b
(*.f64 (atan2.f64 im re) (*.f64 (/.f64 1 (cbrt.f64 (log.f64 base))) (cbrt.f64 (pow.f64 (log.f64 base) -2))))
30.5b
(pow.f64 (sqrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))) 2)
33.2b
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
Compiler

Compiled 997 to 556 computations (44.2% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (log.f64 base) (atan2.f64 im re))
0.4b
(pow.f64 (/.f64 (log.f64 base) (atan2.f64 im re)) -1)

series693.0ms (10.7%)

Counts
2 → 44
Calls

2 calls:

361.0ms
(pow.f64 (/.f64 (log.f64 base) (atan2.f64 im re)) -1)
332.0ms
(/.f64 (log.f64 base) (atan2.f64 im re))

rewrite47.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
791×log1p-expm1-u_binary64
791×expm1-log1p-u_binary64
158×log1p-udef_binary64
91×add-sqr-sqrt_binary64
84×add-log-exp_binary64
Counts
2 → 77
Calls

2 calls:

45.0ms
(/.f64 (log.f64 base) (atan2.f64 im re))
45.0ms
(pow.f64 (/.f64 (log.f64 base) (atan2.f64 im re)) -1)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0921
118018
2207518
3514718
000
100

simplify214.0ms (3.3%)

Algorithm
egg-herbie
Rules
1461×associate-+l+_binary64
799×distribute-rgt-in_binary64
752×unsub-neg_binary64
736×sub-neg_binary64
662×div-sub_binary64
Counts
121 → 81
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
021428
140428
263396
3122396
4307396
5758396
61494396
71867396
82145396
92393396
102795396
112863396
122728396
133858396
143444396
153670396
163982396
173982396
184094396
195463396

prune65.0ms (1%)

Pruning

17 alts after pruning (15 fresh and 2 done)

PrunedKeptTotal
New77481
Fresh11112
Picked101
Done022
Total791796
Error
0.0b
Counts
96 → 17
Alt Table
StatusErrorProgram
0.4b
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))
7.2b
(cbrt.f64 (*.f64 (pow.f64 (atan2.f64 im re) 3) (pow.f64 (/.f64 1 (log.f64 base)) 3)))
31.3b
(sqrt.f64 (pow.f64 (/.f64 (log.f64 base) (atan2.f64 im re)) -2))
31.2b
(exp.f64 (log.f64 (/.f64 (atan2.f64 im re) (log.f64 base))))
1.2b
(/.f64 (/.f64 (atan2.f64 im re) (pow.f64 (cbrt.f64 (log.f64 base)) 2)) (cbrt.f64 (log.f64 base)))
7.1b
(cbrt.f64 (/.f64 (pow.f64 (atan2.f64 im re) 3) (pow.f64 (log.f64 base) 3)))
0.3b
(/.f64 (atan2.f64 im re) (log.f64 base))
30.5b
(pow.f64 (sqrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))) 2)
7.2b
(pow.f64 (cbrt.f64 (/.f64 (pow.f64 (log.f64 base) 3) (pow.f64 (atan2.f64 im re) 3))) -1)
0.7b
(*.f64 (atan2.f64 im re) (cbrt.f64 (pow.f64 (/.f64 1 (log.f64 base)) 3)))
1.2b
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (log.f64 base)) 2)) (/.f64 (atan2.f64 im re) (cbrt.f64 (log.f64 base))))
35.7b
(*.f64 (atan2.f64 im re) (pow.f64 (pow.f64 (log.f64 base) -1/2) 2))
1.2b
(*.f64 (atan2.f64 im re) (pow.f64 (/.f64 1 (cbrt.f64 (log.f64 base))) 3))
0.9b
(*.f64 (atan2.f64 im re) (*.f64 (/.f64 1 (cbrt.f64 (log.f64 base))) (cbrt.f64 (pow.f64 (log.f64 base) -2))))
11.2b
(pow.f64 (log.f64 (pow.f64 base (/.f64 1 (atan2.f64 im re)))) -1)
32.3b
(pow.f64 (pow.f64 (sqrt.f64 (/.f64 (log.f64 base) (atan2.f64 im re))) 2) -1)
33.2b
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
Compiler

Compiled 1505 to 726 computations (51.8% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 1 (log.f64 base))
0.3b
(*.f64 (atan2.f64 im re) (cbrt.f64 (pow.f64 (/.f64 1 (log.f64 base)) 3)))
0.6b
(cbrt.f64 (pow.f64 (/.f64 1 (log.f64 base)) 3))
0.7b
(pow.f64 (/.f64 1 (log.f64 base)) 3)

series404.0ms (6.2%)

Counts
3 → 60
Calls

3 calls:

335.0ms
(*.f64 (atan2.f64 im re) (cbrt.f64 (pow.f64 (/.f64 1 (log.f64 base)) 3)))
37.0ms
(pow.f64 (/.f64 1 (log.f64 base)) 3)
32.0ms
(cbrt.f64 (pow.f64 (/.f64 1 (log.f64 base)) 3))

rewrite49.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
868×log1p-expm1-u_binary64
868×expm1-log1p-u_binary64
104×add-sqr-sqrt_binary64
97×add-log-exp_binary64
96×add-cbrt-cube_binary64
Counts
3 → 80
Calls

3 calls:

48.0ms
(*.f64 (atan2.f64 im re) (cbrt.f64 (pow.f64 (/.f64 1 (log.f64 base)) 3)))
48.0ms
(cbrt.f64 (pow.f64 (/.f64 1 (log.f64 base)) 3))
48.0ms
(pow.f64 (/.f64 1 (log.f64 base)) 3)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01227
122121
2233721
3524421
000
100

simplify98.0ms (1.5%)

Algorithm
egg-herbie
Rules
681×fma-neg_binary64
634×unsub-neg_binary64
624×div-sub_binary64
491×fma-def_binary64
456×distribute-rgt-in_binary64
Counts
140 → 86
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
028504
158504
2112504
3301504
4691504
52735504
64412504
74991504
84995504
94876504

prune82.0ms (1.3%)

Pruning

16 alts after pruning (14 fresh and 2 done)

PrunedKeptTotal
New1084112
Fresh41014
Picked101
Done022
Total11316129
Error
0b
Counts
129 → 16
Alt Table
StatusErrorProgram
1.2b
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (log.f64 base)) 2)) (/.f64 (atan2.f64 im re) (cbrt.f64 (log.f64 base))))
7.1b
(cbrt.f64 (*.f64 (pow.f64 (log.f64 base) -3) (pow.f64 (atan2.f64 im re) 3)))
0.4b
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))
7.2b
(cbrt.f64 (*.f64 (pow.f64 (atan2.f64 im re) 3) (pow.f64 (/.f64 1 (log.f64 base)) 3)))
31.3b
(sqrt.f64 (pow.f64 (/.f64 (log.f64 base) (atan2.f64 im re)) -2))
30.5b
(pow.f64 (sqrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))) 2)
0.7b
(*.f64 (atan2.f64 im re) (cbrt.f64 (pow.f64 (log.f64 base) -3)))
7.2b
(pow.f64 (cbrt.f64 (/.f64 (pow.f64 (log.f64 base) 3) (pow.f64 (atan2.f64 im re) 3))) -1)
1.1b
(*.f64 (atan2.f64 im re) (cbrt.f64 (pow.f64 (*.f64 (cbrt.f64 (pow.f64 (log.f64 base) -2)) (/.f64 1 (cbrt.f64 (log.f64 base)))) 3)))
35.7b
(*.f64 (atan2.f64 im re) (pow.f64 (pow.f64 (log.f64 base) -1/2) 2))
1.2b
(*.f64 (atan2.f64 im re) (pow.f64 (/.f64 1 (cbrt.f64 (log.f64 base))) 3))
1.2b
(/.f64 (/.f64 (atan2.f64 im re) (pow.f64 (cbrt.f64 (log.f64 base)) 2)) (cbrt.f64 (log.f64 base)))
0.3b
(/.f64 (atan2.f64 im re) (log.f64 base))
0.8b
(*.f64 (atan2.f64 im re) (cbrt.f64 (*.f64 (cbrt.f64 (pow.f64 (log.f64 base) -2)) (*.f64 (/.f64 1 (cbrt.f64 (log.f64 base))) (pow.f64 (log.f64 base) -2)))))
11.2b
(pow.f64 (log.f64 (pow.f64 base (/.f64 1 (atan2.f64 im re)))) -1)
33.2b
(/.f64 (-.f64 (*.f64 (atan2.f64 im re) (log.f64 base)) (*.f64 (log.f64 (sqrt.f64 (+.f64 (*.f64 re re) (*.f64 im im)))) 0)) (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 0)))
Compiler

Compiled 1650 to 914 computations (44.6% saved)

regimes371.0ms (5.7%)

Accuracy

Total 0.3b remaining (88.4%)

Threshold costs 0.3b (88.4%)

Counts
58 → 1
Compiler

Compiled 4636 to 3256 computations (29.8% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
079
179

end203.0ms (3.1%)

Compiler

Compiled 270 to 196 computations (27.4% saved)

Profiling

Loading profile data...