Details

Time bar (total: 2.8s)

analyze16.0ms (0.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%18.7%81.3%0
0%18.7%81.3%1
0%18.7%81.3%2
0%18.7%81.3%3
0%18.7%81.3%4
4.7%14%81.3%5
5.3%13.5%81.3%6
18.1%0.6%81.3%7
18.1%0.6%81.3%8
18.6%0.1%81.3%9
18.6%0.1%81.3%10
18.7%0%81.3%11
18.7%0%81.3%12
18.7%0%81.3%13
18.7%0%81.3%14
Compiler

Compiled 28 to 17 computations (39.3% saved)

sample1.1s (38.1%)

Results
1.0s8256×body128valid
Compiler

Compiled 73 to 43 computations (41.1% saved)

simplify30.0ms (1.1%)

Algorithm
egg-herbie
Rules
770×fma-def_binary64
469×fma-neg_binary64
365×sub-neg_binary64
282×unsub-neg_binary64
267×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01020
12420
25820
313820
432820
584820
6201720
7471320
Stop Event
node limit
Counts
1 → 2

prune3.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
19.4b
Counts
3 → 2
Alt Table
StatusErrorProgram
20.0b
(*.f64 (+.f64 x y) (/.f64 (-.f64 x y) (fma.f64 x x (*.f64 y y))))
19.8b
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
Compiler

Compiled 97 to 46 computations (52.6% saved)

localize8.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 x x) (*.f64 y y))
19.5b
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))

series22.0ms (0.8%)

Counts
2 → 48
Calls

2 calls:

15.0ms
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
7.0ms
(+.f64 (*.f64 x x) (*.f64 y y))

rewrite55.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
648×fma-def_binary64
273×fma-neg_binary64
211×expm1-udef_binary64
211×log1p-udef_binary64
121×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01028
123726
2383926
Stop Event
node limit
Counts
2 → 93
Calls

2 calls:

53.0ms
(+.f64 (*.f64 x x) (*.f64 y y))
53.0ms
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))

simplify31.0ms (1.1%)

Algorithm
egg-herbie
Rules
526×associate-*l/_binary64
422×associate-*r/_binary64
387×fma-def_binary64
331×cancel-sign-sub-inv_binary64
306×associate-/r/_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
037738
1111678
2333642
31312609
Stop Event
node limit
Counts
141 → 112

prune72.0ms (2.5%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New1084112
Fresh101
Picked101
Done000
Total1104114
Error
0b
Counts
114 → 4
Alt Table
StatusErrorProgram
19.8b
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (fma.f64 x x (*.f64 y y)))
43.2b
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
19.7b
(fma.f64 2 (*.f64 (/.f64 x y) (-.f64 (/.f64 x y) (pow.f64 (/.f64 x y) 3))) -1)
0.0b
(*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))
Compiler

Compiled 2234 to 891 computations (60.1% saved)

localize8.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 x y)
0.0b
(/.f64 (-.f64 x y) (hypot.f64 x y))
0.0b
(/.f64 (+.f64 x y) (hypot.f64 x y))
0.0b
(*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))

series47.0ms (1.7%)

Counts
4 → 96
Calls

4 calls:

20.0ms
(*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))
10.0ms
(hypot.f64 x y)
9.0ms
(/.f64 (+.f64 x y) (hypot.f64 x y))
8.0ms
(/.f64 (-.f64 x y) (hypot.f64 x y))

rewrite110.0ms (3.9%)

Algorithm
batch-egg-rewrite
Rules
805×prod-diff_binary64
279×egg-rr
112×add-sqr-sqrt_binary64
106×log1p-expm1-u_binary64
106×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0946
121443
2352043
Stop Event
node limit
Counts
4 → 279
Calls

4 calls:

101.0ms
(hypot.f64 x y)
101.0ms
(/.f64 (-.f64 x y) (hypot.f64 x y))
101.0ms
(/.f64 (+.f64 x y) (hypot.f64 x y))
101.0ms
(*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))

simplify56.0ms (2%)

Algorithm
egg-herbie
Rules
553×times-frac_binary64
372×fma-def_binary64
296×associate-/l*_binary64
286×cancel-sign-sub-inv_binary64
270×associate-/r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01111812
13881722
213441606
Stop Event
node limit
Counts
375 → 369

prune301.0ms (10.7%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New4171418
Fresh123
Picked011
Done000
Total4184422
Error
0b
Counts
422 → 4
Alt Table
StatusErrorProgram
43.2b
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
19.7b
(fma.f64 2 (*.f64 (/.f64 x y) (-.f64 (/.f64 x y) (pow.f64 (/.f64 x y) 3))) -1)
0.0b
(*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))
0.0b
(/.f64 (+.f64 x y) (*.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) (hypot.f64 x y)))
Compiler

Compiled 15084 to 3907 computations (74.1% saved)

localize8.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 x y)
0.0b
(/.f64 (+.f64 x y) (*.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) (hypot.f64 x y)))
0.0b
(*.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) (hypot.f64 x y))
0.0b
(/.f64 (hypot.f64 x y) (-.f64 x y))

series49.0ms (1.7%)

Counts
3 → 72
Calls

3 calls:

30.0ms
(/.f64 (+.f64 x y) (*.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) (hypot.f64 x y)))
11.0ms
(/.f64 (hypot.f64 x y) (-.f64 x y))
8.0ms
(*.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) (hypot.f64 x y))

rewrite58.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
650×prod-diff_binary64
200×log1p-udef_binary64
110×add-sqr-sqrt_binary64
104×log1p-expm1-u_binary64
104×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0948
121042
2329542
Stop Event
node limit
Counts
3 → 100
Calls

3 calls:

55.0ms
(/.f64 (+.f64 x y) (*.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) (hypot.f64 x y)))
55.0ms
(*.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) (hypot.f64 x y))
55.0ms
(/.f64 (hypot.f64 x y) (-.f64 x y))

simplify48.0ms (1.7%)

Algorithm
egg-herbie
Rules
921×fma-neg_binary64
434×times-frac_binary64
258×fma-def_binary64
223×associate-/l*_binary64
203×associate-/r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0871233
12761185
29311102
343681089
Stop Event
node limit
Counts
172 → 152

prune156.0ms (5.5%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New2491250
Fresh112
Picked011
Done011
Total2504254
Error
0b
Counts
254 → 4
Alt Table
StatusErrorProgram
9.8b
(/.f64 (+.f64 x y) (pow.f64 (/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y))) 2))
19.7b
(fma.f64 2 (*.f64 (/.f64 x y) (-.f64 (/.f64 x y) (pow.f64 (/.f64 x y) 3))) -1)
0.0b
(*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))
0.0b
(/.f64 (+.f64 x y) (*.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) (hypot.f64 x y)))
Compiler

Compiled 5342 to 2075 computations (61.2% saved)

localize9.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 x y)
0.0b
(/.f64 (+.f64 x y) (pow.f64 (/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y))) 2))
0.4b
(/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y)))
0.4b
(pow.f64 (/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y))) 2)

series106.0ms (3.8%)

Counts
3 → 36
Calls

3 calls:

48.0ms
(pow.f64 (/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y))) 2)
30.0ms
(/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y)))
28.0ms
(/.f64 (+.f64 x y) (pow.f64 (/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y))) 2))

rewrite60.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
659×prod-diff_binary64
220×log1p-udef_binary64
124×add-sqr-sqrt_binary64
120×log1p-expm1-u_binary64
120×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01148
125044
2347944
Stop Event
node limit
Counts
3 → 105
Calls

3 calls:

58.0ms
(/.f64 (+.f64 x y) (pow.f64 (/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y))) 2))
58.0ms
(/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y)))
58.0ms
(pow.f64 (/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y))) 2)

simplify33.0ms (1.2%)

Algorithm
egg-herbie
Rules
528×associate-/l*_binary64
464×fma-def_binary64
461×associate-/r*_binary64
329×associate-*l*_binary64
184×associate-*l/_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01231003
1374945
21395896
Stop Event
node limit
Counts
141 → 147

prune115.0ms (4.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New1960196
Fresh011
Picked011
Done022
Total1964200
Error
0b
Counts
200 → 4
Alt Table
StatusErrorProgram
9.8b
(/.f64 (+.f64 x y) (pow.f64 (/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y))) 2))
19.7b
(fma.f64 2 (*.f64 (/.f64 x y) (-.f64 (/.f64 x y) (pow.f64 (/.f64 x y) 3))) -1)
0.0b
(*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))
0.0b
(/.f64 (+.f64 x y) (*.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) (hypot.f64 x y)))
Compiler

Compiled 4397 to 1942 computations (55.8% saved)

regimes281.0ms (10%)

Accuracy

Total 0.0b remaining (61.8%)

Threshold costs 0.0b (61.8%)

Counts
104 → 1
Compiler

Compiled 4831 to 2963 computations (38.7% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
sub-neg_binary64
*-commutative_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0922
11222
21722
31922
42022
Stop Event
saturated

end64.0ms (2.3%)

Compiler

Compiled 102 to 52 computations (49% saved)

Profiling

Loading profile data...