Details

Time bar (total: 13.3s)

analyze2.1s (15.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
25%74.9%0.1%6
25%74.9%0.1%7
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)

sample7.7s (58%)

Results
2.2s1682×body1024valid
1.8s1395×body1024invalid
1.2s5166×body128valid
725.0ms801×body512valid
638.0ms699×body512invalid
412.0ms197×body2048valid
205.0ms407×body256valid
205.0ms364×body256invalid
164.0ms704×body128invalid
17.0msbody4096valid
Compiler

Compiled 74 to 59 computations (20.3% saved)

simplify51.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01634
13034
27134
314134
425734
565034
6102034
7184334
8206034
9229834
10260834
11305834
12365034
13435934
Stop Event
node limit
Counts
1 → 1

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
20.0b
Counts
2 → 1
Alt Table
StatusErrorProgram
20.0b
(+.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)

localize12.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.6b
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
23.9b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

series31.0ms (0.2%)

Counts
4 → 60
Calls

4 calls:

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

rewrite54.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
2292344
Stop Event
node limit
Counts
4 → 95
Calls

4 calls:

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

simplify43.0ms (0.3%)

Algorithm
egg-herbie
Rules
635×unswap-sqr_binary64
579×fma-neg_binary64
404×distribute-rgt-neg-in_binary64
395×distribute-lft-neg-in_binary64
296×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0831058
12441050
28861028
326801020
Stop Event
node limit
Counts
155 → 124

prune373.0ms (2.8%)

Pruning

33 alts after pruning (33 fresh and 0 done)

PrunedKeptTotal
New11533148
Fresh000
Picked101
Done000
Total11633149
Error
18.7b
Counts
149 → 33
Alt Table
StatusErrorProgram
32.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (+.f64 (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))) 2))
28.8b
(+.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 1/180))) b) 2) 3)))
20.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 1/180))) b)) 2) (*.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b)) (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b))))
20.0b
(+.f64 (pow.f64 (*.f64 a (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
32.3b
(+.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 1/180))))) (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))) 2))
23.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) 2))
33.9b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (*.f64 (*.f64 b b) (fma.f64 (*.f64 (*.f64 angle angle) (pow.f64 (PI.f64) 2)) 1/32400 (*.f64 (pow.f64 (PI.f64) 4) (*.f64 (pow.f64 angle 4) -1/3149280000)))))
21.0b
(+.f64 (pow.f64 (*.f64 a (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
23.5b
(+.f64 (pow.f64 (*.f64 a (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) (sin.f64 1)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
33.0b
(+.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)))))
23.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.9b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (exp.f64 (log.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b) 2))))
20.0b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) 2) (pow.f64 (*.f64 b (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) (*.f64 (sqrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b)) (*.f64 (sqrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b)) (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b))))
26.2b
(+.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 1/180))) b)) 2) (cbrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b) 4))))
24.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (*.f64 b (*.f64 b (pow.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 2))))
38.7b
(+.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 1/180))) 2))) 2))
28.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)))
20.0b
(+.f64 (pow.f64 (*.f64 a (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 3)) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.1b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
23.9b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (cbrt.f64 (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 (*.f64 angle 1/180) 3))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.4b
(+.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 1/180))) 3))) 2))
20.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
32.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3) 1/3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.0b
(+.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))
20.3b
(+.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 1/180)))) 3)) 2))
19.9b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2))
19.9b
(+.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))
35.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 1/180))))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) (sin.f64 1)))) 2))
39.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3) 1/3))) 2))
20.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (/.f64 1 (/.f64 180 (*.f64 (PI.f64) angle))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (/.f64 (PI.f64) (/.f64 180 angle)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
Compiler

Compiled 6124 to 4621 computations (24.5% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (PI.f64) (/.f64 angle 180))
0.4b
(*.f64 1/180 (*.f64 angle (PI.f64)))
23.6b
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
23.6b
(sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))

series6.0ms (0%)

Counts
2 → 4
Calls

2 calls:

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

rewrite36.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
598×log1p-expm1-u_binary64
598×expm1-log1p-u_binary64
343×log-prod_binary64
324×prod-diff_binary64
126×expm1-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0718
114018
2163118
Stop Event
node limit
Counts
2 → 38
Calls

2 calls:

36.0ms
(*.f64 1/180 (*.f64 angle (PI.f64)))
36.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))

simplify27.0ms (0.2%)

Algorithm
egg-herbie
Rules
605×cancel-sign-sub-inv_binary64
605×fma-def_binary64
402×unswap-sqr_binary64
380×fma-neg_binary64
312×*-commutative_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
029122
191118
2301116
31362116
44390116
Stop Event
node limit
Counts
42 → 46

prune398.0ms (3%)

Pruning

32 alts after pruning (32 fresh and 0 done)

PrunedKeptTotal
New992101
Fresh23032
Picked101
Done000
Total10232134
Error
18.7b
Counts
134 → 32
Alt Table
StatusErrorProgram
32.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (+.f64 (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))) 2))
28.8b
(+.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 1/180))) b) 2) 3)))
20.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 1/180))) b)) 2) (*.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b)) (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b))))
20.0b
(+.f64 (pow.f64 (*.f64 a (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
32.3b
(+.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 1/180))))) (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))) 2))
19.9b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2))
23.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) 2))
33.9b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (*.f64 (*.f64 b b) (fma.f64 (*.f64 (*.f64 angle angle) (pow.f64 (PI.f64) 2)) 1/32400 (*.f64 (pow.f64 (PI.f64) 4) (*.f64 (pow.f64 angle 4) -1/3149280000)))))
21.0b
(+.f64 (pow.f64 (*.f64 a (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
23.5b
(+.f64 (pow.f64 (*.f64 a (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) (sin.f64 1)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
33.0b
(+.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)))))
23.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.9b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (exp.f64 (log.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b) 2))))
20.0b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) 2) (pow.f64 (*.f64 b (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) (*.f64 (sqrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b)) (*.f64 (sqrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b)) (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b))))
26.2b
(+.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 1/180))) b)) 2) (cbrt.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b) 4))))
24.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (*.f64 b (*.f64 b (pow.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 2))))
38.7b
(+.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 1/180))) 2))) 2))
28.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)))
19.9b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2))
20.0b
(+.f64 (pow.f64 (*.f64 a (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 3)) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.1b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
23.9b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (cbrt.f64 (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 (*.f64 angle 1/180) 3))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.4b
(+.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 1/180))) 3))) 2))
20.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.0b
(+.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))
20.3b
(+.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 1/180)))) 3)) 2))
19.9b
(+.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))
35.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 1/180))))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) (sin.f64 1)))) 2))
32.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3) 1/3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
39.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3) 1/3))) 2))
20.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (/.f64 1 (/.f64 180 (*.f64 (PI.f64) angle))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
Compiler

Compiled 4681 to 3529 computations (24.6% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (*.f64 b (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2)
0.4b
(*.f64 1/180 (*.f64 angle (PI.f64)))
23.5b
(cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))
23.6b
(sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))

series26.0ms (0.2%)

Counts
2 → 36
Calls

2 calls:

23.0ms
(pow.f64 (*.f64 b (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2)
3.0ms
(cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))

rewrite47.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
676×prod-diff_binary64
227×expm1-udef_binary64
227×log1p-udef_binary64
138×add-sqr-sqrt_binary64
131×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01426
128626
2334126
Stop Event
node limit
Counts
2 → 42
Calls

2 calls:

46.0ms
(pow.f64 (*.f64 b (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2)
46.0ms
(cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))

simplify39.0ms (0.3%)

Algorithm
egg-herbie
Rules
995×fma-neg_binary64
638×associate-*r*_binary64
619×associate-*l*_binary64
199×fma-def_binary64
166×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
060760
1167756
2602736
33863734
Stop Event
node limit
Counts
78 → 61

prune427.0ms (3.2%)

Pruning

35 alts after pruning (35 fresh and 0 done)

PrunedKeptTotal
New998107
Fresh42731
Picked101
Done000
Total10435139
Error
18.7b
Counts
139 → 35
Alt Table
StatusErrorProgram
20.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 1/180))) b)) 2) (*.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b)) (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b))))
20.0b
(+.f64 (pow.f64 (*.f64 a (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
32.3b
(+.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 1/180))))) (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))) 2))
23.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) 2))
33.9b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (*.f64 (*.f64 b b) (fma.f64 (*.f64 (*.f64 angle angle) (pow.f64 (PI.f64) 2)) 1/32400 (*.f64 (pow.f64 (PI.f64) 4) (*.f64 (pow.f64 angle 4) -1/3149280000)))))
20.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 2) (expm1.f64 (log1p.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 2))))
26.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 2) (*.f64 (pow.f64 (cbrt.f64 (*.f64 b (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) 2) (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 4))))
21.0b
(+.f64 (pow.f64 (*.f64 a (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
28.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 2) (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 2)))
23.5b
(+.f64 (pow.f64 (*.f64 a (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) (sin.f64 1)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
23.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 2) (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) (*.f64 b (*.f64 b (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))))
23.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.9b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (exp.f64 (log.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b) 2))))
20.0b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) 2) (pow.f64 (*.f64 b (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) (*.f64 (sqrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b)) (*.f64 (sqrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b)) (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b))))
26.1b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 2) (sqrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 4)))
24.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (*.f64 b (*.f64 b (pow.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 2))))
38.7b
(+.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 1/180))) 2))) 2))
19.9b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2))
20.0b
(+.f64 (pow.f64 (*.f64 a (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 3)) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.1b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
23.9b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (cbrt.f64 (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 (*.f64 angle 1/180) 3))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
19.9b
(+.f64 (pow.f64 (*.f64 a (log.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2))
20.4b
(+.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 1/180))) 3))) 2))
20.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
19.9b
(+.f64 (pow.f64 (*.f64 a (pow.f64 (cbrt.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 3)) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2))
32.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3) 1/3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.0b
(+.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))
20.3b
(+.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 1/180)))) 3)) 2))
30.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 2) (*.f64 angle (*.f64 (*.f64 angle (pow.f64 (PI.f64) 2)) (*.f64 (*.f64 b b) 1/32400))))
19.9b
(+.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))
35.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 1/180))))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) (sin.f64 1)))) 2))
32.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (+.f64 (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))) 2))
39.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3) 1/3))) 2))
20.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (/.f64 1 (/.f64 180 (*.f64 (PI.f64) angle))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
Compiler

Compiled 5181 to 3903 computations (24.7% saved)

localize20.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (*.f64 b (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2)
0.4b
(*.f64 1/180 (*.f64 angle (PI.f64)))
23.5b
(cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))
23.6b
(sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))

prune417.0ms (3.1%)

Pruning

34 alts after pruning (34 fresh and 0 done)

PrunedKeptTotal
New1043107
Fresh33134
Picked101
Done000
Total10834142
Error
18.7b
Counts
142 → 34
Alt Table
StatusErrorProgram
20.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 1/180))) b)) 2) (*.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b)) (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b))))
20.0b
(+.f64 (pow.f64 (*.f64 a (+.f64 (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (log.f64 (sqrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
32.3b
(+.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 1/180))))) (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (log.f64 (cbrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))) 2))
23.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) 2))
33.9b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (*.f64 (*.f64 b b) (fma.f64 (*.f64 (*.f64 angle angle) (pow.f64 (PI.f64) 2)) 1/32400 (*.f64 (pow.f64 (PI.f64) 4) (*.f64 (pow.f64 angle 4) -1/3149280000)))))
26.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 2) (*.f64 (pow.f64 (cbrt.f64 (*.f64 b (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))))) 2) (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 4))))
21.0b
(+.f64 (pow.f64 (*.f64 a (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
28.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 2) (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 2)))
23.5b
(+.f64 (pow.f64 (*.f64 a (+.f64 (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) (cos.f64 1)) (*.f64 (sin.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) (sin.f64 1)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
23.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 2) (*.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) (*.f64 b (*.f64 b (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))))
23.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.9b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (exp.f64 (log.f64 (pow.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b) 2))))
20.0b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) 2) (pow.f64 (*.f64 b (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) (*.f64 (sqrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b)) (*.f64 (sqrt.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b)) (*.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) b))))
24.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (*.f64 b (*.f64 b (pow.f64 (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64)))) 2))))
19.9b
(+.f64 (pow.f64 (*.f64 a (log.f64 (exp.f64 (pow.f64 (cbrt.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 3)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2))
38.7b
(+.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 1/180))) 2))) 2))
19.9b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2))
26.1b
(+.f64 (pow.f64 (*.f64 a (log.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2) (sqrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 4)))
20.0b
(+.f64 (pow.f64 (*.f64 a (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))) 3)) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.1b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (pow.f64 (cbrt.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
23.9b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (cbrt.f64 (*.f64 (pow.f64 (PI.f64) 3) (pow.f64 (*.f64 angle 1/180) 3))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.4b
(+.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 1/180))) 3))) 2))
20.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.0b
(+.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))
20.3b
(+.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 1/180)))) 3)) 2))
30.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 2) (*.f64 angle (*.f64 (*.f64 angle (pow.f64 (PI.f64) 2)) (*.f64 (*.f64 b b) 1/32400))))
19.9b
(+.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))
35.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 1/180))))) (cos.f64 1)) (*.f64 (cos.f64 (exp.f64 (log1p.f64 (*.f64 (PI.f64) (*.f64 angle 1/180))))) (sin.f64 1)))) 2))
32.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (+.f64 (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))) (log.f64 (sqrt.f64 (exp.f64 (sin.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)))))))) 2))
32.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3) 1/3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
39.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (pow.f64 (pow.f64 (*.f64 (PI.f64) (*.f64 angle 1/180)) 3) 1/3))) 2))
20.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (/.f64 1 (/.f64 180 (*.f64 (PI.f64) angle))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.5b
(+.f64 (pow.f64 (*.f64 a (log.f64 (exp.f64 (cos.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))))) 2) (expm1.f64 (log1p.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 angle (*.f64 1/180 (PI.f64))))) 2))))
Compiler

Compiled 4312 to 3254 computations (24.5% saved)

regimes821.0ms (6.2%)

Accuracy

Total 1.1b remaining (5.3%)

Threshold costs 0b (0%)

Counts
106 → 1
Compiler

Compiled 18250 to 14574 computations (20.1% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02038
12738
Stop Event
saturated

end668.0ms (5%)

Compiler

Compiled 1095 to 875 computations (20.1% saved)

Profiling

Loading profile data...