Details

Time bar (total: 29.2s)

analyze3.9s (13.3%)

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)

sample570.0ms (2%)

Algorithm
intervals
Results
120.0ms53×body1024valid
97.0ms43×body1024invalid
46.0ms156×body128valid
35.0ms24×body512valid
29.0ms20×body512invalid
28.0msbody2048valid
12.0ms16×body256valid
8.0ms27×body128invalid
8.0msbody256invalid
Compiler

Compiled 52 to 42 computations (19.2% saved)

simplify152.0ms (0.5%)

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

prune5.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

localize28.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))
24.4b
(sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))
24.7b
(cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))

series78.0ms (0.3%)

Counts
4 → 60
Calls

4 calls:

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

rewrite29.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
18×add-sqr-sqrt_binary64
13×associate-*r*_binary64
13×*-un-lft-identity_binary64
13×add-cube-cbrt_binary64
12×add-exp-log_binary64
Counts
4 → 72
Calls

4 calls:

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

simplify163.0ms (0.6%)

Algorithm
egg-herbie
Rules
600×fma-neg_binary64
587×times-frac_binary64
403×*-commutative_binary64
321×fma-def_binary64
249×cancel-sign-sub-inv_binary64
Counts
132 → 110
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01962107
14482003
214471981
335801967
449221967
549391967

prune833.0ms (2.9%)

Pruning

35 alts after pruning (35 fresh and 0 done)

PrunedKeptTotal
New11735152
Fresh000
Picked101
Done000
Total11835153
Error
19.4b
Counts
153 → 35
Alt Table
StatusErrorProgram
21.5b
(+.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)) (sqrt.f64 180))) (/.f64 (cbrt.f64 angle) (sqrt.f64 180))))) 2))
30.7b
(+.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 (PI.f64) (/.f64 angle 180)))))) 2))
21.2b
(+.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))
21.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 (PI.f64) (*.f64 (cbrt.f64 180) (cbrt.f64 180))) (/.f64 angle (cbrt.f64 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
21.3b
(+.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 (PI.f64) (/.f64 angle 180))) (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cbrt.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
44.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (sqrt.f64 (/.f64 angle 180))) (sqrt.f64 (/.f64 angle 180))))) 2) (pow.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 (sin.f64 (cbrt.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3)))) 2))
21.2b
(+.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))
21.4b
(+.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))
44.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (exp.f64 (+.f64 (log.f64 (PI.f64)) (log.f64 (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
21.2b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (*.f64 (*.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
44.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (exp.f64 (+.f64 (log.f64 (PI.f64)) (log.f64 (/.f64 angle 180)))))) 2))
21.2b
(+.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))
21.2b
(+.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))
21.2b
(+.f64 (pow.f64 (*.f64 a (expm1.f64 (log1p.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
21.4b
(+.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))
33.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (*.f64 (*.f64 b b) (-.f64 (*.f64 (*.f64 (*.f64 angle angle) (pow.f64 (PI.f64) 2)) 1/32400) (*.f64 (*.f64 (pow.f64 angle 4) (pow.f64 (PI.f64) 4)) 1/3149280000))))
21.3b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)) (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))) (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))))
44.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (sqrt.f64 angle) (sqrt.f64 180))) (/.f64 (sqrt.f64 angle) (sqrt.f64 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
24.7b
(+.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))
33.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (-.f64 (*.f64 1/32400 (*.f64 (pow.f64 angle 2) (*.f64 (pow.f64 (PI.f64) 2) (pow.f64 b 2)))) (*.f64 1/3149280000 (*.f64 (pow.f64 angle 4) (*.f64 (pow.f64 (PI.f64) 4) (pow.f64 b 2))))))
22.1b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (exp.f64 (log.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))))
21.2b
(+.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))
21.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (/.f64 (*.f64 (PI.f64) angle) 180))) 2))
37.5b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (cbrt.f64 2) (cbrt.f64 2))) (cbrt.f64 2)))
21.4b
(+.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))
44.4b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (*.f64 (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (sqrt.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
27.4b
(+.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)))
21.2b
(+.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))
25.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))
21.1b
(+.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 1 (sqrt.f64 180))) (/.f64 angle (sqrt.f64 180))))) 2))
21.2b
(+.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))
44.3b
(+.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)) (/.f64 (sqrt.f64 angle) (sqrt.f64 180))) (*.f64 (sqrt.f64 (PI.f64)) (/.f64 (sqrt.f64 angle) (sqrt.f64 180)))))) 2))
27.6b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (fma.f64 angle (*.f64 (PI.f64) 1/180) (fma.f64 1/22674816000000 (*.f64 (pow.f64 angle 5) (pow.f64 (PI.f64) 5)) (fma.f64 (pow.f64 (PI.f64) 7) (*.f64 (pow.f64 angle 7) -1/30855889612800000000) (*.f64 (pow.f64 (*.f64 angle (PI.f64)) 3) -1/34992000))))) 2))
Compiler

Compiled 6506 to 4780 computations (26.5% saved)

localize22.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series31.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

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

rewrite9.0ms (0%)

Algorithm
rewrite-expression-head
Rules
add-sqr-sqrt_binary64
associate-*r*_binary64
associate-*l*_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
Counts
1 → 20
Calls

1 calls:

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

simplify100.0ms (0.3%)

Algorithm
egg-herbie
Rules
911×distribute-rgt-neg-in_binary64
646×fma-neg_binary64
509×associate-*l*_binary64
452×associate-*r*_binary64
412×distribute-lft-neg-in_binary64
Counts
44 → 31
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
072785
1178727
2569722
32006713
43858712
55218712

prune849.0ms (2.9%)

Pruning

36 alts after pruning (36 fresh and 0 done)

PrunedKeptTotal
New10221123
Fresh191534
Picked101
Done000
Total12236158
Error
19.4b
Counts
158 → 36
Alt Table
StatusErrorProgram
21.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 (PI.f64) (*.f64 (cbrt.f64 180) (cbrt.f64 180))) (/.f64 angle (cbrt.f64 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
33.5b
(+.f64 (pow.f64 (*.f64 a 1) 2) (-.f64 (*.f64 1/32400 (*.f64 (pow.f64 angle 2) (*.f64 (pow.f64 (PI.f64) 2) (pow.f64 b 2)))) (*.f64 1/3149280000 (*.f64 (pow.f64 angle 4) (*.f64 (pow.f64 (PI.f64) 4) (pow.f64 b 2))))))
30.4b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (cbrt.f64 (pow.f64 (*.f64 (PI.f64) (/.f64 angle 180)) 3)))) 2))
44.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (sqrt.f64 (/.f64 angle 180))) (sqrt.f64 (/.f64 angle 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
21.2b
(+.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))
33.5b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (*.f64 b b) (-.f64 (*.f64 (*.f64 (*.f64 angle angle) (pow.f64 (PI.f64) 2)) 1/32400) (*.f64 (*.f64 (pow.f64 angle 4) (pow.f64 (PI.f64) 4)) 1/3149280000))))
20.9b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.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))
21.2b
(+.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.7b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (/.f64 angle (sqrt.f64 180))))) 2))
44.2b
(+.f64 (pow.f64 (*.f64 a 1) 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))
44.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (exp.f64 (+.f64 (log.f64 (PI.f64)) (log.f64 (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
21.2b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (*.f64 (*.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
43.9b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (sqrt.f64 (PI.f64)) (/.f64 (sqrt.f64 angle) (sqrt.f64 180))) (*.f64 (sqrt.f64 (PI.f64)) (/.f64 (sqrt.f64 angle) (sqrt.f64 180)))))) 2))
21.2b
(+.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))
37.2b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 (cbrt.f64 2) (cbrt.f64 2))) (cbrt.f64 2)))
20.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (/.f64 (*.f64 angle (PI.f64)) 180))) 2))
21.2b
(+.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))
21.2b
(+.f64 (pow.f64 (*.f64 a (expm1.f64 (log1p.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
21.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (cbrt.f64 (PI.f64)) (cbrt.f64 (PI.f64))) (*.f64 (/.f64 angle 180) (cbrt.f64 (PI.f64)))))) 2))
44.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (sqrt.f64 angle) (sqrt.f64 180))) (/.f64 (sqrt.f64 angle) (sqrt.f64 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
24.7b
(+.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))
21.7b
(+.f64 (pow.f64 (*.f64 a 1) 2) (exp.f64 (log.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))))
21.2b
(+.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.9b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)) (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))) (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))))
21.0b
(+.f64 (pow.f64 (*.f64 a 1) 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))
21.0b
(+.f64 (pow.f64 (*.f64 a 1) 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))
21.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (*.f64 (cbrt.f64 angle) (cbrt.f64 angle))) (/.f64 (cbrt.f64 angle) 180)))) 2))
25.3b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2))
21.2b
(+.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))
25.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))
27.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)))
25.9b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 1/180 (*.f64 angle (*.f64 (PI.f64) b))) 2))
21.2b
(+.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))
44.2b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (exp.f64 (+.f64 (log.f64 (PI.f64)) (log.f64 (/.f64 angle 180)))))) 2))
21.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 (*.f64 (cbrt.f64 b) (cbrt.f64 b)) (*.f64 (cbrt.f64 b) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 2))
21.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (sqrt.f64 180))) (/.f64 (cbrt.f64 angle) (sqrt.f64 180))))) 2))
Compiler

Compiled 5055 to 3833 computations (24.2% saved)

localize28.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (/.f64 angle (sqrt.f64 180))))) 2)
0.3b
(/.f64 angle (sqrt.f64 180))
0.3b
(*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (/.f64 angle (sqrt.f64 180)))
24.4b
(sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (/.f64 angle (sqrt.f64 180))))

series267.0ms (0.9%)

Counts
4 → 48
Calls

4 calls:

165.0ms
(pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (/.f64 angle (sqrt.f64 180))))) 2)
67.0ms
(*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (/.f64 angle (sqrt.f64 180)))
17.0ms
(sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (/.f64 angle (sqrt.f64 180))))
17.0ms
(/.f64 angle (sqrt.f64 180))

rewrite60.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
44×add-exp-log_binary64
36×times-frac_binary64
33×*-un-lft-identity_binary64
33×add-sqr-sqrt_binary64
33×add-cube-cbrt_binary64
Counts
4 → 126
Calls

4 calls:

23.0ms
(*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (/.f64 angle (sqrt.f64 180)))
8.0ms
(pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (/.f64 angle (sqrt.f64 180))))) 2)
7.0ms
(/.f64 angle (sqrt.f64 180))
6.0ms
(sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (/.f64 angle (sqrt.f64 180))))

simplify175.0ms (0.6%)

Algorithm
egg-herbie
Rules
561×associate-/r*_binary64
489×fma-def_binary64
325×fma-neg_binary64
281×associate-*l*_binary64
251×associate-/l/_binary64
Counts
174 → 185
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02473321
15933030
222292522
344432520
450612520

prune1.5s (5.1%)

Pruning

36 alts after pruning (36 fresh and 0 done)

PrunedKeptTotal
New17312185
Fresh112435
Picked101
Done000
Total18536221
Error
19.3b
Counts
221 → 36
Alt Table
StatusErrorProgram
21.2b
(+.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))
24.3b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (expm1.f64 (log1p.f64 (/.f64 angle (sqrt.f64 180))))))) 2))
27.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (pow.f64 (sin.f64 (/.f64 (*.f64 angle (PI.f64)) (pow.f64 (sqrt.f64 180) 2))) 2) (pow.f64 b 2)))
44.2b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (exp.f64 (+.f64 (log.f64 (PI.f64)) (log.f64 (/.f64 angle 180)))))) 2))
21.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 (/.f64 (PI.f64) (sqrt.f64 180)) (*.f64 (cbrt.f64 (sqrt.f64 180)) (cbrt.f64 (sqrt.f64 180)))) (/.f64 angle (cbrt.f64 (sqrt.f64 180)))))) 2))
21.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 (PI.f64) (*.f64 (cbrt.f64 180) (cbrt.f64 180))) (/.f64 angle (cbrt.f64 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
33.5b
(+.f64 (pow.f64 (*.f64 a 1) 2) (-.f64 (*.f64 1/32400 (*.f64 (pow.f64 angle 2) (*.f64 (pow.f64 (PI.f64) 2) (pow.f64 b 2)))) (*.f64 1/3149280000 (*.f64 (pow.f64 angle 4) (*.f64 (pow.f64 (PI.f64) 4) (pow.f64 b 2))))))
44.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (sqrt.f64 (/.f64 angle 180))) (sqrt.f64 (/.f64 angle 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
21.2b
(+.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))
33.5b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (*.f64 b b) (-.f64 (*.f64 (*.f64 (*.f64 angle angle) (pow.f64 (PI.f64) 2)) 1/32400) (*.f64 (*.f64 (pow.f64 angle 4) (pow.f64 (PI.f64) 4)) 1/3149280000))))
21.2b
(+.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))
21.6b
(+.f64 (pow.f64 (*.f64 a 1) 2) (exp.f64 (log.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (/.f64 angle (sqrt.f64 180))))) 2))))
44.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (exp.f64 (+.f64 (log.f64 (PI.f64)) (log.f64 (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
21.2b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (*.f64 (*.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
37.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (pow.f64 (*.f64 (sin.f64 (/.f64 (*.f64 angle (PI.f64)) 180)) b) (*.f64 (cbrt.f64 2) (cbrt.f64 2))) (cbrt.f64 2)))
20.9b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (sqrt.f64 (sqrt.f64 180)))) (/.f64 (cbrt.f64 angle) (sqrt.f64 (sqrt.f64 180)))))) 2))
21.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 (*.f64 (cbrt.f64 b) (cbrt.f64 b)) (*.f64 (cbrt.f64 b) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 2))
21.2b
(+.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))
21.2b
(+.f64 (pow.f64 (*.f64 a (expm1.f64 (log1p.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
21.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (cbrt.f64 (PI.f64)) (cbrt.f64 (PI.f64))) (*.f64 (/.f64 angle 180) (cbrt.f64 (PI.f64)))))) 2))
21.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (/.f64 (PI.f64) (sqrt.f64 180)) (*.f64 (cbrt.f64 (/.f64 angle (sqrt.f64 180))) (cbrt.f64 (/.f64 angle (sqrt.f64 180))))) (cbrt.f64 (/.f64 angle (sqrt.f64 180)))))) 2))
44.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (sqrt.f64 angle) (sqrt.f64 180))) (/.f64 (sqrt.f64 angle) (sqrt.f64 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
24.7b
(+.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.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (/.f64 (sqrt.f64 180) (cbrt.f64 angle)))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (*.f64 1/180 angle)))) 2))
21.2b
(+.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.9b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)) (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))) (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))))
21.0b
(+.f64 (pow.f64 (*.f64 a 1) 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.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (/.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) angle) (sqrt.f64 180)))) 2))
21.0b
(+.f64 (pow.f64 (*.f64 a 1) 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))
21.2b
(+.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))
25.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))
27.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)))
21.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (*.f64 (*.f64 (cbrt.f64 (/.f64 angle (sqrt.f64 180))) (cbrt.f64 (/.f64 angle (sqrt.f64 180)))) (cbrt.f64 (/.f64 angle (sqrt.f64 180))))))) 2))
21.2b
(+.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))
20.7b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (/.f64 (*.f64 (PI.f64) (/.f64 angle (sqrt.f64 180))) (sqrt.f64 180)))) 2))
Compiler

Compiled 7552 to 5994 computations (20.6% saved)

localize29.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (*.f64 b (sin.f64 (/.f64 (*.f64 (PI.f64) (/.f64 angle (sqrt.f64 180))) (sqrt.f64 180)))) 2)
0.3b
(/.f64 angle (sqrt.f64 180))
0.4b
(/.f64 (*.f64 (PI.f64) (/.f64 angle (sqrt.f64 180))) (sqrt.f64 180))
24.4b
(sin.f64 (/.f64 (*.f64 (PI.f64) (/.f64 angle (sqrt.f64 180))) (sqrt.f64 180)))

series243.0ms (0.8%)

Counts
3 → 48
Calls

3 calls:

161.0ms
(pow.f64 (*.f64 b (sin.f64 (/.f64 (*.f64 (PI.f64) (/.f64 angle (sqrt.f64 180))) (sqrt.f64 180)))) 2)
66.0ms
(/.f64 (*.f64 (PI.f64) (/.f64 angle (sqrt.f64 180))) (sqrt.f64 180))
16.0ms
(sin.f64 (/.f64 (*.f64 (PI.f64) (/.f64 angle (sqrt.f64 180))) (sqrt.f64 180)))

rewrite34.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
15×add-exp-log_binary64
12×add-cbrt-cube_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
Counts
3 → 61
Calls

3 calls:

15.0ms
(/.f64 (*.f64 (PI.f64) (/.f64 angle (sqrt.f64 180))) (sqrt.f64 180))
8.0ms
(pow.f64 (*.f64 b (sin.f64 (/.f64 (*.f64 (PI.f64) (/.f64 angle (sqrt.f64 180))) (sqrt.f64 180)))) 2)
4.0ms
(sin.f64 (/.f64 (*.f64 (PI.f64) (/.f64 angle (sqrt.f64 180))) (sqrt.f64 180)))

simplify139.0ms (0.5%)

Algorithm
egg-herbie
Rules
507×associate-/r*_binary64
484×associate-*l/_binary64
434×associate-*r/_binary64
394×associate-/l/_binary64
337×associate-/r/_binary64
Counts
109 → 111
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01852311
14561753
215031697
349111697
449311697

prune1.2s (4.2%)

Pruning

38 alts after pruning (38 fresh and 0 done)

PrunedKeptTotal
New1505155
Fresh23335
Picked101
Done000
Total15338191
Error
19.3b
Counts
191 → 38
Alt Table
StatusErrorProgram
21.2b
(+.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))
24.3b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (expm1.f64 (log1p.f64 (/.f64 angle (sqrt.f64 180))))))) 2))
27.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (pow.f64 (sin.f64 (/.f64 (*.f64 angle (PI.f64)) (pow.f64 (sqrt.f64 180) 2))) 2) (pow.f64 b 2)))
21.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (/.f64 (*.f64 (PI.f64) (*.f64 (*.f64 (cbrt.f64 (/.f64 angle (sqrt.f64 180))) (cbrt.f64 (/.f64 angle (sqrt.f64 180)))) (cbrt.f64 (/.f64 angle (sqrt.f64 180))))) (sqrt.f64 180)))) 2))
44.2b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (exp.f64 (+.f64 (log.f64 (PI.f64)) (log.f64 (/.f64 angle 180)))))) 2))
21.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 (PI.f64) (*.f64 (cbrt.f64 180) (cbrt.f64 180))) (/.f64 angle (cbrt.f64 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
33.5b
(+.f64 (pow.f64 (*.f64 a 1) 2) (-.f64 (*.f64 1/32400 (*.f64 (pow.f64 angle 2) (*.f64 (pow.f64 (PI.f64) 2) (pow.f64 b 2)))) (*.f64 1/3149280000 (*.f64 (pow.f64 angle 4) (*.f64 (pow.f64 (PI.f64) 4) (pow.f64 b 2))))))
44.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (sqrt.f64 (/.f64 angle 180))) (sqrt.f64 (/.f64 angle 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
21.2b
(+.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))
33.5b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (*.f64 b b) (-.f64 (*.f64 (*.f64 (*.f64 angle angle) (pow.f64 (PI.f64) 2)) 1/32400) (*.f64 (*.f64 (pow.f64 angle 4) (pow.f64 (PI.f64) 4)) 1/3149280000))))
21.2b
(+.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))
21.6b
(+.f64 (pow.f64 (*.f64 a 1) 2) (exp.f64 (log.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (/.f64 angle (sqrt.f64 180))))) 2))))
38.4b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (pow.f64 (*.f64 b (sin.f64 (/.f64 (*.f64 (PI.f64) (/.f64 angle (sqrt.f64 180))) (sqrt.f64 180)))) (*.f64 (cbrt.f64 2) (cbrt.f64 2))) (cbrt.f64 2)))
44.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (exp.f64 (+.f64 (log.f64 (PI.f64)) (log.f64 (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
21.2b
(+.f64 (pow.f64 (*.f64 a (cbrt.f64 (*.f64 (*.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
37.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (pow.f64 (*.f64 (sin.f64 (/.f64 (*.f64 angle (PI.f64)) 180)) b) (*.f64 (cbrt.f64 2) (cbrt.f64 2))) (cbrt.f64 2)))
21.2b
(+.f64 (pow.f64 (*.f64 a 1) 2) (expm1.f64 (log1p.f64 (pow.f64 (*.f64 b (sin.f64 (/.f64 (*.f64 (PI.f64) (/.f64 angle (sqrt.f64 180))) (sqrt.f64 180)))) 2))))
21.2b
(+.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))
21.1b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (/.f64 (*.f64 (/.f64 (PI.f64) (*.f64 (cbrt.f64 (sqrt.f64 180)) (cbrt.f64 (sqrt.f64 180)))) (/.f64 angle (sqrt.f64 180))) (cbrt.f64 (sqrt.f64 180))))) 2))
20.9b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (sqrt.f64 (sqrt.f64 180)))) (/.f64 (cbrt.f64 angle) (sqrt.f64 (sqrt.f64 180)))))) 2))
21.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 (*.f64 (cbrt.f64 b) (cbrt.f64 b)) (*.f64 (cbrt.f64 b) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 2))
21.2b
(+.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))
21.2b
(+.f64 (pow.f64 (*.f64 a (expm1.f64 (log1p.f64 (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
21.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (cbrt.f64 (PI.f64)) (cbrt.f64 (PI.f64))) (*.f64 (/.f64 angle 180) (cbrt.f64 (PI.f64)))))) 2))
44.2b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (*.f64 (PI.f64) (/.f64 (sqrt.f64 angle) (sqrt.f64 180))) (/.f64 (sqrt.f64 angle) (sqrt.f64 180))))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))
24.7b
(+.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.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (/.f64 (*.f64 (cbrt.f64 angle) (cbrt.f64 angle)) (/.f64 (sqrt.f64 180) (cbrt.f64 angle)))))) 2))
20.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (*.f64 1/180 angle)))) 2))
21.2b
(+.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.9b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)) (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))) (cbrt.f64 (pow.f64 (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2))))
21.0b
(+.f64 (pow.f64 (*.f64 a 1) 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.8b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (/.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) angle) (sqrt.f64 180)))) 2))
21.0b
(+.f64 (pow.f64 (*.f64 a 1) 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))
21.2b
(+.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))
25.8b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))
27.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)))
21.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (PI.f64) (/.f64 1 (sqrt.f64 180))) (*.f64 (*.f64 (cbrt.f64 (/.f64 angle (sqrt.f64 180))) (cbrt.f64 (/.f64 angle (sqrt.f64 180)))) (cbrt.f64 (/.f64 angle (sqrt.f64 180))))))) 2))
21.0b
(+.f64 (pow.f64 (*.f64 a 1) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (*.f64 (cbrt.f64 (/.f64 (*.f64 (PI.f64) (/.f64 angle (sqrt.f64 180))) (sqrt.f64 180))) (cbrt.f64 (/.f64 (*.f64 (PI.f64) (/.f64 angle (sqrt.f64 180))) (sqrt.f64 180)))) (cbrt.f64 (/.f64 (*.f64 (PI.f64) (/.f64 angle (sqrt.f64 180))) (sqrt.f64 180)))))) 2))
Compiler

Compiled 5340 to 4213 computations (21.1% saved)

regimes5.2s (18%)

Accuracy

Total 1.3b remaining (6.3%)

Threshold costs 0b (0%)

Counts
228 → 1
Compiler

Compiled 42399 to 34745 computations (18.1% saved)

simplify4.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01932
12632
22532

end1.0ms (0%)

Compiler

Compiled 23 to 20 computations (13% saved)

sample13.5s (46.2%)

Algorithm
intervals
Results
3.4s1590×body1024valid
2.9s1379×body1024invalid
1.5s5070×body128valid
1.1s793×body512valid
992.0ms696×body512invalid
545.0ms168×body2048valid
278.0ms376×body256valid
275.0ms320×body256invalid
193.0ms649×body128invalid
34.0msbody4096valid
Compiler

Compiled 1209 to 986 computations (18.4% saved)

Profiling

Loading profile data...