Details

Time bar (total: 1.5min)

analyze13.2s (14.9%)

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
24.9%74.8%0.2%6
24.9%74.8%0.2%7
24.9%74.8%0.2%8
24.9%74.8%0.2%9
37.4%62.3%0.2%10
56.1%43.6%0.2%11
56.1%43.6%0.2%12
56.1%43.6%0.2%13
56.1%43.6%0.2%14
Compiler

Compiled 115 to 84 computations (27% saved)

sample55.2s (62.5%)

Results
22.7s1562×body4096valid
17.8s1930×body2048valid
6.4s1062×body1024valid
3.9s3003×body128valid
2.0s68×body8192valid
1.7s444×body512valid
448.0ms187×body256valid
Compiler

Compiled 344 to 251 computations (27% saved)

simplify74.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

prune22.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
45.5b
Counts
3 → 2
Alt Table
StatusErrorProgram
48.0b
(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))))))))
45.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)))
Compiler

Compiled 670 to 459 computations (31.5% saved)

localize78.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
9.2b
(/.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)
29.9b
(cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))
30.4b
(sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))
38.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)))

series5.5s (6.2%)

Counts
4 → 132
Calls

4 calls:

5.1s
(-.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)))
358.0ms
(/.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)
16.0ms
(sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))
6.0ms
(cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))

rewrite72.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
21×*-un-lft-identity_binary64
15×associate-*r/_binary64
13×add-sqr-sqrt_binary64
13×add-cube-cbrt_binary64
12×times-frac_binary64
Counts
4 → 80
Calls

4 calls:

41.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)))
12.0ms
(/.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)
2.0ms
(sin.f64 (*.f64 (/.f64 angle 180) (PI.f64)))
1.0ms
(cos.f64 (*.f64 (/.f64 angle 180) (PI.f64)))

simplify551.0ms (0.6%)

Algorithm
egg-herbie
Rules
421×associate-*r*_binary64
313×associate-*l*_binary64
311×associate-/l*_binary64
292×times-frac_binary64
265×fma-def_binary64
Counts
212 → 197
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
042821239
1130619706
2524919706

prune2.2s (2.4%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New33110341
Fresh101
Picked101
Done000
Total33310343
Error
22.4b
Counts
343 → 10
Alt Table
StatusErrorProgram
45.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 4 (/.f64 (*.f64 (hypot.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 b (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (/.f64 (hypot.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 b (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 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)))
47.4b
(fma.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 -4 (*.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)))))
48.5b
(-.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))) (fma.f64 1/180 (*.f64 angle (PI.f64)) (*.f64 (*.f64 (pow.f64 angle 3) (pow.f64 (PI.f64) 3)) -1/34992000))) (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)))
40.6b
0
45.0b
(/.f64 (-.f64 (*.f64 x-scale (*.f64 (/.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) x-scale) (/.f64 (/.f64 (*.f64 (*.f64 (*.f64 2 (-.f64 (*.f64 b b) (*.f64 a a))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) x-scale) y-scale))) (*.f64 y-scale (*.f64 (/.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)) (*.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)) x-scale))))) (*.f64 y-scale x-scale))
43.5b
(-.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))) (*.f64 1/180 (*.f64 angle (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)))
34.0b
(*.f64 -4 (/.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))
39.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))))))))
44.6b
(fma.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) (neg.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 (+.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))))
38.1b
(neg.f64 (/.f64 (fma.f64 4 (/.f64 (*.f64 (*.f64 a a) (*.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 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 4) (*.f64 (*.f64 a a) (*.f64 b b))) (*.f64 x-scale x-scale)) (*.f64 8 (/.f64 (*.f64 (pow.f64 (cos.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 (*.f64 a a) (*.f64 (pow.f64 (sin.f64 (*.f64 1/180 (*.f64 angle (PI.f64)))) 2) (*.f64 b b)))) (*.f64 x-scale x-scale))))) (*.f64 y-scale y-scale)))
Compiler

Compiled 43628 to 30269 computations (30.6% saved)

localize23.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 -4 (/.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))
13.3b
(/.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2)))
14.1b
(*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))
18.1b
(*.f64 (pow.f64 a 2) (pow.f64 b 2))

series803.0ms (0.9%)

Counts
4 → 60
Calls

4 calls:

390.0ms
(*.f64 -4 (/.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))
365.0ms
(/.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2)))
24.0ms
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
23.0ms
(*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))

rewrite143.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
650×add-exp-log_binary64
479×prod-exp_binary64
252×pow-exp_binary64
252×pow-to-exp_binary64
200×div-exp_binary64
Counts
4 → 352
Calls

4 calls:

18.0ms
(*.f64 -4 (/.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))
15.0ms
(/.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2)))
12.0ms
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
10.0ms
(*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))

simplify382.0ms (0.4%)

Algorithm
egg-herbie
Rules
460×fma-def_binary64
331×associate-/r/_binary64
314×associate-/l/_binary64
283×unswap-sqr_binary64
252×times-frac_binary64
Counts
412 → 270
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02609211
14388177
220197939
343667330
450537330

prune1.0s (1.2%)

Pruning

19 alts after pruning (19 fresh and 0 done)

PrunedKeptTotal
New25515270
Fresh549
Picked101
Done000
Total26119280
Error
9.1b
Counts
280 → 19
Alt Table
StatusErrorProgram
45.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 4 (/.f64 (*.f64 (hypot.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 b (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (/.f64 (hypot.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 b (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 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)))
34.0b
(/.f64 (*.f64 -4 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2)))
44.6b
(fma.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) (neg.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 (+.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))))
58.4b
(*.f64 -4 (exp.f64 (-.f64 (+.f64 (*.f64 (log.f64 a) 2) (log.f64 (pow.f64 b 2))) (+.f64 (*.f64 (log.f64 y-scale) 2) (*.f64 (log.f64 x-scale) 2)))))
48.5b
(-.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))) (fma.f64 1/180 (*.f64 angle (PI.f64)) (*.f64 (*.f64 (pow.f64 angle 3) (pow.f64 (PI.f64) 3)) -1/34992000))) (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)))
40.6b
0
45.9b
(*.f64 -4 (exp.f64 (fma.f64 2 (log.f64 (/.f64 a y-scale)) (*.f64 2 (log.f64 (/.f64 b x-scale))))))
34.0b
(*.f64 -4 (*.f64 (/.f64 (pow.f64 a 2) (pow.f64 y-scale 2)) (/.f64 (pow.f64 b 2) (pow.f64 x-scale 2))))
60.0b
(*.f64 -4 (exp.f64 (-.f64 (+.f64 (*.f64 (log.f64 a) 2) (*.f64 (log.f64 b) 2)) (+.f64 (*.f64 (log.f64 y-scale) 2) (*.f64 (log.f64 x-scale) 2)))))
24.9b
(*.f64 -4 (/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))
27.2b
(*.f64 -4 (/.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (*.f64 y-scale (*.f64 x-scale (*.f64 x-scale y-scale)))))
46.3b
(*.f64 -4 (exp.f64 (-.f64 (+.f64 (log.f64 (pow.f64 a 2)) (log.f64 (pow.f64 b 2))) (+.f64 (log.f64 (pow.f64 y-scale 2)) (*.f64 (log.f64 x-scale) 2)))))
26.3b
(*.f64 -4 (/.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 (*.f64 y-scale x-scale) 2)))
31.0b
(*.f64 -4 (/.f64 (*.f64 (*.f64 (pow.f64 a 2) b) b) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))
58.4b
(*.f64 -4 (exp.f64 (-.f64 (+.f64 (log.f64 (pow.f64 a 2)) (*.f64 (log.f64 b) 2)) (+.f64 (*.f64 (log.f64 y-scale) 2) (*.f64 (log.f64 x-scale) 2)))))
47.9b
(*.f64 -4 (exp.f64 (-.f64 (+.f64 (*.f64 (log.f64 a) 2) (log.f64 (pow.f64 b 2))) (+.f64 (log.f64 (pow.f64 y-scale 2)) (log.f64 (pow.f64 x-scale 2))))))
57.7b
(*.f64 -4 (exp.f64 (-.f64 (+.f64 (*.f64 (log.f64 a) 2) (*.f64 (log.f64 b) 2)) (+.f64 (*.f64 (log.f64 y-scale) 2) (log.f64 (pow.f64 x-scale 2))))))
32.9b
(*.f64 -4 (/.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (*.f64 (pow.f64 (*.f64 (cbrt.f64 y-scale) (cbrt.f64 y-scale)) 2) (*.f64 (pow.f64 (cbrt.f64 y-scale) 2) (pow.f64 x-scale 2)))))
26.4b
(*.f64 -4 (/.f64 (*.f64 (*.f64 a (*.f64 a b)) b) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))
Compiler

Compiled 8018 to 5535 computations (31% saved)

localize20.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 -4 (/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))
0.2b
(pow.f64 (*.f64 a b) 2)
13.3b
(/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2)))
14.1b
(*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))

series909.0ms (1%)

Counts
3 → 120
Calls

3 calls:

546.0ms
(*.f64 -4 (/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))
348.0ms
(/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2)))
14.0ms
(pow.f64 (*.f64 a b) 2)

rewrite84.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
232×add-exp-log_binary64
134×prod-exp_binary64
90×pow-exp_binary64
80×div-exp_binary64
69×pow-to-exp_binary64
Counts
3 → 157
Calls

3 calls:

48.0ms
(*.f64 -4 (/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))
13.0ms
(/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2)))
5.0ms
(pow.f64 (*.f64 a b) 2)

simplify410.0ms (0.5%)

Algorithm
egg-herbie
Rules
651×associate-*l/_binary64
631×associate-*r/_binary64
307×fma-def_binary64
283×log-div_binary64
263×*-commutative_binary64
Counts
277 → 155
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01605982
12895243
210555159
340424993
449604993
551014993

prune1.0s (1.1%)

Pruning

25 alts after pruning (25 fresh and 0 done)

PrunedKeptTotal
New20918227
Fresh11718
Picked101
Done000
Total22125246
Error
4.5b
Counts
246 → 25
Alt Table
StatusErrorProgram
24.9b
(/.f64 (*.f64 -4 (pow.f64 (*.f64 a b) 2)) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2)))
58.4b
(*.f64 -4 (exp.f64 (-.f64 (+.f64 (log.f64 (pow.f64 a 2)) (*.f64 (log.f64 b) 2)) (+.f64 (*.f64 (log.f64 y-scale) 2) (*.f64 (log.f64 x-scale) 2)))))
13.9b
(*.f64 -4 (/.f64 (pow.f64 (*.f64 a b) 2) (pow.f64 (*.f64 x-scale y-scale) 2)))
29.4b
(*.f64 -4 (/.f64 (cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3)) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))
40.0b
(*.f64 -4 (/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 (*.f64 y-scale (pow.f64 (sqrt.f64 x-scale) 2)) (*.f64 y-scale (pow.f64 (sqrt.f64 x-scale) 2)))))
48.8b
(*.f64 -4 (exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 a b)) 2) (+.f64 (log.f64 (pow.f64 y-scale 2)) (*.f64 (log.f64 x-scale) 2)))))
47.9b
(*.f64 -4 (exp.f64 (-.f64 (+.f64 (*.f64 (log.f64 a) 2) (log.f64 (pow.f64 b 2))) (+.f64 (log.f64 (pow.f64 y-scale 2)) (log.f64 (pow.f64 x-scale 2))))))
45.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 4 (/.f64 (*.f64 (hypot.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 b (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (/.f64 (hypot.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 b (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 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)))
24.5b
(*.f64 -4 (/.f64 (/.f64 (pow.f64 (*.f64 a b) 2) (pow.f64 y-scale 2)) (pow.f64 x-scale 2)))
39.9b
(*.f64 -4 (exp.f64 (-.f64 (log.f64 (pow.f64 (*.f64 a b) 2)) (+.f64 (*.f64 (log.f64 y-scale) 2) (log.f64 (pow.f64 x-scale 2))))))
47.6b
(*.f64 -4 (exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 a b)) 2) (+.f64 (*.f64 (log.f64 y-scale) 2) (log.f64 (pow.f64 x-scale 2))))))
44.6b
(fma.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) (neg.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 (+.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))))
20.9b
(*.f64 -4 (/.f64 (*.f64 a b) (/.f64 (*.f64 y-scale y-scale) (/.f64 (*.f64 a b) (*.f64 x-scale x-scale)))))
45.0b
(*.f64 -4 (exp.f64 (*.f64 2 (-.f64 (log.f64 (/.f64 (*.f64 a b) y-scale)) (log.f64 x-scale)))))
20.9b
(*.f64 -4 (*.f64 (/.f64 (*.f64 a b) (pow.f64 y-scale 2)) (/.f64 (*.f64 a b) (pow.f64 x-scale 2))))
25.0b
(*.f64 -4 (*.f64 (*.f64 (cbrt.f64 (/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2)))) (cbrt.f64 (/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))) (cbrt.f64 (/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2))))))
22.4b
(*.f64 -4 (/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y-scale (*.f64 y-scale (pow.f64 x-scale 2)))))
40.6b
0
45.9b
(*.f64 -4 (exp.f64 (fma.f64 2 (log.f64 (/.f64 a y-scale)) (*.f64 2 (log.f64 (/.f64 b x-scale))))))
25.0b
(*.f64 (*.f64 (cbrt.f64 -4) (cbrt.f64 -4)) (*.f64 (cbrt.f64 -4) (/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2)))))
22.9b
(*.f64 -4 (/.f64 (*.f64 a b) (/.f64 (*.f64 (pow.f64 y-scale 2) (pow.f64 x-scale 2)) (*.f64 a b))))
15.4b
(*.f64 -4 (/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y-scale (*.f64 x-scale (*.f64 x-scale y-scale)))))
27.2b
(*.f64 -4 (/.f64 (*.f64 (pow.f64 a 2) (pow.f64 b 2)) (*.f64 y-scale (*.f64 x-scale (*.f64 x-scale y-scale)))))
41.4b
(*.f64 -4 (exp.f64 (-.f64 (log.f64 (pow.f64 (*.f64 a b) 2)) (+.f64 (log.f64 (pow.f64 y-scale 2)) (*.f64 (log.f64 x-scale) 2)))))
57.7b
(*.f64 -4 (exp.f64 (-.f64 (*.f64 (+.f64 (log.f64 a) (log.f64 b)) 2) (+.f64 (*.f64 (log.f64 y-scale) 2) (log.f64 (pow.f64 x-scale 2))))))
Compiler

Compiled 6459 to 4190 computations (35.1% saved)

localize22.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 -4 (/.f64 (pow.f64 (*.f64 a b) 2) (pow.f64 (*.f64 x-scale y-scale) 2)))
0.2b
(pow.f64 (*.f64 a b) 2)
0.2b
(pow.f64 (*.f64 x-scale y-scale) 2)
13.3b
(/.f64 (pow.f64 (*.f64 a b) 2) (pow.f64 (*.f64 x-scale y-scale) 2))

series637.0ms (0.7%)

Counts
3 → 120
Calls

3 calls:

332.0ms
(*.f64 -4 (/.f64 (pow.f64 (*.f64 a b) 2) (pow.f64 (*.f64 x-scale y-scale) 2)))
295.0ms
(/.f64 (pow.f64 (*.f64 a b) 2) (pow.f64 (*.f64 x-scale y-scale) 2))
10.0ms
(pow.f64 (*.f64 x-scale y-scale) 2)

rewrite71.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
88×add-exp-log_binary64
81×times-frac_binary64
49×add-sqr-sqrt_binary64
40×associate-*r*_binary64
34×pow-exp_binary64
Counts
3 → 181
Calls

3 calls:

25.0ms
(*.f64 -4 (/.f64 (pow.f64 (*.f64 a b) 2) (pow.f64 (*.f64 x-scale y-scale) 2)))
10.0ms
(/.f64 (pow.f64 (*.f64 a b) 2) (pow.f64 (*.f64 x-scale y-scale) 2))
5.0ms
(pow.f64 (*.f64 x-scale y-scale) 2)

simplify303.0ms (0.3%)

Algorithm
egg-herbie
Rules
758×associate-*l*_binary64
697×associate-*r*_binary64
538×associate-/l/_binary64
305×associate-/r/_binary64
152×associate-/l*_binary64
Counts
301 → 239
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02336175
14115311
214385281
349565281
450095281

prune817.0ms (0.9%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New2529261
Fresh16824
Picked101
Done000
Total26917286
Error
2.1b
Counts
286 → 17
Alt Table
StatusErrorProgram
10.0b
(*.f64 (/.f64 -4 (*.f64 x-scale y-scale)) (/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 x-scale y-scale)))
56.8b
(*.f64 -4 (exp.f64 (-.f64 (*.f64 (+.f64 (log.f64 a) (log.f64 b)) 2) (*.f64 (log.f64 (*.f64 x-scale y-scale)) 2))))
45.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 4 (/.f64 (*.f64 (hypot.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 b (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (/.f64 (hypot.f64 (*.f64 a (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180)))) (*.f64 b (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) 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)))
11.5b
(*.f64 (*.f64 -4 (*.f64 a b)) (/.f64 (*.f64 a b) (pow.f64 (*.f64 x-scale y-scale) 2)))
3.3b
(*.f64 (*.f64 -4 (/.f64 (*.f64 a b) (*.f64 x-scale y-scale))) (/.f64 (*.f64 a b) (*.f64 x-scale y-scale)))
45.0b
(*.f64 -4 (exp.f64 (*.f64 2 (-.f64 (log.f64 (/.f64 (*.f64 a b) y-scale)) (log.f64 x-scale)))))
20.9b
(*.f64 -4 (*.f64 (/.f64 (*.f64 a b) (pow.f64 y-scale 2)) (/.f64 (*.f64 a b) (pow.f64 x-scale 2))))
10.0b
(*.f64 -4 (/.f64 (/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 x-scale y-scale)) (*.f64 x-scale y-scale)))
22.4b
(*.f64 -4 (/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 y-scale (*.f64 y-scale (pow.f64 x-scale 2)))))
40.6b
0
45.9b
(*.f64 -4 (exp.f64 (fma.f64 2 (log.f64 (/.f64 a y-scale)) (*.f64 2 (log.f64 (/.f64 b x-scale))))))
10.2b
(*.f64 -4 (*.f64 (/.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) (cbrt.f64 (pow.f64 (*.f64 a b) 2))) (*.f64 x-scale y-scale)) (/.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) (*.f64 x-scale y-scale))))
40.0b
(*.f64 -4 (/.f64 (pow.f64 (*.f64 a b) 2) (*.f64 (*.f64 y-scale (pow.f64 (sqrt.f64 x-scale) 2)) (*.f64 y-scale (pow.f64 (sqrt.f64 x-scale) 2)))))
14.0b
(*.f64 (*.f64 (cbrt.f64 -4) (cbrt.f64 -4)) (*.f64 (cbrt.f64 -4) (/.f64 (pow.f64 (*.f64 a b) 2) (pow.f64 (*.f64 x-scale y-scale) 2))))
11.6b
(*.f64 -4 (/.f64 (*.f64 a b) (/.f64 (pow.f64 (*.f64 x-scale y-scale) 2) (*.f64 a b))))
57.7b
(*.f64 -4 (exp.f64 (-.f64 (*.f64 (+.f64 (log.f64 a) (log.f64 b)) 2) (+.f64 (*.f64 (log.f64 y-scale) 2) (log.f64 (pow.f64 x-scale 2))))))
19.5b
(*.f64 -4 (cbrt.f64 (pow.f64 (/.f64 (pow.f64 (*.f64 a b) 2) (pow.f64 (*.f64 x-scale y-scale) 2)) 3)))
Compiler

Compiled 6145 to 3535 computations (42.5% saved)

regimes4.5s (5.1%)

Accuracy

Total 1.5b remaining (37.7%)

Threshold costs 0b (0%)

Counts
200 → 1
Compiler

Compiled 81561 to 59105 computations (27.5% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01125
11525
21525

end367.0ms (0.4%)

Compiler

Compiled 515 to 361 computations (29.9% saved)

Profiling

Loading profile data...