Details

Time bar (total: 10.4s)

analyze1.5s (14.8%)

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)

sample4.5s (43.5%)

Results
3.1s3637×body1024valid
603.0ms1441×body512valid
383.0ms2388×body128valid
270.0ms200×body2048valid
170.0ms590×body256valid
0.0msbody256invalid
Compiler

Compiled 38 to 26 computations (31.6% saved)

simplify7.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0914
11314
21714
32014
42114
52114

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 45 to 27 computations (40% saved)

localize8.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(sin.f64 b)
0.1b
(*.f64 r (sin.f64 b))
0.3b
(/.f64 (*.f64 r (sin.f64 b)) (cos.f64 (+.f64 a b)))
3.8b
(cos.f64 (+.f64 a b))

series59.0ms (0.6%)

Counts
4 → 72
Calls

4 calls:

46.0ms
(/.f64 (*.f64 r (sin.f64 b)) (cos.f64 (+.f64 a b)))
7.0ms
(*.f64 r (sin.f64 b))
4.0ms
(cos.f64 (+.f64 a b))
2.0ms
(sin.f64 b)

rewrite13.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
11×add-cbrt-cube_binary64
11×add-exp-log_binary64
10×add-sqr-sqrt_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
Counts
4 → 62
Calls

4 calls:

5.0ms
(/.f64 (*.f64 r (sin.f64 b)) (cos.f64 (+.f64 a b)))
3.0ms
(*.f64 r (sin.f64 b))
3.0ms
(cos.f64 (+.f64 a b))
1.0ms
(sin.f64 b)

simplify96.0ms (0.9%)

Algorithm
egg-herbie
Rules
610×fma-def_binary64
517×associate-/r*_binary64
321×associate-/l/_binary64
308×associate-/r/_binary64
229×fma-neg_binary64
Counts
134 → 141
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02112116
15531980
220791928
347021928
449981928
549621928

prune141.0ms (1.4%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New13011141
Fresh000
Picked101
Done000
Total13111142
Error
0.2b
Counts
142 → 11
Alt Table
StatusErrorProgram
14.2b
(/.f64 r (/.f64 (cos.f64 (+.f64 a b)) (sin.f64 b)))
14.3b
(/.f64 (*.f64 r (sin.f64 b)) (cbrt.f64 (*.f64 (*.f64 (cos.f64 (+.f64 a b)) (cos.f64 (+.f64 a b))) (cos.f64 (+.f64 a b)))))
14.6b
(*.f64 (/.f64 r (*.f64 (cbrt.f64 (cos.f64 (+.f64 a b))) (cbrt.f64 (cos.f64 (+.f64 a b))))) (/.f64 (sin.f64 b) (cbrt.f64 (cos.f64 (+.f64 a b)))))
0.4b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))
14.2b
(/.f64 (*.f64 r (sin.f64 b)) (log1p.f64 (expm1.f64 (cos.f64 (+.f64 a b)))))
14.2b
(/.f64 (*.f64 r (sin.f64 b)) (expm1.f64 (log1p.f64 (cos.f64 (+.f64 a b)))))
30.3b
(/.f64 (*.f64 r (cbrt.f64 (*.f64 (*.f64 (sin.f64 b) (sin.f64 b)) (sin.f64 b)))) (cos.f64 (+.f64 a b)))
28.7b
(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)))
14.2b
(/.f64 (*.f64 r (log1p.f64 (expm1.f64 (sin.f64 b)))) (cos.f64 (+.f64 a b)))
34.1b
(/.f64 (*.f64 (sqrt.f64 (*.f64 r (sin.f64 b))) (sqrt.f64 (*.f64 r (sin.f64 b)))) (cos.f64 (+.f64 a b)))
14.8b
(/.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 r (sin.f64 b))) (cbrt.f64 (*.f64 r (sin.f64 b)))) (cbrt.f64 (*.f64 r (sin.f64 b)))) (cos.f64 (+.f64 a b)))
Compiler

Compiled 2934 to 1056 computations (64% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (cos.f64 a) (cos.f64 b))
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.3b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))

series142.0ms (1.4%)

Counts
4 → 72
Calls

4 calls:

107.0ms
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))
14.0ms
(-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))
11.0ms
(*.f64 (sin.f64 a) (sin.f64 b))
10.0ms
(*.f64 (cos.f64 a) (cos.f64 b))

rewrite22.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
14×add-sqr-sqrt_binary64
13×add-cbrt-cube_binary64
13×add-exp-log_binary64
10×*-un-lft-identity_binary64
10×add-cube-cbrt_binary64
Counts
4 → 87
Calls

4 calls:

7.0ms
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b))))
4.0ms
(-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (sin.f64 a) (sin.f64 b)))
3.0ms
(*.f64 (sin.f64 a) (sin.f64 b))
3.0ms
(*.f64 (cos.f64 a) (cos.f64 b))

simplify140.0ms (1.3%)

Algorithm
egg-herbie
Rules
540×fma-neg_binary64
447×cancel-sign-sub-inv_binary64
253×associate-*r*_binary64
242×distribute-rgt-neg-in_binary64
239×associate-*l*_binary64
Counts
159 → 192
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03023916
18063681
229963445
344813439
449963439
549423439

prune264.0ms (2.5%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New18012192
Fresh7310
Picked101
Done000
Total18815203
Error
0.0b
Counts
203 → 15
Alt Table
StatusErrorProgram
0.4b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (log.f64 (exp.f64 (*.f64 (sin.f64 a) (sin.f64 b))))))
0.7b
(*.f64 (/.f64 (*.f64 r (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.4b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (log1p.f64 (expm1.f64 (*.f64 (cos.f64 a) (cos.f64 b)))) (*.f64 (sin.f64 a) (sin.f64 b))))
27.8b
(*.f64 (sqrt.f64 (/.f64 r (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1)))) (sqrt.f64 (/.f64 r (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1)))))
0.4b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (expm1.f64 (log1p.f64 (*.f64 (cos.f64 a) (cos.f64 b)))) (*.f64 (sin.f64 a) (sin.f64 b))))
34.1b
(/.f64 (*.f64 (sqrt.f64 (*.f64 r (sin.f64 b))) (sqrt.f64 (*.f64 r (sin.f64 b)))) (cos.f64 (+.f64 a b)))
0.5b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (*.f64 (sin.f64 a) (*.f64 (cbrt.f64 (sin.f64 b)) (cbrt.f64 (sin.f64 b)))) (cbrt.f64 (sin.f64 b)))))
0.5b
(*.f64 (/.f64 (*.f64 (sin.f64 b) r) (-.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))))
0.4b
(/.f64 (*.f64 r (sin.f64 b)) (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 a) (cos.f64 b)) 3) (pow.f64 (*.f64 (sin.f64 b) (sin.f64 a)) 3)) (fma.f64 (*.f64 (sin.f64 b) (sin.f64 a)) (fma.f64 (sin.f64 b) (sin.f64 a) (*.f64 (cos.f64 a) (cos.f64 b))) (*.f64 (pow.f64 (cos.f64 a) 2) (pow.f64 (cos.f64 b) 2)))))
30.3b
(/.f64 (*.f64 r (cbrt.f64 (*.f64 (*.f64 (sin.f64 b) (sin.f64 b)) (sin.f64 b)))) (cos.f64 (+.f64 a b)))
0.7b
(/.f64 1 (/.f64 (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1)) r))
14.2b
(/.f64 (*.f64 r (log1p.f64 (expm1.f64 (sin.f64 b)))) (cos.f64 (+.f64 a b)))
0.5b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (cos.f64 a) (cos.f64 b))) (*.f64 (cos.f64 a) (cos.f64 b)))) (*.f64 (sin.f64 a) (sin.f64 b))))
1.0b
(*.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))))))
1.3b
(*.f64 (*.f64 (cbrt.f64 (/.f64 r (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1)))) (cbrt.f64 (/.f64 r (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1))))) (cbrt.f64 (/.f64 r (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1)))))
Compiler

Compiled 5927 to 1801 computations (69.6% saved)

localize15.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (sin.f64 a) (sin.f64 b))
0.2b
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 a) (cos.f64 b))))
0.3b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (expm1.f64 (log1p.f64 (*.f64 (cos.f64 a) (cos.f64 b)))) (*.f64 (sin.f64 a) (sin.f64 b))))
0.4b
(log1p.f64 (*.f64 (cos.f64 a) (cos.f64 b)))

series860.0ms (8.3%)

Counts
3 → 84
Calls

3 calls:

740.0ms
(log1p.f64 (*.f64 (cos.f64 a) (cos.f64 b)))
109.0ms
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (expm1.f64 (log1p.f64 (*.f64 (cos.f64 a) (cos.f64 b)))) (*.f64 (sin.f64 a) (sin.f64 b))))
10.0ms
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 a) (cos.f64 b))))

rewrite8.0ms (0.1%)

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

3 calls:

4.0ms
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (expm1.f64 (log1p.f64 (*.f64 (cos.f64 a) (cos.f64 b)))) (*.f64 (sin.f64 a) (sin.f64 b))))
0.0ms
(log1p.f64 (*.f64 (cos.f64 a) (cos.f64 b)))
0.0ms
(expm1.f64 (log1p.f64 (*.f64 (cos.f64 a) (cos.f64 b))))

simplify149.0ms (1.4%)

Algorithm
egg-herbie
Rules
769×fma-def_binary64
276×cancel-sign-sub-inv_binary64
221×fma-neg_binary64
195×associate-/l*_binary64
175×unswap-sqr_binary64
Counts
131 → 128
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02613407
17323199
228243048
348183045
449843045
549993045
649693045

prune356.0ms (3.4%)

Pruning

15 alts after pruning (14 fresh and 1 done)

PrunedKeptTotal
New1750175
Fresh01414
Picked011
Done000
Total17515190
Error
0.0b
Counts
190 → 15
Alt Table
StatusErrorProgram
0.4b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (log.f64 (exp.f64 (*.f64 (sin.f64 a) (sin.f64 b))))))
0.7b
(*.f64 (/.f64 (*.f64 r (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.4b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (log1p.f64 (expm1.f64 (*.f64 (cos.f64 a) (cos.f64 b)))) (*.f64 (sin.f64 a) (sin.f64 b))))
27.8b
(*.f64 (sqrt.f64 (/.f64 r (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1)))) (sqrt.f64 (/.f64 r (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1)))))
0.4b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (expm1.f64 (log1p.f64 (*.f64 (cos.f64 a) (cos.f64 b)))) (*.f64 (sin.f64 a) (sin.f64 b))))
34.1b
(/.f64 (*.f64 (sqrt.f64 (*.f64 r (sin.f64 b))) (sqrt.f64 (*.f64 r (sin.f64 b)))) (cos.f64 (+.f64 a b)))
0.5b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (*.f64 (sin.f64 a) (*.f64 (cbrt.f64 (sin.f64 b)) (cbrt.f64 (sin.f64 b)))) (cbrt.f64 (sin.f64 b)))))
0.5b
(*.f64 (/.f64 (*.f64 (sin.f64 b) r) (-.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))))
0.4b
(/.f64 (*.f64 r (sin.f64 b)) (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 a) (cos.f64 b)) 3) (pow.f64 (*.f64 (sin.f64 b) (sin.f64 a)) 3)) (fma.f64 (*.f64 (sin.f64 b) (sin.f64 a)) (fma.f64 (sin.f64 b) (sin.f64 a) (*.f64 (cos.f64 a) (cos.f64 b))) (*.f64 (pow.f64 (cos.f64 a) 2) (pow.f64 (cos.f64 b) 2)))))
30.3b
(/.f64 (*.f64 r (cbrt.f64 (*.f64 (*.f64 (sin.f64 b) (sin.f64 b)) (sin.f64 b)))) (cos.f64 (+.f64 a b)))
0.7b
(/.f64 1 (/.f64 (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1)) r))
14.2b
(/.f64 (*.f64 r (log1p.f64 (expm1.f64 (sin.f64 b)))) (cos.f64 (+.f64 a b)))
0.5b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (cos.f64 a) (cos.f64 b))) (*.f64 (cos.f64 a) (cos.f64 b)))) (*.f64 (sin.f64 a) (sin.f64 b))))
1.0b
(*.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))))))
1.3b
(*.f64 (*.f64 (cbrt.f64 (/.f64 r (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1)))) (cbrt.f64 (/.f64 r (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1))))) (cbrt.f64 (/.f64 r (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1)))))
Compiler

Compiled 6181 to 2082 computations (66.3% saved)

localize16.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (log.f64 (exp.f64 (*.f64 (sin.f64 a) (sin.f64 b)))))
0.2b
(*.f64 (sin.f64 a) (sin.f64 b))
0.3b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (log.f64 (exp.f64 (*.f64 (sin.f64 a) (sin.f64 b))))))
3.6b
(log.f64 (exp.f64 (*.f64 (sin.f64 a) (sin.f64 b))))

series136.0ms (1.3%)

Counts
3 → 84
Calls

3 calls:

110.0ms
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (log.f64 (exp.f64 (*.f64 (sin.f64 a) (sin.f64 b))))))
15.0ms
(-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (log.f64 (exp.f64 (*.f64 (sin.f64 a) (sin.f64 b)))))
10.0ms
(log.f64 (exp.f64 (*.f64 (sin.f64 a) (sin.f64 b))))

rewrite24.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
log-pow_binary64
add-cbrt-cube_binary64
Counts
3 → 70
Calls

3 calls:

6.0ms
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (log.f64 (exp.f64 (*.f64 (sin.f64 a) (sin.f64 b))))))
5.0ms
(-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (log.f64 (exp.f64 (*.f64 (sin.f64 a) (sin.f64 b)))))
1.0ms
(log.f64 (exp.f64 (*.f64 (sin.f64 a) (sin.f64 b))))

simplify116.0ms (1.1%)

Algorithm
egg-herbie
Rules
435×fma-neg_binary64
348×cancel-sign-sub-inv_binary64
305×associate-/l/_binary64
190×associate-*r*_binary64
176×distribute-rgt-neg-in_binary64
Counts
154 → 155
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02603765
16673525
225523393
345463387
448943387

prune333.0ms (3.2%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New2002202
Fresh21113
Picked101
Done011
Total20314217
Error
0.0b
Counts
217 → 14
Alt Table
StatusErrorProgram
0.4b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (log1p.f64 (expm1.f64 (*.f64 (cos.f64 a) (cos.f64 b)))) (*.f64 (sin.f64 a) (sin.f64 b))))
27.8b
(*.f64 (sqrt.f64 (/.f64 r (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1)))) (sqrt.f64 (/.f64 r (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1)))))
0.5b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 (sin.f64 a) (sin.f64 b))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 (sin.f64 a) (sin.f64 b))))))))
0.4b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (expm1.f64 (log1p.f64 (*.f64 (cos.f64 a) (cos.f64 b)))) (*.f64 (sin.f64 a) (sin.f64 b))))
34.1b
(/.f64 (*.f64 (sqrt.f64 (*.f64 r (sin.f64 b))) (sqrt.f64 (*.f64 r (sin.f64 b)))) (cos.f64 (+.f64 a b)))
0.5b
(*.f64 (/.f64 (*.f64 (sin.f64 b) r) (-.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))))
0.4b
(/.f64 (*.f64 r (sin.f64 b)) (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 a) (cos.f64 b)) 3) (pow.f64 (*.f64 (sin.f64 b) (sin.f64 a)) 3)) (fma.f64 (*.f64 (sin.f64 b) (sin.f64 a)) (fma.f64 (sin.f64 b) (sin.f64 a) (*.f64 (cos.f64 a) (cos.f64 b))) (*.f64 (pow.f64 (cos.f64 a) 2) (pow.f64 (cos.f64 b) 2)))))
0.4b
(/.f64 r (/.f64 (-.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (log.f64 (exp.f64 (*.f64 (sin.f64 a) (sin.f64 b))))) (sin.f64 b)))
30.3b
(/.f64 (*.f64 r (cbrt.f64 (*.f64 (*.f64 (sin.f64 b) (sin.f64 b)) (sin.f64 b)))) (cos.f64 (+.f64 a b)))
0.7b
(/.f64 1 (/.f64 (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1)) r))
14.2b
(/.f64 (*.f64 r (log1p.f64 (expm1.f64 (sin.f64 b)))) (cos.f64 (+.f64 a b)))
0.5b
(/.f64 (*.f64 r (sin.f64 b)) (-.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (*.f64 (cos.f64 a) (cos.f64 b))) (*.f64 (cos.f64 a) (cos.f64 b)))) (*.f64 (sin.f64 a) (sin.f64 b))))
1.0b
(*.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))))))
1.3b
(*.f64 (*.f64 (cbrt.f64 (/.f64 r (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1)))) (cbrt.f64 (/.f64 r (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1))))) (cbrt.f64 (/.f64 r (-.f64 (/.f64 (*.f64 (cos.f64 a) (cos.f64 b)) (sin.f64 b)) (/.f64 (sin.f64 a) 1)))))
Compiler

Compiled 6061 to 1631 computations (73.1% saved)

regimes1.2s (11.3%)

Accuracy

Total 0.3b remaining (84.3%)

Threshold costs 0.3b (84.3%)

Counts
245 → 1
Compiler

Compiled 24026 to 13972 computations (41.8% saved)

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

end247.0ms (2.4%)

Compiler

Compiled 483 to 258 computations (46.6% saved)

Profiling

Loading profile data...