Details

Time bar (total: 8.6min)

analyze17.3s (3.4%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
0%99.8%0.2%8
2.3%97.4%0.2%9
3.5%96.2%0.2%10
5.3%94.5%0.2%11
6.1%93.6%0.2%12
9.2%90.6%0.2%13
13.8%85.9%0.2%14
Compiler

Compiled 170 to 127 computations (25.3% saved)

sample1.6s (0.3%)

Algorithm
intervals
Results
470.0ms48×body4096valid
415.0msbody8192exit
286.0ms44×body2048valid
247.0ms52×body1024valid
110.0ms34×body512valid
53.0ms72×body128valid
13.0msbody256valid
Compiler

Compiled 342 to 266 computations (22.2% saved)

simplify137.0ms (0%)

Algorithm
egg-herbie
Counts
4 → 4
Iterations

Useful iterations: 0 (22.0ms)

IterNodesCost
05229276

prune13.0ms (0%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New044
Fresh044
Picked000
Done000
Total088
Error
40.1b
Counts
8 → 5
Compiler

Compiled 172 to 122 computations (29.1% saved)

localize267.0ms (0.1%)

Local error

Found 8 expressions with local error:

0.0b
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) x-scale) y-scale))) PI.f64)
0.0b
(+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) x-scale) y-scale) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))

rewrite23.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64 add-log-exp_binary64 pow1_binary64 add-cube-cbrt_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 add-sqr-sqrt_binary64
Counts
4 → 28
Calls

8 calls:

4.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
0.0ms
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) x-scale) y-scale))) PI.f64)

series261.0ms (0.1%)

Counts
4 → 16
Calls

4 calls:

74.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
64.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
62.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
61.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
Compiler

Compiled 4840 to 3612 computations (25.4% saved)

simplify82.0ms (0%)

Algorithm
egg-herbie
Counts
44 → 44
Iterations

Useful iterations: 0 (70.0ms)

IterNodesCost
04796604
14796604

localize82.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2))
0.0b
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale))) PI.f64)
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))

rewrite20.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64 add-log-exp_binary64 pow1_binary64 add-cube-cbrt_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 add-sqr-sqrt_binary64
Counts
4 → 28
Calls

8 calls:

2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
0.0ms
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale))) PI.f64)

series238.0ms (0%)

Counts
4 → 16
Calls

4 calls:

62.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
60.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
58.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
58.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
Compiler

Compiled 4840 to 3416 computations (29.4% saved)

simplify84.0ms (0%)

Algorithm
egg-herbie
Counts
44 → 44
Iterations

Useful iterations: 0 (71.0ms)

IterNodesCost
04796604
14796604

prune1.6s (0.3%)

Pruning

39 alts after pruning (37 fresh and 2 done)

PrunedKeptTotal
New543488
Fresh033
Picked000
Done022
Total543993
Error
38.1b
Counts
93 → 39
Compiler

Compiled 19750 to 13751 computations (30.4% saved)

localize96.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (-.f64 (*.f64 1/180 (*.f64 angle PI.f64)) (*.f64 1/34992000 (*.f64 (pow.f64 angle 3) (pow.f64 PI.f64 3))))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (-.f64 (*.f64 1/180 (*.f64 angle PI.f64)) (*.f64 1/34992000 (*.f64 (pow.f64 angle 3) (pow.f64 PI.f64 3))))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale))) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))

rewrite20.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64 add-log-exp_binary64 pow1_binary64 add-cube-cbrt_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 add-sqr-sqrt_binary64
Counts
4 → 28
Calls

8 calls:

2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
0.0ms
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (-.f64 (*.f64 1/180 (*.f64 angle PI.f64)) (*.f64 1/34992000 (*.f64 (pow.f64 angle 3) (pow.f64 PI.f64 3))))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale))) PI.f64))

series213.0ms (0%)

Counts
4 → 13
Calls

4 calls:

64.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
50.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
50.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
49.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
Compiler

Compiled 4501 to 3164 computations (29.7% saved)

simplify80.0ms (0%)

Algorithm
egg-herbie
Counts
41 → 41
Iterations

Useful iterations: 0 (69.0ms)

IterNodesCost
04796532
14796532

localize84.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale))) PI.f64)
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))

rewrite20.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64 add-log-exp_binary64 pow1_binary64 add-cube-cbrt_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 add-sqr-sqrt_binary64
Counts
4 → 28
Calls

8 calls:

2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
0.0ms
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale))) PI.f64)

series235.0ms (0%)

Counts
4 → 16
Calls

4 calls:

59.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
59.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
59.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
58.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
Compiler

Compiled 4812 to 3360 computations (30.2% saved)

simplify82.0ms (0%)

Algorithm
egg-herbie
Counts
44 → 44
Iterations

Useful iterations: 0 (70.0ms)

IterNodesCost
04796604
14796604

localize86.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (log.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (log.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))

rewrite20.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64 add-log-exp_binary64 pow1_binary64 add-cube-cbrt_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 add-sqr-sqrt_binary64
Counts
4 → 28
Calls

8 calls:

2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
0.0ms
(+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (log.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2))

series229.0ms (0%)

Counts
4 → 15
Calls

4 calls:

62.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
60.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
59.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
48.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
Compiler

Compiled 4706 to 3336 computations (29.1% saved)

simplify82.0ms (0%)

Algorithm
egg-herbie
Counts
43 → 43
Iterations

Useful iterations: 0 (70.0ms)

IterNodesCost
04796580
14796580

localize85.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) x-scale) y-scale) 2))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))

rewrite20.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64 add-log-exp_binary64 pow1_binary64 add-cube-cbrt_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 add-sqr-sqrt_binary64
Counts
4 → 28
Calls

8 calls:

2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
0.0ms
(+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) x-scale) y-scale) 2))

series243.0ms (0%)

Counts
4 → 16
Calls

4 calls:

62.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
61.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
60.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
60.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
Compiler

Compiled 4812 to 3556 computations (26.1% saved)

simplify83.0ms (0%)

Algorithm
egg-herbie
Counts
44 → 44
Iterations

Useful iterations: 0 (71.0ms)

IterNodesCost
04796604
14796604

localize90.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) x-scale) y-scale) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (log.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))))) (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) x-scale) y-scale))) PI.f64)
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))

rewrite20.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64 add-log-exp_binary64 pow1_binary64 add-cube-cbrt_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 add-sqr-sqrt_binary64
Counts
4 → 28
Calls

8 calls:

2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
0.0ms
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (log.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))))) (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) x-scale) y-scale))) PI.f64)

series238.0ms (0%)

Counts
4 → 15
Calls

4 calls:

63.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
62.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
61.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
52.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
Compiler

Compiled 4706 to 3525 computations (25.1% saved)

simplify82.0ms (0%)

Algorithm
egg-herbie
Counts
43 → 43
Iterations

Useful iterations: 0 (71.0ms)

IterNodesCost
04796580
14796580

prune6.0s (1.2%)

Pruning

101 alts after pruning (98 fresh and 3 done)

PrunedKeptTotal
New14966215
Fresh03232
Picked000
Done437
Total153101254
Error
37.2b
Counts
254 → 101
Compiler

Compiled 50277 to 34778 computations (30.8% saved)

localize97.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (-.f64 (*.f64 1/180 (*.f64 angle PI.f64)) (*.f64 1/34992000 (*.f64 (pow.f64 angle 3) (pow.f64 PI.f64 3))))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (-.f64 (*.f64 1/180 (*.f64 angle PI.f64)) (*.f64 1/34992000 (*.f64 (pow.f64 angle 3) (pow.f64 PI.f64 3))))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale))) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.2b
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))

rewrite21.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64 add-log-exp_binary64 pow1_binary64 add-cube-cbrt_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 add-sqr-sqrt_binary64
Counts
4 → 28
Calls

8 calls:

3.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
3.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
0.0ms
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (-.f64 (*.f64 1/180 (*.f64 angle PI.f64)) (*.f64 1/34992000 (*.f64 (pow.f64 angle 3) (pow.f64 PI.f64 3))))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale))) PI.f64))

series209.0ms (0%)

Counts
4 → 13
Calls

4 calls:

61.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
50.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
49.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
48.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
Compiler

Compiled 4501 to 3146 computations (30.1% saved)

simplify81.0ms (0%)

Algorithm
egg-herbie
Counts
41 → 41
Iterations

Useful iterations: 0 (69.0ms)

IterNodesCost
04807532
14807532

localize93.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
30.0b
(/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (*.f64 1/180 (*.f64 angle PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale))

rewrite547.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
415×times-frac_binary64
272×*-un-lft-identity_binary64
246×add-sqr-sqrt_binary64
142×add-cube-cbrt_binary64
78×distribute-lft-out--_binary64
63×add-exp-log_binary64 add-cbrt-cube_binary64
52×difference-of-squares_binary64
33×div-inv_binary64
27×cbrt-undiv_binary64 div-exp_binary64
26×sqrt-prod_binary64
25×associate-/r*_binary64
22×cbrt-unprod_binary64 prod-exp_binary64
associate-/l/_binary64 frac-sub_binary64
associate-/l*_binary64
sqrt-div_binary64
add-log-exp_binary64 pow1_binary64
flip3-+_binary64 flip3--_binary64 flip--_binary64 flip-+_binary64
associate-/r/_binary64 div-sub_binary64 clear-num_binary64 frac-2neg_binary64
Counts
4 → 268
Calls

8 calls:

353.0ms
(/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (*.f64 1/180 (*.f64 angle PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
0.0ms
(+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2))

series1.5min (17.2%)

Counts
4 → 34
Calls

4 calls:

1.5min
(/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (*.f64 1/180 (*.f64 angle PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale))
57.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
57.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
56.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
Compiler

Compiled 46615 to 33303 computations (28.6% saved)

simplify854.0ms (0.2%)

Algorithm
egg-herbie
Counts
302 → 302
Iterations

Useful iterations: 0 (86.0ms)

IterNodesCost
05069110791

localize93.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (log.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale))) PI.f64)
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))

rewrite20.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64 add-log-exp_binary64 pow1_binary64 add-cube-cbrt_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 add-sqr-sqrt_binary64
Counts
4 → 28
Calls

8 calls:

2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
0.0ms
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (log.f64 (exp.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale))) PI.f64)

series234.0ms (0%)

Counts
4 → 15
Calls

4 calls:

64.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
63.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
59.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
48.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
Compiler

Compiled 4706 to 3336 computations (29.1% saved)

simplify81.0ms (0%)

Algorithm
egg-herbie
Counts
43 → 43
Iterations

Useful iterations: 0 (69.0ms)

IterNodesCost
04796580
14796580

localize109.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (-.f64 (*.f64 1/180 (*.f64 angle PI.f64)) (*.f64 1/34992000 (*.f64 (pow.f64 angle 3) (pow.f64 PI.f64 3))))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) 3)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale))) PI.f64))
0.0b
(+.f64 (pow.f64 (*.f64 a (-.f64 (*.f64 1/180 (*.f64 angle PI.f64)) (*.f64 1/34992000 (*.f64 (pow.f64 angle 3) (pow.f64 PI.f64 3))))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))

rewrite20.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64 add-log-exp_binary64 pow1_binary64 add-cube-cbrt_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 add-sqr-sqrt_binary64
Counts
4 → 28
Calls

8 calls:

2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
0.0ms
(*.f64 180 (/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (-.f64 (*.f64 1/180 (*.f64 angle PI.f64)) (*.f64 1/34992000 (*.f64 (pow.f64 angle 3) (pow.f64 PI.f64 3))))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) 3)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale))) PI.f64))

series214.0ms (0%)

Counts
4 → 13
Calls

4 calls:

63.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
51.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
50.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
50.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
Compiler

Compiled 4576 to 3239 computations (29.2% saved)

simplify80.0ms (0%)

Algorithm
egg-herbie
Counts
41 → 41
Iterations

Useful iterations: 0 (68.0ms)

IterNodesCost
04796532
14796532

localize98.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) x-scale) y-scale) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))

rewrite21.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64 add-log-exp_binary64 pow1_binary64 add-cube-cbrt_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 add-sqr-sqrt_binary64
Counts
4 → 28
Calls

8 calls:

2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
0.0ms
(+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) x-scale) y-scale) 2))

series258.0ms (0.1%)

Counts
4 → 16
Calls

4 calls:

66.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
64.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
64.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
64.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
Compiler

Compiled 5092 to 3780 computations (25.8% saved)

simplify80.0ms (0%)

Algorithm
egg-herbie
Counts
44 → 44
Iterations

Useful iterations: 0 (69.0ms)

IterNodesCost
04796604
14796604

prune25.3s (4.9%)

Pruning

255 alts after pruning (248 fresh and 7 done)

PrunedKeptTotal
New301170471
Fresh157893
Picked000
Done178
Total317255572
Error
28.9b
Counts
572 → 255
Compiler

Compiled 145099 to 95417 computations (34.2% saved)

localize70.0ms (0%)

Local error

Found 8 expressions with local error:

0.1b
(*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2))
0.1b
(*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))))
0.0b
(*.f64 (pow.f64 b 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4))
0.0b
(+.f64 (*.f64 y-scale (*.f64 (*.f64 a a) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2))) (+.f64 (*.f64 y-scale (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2))) (*.f64 y-scale (sqrt.f64 (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 a 4)) (+.f64 (*.f64 (pow.f64 b 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (*.f64 2 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)))))))))))
27.2b
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
27.2b
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
27.2b
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
28.6b
(/.f64 (+.f64 (*.f64 y-scale (*.f64 (*.f64 a a) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2))) (+.f64 (*.f64 y-scale (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2))) (*.f64 y-scale (sqrt.f64 (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 a 4)) (+.f64 (*.f64 (pow.f64 b 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (*.f64 2 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2))))))))))) (*.f64 angle (*.f64 x-scale (*.f64 PI.f64 (*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))))))))

rewrite70.0ms (0%)

Algorithm
rewrite-expression-head
Rules
24×add-exp-log_binary64 add-cbrt-cube_binary64
10×cbrt-unprod_binary64 prod-exp_binary64
*-un-lft-identity_binary64 associate-*r/_binary64 add-cube-cbrt_binary64 add-sqr-sqrt_binary64
cbrt-undiv_binary64 div-exp_binary64
add-log-exp_binary64 pow1_binary64 distribute-lft-out_binary64 associate-/l*_binary64 times-frac_binary64
associate-/l/_binary64 associate-/r/_binary64 associate-*l/_binary64
flip3-+_binary64 associate-/r*_binary64 flip3--_binary64 clear-num_binary64 frac-2neg_binary64 div-inv_binary64 flip--_binary64 flip-+_binary64
Counts
4 → 54
Calls

8 calls:

36.0ms
(/.f64 (+.f64 (*.f64 y-scale (*.f64 (*.f64 a a) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2))) (+.f64 (*.f64 y-scale (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2))) (*.f64 y-scale (sqrt.f64 (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 a 4)) (+.f64 (*.f64 (pow.f64 b 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (*.f64 2 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2))))))))))) (*.f64 angle (*.f64 x-scale (*.f64 PI.f64 (*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))))))))
3.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
3.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
3.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
0.0ms
(+.f64 (*.f64 y-scale (*.f64 (*.f64 a a) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2))) (+.f64 (*.f64 y-scale (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2))) (*.f64 y-scale (sqrt.f64 (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 a 4)) (+.f64 (*.f64 (pow.f64 b 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (*.f64 2 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)))))))))))

series7.2s (1.4%)

Counts
4 → 34
Calls

4 calls:

7.1s
(/.f64 (+.f64 (*.f64 y-scale (*.f64 (*.f64 a a) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2))) (+.f64 (*.f64 y-scale (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2))) (*.f64 y-scale (sqrt.f64 (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 a 4)) (+.f64 (*.f64 (pow.f64 b 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (*.f64 2 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2))))))))))) (*.f64 angle (*.f64 x-scale (*.f64 PI.f64 (*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))))))))
58.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
49.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
35.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
Compiler

Compiled 6798 to 4778 computations (29.7% saved)

simplify162.0ms (0%)

Algorithm
egg-herbie
Counts
88 → 88
Iterations

Useful iterations: 0 (80.0ms)

IterNodesCost
050469016

localize26.0ms (0%)

Local error

Found 8 expressions with local error:

0.1b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1/360 (/.f64 (*.f64 angle (*.f64 x-scale (*.f64 PI.f64 (*.f64 b b)))) (*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (*.f64 y-scale (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64)))))))) PI.f64))
0.1b
(/.f64 (atan.f64 (*.f64 -1/360 (/.f64 (*.f64 angle (*.f64 x-scale (*.f64 PI.f64 (*.f64 b b)))) (*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (*.f64 y-scale (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64)))))))) PI.f64)
0.1b
(*.f64 y-scale (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))))
0.0b
(atan.f64 (*.f64 -1/360 (/.f64 (*.f64 angle (*.f64 x-scale (*.f64 PI.f64 (*.f64 b b)))) (*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (*.f64 y-scale (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))))))))
7.0b
(*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (*.f64 y-scale (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64)))))
8.7b
(*.f64 x-scale (*.f64 PI.f64 (*.f64 b b)))
21.4b
(/.f64 (*.f64 angle (*.f64 x-scale (*.f64 PI.f64 (*.f64 b b)))) (*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (*.f64 y-scale (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))))))
26.8b
(cos.f64 (*.f64 1/180 (*.f64 angle PI.f64)))

rewrite65.0ms (0%)

Algorithm
rewrite-expression-head
Rules
93×add-exp-log_binary64 add-cbrt-cube_binary64
54×cbrt-unprod_binary64 prod-exp_binary64
18×pow1_binary64
15×cbrt-undiv_binary64 div-exp_binary64
pow-prod-down_binary64
associate-*l*_binary64
*-un-lft-identity_binary64 add-cube-cbrt_binary64 add-sqr-sqrt_binary64
add-log-exp_binary64 associate-*l/_binary64
flip3--_binary64 associate-*r*_binary64 associate-/r/_binary64 flip--_binary64 *-commutative_binary64
associate-/r*_binary64 clear-num_binary64 frac-2neg_binary64 difference-of-squares_binary64 associate-/l*_binary64 times-frac_binary64 div-inv_binary64
Counts
4 → 94
Calls

8 calls:

27.0ms
(/.f64 (*.f64 angle (*.f64 x-scale (*.f64 PI.f64 (*.f64 b b)))) (*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (*.f64 y-scale (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))))))
11.0ms
(*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (*.f64 y-scale (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64)))))
8.0ms
(*.f64 x-scale (*.f64 PI.f64 (*.f64 b b)))
3.0ms
(cos.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
0.0ms
(atan.f64 (*.f64 -1/360 (/.f64 (*.f64 angle (*.f64 x-scale (*.f64 PI.f64 (*.f64 b b)))) (*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (*.f64 y-scale (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))))))))

series1.9s (0.4%)

Counts
4 → 48
Calls

4 calls:

1.2s
(/.f64 (*.f64 angle (*.f64 x-scale (*.f64 PI.f64 (*.f64 b b)))) (*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (*.f64 y-scale (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))))))
604.0ms
(*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (*.f64 y-scale (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64)))))
90.0ms
(*.f64 x-scale (*.f64 PI.f64 (*.f64 b b)))
22.0ms
(cos.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
Compiler

Compiled 3460 to 2798 computations (19.1% saved)

simplify115.0ms (0%)

Algorithm
egg-herbie
Counts
142 → 142
Iterations

Useful iterations: 0 (71.0ms)

IterNodesCost
051214264

localize94.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) 3)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale))) PI.f64)
0.0b
(+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))

rewrite22.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64 add-log-exp_binary64 pow1_binary64 add-cube-cbrt_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 add-sqr-sqrt_binary64
Counts
4 → 28
Calls

8 calls:

3.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
3.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
0.0ms
(/.f64 (atan.f64 (/.f64 (-.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale)) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2)))) (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (cbrt.f64 (pow.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) 3)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale))) PI.f64)

series250.0ms (0%)

Counts
4 → 16
Calls

4 calls:

63.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
63.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
63.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
60.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
Compiler

Compiled 4924 to 3500 computations (28.9% saved)

simplify85.0ms (0%)

Algorithm
egg-herbie
Counts
44 → 44
Iterations

Useful iterations: 0 (72.0ms)

IterNodesCost
04796604
14796604

localize103.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))

rewrite23.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64 add-log-exp_binary64 pow1_binary64 add-cube-cbrt_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 add-sqr-sqrt_binary64
Counts
4 → 28
Calls

8 calls:

2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
0.0ms
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))

series239.0ms (0%)

Counts
4 → 15
Calls

4 calls:

64.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
63.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
61.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
50.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
Compiler

Compiled 4679 to 3471 computations (25.8% saved)

simplify85.0ms (0%)

Algorithm
egg-herbie
Counts
43 → 43
Iterations

Useful iterations: 0 (71.0ms)

IterNodesCost
04796580
14796580

localize132.0ms (0%)

Local error

Found 8 expressions with local error:

0.0b
(+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2))
0.0b
(+.f64 (pow.f64 (-.f64 (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) b) 2)) x-scale) x-scale) (/.f64 (/.f64 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (*.f64 1/180 (*.f64 angle PI.f64))) 2)) y-scale) y-scale)) 2) (pow.f64 (/.f64 (/.f64 (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) PI.f64)) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) x-scale) y-scale) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
0.0b
(+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 (/.f64 angle 180) PI.f64))) 2))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
27.1b
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))

rewrite30.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64 add-log-exp_binary64 pow1_binary64 add-cube-cbrt_binary64 add-exp-log_binary64 add-cbrt-cube_binary64 add-sqr-sqrt_binary64
Counts
4 → 28
Calls

8 calls:

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

series329.0ms (0.1%)

Counts
4 → 12
Calls

4 calls:

87.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
82.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
80.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
80.0ms
(sin.f64 (*.f64 (/.f64 angle 180) PI.f64))
Compiler

Compiled 8000 to 5328 computations (33.4% saved)

simplify166.0ms (0%)

Algorithm
egg-herbie
Counts
40 → 40
Iterations

Useful iterations: 0 (154.0ms)

IterNodesCost
04741508
14741508

prune20.5s (4%)

Pruning

359 alts after pruning (350 fresh and 9 done)

PrunedKeptTotal
New246111357
Fresh4239243
Picked000
Done3912
Total253359612
Error
15.6b
Counts
612 → 359
Compiler

Compiled 35778 to 22417 computations (37.3% saved)

simplify4.2s (0.8%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (27.0ms)

IterNodesCost
06521262896

regimes2.6min (30%)

Compiler

Compiled 1849966 to 1290640 computations (30.2% saved)

bsearch1.7s (0.3%)

Steps
ItersRangePoint
6
1.5531103678881556e-28
2.040132256684584e-27
2.0857365397169568e-28
8
-3.720978506492585e+36
-1.1005765273721677e+34
-2.449232896210209e+35
Compiler

Compiled 1 to 5 computations (-400% saved)

regimes749.0ms (0.1%)

Compiler

Compiled 5735 to 4540 computations (20.8% saved)

bsearch3.5s (0.7%)

Steps
ItersRangePoint
8
1.2191629843249697e+150
3.4777240570980565e+152
1.6635112831079266e+150
9
1.5867575223033557e-113
1.6742765163298943e-108
1.608006355534297e-113
8
-1.95083753592412e-222
-1.2008961781653361e-225
-1.4278917460056073e-223
10
-9.559048152815373e+63
-1.2310108245050895e+52
-7.054005081354844e+52
Compiler

Compiled 1 to 5 computations (-400% saved)

regimes147.0ms (0%)

Compiler

Compiled 540 to 560 computations (-3.7% saved)

bsearch2.7s (0.5%)

Steps
ItersRangePoint
7
4.294155529664601e-115
1.5867575223033557e-113
4.376061765703892e-115
9
-8.756424209212937e-146
-1.071854377519911e-151
-1.2040234655516484e-151
10
-2.943583939195158e+158
-4.519845453948353e+147
-1.3517085611470228e+154
Compiler

Compiled 1 to 5 computations (-400% saved)

regimes76.0ms (0%)

Compiler

Compiled 155 to 240 computations (-54.8% saved)

bsearch1.2s (0.2%)

Steps
ItersRangePoint
6
1.3459036505315227e-126
1.9551416502736504e-125
8.077542025564833e-126
8
-4.0588430813457363e-16
-6.841170771861991e-21
-2.669032133350017e-19
Compiler

Compiled 1 to 5 computations (-400% saved)

regimes51.0ms (0%)

Accuracy

Total 17.9b remaining (50%)

Threshold costs 0b (0%)

Compiler

Compiled 20 to 110 computations (-450% saved)

bsearch18.0ms (0%)

Compiler

Compiled 319 to 218 computations (31.7% saved)

simplify10.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (4.0ms)

IterNodesCost
0155297
1155297

end0.0ms (0%)

sample2.8min (32.5%)

Algorithm
intervals
Results
16.6s1615×body4096valid
9.2s1410×body2048valid
8.6s1628×body1024valid
6.3s90×body8192exit
2.5s718×body512valid
1.8s2289×body128valid
747.0ms340×body256valid
Compiler

Compiled 163250 to 113798 computations (30.3% saved)

Pareto

0.4542445533778097

Profiling

Loading profile data...