Details

Time bar (total: 13.6s)

analyze2.1s (15.5%)

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
31.2%56.2%12.6%9
31.2%56.2%12.6%10
35.9%51.5%12.6%11
44.9%42.5%12.6%12
45.8%41.5%12.6%13
48.8%38%13.2%14
Compiler

Compiled 25 to 20 computations (20% saved)

sample7.1s (52.6%)

Results
2.1s1664×body1024valid
1.7s1338×body1024invalid
1.1s5178×body128valid
708.0ms837×body512valid
588.0ms685×body512invalid
364.0ms190×body2048valid
189.0ms343×body256invalid
184.0ms386×body256valid
133.0ms601×body128invalid
5.0msbody4096valid
Compiler

Compiled 50 to 40 computations (20% saved)

preprocess68.0ms (0.5%)

Algorithm
egg-herbie
Rules
717×sqr-pow_binary64
400×cube-prod_binary64
336×unswap-sqr_binary64
336×fabs-mul_binary64
209×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
039136
186136
2222136
3484136
4930136
51297136
61957136
72270136
82601136
93083136
103770136
114709136
033
Stop Event
saturated
node limit
Compiler

Compiled 24 to 19 computations (20.8% saved)

simplify49.0ms (0.4%)

Algorithm
egg-herbie
Rules
696×sqr-pow_binary64
484×unswap-sqr_binary64
389×fabs-mul_binary64
362×cube-prod_binary64
264×pow-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01634
13034
27134
313934
425834
564434
6101634
7183934
8205634
9229434
10260434
11305434
12364834
13435734
Stop Event
node limit
Counts
1 → 2

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
22.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
22.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (/.f64 (PI.f64) 180)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 angle (/.f64 (PI.f64) 180)))) 2))
22.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
Compiler

Compiled 141 to 110 computations (22% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series29.0ms (0.2%)

Counts
4 → 60
Calls

15 calls:

5.0ms
(pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2)
a
-inf
4.0ms
(pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2)
angle
0
4.0ms
(pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2)
a
0
3.0ms
(pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2)
a
inf
2.0ms
(pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2)
angle
inf

rewrite56.0ms (0.4%)

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
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01244
125244
2292744
Stop Event
node limit
Counts
4 → 96

simplify50.0ms (0.4%)

Algorithm
egg-herbie
Rules
633×fma-neg_binary64
422×distribute-rgt-neg-in_binary64
411×distribute-lft-neg-in_binary64
308×fma-def_binary64
297×*-commutative_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0931058
12761050
29461028
328361012
Stop Event
node limit
Counts
156 → 125

prune380.0ms (2.8%)

Pruning

29 alts after pruning (29 fresh and 0 done)

PrunedKeptTotal
New12129150
Fresh101
Picked101
Done000
Total12329152
Error
20.9b
Counts
152 → 29
Alt Table
StatusErrorProgram
23.8b
(+.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) (*.f64 a (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
21.8b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b 1) 2))
25.6b
(+.f64 (-.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) 2))) 1) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
22.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (-.f64 (exp.f64 (log1p.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) 1)) 2))
22.5b
(+.f64 (pow.f64 (*.f64 a (*.f64 (cbrt.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) (pow.f64 (cbrt.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 2))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
23.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (cbrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))))) 2))
33.7b
(+.f64 (pow.f64 (*.f64 a (-.f64 (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (sin.f64 1)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
26.7b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (sin.f64 1)))) 2))
26.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (expm1.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
28.2b
(+.f64 (*.f64 (pow.f64 (PI.f64) 2) (*.f64 1/32400 (*.f64 (*.f64 angle a) (*.f64 angle a)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
22.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (/.f64 1 (/.f64 180 (*.f64 angle (PI.f64)))))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
33.5b
(+.f64 (*.f64 1/32400 (*.f64 (pow.f64 angle 2) (*.f64 (pow.f64 a 2) (pow.f64 (PI.f64) 2)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
27.8b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (cbrt.f64 (*.f64 (pow.f64 (*.f64 angle 1/180) 3) (pow.f64 (PI.f64) 3))))) 2))
22.1b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (/.f64 1 (/.f64 180 (*.f64 angle (PI.f64)))))) 2))
29.3b
(+.f64 (pow.f64 (*.f64 a (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (cbrt.f64 (exp.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))))) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
24.8b
(+.f64 (*.f64 a (*.f64 a (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
31.8b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (cbrt.f64 (pow.f64 (*.f64 angle (*.f64 1/180 (PI.f64))) 3)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
22.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
22.4b
(+.f64 (*.f64 (*.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a)) 2)) (cbrt.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
42.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (pow.f64 (sqrt.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 2))) 2))
39.9b
(+.f64 (*.f64 (sqrt.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a)) (*.f64 (sqrt.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a)) (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
22.4b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (pow.f64 (cbrt.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 3))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
26.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 1))) 2))
22.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (pow.f64 (cbrt.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 3)) 2))
22.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2))
22.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))))) 2))
27.7b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (cbrt.f64 (pow.f64 (*.f64 angle (*.f64 1/180 (PI.f64))) 3)))) 2))
42.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (pow.f64 (sqrt.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 2))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
22.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (pow.f64 (cbrt.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 3))) 2))
Compiler

Compiled 5934 to 4471 computations (24.7% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series14.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

4.0ms
(*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))))
a
inf
3.0ms
(*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))))
a
-inf
3.0ms
(*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))))
a
0
2.0ms
(*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))))
angle
0
1.0ms
(*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))))
angle
inf

rewrite36.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
832×log1p-expm1-u_binary64
832×expm1-log1p-u_binary64
298×prod-diff_binary64
94×add-sqr-sqrt_binary64
87×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0913
118713
2227313
Stop Event
node limit
Counts
1 → 15

simplify41.0ms (0.3%)

Algorithm
egg-herbie
Rules
664×fma-neg_binary64
435×distribute-rgt-neg-in_binary64
424×distribute-lft-neg-in_binary64
341×associate-*l*_binary64
326×associate-*r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
048412
1147408
2440404
32178392
44333392
Stop Event
node limit
Counts
39 → 24

prune358.0ms (2.6%)

Pruning

30 alts after pruning (30 fresh and 0 done)

PrunedKeptTotal
New10414118
Fresh121628
Picked101
Done000
Total11730147
Error
20.7b
Counts
147 → 30
Alt Table
StatusErrorProgram
22.0b
(+.f64 (pow.f64 (*.f64 a (pow.f64 (cbrt.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 3)) 2) (pow.f64 (*.f64 b 1) 2))
22.0b
(+.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) 3) 2) (pow.f64 (*.f64 b 1) 2))
25.6b
(+.f64 (-.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) 2))) 1) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
22.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (-.f64 (exp.f64 (log1p.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) 1)) 2))
24.4b
(+.f64 (*.f64 a (*.f64 a (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))) (pow.f64 (*.f64 b 1) 2))
26.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (expm1.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2) (pow.f64 (*.f64 b 1) 2))
22.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))))) 2))
34.9b
(+.f64 (*.f64 (*.f64 a a) (fma.f64 (pow.f64 (PI.f64) 2) (*.f64 angle (*.f64 angle 1/32400)) (*.f64 (pow.f64 (PI.f64) 4) (*.f64 (pow.f64 angle 4) -1/3149280000)))) (pow.f64 (*.f64 b 1) 2))
21.8b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) 2) (pow.f64 (*.f64 b 1) 2))
28.2b
(+.f64 (*.f64 (pow.f64 (PI.f64) 2) (*.f64 1/32400 (*.f64 (*.f64 angle a) (*.f64 angle a)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
25.0b
(+.f64 (-.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) 2))) 1) (pow.f64 (*.f64 b 1) 2))
21.8b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (/.f64 1 (/.f64 180 (*.f64 angle (PI.f64)))))) 2) (pow.f64 (*.f64 b 1) 2))
33.5b
(+.f64 (*.f64 1/32400 (*.f64 (pow.f64 angle 2) (*.f64 (pow.f64 a 2) (pow.f64 (PI.f64) 2)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
27.8b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (cbrt.f64 (*.f64 (pow.f64 (*.f64 angle 1/180) 3) (pow.f64 (PI.f64) 3))))) 2))
22.1b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (/.f64 1 (/.f64 180 (*.f64 angle (PI.f64)))))) 2))
39.6b
(+.f64 (*.f64 (*.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) (sqrt.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a))) (sqrt.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a))) (pow.f64 (*.f64 b 1) 2))
33.5b
(+.f64 (pow.f64 (*.f64 a (-.f64 (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (sin.f64 1)))) 2) (pow.f64 (*.f64 b 1) 2))
23.3b
(+.f64 (*.f64 (*.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) a) (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) (pow.f64 (*.f64 b 1) 2))
22.0b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (pow.f64 (cbrt.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 3))) 2) (pow.f64 (*.f64 b 1) 2))
26.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 1))) 2))
22.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (pow.f64 (cbrt.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 3)) 2))
22.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2))
21.9b
(+.f64 (*.f64 (*.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a)) 2)) (cbrt.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a))) (pow.f64 (*.f64 b 1) 2))
42.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (pow.f64 (sqrt.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 2))) 2) (pow.f64 (*.f64 b 1) 2))
22.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (pow.f64 (cbrt.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 3))) 2))
23.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (cbrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))))) 2))
26.7b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (sin.f64 1)))) 2))
31.8b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (cbrt.f64 (pow.f64 (*.f64 angle (*.f64 1/180 (PI.f64))) 3)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
27.7b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (cbrt.f64 (pow.f64 (*.f64 angle (*.f64 1/180 (PI.f64))) 3)))) 2))
42.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (pow.f64 (sqrt.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 2))) 2))
Compiler

Compiled 4442 to 3461 computations (22.1% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series39.0ms (0.3%)

Counts
4 → 72
Calls

18 calls:

4.0ms
(pow.f64 (*.f64 a (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) 2)
angle
0
4.0ms
(pow.f64 (*.f64 a (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) 2)
a
-inf
3.0ms
(pow.f64 (*.f64 a (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) 2)
angle
-inf
3.0ms
(pow.f64 (*.f64 a (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) 2)
a
0
3.0ms
(pow.f64 (*.f64 a (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) 2)
a
inf

rewrite51.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
756×prod-diff_binary64
202×expm1-udef_binary64
202×log1p-udef_binary64
115×add-sqr-sqrt_binary64
111×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01147
123847
2293947
Stop Event
node limit
Counts
4 → 102

simplify48.0ms (0.4%)

Algorithm
egg-herbie
Rules
804×fma-neg_binary64
462×distribute-rgt-neg-in_binary64
452×distribute-lft-neg-in_binary64
382×*-commutative_binary64
372×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01051296
13181284
210751254
332201244
Stop Event
node limit
Counts
174 → 132

prune432.0ms (3.2%)

Pruning

35 alts after pruning (34 fresh and 1 done)

PrunedKeptTotal
New1239132
Fresh42529
Picked011
Done000
Total12735162
Error
20.5b
Counts
162 → 35
Alt Table
StatusErrorProgram
22.0b
(+.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) 3) 2) (pow.f64 (*.f64 b 1) 2))
22.0b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 (pow.f64 (cbrt.f64 (PI.f64)) 2) 180) (/.f64 (cbrt.f64 (PI.f64)) (/.f64 1 angle))))) 2) (pow.f64 (*.f64 b 1) 2))
25.6b
(+.f64 (-.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) 2))) 1) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
22.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (-.f64 (exp.f64 (log1p.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) 1)) 2))
28.1b
(+.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 1/180 (*.f64 angle a))) 2) (pow.f64 (*.f64 b 1) 2))
24.4b
(+.f64 (*.f64 a (*.f64 a (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))) (pow.f64 (*.f64 b 1) 2))
26.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (expm1.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2) (pow.f64 (*.f64 b 1) 2))
22.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))))) 2))
26.7b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (sin.f64 1)))) 2))
21.9b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (pow.f64 (cbrt.f64 (PI.f64)) 2) (*.f64 (cbrt.f64 (PI.f64)) (*.f64 angle 1/180))))) 2) (pow.f64 (*.f64 b 1) 2))
34.9b
(+.f64 (*.f64 (*.f64 a a) (fma.f64 (pow.f64 (PI.f64) 2) (*.f64 angle (*.f64 angle 1/32400)) (*.f64 (pow.f64 (PI.f64) 4) (*.f64 (pow.f64 angle 4) -1/3149280000)))) (pow.f64 (*.f64 b 1) 2))
21.8b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) 2) (pow.f64 (*.f64 b 1) 2))
28.2b
(+.f64 (*.f64 (pow.f64 (PI.f64) 2) (*.f64 1/32400 (*.f64 (*.f64 angle a) (*.f64 angle a)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
27.8b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (cbrt.f64 (*.f64 (pow.f64 (*.f64 angle 1/180) 3) (pow.f64 (PI.f64) 3))))) 2))
22.1b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (/.f64 1 (/.f64 180 (*.f64 angle (PI.f64)))))) 2))
31.8b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (cbrt.f64 (pow.f64 (*.f64 angle (*.f64 1/180 (PI.f64))) 3)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
39.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3) 1/3))) 2) (pow.f64 (*.f64 b 1) 2))
28.9b
(+.f64 (pow.f64 (*.f64 a (log.f64 (+.f64 1 (expm1.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) 2) (pow.f64 (*.f64 b 1) 2))
27.7b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (cbrt.f64 (pow.f64 (*.f64 angle (*.f64 1/180 (PI.f64))) 3)))) 2))
21.9b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (*.f64 (*.f64 (PI.f64) 1/180) (pow.f64 (cbrt.f64 angle) 2)) (cbrt.f64 angle)))) 2) (pow.f64 (*.f64 b 1) 2))
39.6b
(+.f64 (*.f64 (*.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) (sqrt.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a))) (sqrt.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a))) (pow.f64 (*.f64 b 1) 2))
33.5b
(+.f64 (pow.f64 (*.f64 a (-.f64 (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (sin.f64 1)))) 2) (pow.f64 (*.f64 b 1) 2))
42.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (pow.f64 (sqrt.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 2))) 2))
22.1b
(+.f64 (pow.f64 (*.f64 a (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 3)) 2) (pow.f64 (*.f64 b 1) 2))
23.3b
(+.f64 (*.f64 (*.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) a) (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) (pow.f64 (*.f64 b 1) 2))
22.0b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (pow.f64 (cbrt.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 3))) 2) (pow.f64 (*.f64 b 1) 2))
26.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 1))) 2))
22.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (pow.f64 (cbrt.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 3)) 2))
22.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2))
21.9b
(+.f64 (*.f64 (*.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a)) 2)) (cbrt.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a))) (pow.f64 (*.f64 b 1) 2))
22.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (pow.f64 (cbrt.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 3))) 2))
21.8b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 (sqrt.f64 (PI.f64)) 180) (/.f64 (sqrt.f64 (PI.f64)) (/.f64 1 angle))))) 2) (pow.f64 (*.f64 b 1) 2))
21.8b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 1/180 (/.f64 (PI.f64) (/.f64 1 angle))))) 2) (pow.f64 (*.f64 b 1) 2))
23.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (cbrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))))) 2))
25.0b
(+.f64 (-.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) 2))) 1) (pow.f64 (*.f64 b 1) 2))
Compiler

Compiled 4895 to 3802 computations (22.3% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (*.f64 a (sin.f64 (*.f64 1/180 (/.f64 (PI.f64) (/.f64 1 angle))))) 2)
0.4b
(*.f64 1/180 (/.f64 (PI.f64) (/.f64 1 angle)))
0.4b
(/.f64 (PI.f64) (/.f64 1 angle))
26.7b
(sin.f64 (*.f64 1/180 (/.f64 (PI.f64) (/.f64 1 angle))))

series29.0ms (0.2%)

Counts
4 → 60
Calls

15 calls:

4.0ms
(pow.f64 (*.f64 a (sin.f64 (*.f64 1/180 (/.f64 (PI.f64) (/.f64 1 angle))))) 2)
angle
0
4.0ms
(pow.f64 (*.f64 a (sin.f64 (*.f64 1/180 (/.f64 (PI.f64) (/.f64 1 angle))))) 2)
a
-inf
4.0ms
(pow.f64 (*.f64 a (sin.f64 (*.f64 1/180 (/.f64 (PI.f64) (/.f64 1 angle))))) 2)
a
0
3.0ms
(pow.f64 (*.f64 a (sin.f64 (*.f64 1/180 (/.f64 (PI.f64) (/.f64 1 angle))))) 2)
a
inf
3.0ms
(pow.f64 (*.f64 a (sin.f64 (*.f64 1/180 (/.f64 (PI.f64) (/.f64 1 angle))))) 2)
angle
inf

rewrite50.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
313×prod-diff_binary64
219×expm1-udef_binary64
219×log1p-udef_binary64
197×log-pow_binary64
127×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01351
127239
2319239
Stop Event
node limit
Counts
4 → 101

simplify42.0ms (0.3%)

Algorithm
egg-herbie
Rules
848×associate-*l*_binary64
807×fma-neg_binary64
603×distribute-rgt-neg-in_binary64
249×*-commutative_binary64
248×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
077944
1230936
2793918
33636910
Stop Event
node limit
Counts
161 → 119

prune436.0ms (3.2%)

Pruning

35 alts after pruning (34 fresh and 1 done)

PrunedKeptTotal
New1145119
Fresh42933
Picked011
Done101
Total11935154
Error
20.4b
Counts
154 → 35
Alt Table
StatusErrorProgram
25.6b
(+.f64 (-.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) 2))) 1) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
22.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (-.f64 (exp.f64 (log1p.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) 1)) 2))
28.1b
(+.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 1/180 (*.f64 angle a))) 2) (pow.f64 (*.f64 b 1) 2))
26.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (expm1.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2) (pow.f64 (*.f64 b 1) 2))
22.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))))) 2))
26.7b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (sin.f64 1)))) 2))
21.9b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (pow.f64 (cbrt.f64 (PI.f64)) 2) (*.f64 (cbrt.f64 (PI.f64)) (*.f64 angle 1/180))))) 2) (pow.f64 (*.f64 b 1) 2))
34.9b
(+.f64 (*.f64 (*.f64 a a) (fma.f64 (pow.f64 (PI.f64) 2) (*.f64 angle (*.f64 angle 1/32400)) (*.f64 (pow.f64 (PI.f64) 4) (*.f64 (pow.f64 angle 4) -1/3149280000)))) (pow.f64 (*.f64 b 1) 2))
28.2b
(+.f64 (*.f64 (pow.f64 (PI.f64) 2) (*.f64 1/32400 (*.f64 (*.f64 angle a) (*.f64 angle a)))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
22.2b
(+.f64 (*.f64 a (*.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) (*.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))) a))) (pow.f64 (*.f64 b 1) 2))
27.8b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (cbrt.f64 (*.f64 (pow.f64 (*.f64 angle 1/180) 3) (pow.f64 (PI.f64) 3))))) 2))
22.1b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (/.f64 1 (/.f64 180 (*.f64 angle (PI.f64)))))) 2))
31.8b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (cbrt.f64 (pow.f64 (*.f64 angle (*.f64 1/180 (PI.f64))) 3)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
26.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 1/180 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) angle)))))) 2) (pow.f64 (*.f64 b 1) 2))
39.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3) 1/3))) 2) (pow.f64 (*.f64 b 1) 2))
27.7b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (cbrt.f64 (pow.f64 (*.f64 angle (*.f64 1/180 (PI.f64))) 3)))) 2))
21.9b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (*.f64 (*.f64 (PI.f64) 1/180) (pow.f64 (cbrt.f64 angle) 2)) (cbrt.f64 angle)))) 2) (pow.f64 (*.f64 b 1) 2))
39.6b
(+.f64 (*.f64 (*.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) (sqrt.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a))) (sqrt.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a))) (pow.f64 (*.f64 b 1) 2))
33.5b
(+.f64 (pow.f64 (*.f64 a (-.f64 (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (sin.f64 1)))) 2) (pow.f64 (*.f64 b 1) 2))
21.8b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 1/180 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) angle)) 3)))) 2) (pow.f64 (*.f64 b 1) 2))
42.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (pow.f64 (sqrt.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 2))) 2))
22.1b
(+.f64 (pow.f64 (*.f64 a (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 3)) 2) (pow.f64 (*.f64 b 1) 2))
23.3b
(+.f64 (*.f64 (*.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) a) (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) (pow.f64 (*.f64 b 1) 2))
22.0b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (pow.f64 (cbrt.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 3))) 2) (pow.f64 (*.f64 b 1) 2))
26.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 1))) 2))
22.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (pow.f64 (cbrt.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 3)) 2))
22.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2))
21.9b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 1/180 (*.f64 (*.f64 (PI.f64) (pow.f64 (cbrt.f64 angle) 2)) (cbrt.f64 angle))))) 2) (pow.f64 (*.f64 b 1) 2))
21.9b
(+.f64 (*.f64 (*.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a)) 2)) (cbrt.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a))) (pow.f64 (*.f64 b 1) 2))
22.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (pow.f64 (cbrt.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 3))) 2))
21.8b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 (sqrt.f64 (PI.f64)) 180) (/.f64 (sqrt.f64 (PI.f64)) (/.f64 1 angle))))) 2) (pow.f64 (*.f64 b 1) 2))
21.8b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 1/180 (/.f64 (PI.f64) (/.f64 1 angle))))) 2) (pow.f64 (*.f64 b 1) 2))
21.9b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 1/180 (*.f64 (pow.f64 (cbrt.f64 (PI.f64)) 2) (*.f64 (cbrt.f64 (PI.f64)) angle))))) 2) (pow.f64 (*.f64 b 1) 2))
23.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) (cbrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))))) 2))
25.0b
(+.f64 (-.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) 2))) 1) (pow.f64 (*.f64 b 1) 2))
Compiler

Compiled 3660 to 2716 computations (25.8% saved)

regimes1.5s (11%)

Accuracy

Total 1.5b remaining (7.4%)

Threshold costs 0b (0%)

Counts
202 → 1
Compiler

Compiled 30442 to 25008 computations (17.9% saved)

simplify2.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01830
12730
Stop Event
saturated

end589.0ms (4.3%)

Stop Event
fuel
Compiler

Compiled 1004 to 813 computations (19% saved)

Profiling

Loading profile data...