Details

Time bar (total: 11.0s)

analyze1.2s (10.7%)

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)

sample120.0ms (1.1%)

Algorithm
intervals
Results
34.0ms75×body1024valid
21.0ms43×body1024invalid
14.0ms140×body128valid
8.0ms29×body512valid
6.0ms21×body512invalid
2.0ms12×body256valid
2.0ms21×body128invalid
2.0ms11×body256invalid
Compiler

Compiled 48 to 34 computations (29.2% saved)

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

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

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

rewrite19.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:

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

series152.0ms (1.4%)

Counts
3 → 64
Calls

3 calls:

105.0ms
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
46.0ms
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2))
1.0ms
(cos.f64 th)

simplify128.0ms (1.2%)

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

prune169.0ms (1.5%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New2947301
Fresh011
Picked101
Done000
Total2958303
Error
0b
Counts
303 → 8
Alt Table
StatusErrorProgram
1.1b
(*.f64 (cos.f64 th) (*.f64 (*.f64 (cbrt.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2))) (cbrt.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))) (cbrt.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))))
0.5b
(*.f64 (expm1.f64 (log1p.f64 (cos.f64 th))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
0.5b
(*.f64 (cos.f64 th) (/.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (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)))
0.6b
(*.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 th) (cos.f64 th)) (cos.f64 th))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (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 (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.6b
(*.f64 (cos.f64 th) (*.f64 (/.f64 1 (sqrt.f64 (sqrt.f64 2))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 (sqrt.f64 2)))))
Compiler

Compiled 4101 to 1935 computations (52.8% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

rewrite30.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:

12.0ms
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1))
7.0ms
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2))
3.0ms
(/.f64 (cos.f64 th) (sqrt.f64 2))

series140.0ms (1.3%)

Counts
3 → 52
Calls

3 calls:

62.0ms
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1))
61.0ms
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2))
16.0ms
(/.f64 (cos.f64 th) (sqrt.f64 2))

simplify158.0ms (1.4%)

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 → 340
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02183496
15593164
216203148
344273146
449993146
549863146

prune276.0ms (2.5%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New4021403
Fresh167
Picked011
Done000
Total4038411
Error
0b
Counts
411 → 8
Alt Table
StatusErrorProgram
0.5b
(*.f64 (expm1.f64 (log1p.f64 (cos.f64 th))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
0.5b
(*.f64 (cos.f64 th) (/.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))))
0.5b
(+.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.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.6b
(*.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 th) (cos.f64 th)) (cos.f64 th))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (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 (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.6b
(*.f64 (cos.f64 th) (*.f64 (/.f64 1 (sqrt.f64 (sqrt.f64 2))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 (sqrt.f64 2)))))
Compiler

Compiled 7649 to 4221 computations (44.8% saved)

localize15.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (/.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))) (*.f64 a2 a2))
0.6b
(/.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2)))
0.6b
(/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2)))
0.7b
(/.f64 (cos.f64 th) (sqrt.f64 2))

rewrite134.0ms (1.2%)

Algorithm
rewrite-expression-head
Rules
1137×sqrt-prod_binary64
1119×times-frac_binary64
610×add-sqr-sqrt_binary64
576×*-un-lft-identity_binary64
576×add-cube-cbrt_binary64
Counts
3 → 711
Calls

3 calls:

40.0ms
(*.f64 (/.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))) (*.f64 a2 a2))
12.0ms
(/.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2)))
4.0ms
(/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2)))

series95.0ms (0.9%)

Counts
3 → 48
Calls

3 calls:

60.0ms
(*.f64 (/.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))) (*.f64 a2 a2))
20.0ms
(/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2)))
14.0ms
(/.f64 (/.f64 (cos.f64 th) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2)))

simplify729.0ms (6.6%)

Algorithm
egg-herbie
Rules
634×fma-def_binary64
456×associate-*l/_binary64
399×associate-/r/_binary64
390×*-commutative_binary64
387×associate-/l/_binary64
Counts
759 → 1456
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
047121838
1131120764
2273019880
3398219680
4498619680
5497719680

prune1.0s (9.2%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New158201582
Fresh066
Picked011
Done011
Total158281590
Error
0b
Counts
1590 → 8
Alt Table
StatusErrorProgram
0.5b
(*.f64 (expm1.f64 (log1p.f64 (cos.f64 th))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
0.5b
(*.f64 (cos.f64 th) (/.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))))
0.5b
(+.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.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.6b
(*.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 th) (cos.f64 th)) (cos.f64 th))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (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 (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.6b
(*.f64 (cos.f64 th) (*.f64 (/.f64 1 (sqrt.f64 (sqrt.f64 2))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 (sqrt.f64 2)))))
Compiler

Compiled 32336 to 21130 computations (34.7% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

rewrite11.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
25×add-sqr-sqrt_binary64
22×associate-*r*_binary64
20×times-frac_binary64
17×*-un-lft-identity_binary64
17×add-cube-cbrt_binary64
Counts
3 → 66
Calls

3 calls:

7.0ms
(*.f64 (expm1.f64 (log1p.f64 (cos.f64 th))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
0.0ms
(log1p.f64 (cos.f64 th))
0.0ms
(expm1.f64 (log1p.f64 (cos.f64 th)))

series1.1s (10%)

Counts
3 → 60
Calls

3 calls:

593.0ms
(*.f64 (expm1.f64 (log1p.f64 (cos.f64 th))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
261.0ms
(log1p.f64 (cos.f64 th))
250.0ms
(expm1.f64 (log1p.f64 (cos.f64 th)))

simplify122.0ms (1.1%)

Algorithm
egg-herbie
Rules
523×distribute-rgt-in_binary64
454×distribute-lft-in_binary64
396×fma-def_binary64
260×times-frac_binary64
145×associate-*r*_binary64
Counts
126 → 238
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02173095
15212880
218972799
348212799
450272799

prune178.0ms (1.6%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New3641365
Fresh145
Picked101
Done022
Total3667373
Error
0b
Counts
373 → 7
Alt Table
StatusErrorProgram
0.5b
(*.f64 (cos.f64 th) (/.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 (sqrt.f64 2))) (sqrt.f64 (sqrt.f64 2))))
0.5b
(+.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.5b
(*.f64 (expm1.f64 (log1p.f64 (cos.f64 th))) (*.f64 (hypot.f64 a2 a1) (/.f64 (hypot.f64 a2 a1) (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)))
0.6b
(*.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 th) (cos.f64 th)) (cos.f64 th))) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (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 (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 4991 to 2301 computations (53.9% saved)

regimes1.8s (16.7%)

Accuracy

Total 0.4b remaining (90.7%)

Threshold costs 0.4b (90.7%)

Compiler

Compiled 36300 to 24758 computations (31.8% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01648
11848
21848

end7.0ms (0.1%)

Remove

(sort a1 a2)

Compiler

Compiled 99 to 63 computations (36.4% saved)

sample3.3s (30.3%)

Algorithm
intervals
Results
849.0ms1830×body1024valid
710.0ms1550×body1024invalid
467.0ms4831×body128valid
287.0ms901×body512valid
222.0ms762×body512invalid
85.0ms436×body256valid
81.0ms406×body256invalid
68.0ms681×body128invalid
2.0msbody2048valid
Compiler

Compiled 213 to 146 computations (31.5% saved)

Profiling

Loading profile data...