Details

Time bar (total: 14.8s)

analyze2.0s (13.8%)

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

Results
2.2s1663×body1024valid
1.8s1386×body1024invalid
1.2s5180×body128valid
719.0ms821×body512valid
630.0ms702×body512invalid
344.0ms181×body2048valid
208.0ms407×body256valid
189.0ms345×body256invalid
159.0ms668×body128invalid
23.0msbody4096valid
Compiler

Compiled 74 to 59 computations (20.3% saved)

simplify130.0ms (0.9%)

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

Useful iterations: 0 (0.0ms)

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

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
20.5b
Counts
2 → 1
Alt Table
StatusErrorProgram
20.5b
(+.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
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
0.4b
(*.f64 (PI.f64) (/.f64 angle 180))
26.4b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
27.1b
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

series29.0ms (0.2%)

Counts
4 → 60
Calls

4 calls:

18.0ms
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
4.0ms
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
4.0ms
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
3.0ms
(*.f64 (PI.f64) (/.f64 angle 180))

rewrite16.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
21×add-sqr-sqrt_binary64
16×associate-*r*_binary64
14×*-un-lft-identity_binary64
14×add-cube-cbrt_binary64
11×add-cbrt-cube_binary64
Counts
4 → 72
Calls

4 calls:

6.0ms
(*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))
5.0ms
(*.f64 (PI.f64) (/.f64 angle 180))
1.0ms
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
1.0ms
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

simplify117.0ms (0.8%)

Algorithm
egg-herbie
Rules
587×times-frac_binary64
540×fma-neg_binary64
390×*-commutative_binary64
315×unswap-sqr_binary64
306×fma-def_binary64
Counts
132 → 111
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
01851974
14301822
214141804
331481784
447701784
549951782
650001782

prune381.0ms (2.6%)

Pruning

31 alts after pruning (31 fresh and 0 done)

PrunedKeptTotal
New12231153
Fresh000
Picked101
Done000
Total12331154
Error
19.2b
Counts
154 → 31
Alt Table
StatusErrorProgram
24.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 180)))))) 2))
27.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 1/180 (*.f64 angle (*.f64 (PI.f64) b))) 2))
41.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 (sqrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (sqrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (sqrt.f64 180))) (/.f64 (cbrt.f64 angle) (sqrt.f64 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (*.f64 (*.f64 (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
30.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (fma.f64 (pow.f64 (*.f64 angle (PI.f64)) 3) -1/34992000 (fma.f64 1/180 (*.f64 angle (PI.f64)) (*.f64 1/22674816000000 (*.f64 (pow.f64 angle 5) (pow.f64 (PI.f64) 5)))))) 2))
20.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cbrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 (PI.f64) (sqrt.f64 180)) (/.f64 angle (sqrt.f64 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
25.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (*.f64 (cbrt.f64 180) (cbrt.f64 180)))) (/.f64 (cbrt.f64 angle) (cbrt.f64 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
41.4b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (exp.f64 (log.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (*.f64 (cbrt.f64 180) (cbrt.f64 180)))) (/.f64 (cbrt.f64 angle) (cbrt.f64 180))))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 (/.f64 angle 180)) (cbrt.f64 (/.f64 angle 180)))) (cbrt.f64 (/.f64 angle 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
25.6b
(+.f64 (pow.f64 (*.f64 a (*.f64 (sqrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 (/.f64 angle 180)) (cbrt.f64 (/.f64 angle 180)))) (cbrt.f64 (/.f64 angle 180))))) 2))
41.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (sqrt.f64 (PI.f64)) (sqrt.f64 (/.f64 angle 180))) (*.f64 (sqrt.f64 (PI.f64)) (sqrt.f64 (/.f64 angle 180)))))) 2))
20.5b
(+.f64 (pow.f64 (*.f64 a (*.f64 (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
41.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (exp.f64 (+.f64 (log.f64 (PI.f64)) (-.f64 (log.f64 angle) (log.f64 180)))))) 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 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
44.4b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 (*.f64 b (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 angle) (cbrt.f64 angle))) (/.f64 (cbrt.f64 angle) 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (cbrt.f64 (PI.f64)) (cbrt.f64 (PI.f64))) (*.f64 (cbrt.f64 (PI.f64)) (/.f64 angle 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 angle) (cbrt.f64 angle))) (/.f64 (cbrt.f64 angle) 180)))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (cbrt.f64 (PI.f64)) (cbrt.f64 (PI.f64))) (*.f64 (cbrt.f64 (PI.f64)) (/.f64 angle 180))))) 2))
24.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.5b
(+.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))
20.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
41.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (sqrt.f64 (/.f64 angle 180))) (sqrt.f64 (/.f64 angle 180))))) 2))
20.5b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (sqrt.f64 (PI.f64)) (*.f64 (sqrt.f64 (PI.f64)) (/.f64 angle 180))))) 2))
Compiler

Compiled 6259 to 4546 computations (27.4% saved)

localize15.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series7.0ms (0%)

Counts
2 → 4
Calls

2 calls:

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

rewrite6.0ms (0%)

Algorithm
rewrite-expression-head
Rules
add-cbrt-cube_binary64
add-exp-log_binary64
pow1_binary64
associate-*l*_binary64
cbrt-unprod_binary64
Counts
2 → 29
Calls

2 calls:

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

simplify52.0ms (0.4%)

Algorithm
egg-herbie
Rules
732×fma-def_binary64
727×distribute-rgt-neg-in_binary64
545×associate-*l*_binary64
436×fma-neg_binary64
435×associate-*r*_binary64
Counts
33 → 37
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
073501
1168425
2526423
31833423
43839423
55167423

prune392.0ms (2.7%)

Pruning

32 alts after pruning (32 fresh and 0 done)

PrunedKeptTotal
New92597
Fresh32730
Picked101
Done000
Total9632128
Error
19.2b
Counts
128 → 32
Alt Table
StatusErrorProgram
24.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 180)))))) 2))
27.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 1/180 (*.f64 angle (*.f64 (PI.f64) b))) 2))
41.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 (sqrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (sqrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
30.1b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (log.f64 (exp.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) 2))
30.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (fma.f64 (pow.f64 (*.f64 angle (PI.f64)) 3) -1/34992000 (fma.f64 1/180 (*.f64 angle (PI.f64)) (*.f64 1/22674816000000 (*.f64 (pow.f64 angle 5) (pow.f64 (PI.f64) 5)))))) 2))
20.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cbrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 (PI.f64) (sqrt.f64 180)) (/.f64 angle (sqrt.f64 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
25.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (*.f64 (cbrt.f64 180) (cbrt.f64 180)))) (/.f64 (cbrt.f64 angle) (cbrt.f64 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
41.4b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (exp.f64 (log.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (*.f64 (cbrt.f64 180) (cbrt.f64 180)))) (/.f64 (cbrt.f64 angle) (cbrt.f64 180))))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 (/.f64 angle 180)) (cbrt.f64 (/.f64 angle 180)))) (cbrt.f64 (/.f64 angle 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
25.6b
(+.f64 (pow.f64 (*.f64 a (*.f64 (sqrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 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) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (cbrt.f64 1/180) (cbrt.f64 1/180)) (*.f64 (cbrt.f64 1/180) (*.f64 angle (PI.f64)))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 (/.f64 angle 180)) (cbrt.f64 (/.f64 angle 180)))) (cbrt.f64 (/.f64 angle 180))))) 2))
20.5b
(+.f64 (pow.f64 (*.f64 a (*.f64 (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (cbrt.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (cbrt.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (sqrt.f64 (PI.f64)) (*.f64 (sqrt.f64 (PI.f64)) (/.f64 angle 180))))) 2))
41.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (exp.f64 (+.f64 (log.f64 (PI.f64)) (-.f64 (log.f64 angle) (log.f64 180)))))) 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 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
44.4b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 (*.f64 b (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 angle) (cbrt.f64 angle))) (/.f64 (cbrt.f64 angle) 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (cbrt.f64 (PI.f64)) (cbrt.f64 (PI.f64))) (*.f64 (cbrt.f64 (PI.f64)) (/.f64 angle 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (*.f64 (*.f64 (cbrt.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (cbrt.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cbrt.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (cbrt.f64 (PI.f64)) (cbrt.f64 (PI.f64))) (*.f64 (cbrt.f64 (PI.f64)) (/.f64 angle 180))))) 2))
20.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (sqrt.f64 180))) (/.f64 (cbrt.f64 angle) (sqrt.f64 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 angle) (cbrt.f64 angle))) (/.f64 (cbrt.f64 angle) 180)))) 2))
24.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (expm1.f64 (log1p.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
41.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (sqrt.f64 (/.f64 angle 180))) (sqrt.f64 (/.f64 angle 180))))) 2))
20.5b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
Compiler

Compiled 4731 to 3410 computations (27.9% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(cbrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))
0.4b
(*.f64 (PI.f64) (/.f64 angle 180))
26.4b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
27.1b
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

series4.0ms (0%)

Counts
1 → 12
Calls

1 calls:

4.0ms
(cbrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))

rewrite3.0ms (0%)

Algorithm
rewrite-expression-head
Rules
12×cbrt-prod_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
cube-prod_binary64
Counts
1 → 23
Calls

1 calls:

2.0ms
(cbrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))

simplify72.0ms (0.5%)

Algorithm
egg-herbie
Rules
861×distribute-rgt-neg-in_binary64
699×distribute-lft-neg-in_binary64
489×fma-def_binary64
478×*-commutative_binary64
475×cancel-sign-sub-inv_binary64
Counts
35 → 37
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
067604
1136562
2365558
31273556
43297538
54878538
64973538

prune634.0ms (4.3%)

Pruning

36 alts after pruning (36 fresh and 0 done)

PrunedKeptTotal
New14512157
Fresh72431
Picked101
Done000
Total15336189
Error
19.2b
Counts
189 → 36
Alt Table
StatusErrorProgram
24.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 180)))))) 2))
27.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 1/180 (*.f64 angle (*.f64 (PI.f64) b))) 2))
25.7b
(+.f64 (pow.f64 (*.f64 a (*.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)) (cbrt.f64 (pow.f64 (sqrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 angle) (cbrt.f64 angle))) (/.f64 (cbrt.f64 angle) 180))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
41.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 (sqrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (sqrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
30.1b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (log.f64 (exp.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) 2))
30.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (fma.f64 (pow.f64 (*.f64 angle (PI.f64)) 3) -1/34992000 (fma.f64 1/180 (*.f64 angle (PI.f64)) (*.f64 1/22674816000000 (*.f64 (pow.f64 angle 5) (pow.f64 (PI.f64) 5)))))) 2))
25.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (*.f64 (cbrt.f64 180) (cbrt.f64 180)))) (/.f64 (cbrt.f64 angle) (cbrt.f64 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
41.6b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (exp.f64 (+.f64 (log.f64 (PI.f64)) (log.f64 (/.f64 angle 180))))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.7b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 (cbrt.f64 (PI.f64)) (cbrt.f64 (PI.f64))) (*.f64 (/.f64 angle 180) (cbrt.f64 (PI.f64))))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
41.4b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (exp.f64 (log.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (*.f64 (cbrt.f64 180) (cbrt.f64 180)))) (/.f64 (cbrt.f64 angle) (cbrt.f64 180))))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 (/.f64 angle 180)) (cbrt.f64 (/.f64 angle 180)))) (cbrt.f64 (/.f64 angle 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.5b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.9b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (cbrt.f64 1/180) (cbrt.f64 1/180)) (*.f64 (cbrt.f64 1/180) (*.f64 angle (PI.f64)))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 (/.f64 angle 180)) (cbrt.f64 (/.f64 angle 180)))) (cbrt.f64 (/.f64 angle 180))))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 (/.f64 angle 180)) (cbrt.f64 (/.f64 angle 180)))) (cbrt.f64 (/.f64 angle 180)))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (/.f64 angle (sqrt.f64 180)))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.5b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (*.f64 (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (*.f64 (cbrt.f64 180) (cbrt.f64 180)))) (/.f64 (cbrt.f64 angle) (cbrt.f64 180)))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (/.f64 (PI.f64) (sqrt.f64 180)) (/.f64 angle (sqrt.f64 180)))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (cbrt.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (cbrt.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (sqrt.f64 (PI.f64)) (*.f64 (sqrt.f64 (PI.f64)) (/.f64 angle 180))))) 2))
20.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (*.f64 (*.f64 (cbrt.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (cbrt.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cbrt.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (cbrt.f64 (PI.f64)) (cbrt.f64 (PI.f64))) (*.f64 (cbrt.f64 (PI.f64)) (/.f64 angle 180))))) 2))
20.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (sqrt.f64 180))) (/.f64 (cbrt.f64 angle) (sqrt.f64 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 angle) (cbrt.f64 angle))) (/.f64 (cbrt.f64 angle) 180)))) 2))
20.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cbrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.5b
(+.f64 (pow.f64 (*.f64 a (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) (cbrt.f64 (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3)))) (cbrt.f64 (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
41.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (sqrt.f64 (/.f64 angle 180))) (sqrt.f64 (/.f64 angle 180))))) 2))
41.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (exp.f64 (+.f64 (log.f64 (PI.f64)) (-.f64 (log.f64 angle) (log.f64 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
44.4b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 (*.f64 b (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 2))
Compiler

Compiled 7259 to 5478 computations (24.5% saved)

localize19.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))
0.4b
(*.f64 (PI.f64) (/.f64 angle 180))
26.4b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
27.1b
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

series4.0ms (0%)

Counts
1 → 12
Calls

1 calls:

4.0ms
(log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))

rewrite2.0ms (0%)

Algorithm
rewrite-expression-head
Rules
log-pow_binary64
log-prod_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
exp-prod_binary64
Counts
1 → 17
Calls

1 calls:

2.0ms
(log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))

simplify84.0ms (0.6%)

Algorithm
egg-herbie
Rules
861×distribute-rgt-neg-in_binary64
699×distribute-lft-neg-in_binary64
488×fma-def_binary64
475×cancel-sign-sub-inv_binary64
378×*-commutative_binary64
Counts
29 → 36
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
063458
1118424
2280420
31029418
42836412
54466412
64973412
74963412

prune702.0ms (4.7%)

Pruning

38 alts after pruning (38 fresh and 0 done)

PrunedKeptTotal
New1488156
Fresh53035
Picked101
Done000
Total15438192
Error
19.2b
Counts
192 → 38
Alt Table
StatusErrorProgram
24.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 180)))))) 2))
27.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 1/180 (*.f64 angle (*.f64 (PI.f64) b))) 2))
41.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 (sqrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (sqrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
30.1b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (log.f64 (exp.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) 2))
30.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (fma.f64 (pow.f64 (*.f64 angle (PI.f64)) 3) -1/34992000 (fma.f64 1/180 (*.f64 angle (PI.f64)) (*.f64 1/22674816000000 (*.f64 (pow.f64 angle 5) (pow.f64 (PI.f64) 5)))))) 2))
20.5b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (log.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (/.f64 (*.f64 angle (PI.f64)) 180))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (log.f64 (exp.f64 (cos.f64 (*.f64 (/.f64 (PI.f64) (sqrt.f64 180)) (/.f64 angle (sqrt.f64 180)))))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
25.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 3)) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (*.f64 (cbrt.f64 180) (cbrt.f64 180)))) (/.f64 (cbrt.f64 angle) (cbrt.f64 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
41.6b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (exp.f64 (+.f64 (log.f64 (PI.f64)) (log.f64 (/.f64 angle 180))))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.7b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 (cbrt.f64 (PI.f64)) (cbrt.f64 (PI.f64))) (*.f64 (/.f64 angle 180) (cbrt.f64 (PI.f64))))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
41.4b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (exp.f64 (log.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (*.f64 (cbrt.f64 180) (cbrt.f64 180)))) (/.f64 (cbrt.f64 angle) (cbrt.f64 180))))) 2))
41.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (sqrt.f64 (/.f64 angle 180))) (sqrt.f64 (/.f64 angle 180))))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (log.f64 (exp.f64 (cos.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 angle) (cbrt.f64 angle))) (/.f64 (cbrt.f64 angle) 180))))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (log.f64 (exp.f64 (cos.f64 (/.f64 (*.f64 angle (PI.f64)) 180)))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 (/.f64 angle 180)) (cbrt.f64 (/.f64 angle 180)))) (cbrt.f64 (/.f64 angle 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
41.7b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (log.f64 (exp.f64 (cos.f64 (*.f64 (*.f64 (PI.f64) (sqrt.f64 angle)) (/.f64 (sqrt.f64 angle) 180))))) 3))) 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) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (cbrt.f64 1/180) (cbrt.f64 1/180)) (*.f64 (cbrt.f64 1/180) (*.f64 angle (PI.f64)))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 (/.f64 angle 180)) (cbrt.f64 (/.f64 angle 180)))) (cbrt.f64 (/.f64 angle 180))))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 (/.f64 angle 180)) (cbrt.f64 (/.f64 angle 180)))) (cbrt.f64 (/.f64 angle 180)))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (*.f64 (cbrt.f64 180) (cbrt.f64 180)))) (/.f64 (cbrt.f64 angle) (cbrt.f64 180)))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.5b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (log.f64 (exp.f64 (*.f64 (*.f64 (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (cbrt.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (cbrt.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (sqrt.f64 (PI.f64)) (*.f64 (sqrt.f64 (PI.f64)) (/.f64 angle 180))))) 2))
41.6b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (log.f64 (exp.f64 (cos.f64 (exp.f64 (log.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
21.5b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) (log.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
41.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (exp.f64 (+.f64 (log.f64 (PI.f64)) (-.f64 (log.f64 angle) (log.f64 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (*.f64 (*.f64 (cbrt.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (cbrt.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (cbrt.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (cbrt.f64 (PI.f64)) (cbrt.f64 (PI.f64))) (*.f64 (cbrt.f64 (PI.f64)) (/.f64 angle 180))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 angle) (cbrt.f64 angle))) (/.f64 (cbrt.f64 angle) 180)))) 2))
20.6b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 angle) (cbrt.f64 angle))) (/.f64 (cbrt.f64 angle) 180))) 3))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
20.7b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cbrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) (cbrt.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
20.5b
(+.f64 (pow.f64 (*.f64 a (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))) (cbrt.f64 (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3)))) (cbrt.f64 (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) 3))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
44.4b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 (*.f64 b (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 2))
Compiler

Compiled 6377 to 4859 computations (23.8% saved)

regimes1.6s (10.8%)

Accuracy

Total 1.2b remaining (5.8%)

Threshold costs 0b (0%)

Counts
180 → 1
Compiler

Compiled 38735 to 30769 computations (20.6% saved)

simplify2.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01934
12534
22534

end793.0ms (5.4%)

Compiler

Compiled 1339 to 1052 computations (21.4% saved)

Profiling

Loading profile data...