Details

Time bar (total: 1.6min)

analyze16.8s (17.2%)

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
0%99.8%0.2%9
0%99.8%0.2%10
6.2%93.5%0.2%11
6.2%93.5%0.2%12
7.8%92%0.2%13
8.6%91.2%0.2%14
Compiler

Compiled 115 to 84 computations (27% saved)

sample2.8s (2.8%)

Algorithm
intervals
Results
696.0ms46×body4096valid
485.0ms50×body2048valid
433.0ms45×body2048invalid
412.0ms26×body4096invalid
159.0ms115×body128valid
158.0ms24×body1024invalid
149.0ms25×body1024valid
64.0msbody8192valid
43.0ms11×body512valid
42.0ms37×body128invalid
34.0msbody512invalid
32.0msbody8192invalid
21.0msbody256valid
10.0msbody256invalid
Compiler

Compiled 234 to 172 computations (26.5% saved)

simplify49.0ms (0.1%)

Algorithm
egg-herbie
Rules
600×associate-/l/_binary64
529×associate-/r/_binary64
282×div-sub_binary64
263×distribute-rgt-in_binary64
260×distribute-lft-in_binary64
Counts
1 → 2
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
040175
1104173
2316173
31431170
44673170
55335170

prune24.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
39.3b
Counts
3 → 2
Alt Table
StatusErrorProgram
39.7b
(-.f64 (*.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) (/.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)) (*.f64 (*.f64 4 (/.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)))
41.7b
(fma.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 (+.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) -4) (*.f64 (*.f64 (/.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 x-scale y-scale)) (/.f64 (cos.f64 (*.f64 (/.f64 angle 180) (PI.f64))) (*.f64 x-scale y-scale))) (*.f64 4 (*.f64 (*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))) (*.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (sin.f64 (*.f64 (/.f64 angle 180) (PI.f64))))))))
Compiler

Compiled 670 to 459 computations (31.5% saved)

localize81.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
10.8b
(*.f64 (*.f64 4 (/.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))
28.1b
(-.f64 (*.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) (/.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)) (*.f64 (*.f64 4 (/.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)))
28.9b
(cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))
29.3b
(sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))

series7.6s (7.8%)

Counts
4 → 144
Calls

4 calls:

5.8s
(-.f64 (*.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) (/.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)) (*.f64 (*.f64 4 (/.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)))
1.8s
(*.f64 (*.f64 4 (/.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))
7.0ms
(sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))
6.0ms
(cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))

rewrite208.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
84×times-frac_binary64
63×*-un-lft-identity_binary64
58×add-cbrt-cube_binary64
58×add-exp-log_binary64
52×associate-*r*_binary64
Counts
4 → 137
Calls

4 calls:

64.0ms
(-.f64 (*.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) (/.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)) (*.f64 (*.f64 4 (/.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)))
55.0ms
(*.f64 (*.f64 4 (/.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.0ms
(sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))
2.0ms
(cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))

simplify1.0s (1%)

Algorithm
egg-herbie
Rules
914×fma-def_binary64
576×times-frac_binary64
574×associate-/l*_binary64
196×*-commutative_binary64
150×fma-neg_binary64
Counts
281 → 280
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
058632099
1188330253
2492830092
3551130092

prune3.3s (3.4%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New41410424
Fresh101
Picked101
Done000
Total41610426
Error
24.6b
Counts
426 → 10
Alt Table
StatusErrorProgram
41.8b
(-.f64 (*.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) (/.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)) (*.f64 (*.f64 (*.f64 4 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)) (*.f64 x-scale x-scale))) (/.f64 (hypot.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (*.f64 (cbrt.f64 y-scale) (cbrt.f64 y-scale)))) (/.f64 (/.f64 (sqrt.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))) (cbrt.f64 y-scale)) y-scale)))
38.7b
(/.f64 (-.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) (/.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)) (*.f64 (*.f64 4 (/.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 (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)
37.4b
(*.f64 -1 (/.f64 (+.f64 (*.f64 4 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 y-scale 2))) (+.f64 (*.f64 4 (/.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4))) (pow.f64 y-scale 2))) (*.f64 8 (/.f64 (*.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)))) (pow.f64 y-scale 2))))) (pow.f64 x-scale 2)))
37.1b
(*.f64 -4 (/.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))
37.1b
(neg.f64 (*.f64 (*.f64 a a) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))))))))
41.2b
(-.f64 (*.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) (/.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)) (*.f64 (*.f64 (*.f64 4 (/.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 (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)) 1)) (/.f64 (/.f64 1 y-scale) y-scale)))
37.9b
(-.f64 (*.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) (/.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)) (/.f64 (*.f64 (*.f64 4 (/.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)) (/.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)) (*.f64 x-scale y-scale)))
52.3b
(/.f64 (-.f64 (*.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) (/.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)) x-scale) (*.f64 (*.f64 y-scale y-scale) (*.f64 (*.f64 4 (/.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)) (/.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 y-scale y-scale) x-scale))
57.4b
(-.f64 (*.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) (/.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)) (exp.f64 (+.f64 (+.f64 (log.f64 4) (-.f64 (log.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)) (log.f64 x-scale))) (-.f64 (log.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)) (log.f64 y-scale)))))
29.5b
0
Compiler

Compiled 56603 to 39070 computations (31% saved)

localize0.0ms (0%)

prune66.0ms (0.1%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New000
Fresh099
Picked011
Done000
Total01010
Error
24.6b
Counts
10 → 10
Alt Table
StatusErrorProgram
41.8b
(-.f64 (*.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) (/.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)) (*.f64 (*.f64 (*.f64 4 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)) (*.f64 x-scale x-scale))) (/.f64 (hypot.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (*.f64 (cbrt.f64 y-scale) (cbrt.f64 y-scale)))) (/.f64 (/.f64 (sqrt.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))) (cbrt.f64 y-scale)) y-scale)))
38.7b
(/.f64 (-.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) (/.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)) (*.f64 (*.f64 4 (/.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 (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)
37.4b
(*.f64 -1 (/.f64 (+.f64 (*.f64 4 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 y-scale 2))) (+.f64 (*.f64 4 (/.f64 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 2) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4))) (pow.f64 y-scale 2))) (*.f64 8 (/.f64 (*.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)))) (pow.f64 y-scale 2))))) (pow.f64 x-scale 2)))
37.1b
(*.f64 -4 (/.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))
37.1b
(neg.f64 (*.f64 (*.f64 a a) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))))))))
41.2b
(-.f64 (*.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) (/.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)) (*.f64 (*.f64 (*.f64 4 (/.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 (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)) 1)) (/.f64 (/.f64 1 y-scale) y-scale)))
37.9b
(-.f64 (*.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) (/.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)) (/.f64 (*.f64 (*.f64 4 (/.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)) (/.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)) (*.f64 x-scale y-scale)))
52.3b
(/.f64 (-.f64 (*.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) (/.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)) x-scale) (*.f64 (*.f64 y-scale y-scale) (*.f64 (*.f64 4 (/.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)) (/.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 y-scale y-scale) x-scale))
57.4b
(-.f64 (*.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) (/.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)) (exp.f64 (+.f64 (+.f64 (log.f64 4) (-.f64 (log.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)) (log.f64 x-scale))) (-.f64 (log.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)) (log.f64 y-scale)))))
29.5b
0
Compiler

Compiled 1844 to 1322 computations (28.3% saved)

localize68.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
16.2b
(*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))
21.2b
(*.f64 (*.f64 a a) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale)))))))
29.2b
(sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))
29.2b
(cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))

series3.4s (3.5%)

Counts
4 → 92
Calls

4 calls:

3.4s
(*.f64 (*.f64 a a) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale)))))))
20.0ms
(*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))
7.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))
7.0ms
(cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))

rewrite41.0ms (0%)

Algorithm
rewrite-expression-head
Rules
37×pow1_binary64
21×add-cbrt-cube_binary64
21×add-exp-log_binary64
17×pow-prod-down_binary64
11×cbrt-unprod_binary64
Counts
4 → 72
Calls

4 calls:

13.0ms
(*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))
8.0ms
(*.f64 (*.f64 a a) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale)))))))
3.0ms
(cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))
3.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))

simplify386.0ms (0.4%)

Algorithm
egg-herbie
Rules
419×cancel-sign-sub-inv_binary64
364×times-frac_binary64
359×unswap-sqr_binary64
313×associate-*r*_binary64
302×associate-*l*_binary64
Counts
164 → 125
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
025411897
171911004
2356910833
3502710833

prune1.8s (1.8%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New2345239
Fresh268
Picked101
Done011
Total23712249
Error
23.5b
Counts
249 → 12
Alt Table
StatusErrorProgram
41.2b
(-.f64 (*.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) (/.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)) (*.f64 (*.f64 (*.f64 4 (/.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 (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)) 1)) (/.f64 (/.f64 1 y-scale) y-scale)))
37.3b
(neg.f64 (/.f64 (*.f64 (*.f64 a a) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 x-scale x-scale)) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 x-scale x-scale)) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))) (*.f64 x-scale x-scale)))))) (*.f64 y-scale y-scale)))
41.8b
(-.f64 (*.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) (/.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)) (*.f64 (*.f64 (*.f64 4 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)) (*.f64 x-scale x-scale))) (/.f64 (hypot.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (*.f64 (cbrt.f64 y-scale) (cbrt.f64 y-scale)))) (/.f64 (/.f64 (sqrt.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))) (cbrt.f64 y-scale)) y-scale)))
38.7b
(/.f64 (-.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) (/.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)) (*.f64 (*.f64 4 (/.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 (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)
34.0b
(neg.f64 (*.f64 (*.f64 a (*.f64 a (sqrt.f64 (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 x-scale x-scale) (*.f64 y-scale y-scale))) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 x-scale x-scale) (*.f64 y-scale y-scale))) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))) (*.f64 (*.f64 x-scale x-scale) (*.f64 y-scale y-scale))))))))) (sqrt.f64 (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale)))))))))
33.6b
(neg.f64 (*.f64 a (*.f64 a (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale)))))))))
37.9b
(-.f64 (*.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) (/.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)) (/.f64 (*.f64 (*.f64 4 (/.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)) (/.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)) (*.f64 x-scale y-scale)))
52.3b
(/.f64 (-.f64 (*.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) (/.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)) x-scale) (*.f64 (*.f64 y-scale y-scale) (*.f64 (*.f64 4 (/.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)) (/.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 y-scale y-scale) x-scale))
57.4b
(-.f64 (*.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) (/.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)) (exp.f64 (+.f64 (+.f64 (log.f64 4) (-.f64 (log.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)) (log.f64 x-scale))) (-.f64 (log.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)) (log.f64 y-scale)))))
29.5b
0
36.8b
(neg.f64 (*.f64 (*.f64 a a) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (pow.f64 (*.f64 y-scale x-scale) 2)) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))))))))
50.9b
(neg.f64 (*.f64 (*.f64 a a) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (exp.f64 (*.f64 2 (log.f64 (*.f64 x-scale y-scale))))) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))))))))
Compiler

Compiled 24299 to 11626 computations (52.2% saved)

localize75.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
13.1b
(/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale)))
16.2b
(*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))
29.2b
(sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))
29.2b
(cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))

series548.0ms (0.6%)

Counts
1 → 48
Calls

1 calls:

548.0ms
(/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale)))

rewrite64.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
162×add-exp-log_binary64
101×prod-exp_binary64
70×add-cbrt-cube_binary64
39×cbrt-unprod_binary64
35×div-exp_binary64
Counts
1 → 65
Calls

1 calls:

27.0ms
(/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale)))

simplify183.0ms (0.2%)

Algorithm
egg-herbie
Rules
787×associate-/l/_binary64
512×times-frac_binary64
301×unswap-sqr_binary64
212×associate-/r*_binary64
204×associate-/l*_binary64
Counts
113 → 77
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01604788
13723780
225073630
350743630

prune1.8s (1.9%)

Pruning

16 alts after pruning (15 fresh and 1 done)

PrunedKeptTotal
New2587265
Fresh2810
Picked101
Done011
Total26116277
Error
22.9b
Counts
277 → 16
Alt Table
StatusErrorProgram
52.3b
(/.f64 (-.f64 (*.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) (/.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)) x-scale) (*.f64 (*.f64 y-scale y-scale) (*.f64 (*.f64 4 (/.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)) (/.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 y-scale y-scale) x-scale))
47.6b
(neg.f64 (*.f64 a (*.f64 a (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (*.f64 8 (/.f64 (*.f64 (pow.f64 (-.f64 (fma.f64 1/25194240000 (*.f64 (pow.f64 angle 4) (pow.f64 (PI.f64) 4)) 1) (*.f64 1/64800 (*.f64 (*.f64 angle angle) (pow.f64 (PI.f64) 2)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale)))))))))
33.5b
(neg.f64 (*.f64 a (*.f64 a (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (pow.f64 (*.f64 x-scale y-scale) 2)) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale)))))))))
29.5b
0
41.8b
(-.f64 (*.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) (/.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)) (*.f64 (*.f64 (*.f64 4 (/.f64 (+.f64 (pow.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) 2)) (*.f64 x-scale x-scale))) (/.f64 (hypot.f64 (*.f64 a (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 b (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (*.f64 (cbrt.f64 y-scale) (cbrt.f64 y-scale)))) (/.f64 (/.f64 (sqrt.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))) (cbrt.f64 y-scale)) y-scale)))
38.7b
(/.f64 (-.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) (/.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)) (*.f64 (*.f64 4 (/.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 (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)
46.5b
(neg.f64 (*.f64 a (*.f64 a (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (fma.f64 4 (fma.f64 1/629856000 (/.f64 (*.f64 (pow.f64 angle 4) (*.f64 (*.f64 b b) (pow.f64 (PI.f64) 4))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (fma.f64 (/.f64 b y-scale) (/.f64 b (*.f64 y-scale (*.f64 x-scale x-scale))) (fma.f64 (/.f64 (*.f64 (*.f64 angle angle) (*.f64 (*.f64 b b) (pow.f64 (PI.f64) 2))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) -1/16200 (*.f64 (/.f64 (*.f64 (pow.f64 angle 6) (*.f64 (*.f64 b b) (pow.f64 (PI.f64) 6))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) -17/765275040000000)))) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale)))))))))
58.5b
(neg.f64 (*.f64 a (*.f64 a (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (fma.f64 4 (exp.f64 (fma.f64 4 (log.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64))))) (*.f64 2 (-.f64 (log.f64 b) (log.f64 (*.f64 y-scale x-scale)))))) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale)))))))))
33.7b
(neg.f64 (*.f64 a (*.f64 a (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (fma.f64 4 (exp.f64 (-.f64 (log.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4))) (+.f64 (log.f64 (*.f64 y-scale y-scale)) (log.f64 (*.f64 x-scale x-scale))))) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale)))))))))
37.3b
(neg.f64 (/.f64 (*.f64 (*.f64 a a) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 x-scale x-scale)) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 x-scale x-scale)) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2))) (*.f64 x-scale x-scale)))))) (*.f64 y-scale y-scale)))
37.9b
(-.f64 (*.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) (/.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)) (/.f64 (*.f64 (*.f64 4 (/.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)) (/.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)) (*.f64 x-scale y-scale)))
57.4b
(-.f64 (*.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) (/.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)) (exp.f64 (+.f64 (+.f64 (log.f64 4) (-.f64 (log.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)) (log.f64 x-scale))) (-.f64 (log.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)) (log.f64 y-scale)))))
36.8b
(neg.f64 (*.f64 (*.f64 a a) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (pow.f64 (*.f64 y-scale x-scale) 2)) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))))))))
47.6b
(neg.f64 (*.f64 a (*.f64 a (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (exp.f64 (+.f64 (+.f64 (log.f64 y-scale) (log.f64 y-scale)) (log.f64 (*.f64 x-scale x-scale))))) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale)))))))))
49.8b
(neg.f64 (*.f64 a (*.f64 a (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (fma.f64 4 (exp.f64 (-.f64 (log.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4))) (+.f64 (log.f64 (*.f64 y-scale y-scale)) (+.f64 (log.f64 x-scale) (log.f64 x-scale))))) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale)))))))))
50.9b
(neg.f64 (*.f64 (*.f64 a a) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (exp.f64 (*.f64 2 (log.f64 (*.f64 x-scale y-scale))))) (fma.f64 4 (/.f64 (*.f64 (*.f64 b b) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4)) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b))) (*.f64 (*.f64 y-scale y-scale) (*.f64 x-scale x-scale))))))))
Compiler

Compiled 25028 to 11740 computations (53.1% saved)

regimes8.7s (8.9%)

Accuracy

Total 5.9b remaining (20.1%)

Threshold costs 0b (0%)

Counts
174 → 3
Compiler

Compiled 140748 to 88280 computations (37.3% saved)

bsearch1.3s (1.3%)

Steps
ItersRangePoint
3
2.671361318843754e+56
3.347731977794142e+56
2.7136344850281534e+56
8
-4.3831911712211924e-66
-7.281626692936573e-71
-5.291857281523912e-67
Compiler

Compiled 6 to 5 computations (16.7% saved)

simplify9.0ms (0%)

Algorithm
egg-herbie
Rules
20×*-commutative_binary64
distribute-lft-neg-in_binary64
distribute-rgt-neg-in_binary64
+-commutative_binary64
sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
053260
178260
2102260
3114260
4121260
5123260
6123260

end2.0ms (0%)

Compiler

Compiled 172 to 94 computations (45.3% saved)

sample47.6s (48.6%)

Algorithm
intervals
Results
12.3s1444×body4096valid
8.6s1673×body2048valid
7.0s855×body4096invalid
6.2s1118×body2048invalid
2.9s888×body1024valid
2.4s3380×body128valid
2.3s651×body1024invalid
1.2s72×body8192valid
938.0ms370×body512valid
654.0ms1056×body128invalid
599.0ms290×body512invalid
583.0ms34×body8192invalid
236.0ms173×body256valid
167.0ms130×body256invalid
Compiler

Compiled 1822 to 1165 computations (36.1% saved)

Profiling

Loading profile data...