Details

Time bar (total: 18.9s)

analyze2.3s (12%)

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
25%62.4%12.6%8
31.2%56.2%12.6%9
34.3%53%12.6%10
42.9%44.5%12.6%11
46.8%40.6%12.6%12
47.8%39.6%12.6%13
52.6%34.8%12.6%14
Compiler

Compiled 25 to 20 computations (20% saved)

sample8.2s (43.5%)

Results
2.3s1671×body1024valid
2.0s1411×body1024invalid
1.3s5142×body128valid
767.0ms832×body512valid
654.0ms706×body512invalid
378.0ms171×body2048valid
225.0ms435×body256valid
223.0ms367×body256invalid
160.0ms649×body128invalid
28.0msbody4096valid
Compiler

Compiled 74 to 59 computations (20.3% saved)

simplify156.0ms (0.8%)

Algorithm
egg-herbie
Rules
1078×sqr-pow_binary64
786×cube-prod_binary64
770×fabs-mul_binary64
484×unswap-sqr_binary64
392×pow-sqr_binary64
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01634
13034
26634
312434
421734
546534
666934
7113034
8117734
9136934
10157434
11186834
12215234
13257334
14320634
15352034
16387234
17402634
18409434
19413634
20493334
21490534

prune4.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
19.3b
Counts
2 → 1
Alt Table
StatusErrorProgram
19.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
Compiler

Compiled 72 to 57 computations (20.8% saved)

localize24.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)
0.3b
(*.f64 (PI.f64) (/.f64 angle 180))
23.7b
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
24.0b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

series75.0ms (0.4%)

Counts
4 → 60
Calls

4 calls:

51.0ms
(pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)
11.0ms
(*.f64 (PI.f64) (/.f64 angle 180))
7.0ms
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
6.0ms
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

rewrite102.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
557×log-prod_binary64
298×prod-diff_binary64
213×expm1-udef_binary64
213×log1p-udef_binary64
189×log-pow_binary64
Counts
4 → 95
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01244
125244
2275844
3505844
000
100

simplify104.0ms (0.6%)

Algorithm
egg-herbie
Rules
845×fma-neg_binary64
635×unswap-sqr_binary64
405×distribute-rgt-neg-in_binary64
395×distribute-lft-neg-in_binary64
306×fma-def_binary64
Counts
155 → 121
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0831058
12421050
28321028
320941016
449401016
551681016

prune666.0ms (3.5%)

Pruning

28 alts after pruning (28 fresh and 0 done)

PrunedKeptTotal
New11728145
Fresh000
Picked101
Done000
Total11828146
Error
18.2b
Counts
146 → 28
Alt Table
StatusErrorProgram
43.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (pow.f64 (sqrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) 2))
19.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)) 2))
26.1b
(+.f64 (pow.f64 (*.f64 a (fma.f64 (*.f64 (*.f64 angle angle) (pow.f64 (PI.f64) 2)) -1/64800 1)) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
19.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) 2))
19.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
37.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (*.f64 (sqrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b)) (*.f64 (sqrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b)) (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b))))
31.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (-.f64 (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (sin.f64 1)))) 2))
24.1b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b)) 2) (cbrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) 4))))
19.3b
(+.f64 (pow.f64 (*.f64 a (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (*.f64 b (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b))))
27.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))))) 2))
23.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (-.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) 2))) 1))
19.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (/.f64 (*.f64 (PI.f64) angle) 180))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
24.1b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
19.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
37.4b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (exp.f64 (*.f64 2 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b)))))
19.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) 2))
19.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (expm1.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) 2))))
28.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (cbrt.f64 (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 (/.f64 angle 180) 3))))) 2))
26.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (cbrt.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) 2) 3)))
23.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (cbrt.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
31.9b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 1))) 2))
19.4b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
19.4b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b)) 2) (*.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b)) (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b))))
33.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (*.f64 1/32400 (*.f64 (pow.f64 angle 2) (*.f64 (pow.f64 (PI.f64) 2) (pow.f64 b 2)))))
19.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (/.f64 (*.f64 (PI.f64) angle) 180))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
24.0b
(+.f64 (pow.f64 (*.f64 a (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (sin.f64 1)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
Compiler

Compiled 5756 to 4334 computations (24.7% saved)

localize22.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
0.3b
(pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)
0.3b
(*.f64 (PI.f64) (/.f64 angle 180))
24.0b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

series29.0ms (0.2%)

Counts
1 → 24
Calls

1 calls:

29.0ms
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))

rewrite86.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
831×log1p-expm1-u_binary64
831×expm1-log1p-u_binary64
298×prod-diff_binary64
94×add-sqr-sqrt_binary64
87×add-log-exp_binary64
Counts
1 → 15
Calls

1 calls:

85.0ms
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0913
118713
2219313
3561113
000
100

simplify86.0ms (0.5%)

Algorithm
egg-herbie
Rules
817×distribute-rgt-neg-in_binary64
767×distribute-lft-neg-in_binary64
576×fma-neg_binary64
310×associate-*r*_binary64
301×associate-*l*_binary64
Counts
39 → 24
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
038412
1113408
2364403
31540394
43357393
55003393

prune723.0ms (3.8%)

Pruning

28 alts after pruning (28 fresh and 0 done)

PrunedKeptTotal
New9718115
Fresh171027
Picked101
Done000
Total11528143
Error
18.2b
Counts
143 → 28
Alt Table
StatusErrorProgram
43.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (pow.f64 (sqrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) 2))
26.1b
(+.f64 (pow.f64 (*.f64 a (fma.f64 (*.f64 (*.f64 angle angle) (pow.f64 (PI.f64) 2)) -1/64800 1)) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
19.4b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
19.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (/.f64 (*.f64 (PI.f64) angle) 180))) 2))
19.3b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) 2))
19.2b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 3) 2))
33.3b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 1/32400 (*.f64 (*.f64 angle angle) (*.f64 (pow.f64 (PI.f64) 2) (*.f64 b b)))))
19.3b
(+.f64 (pow.f64 (*.f64 a (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
19.2b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b)) 2) (*.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b)) (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b))))
43.5b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (exp.f64 (log.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
24.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 1/180 (*.f64 angle (*.f64 (PI.f64) b))) 2))
23.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (-.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) 2))) 1))
19.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (/.f64 (*.f64 (PI.f64) angle) 180))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
37.3b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (*.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) (sqrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b))) (sqrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b))))
20.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (*.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) b))
27.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
31.7b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (-.f64 (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (sin.f64 1)))) 2))
24.1b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
19.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
19.5b
(+.f64 (pow.f64 (*.f64 a 1) 2) (expm1.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) 2))))
37.5b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (exp.f64 (log.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
23.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (cbrt.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
19.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) 2))
29.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (pow.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3) 1/3) 2))
28.6b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (cbrt.f64 (*.f64 (pow.f64 (/.f64 angle 180) 3) (pow.f64 (PI.f64) 3))))) 2))
24.0b
(+.f64 (pow.f64 (*.f64 a (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (sin.f64 1)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
25.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (cbrt.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) 2) 3)))
Compiler

Compiled 4232 to 3299 computations (22% saved)

localize26.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
0.3b
(pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2)
0.3b
(*.f64 (PI.f64) (/.f64 angle 180))
24.0b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

series83.0ms (0.4%)

Counts
2 → 48
Calls

2 calls:

53.0ms
(pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2)
30.0ms
(*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))

rewrite107.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
551×log-prod_binary64
338×prod-diff_binary64
210×expm1-udef_binary64
210×log1p-udef_binary64
187×log-pow_binary64
Counts
2 → 47
Calls

2 calls:

105.0ms
(*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))
105.0ms
(pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01329
125229
2273829
3505129
000
100

simplify111.0ms (0.6%)

Algorithm
egg-herbie
Rules
846×fma-neg_binary64
645×unswap-sqr_binary64
634×cancel-sign-sub-inv_binary64
359×distribute-rgt-neg-in_binary64
351×distribute-lft-neg-in_binary64
Counts
95 → 66
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
074998
1217990
2753969
31932954
44694954
55015954

prune762.0ms (4%)

Pruning

29 alts after pruning (29 fresh and 0 done)

PrunedKeptTotal
New1173120
Fresh12627
Picked101
Done000
Total11929148
Error
18.2b
Counts
148 → 29
Alt Table
StatusErrorProgram
43.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (pow.f64 (sqrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 2))) 2))
26.1b
(+.f64 (pow.f64 (*.f64 a (fma.f64 (*.f64 (*.f64 angle angle) (pow.f64 (PI.f64) 2)) -1/64800 1)) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
19.4b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
19.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (/.f64 (*.f64 (PI.f64) angle) 180))) 2))
27.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))))))) 2))
19.3b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) 2))
19.2b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 3) 2))
33.3b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 1/32400 (*.f64 (*.f64 angle angle) (*.f64 (pow.f64 (PI.f64) 2) (*.f64 b b)))))
19.3b
(+.f64 (pow.f64 (*.f64 a (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
19.3b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)))) 2))
19.2b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b)) 2) (*.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b)) (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b))))
43.5b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (exp.f64 (log.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
24.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 1/180 (*.f64 angle (*.f64 (PI.f64) b))) 2))
23.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (-.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) 2))) 1))
19.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (/.f64 (*.f64 (PI.f64) angle) 180))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
37.3b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (*.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) (sqrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b))) (sqrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b))))
19.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))))) 2))
20.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (*.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) b))
27.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
31.7b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (-.f64 (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (sin.f64 1)))) 2))
19.5b
(+.f64 (pow.f64 (*.f64 a 1) 2) (expm1.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) 2))))
37.5b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (exp.f64 (log.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
29.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (pow.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3) 1/3) 2))
28.6b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (cbrt.f64 (*.f64 (pow.f64 (/.f64 angle 180) 3) (pow.f64 (PI.f64) 3))))) 2))
24.0b
(+.f64 (pow.f64 (*.f64 a (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (sin.f64 1)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
24.1b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
25.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (cbrt.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) 2) 3)))
23.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (cbrt.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
Compiler

Compiled 4552 to 3568 computations (21.6% saved)

localize27.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle))))))
0.3b
(pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))))) 2)
0.5b
(/.f64 (PI.f64) (/.f64 180 angle))
23.9b
(sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))

series96.0ms (0.5%)

Counts
4 → 72
Calls

4 calls:

51.0ms
(pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))))) 2)
32.0ms
(*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle))))))
7.0ms
(sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))
6.0ms
(/.f64 (PI.f64) (/.f64 180 angle))

rewrite106.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
796×prod-diff_binary64
217×expm1-udef_binary64
217×log1p-udef_binary64
123×add-sqr-sqrt_binary64
120×expm1-log1p-u_binary64
Counts
4 → 105
Calls

4 calls:

102.0ms
(*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle))))))
102.0ms
(pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))))) 2)
102.0ms
(/.f64 (PI.f64) (/.f64 180 angle))
102.0ms
(sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01347
125747
2295047
3495947
000
100

simplify149.0ms (0.8%)

Algorithm
egg-herbie
Rules
688×fma-neg_binary64
415×distribute-rgt-neg-in_binary64
406×distribute-lft-neg-in_binary64
351×fma-def_binary64
344×*-commutative_binary64
Counts
177 → 132
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0851296
12531284
28971254
322761230
448371230
549821230

prune815.0ms (4.3%)

Pruning

33 alts after pruning (33 fresh and 0 done)

PrunedKeptTotal
New11715132
Fresh101828
Picked101
Done000
Total12833161
Error
18.0b
Counts
161 → 33
Alt Table
StatusErrorProgram
19.5b
(+.f64 (pow.f64 (*.f64 a 1) 2) (expm1.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle))) b) 2))))
26.1b
(+.f64 (pow.f64 (*.f64 a (fma.f64 (*.f64 (*.f64 angle angle) (pow.f64 (PI.f64) 2)) -1/64800 1)) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
23.9b
(+.f64 (pow.f64 (*.f64 a 1) 2) (sqrt.f64 (pow.f64 (*.f64 (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle))) b) 4)))
19.4b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
23.9b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle))) b)) 2) (cbrt.f64 (pow.f64 (*.f64 (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle))) b) 4))))
19.2b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 3) 2))
43.2b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (/.f64 (pow.f64 (cbrt.f64 (PI.f64)) 2) (sqrt.f64 (/.f64 180 angle))) (/.f64 (cbrt.f64 (PI.f64)) (sqrt.f64 (/.f64 180 angle)))))))) 2))
19.3b
(+.f64 (pow.f64 (*.f64 a (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
21.3b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle))) (*.f64 b (*.f64 (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle))) b))))
19.4b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (/.f64 (pow.f64 (cbrt.f64 (PI.f64)) 2) 180) (/.f64 (cbrt.f64 (PI.f64)) (/.f64 1 angle))))))) 2))
19.2b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b)) 2) (*.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b)) (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b))))
43.5b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (exp.f64 (log.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
24.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 1/180 (*.f64 angle (*.f64 (PI.f64) b))) 2))
19.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (/.f64 (*.f64 (PI.f64) angle) 180))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
19.4b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (/.f64 1 (pow.f64 (cbrt.f64 (/.f64 180 angle)) 2)) (/.f64 (PI.f64) (cbrt.f64 (/.f64 180 angle)))))))) 2))
23.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (-.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) 2))) 1))
24.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (expm1.f64 (log1p.f64 (*.f64 (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle))) b))) 2))
20.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (*.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) b))
27.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
31.7b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (-.f64 (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (sin.f64 1)))) 2))
24.1b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
19.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (pow.f64 (/.f64 (/.f64 180 angle) (PI.f64)) -1))))) 2))
28.9b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle))) b) 3) 1/3) 2))
43.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (pow.f64 (sqrt.f64 (/.f64 (PI.f64) (/.f64 180 angle))) 2))))) 2))
25.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (cbrt.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) 2) 3)))
19.4b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (cbrt.f64 (/.f64 (PI.f64) (/.f64 180 angle))) (pow.f64 (cbrt.f64 (/.f64 (PI.f64) (/.f64 180 angle))) 2)))))) 2))
19.5b
(+.f64 (pow.f64 (*.f64 a 1) 2) (expm1.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) b) 2))))
23.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (cbrt.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
19.3b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (*.f64 (/.f64 (PI.f64) 180) (pow.f64 (cbrt.f64 angle) 2)) (cbrt.f64 angle)))))) 2))
28.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle))) 2)))
19.4b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (expm1.f64 (log1p.f64 (sin.f64 (*.f64 (/.f64 (pow.f64 (cbrt.f64 (PI.f64)) 2) 1) (/.f64 (cbrt.f64 (PI.f64)) (/.f64 180 angle))))))) 2))
24.0b
(+.f64 (pow.f64 (*.f64 a (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (sin.f64 1)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
Compiler

Compiled 4116 to 3209 computations (22% saved)

regimes2.8s (15.1%)

Accuracy

Total 1.2b remaining (6%)

Threshold costs 0b (0%)

Counts
169 → 1
Compiler

Compiled 32061 to 26415 computations (17.6% saved)

simplify4.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
*-rgt-identity_binary64
+-commutative_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01926
12626
22526

end1.2s (6.3%)

Compiler

Compiled 949 to 785 computations (17.3% saved)

Profiling

Loading profile data...