Details

Time bar (total: 13.7s)

analyze1.6s (11.6%)

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.7s (41.4%)

Results
1.3s1546×body1024valid
1.2s5346×body128valid
1.1s1267×body1024invalid
455.0ms737×body512valid
399.0ms663×body512invalid
352.0ms81×body4096valid
292.0ms1267×body128invalid
226.0ms162×body2048valid
172.0ms384×body256valid
148.0ms356×body256invalid
Compiler

Compiled 54 to 44 computations (18.5% saved)

preprocess38.0ms (0.3%)

Algorithm
egg-herbie
Rules
592×associate-*l*_binary64
575×associate-*r*_binary64
233×distribute-rgt-in_binary64
230×distribute-lft-in_binary64
207×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
038148
192148
2262148
3922148
43731148
033
Stop Event
saturated
node limit
Compiler

Compiled 26 to 21 computations (19.2% saved)

simplify22.0ms (0.2%)

Algorithm
egg-herbie
Rules
387×unsub-neg_binary64
324×distribute-rgt-in_binary64
306×distribute-lft-in_binary64
302×*-commutative_binary64
278×associate-+r+_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01737
13737
29137
327537
4108137
5314537
Stop Event
node limit
Counts
1 → 2

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
31.3b
Counts
3 → 2
Alt Table
StatusErrorProgram
31.3b
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 -2 (-.f64 (*.f64 a a) (*.f64 b b))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))
31.3b
(*.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 153 to 116 computations (24.2% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.4b
(-.f64 (pow.f64 b 2) (pow.f64 a 2))
8.7b
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
23.4b
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
23.8b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

series64.0ms (0.5%)

Counts
4 → 66
Calls

21 calls:

8.0ms
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
angle
0
6.0ms
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
angle
inf
5.0ms
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
a
0
5.0ms
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
angle
-inf
5.0ms
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
b
-inf

rewrite87.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
751×prod-diff_binary64
172×add-sqr-sqrt_binary64
167×pow1_binary64
165×*-un-lft-identity_binary64
161×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01655
134555
2425455
Stop Event
node limit
Counts
4 → 156

simplify43.0ms (0.3%)

Algorithm
egg-herbie
Rules
775×fma-def_binary64
482×cancel-sign-sub-inv_binary64
439×*-commutative_binary64
258×unswap-sqr_binary64
237×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01211836
13741516
214701474
Stop Event
node limit
Counts
222 → 194

prune358.0ms (2.6%)

Pruning

32 alts after pruning (32 fresh and 0 done)

PrunedKeptTotal
New16232194
Fresh101
Picked101
Done000
Total16432196
Error
28.0b
Counts
196 → 32
Alt Table
StatusErrorProgram
50.7b
(*.f64 (*.f64 (*.f64 2 (pow.f64 (pow.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) 3) 1/3)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
46.7b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
33.4b
(*.f64 (*.f64 angle (*.f64 (*.f64 (PI.f64) 1/90) (-.f64 (*.f64 b b) (*.f64 a a)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
48.2b
(*.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))))
31.5b
(*.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 1/180))) 2)))
33.7b
(*.f64 (*.f64 angle (-.f64 (*.f64 1/90 (*.f64 (PI.f64) (pow.f64 b 2))) (*.f64 1/90 (*.f64 (pow.f64 a 2) (PI.f64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 3)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
43.1b
(*.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))))
43.0b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))) 3)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.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 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
40.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))))
31.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.3b
(*.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)))))
31.5b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a)))))) 3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (-.f64 (exp.f64 (log1p.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) 1))
47.9b
(*.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))) 3) 1/3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
34.8b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (-.f64 1 (*.f64 1/64800 (*.f64 (pow.f64 angle 2) (pow.f64 (PI.f64) 2)))))
47.4b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (fma.f64 b b (*.f64 a (neg.f64 a)))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
48.1b
(*.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))))) 1) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.8b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1)
31.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (log1p.f64 (expm1.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
50.5b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (-.f64 (exp.f64 (log1p.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) 1)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
45.3b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
40.8b
(*.f64 (*.f64 (*.f64 2 (*.f64 a (neg.f64 a))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.2b
(*.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 (PI.f64) (*.f64 angle 1/180)))))))
35.5b
(*.f64 (+.f64 (fma.f64 angle (*.f64 (PI.f64) (*.f64 (*.f64 b b) 1/90)) (*.f64 (pow.f64 (PI.f64) 3) (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 a a))))) (-.f64 (*.f64 (*.f64 (*.f64 (pow.f64 angle 5) (pow.f64 (PI.f64) 5)) 1/11337408000000) (-.f64 (*.f64 b b) (*.f64 a a))) (fma.f64 angle (*.f64 (PI.f64) (*.f64 a (*.f64 a 1/90))) (*.f64 (*.f64 (pow.f64 angle 3) (pow.f64 (PI.f64) 3)) (*.f64 (*.f64 b b) 1/17496000))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
37.2b
(*.f64 (expm1.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
42.3b
(*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.3b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 angle (*.f64 (PI.f64) 1/180))))
43.2b
(*.f64 (*.f64 (*.f64 2 (pow.f64 b 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
48.5b
(*.f64 (*.f64 (*.f64 2 (sqrt.f64 (pow.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
Compiler

Compiled 8752 to 5451 computations (37.7% saved)

localize21.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.4b
(-.f64 (pow.f64 b 2) (pow.f64 a 2))
8.7b
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
23.3b
(cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))
23.8b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

series3.0ms (0%)

Counts
1 → 12
Calls

3 calls:

2.0ms
(cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))
angle
0
0.0ms
(cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))
angle
inf
0.0ms
(cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))
angle
-inf

rewrite34.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
652×pow1_binary64
600×add-log-exp_binary64
600×log1p-expm1-u_binary64
600×expm1-log1p-u_binary64
70×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
114010
2162310
Stop Event
node limit
Counts
1 → 17

simplify30.0ms (0.2%)

Algorithm
egg-herbie
Rules
848×distribute-rgt-neg-in_binary64
487×fma-def_binary64
475×cancel-sign-sub-inv_binary64
305×*-commutative_binary64
274×fma-neg_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
031174
184174
2250170
31171168
44105162
Stop Event
node limit
Counts
29 → 26

prune472.0ms (3.5%)

Pruning

34 alts after pruning (34 fresh and 0 done)

PrunedKeptTotal
New18211193
Fresh82331
Picked101
Done000
Total19134225
Error
28.0b
Counts
225 → 34
Alt Table
StatusErrorProgram
50.7b
(*.f64 (*.f64 (*.f64 2 (pow.f64 (pow.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) 3) 1/3)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
33.4b
(*.f64 (*.f64 angle (*.f64 (*.f64 (PI.f64) 1/90) (-.f64 (*.f64 b b) (*.f64 a a)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.5b
(*.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 1/180))) 2)))
33.7b
(*.f64 (*.f64 angle (-.f64 (*.f64 1/90 (*.f64 (PI.f64) (pow.f64 b 2))) (*.f64 1/90 (*.f64 (pow.f64 a 2) (PI.f64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
43.0b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))) 3)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.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 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
40.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))))
43.0b
(*.f64 (*.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (*.f64 2 (*.f64 b b))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
31.3b
(*.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)))))
44.1b
(*.f64 (sqrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))) 2)) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
31.5b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a)))))) 3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
37.1b
(*.f64 (expm1.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
31.3b
(*.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 angle (*.f64 1/180 (PI.f64))))) 3)))))
47.9b
(*.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))) 3) 1/3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
34.8b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (-.f64 1 (*.f64 1/64800 (*.f64 (pow.f64 angle 2) (pow.f64 (PI.f64) 2)))))
47.4b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (fma.f64 b b (*.f64 a (neg.f64 a)))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
48.1b
(*.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))))) 1) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.8b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1)
31.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 1)) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
31.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (log1p.f64 (expm1.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
50.5b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (-.f64 (exp.f64 (log1p.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) 1)) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 3)) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
31.3b
(*.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 (exp.f64 (log1p.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) 1)))))
45.3b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
40.8b
(*.f64 (*.f64 (*.f64 2 (*.f64 a (neg.f64 a))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
46.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 1/180))) 2))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
48.5b
(*.f64 (*.f64 (*.f64 2 (sqrt.f64 (pow.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.5b
(*.f64 (*.f64 (*.f64 2 (+.f64 (fma.f64 (*.f64 b (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) (neg.f64 (*.f64 (cbrt.f64 a) (*.f64 a (pow.f64 (cbrt.f64 a) 2))))) (fma.f64 (neg.f64 (cbrt.f64 a)) (*.f64 a (pow.f64 (cbrt.f64 a) 2)) (*.f64 (cbrt.f64 a) (*.f64 a (pow.f64 (cbrt.f64 a) 2)))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
31.3b
(*.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))))))))
35.5b
(*.f64 (+.f64 (fma.f64 angle (*.f64 (PI.f64) (*.f64 (*.f64 b b) 1/90)) (*.f64 (pow.f64 (PI.f64) 3) (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 a a))))) (-.f64 (*.f64 (*.f64 (*.f64 (pow.f64 angle 5) (pow.f64 (PI.f64) 5)) 1/11337408000000) (-.f64 (*.f64 b b) (*.f64 a a))) (fma.f64 angle (*.f64 (PI.f64) (*.f64 a (*.f64 a 1/90))) (*.f64 (*.f64 (pow.f64 angle 3) (pow.f64 (PI.f64) 3)) (*.f64 (*.f64 b b) 1/17496000))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
43.1b
(*.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))))
47.3b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (fma.f64 b b (*.f64 a (neg.f64 a)))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
42.3b
(*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
43.2b
(*.f64 (*.f64 (*.f64 2 (pow.f64 b 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
Compiler

Compiled 9712 to 6367 computations (34.4% saved)

localize21.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.4b
(-.f64 (pow.f64 b 2) (pow.f64 a 2))
8.7b
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
23.3b
(cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))
23.8b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

prune642.0ms (4.7%)

Pruning

39 alts after pruning (39 fresh and 0 done)

PrunedKeptTotal
New20613219
Fresh72633
Picked101
Done000
Total21439253
Error
27.9b
Counts
253 → 39
Alt Table
StatusErrorProgram
50.7b
(*.f64 (*.f64 (*.f64 2 (pow.f64 (pow.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) 3) 1/3)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
33.4b
(*.f64 (*.f64 angle (*.f64 (*.f64 (PI.f64) 1/90) (-.f64 (*.f64 b b) (*.f64 a a)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.5b
(*.f64 (*.f64 (*.f64 2 (+.f64 (fma.f64 (*.f64 b (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) (neg.f64 (*.f64 (cbrt.f64 a) (*.f64 a (pow.f64 (cbrt.f64 a) 2))))) (fma.f64 (neg.f64 (cbrt.f64 a)) (*.f64 a (pow.f64 (cbrt.f64 a) 2)) (*.f64 (cbrt.f64 a) (*.f64 a (pow.f64 (cbrt.f64 a) 2)))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
31.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 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2)))
31.5b
(*.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 1/180))) 2)))
33.7b
(*.f64 (*.f64 angle (-.f64 (*.f64 1/90 (*.f64 (PI.f64) (pow.f64 b 2))) (*.f64 1/90 (*.f64 (pow.f64 a 2) (PI.f64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.5b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 2))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
43.1b
(*.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))))
43.0b
(*.f64 (*.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (*.f64 2 (*.f64 b b))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
31.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180)))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
44.1b
(*.f64 (sqrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))) 2)) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
31.6b
(*.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 1/180)))) 2) (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
31.5b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a)))))) 3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
37.1b
(*.f64 (expm1.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
47.9b
(*.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))) 3) 1/3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
47.4b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (fma.f64 b b (*.f64 a (neg.f64 a)))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
48.1b
(*.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))))) 1) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.8b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1)
46.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 1/180))) 2))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
31.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (log1p.f64 (expm1.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
37.1b
(*.f64 (expm1.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
31.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
43.2b
(*.f64 (*.f64 (*.f64 2 (pow.f64 b 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 3)) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
31.3b
(*.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 (exp.f64 (log1p.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) 1)))))
31.7b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (cbrt.f64 1) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
45.3b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
40.8b
(*.f64 (*.f64 (*.f64 2 (*.f64 a (neg.f64 a))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
46.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 1/180))) 2))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
31.7b
(*.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 1/180)))) (pow.f64 (cbrt.f64 1) 2)))
42.1b
(*.f64 (*.f64 (*.f64 2 (expm1.f64 (log1p.f64 (fma.f64 b b (*.f64 a (neg.f64 a)))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
48.5b
(*.f64 (*.f64 (*.f64 2 (sqrt.f64 (pow.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.5b
(*.f64 (*.f64 (*.f64 2 (+.f64 (fma.f64 (*.f64 b (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) (neg.f64 (*.f64 (cbrt.f64 a) (*.f64 a (pow.f64 (cbrt.f64 a) 2))))) (fma.f64 (neg.f64 (cbrt.f64 a)) (*.f64 a (pow.f64 (cbrt.f64 a) 2)) (*.f64 (cbrt.f64 a) (*.f64 a (pow.f64 (cbrt.f64 a) 2)))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
31.3b
(*.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))))))))
34.7b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (cbrt.f64 (fma.f64 angle (*.f64 -1/64800 (*.f64 angle (pow.f64 (PI.f64) 2))) 1)) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
35.5b
(*.f64 (+.f64 (fma.f64 angle (*.f64 (PI.f64) (*.f64 (*.f64 b b) 1/90)) (*.f64 (pow.f64 (PI.f64) 3) (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 a a))))) (-.f64 (*.f64 (*.f64 (*.f64 (pow.f64 angle 5) (pow.f64 (PI.f64) 5)) 1/11337408000000) (-.f64 (*.f64 b b) (*.f64 a a))) (fma.f64 angle (*.f64 (PI.f64) (*.f64 a (*.f64 a 1/90))) (*.f64 (*.f64 (pow.f64 angle 3) (pow.f64 (PI.f64) 3)) (*.f64 (*.f64 b b) 1/17496000))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
47.3b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (fma.f64 b b (*.f64 a (neg.f64 a)))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
42.3b
(*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
30.9b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
Compiler

Compiled 12671 to 8576 computations (32.3% saved)

localize19.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.4b
(-.f64 (pow.f64 b 2) (pow.f64 a 2))
8.8b
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
23.3b
(cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))
23.5b
(sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))

series51.0ms (0.4%)

Counts
2 → 40
Calls

12 calls:

9.0ms
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
angle
0
6.0ms
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
b
-inf
5.0ms
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
angle
inf
5.0ms
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
angle
-inf
5.0ms
(*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))
b
inf

rewrite52.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
777×prod-diff_binary64
158×add-sqr-sqrt_binary64
155×pow1_binary64
153×*-un-lft-identity_binary64
148×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01535
131835
2387735
Stop Event
node limit
Counts
2 → 33

simplify51.0ms (0.4%)

Algorithm
egg-herbie
Rules
710×fma-def_binary64
414×cancel-sign-sub-inv_binary64
400×sub-neg_binary64
376×*-commutative_binary64
216×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0951552
13041232
212351192
346241192
Stop Event
node limit
Counts
73 → 56

prune674.0ms (4.9%)

Pruning

44 alts after pruning (44 fresh and 0 done)

PrunedKeptTotal
New20512217
Fresh63238
Picked101
Done000
Total21244256
Error
27.8b
Counts
256 → 44
Alt Table
StatusErrorProgram
50.7b
(*.f64 (*.f64 (*.f64 2 (pow.f64 (pow.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) 3) 1/3)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
33.4b
(*.f64 (*.f64 angle (*.f64 (*.f64 (PI.f64) 1/90) (-.f64 (*.f64 b b) (*.f64 a a)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.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 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2)))
53.3b
(*.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 2) (-.f64 (*.f64 b b) (*.f64 a a))) (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180))))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
31.5b
(*.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 1/180))) 2)))
33.7b
(*.f64 (*.f64 angle (-.f64 (*.f64 1/90 (*.f64 (PI.f64) (pow.f64 b 2))) (*.f64 1/90 (*.f64 (pow.f64 a 2) (PI.f64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.5b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (cbrt.f64 (sqrt.f64 (pow.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 2))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
43.9b
(*.f64 (sqrt.f64 (pow.f64 (*.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180))) 2) (-.f64 (*.f64 b b) (*.f64 a a))) 2)) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
43.1b
(*.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))))
46.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sqrt.f64 (pow.f64 (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180))) 2))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
42.3b
(*.f64 (exp.f64 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
43.0b
(*.f64 (*.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (*.f64 2 (*.f64 b b))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
48.5b
(*.f64 (*.f64 (*.f64 2 (sqrt.f64 (pow.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
33.8b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 2)) 2)))
44.1b
(*.f64 (sqrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))) 2)) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
41.9b
(*.f64 (*.f64 (*.f64 2 (expm1.f64 (log1p.f64 (fma.f64 b b (*.f64 a (neg.f64 a)))))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
31.5b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a)))))) 3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
37.1b
(*.f64 (expm1.f64 (log1p.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
31.4b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 1) 2)))
31.0b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (*.f64 (cbrt.f64 (log.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
31.1b
(*.f64 (*.f64 (*.f64 2 (+.f64 (fma.f64 b b (neg.f64 (*.f64 (cbrt.f64 a) (*.f64 a (pow.f64 (cbrt.f64 a) 2))))) (fma.f64 (neg.f64 (cbrt.f64 a)) (*.f64 a (pow.f64 (cbrt.f64 a) 2)) (*.f64 (cbrt.f64 a) (*.f64 a (pow.f64 (cbrt.f64 a) 2)))))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
47.9b
(*.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) (*.f64 2 (fma.f64 b b (*.f64 a (neg.f64 a))))) 3) 1/3) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
47.4b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (fma.f64 b b (*.f64 a (neg.f64 a)))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.8b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1)
46.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 1/180))) 2))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
31.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (log1p.f64 (expm1.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
30.9b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2)))
31.2b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
43.2b
(*.f64 (*.f64 (*.f64 2 (pow.f64 b 2)) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.6b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 3)) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
31.3b
(*.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 (exp.f64 (log1p.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) 1)))))
31.7b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (cbrt.f64 1) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
45.3b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
40.8b
(*.f64 (*.f64 (*.f64 2 (*.f64 a (neg.f64 a))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
46.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 1/180))) 2))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
31.7b
(*.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 1/180)))) (pow.f64 (cbrt.f64 1) 2)))
48.5b
(*.f64 (*.f64 (*.f64 2 (sqrt.f64 (pow.f64 (fma.f64 b b (*.f64 a (neg.f64 a))) 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
31.5b
(*.f64 (*.f64 (*.f64 2 (+.f64 (fma.f64 (*.f64 b (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) (neg.f64 (*.f64 (cbrt.f64 a) (*.f64 a (pow.f64 (cbrt.f64 a) 2))))) (fma.f64 (neg.f64 (cbrt.f64 a)) (*.f64 a (pow.f64 (cbrt.f64 a) 2)) (*.f64 (cbrt.f64 a) (*.f64 a (pow.f64 (cbrt.f64 a) 2)))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
31.3b
(*.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))))))))
34.7b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (cbrt.f64 (fma.f64 angle (*.f64 -1/64800 (*.f64 angle (pow.f64 (PI.f64) 2))) 1)) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
36.7b
(*.f64 (expm1.f64 (log1p.f64 (*.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180))) 2) (-.f64 (*.f64 b b) (*.f64 a a))))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
35.5b
(*.f64 (+.f64 (fma.f64 angle (*.f64 (PI.f64) (*.f64 (*.f64 b b) 1/90)) (*.f64 (pow.f64 (PI.f64) 3) (*.f64 1/17496000 (*.f64 (pow.f64 angle 3) (*.f64 a a))))) (-.f64 (*.f64 (*.f64 (*.f64 (pow.f64 angle 5) (pow.f64 (PI.f64) 5)) 1/11337408000000) (-.f64 (*.f64 b b) (*.f64 a a))) (fma.f64 angle (*.f64 (PI.f64) (*.f64 a (*.f64 a 1/90))) (*.f64 (*.f64 (pow.f64 angle 3) (pow.f64 (PI.f64) 3)) (*.f64 (*.f64 b b) 1/17496000))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
47.3b
(*.f64 (*.f64 (*.f64 2 (exp.f64 (log.f64 (fma.f64 b b (*.f64 a (neg.f64 a)))))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (log.f64 (+.f64 1 (expm1.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))
31.4b
(*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 (cbrt.f64 (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180)))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180)))) 2))) (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)))
Compiler

Compiled 11452 to 7471 computations (34.8% saved)

regimes2.8s (20.6%)

Accuracy

Total 2.9b remaining (9.5%)

Threshold costs 0b (0%)

Counts
183 → 1
Compiler

Compiled 76636 to 59154 computations (22.8% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
12×*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
distribute-lft-neg-in_binary64
distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02252
13652
24652
35652
46352
56852
67052
Stop Event
saturated

end921.0ms (6.7%)

Stop Event
fuel
Compiler

Compiled 1613 to 1263 computations (21.7% saved)

Profiling

Loading profile data...