Details

Time bar (total: 10.2s)

analyze1.1s (10.6%)

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
25%74.9%0.1%6
25%74.9%0.1%7
25%74.9%0.1%8
25%74.9%0.1%9
25%64%11.1%10
31.2%54.6%14.2%11
39%44.1%16.9%12
39%41.5%19.5%13
42.9%37%20.1%14
Compiler

Compiled 23 to 16 computations (30.4% saved)

sample4.4s (43.2%)

Symmetry

(sort a1 a2)

Results
1.2s1843×body1024valid
1.1s1625×body1024invalid
836.0ms5036×body128valid
425.0ms892×body512valid
368.0ms778×body512invalid
139.0ms479×body256valid
131.0ms390×body256invalid
123.0ms733×body128invalid
6.0msbody2048valid
Compiler

Compiled 68 to 47 computations (30.9% saved)

simplify48.0ms (0.5%)

Algorithm
egg-herbie
Rules
785×fma-def_binary64
651×rules-20_binary64
521×rules-33_binary64
334×rules-13_binary64
306×rules-14-rev_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01320
13218
210018
339318
4194018
5456918
6553918

prune4.0ms (0%)

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.4b
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
0.5b
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
Compiler

Compiled 108 to 70 computations (35.2% saved)

localize8.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 a1 a1 (*.f64 a2 a2))
0.1b
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
0.4b
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2))

series72.0ms (0.7%)

Counts
3 → 84
Calls

3 calls:

48.0ms
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
17.0ms
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2))
6.0ms
(fma.f64 a1 a1 (*.f64 a2 a2))

rewrite85.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
830×fma-neg_binary64
306×prod-diff_binary64
191×egg-rr
190×expm1-udef_binary64
190×log1p-udef_binary64
Counts
3 → 191
Calls

3 calls:

80.0ms
(fma.f64 a1 a1 (*.f64 a2 a2))
80.0ms
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
80.0ms
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01139
125336
2301536
3492436
000
100

simplify74.0ms (0.7%)

Algorithm
egg-herbie
Rules
595×fma-def_binary64
348×rules-13_binary64
293×rules-11_binary64
252×rules-20_binary64
203×fma-neg_binary64
Counts
275 → 219
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0691517
11791421
28651303
349481303
450131303

prune252.0ms (2.5%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New2109219
Fresh101
Picked101
Done000
Total2129221
Error
0.0b
Counts
221 → 9
Alt Table
StatusErrorProgram
0.5b
(/.f64 (/.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cos.f64 th)) (pow.f64 2 1/4)) (pow.f64 2 1/4))
37.4b
(*.f64 (cos.f64 th) (cbrt.f64 (pow.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)) 3)))
17.1b
(fma.f64 (sqrt.f64 (cos.f64 th)) (*.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)) (sqrt.f64 (cos.f64 th))) 0)
0.6b
(*.f64 (cos.f64 th) (pow.f64 (/.f64 (hypot.f64 a1 a2) (pow.f64 2 1/4)) 2))
0.4b
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (/.f64 (hypot.f64 a1 a2) (sqrt.f64 2))))
0.4b
(/.f64 (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (cos.f64 th)) (sqrt.f64 2))
1.1b
(*.f64 (cos.f64 th) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) 2) (/.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (sqrt.f64 2))))
0.5b
(fma.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 1 (/.f64 (sqrt.f64 2) (cos.f64 th))) 0)
1.2b
(pow.f64 (cbrt.f64 (*.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)) (cos.f64 th))) 3)
Compiler

Compiled 5252 to 3311 computations (37% saved)

localize9.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 a1 a2)
0.1b
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (/.f64 (hypot.f64 a1 a2) (sqrt.f64 2))))
0.2b
(*.f64 (hypot.f64 a1 a2) (/.f64 (hypot.f64 a1 a2) (sqrt.f64 2)))
0.4b
(/.f64 (hypot.f64 a1 a2) (sqrt.f64 2))

series160.0ms (1.6%)

Counts
4 → 108
Calls

4 calls:

86.0ms
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (/.f64 (hypot.f64 a1 a2) (sqrt.f64 2))))
47.0ms
(*.f64 (hypot.f64 a1 a2) (/.f64 (hypot.f64 a1 a2) (sqrt.f64 2)))
17.0ms
(/.f64 (hypot.f64 a1 a2) (sqrt.f64 2))
9.0ms
(hypot.f64 a1 a2)

rewrite107.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
927×fma-neg_binary64
358×prod-diff_binary64
317×egg-rr
198×expm1-udef_binary64
198×log1p-udef_binary64
Counts
4 → 317
Calls

4 calls:

101.0ms
(hypot.f64 a1 a2)
101.0ms
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (/.f64 (hypot.f64 a1 a2) (sqrt.f64 2))))
101.0ms
(*.f64 (hypot.f64 a1 a2) (/.f64 (hypot.f64 a1 a2) (sqrt.f64 2)))
101.0ms
(/.f64 (hypot.f64 a1 a2) (sqrt.f64 2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01148
125742
2317942
3532442
000
100

simplify78.0ms (0.8%)

Algorithm
egg-herbie
Rules
755×fma-def_binary64
504×rules-20_binary64
479×rules-15-rev_binary64
461×fma-neg_binary64
371×rules-14-rev_binary64
Counts
425 → 399
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01452779
14492619
220022531
352642531

prune388.0ms (3.8%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New4564460
Fresh538
Picked101
Done000
Total4627469
Error
0b
Counts
469 → 7
Alt Table
StatusErrorProgram
0.5b
(/.f64 (/.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cos.f64 th)) (pow.f64 2 1/4)) (pow.f64 2 1/4))
0.6b
(*.f64 (cos.f64 th) (pow.f64 (/.f64 (hypot.f64 a1 a2) (pow.f64 2 1/4)) 2))
0.3b
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2))))
0.4b
(/.f64 (*.f64 (hypot.f64 a1 a2) (cos.f64 th)) (/.f64 (sqrt.f64 2) (hypot.f64 a1 a2)))
0.4b
(/.f64 (hypot.f64 a1 a2) (/.f64 (/.f64 (sqrt.f64 2) (hypot.f64 a1 a2)) (cos.f64 th)))
0.5b
(*.f64 (cos.f64 th) (/.f64 (/.f64 (hypot.f64 a1 a2) (sqrt.f64 2)) (/.f64 1 (hypot.f64 a1 a2))))
1.1b
(*.f64 (cos.f64 th) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) 2) (/.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (sqrt.f64 2))))
Compiler

Compiled 11608 to 6648 computations (42.7% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(pow.f64 (hypot.f64 a1 a2) 2)
0.1b
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2))))
0.2b
(*.f64 (hypot.f64 a1 a2) (sqrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2)))
8.5b
(sqrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2))

series174.0ms (1.7%)

Counts
4 → 108
Calls

4 calls:

77.0ms
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2))))
45.0ms
(*.f64 (hypot.f64 a1 a2) (sqrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2)))
36.0ms
(pow.f64 (hypot.f64 a1 a2) 2)
15.0ms
(sqrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2))

rewrite117.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
978×fma-neg_binary64
354×prod-diff_binary64
333×egg-rr
208×expm1-udef_binary64
208×log1p-udef_binary64
Counts
4 → 333
Calls

4 calls:

110.0ms
(pow.f64 (hypot.f64 a1 a2) 2)
110.0ms
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2))))
110.0ms
(*.f64 (hypot.f64 a1 a2) (sqrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2)))
110.0ms
(sqrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01260
127945
2333245
3556445
000
100

simplify72.0ms (0.7%)

Algorithm
egg-herbie
Rules
935×fma-neg_binary64
720×rules-13_binary64
537×rules-20_binary64
225×rules-21_binary64
179×fma-def_binary64
Counts
441 → 392
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01182189
13842005
218432005
352642005

prune305.0ms (3%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New3911392
Fresh246
Picked011
Done000
Total3936399
Error
0b
Counts
399 → 6
Alt Table
StatusErrorProgram
0.5b
(/.f64 (/.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cos.f64 th)) (pow.f64 2 1/4)) (pow.f64 2 1/4))
0.6b
(*.f64 (cos.f64 th) (pow.f64 (/.f64 (hypot.f64 a1 a2) (pow.f64 2 1/4)) 2))
0.3b
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2))))
0.4b
(/.f64 (*.f64 (hypot.f64 a1 a2) (cos.f64 th)) (/.f64 (sqrt.f64 2) (hypot.f64 a1 a2)))
0.4b
(/.f64 (hypot.f64 a1 a2) (/.f64 (/.f64 (sqrt.f64 2) (hypot.f64 a1 a2)) (cos.f64 th)))
0.4b
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))))
Compiler

Compiled 10257 to 5848 computations (43% saved)

localize8.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 a1 a2)
0.2b
(/.f64 (hypot.f64 a1 a2) (/.f64 (/.f64 (sqrt.f64 2) (hypot.f64 a1 a2)) (cos.f64 th)))
0.2b
(/.f64 (/.f64 (sqrt.f64 2) (hypot.f64 a1 a2)) (cos.f64 th))
0.5b
(/.f64 (sqrt.f64 2) (hypot.f64 a1 a2))

series187.0ms (1.8%)

Counts
3 → 96
Calls

3 calls:

88.0ms
(/.f64 (hypot.f64 a1 a2) (/.f64 (/.f64 (sqrt.f64 2) (hypot.f64 a1 a2)) (cos.f64 th)))
80.0ms
(/.f64 (/.f64 (sqrt.f64 2) (hypot.f64 a1 a2)) (cos.f64 th))
19.0ms
(/.f64 (sqrt.f64 2) (hypot.f64 a1 a2))

rewrite104.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
847×fma-neg_binary64
286×prod-diff_binary64
196×expm1-udef_binary64
196×log1p-udef_binary64
115×egg-rr
Counts
3 → 115
Calls

3 calls:

101.0ms
(/.f64 (hypot.f64 a1 a2) (/.f64 (/.f64 (sqrt.f64 2) (hypot.f64 a1 a2)) (cos.f64 th)))
101.0ms
(/.f64 (/.f64 (sqrt.f64 2) (hypot.f64 a1 a2)) (cos.f64 th))
101.0ms
(/.f64 (sqrt.f64 2) (hypot.f64 a1 a2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01143
125243
2304843
3496743
4493943
000
100

simplify84.0ms (0.8%)

Algorithm
egg-herbie
Rules
931×fma-neg_binary64
661×rules-15-rev_binary64
308×rules-21_binary64
150×fma-def_binary64
144×rules-20_binary64
Counts
211 → 204
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01843537
16123297
229083297
356313297

prune262.0ms (2.6%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New3251326
Fresh134
Picked101
Done011
Total3275332
Error
0b
Counts
332 → 5
Alt Table
StatusErrorProgram
0.5b
(/.f64 (/.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cos.f64 th)) (pow.f64 2 1/4)) (pow.f64 2 1/4))
0.4b
(/.f64 (*.f64 (cos.f64 th) (+.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (sqrt.f64 2))
0.3b
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2))))
0.4b
(/.f64 (*.f64 (hypot.f64 a1 a2) (cos.f64 th)) (/.f64 (sqrt.f64 2) (hypot.f64 a1 a2)))
0.4b
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))))
Compiler

Compiled 7688 to 4380 computations (43% saved)

regimes2.0s (19.6%)

Accuracy

Total 0.3b remaining (94.5%)

Threshold costs 0.3b (94.5%)

Counts
227 → 1
Compiler

Compiled 33905 to 24390 computations (28.1% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01223
11223

end93.0ms (0.9%)

Remove

(sort a1 a2)

Compiler

Compiled 156 to 109 computations (30.1% saved)

Profiling

Loading profile data...