Details

Time bar (total: 11.8s)

analyze1.1s (9.1%)

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.6s (38.6%)

Symmetry

(sort a1 a2)

Results
1.3s1867×body1024valid
1.1s1574×body1024invalid
857.0ms5004×body128valid
423.0ms936×body512valid
383.0ms781×body512invalid
130.0ms443×body256valid
128.0ms408×body256invalid
113.0ms660×body128invalid
6.0msbody2048valid
Compiler

Compiled 68 to 47 computations (30.9% saved)

simplify56.0ms (0.5%)

Algorithm
egg-herbie
Rules
1095×rules-42_binary64
878×fma-neg_binary64
794×rules-41_binary64
794×rules-43_binary64
454×rules-40_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01320
18618
232018
3154318
4391718
52618

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
0.5b
Counts
3 → 1
Alt Table
StatusErrorProgram
0.5b
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
Compiler

Compiled 64 to 40 computations (37.5% saved)

localize8.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

series64.0ms (0.5%)

Counts
3 → 64
Calls

3 calls:

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

rewrite84.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
764×fma-neg_binary64
439×fma-def_binary64
249×prod-diff_binary64
204×egg-rr
186×expm1-udef_binary64
Counts
3 → 204
Calls

3 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01134
124932
2290332
3507032
000
100

simplify59.0ms (0.5%)

Algorithm
egg-herbie
Rules
725×rules-40_binary64
725×rules-41_binary64
725×rules-42_binary64
725×rules-43_binary64
293×rules-21_binary64
Counts
268 → 234
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0821389
15071235
225011235
349771235

prune250.0ms (2.1%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New22311234
Fresh000
Picked101
Done000
Total22411235
Error
0.0b
Counts
235 → 11
Alt Table
StatusErrorProgram
1.4b
(fma.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) 2)) 0)
0.7b
(/.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (/.f64 1 (pow.f64 (hypot.f64 a1 a2) 2)))
1.8b
(fma.f64 (cbrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 (cbrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) 2)) 0)
0.6b
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2)))
1.3b
(pow.f64 (cbrt.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2))) 3)
1.0b
(*.f64 (log.f64 (exp.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) (fma.f64 a1 a1 (*.f64 a2 a2)))
0.9b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (cos.f64 th)) 2) (/.f64 (cbrt.f64 (cos.f64 th)) (sqrt.f64 2))) (fma.f64 a1 a1 (*.f64 a2 a2)))
1.3b
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) 2)))
0.7b
(*.f64 (-.f64 (exp.f64 (log1p.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) 1) (fma.f64 a1 a1 (*.f64 a2 a2)))
0.6b
(*.f64 (cbrt.f64 (/.f64 (pow.f64 (cos.f64 th) 3) (*.f64 2 (sqrt.f64 2)))) (fma.f64 a1 a1 (*.f64 a2 a2)))
17.2b
(pow.f64 (*.f64 (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) (hypot.f64 a1 a2)) 2)
Compiler

Compiled 5844 to 3627 computations (37.9% saved)

localize8.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series190.0ms (1.6%)

Counts
4 → 108
Calls

4 calls:

103.0ms
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2)))
47.0ms
(pow.f64 (hypot.f64 a1 a2) 2)
28.0ms
(/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2))
12.0ms
(hypot.f64 a1 a2)

rewrite73.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
723×fma-neg_binary64
386×fma-def_binary64
261×prod-diff_binary64
194×egg-rr
188×expm1-udef_binary64
Counts
4 → 194
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01140
125240
2290140
3495940
000
100

simplify117.0ms (1%)

Algorithm
egg-herbie
Rules
453×rules-21_binary64
278×fma-neg_binary64
256×rules-7-rev_binary64
223×rules-40_binary64
223×rules-41_binary64
Counts
302 → 261
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01352601
18922388
242912388
349602388
449042388

prune248.0ms (2.1%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New2574261
Fresh3710
Picked101
Done000
Total26111272
Error
0.0b
Counts
272 → 11
Alt Table
StatusErrorProgram
0.7b
(*.f64 (-.f64 (exp.f64 (log1p.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) 1) (fma.f64 a1 a1 (*.f64 a2 a2)))
0.6b
(*.f64 (cos.f64 th) (/.f64 1 (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2))))
1.0b
(*.f64 (log.f64 (exp.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) (fma.f64 a1 a1 (*.f64 a2 a2)))
0.7b
(/.f64 (cos.f64 th) (pow.f64 (/.f64 (pow.f64 2 1/4) (hypot.f64 a1 a2)) 2))
0.7b
(/.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (/.f64 1 (pow.f64 (hypot.f64 a1 a2) 2)))
1.8b
(fma.f64 (cbrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 (cbrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) 2)) 0)
0.9b
(*.f64 (pow.f64 (cbrt.f64 (cos.f64 th)) 2) (/.f64 (cbrt.f64 (cos.f64 th)) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2))))
0.9b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (cos.f64 th)) 2) (/.f64 (cbrt.f64 (cos.f64 th)) (sqrt.f64 2))) (fma.f64 a1 a1 (*.f64 a2 a2)))
1.4b
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (*.f64 (cbrt.f64 (hypot.f64 a1 a2)) (*.f64 (hypot.f64 a1 a2) (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 2)))))
0.6b
(*.f64 (cbrt.f64 (/.f64 (pow.f64 (cos.f64 th) 3) (*.f64 2 (sqrt.f64 2)))) (fma.f64 a1 a1 (*.f64 a2 a2)))
17.2b
(pow.f64 (*.f64 (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) (hypot.f64 a1 a2)) 2)
Compiler

Compiled 5500 to 3270 computations (40.5% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (cos.f64 th) 3)
0.3b
(cbrt.f64 (/.f64 (pow.f64 (cos.f64 th) 3) (*.f64 2 (sqrt.f64 2))))
0.4b
(*.f64 (cbrt.f64 (/.f64 (pow.f64 (cos.f64 th) 3) (*.f64 2 (sqrt.f64 2)))) (fma.f64 a1 a1 (*.f64 a2 a2)))
0.7b
(/.f64 (pow.f64 (cos.f64 th) 3) (*.f64 2 (sqrt.f64 2)))

series746.0ms (6.3%)

Counts
4 → 64
Calls

4 calls:

498.0ms
(*.f64 (cbrt.f64 (/.f64 (pow.f64 (cos.f64 th) 3) (*.f64 2 (sqrt.f64 2)))) (fma.f64 a1 a1 (*.f64 a2 a2)))
222.0ms
(cbrt.f64 (/.f64 (pow.f64 (cos.f64 th) 3) (*.f64 2 (sqrt.f64 2))))
19.0ms
(/.f64 (pow.f64 (cos.f64 th) 3) (*.f64 2 (sqrt.f64 2)))
6.0ms
(pow.f64 (cos.f64 th) 3)

rewrite139.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
355×prod-diff_binary64
238×log1p-udef_binary64
236×expm1-udef_binary64
199×egg-rr
137×add-sqr-sqrt_binary64
Counts
4 → 199
Calls

4 calls:

135.0ms
(pow.f64 (cos.f64 th) 3)
135.0ms
(cbrt.f64 (/.f64 (pow.f64 (cos.f64 th) 3) (*.f64 2 (sqrt.f64 2))))
135.0ms
(*.f64 (cbrt.f64 (/.f64 (pow.f64 (cos.f64 th) 3) (*.f64 2 (sqrt.f64 2)))) (fma.f64 a1 a1 (*.f64 a2 a2)))
135.0ms
(/.f64 (pow.f64 (cos.f64 th) 3) (*.f64 2 (sqrt.f64 2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01546
133842
2380842
3499442
4513642
000
100

simplify84.0ms (0.7%)

Algorithm
egg-herbie
Rules
441×rules-14-rev_binary64
375×rules-21_binary64
342×fma-neg_binary64
227×rules-20_binary64
226×rules-7-rev_binary64
Counts
263 → 240
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01162010
18261819
240911819
352081819

prune240.0ms (2%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New2355240
Fresh7310
Picked011
Done000
Total2429251
Error
0.0b
Counts
251 → 9
Alt Table
StatusErrorProgram
0.7b
(*.f64 (-.f64 (exp.f64 (log1p.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) 1) (fma.f64 a1 a1 (*.f64 a2 a2)))
0.4b
(*.f64 (*.f64 (*.f64 (cos.f64 th) (cbrt.f64 1/2)) (pow.f64 (/.f64 1 (sqrt.f64 2)) 1/3)) (fma.f64 a1 a1 (*.f64 a2 a2)))
0.6b
(*.f64 (/.f64 (cbrt.f64 (*.f64 (pow.f64 (cos.f64 th) 3) 1/2)) (cbrt.f64 (sqrt.f64 2))) (fma.f64 a1 a1 (*.f64 a2 a2)))
0.4b
(*.f64 (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (cos.f64 th) (cbrt.f64 1/2))) (pow.f64 (/.f64 1 (sqrt.f64 2)) 1/3))
0.7b
(/.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (/.f64 1 (pow.f64 (hypot.f64 a1 a2) 2)))
17.1b
(*.f64 (exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) 3)) 1/3)) (fma.f64 a1 a1 (*.f64 a2 a2)))
1.4b
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (*.f64 (cbrt.f64 (hypot.f64 a1 a2)) (*.f64 (hypot.f64 a1 a2) (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 2)))))
0.5b
(*.f64 (/.f64 (/.f64 (cos.f64 th) (pow.f64 2 1/4)) (pow.f64 2 1/4)) (fma.f64 a1 a1 (*.f64 a2 a2)))
0.6b
(*.f64 (cbrt.f64 (/.f64 (pow.f64 (cos.f64 th) 3) (*.f64 2 (sqrt.f64 2)))) (fma.f64 a1 a1 (*.f64 a2 a2)))
Compiler

Compiled 6916 to 4407 computations (36.3% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (cos.f64 th) (cbrt.f64 1/2))) (pow.f64 (/.f64 1 (sqrt.f64 2)) 1/3))
0.4b
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (cos.f64 th) (cbrt.f64 1/2)))
1.0b
(/.f64 1 (sqrt.f64 2))
1.0b
(pow.f64 (/.f64 1 (sqrt.f64 2)) 1/3)

series496.0ms (4.2%)

Counts
4 → 64
Calls

4 calls:

444.0ms
(*.f64 (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (cos.f64 th) (cbrt.f64 1/2))) (pow.f64 (/.f64 1 (sqrt.f64 2)) 1/3))
52.0ms
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (cos.f64 th) (cbrt.f64 1/2)))
0.0ms
(pow.f64 (/.f64 1 (sqrt.f64 2)) 1/3)
0.0ms
(/.f64 1 (sqrt.f64 2))

rewrite135.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
636×prod-diff_binary64
232×egg-rr
172×add-sqr-sqrt_binary64
169×log1p-expm1-u_binary64
169×expm1-log1p-u_binary64
Counts
4 → 232
Calls

4 calls:

129.0ms
(*.f64 (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (cos.f64 th) (cbrt.f64 1/2))) (pow.f64 (/.f64 1 (sqrt.f64 2)) 1/3))
129.0ms
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (cos.f64 th) (cbrt.f64 1/2)))
129.0ms
(/.f64 1 (sqrt.f64 2))
129.0ms
(pow.f64 (/.f64 1 (sqrt.f64 2)) 1/3)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01964
143641
2480041
3587441
000
100

simplify222.0ms (1.9%)

Algorithm
egg-herbie
Rules
1435×rules-43_binary64
495×rules-14-rev_binary64
420×rules-21_binary64
291×fma-def_binary64
257×fma-neg_binary64
Counts
296 → 262
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0972554
16661724
236371724
347681690
448441690
549751690
649901690
749951690
861481690

prune320.0ms (2.7%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New2593262
Fresh437
Picked101
Done011
Total2647271
Error
0b
Counts
271 → 7
Alt Table
StatusErrorProgram
0.4b
(*.f64 (fma.f64 (cos.f64 th) (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cbrt.f64 1/2)) 0) (pow.f64 (/.f64 1 (sqrt.f64 2)) 1/3))
0.6b
(*.f64 (cbrt.f64 (/.f64 (pow.f64 (cos.f64 th) 3) (*.f64 2 (sqrt.f64 2)))) (fma.f64 a1 a1 (*.f64 a2 a2)))
0.7b
(/.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (/.f64 1 (pow.f64 (hypot.f64 a1 a2) 2)))
0.8b
(*.f64 (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (cos.f64 th) (cbrt.f64 1/2))) (sqrt.f64 (cbrt.f64 1/2)))
0.7b
(*.f64 (-.f64 (exp.f64 (log1p.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) 1) (fma.f64 a1 a1 (*.f64 a2 a2)))
0.4b
(+.f64 (*.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cos.f64 th)) (sqrt.f64 1/2)) 0)
0.6b
(*.f64 (/.f64 (cbrt.f64 (*.f64 (pow.f64 (cos.f64 th) 3) 1/2)) (cbrt.f64 (sqrt.f64 2))) (fma.f64 a1 a1 (*.f64 a2 a2)))
Compiler

Compiled 8632 to 6384 computations (26% saved)

regimes2.5s (20.8%)

Accuracy

Total 0.4b remaining (84.5%)

Threshold costs 0.4b (84.5%)

Counts
233 → 1
Compiler

Compiled 40317 to 30686 computations (23.9% saved)

simplify1.0ms (0%)

Algorithm
egg-herbie
Rules
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01726
11926
21826

end145.0ms (1.2%)

Remove

(sort a1 a2)

Compiler

Compiled 214 to 175 computations (18.2% saved)

Profiling

Loading profile data...