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
34.3%53%12.6%10
37.4%49.9%12.6%11
46.8%40.6%12.6%12
47.8%39.6%12.6%13
49.7%37.1%13.2%14
Compiler

Compiled 25 to 20 computations (20% saved)

sample7.6s (56.1%)

Results
2.1s1644×body1024valid
1.9s1458×body1024invalid
1.2s5165×body128valid
758.0ms811×body512valid
609.0ms686×body512invalid
420.0ms219×body2048valid
203.0ms415×body256valid
187.0ms338×body256invalid
135.0ms599×body128invalid
11.0msbody4096valid
Compiler

Compiled 74 to 59 computations (20.3% saved)

simplify48.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.4b
Counts
3 → 2
Alt Table
StatusErrorProgram
22.5b
(+.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))
22.5b
(+.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))
Compiler

Compiled 141 to 110 computations (22% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series30.0ms (0.2%)

Counts
4 → 60
Calls

4 calls:

22.0ms
(pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2)
3.0ms
(*.f64 (/.f64 angle 180) (PI.f64))
3.0ms
(sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))
3.0ms
(cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))

rewrite50.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
Calls

4 calls:

49.0ms
(pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2)
49.0ms
(*.f64 (/.f64 angle 180) (PI.f64))
49.0ms
(sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))
49.0ms
(cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))

simplify39.0ms (0.3%)

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

prune363.0ms (2.7%)

Pruning

30 alts after pruning (30 fresh and 0 done)

PrunedKeptTotal
New12030150
Fresh101
Picked101
Done000
Total12230152
Error
21.4b
Counts
152 → 30
Alt Table
StatusErrorProgram
28.0b
(+.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))
33.3b
(+.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.2b
(+.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))
32.4b
(+.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.5b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (/.f64 angle (/.f64 180 (PI.f64))))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
29.2b
(+.f64 (pow.f64 (*.f64 a (-.f64 (exp.f64 (log1p.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) 1)) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
40.4b
(+.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))
29.2b
(+.f64 (pow.f64 (*.f64 a (+.f64 (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) (log.f64 (sqrt.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))
22.5b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
40.4b
(+.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))
29.2b
(+.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))
23.1b
(+.f64 (exp.f64 (log.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) 2))) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
22.6b
(+.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))
41.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))
38.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (pow.f64 (pow.f64 (*.f64 angle (*.f64 1/180 (PI.f64))) 3) 1/3))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
22.5b
(+.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.5b
(+.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))
34.1b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (pow.f64 (pow.f64 (*.f64 angle (*.f64 1/180 (PI.f64))) 3) 1/3))) 2))
22.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 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))
26.5b
(+.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.4b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (expm1.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2))
22.6b
(+.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))
22.7b
(+.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))
36.5b
(+.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 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
28.1b
(+.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.8b
(+.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))
22.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b 1) 2))
24.2b
(+.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))
23.6b
(+.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))
Compiler

Compiled 5958 to 4489 computations (24.7% saved)

localize11.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.3b
(pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2)
0.3b
(*.f64 (/.f64 angle 180) (PI.f64))
26.9b
(sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))

series13.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

13.0ms
(*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))))

rewrite38.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
Calls

1 calls:

37.0ms
(*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))))

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

prune366.0ms (2.7%)

Pruning

32 alts after pruning (32 fresh and 0 done)

PrunedKeptTotal
New9919118
Fresh161329
Picked101
Done000
Total11632148
Error
21.4b
Counts
148 → 32
Alt Table
StatusErrorProgram
22.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) 2) (pow.f64 (*.f64 b 1) 2))
22.5b
(+.f64 (pow.f64 (*.f64 a (*.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 2) (cbrt.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2) (pow.f64 (*.f64 b 1) 2))
28.0b
(+.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))
26.2b
(+.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))
32.4b
(+.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 (log1p.f64 (expm1.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2) (pow.f64 (*.f64 b 1) 2))
40.4b
(+.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))
26.7b
(+.f64 (pow.f64 (expm1.f64 (log1p.f64 (*.f64 a (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2) (pow.f64 (*.f64 b 1) 2))
22.6b
(+.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))
22.6b
(+.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))
40.1b
(+.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.5b
(+.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.5b
(+.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))
41.7b
(+.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))
34.1b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (pow.f64 (pow.f64 (*.f64 angle (*.f64 1/180 (PI.f64))) 3) 1/3))) 2))
31.8b
(+.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 3))) 2) (pow.f64 (*.f64 b 1) 2))
22.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2))
22.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2) (pow.f64 (*.f64 b 1) 2))
23.6b
(+.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))
29.0b
(+.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 1) 2))
22.5b
(+.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))
26.5b
(+.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.4b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (expm1.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2))
22.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (/.f64 angle (/.f64 180 (PI.f64))))) 2) (pow.f64 (*.f64 b 1) 2))
33.0b
(+.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))
32.1b
(+.f64 (pow.f64 (pow.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 3) 1/3) 2) (pow.f64 (*.f64 b 1) 2))
36.5b
(+.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 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
28.1b
(+.f64 (*.f64 (pow.f64 (PI.f64) 2) (*.f64 1/32400 (*.f64 (*.f64 angle a) (*.f64 angle a)))) (pow.f64 (*.f64 b 1) 2))
38.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (pow.f64 (pow.f64 (*.f64 angle (*.f64 1/180 (PI.f64))) 3) 1/3))) 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))
24.0b
(+.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.9b
(+.f64 (exp.f64 (log.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) 2))) (pow.f64 (*.f64 b 1) 2))
Compiler

Compiled 4480 to 3503 computations (21.8% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series28.0ms (0.2%)

Counts
4 → 60
Calls

4 calls:

21.0ms
(pow.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)
3.0ms
(sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))
3.0ms
(*.f64 (PI.f64) (*.f64 angle 1/180))
1.0ms
(*.f64 angle 1/180)

rewrite53.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
907×log1p-expm1-u_binary64
907×expm1-log1p-u_binary64
361×prod-diff_binary64
107×add-sqr-sqrt_binary64
101×add-cube-cbrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01138
122538
2254738
Stop Event
node limit
Counts
4 → 70
Calls

4 calls:

51.0ms
(*.f64 angle 1/180)
51.0ms
(pow.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 2)
51.0ms
(*.f64 (PI.f64) (*.f64 angle 1/180))
51.0ms
(sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))

simplify40.0ms (0.3%)

Algorithm
egg-herbie
Rules
846×associate-*l*_binary64
810×fma-neg_binary64
604×distribute-rgt-neg-in_binary64
247×fma-def_binary64
246×*-commutative_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
078932
1231924
2793906
33617898
Stop Event
node limit
Counts
130 → 91

prune310.0ms (2.3%)

Pruning

37 alts after pruning (37 fresh and 0 done)

PrunedKeptTotal
New82991
Fresh32831
Picked101
Done000
Total8637123
Error
21.3b
Counts
123 → 37
Alt Table
StatusErrorProgram
22.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (pow.f64 (cbrt.f64 (*.f64 angle 1/180)) 3)))) 2) (pow.f64 (*.f64 b 1) 2))
22.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) 2) (pow.f64 (*.f64 b 1) 2))
22.5b
(+.f64 (pow.f64 (*.f64 a (*.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 2) (cbrt.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2) (pow.f64 (*.f64 b 1) 2))
42.2b
(+.f64 (exp.f64 (*.f64 2 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) a)))) (pow.f64 (*.f64 b 1) 2))
28.0b
(+.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))
26.2b
(+.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))
22.4b
(+.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) a)) 2) (*.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) a)) (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) a))) (pow.f64 (*.f64 b 1) 2))
22.3b
(+.f64 (pow.f64 (*.f64 a (log1p.f64 (expm1.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2) (pow.f64 (*.f64 b 1) 2))
40.4b
(+.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))
26.7b
(+.f64 (pow.f64 (expm1.f64 (log1p.f64 (*.f64 a (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2) (pow.f64 (*.f64 b 1) 2))
22.6b
(+.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))
22.6b
(+.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))
22.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) 2) (pow.f64 (*.f64 b 1) 2))
26.7b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) 2) (pow.f64 (*.f64 b 1) 2))
40.1b
(+.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.5b
(+.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.5b
(+.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))
41.7b
(+.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))
34.1b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (pow.f64 (pow.f64 (*.f64 angle (*.f64 1/180 (PI.f64))) 3) 1/3))) 2))
31.8b
(+.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 3))) 2) (pow.f64 (*.f64 b 1) 2))
22.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2))
22.5b
(+.f64 (pow.f64 (*.f64 a (*.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))) 2) (pow.f64 (*.f64 b 1) 2))
24.0b
(+.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.5b
(+.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))
26.5b
(+.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))
32.4b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (cbrt.f64 (pow.f64 (*.f64 angle 1/180) 3))))) 2) (pow.f64 (*.f64 b 1) 2))
36.3b
(+.f64 (fma.f64 1/32400 (*.f64 angle (*.f64 (*.f64 angle (*.f64 a a)) (pow.f64 (PI.f64) 2))) (*.f64 (*.f64 a a) (fma.f64 (pow.f64 angle 6) (*.f64 1/765275040000000 (pow.f64 (PI.f64) 6)) (*.f64 (pow.f64 angle 4) (*.f64 (pow.f64 (PI.f64) 4) -1/3149280000))))) (pow.f64 (*.f64 b 1) 2))
26.4b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (expm1.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2))
33.0b
(+.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))
32.1b
(+.f64 (pow.f64 (pow.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 3) 1/3) 2) (pow.f64 (*.f64 b 1) 2))
36.5b
(+.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 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2))
32.9b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (-.f64 (exp.f64 (log1p.f64 (*.f64 angle 1/180))) 1)))) 2) (pow.f64 (*.f64 b 1) 2))
28.1b
(+.f64 (*.f64 (pow.f64 (PI.f64) 2) (*.f64 1/32400 (*.f64 (*.f64 angle a) (*.f64 angle a)))) (pow.f64 (*.f64 b 1) 2))
38.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (pow.f64 (pow.f64 (*.f64 angle (*.f64 1/180 (PI.f64))) 3) 1/3))) 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.9b
(+.f64 (exp.f64 (log.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) 2))) (pow.f64 (*.f64 b 1) 2))
23.6b
(+.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))
Compiler

Compiled 4060 to 3202 computations (21.1% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series41.0ms (0.3%)

Counts
4 → 72
Calls

4 calls:

22.0ms
(pow.f64 (*.f64 a (log1p.f64 (expm1.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2)
13.0ms
(*.f64 a (log1p.f64 (expm1.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))))
3.0ms
(log1p.f64 (expm1.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))
3.0ms
(sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))

rewrite50.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
555×log-prod_binary64
519×prod-diff_binary64
204×expm1-udef_binary64
204×log1p-udef_binary64
184×log-pow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01349
124749
2275449
Stop Event
node limit
Counts
4 → 93
Calls

4 calls:

49.0ms
(*.f64 a (log1p.f64 (expm1.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))))
49.0ms
(log1p.f64 (expm1.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))
49.0ms
(pow.f64 (*.f64 a (log1p.f64 (expm1.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2)
49.0ms
(sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))

simplify45.0ms (0.3%)

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
01051402
13181386
210751354
332201344
Stop Event
node limit
Counts
165 → 101

prune371.0ms (2.7%)

Pruning

39 alts after pruning (38 fresh and 1 done)

PrunedKeptTotal
New947101
Fresh53136
Picked011
Done000
Total9939138
Error
21.3b
Counts
138 → 39
Alt Table
StatusErrorProgram
22.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (pow.f64 (cbrt.f64 (*.f64 angle 1/180)) 3)))) 2) (pow.f64 (*.f64 b 1) 2))
22.3b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) 2) (pow.f64 (*.f64 b 1) 2))
42.2b
(+.f64 (exp.f64 (*.f64 2 (log.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) a)))) (pow.f64 (*.f64 b 1) 2))
22.5b
(+.f64 (pow.f64 (*.f64 a (log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))) 3)))) 2) (pow.f64 (*.f64 b 1) 2))
28.0b
(+.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))
26.2b
(+.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))
22.4b
(+.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) a)) 2) (*.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) a)) (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) a))) (pow.f64 (*.f64 b 1) 2))
22.3b
(+.f64 (pow.f64 (*.f64 a (log1p.f64 (expm1.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2) (pow.f64 (*.f64 b 1) 2))
31.4b
(+.f64 (pow.f64 (*.f64 a (log1p.f64 (expm1.f64 (-.f64 (log.f64 (-.f64 1 (pow.f64 (expm1.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))) 2))) (log.f64 (-.f64 1 (expm1.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))))))))) 2) (pow.f64 (*.f64 b 1) 2))
28.1b
(+.f64 (*.f64 (pow.f64 (PI.f64) 2) (*.f64 1/32400 (*.f64 (*.f64 angle a) (*.f64 angle a)))) (pow.f64 (*.f64 b 1) 2))
29.0b
(+.f64 (pow.f64 (*.f64 a (log1p.f64 (expm1.f64 (-.f64 (log1p.f64 (pow.f64 (expm1.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))) 3)) (log.f64 (+.f64 1 (-.f64 (pow.f64 (expm1.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))) 2) (expm1.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))))))))) 2) (pow.f64 (*.f64 b 1) 2))
40.4b
(+.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))
26.7b
(+.f64 (pow.f64 (expm1.f64 (log1p.f64 (*.f64 a (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2) (pow.f64 (*.f64 b 1) 2))
29.0b
(+.f64 (pow.f64 (*.f64 a (log1p.f64 (expm1.f64 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))))) (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))))))))) 2) (pow.f64 (*.f64 b 1) 2))
38.2b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (pow.f64 (pow.f64 (*.f64 angle (*.f64 1/180 (PI.f64))) 3) 1/3))) 2) (pow.f64 (*.f64 b 1) 2))
22.6b
(+.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))
22.6b
(+.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))
22.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) 2) (pow.f64 (*.f64 b 1) 2))
29.0b
(+.f64 (pow.f64 (*.f64 a (log1p.f64 (expm1.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))) (cbrt.f64 (exp.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))))) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))))))))) 2) (pow.f64 (*.f64 b 1) 2))
26.7b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) 2) (pow.f64 (*.f64 b 1) 2))
40.1b
(+.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.5b
(+.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.5b
(+.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))
41.7b
(+.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))
34.1b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (pow.f64 (pow.f64 (*.f64 angle (*.f64 1/180 (PI.f64))) 3) 1/3))) 2))
22.6b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2))
34.4b
(+.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (PI.f64) 2) (*.f64 angle (*.f64 angle 1/32400)))) (pow.f64 (*.f64 b 1) 2))
24.0b
(+.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.4b
(+.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 a (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))) 2) (*.f64 (cbrt.f64 (*.f64 a (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle))))) (*.f64 a (sin.f64 (*.f64 1/180 (*.f64 (PI.f64) angle)))))) (pow.f64 (*.f64 b 1) 2))
36.3b
(+.f64 (fma.f64 1/32400 (*.f64 angle (*.f64 (*.f64 angle (*.f64 a a)) (pow.f64 (PI.f64) 2))) (*.f64 (*.f64 a a) (fma.f64 (pow.f64 angle 6) (*.f64 1/765275040000000 (pow.f64 (PI.f64) 6)) (*.f64 (pow.f64 angle 4) (*.f64 (pow.f64 (PI.f64) 4) -1/3149280000))))) (pow.f64 (*.f64 b 1) 2))
32.4b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (cbrt.f64 (pow.f64 (*.f64 angle 1/180) 3))))) 2) (pow.f64 (*.f64 b 1) 2))
26.4b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) 2) (pow.f64 (*.f64 b (cos.f64 (expm1.f64 (log1p.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2))
33.0b
(+.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))
32.1b
(+.f64 (pow.f64 (pow.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 3) 1/3) 2) (pow.f64 (*.f64 b 1) 2))
32.9b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (-.f64 (exp.f64 (log1p.f64 (*.f64 angle 1/180))) 1)))) 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.9b
(+.f64 (exp.f64 (log.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) a) 2))) (pow.f64 (*.f64 b 1) 2))
23.6b
(+.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.5b
(+.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))
Compiler

Compiled 3667 to 2755 computations (24.9% saved)

regimes1.2s (8.9%)

Accuracy

Total 1.3b remaining (6.2%)

Threshold costs 0b (0%)

Counts
160 → 1
Compiler

Compiled 24832 to 20298 computations (18.3% 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
01622
12422
Stop Event
saturated

end682.0ms (5%)

Compiler

Compiled 1134 to 925 computations (18.4% saved)

Profiling

Loading profile data...