Details

Time bar (total: 11.7s)

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

sample4.1s (35.5%)

Symmetry

(sort a1 a2)

Results
2.0s1951×body1024valid
1.2s4878×body128valid
679.0ms948×body512valid
201.0ms477×body256valid
4.0msbody2048valid
Compiler

Compiled 68 to 47 computations (30.9% saved)

simplify15.0ms (0.1%)

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

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

Compiled 108 to 70 computations (35.2% saved)

localize28.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

series89.0ms (0.8%)

Counts
3 → 52
Calls

3 calls:

41.0ms
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1))
33.0ms
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2))
15.0ms
(/.f64 (cos.f64 th) (sqrt.f64 2))

rewrite34.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
58×times-frac_binary64
54×add-sqr-sqrt_binary64
44×associate-*l*_binary64
44×*-un-lft-identity_binary64
44×add-cube-cbrt_binary64
Counts
3 → 135
Calls

3 calls:

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

simplify188.0ms (1.6%)

Algorithm
egg-herbie
Rules
651×associate-*l/_binary64
511×associate-/l*_binary64
431×fma-def_binary64
425×associate-*r/_binary64
240×fma-neg_binary64
Counts
187 → 212
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02183496
15593164
216203148
344273146
449993146
549863146

prune564.0ms (4.8%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New2585263
Fresh011
Picked101
Done000
Total2596265
Error
0b
Counts
265 → 6
Alt Table
StatusErrorProgram
0.4b
(+.f64 (*.f64 (/.f64 1 (sqrt.f64 (sqrt.f64 2))) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (*.f64 a1 a1))) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
0.2b
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))) (*.f64 a2 a2)))
0.2b
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
0.3b
(+.f64 (*.f64 (/.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
0.3b
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
0.3b
(+.f64 (*.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) a1) a1) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
Compiler

Compiled 7624 to 4205 computations (44.8% saved)

localize27.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1))
0.6b
(/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2)))
0.7b
(/.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2)))
0.7b
(/.f64 (cos.f64 th) (sqrt.f64 2))

series28.0ms (0.2%)

Counts
2 → 24
Calls

2 calls:

15.0ms
(/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2)))
13.0ms
(/.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2)))

rewrite87.0ms (0.7%)

Algorithm
rewrite-expression-head
Rules
594×sqrt-prod_binary64
576×times-frac_binary64
310×*-un-lft-identity_binary64
310×add-sqr-sqrt_binary64
310×add-cube-cbrt_binary64
Counts
2 → 389
Calls

2 calls:

16.0ms
(/.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2)))
12.0ms
(/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2)))

simplify778.0ms (6.7%)

Algorithm
egg-herbie
Rules
576×fma-def_binary64
502×times-frac_binary64
463×cancel-sign-sub-inv_binary64
440×associate-/r*_binary64
426×fma-neg_binary64
Counts
413 → 385
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
031813544
169212676
2132012060
3305911869
4452311860
5499611860
6496611860

prune963.0ms (8.2%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New5170517
Fresh055
Picked011
Done000
Total5176523
Error
0b
Counts
523 → 6
Alt Table
StatusErrorProgram
0.4b
(+.f64 (*.f64 (/.f64 1 (sqrt.f64 (sqrt.f64 2))) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (*.f64 a1 a1))) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
0.2b
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))) (*.f64 a2 a2)))
0.2b
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
0.3b
(+.f64 (*.f64 (/.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
0.3b
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
0.3b
(+.f64 (*.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) a1) a1) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
Compiler

Compiled 18849 to 12082 computations (35.9% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series46.0ms (0.4%)

Counts
2 → 8
Calls

2 calls:

32.0ms
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2))
14.0ms
(*.f64 (cos.f64 th) (pow.f64 a2 2))

rewrite18.0ms (0.2%)

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

2 calls:

7.0ms
(*.f64 (cos.f64 th) (pow.f64 a2 2))
5.0ms
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2))

simplify97.0ms (0.8%)

Algorithm
egg-herbie
Rules
628×associate-/l*_binary64
497×fma-def_binary64
468×associate-*l*_binary64
462×associate-*r*_binary64
460×times-frac_binary64
Counts
68 → 107
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01351255
12901069
29961045
346231039
452341039

prune518.0ms (4.4%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New2390239
Fresh044
Picked011
Done011
Total2396245
Error
0b
Counts
245 → 6
Alt Table
StatusErrorProgram
0.4b
(+.f64 (*.f64 (/.f64 1 (sqrt.f64 (sqrt.f64 2))) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (*.f64 a1 a1))) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
0.2b
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))) (*.f64 a2 a2)))
0.2b
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
0.3b
(+.f64 (*.f64 (/.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
0.3b
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
0.3b
(+.f64 (*.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) a1) a1) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
Compiler

Compiled 6678 to 4058 computations (39.2% saved)

localize19.0ms (0.2%)

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.2b
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2))

series163.0ms (1.4%)

Counts
3 → 84
Calls

3 calls:

111.0ms
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
37.0ms
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2))
14.0ms
(fma.f64 a1 a1 (*.f64 a2 a2))

rewrite31.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
40×add-sqr-sqrt_binary64
38×times-frac_binary64
32×*-un-lft-identity_binary64
32×add-cube-cbrt_binary64
22×associate-*r*_binary64
Counts
3 → 95
Calls

3 calls:

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

simplify193.0ms (1.6%)

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
179 → 174
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01743607
13683275
212963231
343703231
451093231

prune348.0ms (3%)

Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New1722174
Fresh213
Picked011
Done022
Total1746180
Error
0b
Counts
180 → 6
Alt Table
StatusErrorProgram
0.2b
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))) (*.f64 a2 a2)))
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 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
0.3b
(+.f64 (*.f64 (/.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
0.2b
(*.f64 (*.f64 (cos.f64 th) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) 1)) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2)))
0.3b
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
Compiler

Compiled 3902 to 1766 computations (54.7% saved)

regimes2.9s (24.7%)

Accuracy

Total 0.2b remaining (88.7%)

Threshold costs 0.2b (88.7%)

Counts
181 → 1
Compiler

Compiled 37638 to 26777 computations (28.9% saved)

simplify4.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
/-rgt-identity_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01532
11932
21832

end391.0ms (3.3%)

Compiler

Compiled 233 to 143 computations (38.6% saved)

Profiling

Loading profile data...