Details

Time bar (total: 5.0s)

analyze573.0ms (11.4%)

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.8s (35.3%)

Results
1.6s8256×body128valid
190.0ms1033×body128invalid
Compiler

Compiled 64 to 42 computations (34.4% saved)

preprocess55.0ms (1.1%)

Algorithm
egg-herbie
Rules
752×fma-neg_binary64
403×fma-def_binary64
349×associate-/l*_binary64
278×distribute-rgt-in_binary64
264×div-sub_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
05080
113776
222748
332936
440736
599336
6244936
7351736
8412236
9422936
10443136
11494636
033
Stop Event
saturated
node limit
Compiler

Compiled 31 to 20 computations (35.5% saved)

simplify22.0ms (0.4%)

Algorithm
egg-herbie
Rules
877×fma-def_binary64
692×fma-neg_binary64
407×associate-/l*_binary64
380×div-sub_binary64
313×distribute-rgt-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01920
14119
26812
3949
41159
52739
610059
723209
833699
Stop Event
node limit
Counts
1 → 2

prune4.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))
32.0b
(/.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))

series360.0ms (7.1%)

Counts
1 → 8
Calls

9 calls:

71.0ms
(/.f64 (atan2.f64 im re) (log.f64 base))
re
inf
58.0ms
(/.f64 (atan2.f64 im re) (log.f64 base))
im
0
50.0ms
(/.f64 (atan2.f64 im re) (log.f64 base))
re
-inf
49.0ms
(/.f64 (atan2.f64 im re) (log.f64 base))
im
inf
49.0ms
(/.f64 (atan2.f64 im re) (log.f64 base))
re
0

rewrite40.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
702×pow1_binary64
643×add-log-exp_binary64
643×log1p-expm1-u_binary64
643×expm1-log1p-u_binary64
72×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
079
11399
217349
Stop Event
node limit
Counts
1 → 32

simplify30.0ms (0.6%)

Algorithm
egg-herbie
Rules
762×div-sub_binary64
628×fma-neg_binary64
494×fma-def_binary64
292×distribute-rgt-in_binary64
231×distribute-lft-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
016104
129104
24396
39272
418972
558372
6230872
7481572
Stop Event
node limit
Counts
40 → 35

prune39.0ms (0.8%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New231235
Fresh011
Picked101
Done000
Total241337
Error
0.0b
Counts
37 → 13
Alt Table
StatusErrorProgram
34.3b
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (atan2.f64 im re)) 2) (sqrt.f64 (log.f64 base))) (/.f64 (cbrt.f64 (atan2.f64 im re)) (sqrt.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))))
30.8b
(exp.f64 (log.f64 (/.f64 (atan2.f64 im re) (log.f64 base))))
33.8b
(*.f64 (/.f64 1 (sqrt.f64 (log.f64 base))) (/.f64 (atan2.f64 im re) (sqrt.f64 (log.f64 base))))
7.0b
(cbrt.f64 (/.f64 (pow.f64 (atan2.f64 im re) 3) (pow.f64 (log.f64 base) 3)))
30.3b
(pow.f64 (sqrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))) 2)
0.3b
(*.f64 -1 (/.f64 (atan2.f64 im re) (log.f64 (/.f64 1 base))))
1.0b
(pow.f64 (/.f64 (log.f64 base) (atan2.f64 im re)) -1)
31.1b
(*.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))))
32.0b
(/.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)))
1.5b
(pow.f64 (cbrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))) 3)
0.4b
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))
30.9b
(*.f64 (sqrt.f64 (atan2.f64 im re)) (*.f64 (sqrt.f64 (atan2.f64 im re)) (/.f64 1 (log.f64 base))))
Compiler

Compiled 822 to 412 computations (49.9% saved)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

series409.0ms (8.1%)

Counts
2 → 16
Calls

12 calls:

62.0ms
(/.f64 (atan2.f64 im re) (log.f64 (/.f64 1 base)))
im
-inf
60.0ms
(/.f64 (atan2.f64 im re) (log.f64 (/.f64 1 base)))
re
inf
59.0ms
(/.f64 (atan2.f64 im re) (log.f64 (/.f64 1 base)))
im
inf
58.0ms
(/.f64 (atan2.f64 im re) (log.f64 (/.f64 1 base)))
re
-inf
58.0ms
(/.f64 (atan2.f64 im re) (log.f64 (/.f64 1 base)))
im
0

rewrite46.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
845×pow1_binary64
775×log1p-expm1-u_binary64
775×expm1-log1p-u_binary64
89×add-sqr-sqrt_binary64
87×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0916
118016
2218016
Stop Event
node limit
Counts
2 → 58

simplify44.0ms (0.9%)

Algorithm
egg-herbie
Rules
901×fma-neg_binary64
549×div-sub_binary64
510×fma-def_binary64
352×times-frac_binary64
216×associate-/l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
015176
123176
236176
354176
480176
5147176
6266176
7404176
8501176
9635176
10750176
111004176
121406176
132527176
144213176
Stop Event
node limit
Counts
74 → 63

prune65.0ms (1.3%)

Pruning

16 alts after pruning (15 fresh and 1 done)

PrunedKeptTotal
New56763
Fresh4812
Picked011
Done000
Total601676
Error
0.0b
Counts
76 → 16
Alt Table
StatusErrorProgram
31.0b
(*.f64 -1 (/.f64 (atan2.f64 im re) (-.f64 (exp.f64 (log1p.f64 (neg.f64 (log.f64 base)))) 1)))
30.8b
(exp.f64 (log.f64 (/.f64 (atan2.f64 im re) (log.f64 base))))
33.8b
(*.f64 (/.f64 1 (sqrt.f64 (log.f64 base))) (/.f64 (atan2.f64 im re) (sqrt.f64 (log.f64 base))))
30.7b
(*.f64 -1 (/.f64 (atan2.f64 im re) (+.f64 (log.f64 (cbrt.f64 (pow.f64 base -2))) (log.f64 (/.f64 1 (cbrt.f64 base))))))
1.0b
(pow.f64 (/.f64 (log.f64 base) (atan2.f64 im re)) -1)
7.0b
(cbrt.f64 (/.f64 (pow.f64 (atan2.f64 im re) 3) (pow.f64 (log.f64 base) 3)))
30.3b
(pow.f64 (sqrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))) 2)
31.3b
(*.f64 -1 (pow.f64 (sqrt.f64 (/.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base))) 2))
1.5b
(pow.f64 (cbrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))) 3)
0.5b
(*.f64 -1 (/.f64 (atan2.f64 im re) (/.f64 (-.f64 0 (pow.f64 (log.f64 base) 3)) (+.f64 0 (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 (log.f64 base)))))))
0.3b
(*.f64 -1 (/.f64 (atan2.f64 im re) (log.f64 (/.f64 1 base))))
34.3b
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (atan2.f64 im re)) 2) (sqrt.f64 (log.f64 base))) (/.f64 (cbrt.f64 (atan2.f64 im re)) (sqrt.f64 (log.f64 base))))
0.4b
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))
30.9b
(*.f64 -1 (*.f64 (/.f64 1 (sqrt.f64 (neg.f64 (log.f64 base)))) (/.f64 (atan2.f64 im re) (sqrt.f64 (neg.f64 (log.f64 base))))))
31.1b
(*.f64 -1 (/.f64 (atan2.f64 im re) (exp.f64 (log.f64 (neg.f64 (log.f64 base))))))
1.2b
(*.f64 -1 (/.f64 (atan2.f64 im re) (pow.f64 (cbrt.f64 (neg.f64 (log.f64 base))) 3)))
Compiler

Compiled 1355 to 733 computations (45.9% saved)

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

series371.0ms (7.3%)

Counts
2 → 44
Calls

12 calls:

58.0ms
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))
im
0
51.0ms
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))
re
inf
51.0ms
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))
re
0
50.0ms
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))
im
inf
50.0ms
(*.f64 (atan2.f64 im re) (/.f64 1 (log.f64 base)))
im
-inf

rewrite39.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
779×pow1_binary64
712×log1p-expm1-u_binary64
712×expm1-log1p-u_binary64
86×add-sqr-sqrt_binary64
84×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0915
117515
2203115
Stop Event
node limit
Counts
2 → 49

simplify42.0ms (0.8%)

Algorithm
egg-herbie
Rules
741×div-sub_binary64
628×fma-neg_binary64
498×fma-def_binary64
292×distribute-rgt-in_binary64
231×distribute-lft-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
020388
132388
246372
394372
4190372
5584372
62294372
74775372
Stop Event
node limit
Counts
93 → 54

prune51.0ms (1%)

Pruning

16 alts after pruning (15 fresh and 1 done)

PrunedKeptTotal
New50454
Fresh31114
Picked101
Done011
Total541670
Error
0.0b
Counts
70 → 16
Alt Table
StatusErrorProgram
31.0b
(*.f64 -1 (/.f64 (atan2.f64 im re) (-.f64 (exp.f64 (log1p.f64 (neg.f64 (log.f64 base)))) 1)))
30.8b
(exp.f64 (log.f64 (/.f64 (atan2.f64 im re) (log.f64 base))))
30.7b
(*.f64 -1 (/.f64 (atan2.f64 im re) (+.f64 (log.f64 (cbrt.f64 (pow.f64 base -2))) (log.f64 (/.f64 1 (cbrt.f64 base))))))
1.0b
(pow.f64 (/.f64 (log.f64 base) (atan2.f64 im re)) -1)
7.0b
(cbrt.f64 (/.f64 (pow.f64 (atan2.f64 im re) 3) (pow.f64 (log.f64 base) 3)))
30.3b
(pow.f64 (sqrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))) 2)
34.0b
(*.f64 (atan2.f64 im re) (exp.f64 (neg.f64 (log.f64 (log.f64 base)))))
31.3b
(*.f64 -1 (pow.f64 (sqrt.f64 (/.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base))) 2))
1.5b
(pow.f64 (cbrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))) 3)
33.8b
(*.f64 (atan2.f64 im re) (pow.f64 (pow.f64 (log.f64 base) -1/2) 2))
0.4b
(*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) -1))
31.1b
(*.f64 -1 (/.f64 (atan2.f64 im re) (exp.f64 (log.f64 (neg.f64 (log.f64 base))))))
0.5b
(*.f64 -1 (/.f64 (atan2.f64 im re) (/.f64 (-.f64 0 (pow.f64 (log.f64 base) 3)) (+.f64 0 (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 (log.f64 base)))))))
0.3b
(*.f64 -1 (/.f64 (atan2.f64 im re) (log.f64 (/.f64 1 base))))
0.8b
(*.f64 (atan2.f64 im re) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (log.f64 base) 2)) -1) (pow.f64 (cbrt.f64 (log.f64 base)) -1)))
1.2b
(*.f64 -1 (/.f64 (atan2.f64 im re) (pow.f64 (cbrt.f64 (neg.f64 (log.f64 base))) 3)))
Compiler

Compiled 1028 to 602 computations (41.4% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

series379.0ms (7.5%)

Counts
2 → 48
Calls

12 calls:

61.0ms
(*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) -1))
im
0
56.0ms
(*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) -1))
re
inf
52.0ms
(*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) -1))
im
inf
49.0ms
(*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) -1))
im
-inf
49.0ms
(*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) -1))
re
0

rewrite37.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
769×pow1_binary64
705×log1p-expm1-u_binary64
705×expm1-log1p-u_binary64
87×add-sqr-sqrt_binary64
84×*-un-lft-identity_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0918
117515
2196515
Stop Event
node limit
Counts
2 → 37

simplify36.0ms (0.7%)

Algorithm
egg-herbie
Rules
796×div-sub_binary64
628×fma-neg_binary64
494×fma-def_binary64
292×distribute-rgt-in_binary64
231×distribute-lft-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
021396
133396
247396
394396
4190396
5585396
62311396
74812396
Stop Event
node limit
Counts
85 → 41

prune30.0ms (0.6%)

Pruning

16 alts after pruning (14 fresh and 2 done)

PrunedKeptTotal
New41041
Fresh01414
Picked011
Done011
Total411657
Error
0.0b
Counts
57 → 16
Alt Table
StatusErrorProgram
31.0b
(*.f64 -1 (/.f64 (atan2.f64 im re) (-.f64 (exp.f64 (log1p.f64 (neg.f64 (log.f64 base)))) 1)))
30.8b
(exp.f64 (log.f64 (/.f64 (atan2.f64 im re) (log.f64 base))))
30.7b
(*.f64 -1 (/.f64 (atan2.f64 im re) (+.f64 (log.f64 (cbrt.f64 (pow.f64 base -2))) (log.f64 (/.f64 1 (cbrt.f64 base))))))
1.0b
(pow.f64 (/.f64 (log.f64 base) (atan2.f64 im re)) -1)
7.0b
(cbrt.f64 (/.f64 (pow.f64 (atan2.f64 im re) 3) (pow.f64 (log.f64 base) 3)))
30.3b
(pow.f64 (sqrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))) 2)
34.0b
(*.f64 (atan2.f64 im re) (exp.f64 (neg.f64 (log.f64 (log.f64 base)))))
31.3b
(*.f64 -1 (pow.f64 (sqrt.f64 (/.f64 (neg.f64 (atan2.f64 im re)) (log.f64 base))) 2))
1.5b
(pow.f64 (cbrt.f64 (/.f64 (atan2.f64 im re) (log.f64 base))) 3)
33.8b
(*.f64 (atan2.f64 im re) (pow.f64 (pow.f64 (log.f64 base) -1/2) 2))
0.4b
(*.f64 (atan2.f64 im re) (pow.f64 (log.f64 base) -1))
31.1b
(*.f64 -1 (/.f64 (atan2.f64 im re) (exp.f64 (log.f64 (neg.f64 (log.f64 base))))))
0.5b
(*.f64 -1 (/.f64 (atan2.f64 im re) (/.f64 (-.f64 0 (pow.f64 (log.f64 base) 3)) (+.f64 0 (+.f64 (*.f64 (log.f64 base) (log.f64 base)) (*.f64 0 (log.f64 base)))))))
0.3b
(*.f64 -1 (/.f64 (atan2.f64 im re) (log.f64 (/.f64 1 base))))
0.8b
(*.f64 (atan2.f64 im re) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (log.f64 base) 2)) -1) (pow.f64 (cbrt.f64 (log.f64 base)) -1)))
1.2b
(*.f64 -1 (/.f64 (atan2.f64 im re) (pow.f64 (cbrt.f64 (neg.f64 (log.f64 base))) 3)))
Compiler

Compiled 675 to 380 computations (43.7% saved)

regimes347.0ms (6.9%)

Accuracy

Total 0.3b remaining (91.1%)

Threshold costs 0.3b (91.1%)

Counts
66 → 1
Compiler

Compiled 5186 to 3616 computations (30.3% saved)

simplify2.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
01217
11917
22417
32817
43017
Stop Event
saturated

end217.0ms (4.3%)

Stop Event
fuel
Compiler

Compiled 263 to 200 computations (24% saved)

Profiling

Loading profile data...