Details

Time bar (total: 6.8s)

analyze2.0ms (0%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
99.9%0%0.1%1
Compiler

Compiled 23 to 16 computations (30.4% saved)

sample2.6s (38.6%)

Symmetry

(sort a1 a2)

Results
1.2s1884×body1024valid
766.0ms4840×body128valid
394.0ms1041×body512valid
181.0ms489×body256valid
2.0msbody2048valid
Compiler

Compiled 68 to 47 computations (30.9% saved)

simplify10.0ms (0.2%)

Algorithm
egg-herbie
Rules
32×fma-def_binary64
23×*-commutative_binary64
20×associate-/l*_binary64
11×associate-/r/_binary64
associate-*r/_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01320
12718
25318
37618
410318
511718
613218
713418
813618
913618

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.3b
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
0.2b
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
Compiler

Compiled 108 to 70 computations (35.2% saved)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

series85.0ms (1.3%)

Counts
2 → 60
Calls

2 calls:

62.0ms
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
23.0ms
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2))

rewrite20.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
39×add-sqr-sqrt_binary64
38×times-frac_binary64
31×*-un-lft-identity_binary64
31×add-cube-cbrt_binary64
22×associate-*r*_binary64
Counts
2 → 85
Calls

2 calls:

7.0ms
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
4.0ms
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2))

simplify105.0ms (1.5%)

Algorithm
egg-herbie
Rules
456×associate-*l*_binary64
410×associate-*r*_binary64
396×fma-neg_binary64
332×associate-/l*_binary64
299×sub-neg_binary64
Counts
145 → 151
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01703315
13653012
212892968
343592968
450762968

prune191.0ms (2.8%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New1456151
Fresh011
Picked101
Done000
Total1467153
Error
0b
Counts
153 → 7
Alt Table
StatusErrorProgram
0.3b
(*.f64 (*.f64 (cos.f64 th) (/.f64 (hypot.f64 a2 a1) (sqrt.f64 (sqrt.f64 2)))) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 (sqrt.f64 2))))
0.2b
(*.f64 (cos.f64 th) (/.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2)))) (cbrt.f64 (sqrt.f64 2))))
0.3b
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 (sqrt.f64 2))))
0.2b
(/.f64 (*.f64 (cos.f64 th) (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2))
0.2b
(*.f64 (*.f64 (cos.f64 th) (hypot.f64 a2 a1)) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2)))
0.3b
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
0.3b
(*.f64 (cos.f64 th) (/.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))))
Compiler

Compiled 3709 to 1752 computations (52.8% saved)

localize15.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

series452.0ms (6.6%)

Counts
3 → 84
Calls

3 calls:

365.0ms
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2))))
63.0ms
(*.f64 (cos.f64 th) (/.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2)))) (cbrt.f64 (sqrt.f64 2))))
23.0ms
(/.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2)))) (cbrt.f64 (sqrt.f64 2)))

rewrite68.0ms (1%)

Algorithm
rewrite-expression-head
Rules
195×times-frac_binary64
110×add-sqr-sqrt_binary64
94×cbrt-prod_binary64
90×*-un-lft-identity_binary64
90×add-cube-cbrt_binary64
Counts
3 → 218
Calls

3 calls:

21.0ms
(*.f64 (cos.f64 th) (/.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2)))) (cbrt.f64 (sqrt.f64 2))))
8.0ms
(/.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2)))) (cbrt.f64 (sqrt.f64 2)))
6.0ms
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2))))

simplify240.0ms (3.5%)

Algorithm
egg-herbie
Rules
846×fma-neg_binary64
500×associate-/r/_binary64
260×fma-def_binary64
191×associate-/l*_binary64
181×associate-/l/_binary64
Counts
302 → 365
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03099806
16978974
225818924
345838924
453538924

prune445.0ms (6.5%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New3641365
Fresh156
Picked101
Done000
Total3666372
Error
0b
Counts
372 → 6
Alt Table
StatusErrorProgram
0.3b
(*.f64 (cos.f64 th) (/.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))))
0.2b
(*.f64 (cos.f64 th) (/.f64 (*.f64 (cbrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))) (cbrt.f64 (sqrt.f64 2))))
0.2b
(/.f64 (*.f64 (cos.f64 th) (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2))
0.2b
(*.f64 (*.f64 (cos.f64 th) (hypot.f64 a2 a1)) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2)))
0.3b
(*.f64 (*.f64 (cos.f64 th) (/.f64 (hypot.f64 a2 a1) (sqrt.f64 (sqrt.f64 2)))) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 (sqrt.f64 2))))
0.3b
(+.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 12706 to 8027 computations (36.8% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

series93.0ms (1.4%)

Counts
2 → 72
Calls

2 calls:

62.0ms
(/.f64 (*.f64 (cos.f64 th) (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2))
31.0ms
(*.f64 (cos.f64 th) (fma.f64 a1 a1 (*.f64 a2 a2)))

rewrite10.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
10×add-sqr-sqrt_binary64
add-cbrt-cube_binary64
add-exp-log_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
Counts
2 → 51
Calls

2 calls:

4.0ms
(/.f64 (*.f64 (cos.f64 th) (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2))
3.0ms
(*.f64 (cos.f64 th) (fma.f64 a1 a1 (*.f64 a2 a2)))

simplify91.0ms (1.3%)

Algorithm
egg-herbie
Rules
640×associate-/l*_binary64
436×fma-def_binary64
359×times-frac_binary64
315×cancel-sign-sub-inv_binary64
247×distribute-rgt-in_binary64
Counts
123 → 105
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01622546
13862329
215402260
349532258
450652258

prune105.0ms (1.6%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New1050105
Fresh055
Picked011
Done000
Total1056111
Error
0b
Counts
111 → 6
Alt Table
StatusErrorProgram
0.3b
(*.f64 (cos.f64 th) (/.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))))
0.2b
(*.f64 (cos.f64 th) (/.f64 (*.f64 (cbrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))) (cbrt.f64 (sqrt.f64 2))))
0.2b
(/.f64 (*.f64 (cos.f64 th) (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2))
0.2b
(*.f64 (*.f64 (cos.f64 th) (hypot.f64 a2 a1)) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2)))
0.3b
(*.f64 (*.f64 (cos.f64 th) (/.f64 (hypot.f64 a2 a1) (sqrt.f64 (sqrt.f64 2)))) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 (sqrt.f64 2))))
0.3b
(+.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 2441 to 1188 computations (51.3% saved)

localize14.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series337.0ms (5%)

Counts
4 → 120
Calls

4 calls:

212.0ms
(*.f64 (*.f64 (cos.f64 th) (hypot.f64 a2 a1)) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2)))
88.0ms
(*.f64 (cos.f64 th) (hypot.f64 a2 a1))
23.0ms
(/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2))
14.0ms
(sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2)))

rewrite35.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
81×sqrt-prod_binary64
72×times-frac_binary64
65×add-sqr-sqrt_binary64
60×*-un-lft-identity_binary64
60×add-cube-cbrt_binary64
Counts
4 → 162
Calls

4 calls:

11.0ms
(*.f64 (*.f64 (cos.f64 th) (hypot.f64 a2 a1)) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2)))
4.0ms
(/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2))
3.0ms
(*.f64 (cos.f64 th) (hypot.f64 a2 a1))
1.0ms
(sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2)))

simplify222.0ms (3.3%)

Algorithm
egg-herbie
Rules
621×fma-def_binary64
376×cancel-sign-sub-inv_binary64
345×associate-*l*_binary64
317×sub-neg_binary64
308×fma-neg_binary64
Counts
282 → 332
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03477564
19366108
233646008
347996003
449326003
550386003

prune325.0ms (4.8%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New3311332
Fresh134
Picked011
Done011
Total3326338
Error
0b
Counts
338 → 6
Alt Table
StatusErrorProgram
0.3b
(*.f64 (cos.f64 th) (/.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))))
0.2b
(*.f64 (cos.f64 th) (/.f64 (*.f64 (cbrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))) (cbrt.f64 (sqrt.f64 2))))
0.2b
(*.f64 (*.f64 (cos.f64 th) (hypot.f64 a2 a1)) (sqrt.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) 2)))
0.2b
(/.f64 (*.f64 (cos.f64 th) (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2))
0.2b
(*.f64 (*.f64 (cos.f64 th) (hypot.f64 a2 a1)) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2)))
0.3b
(*.f64 (*.f64 (cos.f64 th) (/.f64 (hypot.f64 a2 a1) (sqrt.f64 (sqrt.f64 2)))) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 (sqrt.f64 2))))
Compiler

Compiled 9184 to 3854 computations (58% saved)

regimes1.2s (17.3%)

Accuracy

Total 0.2b remaining (85.9%)

Threshold costs 0.2b (85.9%)

Counts
140 → 1
Compiler

Compiled 24853 to 16418 computations (33.9% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01324
11524
21524

end111.0ms (1.6%)

Remove

(sort a1 a2)

Compiler

Compiled 194 to 130 computations (33% saved)

Profiling

Loading profile data...