Details

Time bar (total: 2.5min)

analyze23.2s (15.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
4.7%95.1%0.2%9
7%92.7%0.2%10
11.1%88.7%0.2%11
11.2%88.6%0.2%12
11.5%88.2%0.2%13
12.7%87.1%0.2%14
Compiler

Compiled 175 to 127 computations (27.4% saved)

sample52.9s (35.3%)

Results
19.6s1686×body4096valid
11.1s1447×body2048valid
10.1s1599×body1024valid
5.4s73×body8192exit
3.3s778×body512valid
2.5s2433×body128valid
830.0ms313×body256valid
Compiler

Compiled 350 to 254 computations (27.4% saved)

preprocess70.0ms (0%)

Algorithm
egg-herbie
Rules
977×times-frac_binary64
444×fma-def_binary64
165×div-sub_binary64
138×*-commutative_binary64
118×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03253003
18702915
228452915
055
Stop Event
saturated
node limit
Compiler

Compiled 174 to 126 computations (27.6% saved)

simplify22.0ms (0%)

Algorithm
egg-herbie
Rules
637×times-frac_binary64
293×associate-/l/_binary64
243×div-sub_binary64
198×fma-def_binary64
174×distribute-rgt-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
046273
1115265
2345265
31608265
Stop Event
node limit
Counts
1 → 2

prune16.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
51.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
51.7b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (/.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale)))) (PI.f64)))
54.7b
(*.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 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)))
Compiler

Compiled 1024 to 708 computations (30.9% saved)

localize48.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
14.8b
(/.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale))
23.5b
(-.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))))))))
24.5b
(sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))
24.9b
(cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))

series50.7s (33.8%)

Counts
4 → 144
Calls

36 calls:

8.1s
(/.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale))
angle
0
3.2s
(/.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale))
b
0
2.9s
(/.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale))
a
0
2.8s
(-.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))))))))
angle
0
2.6s
(/.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale))
b
inf

rewrite118.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
501×log1p-expm1-u_binary64
501×expm1-log1p-u_binary64
171×log-prod_binary64
162×unpow-prod-down_binary64
141×prod-diff_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
044484
11038456
Stop Event
node limit
Counts
4 → 90

simplify4.1s (2.7%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010887673290
Stop Event
node limit
Counts
234 → 187

prune10.3s (6.9%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New39611407
Fresh011
Picked101
Done000
Total39712409
Error
35.4b
Counts
409 → 12
Alt Table
StatusErrorProgram
51.7b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (/.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (*.f64 angle 1/180) (PI.f64)))) 3) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale)))) (PI.f64)))
50.4b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (/.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 (pow.f64 a 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 b 2)) (sqrt.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))))) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 b 4)) (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4))))))) (pow.f64 x-scale 2))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale)))) (PI.f64)))
52.3b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (/.f64 (fma.f64 (pow.f64 (hypot.f64 (*.f64 (cos.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) a) (*.f64 (sin.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) b)) 2) (pow.f64 y-scale -2) (neg.f64 (fma.f64 (pow.f64 (hypot.f64 (*.f64 (sin.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) a) (*.f64 (cos.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) b)) 2) (pow.f64 x-scale -2) (hypot.f64 (-.f64 (*.f64 (pow.f64 (hypot.f64 (*.f64 (sin.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) a) (*.f64 (cos.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) b)) 2) (pow.f64 x-scale -2)) (*.f64 (pow.f64 (hypot.f64 (*.f64 (cos.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) a) (*.f64 (sin.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) b)) 2) (pow.f64 y-scale -2))) (/.f64 (*.f64 (/.f64 2 y-scale) (*.f64 (sin.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) (-.f64 (*.f64 b b) (*.f64 a a)))) (/.f64 x-scale (cos.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale)))) (PI.f64)))
61.3b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (/.f64 (/.f64 (-.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 a 2)) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))) (sqrt.f64 (+.f64 (*.f64 (pow.f64 b 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (+.f64 (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))))) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 a 4)))))) (pow.f64 y-scale 2)) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale)))) (PI.f64)))
54.7b
(*.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 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)))
53.6b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 1/2 (/.f64 (*.f64 y-scale (-.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 y-scale 2)) (+.f64 (sqrt.f64 (-.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 x-scale 4)) (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 y-scale 4)) (*.f64 3 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (*.f64 (pow.f64 x-scale 2) (pow.f64 y-scale 2)))))) (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))) (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 x-scale 2))))) (*.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))) (PI.f64)))
52.0b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (/.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (-.f64 (*.f64 1/180 (*.f64 angle (PI.f64))) (*.f64 1/34992000 (*.f64 (pow.f64 angle 3) (pow.f64 (PI.f64) 3)))) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale)))) (PI.f64)))
52.2b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (/.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 1 (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale)))) (PI.f64)))
61.6b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (/.f64 (*.f64 (pow.f64 a 2) (-.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 y-scale 2)) (+.f64 (sqrt.f64 (-.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 x-scale 4)) (+.f64 (*.f64 3 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2)))) (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 y-scale 4)))) (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (*.f64 (pow.f64 x-scale 2) (pow.f64 y-scale 2))))) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 x-scale 2))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale)))) (PI.f64)))
49.4b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (/.f64 (*.f64 y-scale (+.f64 (*.f64 (pow.f64 a 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 b 2)) (sqrt.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))))) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 b 4)) (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)))))))) (*.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (*.f64 (pow.f64 x-scale 2) (*.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2)) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))))) (PI.f64)))
59.9b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 1/2 (/.f64 (-.f64 (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 a 2)) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))) (sqrt.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))))) (+.f64 (*.f64 (pow.f64 b 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 a 4)))))) (*.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (*.f64 y-scale (*.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2)) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))))) (PI.f64)))
56.2b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (/.f64 (*.f64 y-scale (-.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 y-scale 2)) (+.f64 (sqrt.f64 (-.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 x-scale 4)) (+.f64 (*.f64 3 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (*.f64 (pow.f64 x-scale 2) (pow.f64 y-scale 2)))) (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 y-scale 4)))) (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 x-scale 2))))) (*.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))) (PI.f64)))
Compiler

Compiled 399212 to 281614 computations (29.5% saved)

localize48.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
18.3b
(*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)))
18.7b
(/.f64 (*.f64 y-scale (+.f64 (*.f64 (pow.f64 a 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 b 2)) (sqrt.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))))) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 b 4)) (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)))))))) (*.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (*.f64 (pow.f64 x-scale 2) (*.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2)) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))
24.5b
(sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))
24.9b
(cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))

series1.3s (0.9%)

Counts
4 → 60
Calls

30 calls:

144.0ms
(/.f64 (*.f64 y-scale (+.f64 (*.f64 (pow.f64 a 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 b 2)) (sqrt.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))))) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 b 4)) (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)))))))) (*.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (*.f64 (pow.f64 x-scale 2) (*.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2)) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))
y-scale
-inf
141.0ms
(/.f64 (*.f64 y-scale (+.f64 (*.f64 (pow.f64 a 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 b 2)) (sqrt.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))))) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 b 4)) (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)))))))) (*.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (*.f64 (pow.f64 x-scale 2) (*.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2)) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))
angle
0
131.0ms
(/.f64 (*.f64 y-scale (+.f64 (*.f64 (pow.f64 a 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 b 2)) (sqrt.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))))) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 b 4)) (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)))))))) (*.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (*.f64 (pow.f64 x-scale 2) (*.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2)) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))
y-scale
inf
117.0ms
(/.f64 (*.f64 y-scale (+.f64 (*.f64 (pow.f64 a 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 b 2)) (sqrt.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))))) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 b 4)) (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)))))))) (*.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (*.f64 (pow.f64 x-scale 2) (*.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2)) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))
x-scale
-inf
117.0ms
(/.f64 (*.f64 y-scale (+.f64 (*.f64 (pow.f64 a 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 b 2)) (sqrt.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))))) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 b 4)) (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)))))))) (*.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (*.f64 (pow.f64 x-scale 2) (*.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2)) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))
y-scale
0

rewrite55.0ms (0%)

Algorithm
batch-egg-rewrite
Rules
441×log1p-expm1-u_binary64
441×expm1-log1p-u_binary64
407×pow1_binary64
162×log-prod_binary64
143×unpow-prod-down_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
042199
1950193
Stop Event
node limit
Counts
4 → 62

simplify141.0ms (0.1%)

Algorithm
egg-herbie
Rules
842×times-frac_binary64
448×associate-/l*_binary64
357×fma-def_binary64
304×*-commutative_binary64
178×associate-*r*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
054411670
1193710826
Stop Event
node limit
Counts
122 → 113

prune1.2s (0.8%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New2417248
Fresh4711
Picked101
Done000
Total24614260
Error
14.6b
Counts
260 → 14
Alt Table
StatusErrorProgram
42.7b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (log.f64 (pow.f64 (exp.f64 (/.f64 y-scale (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (/.f64 (+.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 2)) (sqrt.f64 (+.f64 (fma.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 (*.f64 a (*.f64 b (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) 2)) (pow.f64 (*.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) b) 4)) (pow.f64 (*.f64 a (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) 4)))) (*.f64 (*.f64 (*.f64 x-scale x-scale) (fma.f64 b b (neg.f64 (*.f64 a a)))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))))) (PI.f64)))
52.3b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (/.f64 (fma.f64 (pow.f64 (hypot.f64 (*.f64 (cos.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) a) (*.f64 (sin.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) b)) 2) (pow.f64 y-scale -2) (neg.f64 (fma.f64 (pow.f64 (hypot.f64 (*.f64 (sin.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) a) (*.f64 (cos.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) b)) 2) (pow.f64 x-scale -2) (hypot.f64 (-.f64 (*.f64 (pow.f64 (hypot.f64 (*.f64 (sin.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) a) (*.f64 (cos.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) b)) 2) (pow.f64 x-scale -2)) (*.f64 (pow.f64 (hypot.f64 (*.f64 (cos.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) a) (*.f64 (sin.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) b)) 2) (pow.f64 y-scale -2))) (/.f64 (*.f64 (/.f64 2 y-scale) (*.f64 (sin.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))) (-.f64 (*.f64 b b) (*.f64 a a)))) (/.f64 x-scale (cos.f64 (*.f64 (*.f64 angle 1/180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale)))) (PI.f64)))
54.7b
(*.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 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)))
53.6b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 1/2 (/.f64 (*.f64 y-scale (-.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 y-scale 2)) (+.f64 (sqrt.f64 (-.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 x-scale 4)) (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 y-scale 4)) (*.f64 3 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (*.f64 (pow.f64 x-scale 2) (pow.f64 y-scale 2)))))) (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))) (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 x-scale 2))))) (*.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))) (PI.f64)))
52.0b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (/.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (-.f64 (*.f64 1/180 (*.f64 angle (PI.f64))) (*.f64 1/34992000 (*.f64 (pow.f64 angle 3) (pow.f64 (PI.f64) 3)))) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale)))) (PI.f64)))
36.4b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 2 (/.f64 (*.f64 y-scale (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (*.f64 (pow.f64 x-scale 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))))) (PI.f64)))
56.2b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (/.f64 (*.f64 y-scale (-.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 y-scale 2)) (+.f64 (sqrt.f64 (-.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 x-scale 4)) (+.f64 (*.f64 3 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (*.f64 (pow.f64 x-scale 2) (pow.f64 y-scale 2)))) (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 y-scale 4)))) (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 x-scale 2))))) (*.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))) (PI.f64)))
52.2b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (/.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 1 (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale)))) (PI.f64)))
51.7b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (/.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (*.f64 angle 1/180) (PI.f64)))) 3) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale)))) (PI.f64)))
49.4b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (/.f64 (*.f64 y-scale (+.f64 (*.f64 (pow.f64 a 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 b 2)) (sqrt.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))))) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 b 4)) (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)))))))) (*.f64 (-.f64 (exp.f64 (log1p.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) 1) (*.f64 (pow.f64 x-scale 2) (*.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2)) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))))) (PI.f64)))
43.8b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (neg.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 y-scale (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))) (/.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (*.f64 x-scale x-scale))) (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (+.f64 (*.f64 (/.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))) (/.f64 (*.f64 b b) (*.f64 a a))) (/.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (/.f64 (*.f64 (*.f64 a a) (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))) (*.f64 b b))))))))))) (PI.f64)))
35.1b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 -2 (/.f64 (*.f64 y-scale (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (*.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (pow.f64 x-scale 2))))))) (PI.f64)))
35.1b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))) (PI.f64)))
49.8b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 (fma.f64 (*.f64 a a) (pow.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 2) (fma.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 2) (*.f64 b b) (sqrt.f64 (fma.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 2) (*.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 2))) (fma.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 4) (pow.f64 b 4) (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 4))))))) (*.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (-.f64 (*.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (*.f64 b b)) (*.f64 (*.f64 a a) (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))))) (PI.f64)))
Compiler

Compiled 37286 to 25267 computations (32.2% saved)

localize17.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
5.9b
(/.f64 y-scale (*.f64 x-scale x-scale))
13.9b
(*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))
24.5b
(sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))
25.0b
(cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))

series110.0ms (0.1%)

Counts
4 → 84
Calls

21 calls:

12.0ms
(*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))
x-scale
0
10.0ms
(*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))
y-scale
-inf
10.0ms
(*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))
y-scale
inf
10.0ms
(*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))
y-scale
0
10.0ms
(*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))
x-scale
-inf

rewrite36.0ms (0%)

Algorithm
batch-egg-rewrite
Rules
202×add-sqr-sqrt_binary64
200×associate-*r*_binary64
188×add-log-exp_binary64
188×log1p-expm1-u_binary64
188×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01964
140649
Stop Event
node limit
Counts
4 → 82

simplify60.0ms (0%)

Algorithm
egg-herbie
Rules
852×fma-neg_binary64
619×associate-*r*_binary64
505×associate-*l*_binary64
224×fma-def_binary64
190×*-commutative_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0901668
12731658
29191652
348611652
Stop Event
node limit
Counts
166 → 114

prune296.0ms (0.2%)

Pruning

19 alts after pruning (19 fresh and 0 done)

PrunedKeptTotal
New10311114
Fresh5813
Picked101
Done000
Total10919128
Error
12.3b
Counts
128 → 19
Alt Table
StatusErrorProgram
40.4b
(*.f64 180 (/.f64 (atan.f64 (fma.f64 -180 (/.f64 y-scale (*.f64 (*.f64 angle (PI.f64)) x-scale)) (/.f64 (*.f64 (*.f64 angle (PI.f64)) (*.f64 y-scale 1/540)) x-scale))) (PI.f64)))
51.7b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (/.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (*.f64 angle 1/180) (PI.f64)))) 3) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale)))) (PI.f64)))
42.9b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (exp.f64 (log.f64 (*.f64 y-scale (pow.f64 x-scale -2)))) (/.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))) (PI.f64)))
34.7b
(*.f64 180 (/.f64 (atan.f64 (*.f64 (/.f64 y-scale x-scale) (/.f64 (neg.f64 (cos.f64 (*.f64 angle (*.f64 (PI.f64) 1/180)))) (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180)))))) (PI.f64)))
39.9b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (log.f64 (pow.f64 (exp.f64 y-scale) (pow.f64 x-scale -2))) (/.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))) (PI.f64)))
57.8b
(*.f64 180 (/.f64 (atan.f64 (pow.f64 (*.f64 (sqrt.f64 x-scale) (/.f64 (sqrt.f64 (/.f64 y-scale (tan.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))) x-scale)) 2)) (PI.f64)))
35.9b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1 (/.f64 (*.f64 y-scale (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (*.f64 x-scale (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))) (PI.f64)))
45.7b
(*.f64 180 (/.f64 (atan.f64 (exp.f64 (log.f64 (*.f64 x-scale (/.f64 (*.f64 y-scale (pow.f64 x-scale -2)) (tan.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))))))) (PI.f64)))
36.4b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 2 (/.f64 (*.f64 y-scale (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (*.f64 (pow.f64 x-scale 2) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))))) (PI.f64)))
52.2b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (/.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 1 (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale)))) (PI.f64)))
49.4b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (/.f64 (*.f64 y-scale (+.f64 (*.f64 (pow.f64 a 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 b 2)) (sqrt.f64 (+.f64 (*.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))))) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 b 4)) (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)))))))) (*.f64 (-.f64 (exp.f64 (log1p.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) 1) (*.f64 (pow.f64 x-scale 2) (*.f64 (-.f64 (pow.f64 b 2) (pow.f64 a 2)) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))))) (PI.f64)))
34.1b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180))))))))) (PI.f64)))
43.8b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (neg.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 y-scale (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))) (/.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (*.f64 x-scale x-scale))) (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (+.f64 (*.f64 (/.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))) (/.f64 (*.f64 b b) (*.f64 a a))) (/.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (/.f64 (*.f64 (*.f64 a a) (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))) (*.f64 b b))))))))))) (PI.f64)))
33.8b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (*.f64 (/.f64 y-scale x-scale) (/.f64 1 x-scale)) (/.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))) (PI.f64)))
53.6b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 1/2 (/.f64 (*.f64 y-scale (-.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 y-scale 2)) (+.f64 (sqrt.f64 (-.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 x-scale 4)) (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (pow.f64 y-scale 4)) (*.f64 3 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (*.f64 (pow.f64 x-scale 2) (pow.f64 y-scale 2)))))) (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2)) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))) (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (pow.f64 x-scale 2))))) (*.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))) (PI.f64)))
35.1b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 -2 (/.f64 (*.f64 y-scale (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (*.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (pow.f64 x-scale 2))))))) (PI.f64)))
33.8b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 1 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))) (PI.f64)))
49.8b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 (fma.f64 (*.f64 a a) (pow.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 2) (fma.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 2) (*.f64 b b) (sqrt.f64 (fma.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 2) (*.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 2))) (fma.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 4) (pow.f64 b 4) (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 4))))))) (*.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (-.f64 (*.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (*.f64 b b)) (*.f64 (*.f64 a a) (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))))) (PI.f64)))
35.1b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 3)) (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))) (PI.f64)))
Compiler

Compiled 6224 to 4323 computations (30.5% saved)

localize17.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
4.7b
(*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 1 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))))
5.9b
(/.f64 y-scale (*.f64 x-scale x-scale))
13.7b
(*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 1 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))
24.5b
(sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))

series155.0ms (0.1%)

Counts
2 → 72
Calls

18 calls:

15.0ms
(*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 1 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))))
y-scale
0
15.0ms
(*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 1 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))))
y-scale
inf
14.0ms
(*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 1 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))))
y-scale
-inf
13.0ms
(*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 1 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))))
angle
inf
12.0ms
(*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 1 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))))
angle
-inf

rewrite34.0ms (0%)

Algorithm
batch-egg-rewrite
Rules
193×add-sqr-sqrt_binary64
180×log1p-expm1-u_binary64
180×expm1-log1p-u_binary64
179×add-cbrt-cube_binary64
179×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01944
140041
Stop Event
node limit
Counts
2 → 78

simplify53.0ms (0%)

Algorithm
egg-herbie
Rules
596×cancel-sign-sub-inv_binary64
450×fma-neg_binary64
333×times-frac_binary64
285×associate-*r*_binary64
281×associate-/r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0621536
11891536
27021530
337751530
Stop Event
node limit
Counts
150 → 97

prune343.0ms (0.2%)

Pruning

21 alts after pruning (21 fresh and 0 done)

PrunedKeptTotal
New1509159
Fresh61218
Picked101
Done000
Total15721178
Error
12.1b
Counts
178 → 21
Alt Table
StatusErrorProgram
37.0b
(*.f64 180 (/.f64 (atan.f64 (fma.f64 -180 (/.f64 y-scale (*.f64 x-scale (*.f64 angle (PI.f64)))) (*.f64 (*.f64 (*.f64 angle (PI.f64)) (/.f64 y-scale x-scale)) -1/1080))) (PI.f64)))
51.7b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (/.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (pow.f64 (cbrt.f64 (sin.f64 (*.f64 (*.f64 angle 1/180) (PI.f64)))) 3) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale)))) (PI.f64)))
42.1b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 2 (/.f64 (neg.f64 y-scale) (*.f64 x-scale (*.f64 x-scale (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))))) (PI.f64)))
34.1b
(*.f64 180 (/.f64 (atan.f64 (/.f64 (/.f64 (neg.f64 y-scale) x-scale) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) (PI.f64)))
38.9b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (log.f64 (pow.f64 (exp.f64 y-scale) (pow.f64 x-scale -2))) (/.f64 1 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))) (PI.f64)))
57.8b
(*.f64 180 (/.f64 (atan.f64 (pow.f64 (*.f64 (sqrt.f64 x-scale) (/.f64 (sqrt.f64 (/.f64 y-scale (tan.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))) x-scale)) 2)) (PI.f64)))
35.9b
(*.f64 180 (/.f64 (atan.f64 (*.f64 -1 (/.f64 (*.f64 y-scale (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (*.f64 x-scale (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))))) (PI.f64)))
44.2b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 2 (exp.f64 (log.f64 (*.f64 (/.f64 y-scale (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (pow.f64 x-scale -2)))))))) (PI.f64)))
33.8b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (*.f64 (/.f64 y-scale x-scale) (/.f64 1 x-scale)) (/.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))) (PI.f64)))
40.1b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 2 (/.f64 (*.f64 -1 (*.f64 y-scale (pow.f64 x-scale -2))) (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))))))) (PI.f64)))
45.7b
(*.f64 180 (/.f64 (atan.f64 (exp.f64 (log.f64 (*.f64 x-scale (/.f64 (*.f64 y-scale (pow.f64 x-scale -2)) (tan.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))))))) (PI.f64)))
47.4b
(*.f64 180 (/.f64 (atan.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 x-scale (*.f64 (/.f64 y-scale (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (pow.f64 x-scale -2))))) 1)) (PI.f64)))
52.2b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (/.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)) (*.f64 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)) (*.f64 x-scale x-scale)) (hypot.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)) (*.f64 x-scale x-scale)) (/.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)) (*.f64 y-scale y-scale))) (*.f64 (/.f64 2 y-scale) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (-.f64 (*.f64 b b) (*.f64 a a))) (/.f64 x-scale (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))))))))) (/.f64 (*.f64 (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 1 (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) y-scale)))) (PI.f64)))
49.3b
(*.f64 180 (/.f64 (atan.f64 (exp.f64 (log.f64 (*.f64 x-scale (*.f64 (/.f64 y-scale (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (pow.f64 x-scale -2)))))) (PI.f64)))
34.7b
(*.f64 180 (/.f64 (atan.f64 (*.f64 (/.f64 y-scale x-scale) (/.f64 (neg.f64 (cos.f64 (*.f64 angle (*.f64 (PI.f64) 1/180)))) (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180)))))) (PI.f64)))
34.1b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (sin.f64 (*.f64 angle (*.f64 (PI.f64) 1/180))))))))) (PI.f64)))
43.8b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (neg.f64 (*.f64 2 (+.f64 (*.f64 (/.f64 y-scale (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))) (/.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (*.f64 x-scale x-scale))) (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (+.f64 (*.f64 (/.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))) (/.f64 (*.f64 b b) (*.f64 a a))) (/.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (/.f64 (*.f64 (*.f64 a a) (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64)))) (*.f64 b b))))))))))) (PI.f64)))
58.0b
(*.f64 180 (/.f64 (atan.f64 (pow.f64 (*.f64 (sqrt.f64 x-scale) (/.f64 (sqrt.f64 (/.f64 y-scale (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))))) x-scale)) 2)) (PI.f64)))
35.1b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 -2 (/.f64 (*.f64 y-scale (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (*.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) (pow.f64 x-scale 2))))))) (PI.f64)))
49.8b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 (fma.f64 (*.f64 a a) (pow.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 2) (fma.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 2) (*.f64 b b) (sqrt.f64 (fma.f64 2 (*.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 2) (*.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 2))) (fma.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 4) (pow.f64 b 4) (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 4))))))) (*.f64 (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (-.f64 (*.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) (*.f64 b b)) (*.f64 (*.f64 a a) (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))))) (PI.f64)))
35.1b
(*.f64 180 (/.f64 (atan.f64 (*.f64 x-scale (*.f64 -1/2 (*.f64 2 (*.f64 (/.f64 y-scale (*.f64 x-scale x-scale)) (/.f64 (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))) 3)) (sin.f64 (*.f64 (*.f64 1/180 angle) (PI.f64))))))))) (PI.f64)))
Compiler

Compiled 5540 to 3776 computations (31.8% saved)

regimes4.7s (3.1%)

Compiler

Compiled 128569 to 90457 computations (29.6% saved)

Profiling

Loading profile data...