Details

Time bar (total: 20.8s)

analyze2.3s (10.9%)

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)

sample204.0ms (1%)

Algorithm
intervals
Results
52.0ms54×body1024valid
35.0ms34×body1024invalid
30.0ms161×body128valid
16.0ms25×body512invalid
16.0ms30×body512valid
9.0ms24×body256invalid
4.0ms24×body128invalid
4.0ms11×body256valid
Compiler

Compiled 48 to 34 computations (29.2% saved)

simplify26.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%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.4b
Counts
3 → 2
Alt Table
StatusErrorProgram
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)))
0.4b
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
Compiler

Compiled 108 to 70 computations (35.2% saved)

localize20.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(cos.f64 th)
0.2b
(*.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))

rewrite34.0ms (0.2%)

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 → 94
Calls

3 calls:

16.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))
2.0ms
(cos.f64 th)

series300.0ms (1.4%)

Counts
3 → 64
Calls

3 calls:

202.0ms
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
95.0ms
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2))
2.0ms
(cos.f64 th)

simplify219.0ms (1.1%)

Algorithm
egg-herbie
Rules
486×associate-*l*_binary64
420×associate-*r*_binary64
337×unswap-sqr_binary64
336×associate-/l*_binary64
276×associate-*r/_binary64
Counts
158 → 301
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01823431
13983117
213733069
344143069
452053069

prune373.0ms (1.8%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New2938301
Fresh101
Picked101
Done000
Total2958303
Error
0b
Counts
303 → 8
Alt Table
StatusErrorProgram
0.5b
(*.f64 (/.f64 (cos.f64 th) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2)))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (cbrt.f64 (sqrt.f64 2))))
0.4b
(*.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.4b
(*.f64 (cos.f64 th) (*.f64 (/.f64 (hypot.f64 a2 a1) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2)))) (/.f64 (hypot.f64 a2 a1) (cbrt.f64 (sqrt.f64 2)))))
0.5b
(*.f64 (*.f64 (cos.f64 th) (fma.f64 a1 a1 (*.f64 a2 a2))) (/.f64 1 (sqrt.f64 2)))
0.5b
(*.f64 (cos.f64 th) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (/.f64 (sqrt.f64 2) (hypot.f64 a2 a1))))
0.6b
(*.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.5b
(*.f64 (*.f64 (cos.f64 th) (hypot.f64 a2 a1)) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2)))
0.7b
(*.f64 (*.f64 (cos.f64 th) (/.f64 1 (sqrt.f64 (sqrt.f64 2)))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 (sqrt.f64 2))))
Compiler

Compiled 4083 to 1947 computations (52.3% saved)

localize24.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(cos.f64 th)
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.2b
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2))))
0.3b
(/.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)))

rewrite113.0ms (0.5%)

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:

44.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))))
18.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)))
10.0ms
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2))))

series960.0ms (4.6%)

Counts
3 → 84
Calls

3 calls:

675.0ms
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2))))
199.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))))
86.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)))

simplify518.0ms (2.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 → 595
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03099806
16978974
225818924
345838924
453538924

prune866.0ms (4.2%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New6102612
Fresh257
Picked101
Done000
Total6137620
Error
0b
Counts
620 → 7
Alt Table
StatusErrorProgram
0.4b
(/.f64 (*.f64 (cos.f64 th) (+.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (sqrt.f64 2))
0.5b
(*.f64 (/.f64 (cos.f64 th) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2)))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (cbrt.f64 (sqrt.f64 2))))
0.4b
(*.f64 (cos.f64 th) (/.f64 (*.f64 (cbrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))) (cbrt.f64 (sqrt.f64 2))))
0.7b
(*.f64 (*.f64 (cos.f64 th) (/.f64 1 (sqrt.f64 (sqrt.f64 2)))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 (sqrt.f64 2))))
0.4b
(*.f64 (cos.f64 th) (*.f64 (/.f64 (hypot.f64 a2 a1) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2)))) (/.f64 (hypot.f64 a2 a1) (cbrt.f64 (sqrt.f64 2)))))
0.5b
(*.f64 (cos.f64 th) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (/.f64 (sqrt.f64 2) (hypot.f64 a2 a1))))
0.5b
(*.f64 (*.f64 (cos.f64 th) (hypot.f64 a2 a1)) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2)))
Compiler

Compiled 13209 to 8367 computations (36.7% saved)

localize25.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(cos.f64 th)
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.3b
(/.f64 (*.f64 (cbrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))) (cbrt.f64 (sqrt.f64 2)))
0.4b
(*.f64 (cbrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))

rewrite44.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
23×add-sqr-sqrt_binary64
22×cbrt-prod_binary64
19×add-exp-log_binary64
18×times-frac_binary64
17×*-un-lft-identity_binary64
Counts
3 → 96
Calls

3 calls:

15.0ms
(*.f64 (cos.f64 th) (/.f64 (*.f64 (cbrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))) (cbrt.f64 (sqrt.f64 2))))
10.0ms
(/.f64 (*.f64 (cbrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))) (cbrt.f64 (sqrt.f64 2)))
8.0ms
(*.f64 (cbrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))

series1.9s (8.9%)

Counts
3 → 84
Calls

3 calls:

1.2s
(*.f64 (cos.f64 th) (/.f64 (*.f64 (cbrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))) (cbrt.f64 (sqrt.f64 2))))
570.0ms
(/.f64 (*.f64 (cbrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))) (cbrt.f64 (sqrt.f64 2)))
126.0ms
(*.f64 (cbrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))

simplify263.0ms (1.3%)

Algorithm
egg-herbie
Rules
766×fma-def_binary64
452×fma-neg_binary64
290×cancel-sign-sub-inv_binary64
284×associate-*l*_binary64
258×distribute-rgt-in_binary64
Counts
180 → 346
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01954730
14694129
219784012
346574010
449774010

prune380.0ms (1.8%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New3791380
Fresh156
Picked011
Done000
Total3807387
Error
0b
Counts
387 → 7
Alt Table
StatusErrorProgram
0.5b
(*.f64 (cos.f64 th) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (/.f64 (sqrt.f64 2) (hypot.f64 a2 a1))))
0.4b
(*.f64 (cos.f64 th) (/.f64 (*.f64 (*.f64 (cbrt.f64 1/2) (hypot.f64 a1 a2)) (sqrt.f64 (fma.f64 a2 a2 (*.f64 a1 a1)))) (cbrt.f64 (sqrt.f64 2))))
0.4b
(*.f64 (cos.f64 th) (/.f64 (*.f64 (cbrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))) (cbrt.f64 (sqrt.f64 2))))
0.7b
(*.f64 (*.f64 (cos.f64 th) (/.f64 1 (sqrt.f64 (sqrt.f64 2)))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 (sqrt.f64 2))))
0.4b
(*.f64 (cos.f64 th) (*.f64 (/.f64 (hypot.f64 a2 a1) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2)))) (/.f64 (hypot.f64 a2 a1) (cbrt.f64 (sqrt.f64 2)))))
0.5b
(*.f64 (*.f64 (cos.f64 th) (hypot.f64 a2 a1)) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2)))
0.5b
(*.f64 (/.f64 (cos.f64 th) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2)))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (cbrt.f64 (sqrt.f64 2))))
Compiler

Compiled 5126 to 3088 computations (39.8% saved)

localize32.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 (cbrt.f64 1/2) (hypot.f64 a1 a2)) (sqrt.f64 (fma.f64 a2 a2 (*.f64 a1 a1))))
0.3b
(/.f64 (*.f64 (*.f64 (cbrt.f64 1/2) (hypot.f64 a1 a2)) (sqrt.f64 (fma.f64 a2 a2 (*.f64 a1 a1)))) (cbrt.f64 (sqrt.f64 2)))
0.4b
(*.f64 (cbrt.f64 1/2) (hypot.f64 a1 a2))
6.9b
(sqrt.f64 (fma.f64 a2 a2 (*.f64 a1 a1)))

rewrite44.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
21×add-sqr-sqrt_binary64
20×add-exp-log_binary64
16×cbrt-prod_binary64
16×*-un-lft-identity_binary64
16×add-cube-cbrt_binary64
Counts
4 → 100
Calls

4 calls:

13.0ms
(/.f64 (*.f64 (*.f64 (cbrt.f64 1/2) (hypot.f64 a1 a2)) (sqrt.f64 (fma.f64 a2 a2 (*.f64 a1 a1)))) (cbrt.f64 (sqrt.f64 2)))
10.0ms
(*.f64 (*.f64 (cbrt.f64 1/2) (hypot.f64 a1 a2)) (sqrt.f64 (fma.f64 a2 a2 (*.f64 a1 a1))))
7.0ms
(*.f64 (cbrt.f64 1/2) (hypot.f64 a1 a2))
2.0ms
(sqrt.f64 (fma.f64 a2 a2 (*.f64 a1 a1)))

series1.3s (6.1%)

Counts
4 → 96
Calls

4 calls:

899.0ms
(/.f64 (*.f64 (*.f64 (cbrt.f64 1/2) (hypot.f64 a1 a2)) (sqrt.f64 (fma.f64 a2 a2 (*.f64 a1 a1)))) (cbrt.f64 (sqrt.f64 2)))
293.0ms
(*.f64 (*.f64 (cbrt.f64 1/2) (hypot.f64 a1 a2)) (sqrt.f64 (fma.f64 a2 a2 (*.f64 a1 a1))))
54.0ms
(*.f64 (cbrt.f64 1/2) (hypot.f64 a1 a2))
28.0ms
(sqrt.f64 (fma.f64 a2 a2 (*.f64 a1 a1)))

simplify311.0ms (1.5%)

Algorithm
egg-herbie
Rules
937×times-frac_binary64
672×fma-neg_binary64
357×fma-def_binary64
166×associate-/l*_binary64
162×cancel-sign-sub-inv_binary64
Counts
196 → 362
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02204727
15733736
221723638
341443612
449633612
550013612

prune371.0ms (1.8%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New3611362
Fresh145
Picked011
Done011
Total3627369
Error
0b
Counts
369 → 7
Alt Table
StatusErrorProgram
0.5b
(*.f64 (cos.f64 th) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (/.f64 (sqrt.f64 2) (hypot.f64 a2 a1))))
0.4b
(*.f64 (cos.f64 th) (/.f64 (*.f64 (*.f64 (cbrt.f64 1/2) (hypot.f64 a1 a2)) (sqrt.f64 (fma.f64 a2 a2 (*.f64 a1 a1)))) (cbrt.f64 (sqrt.f64 2))))
0.4b
(*.f64 (cos.f64 th) (/.f64 (*.f64 (cbrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))) (cbrt.f64 (sqrt.f64 2))))
0.7b
(*.f64 (*.f64 (cos.f64 th) (/.f64 1 (sqrt.f64 (sqrt.f64 2)))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 (sqrt.f64 2))))
0.5b
(*.f64 (*.f64 (cos.f64 th) (hypot.f64 a2 a1)) (/.f64 (sqrt.f64 (fma.f64 a1 a1 (*.f64 a2 a2))) (sqrt.f64 2)))
0.5b
(*.f64 (/.f64 (cos.f64 th) (*.f64 (cbrt.f64 (sqrt.f64 2)) (cbrt.f64 (sqrt.f64 2)))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (cbrt.f64 (sqrt.f64 2))))
0.4b
(*.f64 (cos.f64 th) (/.f64 (*.f64 (cbrt.f64 1/2) (hypot.f64 a1 a2)) (/.f64 (cbrt.f64 (sqrt.f64 2)) (hypot.f64 a1 a2))))
Compiler

Compiled 6232 to 3403 computations (45.4% saved)

regimes3.4s (16.4%)

Accuracy

Total 0.4b remaining (90.7%)

Threshold costs 0.4b (90.7%)

Compiler

Compiled 35836 to 25091 computations (30% saved)

simplify6.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01725
12125
22025

end15.0ms (0.1%)

Remove

(sort a1 a2)

Compiler

Compiled 57 to 42 computations (26.3% saved)

sample6.8s (32.9%)

Algorithm
intervals
Results
1.8s1824×body1024valid
1.6s1596×body1024invalid
1.0s4882×body128valid
563.0ms888×body512valid
441.0ms766×body512invalid
173.0ms403×body256valid
149.0ms387×body256invalid
137.0ms677×body128invalid
5.0msbody2048valid
1.0msbody2048invalid
Compiler

Compiled 194 to 140 computations (27.8% saved)

Profiling

Loading profile data...