Details

Time bar (total: 17.8s)

analyze2.8s (15.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
0%99.9%0.1%6
6.2%93.6%0.1%7
9.4%90.5%0.1%8
14%85.8%0.1%9
19.5%80.4%0.1%10
20.7%79.2%0.1%11
22%77.8%0.1%12
23.5%76.4%0.1%13
23.8%76%0.1%14
Compiler

Compiled 13 to 9 computations (30.8% saved)

sample222.0ms (1.3%)

Algorithm
intervals
Results
109.0ms116×body1024valid
22.0ms40×body512valid
18.0msbody2048valid
12.0ms73×body128valid
6.0ms18×body256valid
Compiler

Compiled 28 to 20 computations (28.6% saved)

simplify14.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
associate-/l*_binary64
+-commutative_binary64
associate-*r/_binary64
associate-*l/_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0914
11314
21614
32014
42114
52114

prune4.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
15.1b
Counts
3 → 1
Alt Table
StatusErrorProgram
15.1b
(*.f64 r (/.f64 (sin.f64 b) (cos.f64 (+.f64 a b))))
Compiler

Compiled 45 to 28 computations (37.8% saved)

localize25.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (sin.f64 b) (cos.f64 (+.f64 a b)))
0.2b
(*.f64 r (/.f64 (sin.f64 b) (cos.f64 (+.f64 a b))))
3.4b
(cos.f64 (+.f64 a b))

series189.0ms (1.1%)

Counts
3 → 52
Calls

3 calls:

115.0ms
(*.f64 r (/.f64 (sin.f64 b) (cos.f64 (+.f64 a b))))
64.0ms
(/.f64 (sin.f64 b) (cos.f64 (+.f64 a b)))
8.0ms
(cos.f64 (+.f64 a b))

rewrite37.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
24×add-sqr-sqrt_binary64
19×times-frac_binary64
19×*-un-lft-identity_binary64
19×add-cube-cbrt_binary64
13×associate-*r*_binary64
Counts
3 → 73
Calls

3 calls:

12.0ms
(*.f64 r (/.f64 (sin.f64 b) (cos.f64 (+.f64 a b))))
7.0ms
(/.f64 (sin.f64 b) (cos.f64 (+.f64 a b)))
6.0ms
(cos.f64 (+.f64 a b))

simplify142.0ms (0.8%)

Algorithm
egg-herbie
Rules
696×fma-def_binary64
561×associate-/r*_binary64
437×associate-*l/_binary64
281×associate-/r/_binary64
239×associate-/l/_binary64
Counts
125 → 170
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02442790
16202642
222882580
353172580

prune289.0ms (1.6%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1619170
Fresh000
Picked101
Done000
Total1629171
Error
0.2b
Counts
171 → 9
Alt Table
StatusErrorProgram
0.3b
(*.f64 r (/.f64 (sin.f64 b) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))))
38.7b
(*.f64 (*.f64 r (sqrt.f64 (sin.f64 b))) (/.f64 (sqrt.f64 (sin.f64 b)) (cos.f64 (+.f64 a b))))
30.0b
(fma.f64 (/.f64 (sin.f64 b) (cos.f64 b)) r (/.f64 (*.f64 (pow.f64 (sin.f64 b) 2) (*.f64 a r)) (pow.f64 (cos.f64 b) 2)))
15.9b
(*.f64 (*.f64 r (/.f64 (*.f64 (cbrt.f64 (sin.f64 b)) (cbrt.f64 (sin.f64 b))) (*.f64 (cbrt.f64 (cos.f64 (+.f64 a b))) (cbrt.f64 (cos.f64 (+.f64 a b)))))) (/.f64 (cbrt.f64 (sin.f64 b)) (cbrt.f64 (cos.f64 (+.f64 a b)))))
40.6b
(*.f64 (sqrt.f64 r) (*.f64 (sqrt.f64 r) (/.f64 (sin.f64 b) (cos.f64 (+.f64 a b)))))
15.8b
(*.f64 (*.f64 (cbrt.f64 r) (cbrt.f64 r)) (*.f64 (cbrt.f64 r) (/.f64 (sin.f64 b) (cos.f64 (+.f64 a b)))))
15.1b
(/.f64 (*.f64 (sin.f64 b) r) (cos.f64 (+.f64 a b)))
15.1b
(*.f64 r (*.f64 (sin.f64 b) (/.f64 1 (cos.f64 (+.f64 a b)))))
15.1b
(*.f64 r (/.f64 1 (/.f64 (cos.f64 (+.f64 a b)) (sin.f64 b))))
Compiler

Compiled 3904 to 1261 computations (67.7% saved)

localize24.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))
0.2b
(*.f64 (sin.f64 a) (sin.f64 b))
0.2b
(*.f64 r (/.f64 (sin.f64 b) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))))
0.2b
(/.f64 (sin.f64 b) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))

series449.0ms (2.5%)

Counts
4 → 80
Calls

4 calls:

248.0ms
(*.f64 r (/.f64 (sin.f64 b) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))))
142.0ms
(/.f64 (sin.f64 b) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))
39.0ms
(-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))
19.0ms
(*.f64 (sin.f64 a) (sin.f64 b))

rewrite63.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
29×add-sqr-sqrt_binary64
22×*-un-lft-identity_binary64
22×add-cube-cbrt_binary64
20×associate-*r*_binary64
19×times-frac_binary64
Counts
4 → 110
Calls

4 calls:

18.0ms
(*.f64 r (/.f64 (sin.f64 b) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))))
12.0ms
(/.f64 (sin.f64 b) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))
9.0ms
(*.f64 (sin.f64 a) (sin.f64 b))
8.0ms
(-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))

simplify269.0ms (1.5%)

Algorithm
egg-herbie
Rules
386×fma-neg_binary64
323×cancel-sign-sub-inv_binary64
290×associate-*r*_binary64
268×associate-*l*_binary64
198×distribute-rgt-neg-in_binary64
Counts
190 → 216
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03315599
18715281
232585029
345305023
449715023

prune761.0ms (4.3%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New20610216
Fresh718
Picked101
Done000
Total21411225
Error
0.0b
Counts
225 → 11
Alt Table
StatusErrorProgram
0.3b
(*.f64 r (/.f64 (sin.f64 b) (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b))))))
0.4b
(*.f64 r (/.f64 1 (/.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))) (sin.f64 b))))
1.2b
(*.f64 r (*.f64 (*.f64 (cbrt.f64 (sin.f64 b)) (cbrt.f64 (sin.f64 b))) (/.f64 (cbrt.f64 (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))))
1.4b
(*.f64 r (*.f64 (/.f64 (*.f64 (cbrt.f64 (sin.f64 b)) (cbrt.f64 (sin.f64 b))) (*.f64 (cbrt.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))) (cbrt.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))))) (/.f64 (cbrt.f64 (sin.f64 b)) (cbrt.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))))))
15.9b
(*.f64 (*.f64 r (/.f64 (*.f64 (cbrt.f64 (sin.f64 b)) (cbrt.f64 (sin.f64 b))) (*.f64 (cbrt.f64 (cos.f64 (+.f64 a b))) (cbrt.f64 (cos.f64 (+.f64 a b)))))) (/.f64 (cbrt.f64 (sin.f64 b)) (cbrt.f64 (cos.f64 (+.f64 a b)))))
0.3b
(/.f64 (*.f64 (sin.f64 b) r) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))
0.9b
(*.f64 (/.f64 r (*.f64 (cbrt.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))) (cbrt.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))))) (/.f64 (sin.f64 b) (cbrt.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))))
33.6b
(*.f64 (sqrt.f64 r) (*.f64 (sqrt.f64 r) (/.f64 (sin.f64 b) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))))
0.4b
(*.f64 (*.f64 r (/.f64 (sin.f64 b) (-.f64 (*.f64 (pow.f64 (cos.f64 a) 2) (pow.f64 (cos.f64 b) 2)) (*.f64 (pow.f64 (sin.f64 a) 2) (pow.f64 (sin.f64 b) 2))))) (+.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))
31.4b
(*.f64 r (*.f64 (sqrt.f64 (sin.f64 b)) (/.f64 (sqrt.f64 (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))))
0.4b
(*.f64 (*.f64 r (/.f64 (sin.f64 b) (-.f64 (pow.f64 (*.f64 (cos.f64 a) (cos.f64 b)) 3) (pow.f64 (*.f64 (sin.f64 a) (sin.f64 b)) 3)))) (+.f64 (*.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (cos.f64 a) (cos.f64 b))) (+.f64 (*.f64 (*.f64 (sin.f64 a) (sin.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))) (*.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))))
Compiler

Compiled 6701 to 1911 computations (71.5% saved)

localize27.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b))))
0.2b
(*.f64 (sin.f64 a) (sin.f64 b))
0.2b
(*.f64 r (/.f64 (sin.f64 b) (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b))))))
0.2b
(/.f64 (sin.f64 b) (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b)))))

series482.0ms (2.7%)

Counts
3 → 84
Calls

3 calls:

291.0ms
(*.f64 r (/.f64 (sin.f64 b) (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b))))))
156.0ms
(/.f64 (sin.f64 b) (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b)))))
34.0ms
(fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b))))

rewrite34.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
24×add-sqr-sqrt_binary64
19×*-un-lft-identity_binary64
19×times-frac_binary64
19×add-cube-cbrt_binary64
13×associate-*r*_binary64
Counts
3 → 73
Calls

3 calls:

13.0ms
(*.f64 r (/.f64 (sin.f64 b) (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b))))))
6.0ms
(/.f64 (sin.f64 b) (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b)))))
1.0ms
(fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b))))

simplify280.0ms (1.6%)

Algorithm
egg-herbie
Rules
711×fma-def_binary64
566×associate-/r*_binary64
285×associate-/r/_binary64
240×associate-/l/_binary64
199×associate-*r*_binary64
Counts
157 → 178
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02504914
16274622
223454559
349484558
449804558

prune511.0ms (2.9%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New2163219
Fresh4610
Picked011
Done000
Total22010230
Error
0b
Counts
230 → 10
Alt Table
StatusErrorProgram
0.3b
(*.f64 r (/.f64 (sin.f64 b) (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b))))))
1.2b
(*.f64 r (*.f64 (*.f64 (cbrt.f64 (sin.f64 b)) (cbrt.f64 (sin.f64 b))) (/.f64 (cbrt.f64 (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))))
0.9b
(*.f64 (/.f64 r (*.f64 (cbrt.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))) (cbrt.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))))) (/.f64 (sin.f64 b) (cbrt.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b)))))))
0.4b
(*.f64 (*.f64 r (/.f64 (sin.f64 b) (-.f64 (pow.f64 (*.f64 (cos.f64 a) (cos.f64 b)) 3) (pow.f64 (*.f64 (sin.f64 a) (sin.f64 b)) 3)))) (+.f64 (*.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (cos.f64 a) (cos.f64 b))) (+.f64 (*.f64 (*.f64 (sin.f64 a) (sin.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))) (*.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))))
0.3b
(/.f64 (*.f64 r (sin.f64 b)) (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b)))))
33.6b
(*.f64 (sqrt.f64 r) (*.f64 (sqrt.f64 r) (/.f64 (sin.f64 b) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))))
15.9b
(*.f64 (*.f64 r (/.f64 (*.f64 (cbrt.f64 (sin.f64 b)) (cbrt.f64 (sin.f64 b))) (*.f64 (cbrt.f64 (cos.f64 (+.f64 a b))) (cbrt.f64 (cos.f64 (+.f64 a b)))))) (/.f64 (cbrt.f64 (sin.f64 b)) (cbrt.f64 (cos.f64 (+.f64 a b)))))
0.4b
(*.f64 (*.f64 r (/.f64 (sin.f64 b) (-.f64 (*.f64 (pow.f64 (cos.f64 a) 2) (pow.f64 (cos.f64 b) 2)) (*.f64 (pow.f64 (sin.f64 a) 2) (pow.f64 (sin.f64 b) 2))))) (+.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))
31.4b
(*.f64 r (*.f64 (sqrt.f64 (sin.f64 b)) (/.f64 (sqrt.f64 (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))))
0.4b
(*.f64 (*.f64 r (sin.f64 b)) (/.f64 1 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b))))))
Compiler

Compiled 6712 to 1743 computations (74% saved)

localize27.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b))))
0.1b
(*.f64 r (sin.f64 b))
0.2b
(*.f64 (sin.f64 a) (sin.f64 b))
0.2b
(/.f64 (*.f64 r (sin.f64 b)) (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b)))))

series289.0ms (1.6%)

Counts
2 → 60
Calls

2 calls:

273.0ms
(/.f64 (*.f64 r (sin.f64 b)) (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b)))))
15.0ms
(*.f64 r (sin.f64 b))

rewrite20.0ms (0.1%)

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

2 calls:

9.0ms
(/.f64 (*.f64 r (sin.f64 b)) (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b)))))
6.0ms
(*.f64 r (sin.f64 b))

simplify214.0ms (1.2%)

Algorithm
egg-herbie
Rules
531×associate-/r*_binary64
467×fma-def_binary64
394×associate-*l/_binary64
321×associate-/l/_binary64
320×associate-/r/_binary64
Counts
103 → 94
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01812487
14612296
218212249
348112248
449872248
550002248
649552248

prune522.0ms (2.9%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New1680168
Fresh088
Picked011
Done011
Total16810178
Error
0b
Counts
178 → 10
Alt Table
StatusErrorProgram
0.3b
(*.f64 r (/.f64 (sin.f64 b) (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b))))))
1.2b
(*.f64 r (*.f64 (*.f64 (cbrt.f64 (sin.f64 b)) (cbrt.f64 (sin.f64 b))) (/.f64 (cbrt.f64 (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))))
0.9b
(*.f64 (/.f64 r (*.f64 (cbrt.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))) (cbrt.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))))) (/.f64 (sin.f64 b) (cbrt.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b)))))))
0.4b
(*.f64 (*.f64 r (/.f64 (sin.f64 b) (-.f64 (pow.f64 (*.f64 (cos.f64 a) (cos.f64 b)) 3) (pow.f64 (*.f64 (sin.f64 a) (sin.f64 b)) 3)))) (+.f64 (*.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (cos.f64 a) (cos.f64 b))) (+.f64 (*.f64 (*.f64 (sin.f64 a) (sin.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))) (*.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))))
0.3b
(/.f64 (*.f64 r (sin.f64 b)) (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b)))))
33.6b
(*.f64 (sqrt.f64 r) (*.f64 (sqrt.f64 r) (/.f64 (sin.f64 b) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))))
15.9b
(*.f64 (*.f64 r (/.f64 (*.f64 (cbrt.f64 (sin.f64 b)) (cbrt.f64 (sin.f64 b))) (*.f64 (cbrt.f64 (cos.f64 (+.f64 a b))) (cbrt.f64 (cos.f64 (+.f64 a b)))))) (/.f64 (cbrt.f64 (sin.f64 b)) (cbrt.f64 (cos.f64 (+.f64 a b)))))
0.4b
(*.f64 (*.f64 r (/.f64 (sin.f64 b) (-.f64 (*.f64 (pow.f64 (cos.f64 a) 2) (pow.f64 (cos.f64 b) 2)) (*.f64 (pow.f64 (sin.f64 a) 2) (pow.f64 (sin.f64 b) 2))))) (+.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))
31.4b
(*.f64 r (*.f64 (sqrt.f64 (sin.f64 b)) (/.f64 (sqrt.f64 (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))))
0.4b
(*.f64 (*.f64 r (sin.f64 b)) (/.f64 1 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 a) (sin.f64 b))))))
Compiler

Compiled 4489 to 1207 computations (73.1% saved)

regimes3.8s (21.3%)

Accuracy

Total 0.3b remaining (82.3%)

Threshold costs 0.3b (82.3%)

Counts
257 → 1
Compiler

Compiled 31471 to 17557 computations (44.2% saved)

simplify5.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01326
12326
23126
33626
43826
53826

end1.0ms (0%)

Compiler

Compiled 19 to 12 computations (36.8% saved)

sample6.3s (35.2%)

Algorithm
intervals
Results
3.5s3479×body1024valid
738.0ms1394×body512valid
450.0ms203×body2048valid
405.0ms2303×body128valid
244.0ms621×body256valid
3.0msbody1024invalid
Compiler

Compiled 347 to 183 computations (47.3% saved)

Profiling

Loading profile data...