Details

Time bar (total: 3.5s)

analyze166.0ms (4.7%)

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
25%74.9%0.1%5
25%68.7%6.3%6
25%53.1%22%7
25%46.8%28.2%8
25%33.6%41.5%9
28.1%18%54%10
31.6%12.1%56.3%11
33.4%5.9%60.8%12
35.2%3.8%61%13
36.1%2.9%61%14
Compiler

Compiled 32 to 20 computations (37.5% saved)

sample1.3s (37.2%)

Results
1.2s8256×body128valid
1.0msbody128invalid
Compiler

Compiled 95 to 59 computations (37.9% saved)

simplify62.0ms (1.8%)

Algorithm
egg-herbie
Rules
620×fma-def_binary64
556×cancel-sign-sub-inv_binary64
552×unswap-sqr_binary64
357×unsub-neg_binary64
344×+-commutative_binary64
Counts
1 → 2
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01939
15737
216837
349237
4160433
5289133
6430933
7521433

prune5.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.0b
(+.f64 (pow.f64 (hypot.f64 a b) 4) (fma.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 (*.f64 b b) (+.f64 a 3))) -1))
0.2b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
Compiler

Compiled 166 to 104 computations (37.3% saved)

localize15.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(pow.f64 (hypot.f64 a b) 4)
0.0b
(+.f64 (pow.f64 (hypot.f64 a b) 4) (fma.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 (*.f64 b b) (+.f64 a 3))) -1))
0.0b
(fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 (*.f64 b b) (+.f64 a 3)))
0.2b
(*.f64 (*.f64 b b) (+.f64 a 3))

series115.0ms (3.3%)

Counts
4 → 96
Calls

4 calls:

69.0ms
(pow.f64 (hypot.f64 a b) 4)
28.0ms
(+.f64 (pow.f64 (hypot.f64 a b) 4) (fma.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 (*.f64 b b) (+.f64 a 3))) -1))
10.0ms
(fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 (*.f64 b b) (+.f64 a 3)))
7.0ms
(*.f64 (*.f64 b b) (+.f64 a 3))

rewrite83.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
307×expm1-udef_binary64
306×log1p-udef_binary64
176×add-sqr-sqrt_binary64
173×log1p-expm1-u_binary64
173×expm1-log1p-u_binary64
Counts
4 → 105
Calls

4 calls:

80.0ms
(pow.f64 (hypot.f64 a b) 4)
80.0ms
(+.f64 (pow.f64 (hypot.f64 a b) 4) (fma.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 (*.f64 b b) (+.f64 a 3))) -1))
80.0ms
(fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 (*.f64 b b) (+.f64 a 3)))
80.0ms
(*.f64 (*.f64 b b) (+.f64 a 3))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01770
137170
2430570
3509670
000
100

simplify72.0ms (2.1%)

Algorithm
egg-herbie
Rules
730×associate-*l*_binary64
719×fma-def_binary64
624×fma-neg_binary64
505×associate-+l+_binary64
341×distribute-lft-out_binary64
Counts
201 → 153
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0631855
12071761
27101597
329671573
451161573

prune151.0ms (4.3%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New1512153
Fresh011
Picked101
Done000
Total1523155
Error
0b
Counts
155 → 3
Alt Table
StatusErrorProgram
0.0b
(+.f64 (pow.f64 (hypot.f64 a b) 4) (fma.f64 4 (-.f64 (fma.f64 a a (*.f64 (+.f64 3 a) (*.f64 b b))) (pow.f64 a 3)) -1))
0.2b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
15.5b
(fma.f64 (*.f64 a a) (+.f64 (fma.f64 a a 4) (*.f64 a -4)) -1)
Compiler

Compiled 4699 to 2726 computations (42% saved)

localize15.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(pow.f64 (hypot.f64 a b) 4)
0.0b
(+.f64 (pow.f64 (hypot.f64 a b) 4) (fma.f64 4 (-.f64 (fma.f64 a a (*.f64 (+.f64 3 a) (*.f64 b b))) (pow.f64 a 3)) -1))
0.0b
(-.f64 (fma.f64 a a (*.f64 (+.f64 3 a) (*.f64 b b))) (pow.f64 a 3))
0.2b
(*.f64 (+.f64 3 a) (*.f64 b b))

series49.0ms (1.4%)

Counts
3 → 72
Calls

3 calls:

29.0ms
(+.f64 (pow.f64 (hypot.f64 a b) 4) (fma.f64 4 (-.f64 (fma.f64 a a (*.f64 (+.f64 3 a) (*.f64 b b))) (pow.f64 a 3)) -1))
13.0ms
(-.f64 (fma.f64 a a (*.f64 (+.f64 3 a) (*.f64 b b))) (pow.f64 a 3))
7.0ms
(*.f64 (+.f64 3 a) (*.f64 b b))

rewrite86.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
300×expm1-udef_binary64
300×log1p-udef_binary64
169×add-sqr-sqrt_binary64
168×log1p-expm1-u_binary64
168×expm1-log1p-u_binary64
Counts
3 → 101
Calls

3 calls:

77.0ms
(+.f64 (pow.f64 (hypot.f64 a b) 4) (fma.f64 4 (-.f64 (fma.f64 a a (*.f64 (+.f64 3 a) (*.f64 b b))) (pow.f64 a 3)) -1))
77.0ms
(-.f64 (fma.f64 a a (*.f64 (+.f64 3 a) (*.f64 b b))) (pow.f64 a 3))
77.0ms
(*.f64 (+.f64 3 a) (*.f64 b b))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01663
135663
2424063
3501763
000
100

simplify63.0ms (1.8%)

Algorithm
egg-herbie
Rules
724×associate-*l*_binary64
692×fma-def_binary64
615×fma-neg_binary64
513×associate-+l+_binary64
353×distribute-lft-out_binary64
Counts
173 → 143
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0611447
12011359
26951219
329391195
451021195

prune165.0ms (4.7%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New1660166
Fresh022
Picked011
Done000
Total1663169
Error
0b
Counts
169 → 3
Alt Table
StatusErrorProgram
0.0b
(+.f64 (pow.f64 (hypot.f64 a b) 4) (fma.f64 4 (-.f64 (fma.f64 a a (*.f64 (+.f64 3 a) (*.f64 b b))) (pow.f64 a 3)) -1))
0.2b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
15.5b
(fma.f64 (*.f64 a a) (+.f64 (fma.f64 a a 4) (*.f64 a -4)) -1)
Compiler

Compiled 5176 to 3174 computations (38.7% saved)

localize14.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.1b
(*.f64 (*.f64 a a) (-.f64 1 a))
0.2b
(*.f64 (*.f64 b b) (+.f64 3 a))
0.3b
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)

series37.0ms (1.1%)

Counts
4 → 84
Calls

4 calls:

15.0ms
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
12.0ms
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
7.0ms
(*.f64 (*.f64 b b) (+.f64 3 a))
3.0ms
(*.f64 (*.f64 a a) (-.f64 1 a))

rewrite89.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
322×log1p-udef_binary64
183×log1p-expm1-u_binary64
183×expm1-log1p-u_binary64
182×add-sqr-sqrt_binary64
177×add-log-exp_binary64
Counts
4 → 111
Calls

4 calls:

87.0ms
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
87.0ms
(*.f64 (*.f64 a a) (-.f64 1 a))
87.0ms
(*.f64 (*.f64 b b) (+.f64 3 a))
87.0ms
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01754
138953
2488953
3532353
000
100

simplify61.0ms (1.7%)

Algorithm
egg-herbie
Rules
848×fma-neg_binary64
710×cancel-sign-sub-inv_binary64
669×associate-*l*_binary64
552×unswap-sqr_binary64
488×associate-*r*_binary64
Counts
195 → 147
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0391326
11071232
23071152
39291152
424081152
550511152

prune147.0ms (4.2%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New1470147
Fresh011
Picked011
Done011
Total1473150
Error
0b
Counts
150 → 3
Alt Table
StatusErrorProgram
0.0b
(+.f64 (pow.f64 (hypot.f64 a b) 4) (fma.f64 4 (-.f64 (fma.f64 a a (*.f64 (+.f64 3 a) (*.f64 b b))) (pow.f64 a 3)) -1))
0.2b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
15.5b
(fma.f64 (*.f64 a a) (+.f64 (fma.f64 a a 4) (*.f64 a -4)) -1)
Compiler

Compiled 5233 to 2826 computations (46% saved)

localize7.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (fma.f64 a a 4) (*.f64 a -4))
0.1b
(fma.f64 (*.f64 a a) (+.f64 (fma.f64 a a 4) (*.f64 a -4)) -1)

series5.0ms (0.1%)

Counts
2 → 24
Calls

2 calls:

3.0ms
(fma.f64 (*.f64 a a) (+.f64 (fma.f64 a a 4) (*.f64 a -4)) -1)
2.0ms
(+.f64 (fma.f64 a a 4) (*.f64 a -4))

rewrite101.0ms (2.9%)

Algorithm
batch-egg-rewrite
Rules
759×prod-diff_binary64
563×fma-udef_binary64
299×fma-def_binary64
197×fma-neg_binary64
171×expm1-udef_binary64
Counts
2 → 84
Calls

2 calls:

99.0ms
(+.f64 (fma.f64 a a 4) (*.f64 a -4))
99.0ms
(fma.f64 (*.f64 a a) (+.f64 (fma.f64 a a 4) (*.f64 a -4)) -1)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01029
120725
2233725
3476425
4463825
5489525
000
100

simplify48.0ms (1.4%)

Algorithm
egg-herbie
Rules
804×unswap-sqr_binary64
646×cancel-sign-sub-inv_binary64
389×fma-def_binary64
318×difference-of-squares_binary64
270×sub-neg_binary64
Counts
108 → 105
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
024277
176250
2164217
3464198
41450198
52774198
64907198

prune87.0ms (2.5%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New1050105
Fresh000
Picked011
Done022
Total1053108
Error
0b
Counts
108 → 3
Alt Table
StatusErrorProgram
0.0b
(+.f64 (pow.f64 (hypot.f64 a b) 4) (fma.f64 4 (-.f64 (fma.f64 a a (*.f64 (+.f64 3 a) (*.f64 b b))) (pow.f64 a 3)) -1))
0.2b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
15.5b
(fma.f64 (*.f64 a a) (+.f64 (fma.f64 a a 4) (*.f64 a -4)) -1)
Compiler

Compiled 1898 to 1142 computations (39.8% saved)

regimes481.0ms (13.7%)

Accuracy

Total 0.0b remaining (77.4%)

Threshold costs 0.0b (77.4%)

Counts
97 → 1
Compiler

Compiled 11146 to 7763 computations (30.4% saved)

simplify2.0ms (0.1%)

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
01530
11930
22330
32530
42630
52630

end76.0ms (2.2%)

Compiler

Compiled 117 to 78 computations (33.3% saved)

Profiling

Loading profile data...