Details

Time bar (total: 1.9min)

analyze18.4s (16.5%)

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
0%99.8%0.2%11
0%99.8%0.2%12
0%99.8%0.2%13
0%99.8%0.2%14
Compiler

Compiled 189 to 125 computations (33.9% saved)

sample858.0ms (0.8%)

Algorithm
intervals
Results
331.0ms63×body1024valid
160.0ms32×body1024invalid
99.0ms143×body128valid
98.0ms29×body512valid
43.0ms13×body512invalid
35.0ms19×body256valid
30.0ms43×body128invalid
17.0msbody2048valid
12.0msbody256invalid
Compiler

Compiled 382 to 254 computations (33.5% saved)

simplify59.0ms (0.1%)

Algorithm
egg-herbie
Rules
742×times-frac_binary64
686×associate-*l*_binary64
303×associate-/r*_binary64
262×associate-/l*_binary64
190×associate-*l/_binary64
Counts
1 → 1
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
057292
1159287
2592287
34709283
45020283

prune14.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New101
Fresh011
Picked000
Done000
Total112
Error
63.6b
Counts
2 → 1
Alt Table
StatusErrorProgram
63.6b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 2 (/.f64 (*.f64 4 (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 x-scale y-scale) 2))) (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))) (+.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)) (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 4 (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 x-scale y-scale) 2)))
Compiler

Compiled 559 to 368 computations (34.2% saved)

localize88.0ms (0.1%)

Local error

Found 4 expressions with local error:

26.3b
(cos.f64 (*.f64 (/.f64 angle 180) PI.f64))
26.3b
(cos.f64 (*.f64 (/.f64 angle 180) PI.f64))
26.3b
(cos.f64 (*.f64 (/.f64 angle 180) PI.f64))
45.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 2 (/.f64 (*.f64 4 (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 x-scale y-scale) 2))) (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))) (+.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)) (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 4 (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 x-scale y-scale) 2)))

rewrite3.4s (3%)

Algorithm
rewrite-expression-head
Error
63.4b
Rules
198×times-frac_binary64
130×add-exp-log_binary64
63×add-cube-cbrt_binary64 add-sqr-sqrt_binary64 *-un-lft-identity_binary64
58×prod-exp_binary64
49×div-exp_binary64
Counts
4 → 225
Calls

4 calls:

27.0ms
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 2 (/.f64 (*.f64 4 (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 x-scale y-scale) 2))) (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))) (+.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)) (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 4 (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 x-scale y-scale) 2)))
2.0ms
(cos.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(cos.f64 (*.f64 (/.f64 angle 180) PI.f64))
2.0ms
(cos.f64 (*.f64 (/.f64 angle 180) PI.f64))
Compiler

Compiled 67488 to 42888 computations (36.5% saved)

series45.7s (40.9%)

Error
51.1b
Counts
4 → 28
Calls

4 calls:

44.9s
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 2 (/.f64 (*.f64 4 (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 x-scale y-scale) 2))) (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))) (+.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)) (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 4 (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 x-scale y-scale) 2)))
29.0ms
(cos.f64 (*.f64 (/.f64 angle 180) PI.f64))
28.0ms
(cos.f64 (*.f64 (/.f64 angle 180) PI.f64))
26.0ms
(cos.f64 (*.f64 (/.f64 angle 180) PI.f64))
Compiler

Compiled 141863 to 101720 computations (28.3% saved)

simplify1.9s (1.7%)

Algorithm
egg-herbie
Rules
361×*-commutative_binary64
226×distribute-rgt-in_binary64
222×distribute-lft-in_binary64
201×associate-*r*_binary64
148×distribute-frac-neg_binary64
Counts
253 → 236
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01097119416
13274112135
25182112135

prune2.3s (2.1%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New22214236
Fresh000
Picked101
Done000
Total22314237
Error
50.8b
Counts
237 → 14
Alt Table
StatusErrorProgram
57.8b
(*.f64 1/4 (*.f64 (*.f64 x-scale (sqrt.f64 8)) (sqrt.f64 (+.f64 (*.f64 (*.f64 a a) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (sqrt.f64 (+.f64 (*.f64 (pow.f64 a 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (*.f64 2 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))))))))))))
62.3b
(*.f64 -1/4 (*.f64 (*.f64 a (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale))) (sqrt.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 x-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 x-scale 4)) (+.f64 (*.f64 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)) (pow.f64 (*.f64 y-scale x-scale) 2))) (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 y-scale 4))))))))))
62.5b
(*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 a a) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (*.f64 b b) (*.f64 x-scale x-scale)) (sqrt.f64 (-.f64 (+.f64 (/.f64 (pow.f64 b 4) (pow.f64 x-scale 4)) (/.f64 (pow.f64 a 4) (pow.f64 y-scale 4))) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 (*.f64 y-scale x-scale) 2))))))))))
62.4b
(*.f64 -1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 y-scale y-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 y-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 a 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (pow.f64 y-scale 4)) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))) (pow.f64 y-scale 4)))))))))))
61.2b
(*.f64 1/4 (*.f64 (*.f64 a (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale))) (sqrt.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 x-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 x-scale 4)) (+.f64 (*.f64 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)) (pow.f64 (*.f64 y-scale x-scale) 2))) (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 y-scale 4))))))))))
63.1b
(*.f64 1/4 (*.f64 (sqrt.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 x-scale x-scale)) (+.f64 (sqrt.f64 (+.f64 (*.f64 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)) (pow.f64 (*.f64 y-scale x-scale) 2))) (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 x-scale 4)) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 y-scale 4))))) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 y-scale y-scale))))) (*.f64 (sqrt.f64 8) (*.f64 (*.f64 y-scale x-scale) b))))
63.1b
(*.f64 -1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 x-scale x-scale)) (+.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (*.f64 x-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (pow.f64 x-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 x-scale 4)) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))) (pow.f64 x-scale 4)))))))))))
62.2b
(*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 y-scale y-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 y-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 a 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (pow.f64 y-scale 4)) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))) (pow.f64 y-scale 4)))))))))))
63.4b
(*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 x-scale x-scale)) (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 y-scale y-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 y-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 x-scale 4)) (*.f64 2 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (pow.f64 b 4))) (pow.f64 (*.f64 y-scale x-scale) 2)))))))))))
63.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 2 (*.f64 4 (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a))))) (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))) (+.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)) (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 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2)) (fabs.f64 (*.f64 y-scale x-scale))))
63.2b
(*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 x-scale x-scale)) (+.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (*.f64 x-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (pow.f64 x-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 x-scale 4)) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))) (pow.f64 x-scale 4)))))))))))
60.1b
(*.f64 1/4 (*.f64 (*.f64 y-scale (sqrt.f64 8)) (sqrt.f64 (+.f64 (*.f64 (*.f64 a a) (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) (*.f64 b b)) (sqrt.f64 (+.f64 (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (*.f64 2 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))))))))))))
62.3b
(*.f64 (*.f64 (sqrt.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 x-scale x-scale)) (+.f64 (sqrt.f64 (+.f64 (*.f64 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)) (pow.f64 (*.f64 y-scale x-scale) 2))) (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 x-scale 4)) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 y-scale 4))))) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 y-scale y-scale))))) (*.f64 (sqrt.f64 8) (*.f64 (*.f64 y-scale x-scale) b))) -1/4)
63.6b
(*.f64 (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a))) (*.f64 2 (/.f64 (*.f64 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2))))) (*.f64 (cbrt.f64 (/.f64 (*.f64 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2))) (cbrt.f64 (/.f64 (*.f64 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2))))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (+.f64 (/.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 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 PI.f64 (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 PI.f64 (/.f64 angle 180)))) 2)) (*.f64 y-scale y-scale))) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.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 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 PI.f64 (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 PI.f64 (/.f64 angle 180)))) 2)) (*.f64 y-scale y-scale))) 2) (pow.f64 (/.f64 (*.f64 (cos.f64 (*.f64 PI.f64 (/.f64 angle 180))) (*.f64 (sin.f64 (*.f64 PI.f64 (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) (*.f64 y-scale x-scale)) 2)))))) (cbrt.f64 (/.f64 (*.f64 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2)))))
Compiler

Compiled 72606 to 44024 computations (39.4% saved)

localize54.0ms (0%)

Local error

Found 4 expressions with local error:

26.3b
(cos.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
26.3b
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
26.3b
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
26.3b
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))

rewrite248.0ms (0.2%)

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

4 calls:

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

Compiled 2665 to 1685 computations (36.8% saved)

series106.0ms (0.1%)

Error
50.8b
Counts
4 → 13
Calls

4 calls:

20.0ms
(cos.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
20.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
19.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
17.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
Compiler

Compiled 2902 to 1978 computations (31.8% saved)

simplify105.0ms (0.1%)

Algorithm
egg-herbie
Rules
900×distribute-rgt-neg-in_binary64
875×distribute-lft-neg-in_binary64
488×sub-neg_binary64
472×neg-mul-1_binary64
468×neg-sub0_binary64
Counts
41 → 4
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
030609
161525
2137525
3534525
41032525
51543525
62619525
73609525
84568525
94864525

prune116.0ms (0.1%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New404
Fresh01313
Picked011
Done000
Total41418
Error
50.8b
Counts
18 → 14
Alt Table
StatusErrorProgram
57.8b
(*.f64 1/4 (*.f64 (*.f64 x-scale (sqrt.f64 8)) (sqrt.f64 (+.f64 (*.f64 (*.f64 a a) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (sqrt.f64 (+.f64 (*.f64 (pow.f64 a 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (*.f64 2 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))))))))))))
62.3b
(*.f64 -1/4 (*.f64 (*.f64 a (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale))) (sqrt.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 x-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 x-scale 4)) (+.f64 (*.f64 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)) (pow.f64 (*.f64 y-scale x-scale) 2))) (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 y-scale 4))))))))))
62.5b
(*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 a a) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (*.f64 b b) (*.f64 x-scale x-scale)) (sqrt.f64 (-.f64 (+.f64 (/.f64 (pow.f64 b 4) (pow.f64 x-scale 4)) (/.f64 (pow.f64 a 4) (pow.f64 y-scale 4))) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 (*.f64 y-scale x-scale) 2))))))))))
62.4b
(*.f64 -1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 y-scale y-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 y-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 a 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (pow.f64 y-scale 4)) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))) (pow.f64 y-scale 4)))))))))))
61.2b
(*.f64 1/4 (*.f64 (*.f64 a (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale))) (sqrt.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 x-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 x-scale 4)) (+.f64 (*.f64 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)) (pow.f64 (*.f64 y-scale x-scale) 2))) (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 y-scale 4))))))))))
63.1b
(*.f64 1/4 (*.f64 (sqrt.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 x-scale x-scale)) (+.f64 (sqrt.f64 (+.f64 (*.f64 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)) (pow.f64 (*.f64 y-scale x-scale) 2))) (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 x-scale 4)) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 y-scale 4))))) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 y-scale y-scale))))) (*.f64 (sqrt.f64 8) (*.f64 (*.f64 y-scale x-scale) b))))
63.1b
(*.f64 -1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 x-scale x-scale)) (+.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (*.f64 x-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (pow.f64 x-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 x-scale 4)) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))) (pow.f64 x-scale 4)))))))))))
62.2b
(*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 y-scale y-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 y-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 a 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (pow.f64 y-scale 4)) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))) (pow.f64 y-scale 4)))))))))))
63.4b
(*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 x-scale x-scale)) (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 y-scale y-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 y-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 x-scale 4)) (*.f64 2 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (pow.f64 b 4))) (pow.f64 (*.f64 y-scale x-scale) 2)))))))))))
63.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 2 (*.f64 4 (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a))))) (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))) (+.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)) (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 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2)) (fabs.f64 (*.f64 y-scale x-scale))))
63.2b
(*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 x-scale x-scale)) (+.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (*.f64 x-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (pow.f64 x-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 x-scale 4)) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))) (pow.f64 x-scale 4)))))))))))
60.1b
(*.f64 1/4 (*.f64 (*.f64 y-scale (sqrt.f64 8)) (sqrt.f64 (+.f64 (*.f64 (*.f64 a a) (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) (*.f64 b b)) (sqrt.f64 (+.f64 (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (*.f64 2 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))))))))))))
62.3b
(*.f64 (*.f64 (sqrt.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 x-scale x-scale)) (+.f64 (sqrt.f64 (+.f64 (*.f64 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)) (pow.f64 (*.f64 y-scale x-scale) 2))) (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 x-scale 4)) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 y-scale 4))))) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 y-scale y-scale))))) (*.f64 (sqrt.f64 8) (*.f64 (*.f64 y-scale x-scale) b))) -1/4)
63.6b
(*.f64 (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a))) (*.f64 2 (/.f64 (*.f64 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2))))) (*.f64 (cbrt.f64 (/.f64 (*.f64 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2))) (cbrt.f64 (/.f64 (*.f64 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2))))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (+.f64 (/.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 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 PI.f64 (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 PI.f64 (/.f64 angle 180)))) 2)) (*.f64 y-scale y-scale))) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.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 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 PI.f64 (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 PI.f64 (/.f64 angle 180)))) 2)) (*.f64 y-scale y-scale))) 2) (pow.f64 (/.f64 (*.f64 (cos.f64 (*.f64 PI.f64 (/.f64 angle 180))) (*.f64 (sin.f64 (*.f64 PI.f64 (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) (*.f64 y-scale x-scale)) 2)))))) (cbrt.f64 (/.f64 (*.f64 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2)))))
Compiler

Compiled 3506 to 2341 computations (33.2% saved)

localize50.0ms (0%)

Local error

Found 4 expressions with local error:

26.3b
(cos.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
26.3b
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
26.3b
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
26.3b
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))

rewrite245.0ms (0.2%)

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

4 calls:

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

Compiled 2665 to 1685 computations (36.8% saved)

series88.0ms (0.1%)

Error
50.8b
Counts
4 → 12
Calls

4 calls:

20.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
17.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
16.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
16.0ms
(cos.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
Compiler

Compiled 2693 to 1837 computations (31.8% saved)

simplify210.0ms (0.2%)

Algorithm
egg-herbie
Rules
1392×sqr-pow_binary64
724×unswap-sqr_binary64
592×cube-prod_binary64
500×fabs-mul_binary64
470×pow-sqr_binary64
Counts
40 → 4
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
023585
131501
240501
347501
454501
569501
6106501
7207501
8551501
91147501
101286501
111549501
121854501
132148501
142550501
152904501
163087501
173344501
183483501
193562501
203642501
214400501
224802501

prune112.0ms (0.1%)

Pruning

15 alts after pruning (13 fresh and 2 done)

PrunedKeptTotal
New314
Fresh01212
Picked011
Done011
Total31518
Error
50.8b
Counts
18 → 15
Alt Table
StatusErrorProgram
57.8b
(*.f64 1/4 (*.f64 (*.f64 x-scale (sqrt.f64 8)) (sqrt.f64 (+.f64 (*.f64 (*.f64 a a) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (sqrt.f64 (+.f64 (*.f64 (pow.f64 a 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (*.f64 2 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))))))))))))
62.3b
(*.f64 -1/4 (*.f64 (*.f64 a (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale))) (sqrt.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 x-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 x-scale 4)) (+.f64 (*.f64 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)) (pow.f64 (*.f64 y-scale x-scale) 2))) (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 y-scale 4))))))))))
62.5b
(*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 a a) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (*.f64 b b) (*.f64 x-scale x-scale)) (sqrt.f64 (-.f64 (+.f64 (/.f64 (pow.f64 b 4) (pow.f64 x-scale 4)) (/.f64 (pow.f64 a 4) (pow.f64 y-scale 4))) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 (*.f64 y-scale x-scale) 2))))))))))
62.4b
(*.f64 -1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 y-scale y-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 y-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 a 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (pow.f64 y-scale 4)) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))) (pow.f64 y-scale 4)))))))))))
61.2b
(*.f64 1/4 (*.f64 (*.f64 a (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale))) (sqrt.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 x-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 x-scale 4)) (+.f64 (*.f64 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)) (pow.f64 (*.f64 y-scale x-scale) 2))) (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 y-scale 4))))))))))
63.1b
(*.f64 1/4 (*.f64 (sqrt.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 x-scale x-scale)) (+.f64 (sqrt.f64 (+.f64 (*.f64 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)) (pow.f64 (*.f64 y-scale x-scale) 2))) (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 x-scale 4)) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 y-scale 4))))) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 y-scale y-scale))))) (*.f64 (sqrt.f64 8) (*.f64 (*.f64 y-scale x-scale) b))))
60.1b
(*.f64 1/4 (*.f64 (*.f64 y-scale (sqrt.f64 8)) (sqrt.f64 (+.f64 (*.f64 (*.f64 a a) (pow.f64 (cbrt.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 3)) 2)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (sqrt.f64 (+.f64 (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (*.f64 2 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))))))))))))
63.1b
(*.f64 -1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 x-scale x-scale)) (+.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (*.f64 x-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (pow.f64 x-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 x-scale 4)) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))) (pow.f64 x-scale 4)))))))))))
62.2b
(*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 y-scale y-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 y-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 a 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (pow.f64 y-scale 4)) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))) (pow.f64 y-scale 4)))))))))))
63.4b
(*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 x-scale x-scale)) (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 y-scale y-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 y-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 x-scale 4)) (*.f64 2 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (pow.f64 b 4))) (pow.f64 (*.f64 y-scale x-scale) 2)))))))))))
63.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 2 (*.f64 4 (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a))))) (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))) (+.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)) (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 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2)) (fabs.f64 (*.f64 y-scale x-scale))))
63.2b
(*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 x-scale x-scale)) (+.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (*.f64 x-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (pow.f64 x-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 x-scale 4)) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))) (pow.f64 x-scale 4)))))))))))
60.1b
(*.f64 1/4 (*.f64 (*.f64 y-scale (sqrt.f64 8)) (sqrt.f64 (+.f64 (*.f64 (*.f64 a a) (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) (*.f64 b b)) (sqrt.f64 (+.f64 (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (*.f64 2 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))))))))))))
62.3b
(*.f64 (*.f64 (sqrt.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 x-scale x-scale)) (+.f64 (sqrt.f64 (+.f64 (*.f64 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)) (pow.f64 (*.f64 y-scale x-scale) 2))) (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 x-scale 4)) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 y-scale 4))))) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 y-scale y-scale))))) (*.f64 (sqrt.f64 8) (*.f64 (*.f64 y-scale x-scale) b))) -1/4)
63.6b
(*.f64 (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a))) (*.f64 2 (/.f64 (*.f64 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2))))) (*.f64 (cbrt.f64 (/.f64 (*.f64 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2))) (cbrt.f64 (/.f64 (*.f64 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2))))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (+.f64 (/.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 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 PI.f64 (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 PI.f64 (/.f64 angle 180)))) 2)) (*.f64 y-scale y-scale))) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.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 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 PI.f64 (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 PI.f64 (/.f64 angle 180)))) 2)) (*.f64 y-scale y-scale))) 2) (pow.f64 (/.f64 (*.f64 (cos.f64 (*.f64 PI.f64 (/.f64 angle 180))) (*.f64 (sin.f64 (*.f64 PI.f64 (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) (*.f64 y-scale x-scale)) 2)))))) (cbrt.f64 (/.f64 (*.f64 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2)))))
Compiler

Compiled 3605 to 2411 computations (33.1% saved)

localize56.0ms (0.1%)

Local error

Found 4 expressions with local error:

26.3b
(cos.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
26.3b
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
26.3b
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
26.3b
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))

rewrite247.0ms (0.2%)

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

4 calls:

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

Compiled 2749 to 1769 computations (35.6% saved)

series99.0ms (0.1%)

Error
50.8b
Counts
4 → 12
Calls

4 calls:

19.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
19.0ms
(cos.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
18.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
17.0ms
(sin.f64 (*.f64 1/180 (*.f64 angle PI.f64)))
Compiler

Compiled 2780 to 1924 computations (30.8% saved)

simplify212.0ms (0.2%)

Algorithm
egg-herbie
Rules
1392×sqr-pow_binary64
724×unswap-sqr_binary64
592×cube-prod_binary64
500×fabs-mul_binary64
470×pow-sqr_binary64
Counts
40 → 4
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
023585
131501
240501
347501
454501
569501
6106501
7207501
8551501
91147501
101286501
111549501
121854501
132148501
142550501
152904501
163087501
173344501
183483501
193562501
203642501
214400501
224802501

prune82.0ms (0.1%)

Pruning

15 alts after pruning (13 fresh and 2 done)

PrunedKeptTotal
New314
Fresh01212
Picked101
Done022
Total41519
Error
50.8b
Counts
19 → 15
Alt Table
StatusErrorProgram
57.8b
(*.f64 1/4 (*.f64 (*.f64 x-scale (sqrt.f64 8)) (sqrt.f64 (+.f64 (*.f64 (*.f64 a a) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (sqrt.f64 (+.f64 (*.f64 (pow.f64 a 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (*.f64 2 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))))))))))))
62.3b
(*.f64 -1/4 (*.f64 (*.f64 a (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale))) (sqrt.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 x-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 x-scale 4)) (+.f64 (*.f64 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)) (pow.f64 (*.f64 y-scale x-scale) 2))) (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 y-scale 4))))))))))
62.5b
(*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 a a) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (*.f64 b b) (*.f64 x-scale x-scale)) (sqrt.f64 (-.f64 (+.f64 (/.f64 (pow.f64 b 4) (pow.f64 x-scale 4)) (/.f64 (pow.f64 a 4) (pow.f64 y-scale 4))) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 (*.f64 y-scale x-scale) 2))))))))))
62.4b
(*.f64 -1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 y-scale y-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 y-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 a 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (pow.f64 y-scale 4)) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))) (pow.f64 y-scale 4)))))))))))
61.2b
(*.f64 1/4 (*.f64 (*.f64 a (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale))) (sqrt.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 x-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 x-scale 4)) (+.f64 (*.f64 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)) (pow.f64 (*.f64 y-scale x-scale) 2))) (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 y-scale 4))))))))))
63.1b
(*.f64 1/4 (*.f64 (sqrt.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 x-scale x-scale)) (+.f64 (sqrt.f64 (+.f64 (*.f64 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)) (pow.f64 (*.f64 y-scale x-scale) 2))) (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 x-scale 4)) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 y-scale 4))))) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 y-scale y-scale))))) (*.f64 (sqrt.f64 8) (*.f64 (*.f64 y-scale x-scale) b))))
63.1b
(*.f64 -1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 x-scale x-scale)) (+.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (*.f64 x-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (pow.f64 x-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 x-scale 4)) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))) (pow.f64 x-scale 4)))))))))))
62.2b
(*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (*.f64 y-scale y-scale)) (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 y-scale y-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 y-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 a 4) (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (pow.f64 y-scale 4)) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))) (pow.f64 y-scale 4)))))))))))
63.4b
(*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 x-scale x-scale)) (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 y-scale y-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 y-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 x-scale 4)) (*.f64 2 (/.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (pow.f64 b 4))) (pow.f64 (*.f64 y-scale x-scale) 2)))))))))))
63.4b
(/.f64 (neg.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 2 (*.f64 4 (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a))))) (*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))) (+.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)) (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 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2)) (fabs.f64 (*.f64 y-scale x-scale))))
63.2b
(*.f64 1/4 (*.f64 (*.f64 (sqrt.f64 8) (*.f64 y-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (*.f64 x-scale x-scale)) (+.f64 (/.f64 (*.f64 (*.f64 a a) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2)) (*.f64 x-scale x-scale)) (sqrt.f64 (+.f64 (/.f64 (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (pow.f64 x-scale 4)) (+.f64 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (pow.f64 x-scale 4)) (*.f64 2 (/.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))) (pow.f64 x-scale 4)))))))))))
60.1b
(*.f64 1/4 (*.f64 (*.f64 y-scale (sqrt.f64 8)) (sqrt.f64 (+.f64 (*.f64 (*.f64 a a) (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) (*.f64 b b)) (sqrt.f64 (+.f64 (*.f64 (pow.f64 a 4) (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (*.f64 2 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))))))))))))
62.3b
(*.f64 (*.f64 (sqrt.f64 (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 x-scale x-scale)) (+.f64 (sqrt.f64 (+.f64 (*.f64 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)) (pow.f64 (*.f64 y-scale x-scale) 2))) (+.f64 (/.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 x-scale 4)) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 y-scale 4))))) (/.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 y-scale y-scale))))) (*.f64 (sqrt.f64 8) (*.f64 (*.f64 y-scale x-scale) b))) -1/4)
63.6b
(*.f64 (/.f64 (sqrt.f64 (*.f64 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a))) (*.f64 2 (/.f64 (*.f64 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2))))) (*.f64 (cbrt.f64 (/.f64 (*.f64 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2))) (cbrt.f64 (/.f64 (*.f64 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2))))) (/.f64 (neg.f64 (sqrt.f64 (+.f64 (+.f64 (/.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 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 PI.f64 (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 PI.f64 (/.f64 angle 180)))) 2)) (*.f64 y-scale y-scale))) (sqrt.f64 (+.f64 (pow.f64 (-.f64 (/.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 (+.f64 (pow.f64 (*.f64 a (cos.f64 (*.f64 PI.f64 (/.f64 angle 180)))) 2) (pow.f64 (*.f64 b (sin.f64 (*.f64 PI.f64 (/.f64 angle 180)))) 2)) (*.f64 y-scale y-scale))) 2) (pow.f64 (/.f64 (*.f64 (cos.f64 (*.f64 PI.f64 (/.f64 angle 180))) (*.f64 (sin.f64 (*.f64 PI.f64 (/.f64 angle 180))) (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))))) (*.f64 y-scale x-scale)) 2)))))) (cbrt.f64 (/.f64 (*.f64 4 (*.f64 (*.f64 a b) (*.f64 b (neg.f64 a)))) (pow.f64 (*.f64 y-scale x-scale) 2)))))
60.1b
(*.f64 1/4 (*.f64 (*.f64 y-scale (sqrt.f64 8)) (sqrt.f64 (+.f64 (*.f64 (*.f64 a a) (pow.f64 (cbrt.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 3)) 2)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)) (sqrt.f64 (+.f64 (*.f64 (pow.f64 a 4) (pow.f64 (cbrt.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 3)) 4)) (+.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 4) (pow.f64 b 4)) (*.f64 2 (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle PI.f64))) 2) (*.f64 b b)))))))))))))
Compiler

Compiled 2095 to 1405 computations (32.9% saved)

regimes6.8s (6.1%)

Accuracy

Total 7.6b remaining (13.3%)

Threshold costs 0b (0%)

Compiler

Compiled 217564 to 144639 computations (33.5% saved)

bsearch670.0ms (0.6%)

Steps
ItersRangePoint
4
8.154612788466486e-243
1.572741542756604e-242
1.1057039992029384e-242
9
-6.9441683312375774e-06
-4.662152796447597e-15
-2.111515566880726e-12
Compiler

Compiled 6 to 5 computations (16.7% saved)

simplify10.0ms (0%)

Algorithm
egg-herbie
Rules
30×*-commutative_binary64
12×+-commutative_binary64
1-exp_binary64 *-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
093430
1135430
2133430

end6.0ms (0%)

Compiler

Compiled 272 to 181 computations (33.5% saved)

sample29.4s (26.3%)

Algorithm
intervals
Results
9.7s1889×body1024valid
4.9s936×body1024invalid
3.5s957×body512valid
3.2s4505×body128valid
1.8s519×body512invalid
1.4s192×body2048valid
1.3s1789×body128invalid
876.0ms457×body256valid
504.0ms239×body256invalid
Compiler

Compiled 2180 to 1463 computations (32.9% saved)

Profiling

Loading profile data...