Details

Time bar (total: 12.8s)

analyze2.9s (22.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)

sample100.0ms (0.8%)

Algorithm
intervals
Results
54.0ms112×body1024valid
11.0ms10×body2048valid
10.0ms41×body512valid
7.0ms77×body128valid
6.0ms16×body256valid
Compiler

Compiled 28 to 20 computations (28.6% saved)

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

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 45 to 28 computations (37.8% saved)

localize8.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

rewrite55.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
31×add-cube-cbrt_binary64
23×pow1_binary64
20×add-sqr-sqrt_binary64
18×add-exp-log_binary64
18×add-cbrt-cube_binary64
Counts
4 → 153
Calls

4 calls:

15.0ms
(*.f64 r (/.f64 (sin.f64 b) (cos.f64 (+.f64 a b))))
13.0ms
(/.f64 (sin.f64 b) (cos.f64 (+.f64 a b)))
11.0ms
(cos.f64 (+.f64 a b))
9.0ms
(sin.f64 b)

series313.0ms (2.4%)

Counts
4 → 56
Calls

4 calls:

197.0ms
(/.f64 (sin.f64 b) (cos.f64 (+.f64 a b)))
110.0ms
(*.f64 r (/.f64 (sin.f64 b) (cos.f64 (+.f64 a b))))
4.0ms
(cos.f64 (+.f64 a b))
1.0ms
(sin.f64 b)

simplify129.0ms (1%)

Algorithm
egg-herbie
Rules
410×unswap-sqr_binary64
278×fma-neg_binary64
255×cancel-sign-sub-inv_binary64
248×associate-*r*_binary64
212×associate-*l*_binary64
Counts
209 → 339
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02903176
17453002
229082962
347442962
449622962

prune235.0ms (1.8%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New32514339
Fresh000
Picked101
Done000
Total32614340
Error
0.1b
Counts
340 → 14
Alt Table
StatusErrorProgram
15.8b
(/.f64 r (/.f64 (cos.f64 (+.f64 a b)) (sin.f64 b)))
0.3b
(*.f64 r (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))))
0.4b
(*.f64 r (/.f64 (sin.f64 b) (/.f64 (-.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))) (fma.f64 (cos.f64 b) (cos.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))))
28.8b
(+.f64 (/.f64 (*.f64 (sin.f64 b) r) (cos.f64 b)) (/.f64 (*.f64 (pow.f64 (sin.f64 b) 2) (*.f64 a r)) (pow.f64 (cos.f64 b) 2)))
0.5b
(*.f64 r (/.f64 (sin.f64 b) (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 b) (cos.f64 a)) 3) (pow.f64 (*.f64 (sin.f64 b) (sin.f64 a)) 3)) (fma.f64 (pow.f64 (cos.f64 a) 2) (pow.f64 (cos.f64 b) 2) (*.f64 (sin.f64 b) (*.f64 (sin.f64 a) (fma.f64 (cos.f64 b) (cos.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))))))))
16.2b
(*.f64 r (/.f64 (sin.f64 b) (pow.f64 (cbrt.f64 (cos.f64 (+.f64 a b))) 3)))
31.7b
(+.f64 (/.f64 (*.f64 b r) (cos.f64 a)) (/.f64 (*.f64 (sin.f64 a) (*.f64 (pow.f64 b 2) r)) (pow.f64 (cos.f64 a) 2)))
0.4b
(*.f64 r (/.f64 (sin.f64 b) (/.f64 (-.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 r (/.f64 (sin.f64 b) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))))
15.8b
(*.f64 r (*.f64 (sin.f64 b) (/.f64 1 (cos.f64 (+.f64 a b)))))
16.0b
(*.f64 r (/.f64 (sin.f64 b) (*.f64 (cbrt.f64 (pow.f64 (cos.f64 (+.f64 b a)) 2)) (cbrt.f64 (cos.f64 (+.f64 b a))))))
15.8b
(*.f64 (/.f64 r (cos.f64 (+.f64 a b))) (sin.f64 b))
15.9b
(/.f64 1 (/.f64 (cos.f64 (+.f64 b a)) (*.f64 (sin.f64 b) r)))
37.1b
(*.f64 r (exp.f64 (log.f64 (/.f64 (sin.f64 b) (cos.f64 (+.f64 b a))))))
Compiler

Compiled 5098 to 1775 computations (65.2% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

rewrite62.0ms (0.5%)

Algorithm
rewrite-expression-head
Rules
31×add-cube-cbrt_binary64
30×pow1_binary64
24×add-sqr-sqrt_binary64
22×add-exp-log_binary64
20×add-cbrt-cube_binary64
Counts
4 → 167
Calls

4 calls:

15.0ms
(*.f64 r (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))))
13.0ms
(*.f64 (sin.f64 b) (sin.f64 a))
13.0ms
(/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))))
9.0ms
(fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))

series676.0ms (5.3%)

Counts
4 → 100
Calls

4 calls:

364.0ms
(*.f64 r (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))))
177.0ms
(/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))))
107.0ms
(fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))
27.0ms
(*.f64 (sin.f64 b) (sin.f64 a))

simplify158.0ms (1.2%)

Algorithm
egg-herbie
Rules
660×unswap-sqr_binary64
336×associate-*r*_binary64
317×fma-neg_binary64
288×associate-*l*_binary64
188×associate-/l*_binary64
Counts
267 → 423
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03417074
18595049
236154800
355124800

prune350.0ms (2.7%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New41310423
Fresh11213
Picked101
Done000
Total42512437
Error
0.0b
Counts
437 → 12
Alt Table
StatusErrorProgram
0.3b
(/.f64 (*.f64 (sin.f64 b) r) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))))
1.3b
(*.f64 (*.f64 (cbrt.f64 (*.f64 r (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))))) (cbrt.f64 (*.f64 r (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))))))) (cbrt.f64 (*.f64 r (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))))))
0.3b
(*.f64 (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))) r)
14.6b
(*.f64 r (cbrt.f64 (pow.f64 (/.f64 (sin.f64 b) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 b) (sin.f64 a)))) 3)))
30.0b
(*.f64 r (exp.f64 (log.f64 (/.f64 (sin.f64 b) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 b) (sin.f64 a)))))))
1.2b
(*.f64 r (pow.f64 (cbrt.f64 (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))))) 3))
0.3b
(*.f64 (/.f64 r (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))) (sin.f64 b))
1.2b
(*.f64 r (*.f64 (*.f64 (cbrt.f64 (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))))) (cbrt.f64 (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))))) (cbrt.f64 (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))))))
31.7b
(+.f64 (/.f64 (*.f64 b r) (cos.f64 a)) (/.f64 (*.f64 (sin.f64 a) (*.f64 (pow.f64 b 2) r)) (pow.f64 (cos.f64 a) 2)))
30.9b
(*.f64 r (-.f64 (exp.f64 (log1p.f64 (/.f64 (sin.f64 b) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 b) (sin.f64 a)))))) 1))
0.5b
(/.f64 1 (/.f64 (/.f64 (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))) (sin.f64 b)) r))
16.0b
(*.f64 r (/.f64 (sin.f64 b) (*.f64 (cbrt.f64 (pow.f64 (cos.f64 (+.f64 b a)) 2)) (cbrt.f64 (cos.f64 (+.f64 b a))))))
Compiler

Compiled 10436 to 2151 computations (79.4% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

rewrite17.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
11×pow1_binary64
add-exp-log_binary64
add-sqr-sqrt_binary64
associate-*l/_binary64
pow-prod-down_binary64
Counts
1 → 42
Calls

1 calls:

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

series370.0ms (2.9%)

Counts
1 → 36
Calls

1 calls:

370.0ms
(*.f64 (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))) r)

simplify106.0ms (0.8%)

Algorithm
egg-herbie
Rules
836×associate-/l*_binary64
396×fma-def_binary64
395×associate-/r*_binary64
290×unswap-sqr_binary64
232×associate-*l/_binary64
Counts
78 → 140
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01503007
13922518
214162079
349772077
449542077

prune366.0ms (2.9%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New4163419
Fresh3811
Picked011
Done000
Total41912431
Error
0.0b
Counts
431 → 12
Alt Table
StatusErrorProgram
1.0b
(*.f64 (/.f64 (/.f64 (sin.f64 b) (*.f64 (cbrt.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 b) (sin.f64 a)))) (cbrt.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 b) (sin.f64 a)))))) (cbrt.f64 (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))))) r)
1.3b
(*.f64 (*.f64 (cbrt.f64 (*.f64 r (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))))) (cbrt.f64 (*.f64 r (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))))))) (cbrt.f64 (*.f64 r (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))))))
0.3b
(*.f64 (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))) r)
0.3b
(/.f64 (sin.f64 b) (/.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))) r))
1.2b
(*.f64 r (pow.f64 (cbrt.f64 (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))))) 3))
0.3b
(*.f64 (/.f64 r (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))) (sin.f64 b))
1.2b
(*.f64 r (*.f64 (*.f64 (cbrt.f64 (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))))) (cbrt.f64 (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))))) (cbrt.f64 (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))))))
31.7b
(+.f64 (/.f64 (*.f64 b r) (cos.f64 a)) (/.f64 (*.f64 (sin.f64 a) (*.f64 (pow.f64 b 2) r)) (pow.f64 (cos.f64 a) 2)))
30.9b
(*.f64 r (-.f64 (exp.f64 (log1p.f64 (/.f64 (sin.f64 b) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 b) (sin.f64 a)))))) 1))
0.5b
(/.f64 1 (/.f64 (/.f64 (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))) (sin.f64 b)) r))
0.4b
(*.f64 (*.f64 (sin.f64 b) r) (/.f64 1 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))))
16.0b
(*.f64 r (/.f64 (sin.f64 b) (*.f64 (cbrt.f64 (pow.f64 (cos.f64 (+.f64 b a)) 2)) (cbrt.f64 (cos.f64 (+.f64 b a))))))
Compiler

Compiled 10445 to 2145 computations (79.5% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

rewrite36.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
21×add-cube-cbrt_binary64
15×pow1_binary64
14×add-exp-log_binary64
12×add-sqr-sqrt_binary64
12×add-cbrt-cube_binary64
Counts
2 → 90
Calls

2 calls:

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

series787.0ms (6.2%)

Counts
2 → 72
Calls

2 calls:

460.0ms
(*.f64 (/.f64 r (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))) (sin.f64 b))
326.0ms
(/.f64 r (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))))

simplify220.0ms (1.7%)

Algorithm
egg-herbie
Rules
789×fma-def_binary64
266×distribute-rgt-in_binary64
248×associate-*r*_binary64
232×distribute-lft-in_binary64
214×unswap-sqr_binary64
Counts
162 → 257
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02446309
16225265
226434149
349414143
449394143

prune357.0ms (2.8%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New5861587
Fresh2810
Picked011
Done011
Total58811599
Error
0.0b
Counts
599 → 11
Alt Table
StatusErrorProgram
1.0b
(*.f64 (/.f64 (/.f64 (sin.f64 b) (*.f64 (cbrt.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 b) (sin.f64 a)))) (cbrt.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 b) (sin.f64 a)))))) (cbrt.f64 (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))))) r)
1.4b
(*.f64 (/.f64 (*.f64 (*.f64 (cbrt.f64 r) (cbrt.f64 r)) (cbrt.f64 r)) (*.f64 (*.f64 (cbrt.f64 (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))) (cbrt.f64 (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))))) (cbrt.f64 (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))))) (sin.f64 b))
0.3b
(*.f64 (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))) r)
0.3b
(/.f64 (sin.f64 b) (/.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))) r))
1.2b
(*.f64 r (pow.f64 (cbrt.f64 (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))))) 3))
0.3b
(*.f64 (/.f64 r (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))) (sin.f64 b))
1.2b
(*.f64 r (*.f64 (*.f64 (cbrt.f64 (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))))) (cbrt.f64 (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))))) (cbrt.f64 (/.f64 (sin.f64 b) (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a))))))))
30.9b
(*.f64 r (-.f64 (exp.f64 (log1p.f64 (/.f64 (sin.f64 b) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 b) (sin.f64 a)))))) 1))
0.5b
(/.f64 1 (/.f64 (/.f64 (+.f64 (fma.f64 (cos.f64 a) (cos.f64 b) (neg.f64 (*.f64 (sin.f64 b) (sin.f64 a)))) (fma.f64 (neg.f64 (sin.f64 b)) (sin.f64 a) (*.f64 (sin.f64 b) (sin.f64 a)))) (sin.f64 b)) r))
0.4b
(*.f64 (*.f64 (sin.f64 b) r) (/.f64 1 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))))
16.0b
(*.f64 r (/.f64 (sin.f64 b) (*.f64 (cbrt.f64 (pow.f64 (cos.f64 (+.f64 b a)) 2)) (cbrt.f64 (cos.f64 (+.f64 b a))))))
Compiler

Compiled 9950 to 1943 computations (80.5% saved)

regimes2.3s (17.6%)

Accuracy

Total 0.3b remaining (81.6%)

Threshold costs 0.3b (81.6%)

Compiler

Compiled 35626 to 19997 computations (43.9% 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
01646
12846
23646
34046
44146
54146

end1.0ms (0%)

Compiler

Compiled 31 to 15 computations (51.6% saved)

sample3.2s (24.9%)

Algorithm
intervals
Results
1.7s3541×body1024valid
364.0ms1327×body512valid
213.0ms191×body2048valid
212.0ms2364×body128valid
131.0ms577×body256valid
0.0msbody256invalid
Compiler

Compiled 495 to 207 computations (58.2% saved)

Profiling

Loading profile data...