Details

Time bar (total: 12.7s)

analyze1.7s (13.2%)

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
31.2%68.6%0.1%8
40.6%59.3%0.1%9
40.6%59.3%0.1%10
46%53.8%0.1%11
52.7%47.2%0.1%12
52.7%44.6%2.8%13
55.9%40.6%3.5%14
Compiler

Compiled 27 to 22 computations (18.5% saved)

sample5.8s (45.6%)

Results
1.3s1534×body1024valid
1.2s5289×body128valid
1.1s1280×body1024invalid
481.0ms774×body512valid
376.0ms86×body4096valid
361.0ms588×body512invalid
291.0ms195×body2048valid
284.0ms1219×body128invalid
159.0ms378×body256valid
149.0ms336×body256invalid
Compiler

Compiled 80 to 65 computations (18.8% saved)

simplify38.0ms (0.3%)

Algorithm
egg-herbie
Rules
387×unsub-neg_binary64
380×neg-sub0_binary64
373×neg-mul-1_binary64
358×*-commutative_binary64
328×fma-neg_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01737
13737
28437
322437
480337
5206137
6386137
7507637

prune3.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
29.1b
Counts
3 → 1
Alt Table
StatusErrorProgram
29.1b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
Compiler

Compiled 101 to 78 computations (22.8% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(-.f64 (pow.f64 b 2) (pow.f64 a 2))
9.1b
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
21.7b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
21.8b
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

series57.0ms (0.4%)

Counts
4 → 66
Calls

4 calls:

46.0ms
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
6.0ms
(-.f64 (pow.f64 b 2) (pow.f64 a 2))
3.0ms
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
3.0ms
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

rewrite75.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
751×prod-diff_binary64
168×add-sqr-sqrt_binary64
161×log1p-expm1-u_binary64
161×expm1-log1p-u_binary64
160×egg-rr
Counts
4 → 160
Calls

4 calls:

72.0ms
(-.f64 (pow.f64 b 2) (pow.f64 a 2))
72.0ms
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
72.0ms
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
72.0ms
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01655
134355
2396655
3525355

simplify88.0ms (0.7%)

Algorithm
egg-herbie
Rules
785×fma-def_binary64
483×*-commutative_binary64
482×cancel-sign-sub-inv_binary64
441×sub-neg_binary64
258×unswap-sqr_binary64
Counts
226 → 195
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01211836
13561516
213731474
341851474
448571474
549591474

prune317.0ms (2.5%)

Pruning

22 alts after pruning (22 fresh and 0 done)

PrunedKeptTotal
New17322195
Fresh000
Picked101
Done000
Total17422196
Error
26.8b
Counts
196 → 22
Alt Table
StatusErrorProgram
46.4b
(*.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 b 4) (pow.f64 a 4)) (/.f64 1 (fma.f64 b b (*.f64 a a))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.3b
(*.f64 (*.f64 (*.f64 2 (+.f64 (fma.f64 (pow.f64 (cbrt.f64 b) 2) (*.f64 (cbrt.f64 b) b) (neg.f64 (*.f64 a a))) (fma.f64 (neg.f64 a) a (*.f64 a a)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
32.6b
(*.f64 (*.f64 angle (*.f64 1/90 (*.f64 (PI.f64) (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.3b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))) 3)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.5b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.4b
(*.f64 (*.f64 2 (*.f64 (pow.f64 b 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
44.8b
(*.f64 (sqrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
34.1b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (fma.f64 angle (*.f64 (PI.f64) 1/180) (fma.f64 1/22674816000000 (*.f64 (pow.f64 angle 5) (pow.f64 (PI.f64) 5)) (fma.f64 (*.f64 (pow.f64 angle 3) (pow.f64 (PI.f64) 3)) -1/34992000 (*.f64 (pow.f64 (PI.f64) 7) (*.f64 (pow.f64 angle 7) -1/30855889612800000000)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
47.8b
(*.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))) 3) 1/3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.1b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
30.8b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1)
29.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)))
44.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
43.1b
(*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
34.0b
(*.f64 (-.f64 (+.f64 (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 a 2)))) (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 b 2))))) (+.f64 (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 a 2)))) (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 b 2)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
52.0b
(*.f64 (log.f64 (pow.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
39.4b
(*.f64 (*.f64 -2 (*.f64 (pow.f64 a 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.4b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) 3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.8b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2)))
29.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
45.8b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (-.f64 (*.f64 b b) (*.f64 a a))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.4b
(*.f64 (*.f64 (*.f64 2 (pow.f64 (cbrt.f64 (-.f64 (*.f64 b b) (*.f64 a a))) 3)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
Compiler

Compiled 8260 to 5037 computations (39% saved)

localize15.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(-.f64 (pow.f64 b 2) (pow.f64 a 2))
9.1b
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
21.7b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
22.0b
(cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))

series3.0ms (0%)

Counts
1 → 4
Calls

1 calls:

3.0ms
(cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))

rewrite40.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
598×log1p-expm1-u_binary64
598×expm1-log1p-u_binary64
343×log-prod_binary64
324×prod-diff_binary64
126×expm1-udef_binary64
Counts
1 → 23
Calls

1 calls:

40.0ms
(cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
114010
2157610
3516110

simplify94.0ms (0.7%)

Algorithm
egg-herbie
Rules
862×distribute-rgt-neg-in_binary64
700×distribute-lft-neg-in_binary64
488×fma-def_binary64
475×cancel-sign-sub-inv_binary64
353×*-commutative_binary64
Counts
27 → 30
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
02794
17694
222490
394088
4267882
5436382
6496682
7499882
8496282

prune367.0ms (2.9%)

Pruning

27 alts after pruning (27 fresh and 0 done)

PrunedKeptTotal
New1908198
Fresh21921
Picked101
Done000
Total19327220
Error
26.7b
Counts
220 → 27
Alt Table
StatusErrorProgram
46.4b
(*.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 b 4) (pow.f64 a 4)) (/.f64 1 (fma.f64 b b (*.f64 a a))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.3b
(*.f64 (*.f64 (*.f64 2 (+.f64 (fma.f64 (pow.f64 (cbrt.f64 b) 2) (*.f64 (cbrt.f64 b) b) (neg.f64 (*.f64 a a))) (fma.f64 (neg.f64 a) a (*.f64 a a)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
34.0b
(*.f64 (-.f64 (+.f64 (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 a 2)))) (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 b 2))))) (+.f64 (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 a 2)))) (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 b 2)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
50.0b
(*.f64 (*.f64 (*.f64 2 (pow.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 a a)) 3) 1/3)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
32.6b
(*.f64 (*.f64 angle (*.f64 1/90 (*.f64 (PI.f64) (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.3b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))) 3)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
29.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))))
52.0b
(*.f64 (log.f64 (pow.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.4b
(*.f64 (*.f64 2 (*.f64 (pow.f64 b 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.7b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cbrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))))
44.8b
(*.f64 (sqrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
39.4b
(*.f64 (*.f64 -2 (*.f64 (pow.f64 a 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
32.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (sin.f64 1))))
44.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
29.4b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) 3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
34.1b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (fma.f64 angle (*.f64 (PI.f64) 1/180) (fma.f64 1/22674816000000 (*.f64 (pow.f64 angle 5) (pow.f64 (PI.f64) 5)) (fma.f64 (*.f64 (pow.f64 angle 3) (pow.f64 (PI.f64) 3)) -1/34992000 (*.f64 (pow.f64 (PI.f64) 7) (*.f64 (pow.f64 angle 7) -1/30855889612800000000)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
47.8b
(*.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))) 3) 1/3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
45.7b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (-.f64 (*.f64 b b) (*.f64 a a))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
29.8b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2)))
30.8b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1)
29.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)))
44.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
43.1b
(*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
45.8b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (-.f64 (*.f64 b b) (*.f64 a a))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))
29.4b
(*.f64 (*.f64 (*.f64 2 (pow.f64 (cbrt.f64 (-.f64 (*.f64 b b) (*.f64 a a))) 3)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
Compiler

Compiled 8742 to 5216 computations (40.3% saved)

localize21.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))
9.1b
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
21.7b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
22.0b
(cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))

series203.0ms (1.6%)

Counts
1 → 4
Calls

1 calls:

202.0ms
(log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))

rewrite40.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
789×log1p-expm1-u_binary64
789×expm1-log1p-u_binary64
324×prod-diff_binary64
94×add-sqr-sqrt_binary64
89×add-log-exp_binary64
Counts
1 → 20
Calls

1 calls:

40.0ms
(log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01016
119113
2210813
3537913

simplify77.0ms (0.6%)

Algorithm
egg-herbie
Rules
475×fma-def_binary64
433×associate-*r*_binary64
341×associate-*l*_binary64
327×sub-neg_binary64
319×distribute-rgt-neg-in_binary64
Counts
24 → 28
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
072385
1203219
2697172
33151172
44893172
54982172
64929172

prune457.0ms (3.6%)

Pruning

32 alts after pruning (32 fresh and 0 done)

PrunedKeptTotal
New1668174
Fresh22426
Picked101
Done000
Total16932201
Error
26.5b
Counts
201 → 32
Alt Table
StatusErrorProgram
43.0b
(*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))))
44.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
46.4b
(*.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 b 4) (pow.f64 a 4)) (/.f64 1 (fma.f64 b b (*.f64 a a))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.3b
(*.f64 (*.f64 (*.f64 2 (+.f64 (fma.f64 (pow.f64 (cbrt.f64 b) 2) (*.f64 (cbrt.f64 b) b) (neg.f64 (*.f64 a a))) (fma.f64 (neg.f64 a) a (*.f64 a a)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))))
43.1b
(*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
34.0b
(*.f64 (-.f64 (+.f64 (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 a 2)))) (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 b 2))))) (+.f64 (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 a 2)))) (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 b 2)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.3b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))))
50.0b
(*.f64 (*.f64 (*.f64 2 (pow.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 a a)) 3) 1/3)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
32.6b
(*.f64 (*.f64 angle (*.f64 1/90 (*.f64 (PI.f64) (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.3b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))) 3)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
52.0b
(*.f64 (log.f64 (pow.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.4b
(*.f64 (*.f64 2 (*.f64 (pow.f64 b 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
44.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))))
29.7b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cbrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))))
44.8b
(*.f64 (sqrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
39.4b
(*.f64 (*.f64 -2 (*.f64 (pow.f64 a 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
32.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (sin.f64 1))))
31.9b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (sqrt.f64 (exp.f64 (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (sin.f64 1))))))))
29.4b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) 3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
45.7b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (-.f64 (*.f64 b b) (*.f64 a a))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
29.8b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2)))
30.7b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (sqrt.f64 (E.f64)))))
29.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))
30.8b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1)
29.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)))
29.3b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) 3) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))))
29.4b
(*.f64 (*.f64 (*.f64 2 (pow.f64 (cbrt.f64 (-.f64 (*.f64 b b) (*.f64 a a))) 3)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
47.8b
(*.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))) 3) 1/3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.3b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (+.f64 (log.f64 (pow.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 1/4)) (log.f64 (pow.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 1/4)))))
45.8b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (-.f64 (*.f64 b b) (*.f64 a a))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
Compiler

Compiled 10148 to 7472 computations (26.4% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.7b
(expm1.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
9.1b
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
21.7b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
22.0b
(cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))

series5.0ms (0%)

Counts
1 → 12
Calls

1 calls:

5.0ms
(expm1.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))

rewrite38.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
667×log1p-expm1-u_binary64
667×expm1-log1p-u_binary64
324×prod-diff_binary64
141×expm1-udef_binary64
141×log1p-udef_binary64
Counts
1 → 21
Calls

1 calls:

38.0ms
(expm1.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0812
115712
2176012
3505412

simplify66.0ms (0.5%)

Algorithm
egg-herbie
Rules
721×distribute-rgt-neg-in_binary64
658×distribute-lft-neg-in_binary64
528×*-commutative_binary64
527×fma-neg_binary64
281×sub-neg_binary64
Counts
33 → 29
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
040234
1108224
2327220
31358212
43090206
54949206
64947206

prune319.0ms (2.5%)

Pruning

36 alts after pruning (36 fresh and 0 done)

PrunedKeptTotal
New1089117
Fresh42731
Picked101
Done000
Total11336149
Error
26.5b
Counts
149 → 36
Alt Table
StatusErrorProgram
29.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))
43.0b
(*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))))
44.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))))
43.1b
(*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
44.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))
29.3b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))))
34.0b
(*.f64 (-.f64 (+.f64 (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 a 2)))) (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 b 2))))) (+.f64 (*.f64 1/90 (*.f64 angle (*.f64 (PI.f64) (pow.f64 a 2)))) (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 b 2)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
50.0b
(*.f64 (*.f64 (*.f64 2 (pow.f64 (pow.f64 (-.f64 (*.f64 b b) (*.f64 a a)) 3) 1/3)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
32.6b
(*.f64 (*.f64 angle (*.f64 1/90 (*.f64 (PI.f64) (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
41.3b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))) 3)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
32.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (+.f64 1 (expm1.f64 (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (sin.f64 1)))))))
52.0b
(*.f64 (log.f64 (pow.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cbrt.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 3)))))
44.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))))
41.4b
(*.f64 (*.f64 2 (*.f64 (pow.f64 b 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.7b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cbrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))))
44.8b
(*.f64 (sqrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))) 2)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
39.4b
(*.f64 (*.f64 -2 (*.f64 (pow.f64 a 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
29.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (+.f64 1 (cbrt.f64 (pow.f64 (expm1.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 3)))))
29.8b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (+.f64 1 (sqrt.f64 (pow.f64 (expm1.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2)))))
31.9b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (sqrt.f64 (exp.f64 (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (sin.f64 1))))))))
29.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (+.f64 1 (/.f64 (-.f64 (*.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) 1) (+.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 1)))))
45.7b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (-.f64 (*.f64 b b) (*.f64 a a))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
29.8b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2)))
39.3b
(*.f64 (*.f64 -2 (*.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (*.f64 a a))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))
29.3b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (+.f64 (log.f64 (pow.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 1/4)) (log.f64 (pow.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 1/4)))))
29.3b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) 3) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))
30.8b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1)
29.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)))
29.3b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) 3) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))))
29.4b
(*.f64 (*.f64 (*.f64 2 (pow.f64 (cbrt.f64 (-.f64 (*.f64 b b) (*.f64 a a))) 3)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
46.4b
(*.f64 (*.f64 (*.f64 2 (*.f64 (-.f64 (pow.f64 b 4) (pow.f64 a 4)) (/.f64 1 (fma.f64 b b (*.f64 a a))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
47.8b
(*.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a)))) 3) 1/3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
45.8b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (-.f64 (*.f64 b b) (*.f64 a a))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
30.7b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) (log.f64 (sqrt.f64 (E.f64)))))
Compiler

Compiled 5377 to 3971 computations (26.1% saved)

regimes2.2s (16.9%)

Accuracy

Total 3.0b remaining (9.4%)

Threshold costs 0b (0%)

Counts
166 → 1
Compiler

Compiled 60720 to 45778 computations (24.6% 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
02342
13142
23642
33842
43942
53942

end720.0ms (5.7%)

Compiler

Compiled 1312 to 1039 computations (20.8% saved)

Profiling

Loading profile data...