Details

Time bar (total: 2.5s)

analyze175.0ms (6.9%)

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 (50.7%)

Results
1.2s8256×body128valid
1.0msbody128invalid
Compiler

Compiled 95 to 59 computations (37.9% saved)

simplify57.0ms (2.3%)

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.2%)

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.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)
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))
Compiler

Compiled 166 to 104 computations (37.3% saved)

localize13.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

series67.0ms (2.6%)

Counts
4 → 96
Calls

4 calls:

34.0ms
(pow.f64 (hypot.f64 a b) 4)
13.0ms
(hypot.f64 a b)
11.0ms
(fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 (*.f64 b b) (+.f64 a 3)))
9.0ms
(*.f64 (*.f64 b b) (+.f64 a 3))

rewrite67.0ms (2.7%)

Algorithm
batch-egg-rewrite
Rules
85×egg-rr
Counts
4 → 85
Calls

2 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01441
130541
2341141
3529041
000
100

simplify72.0ms (2.8%)

Algorithm
egg-herbie
Rules
859×fma-neg_binary64
590×cancel-sign-sub-inv_binary64
287×neg-mul-1_binary64
276×neg-sub0_binary64
267×fma-def_binary64
Counts
181 → 140
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0681506
12101468
26391424
325631424
442501424
550901424

prune130.0ms (5.1%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New1400140
Fresh011
Picked011
Done000
Total1402142
Error
0.0b
Counts
142 → 2
Alt Table
StatusErrorProgram
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)
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))
Compiler

Compiled 4168 to 2401 computations (42.4% saved)

localize15.0ms (0.6%)

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.3b
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
0.9b
(*.f64 (*.f64 b b) (+.f64 3 a))

series44.0ms (1.7%)

Counts
4 → 84
Calls

4 calls:

19.0ms
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
13.0ms
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
8.0ms
(*.f64 (*.f64 b b) (+.f64 3 a))
3.0ms
(*.f64 (*.f64 a a) (-.f64 1 a))

rewrite86.0ms (3.4%)

Algorithm
batch-egg-rewrite
Rules
107×egg-rr
Counts
4 → 107
Calls

2 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01754
138953
2488953
3532353
000
100

simplify61.0ms (2.4%)

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
191 → 144
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0391326
11071232
23071152
39291152
424081152
550511152

prune153.0ms (6%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New1440144
Fresh000
Picked011
Done011
Total1442146
Error
0.0b
Counts
146 → 2
Alt Table
StatusErrorProgram
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)
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))
Compiler

Compiled 5119 to 2762 computations (46% saved)

regimes236.0ms (9.3%)

Accuracy

Total 0.1b remaining (81.2%)

Threshold costs 0.1b (81.2%)

Counts
38 → 1
Compiler

Compiled 5079 to 3473 computations (31.6% 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
01630
12230
22530
32730
42830
52730

end68.0ms (2.7%)

Compiler

Compiled 102 to 68 computations (33.3% saved)

Profiling

Loading profile data...