Details

Time bar (total: 10.1s)

analyze63.0ms (0.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%18.7%81.3%0
0%18.7%81.3%1
0%18.7%81.3%2
0%18.7%81.3%3
0%18.7%81.3%4
4.7%14%81.3%5
5.3%13.5%81.3%6
15.8%2.9%81.3%7
15.8%2.9%81.3%8
17.4%1.3%81.3%9
17.4%1.3%81.3%10
18.1%0.6%81.3%11
18.1%0.6%81.3%12
Compiler

Compiled 28 to 17 computations (39.3% saved)

sample1.5s (14.9%)

Results
1.5s8256×body256valid

preprocess166.0ms (1.6%)

Algorithm
egg-herbie
Rules
776×fma-def_binary64
587×div-sub_binary64
456×sub-neg_binary64
421×unsub-neg_binary64
365×neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01540
14340
210340
325040
457240
5157640
6366840
7486340
8568640
9642340
10717740
11767340
12791240
13792740
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
(/.f64 (*.f64 (-.f64 y x) (+.f64 y x)) (+.f64 (*.f64 y y) (*.f64 x x)))
Outputs
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
(/.f64 (-.f64 x y) (/.f64 (fma.f64 x x (*.f64 y y)) (+.f64 x y)))
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (fma.f64 x x (*.f64 y y))))
(/.f64 (*.f64 (-.f64 y x) (+.f64 y x)) (+.f64 (*.f64 y y) (*.f64 x x)))
(/.f64 (-.f64 y x) (/.f64 (fma.f64 x x (*.f64 y y)) (+.f64 x y)))
(*.f64 (/.f64 (-.f64 y x) (fma.f64 x x (*.f64 y y))) (+.f64 x y))
(*.f64 (+.f64 x y) (/.f64 (-.f64 y x) (fma.f64 x x (*.f64 y y))))
Compiler

Compiled 19 to 11 computations (42.1% saved)

simplify74.0ms (0.7%)

Algorithm
egg-herbie
Rules
917×times-frac_binary64
766×fma-def_binary64
481×fma-neg_binary64
473×unsub-neg_binary64
360×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01020
12420
25820
313920
433020
585820
6207720
7482320
8674320
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
Outputs
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
(/.f64 (-.f64 x y) (/.f64 (fma.f64 x x (*.f64 y y)) (+.f64 x y)))
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (fma.f64 x x (*.f64 y y)))
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (fma.f64 x x (*.f64 y y))))

eval1.0ms (0%)

Compiler

Compiled 31 to 12 computations (61.3% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
18.2b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
18.5b
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (fma.f64 x x (*.f64 y y))))
18.5b
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
Compiler

Compiled 33 to 17 computations (48.5% saved)

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 x x (*.f64 y y))
0.2b
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (fma.f64 x x (*.f64 y y))))
17.6b
(/.f64 (+.f64 x y) (fma.f64 x x (*.f64 y y)))
Compiler

Compiled 43 to 8 computations (81.4% saved)

series11.0ms (0.1%)

Counts
3 → 72
Calls

18 calls:

TimeVariablePointExpression
1.0ms
y
@inf
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (fma.f64 x x (*.f64 y y))))
1.0ms
x
@0
(/.f64 (+.f64 x y) (fma.f64 x x (*.f64 y y)))
1.0ms
x
@0
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (fma.f64 x x (*.f64 y y))))
1.0ms
y
@0
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (fma.f64 x x (*.f64 y y))))
1.0ms
x
@inf
(/.f64 (+.f64 x y) (fma.f64 x x (*.f64 y y)))

rewrite87.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
678×prod-diff_binary64
528×log-prod_binary64
357×fma-def_binary64
273×pow2_binary64
190×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0942
120239
2307539
Stop Event
node limit
Counts
3 → 120
Calls
Call 1
Inputs
(/.f64 (+.f64 x y) (fma.f64 x x (*.f64 y y)))
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (fma.f64 x x (*.f64 y y))))
(fma.f64 x x (*.f64 y y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (/.f64 1 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) 2) (cbrt.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 1 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (hypot.f64 x y)) (/.f64 (sqrt.f64 (+.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 x y)) (*.f64 (sqrt.f64 (+.f64 x y)) (/.f64 1 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 x y)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) 1) (/.f64 (cbrt.f64 (+.f64 x y)) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) 1) (/.f64 (sqrt.f64 (+.f64 x y)) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) 2)) (/.f64 (+.f64 x y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) 2)) (cbrt.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) 2)) (/.f64 (sqrt.f64 (+.f64 x y)) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (hypot.f64 x y)) (/.f64 (cbrt.f64 (+.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (hypot.f64 x y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (+.f64 x y) 3) (pow.f64 (pow.f64 (hypot.f64 x y) 2) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (+.f64 x y) (neg.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (+.f64 x y) 3) (pow.f64 (pow.f64 (hypot.f64 x y) 2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (*.f64 (neg.f64 y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) x) (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (-.f64 x y)) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (-.f64 x y)) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (-.f64 x y)) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (-.f64 x y)) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x y) (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (pow.f64 (hypot.f64 x y) 2) (fma.f64 x x (*.f64 (neg.f64 y) y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (*.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y)) (fma.f64 x x (*.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 x x (*.f64 (neg.f64 y) y)) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 x x (*.f64 (neg.f64 y) y)) (*.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y)) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 x x (*.f64 (neg.f64 y) y))) (neg.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 x x (*.f64 (neg.f64 y) y)) 1) (*.f64 (+.f64 x y) (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (-.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 (pow.f64 (hypot.f64 x y) 2) (fma.f64 x x (*.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 x y)) (-.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 (neg.f64 (pow.f64 (hypot.f64 x y) 2)) (fma.f64 x x (*.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (fma.f64 x x (*.f64 (neg.f64 y) y))) (*.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 x y)) (fma.f64 x x (*.f64 (neg.f64 y) y))) (*.f64 (neg.f64 (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (+.f64 x y)) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 x x (*.f64 (neg.f64 y) y)) (+.f64 x y)) (*.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) 1) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (neg.f64 (+.f64 x y))) (*.f64 (fma.f64 x x (*.f64 y (+.f64 x y))) (neg.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 x x (*.f64 (neg.f64 y) y)) (neg.f64 (+.f64 x y))) (*.f64 (+.f64 x y) (neg.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (fma.f64 x x (*.f64 (neg.f64 y) y)) (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) 2)) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (fma.f64 x x (*.f64 (neg.f64 y) y)) (hypot.f64 x y)) (hypot.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (fma.f64 x x (*.f64 (neg.f64 y) y)) 1) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 x y)) (-.f64 x y)) (neg.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (fma.f64 x x (*.f64 y (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 x x (*.f64 (neg.f64 y) y)) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 (pow.f64 x 3) (pow.f64 y 3))) (fma.f64 x x (*.f64 y (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (fma.f64 x x (*.f64 (neg.f64 y) y))) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x y) (neg.f64 (+.f64 x y))) (neg.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (fma.f64 x x (*.f64 (neg.f64 y) y))) (hypot.f64 x y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 3) (pow.f64 (-.f64 x y) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (fma.f64 x x (*.f64 (neg.f64 y) y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (-.f64 x y)) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 3) (pow.f64 (-.f64 x y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (*.f64 (neg.f64 y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) x (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (neg.f64 y)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x x) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x x) 1) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 x y) 2))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (hypot.f64 x y) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (hypot.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (hypot.f64 x y) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 x y) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 x y) (hypot.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x x) 3) (pow.f64 (*.f64 y y) 3)) (+.f64 (pow.f64 (*.f64 x x) 2) (-.f64 (pow.f64 y 4) (*.f64 (*.f64 x x) (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x x) 2) (pow.f64 y 4)) (fma.f64 x x (*.f64 (neg.f64 y) y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 x y) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (hypot.f64 x y) 2) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (hypot.f64 x y) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 x y) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (hypot.f64 x y) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 y y)) (exp.f64 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y y))) (exp.f64 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 x x)) (+.f64 1 (expm1.f64 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 x y) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 x y))) 1))))))

simplify67.0ms (0.7%)

Algorithm
egg-herbie
Rules
740×times-frac_binary64
507×fma-def_binary64
362×associate-+l+_binary64
312×associate-/l*_binary64
310×associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0116288
1381288
21430288
36858288
Stop Event
node limit
Counts
192 → 150
Calls
Call 1
Inputs
(/.f64 1 y)
(+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2))))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))))
(/.f64 1 x)
(+.f64 (/.f64 y (pow.f64 x 2)) (/.f64 1 x))
(+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 3) (pow.f64 x 4))) (+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))))
(/.f64 1 x)
(+.f64 (/.f64 y (pow.f64 x 2)) (/.f64 1 x))
(+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 3) (pow.f64 x 4))) (+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))))
(/.f64 1 x)
(+.f64 (/.f64 y (pow.f64 x 2)) (/.f64 1 x))
(+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 3) (pow.f64 x 4))) (+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))))
(/.f64 1 y)
(+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2))))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))))
(/.f64 1 y)
(+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2))))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))))
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) 1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6))) (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) 1)
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x)))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))))))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2)))))))
1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4))) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y))))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(pow.f64 y 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 y 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 y 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
Outputs
(/.f64 1 y)
(+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2)))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2))))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))))
(/.f64 1 y)
(/.f64 1 x)
(/.f64 1 y)
(+.f64 (/.f64 y (pow.f64 x 2)) (/.f64 1 x))
(/.f64 1 y)
(+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x)))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 3) (pow.f64 x 4))) (+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))))
(/.f64 1 y)
(/.f64 1 x)
(/.f64 1 y)
(+.f64 (/.f64 y (pow.f64 x 2)) (/.f64 1 x))
(/.f64 1 y)
(+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x)))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 3) (pow.f64 x 4))) (+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))))
(/.f64 1 y)
(/.f64 1 x)
(/.f64 1 y)
(+.f64 (/.f64 y (pow.f64 x 2)) (/.f64 1 x))
(/.f64 1 y)
(+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x)))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 3) (pow.f64 x 4))) (+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))))
(/.f64 1 y)
(/.f64 1 y)
(+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2)))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2))))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))))
(/.f64 1 y)
(/.f64 1 y)
(+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2)))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2))))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))))
(/.f64 1 y)
-1
(/.f64 1 y)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(/.f64 1 y)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) 1)
(/.f64 1 y)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6))) (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) 1)
(/.f64 1 y)
1
(/.f64 1 y)
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(/.f64 1 y)
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(/.f64 1 y)
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x)))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(/.f64 1 y)
1
(/.f64 1 y)
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(/.f64 1 y)
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))))))
(/.f64 1 y)
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2)))))))
(/.f64 1 y)
1
(/.f64 1 y)
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(/.f64 1 y)
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(/.f64 1 y)
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4))) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
(/.f64 1 y)
-1
(/.f64 1 y)
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
(/.f64 1 y)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(/.f64 1 y)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y))))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(/.f64 1 y)
-1
(/.f64 1 y)
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
(/.f64 1 y)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(/.f64 1 y)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(/.f64 1 y)
(pow.f64 y 2)
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(pow.f64 x 2)
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(pow.f64 x 2)
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(pow.f64 x 2)
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(pow.f64 y 2)
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(pow.f64 y 2)
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)

localize14.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 x x) (*.f64 y y))
18.3b
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
Compiler

Compiled 45 to 9 computations (80% saved)

series4.0ms (0%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
0.0ms
x
@0
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
0.0ms
x
@inf
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
0.0ms
x
@-inf
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
0.0ms
y
@0
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
0.0ms
y
@inf
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))

rewrite84.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
648×fma-def_binary64
641×log-prod_binary64
318×pow2_binary64
273×fma-neg_binary64
221×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01028
123726
2393426
Stop Event
node limit
Counts
2 → 106
Calls
Call 1
Inputs
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
(+.f64 (*.f64 x x) (*.f64 y y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 x (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y))) (/.f64 y (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x y) (/.f64 1 (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x y) (*.f64 (+.f64 x y) (/.f64 1 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (*.f64 (-.f64 x y) (/.f64 1 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) 2) (*.f64 (cbrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y))) (pow.f64 (cbrt.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y))) 2) (cbrt.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (sqrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) (/.f64 1 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) (hypot.f64 x y)) (/.f64 (sqrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) (neg.f64 (-.f64 x y))) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (hypot.f64 x y) 2)) (-.f64 (*.f64 x x) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (/.f64 1 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x y) 1) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) 1) (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) 2) 1) (/.f64 (cbrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) 1) (/.f64 (sqrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x y) (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) 2)) (/.f64 (+.f64 x y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) 2)) (/.f64 (-.f64 x y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) 2)) (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) 2) (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) 2)) (cbrt.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) 2)) (/.f64 (sqrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) 2) (hypot.f64 x y)) (/.f64 (cbrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (-.f64 (pow.f64 x 4) (pow.f64 y 4))) (-.f64 (*.f64 x x) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (+.f64 (pow.f64 x 6) (pow.f64 y 6))) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) (hypot.f64 x y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 (*.f64 x x) (*.f64 y y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (-.f64 (*.f64 x x) (*.f64 y y)) 3) (pow.f64 (pow.f64 (hypot.f64 x y) 2) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 (*.f64 x x) (*.f64 y y))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (neg.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (-.f64 (*.f64 x x) (*.f64 y y)) 3) (pow.f64 (pow.f64 (hypot.f64 x y) 2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (hypot.f64 x y) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 x 4) (-.f64 (*.f64 x x) (*.f64 y y))) (/.f64 (pow.f64 y 4) (-.f64 (*.f64 x x) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 x y) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 x y) (hypot.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x 6) (pow.f64 y 6)) (/.f64 1 (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 x 4) (pow.f64 y 4)) (/.f64 1 (-.f64 (*.f64 x x) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 x y) 2))) (+.f64 (pow.f64 x 6) (pow.f64 y 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (-.f64 (pow.f64 x 4) (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 6) (pow.f64 y 6)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 6) (pow.f64 y 6)) (+.f64 (pow.f64 y 4) (-.f64 (pow.f64 x 4) (pow.f64 (*.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x 4) (pow.f64 y 4)) (-.f64 (*.f64 x x) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 x 6) (pow.f64 y 6))) (neg.f64 (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 x 4) (pow.f64 y 4))) (*.f64 (+.f64 x y) (neg.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 y 4) (pow.f64 x 4)) (-.f64 (*.f64 y y) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 x y) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (hypot.f64 x y) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 x y) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 x y) 2))) (+.f64 (pow.f64 x 6) (pow.f64 y 6))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (-.f64 (pow.f64 x 4) (pow.f64 y 4))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (hypot.f64 x y) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x x))) (exp.f64 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x) x) (+.f64 1 (expm1.f64 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x x))) (+.f64 1 (expm1.f64 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y y))) (pow.f64 (exp.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 y y)) (+.f64 1 (expm1.f64 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y y))) (+.f64 1 (expm1.f64 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 x y) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 x y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x x (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y y (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 1 (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) 1 (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x x) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (cbrt.f64 (pow.f64 y 4)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 y 4)) (pow.f64 (cbrt.f64 y) 2) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 (pow.f64 x 4)) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) x) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) x) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 x)) (sqrt.f64 x) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 y)) (sqrt.f64 y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 (*.f64 x x))) (cbrt.f64 x) (*.f64 y y))))))

simplify67.0ms (0.7%)

Algorithm
egg-herbie
Rules
920×fma-neg_binary64
533×times-frac_binary64
523×cancel-sign-sub-inv_binary64
434×fma-def_binary64
330×associate-+l+_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09548
132548
2123548
3583248
Stop Event
node limit
Counts
154 → 128
Calls
Call 1
Inputs
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) 1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6))) (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) 1)
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x)))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))))))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2)))))))
1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4))) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y))))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(pow.f64 y 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 y 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 y 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
Outputs
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
-1
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) 1)
-1
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6))) (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) 1)
-1
1
-1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
-1
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
-1
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x)))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
-1
1
-1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
-1
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))))))
-1
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2)))))))
-1
1
-1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
-1
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
-1
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4))) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
-1
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y))))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
-1
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
-1
(pow.f64 y 2)
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1
(pow.f64 x 2)
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1
(pow.f64 x 2)
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1
(pow.f64 x 2)
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1
(pow.f64 y 2)
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1
(pow.f64 y 2)
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
-1

eval109.0ms (1.1%)

Compiler

Compiled 5553 to 2421 computations (56.4% saved)

prune68.0ms (0.7%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New2699278
Fresh000
Picked101
Done101
Total2719280
Error
0.0b
Counts
280 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
18.5b
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))
23.3b
-1
38.2b
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (pow.f64 y 2))
0.0b
(*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))
32.9b
(*.f64 (-.f64 x y) (pow.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (hypot.f64 x y)) 2))
43.2b
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
0.2b
(*.f64 (-.f64 x y) (*.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y))))
40.5b
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
40.8b
1
Compiler

Compiled 222 to 134 computations (39.6% saved)

localize143.0ms (1.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 x y)
0.0b
(/.f64 (-.f64 x y) (hypot.f64 x y))
0.0b
(/.f64 (+.f64 x y) (hypot.f64 x y))
0.0b
(*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))
Compiler

Compiled 42 to 8 computations (81% saved)

series16.0ms (0.2%)

Counts
4 → 96
Calls

24 calls:

TimeVariablePointExpression
2.0ms
y
@-inf
(hypot.f64 x y)
2.0ms
y
@0
(*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))
1.0ms
x
@0
(*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))
1.0ms
x
@-inf
(/.f64 (+.f64 x y) (hypot.f64 x y))
1.0ms
x
@inf
(hypot.f64 x y)

rewrite239.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
805×prod-diff_binary64
622×log-prod_binary64
299×fma-def_binary64
267×log-div_binary64
200×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0946
121443
2352943
Stop Event
node limit
Counts
4 → 281
Calls
Call 1
Inputs
(*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))
(/.f64 (+.f64 x y) (hypot.f64 x y))
(/.f64 (-.f64 x y) (hypot.f64 x y))
(hypot.f64 x y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2)))) (cbrt.f64 (exp.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2)))))) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x y) (*.f64 (hypot.f64 x y) (/.f64 (hypot.f64 x y) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x y) (*.f64 (/.f64 (hypot.f64 x y) (+.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x y) (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x y) (/.f64 (hypot.f64 x y) (/.f64 (+.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (hypot.f64 x y) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x y) (*.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x y) (*.f64 (hypot.f64 x y) (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) (/.f64 (hypot.f64 x y) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (/.f64 (hypot.f64 x y) (+.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 (*.f64 x x) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (hypot.f64 x y) (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 x y)) (*.f64 (/.f64 (hypot.f64 x y) (+.f64 x y)) (neg.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 x y)) (*.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) (neg.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (hypot.f64 x y)) (hypot.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (*.f64 y y))) (neg.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (hypot.f64 x y))) (neg.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 x y)) (+.f64 x y)) (*.f64 (neg.f64 (hypot.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 x y)) 1) (*.f64 (neg.f64 (hypot.f64 x y)) (/.f64 (hypot.f64 x y) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x y) (neg.f64 (+.f64 x y))) (*.f64 (hypot.f64 x y) (neg.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 x y)) (neg.f64 (+.f64 x y))) (*.f64 (neg.f64 (hypot.f64 x y)) (neg.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 x y)) (-.f64 x y)) (*.f64 (neg.f64 (hypot.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 x y)) 1) (*.f64 (neg.f64 (hypot.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (neg.f64 (-.f64 x y))) (*.f64 (hypot.f64 x y) (neg.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 x y)) (neg.f64 (-.f64 x y))) (*.f64 (neg.f64 (hypot.f64 x y)) (neg.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (hypot.f64 x y)) 1) (hypot.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (hypot.f64 x y)) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (cbrt.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (hypot.f64 x y)) (sqrt.f64 (hypot.f64 x y))) (sqrt.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y))) (neg.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 x y)) (/.f64 (-.f64 x y) (hypot.f64 x y))) (neg.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (neg.f64 (+.f64 x y))) (neg.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (neg.f64 (-.f64 x y))) (neg.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) (hypot.f64 x y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) 3) (pow.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) 3) (pow.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (+.f64 x y) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)))) (cbrt.f64 (exp.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)))))) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (/.f64 1 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (+.f64 x y) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) 2) (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 x y) 2)) (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 1 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 x y)) (*.f64 (sqrt.f64 (+.f64 x y)) (/.f64 1 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 x y)) (/.f64 1 (neg.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (hypot.f64 x y)) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (+.f64 x y) (cbrt.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (/.f64 (+.f64 x y) (sqrt.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (+.f64 x y) 2)) 1) (/.f64 (cbrt.f64 (+.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) 1) (/.f64 (sqrt.f64 (+.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (+.f64 x y) 2)) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (sqrt.f64 (+.f64 x y)) (cbrt.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (+.f64 x y) 2)) (sqrt.f64 (hypot.f64 x y))) (/.f64 (cbrt.f64 (+.f64 x y)) (sqrt.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (hypot.f64 x y) (+.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (+.f64 x y) (neg.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (+.f64 x y) 3) (pow.f64 (hypot.f64 x y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (fma.f64 (neg.f64 (sqrt.f64 (/.f64 y (hypot.f64 x y)))) (sqrt.f64 (/.f64 y (hypot.f64 x y))) (/.f64 y (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (sqrt.f64 (hypot.f64 x y)))) (/.f64 (sqrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 y (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 x (hypot.f64 x y)) (neg.f64 (/.f64 y (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (-.f64 x y) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 x (/.f64 1 (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 1 (hypot.f64 x y)) y))) (fma.f64 (neg.f64 (/.f64 1 (hypot.f64 x y))) y (*.f64 (/.f64 1 (hypot.f64 x y)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (/.f64 x (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 1 (hypot.f64 x y)) y))) (fma.f64 (neg.f64 (/.f64 1 (hypot.f64 x y))) y (*.f64 (/.f64 1 (hypot.f64 x y)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 (cbrt.f64 (/.f64 x (hypot.f64 x y))) (cbrt.f64 (/.f64 x (hypot.f64 x y)))) (cbrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 1 (hypot.f64 x y)) y))) (fma.f64 (neg.f64 (/.f64 1 (hypot.f64 x y))) y (*.f64 (/.f64 1 (hypot.f64 x y)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (/.f64 x (hypot.f64 x y))) (sqrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 1 (hypot.f64 x y)) y))) (fma.f64 (neg.f64 (/.f64 1 (hypot.f64 x y))) y (*.f64 (/.f64 1 (hypot.f64 x y)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 x (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 1 (hypot.f64 x y)) y))) (fma.f64 (neg.f64 (/.f64 1 (hypot.f64 x y))) y (*.f64 (/.f64 1 (hypot.f64 x y)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (/.f64 x (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 1 (hypot.f64 x y)) y))) (fma.f64 (neg.f64 (/.f64 1 (hypot.f64 x y))) y (*.f64 (/.f64 1 (hypot.f64 x y)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 1 (hypot.f64 x y)) y))) (fma.f64 (neg.f64 (/.f64 1 (hypot.f64 x y))) y (*.f64 (/.f64 1 (hypot.f64 x y)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 1 (hypot.f64 x y)) y))) (fma.f64 (neg.f64 (/.f64 1 (hypot.f64 x y))) y (*.f64 (/.f64 1 (hypot.f64 x y)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (cbrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 1 (hypot.f64 x y)) y))) (fma.f64 (neg.f64 (/.f64 1 (hypot.f64 x y))) y (*.f64 (/.f64 1 (hypot.f64 x y)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 1 (hypot.f64 x y)) y))) (fma.f64 (neg.f64 (/.f64 1 (hypot.f64 x y))) y (*.f64 (/.f64 1 (hypot.f64 x y)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (sqrt.f64 (hypot.f64 x y))) (/.f64 (cbrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 1 (hypot.f64 x y)) y))) (fma.f64 (neg.f64 (/.f64 1 (hypot.f64 x y))) y (*.f64 (/.f64 1 (hypot.f64 x y)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 1 (hypot.f64 x y)) y))) (fma.f64 (neg.f64 (/.f64 1 (hypot.f64 x y))) y (*.f64 (/.f64 1 (hypot.f64 x y)) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 x (/.f64 1 (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 y (hypot.f64 x y)) 1))) (fma.f64 (neg.f64 (/.f64 y (hypot.f64 x y))) 1 (*.f64 (/.f64 y (hypot.f64 x y)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (/.f64 x (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 y (hypot.f64 x y)) 1))) (fma.f64 (neg.f64 (/.f64 y (hypot.f64 x y))) 1 (*.f64 (/.f64 y (hypot.f64 x y)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 (cbrt.f64 (/.f64 x (hypot.f64 x y))) (cbrt.f64 (/.f64 x (hypot.f64 x y)))) (cbrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (hypot.f64 x y)) 1))) (fma.f64 (neg.f64 (/.f64 y (hypot.f64 x y))) 1 (*.f64 (/.f64 y (hypot.f64 x y)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (/.f64 x (hypot.f64 x y))) (sqrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (hypot.f64 x y)) 1))) (fma.f64 (neg.f64 (/.f64 y (hypot.f64 x y))) 1 (*.f64 (/.f64 y (hypot.f64 x y)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 x (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (hypot.f64 x y)) 1))) (fma.f64 (neg.f64 (/.f64 y (hypot.f64 x y))) 1 (*.f64 (/.f64 y (hypot.f64 x y)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (/.f64 x (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (hypot.f64 x y)) 1))) (fma.f64 (neg.f64 (/.f64 y (hypot.f64 x y))) 1 (*.f64 (/.f64 y (hypot.f64 x y)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 y (hypot.f64 x y)) 1))) (fma.f64 (neg.f64 (/.f64 y (hypot.f64 x y))) 1 (*.f64 (/.f64 y (hypot.f64 x y)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 y (hypot.f64 x y)) 1))) (fma.f64 (neg.f64 (/.f64 y (hypot.f64 x y))) 1 (*.f64 (/.f64 y (hypot.f64 x y)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (cbrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (hypot.f64 x y)) 1))) (fma.f64 (neg.f64 (/.f64 y (hypot.f64 x y))) 1 (*.f64 (/.f64 y (hypot.f64 x y)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (hypot.f64 x y)) 1))) (fma.f64 (neg.f64 (/.f64 y (hypot.f64 x y))) 1 (*.f64 (/.f64 y (hypot.f64 x y)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (sqrt.f64 (hypot.f64 x y))) (/.f64 (cbrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (hypot.f64 x y)) 1))) (fma.f64 (neg.f64 (/.f64 y (hypot.f64 x y))) 1 (*.f64 (/.f64 y (hypot.f64 x y)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (hypot.f64 x y)) 1))) (fma.f64 (neg.f64 (/.f64 y (hypot.f64 x y))) 1 (*.f64 (/.f64 y (hypot.f64 x y)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 x (/.f64 1 (hypot.f64 x y)) (neg.f64 (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y))))))) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (/.f64 x (hypot.f64 x y)) (neg.f64 (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y))))))) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 (cbrt.f64 (/.f64 x (hypot.f64 x y))) (cbrt.f64 (/.f64 x (hypot.f64 x y)))) (cbrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y))))))) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (/.f64 x (hypot.f64 x y))) (sqrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y))))))) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 x (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y))))))) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (/.f64 x (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y))))))) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y))))))) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y))))))) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (cbrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y))))))) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y))))))) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (sqrt.f64 (hypot.f64 x y))) (/.f64 (cbrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y))))))) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y))))))) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (*.f64 (cbrt.f64 (/.f64 y (hypot.f64 x y))) (cbrt.f64 (/.f64 y (hypot.f64 x y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 x (/.f64 1 (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1)))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1) (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (/.f64 x (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1)))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1) (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 (cbrt.f64 (/.f64 x (hypot.f64 x y))) (cbrt.f64 (/.f64 x (hypot.f64 x y)))) (cbrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1)))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1) (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (/.f64 x (hypot.f64 x y))) (sqrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1)))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1) (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 x (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1)))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1) (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (/.f64 x (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1)))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1) (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1)))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1) (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1)))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1) (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (cbrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1)))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1) (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1)))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1) (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (sqrt.f64 (hypot.f64 x y))) (/.f64 (cbrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1)))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1) (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1)))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1) (*.f64 (/.f64 (cbrt.f64 y) (hypot.f64 x y)) (/.f64 (pow.f64 (cbrt.f64 y) 2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 x (/.f64 1 (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1)))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y))) (/.f64 (sqrt.f64 y) 1) (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (/.f64 x (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1)))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y))) (/.f64 (sqrt.f64 y) 1) (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 (cbrt.f64 (/.f64 x (hypot.f64 x y))) (cbrt.f64 (/.f64 x (hypot.f64 x y)))) (cbrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1)))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y))) (/.f64 (sqrt.f64 y) 1) (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (/.f64 x (hypot.f64 x y))) (sqrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1)))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y))) (/.f64 (sqrt.f64 y) 1) (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 x (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1)))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y))) (/.f64 (sqrt.f64 y) 1) (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (/.f64 x (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1)))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y))) (/.f64 (sqrt.f64 y) 1) (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1)))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y))) (/.f64 (sqrt.f64 y) 1) (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1)))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y))) (/.f64 (sqrt.f64 y) 1) (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (cbrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1)))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y))) (/.f64 (sqrt.f64 y) 1) (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1)))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y))) (/.f64 (sqrt.f64 y) 1) (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (sqrt.f64 (hypot.f64 x y))) (/.f64 (cbrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1)))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y))) (/.f64 (sqrt.f64 y) 1) (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1)))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y))) (/.f64 (sqrt.f64 y) 1) (*.f64 (/.f64 (sqrt.f64 y) (hypot.f64 x y)) (/.f64 (sqrt.f64 y) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 x (/.f64 1 (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y)))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (/.f64 x (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y)))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 (cbrt.f64 (/.f64 x (hypot.f64 x y))) (cbrt.f64 (/.f64 x (hypot.f64 x y)))) (cbrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y)))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (/.f64 x (hypot.f64 x y))) (sqrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y)))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 x (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y)))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (/.f64 x (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y)))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y)))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y)))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (cbrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y)))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y)))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (sqrt.f64 (hypot.f64 x y))) (/.f64 (cbrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y)))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y)))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 y (cbrt.f64 (hypot.f64 x y))) (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 x (/.f64 1 (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (/.f64 x (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 (cbrt.f64 (/.f64 x (hypot.f64 x y))) (cbrt.f64 (/.f64 x (hypot.f64 x y)))) (cbrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (/.f64 x (hypot.f64 x y))) (sqrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 x (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (/.f64 x (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (cbrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (sqrt.f64 (hypot.f64 x y))) (/.f64 (cbrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (cbrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 x (/.f64 1 (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (/.f64 x (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 (cbrt.f64 (/.f64 x (hypot.f64 x y))) (cbrt.f64 (/.f64 x (hypot.f64 x y)))) (cbrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (/.f64 x (hypot.f64 x y))) (sqrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 x (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (/.f64 x (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (cbrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (sqrt.f64 (hypot.f64 x y))) (/.f64 (cbrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (fma.f64 (neg.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y)))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (*.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 x (/.f64 1 (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y)))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (/.f64 x (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y)))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 (cbrt.f64 (/.f64 x (hypot.f64 x y))) (cbrt.f64 (/.f64 x (hypot.f64 x y)))) (cbrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y)))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (/.f64 x (hypot.f64 x y))) (sqrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y)))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 x (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y)))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (/.f64 x (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y)))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y)))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y)))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (cbrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y)))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y)))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (sqrt.f64 (hypot.f64 x y))) (/.f64 (cbrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y)))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y)))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 y (sqrt.f64 (hypot.f64 x y))) (/.f64 1 (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 x (/.f64 1 (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (/.f64 x (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 (cbrt.f64 (/.f64 x (hypot.f64 x y))) (cbrt.f64 (/.f64 x (hypot.f64 x y)))) (cbrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 (/.f64 x (hypot.f64 x y))) (sqrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 x (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (/.f64 x (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (hypot.f64 x y)) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (cbrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (sqrt.f64 (hypot.f64 x y))) (/.f64 (cbrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y)))))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y)))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))) (*.f64 (/.f64 (cbrt.f64 y) (sqrt.f64 (hypot.f64 x y))) (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)))) (cbrt.f64 (exp.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)))))) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 x (hypot.f64 x y)) (/.f64 y (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x y) (/.f64 1 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (-.f64 x y) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))) (pow.f64 (cbrt.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))) 2) (cbrt.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (-.f64 x y) 2)) (*.f64 (cbrt.f64 (-.f64 x y)) (/.f64 1 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))) (sqrt.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 x y)) (*.f64 (sqrt.f64 (-.f64 x y)) (/.f64 1 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (-.f64 x y)) (/.f64 1 (neg.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (hypot.f64 x y)) (-.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (-.f64 x y) (cbrt.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (/.f64 (-.f64 x y) (sqrt.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 x y) 2)) 1) (/.f64 (cbrt.f64 (-.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 x y)) 1) (/.f64 (sqrt.f64 (-.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 x y) 2)) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (cbrt.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 x y)) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (sqrt.f64 (-.f64 x y)) (cbrt.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 x y) 2)) (sqrt.f64 (hypot.f64 x y))) (/.f64 (cbrt.f64 (-.f64 x y)) (sqrt.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (-.f64 x y) (neg.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 (hypot.f64 x y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (/.f64 1 (hypot.f64 x y)) (neg.f64 (/.f64 y (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 x (hypot.f64 x y)) (neg.f64 (/.f64 y (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (/.f64 x (hypot.f64 x y))) (cbrt.f64 (/.f64 x (hypot.f64 x y)))) (cbrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (/.f64 y (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 x (hypot.f64 x y))) (sqrt.f64 (/.f64 x (hypot.f64 x y))) (neg.f64 (/.f64 y (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 x (cbrt.f64 (hypot.f64 x y))) (neg.f64 (/.f64 y (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (sqrt.f64 (hypot.f64 x y))) (/.f64 x (sqrt.f64 (hypot.f64 x y))) (neg.f64 (/.f64 y (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) (hypot.f64 x y)) (neg.f64 (/.f64 y (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (hypot.f64 x y)) (neg.f64 (/.f64 y (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (cbrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (/.f64 y (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (hypot.f64 x y))) (neg.f64 (/.f64 y (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (sqrt.f64 (hypot.f64 x y))) (/.f64 (cbrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (/.f64 y (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (/.f64 (sqrt.f64 x) (sqrt.f64 (hypot.f64 x y))) (neg.f64 (/.f64 y (hypot.f64 x y))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (hypot.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (hypot.f64 x y))) (cbrt.f64 (exp.f64 (hypot.f64 x y))))) (log.f64 (cbrt.f64 (exp.f64 (hypot.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (hypot.f64 x y)))) (log.f64 (sqrt.f64 (exp.f64 (hypot.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (hypot.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 x y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (hypot.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (hypot.f64 x y)) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) (cbrt.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (hypot.f64 x y)) (sqrt.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 x y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 x y) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 x y) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (hypot.f64 x y)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (hypot.f64 x y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (hypot.f64 x y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (hypot.f64 x y)) 1))))))

simplify68.0ms (0.7%)

Algorithm
egg-herbie
Rules
560×associate-+l+_binary64
524×associate-/r*_binary64
495×associate-/l*_binary64
371×associate-*r*_binary64
352×associate-+r+_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01951761
16391664
222211538
Stop Event
node limit
Counts
377 → 386
Calls
Call 1
Inputs
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) 1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6))) (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) 1)
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x)))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))))))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2)))))))
1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4))) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y))))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (+.f64 (/.f64 x y) (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))))
(+.f64 1 (+.f64 (/.f64 x y) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))))))
1
(+.f64 (/.f64 y x) 1)
(+.f64 (/.f64 y x) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) 1))
(+.f64 (/.f64 y x) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 1 (*.f64 -1/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3))))))
-1
(-.f64 (*.f64 -1 (/.f64 y x)) 1)
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))) 1)
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x)))) 1)
1
(+.f64 (/.f64 y x) 1)
(+.f64 (/.f64 y x) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) 1))
(+.f64 (/.f64 y x) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 1 (*.f64 -1/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3))))))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (+.f64 (/.f64 x y) (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))))
(+.f64 1 (+.f64 (/.f64 x y) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))))))
-1
(-.f64 (*.f64 -1 (/.f64 x y)) 1)
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y))) 1)
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y)))) 1)
-1
(-.f64 (/.f64 x y) 1)
(-.f64 (+.f64 (/.f64 x y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))) 1)
(-.f64 (+.f64 (/.f64 x y) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))))) 1)
1
(+.f64 1 (*.f64 -1 (/.f64 y x)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 1 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3))) (*.f64 -1 (/.f64 y x)))))
-1
(-.f64 (/.f64 y x) 1)
(-.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))) 1)
(-.f64 (+.f64 (/.f64 y x) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3))))) 1)
1
(+.f64 1 (*.f64 -1 (/.f64 y x)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 1 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3))) (*.f64 -1 (/.f64 y x)))))
-1
(-.f64 (/.f64 x y) 1)
(-.f64 (+.f64 (/.f64 x y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))) 1)
(-.f64 (+.f64 (/.f64 x y) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))))) 1)
1
(+.f64 1 (*.f64 -1 (/.f64 x y)))
(+.f64 1 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y))))
(+.f64 1 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y)))))
y
(+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (+.f64 y (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))))))
x
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) x)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) x))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) x)))
(*.f64 -1 x)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) x)) (*.f64 -1 x))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (*.f64 -1 x)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (+.f64 (*.f64 -1 x) (*.f64 -1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5))))))
x
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) x)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) x))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) x)))
y
(+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (+.f64 y (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))))))
(*.f64 -1 y)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) y)) (+.f64 (*.f64 -1 y) (*.f64 1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3)))))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) y)) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))) (+.f64 (*.f64 -1 y) (*.f64 1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))))))
Outputs
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 (/.f64 2 y) (/.f64 x (/.f64 y x)) -1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) 1)
(+.f64 (fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) (fma.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)) -1))
(fma.f64 2 (/.f64 x (*.f64 (/.f64 y x) y)) (fma.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)) -1))
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6))) (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) 1)
(+.f64 (fma.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6)) (fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) -1)
(fma.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6)) (fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) (fma.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)) -1)))
(fma.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6)) (fma.f64 2 (/.f64 x (*.f64 (/.f64 y x) y)) (fma.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)) -1)))
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (/.f64 y x) (+.f64 1 (/.f64 (neg.f64 y) x)))
(+.f64 (/.f64 y x) (-.f64 1 (/.f64 y x)))
(+.f64 1 (*.f64 0 (/.f64 y x)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (fma.f64 -1 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 (neg.f64 y) x)))) (/.f64 (*.f64 y y) (*.f64 x x)))
(+.f64 (-.f64 (-.f64 1 (*.f64 (/.f64 y x) (/.f64 y x))) (/.f64 y x)) (-.f64 (/.f64 y x) (*.f64 (/.f64 y x) (/.f64 y x))))
(+.f64 (fma.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)) 1) (*.f64 0 (/.f64 y x)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x)))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (fma.f64 -1 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 (neg.f64 y) x)))) (/.f64 (*.f64 y y) (*.f64 x x)))
(+.f64 (-.f64 (-.f64 1 (*.f64 (/.f64 y x) (/.f64 y x))) (/.f64 y x)) (-.f64 (/.f64 y x) (*.f64 (/.f64 y x) (/.f64 y x))))
(+.f64 (fma.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)) 1) (*.f64 0 (/.f64 y x)))
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (/.f64 y x) (+.f64 1 (/.f64 (neg.f64 y) x)))
(+.f64 (/.f64 y x) (-.f64 1 (/.f64 y x)))
(+.f64 1 (*.f64 0 (/.f64 y x)))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))))))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (fma.f64 -1 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 (neg.f64 y) x)))) (/.f64 (*.f64 y y) (*.f64 x x)))
(+.f64 (-.f64 (-.f64 1 (*.f64 (/.f64 y x) (/.f64 y x))) (/.f64 y x)) (-.f64 (/.f64 y x) (*.f64 (/.f64 y x) (/.f64 y x))))
(+.f64 (fma.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)) 1) (*.f64 0 (/.f64 y x)))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2)))))))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (fma.f64 -1 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 (neg.f64 y) x)))) (/.f64 (*.f64 y y) (*.f64 x x)))
(+.f64 (-.f64 (-.f64 1 (*.f64 (/.f64 y x) (/.f64 y x))) (/.f64 y x)) (-.f64 (/.f64 y x) (*.f64 (/.f64 y x) (/.f64 y x))))
(+.f64 (fma.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)) 1) (*.f64 0 (/.f64 y x)))
1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)) 1)
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 1 (fma.f64 -2 (/.f64 (*.f64 y y) (*.f64 x x)) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 1 (fma.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (/.f64 (*.f64 (*.f64 y y) -2) (*.f64 x x))))
(+.f64 1 (fma.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)))))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4))) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
(+.f64 1 (fma.f64 -2 (/.f64 (*.f64 y y) (*.f64 x x)) (fma.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
(+.f64 (fma.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)) 1) (fma.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (/.f64 -2 (/.f64 (pow.f64 x 6) (pow.f64 y 6)))))
(+.f64 1 (fma.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)) (fma.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6)) (/.f64 (*.f64 2 (pow.f64 y 4)) (pow.f64 x 4)))))
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (-.f64 (*.f64 0 (/.f64 x y)) (fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 y y)) 1)))
(+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (-.f64 -1 (/.f64 (*.f64 (neg.f64 x) x) (*.f64 y y))))
(fma.f64 (/.f64 x y) (/.f64 x y) (+.f64 -1 (/.f64 x (*.f64 (/.f64 y x) y))))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y))))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (-.f64 (*.f64 0 (/.f64 x y)) (fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 y y)) 1)))
(+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (-.f64 -1 (/.f64 (*.f64 (neg.f64 x) x) (*.f64 y y))))
(fma.f64 (/.f64 x y) (/.f64 x y) (+.f64 -1 (/.f64 x (*.f64 (/.f64 y x) y))))
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (-.f64 (*.f64 0 (/.f64 x y)) (fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 y y)) 1)))
(+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (-.f64 -1 (/.f64 (*.f64 (neg.f64 x) x) (*.f64 y y))))
(fma.f64 (/.f64 x y) (/.f64 x y) (+.f64 -1 (/.f64 x (*.f64 (/.f64 y x) y))))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (-.f64 (*.f64 0 (/.f64 x y)) (fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 y y)) 1)))
(+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (-.f64 -1 (/.f64 (*.f64 (neg.f64 x) x) (*.f64 y y))))
(fma.f64 (/.f64 x y) (/.f64 x y) (+.f64 -1 (/.f64 x (*.f64 (/.f64 y x) y))))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (+.f64 (/.f64 x y) (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))))
(+.f64 1 (+.f64 (/.f64 x y) (*.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1/2)))
(+.f64 1 (fma.f64 (*.f64 (/.f64 x y) (/.f64 x y)) -1/2 (/.f64 x y)))
(+.f64 1 (fma.f64 (/.f64 x (*.f64 (/.f64 y x) y)) -1/2 (/.f64 x y)))
(+.f64 1 (+.f64 (/.f64 x y) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))))))
(+.f64 1 (+.f64 (/.f64 x y) (*.f64 -1/2 (+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (pow.f64 x 3) (pow.f64 y 3))))))
(+.f64 1 (fma.f64 -1/2 (+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (/.f64 x y)))
(+.f64 1 (fma.f64 -1/2 (+.f64 (/.f64 x (*.f64 (/.f64 y x) y)) (pow.f64 (/.f64 x y) 3)) (/.f64 x y)))
1
(+.f64 (/.f64 y x) 1)
(+.f64 1 (/.f64 y x))
(+.f64 (/.f64 y x) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) 1))
(+.f64 (/.f64 y x) (fma.f64 -1/2 (/.f64 (*.f64 y y) (*.f64 x x)) 1))
(+.f64 (/.f64 y x) (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -1/2 1))
(+.f64 (/.f64 y x) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 1 (*.f64 -1/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3))))))
(+.f64 (/.f64 y x) (+.f64 (fma.f64 -1/2 (/.f64 (*.f64 y y) (*.f64 x x)) 1) (/.f64 (*.f64 -1/2 (pow.f64 y 3)) (pow.f64 x 3))))
(+.f64 (/.f64 y x) (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -1/2 (fma.f64 -1/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) 1)))
(+.f64 (/.f64 y x) (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -1/2 (fma.f64 -1/2 (pow.f64 (/.f64 y x) 3) 1)))
-1
(-.f64 (*.f64 -1 (/.f64 y x)) 1)
(fma.f64 -1 (/.f64 y x) -1)
(-.f64 -1 (/.f64 y x))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))) 1)
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 (neg.f64 y) x)) -1)
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) 1/2 (fma.f64 -1 (/.f64 y x) -1))
(-.f64 (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) 1/2 -1) (/.f64 y x))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x)))) 1)
(+.f64 (fma.f64 1/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (fma.f64 1/2 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 (neg.f64 y) x))) -1)
(fma.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) 1/2 (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) 1/2 (fma.f64 -1 (/.f64 y x) -1)))
(fma.f64 (pow.f64 (/.f64 y x) 3) 1/2 (-.f64 (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) 1/2 -1) (/.f64 y x)))
1
(+.f64 (/.f64 y x) 1)
(+.f64 1 (/.f64 y x))
(+.f64 (/.f64 y x) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) 1))
(+.f64 (/.f64 y x) (fma.f64 -1/2 (/.f64 (*.f64 y y) (*.f64 x x)) 1))
(+.f64 (/.f64 y x) (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -1/2 1))
(+.f64 (/.f64 y x) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 1 (*.f64 -1/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3))))))
(+.f64 (/.f64 y x) (+.f64 (fma.f64 -1/2 (/.f64 (*.f64 y y) (*.f64 x x)) 1) (/.f64 (*.f64 -1/2 (pow.f64 y 3)) (pow.f64 x 3))))
(+.f64 (/.f64 y x) (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -1/2 (fma.f64 -1/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) 1)))
(+.f64 (/.f64 y x) (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -1/2 (fma.f64 -1/2 (pow.f64 (/.f64 y x) 3) 1)))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (+.f64 (/.f64 x y) (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))))
(+.f64 1 (+.f64 (/.f64 x y) (*.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1/2)))
(+.f64 1 (fma.f64 (*.f64 (/.f64 x y) (/.f64 x y)) -1/2 (/.f64 x y)))
(+.f64 1 (fma.f64 (/.f64 x (*.f64 (/.f64 y x) y)) -1/2 (/.f64 x y)))
(+.f64 1 (+.f64 (/.f64 x y) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))))))
(+.f64 1 (+.f64 (/.f64 x y) (*.f64 -1/2 (+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (pow.f64 x 3) (pow.f64 y 3))))))
(+.f64 1 (fma.f64 -1/2 (+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (/.f64 x y)))
(+.f64 1 (fma.f64 -1/2 (+.f64 (/.f64 x (*.f64 (/.f64 y x) y)) (pow.f64 (/.f64 x y) 3)) (/.f64 x y)))
-1
(-.f64 (*.f64 -1 (/.f64 x y)) 1)
(fma.f64 -1 (/.f64 x y) -1)
(-.f64 -1 (/.f64 x y))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y))) 1)
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (neg.f64 x) y)) -1)
(fma.f64 (*.f64 (/.f64 x y) (/.f64 x y)) 1/2 (fma.f64 -1 (/.f64 x y) -1))
(-.f64 (fma.f64 (/.f64 x (*.f64 (/.f64 y x) y)) 1/2 -1) (/.f64 x y))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (fma.f64 1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3)) (fma.f64 1/2 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (neg.f64 x) y))) -1)
(+.f64 -1 (-.f64 (*.f64 1/2 (+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (/.f64 (pow.f64 x 3) (pow.f64 y 3)))) (/.f64 x y)))
(fma.f64 (pow.f64 (/.f64 x y) 3) 1/2 (-.f64 (fma.f64 (/.f64 x (*.f64 (/.f64 y x) y)) 1/2 -1) (/.f64 x y)))
-1
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
(-.f64 (+.f64 (/.f64 x y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))) 1)
(+.f64 (/.f64 x y) (-.f64 (*.f64 (/.f64 (*.f64 x x) (*.f64 y y)) 1/2) 1))
(+.f64 -1 (fma.f64 (*.f64 (/.f64 x y) (/.f64 x y)) 1/2 (/.f64 x y)))
(+.f64 -1 (fma.f64 (/.f64 x (*.f64 (/.f64 y x) y)) 1/2 (/.f64 x y)))
(-.f64 (+.f64 (/.f64 x y) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))))) 1)
(+.f64 (/.f64 x y) (-.f64 (fma.f64 1/2 (/.f64 (*.f64 x x) (*.f64 y y)) (*.f64 -1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3)))) 1))
(+.f64 (fma.f64 (*.f64 (/.f64 x y) (/.f64 x y)) 1/2 (*.f64 -1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3)))) (+.f64 -1 (/.f64 x y)))
(+.f64 (fma.f64 (/.f64 x (*.f64 (/.f64 y x) y)) 1/2 (/.f64 x y)) (fma.f64 -1/2 (pow.f64 (/.f64 x y) 3) -1))
1
(+.f64 1 (*.f64 -1 (/.f64 y x)))
(+.f64 1 (/.f64 (neg.f64 y) x))
(-.f64 1 (/.f64 y x))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (fma.f64 -1/2 (/.f64 (*.f64 y y) (*.f64 x x)) 1) (/.f64 (neg.f64 y) x))
(-.f64 (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -1/2 1) (/.f64 y x))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 1 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3))) (*.f64 -1 (/.f64 y x)))))
(+.f64 (fma.f64 -1/2 (/.f64 (*.f64 y y) (*.f64 x x)) 1) (fma.f64 1/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (/.f64 (neg.f64 y) x)))
(+.f64 (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -1/2 1) (-.f64 (/.f64 1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (/.f64 y x)))
(+.f64 (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -1/2 1) (-.f64 (*.f64 (pow.f64 (/.f64 y x) 3) 1/2) (/.f64 y x)))
-1
(-.f64 (/.f64 y x) 1)
(+.f64 (/.f64 y x) -1)
(+.f64 -1 (/.f64 y x))
(-.f64 (+.f64 (/.f64 y x) (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))) 1)
(+.f64 (/.f64 y x) (-.f64 (*.f64 (/.f64 (*.f64 y y) (*.f64 x x)) 1/2) 1))
(+.f64 -1 (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) 1/2 (/.f64 y x)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3))))) 1)
(+.f64 (/.f64 y x) (-.f64 (fma.f64 1/2 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 (*.f64 -1/2 (pow.f64 y 3)) (pow.f64 x 3))) 1))
(+.f64 (/.f64 y x) (+.f64 (/.f64 -1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) 1/2 -1)))
(+.f64 (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) 1/2 (/.f64 y x)) (fma.f64 -1/2 (pow.f64 (/.f64 y x) 3) -1))
1
(+.f64 1 (*.f64 -1 (/.f64 y x)))
(+.f64 1 (/.f64 (neg.f64 y) x))
(-.f64 1 (/.f64 y x))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (fma.f64 -1/2 (/.f64 (*.f64 y y) (*.f64 x x)) 1) (/.f64 (neg.f64 y) x))
(-.f64 (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -1/2 1) (/.f64 y x))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 1 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3))) (*.f64 -1 (/.f64 y x)))))
(+.f64 (fma.f64 -1/2 (/.f64 (*.f64 y y) (*.f64 x x)) 1) (fma.f64 1/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (/.f64 (neg.f64 y) x)))
(+.f64 (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -1/2 1) (-.f64 (/.f64 1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (/.f64 y x)))
(+.f64 (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -1/2 1) (-.f64 (*.f64 (pow.f64 (/.f64 y x) 3) 1/2) (/.f64 y x)))
-1
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
(-.f64 (+.f64 (/.f64 x y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))) 1)
(+.f64 (/.f64 x y) (-.f64 (*.f64 (/.f64 (*.f64 x x) (*.f64 y y)) 1/2) 1))
(+.f64 -1 (fma.f64 (*.f64 (/.f64 x y) (/.f64 x y)) 1/2 (/.f64 x y)))
(+.f64 -1 (fma.f64 (/.f64 x (*.f64 (/.f64 y x) y)) 1/2 (/.f64 x y)))
(-.f64 (+.f64 (/.f64 x y) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))))) 1)
(+.f64 (/.f64 x y) (-.f64 (fma.f64 1/2 (/.f64 (*.f64 x x) (*.f64 y y)) (*.f64 -1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3)))) 1))
(+.f64 (fma.f64 (*.f64 (/.f64 x y) (/.f64 x y)) 1/2 (*.f64 -1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3)))) (+.f64 -1 (/.f64 x y)))
(+.f64 (fma.f64 (/.f64 x (*.f64 (/.f64 y x) y)) 1/2 (/.f64 x y)) (fma.f64 -1/2 (pow.f64 (/.f64 x y) 3) -1))
1
(+.f64 1 (*.f64 -1 (/.f64 x y)))
(+.f64 1 (/.f64 (neg.f64 x) y))
(-.f64 1 (/.f64 x y))
(+.f64 1 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y))))
(+.f64 1 (fma.f64 -1/2 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (neg.f64 x) y)))
(+.f64 (/.f64 (/.f64 (*.f64 (*.f64 -1/2 x) x) y) y) (-.f64 1 (/.f64 x y)))
(+.f64 1 (fma.f64 (/.f64 x (*.f64 (/.f64 y x) y)) -1/2 (/.f64 (neg.f64 x) y)))
(+.f64 1 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y)))))
(+.f64 1 (fma.f64 1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3)) (fma.f64 -1/2 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (neg.f64 x) y))))
(+.f64 (fma.f64 (/.f64 (pow.f64 x 3) (pow.f64 y 3)) 1/2 (/.f64 (/.f64 (*.f64 (*.f64 -1/2 x) x) y) y)) (-.f64 1 (/.f64 x y)))
(+.f64 (-.f64 1 (/.f64 x y)) (fma.f64 (pow.f64 (/.f64 x y) 3) 1/2 (/.f64 (*.f64 x (*.f64 x -1/2)) (*.f64 y y))))
y
(+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 y (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 1/2 (/.f64 x (/.f64 y x)) y)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y))))
(fma.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) (+.f64 y (*.f64 1/2 (/.f64 (*.f64 x x) y))))
(fma.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) (fma.f64 1/2 (/.f64 x (/.f64 y x)) y))
(fma.f64 -1/8 (/.f64 x (pow.f64 (/.f64 y x) 3)) (fma.f64 1/2 (/.f64 x (/.f64 y x)) y))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (+.f64 y (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))))))
(fma.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) (+.f64 y (fma.f64 1/2 (/.f64 (*.f64 x x) y) (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))))))
(+.f64 (fma.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) (fma.f64 1/2 (/.f64 x (/.f64 y x)) y)) (/.f64 1/16 (/.f64 (pow.f64 y 5) (pow.f64 x 6))))
(+.f64 (fma.f64 -1/8 (/.f64 x (pow.f64 (/.f64 y x) 3)) (fma.f64 1/2 (/.f64 x (/.f64 y x)) y)) (*.f64 (/.f64 1/16 (pow.f64 y 5)) (pow.f64 x 6)))
x
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) x)
(fma.f64 1/2 (/.f64 (*.f64 y y) x) x)
(fma.f64 1/2 (*.f64 (/.f64 y x) y) x)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) x))
(fma.f64 1/2 (/.f64 (*.f64 y y) x) (fma.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) x))
(fma.f64 1/2 (*.f64 (/.f64 y x) y) (fma.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) x))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) x)))
(fma.f64 1/2 (/.f64 (*.f64 y y) x) (fma.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5)) (fma.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) x)))
(fma.f64 1/2 (*.f64 (/.f64 y x) y) (fma.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5)) (fma.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) x)))
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) x)) (*.f64 -1 x))
(fma.f64 -1/2 (/.f64 (*.f64 y y) x) (neg.f64 x))
(-.f64 (/.f64 -1/2 (/.f64 x (*.f64 y y))) x)
(-.f64 (/.f64 (*.f64 (*.f64 y y) -1/2) x) x)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (*.f64 -1 x)))
(fma.f64 -1/2 (/.f64 (*.f64 y y) x) (fma.f64 1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (neg.f64 x)))
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 y y) x) (/.f64 (*.f64 (pow.f64 y 4) 1/8) (pow.f64 x 3))) x)
(-.f64 (fma.f64 -1/2 (*.f64 (/.f64 y x) y) (*.f64 (/.f64 1/8 (pow.f64 x 3)) (pow.f64 y 4))) x)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) (+.f64 (*.f64 -1 x) (*.f64 -1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5))))))
(fma.f64 -1/2 (/.f64 (*.f64 y y) x) (fma.f64 1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (fma.f64 -1 x (*.f64 (/.f64 (pow.f64 y 6) (pow.f64 x 5)) -1/16))))
(fma.f64 -1/2 (/.f64 (*.f64 y y) x) (fma.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) 1/8 (-.f64 (*.f64 (/.f64 (pow.f64 y 6) (pow.f64 x 5)) -1/16) x)))
(fma.f64 -1/2 (*.f64 (/.f64 y x) y) (fma.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) 1/8 (-.f64 (*.f64 (/.f64 (pow.f64 y 6) (pow.f64 x 5)) -1/16) x)))
x
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) x)
(fma.f64 1/2 (/.f64 (*.f64 y y) x) x)
(fma.f64 1/2 (*.f64 (/.f64 y x) y) x)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) x))
(fma.f64 1/2 (/.f64 (*.f64 y y) x) (fma.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) x))
(fma.f64 1/2 (*.f64 (/.f64 y x) y) (fma.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) x))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) x)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3))) x)))
(fma.f64 1/2 (/.f64 (*.f64 y y) x) (fma.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5)) (fma.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) x)))
(fma.f64 1/2 (*.f64 (/.f64 y x) y) (fma.f64 1/16 (/.f64 (pow.f64 y 6) (pow.f64 x 5)) (fma.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) x)))
y
(+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y)))
(+.f64 y (*.f64 1/2 (/.f64 (*.f64 x x) y)))
(fma.f64 1/2 (/.f64 x (/.f64 y x)) y)
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (+.f64 y (*.f64 1/2 (/.f64 (pow.f64 x 2) y))))
(fma.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) (+.f64 y (*.f64 1/2 (/.f64 (*.f64 x x) y))))
(fma.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) (fma.f64 1/2 (/.f64 x (/.f64 y x)) y))
(fma.f64 -1/8 (/.f64 x (pow.f64 (/.f64 y x) 3)) (fma.f64 1/2 (/.f64 x (/.f64 y x)) y))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))) (+.f64 y (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))))))
(fma.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) (+.f64 y (fma.f64 1/2 (/.f64 (*.f64 x x) y) (*.f64 1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))))))
(+.f64 (fma.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) (fma.f64 1/2 (/.f64 x (/.f64 y x)) y)) (/.f64 1/16 (/.f64 (pow.f64 y 5) (pow.f64 x 6))))
(+.f64 (fma.f64 -1/8 (/.f64 x (pow.f64 (/.f64 y x) 3)) (fma.f64 1/2 (/.f64 x (/.f64 y x)) y)) (*.f64 (/.f64 1/16 (pow.f64 y 5)) (pow.f64 x 6)))
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y))
(fma.f64 -1/2 (/.f64 (*.f64 x x) y) (neg.f64 y))
(-.f64 (/.f64 (*.f64 (*.f64 -1/2 x) x) y) y)
(-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) y)) (+.f64 (*.f64 -1 y) (*.f64 1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3)))))
(fma.f64 -1/2 (/.f64 (*.f64 x x) y) (fma.f64 -1 y (*.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) 1/8)))
(fma.f64 -1/2 (/.f64 x (/.f64 y x)) (-.f64 (*.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) 1/8) y))
(fma.f64 -1/2 (/.f64 x (/.f64 y x)) (-.f64 (*.f64 (/.f64 1/8 (pow.f64 y 3)) (pow.f64 x 4)) y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) y)) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5))) (+.f64 (*.f64 -1 y) (*.f64 1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 3))))))
(fma.f64 -1/2 (/.f64 (*.f64 x x) y) (fma.f64 -1/16 (/.f64 (pow.f64 x 6) (pow.f64 y 5)) (fma.f64 -1 y (*.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) 1/8))))
(fma.f64 -1/2 (/.f64 x (/.f64 y x)) (fma.f64 (/.f64 (pow.f64 x 6) (pow.f64 y 5)) -1/16 (-.f64 (*.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) 1/8) y)))
(fma.f64 -1/2 (/.f64 x (/.f64 y x)) (fma.f64 (/.f64 (pow.f64 x 6) (pow.f64 y 5)) -1/16 (-.f64 (*.f64 (/.f64 1/8 (pow.f64 y 3)) (pow.f64 x 4)) y)))

localize11.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
12.8b
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
Compiler

Compiled 32 to 16 computations (50% saved)

series3.0ms (0%)

Counts
1 → 21
Calls

6 calls:

TimeVariablePointExpression
1.0ms
y
@0
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
1.0ms
x
@0
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
1.0ms
x
@inf
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
0.0ms
x
@-inf
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
0.0ms
y
@-inf
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))

rewrite193.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
510×fma-def_binary64
407×log-prod_binary64
307×exp-prod_binary64
293×pow-prod-down_binary64
292×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0915
119713
230831
Stop Event
node limit
Counts
1 → 1
Calls
Call 1
Inputs
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x . 1)))))

simplify17.0ms (0.2%)

Algorithm
egg-herbie
Rules
89×fma-def_binary64
80×fma-neg_binary64
25×cancel-sign-sub-inv_binary64
21×unsub-neg_binary64
15×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01427
13421
28321
39721
411021
517921
630821
748921
850921
953221
1055521
Stop Event
saturated
Counts
22 → 5
Calls
Call 1
Inputs
1
1
1
1
1
1
1
1
1
1
1
1
(/.f64 (+.f64 y (*.f64 -1 y)) x)
(+.f64 1 (+.f64 (/.f64 y x) (*.f64 -1 (/.f64 y x))))
(+.f64 1 (+.f64 (/.f64 y x) (*.f64 -1 (/.f64 y x))))
(+.f64 1 (+.f64 (/.f64 y x) (*.f64 -1 (/.f64 y x))))
1
1
(+.f64 1 (*.f64 -1 (/.f64 (+.f64 y (*.f64 -1 y)) x)))
(+.f64 1 (*.f64 -1 (/.f64 (+.f64 y (*.f64 -1 y)) x)))
(+.f64 1 (*.f64 -1 (/.f64 (+.f64 y (*.f64 -1 y)) x)))
Outputs
1
1
1
1
1
1
1
1
1
1
1
1
(/.f64 (+.f64 y (*.f64 -1 y)) x)
(/.f64 (*.f64 0 y) x)
0
(+.f64 1 (+.f64 (/.f64 y x) (*.f64 -1 (/.f64 y x))))
1
(+.f64 1 (+.f64 (/.f64 y x) (*.f64 -1 (/.f64 y x))))
1
(+.f64 1 (+.f64 (/.f64 y x) (*.f64 -1 (/.f64 y x))))
1
1
1
(+.f64 1 (*.f64 -1 (/.f64 (+.f64 y (*.f64 -1 y)) x)))
1
(+.f64 1 (*.f64 -1 (/.f64 (+.f64 y (*.f64 -1 y)) x)))
1
(+.f64 1 (*.f64 -1 (/.f64 (+.f64 y (*.f64 -1 y)) x)))
1

localize24.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 y y) (*.f64 x x))
0.2b
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))
17.6b
(/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x)))
Compiler

Compiled 49 to 9 computations (81.6% saved)

series6.0ms (0.1%)

Counts
3 → 72
Calls

18 calls:

TimeVariablePointExpression
0.0ms
x
@0
(/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x)))
0.0ms
y
@inf
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))
0.0ms
x
@-inf
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))
0.0ms
x
@inf
(/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x)))
0.0ms
x
@inf
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))

rewrite80.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
603×log-prod_binary64
587×fma-def_binary64
311×pow2_binary64
254×fma-neg_binary64
215×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01042
123239
2371339
Stop Event
node limit
Counts
3 → 148
Calls
Call 1
Inputs
(/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x)))
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))
(+.f64 (*.f64 y y) (*.f64 x x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (/.f64 1 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (cbrt.f64 (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 2)) (cbrt.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 1 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (hypot.f64 x y)) (/.f64 (sqrt.f64 (+.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 x y)) (*.f64 (sqrt.f64 (+.f64 x y)) (/.f64 1 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 x y)) (/.f64 1 (neg.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) 1) (/.f64 (cbrt.f64 (+.f64 x y)) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) 1) (/.f64 (sqrt.f64 (+.f64 x y)) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 x y) 2)) 2)) (/.f64 (+.f64 x y) (cbrt.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 x y) 2)) 2)) (cbrt.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 x y) 2)) 2)) (/.f64 (sqrt.f64 (+.f64 x y)) (cbrt.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (hypot.f64 x y)) (/.f64 (cbrt.f64 (+.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (+.f64 (pow.f64 y 6) (pow.f64 x 6))) (-.f64 (+.f64 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (*.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (-.f64 (pow.f64 y 4) (pow.f64 x 4))) (-.f64 (*.f64 y y) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (hypot.f64 x y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (+.f64 x y) 3) (pow.f64 (pow.f64 (hypot.f64 x y) 2) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (+.f64 x y) (neg.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (+.f64 x y) 3) (pow.f64 (pow.f64 (hypot.f64 x y) 2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (*.f64 (neg.f64 y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) x) (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (-.f64 x y))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (-.f64 x y)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x y) (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 (*.f64 x x) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (*.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y)) (fma.f64 y (+.f64 x y) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y)) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (*.f64 y y))) (neg.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 x x) (*.f64 y y)) 1) (*.f64 (+.f64 x y) (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (-.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 (pow.f64 (hypot.f64 x y) 2) (fma.f64 y (+.f64 x y) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 x y)) (-.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 (neg.f64 (pow.f64 (hypot.f64 x y) 2)) (fma.f64 y (+.f64 x y) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (-.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 x y)) (-.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (neg.f64 (pow.f64 (hypot.f64 x y) 2)) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (+.f64 x y)) (*.f64 (fma.f64 y (+.f64 x y) (*.f64 x x)) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (+.f64 x y)) (*.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) 1) (*.f64 (fma.f64 y (+.f64 x y) (*.f64 x x)) (/.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (neg.f64 (+.f64 x y))) (*.f64 (fma.f64 y (+.f64 x y) (*.f64 x x)) (neg.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (neg.f64 (+.f64 x y))) (*.f64 (+.f64 x y) (neg.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) 1) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 x y) 2)) 2)) (cbrt.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (hypot.f64 x y)) (hypot.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 x y)) (-.f64 x y)) (neg.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (fma.f64 y (+.f64 x y) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 (pow.f64 x 3) (pow.f64 y 3))) (fma.f64 y (+.f64 x y) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 (*.f64 x x) (*.f64 y y))) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x y) (neg.f64 (+.f64 x y))) (neg.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) (hypot.f64 x y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 3) (pow.f64 (-.f64 x y) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 (*.f64 x x) (*.f64 y y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 3) (pow.f64 (-.f64 x y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (*.f64 (neg.f64 y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) x (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (neg.f64 y)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (hypot.f64 x y) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 y 4) (-.f64 (*.f64 y y) (*.f64 x x))) (/.f64 (pow.f64 x 4) (-.f64 (*.f64 y y) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 x y) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (hypot.f64 x y) 2)) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 x y) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 x y) 2)) 2) (cbrt.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 x y) (hypot.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 y 6) (pow.f64 x 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (*.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 y 4) (pow.f64 x 4)) (/.f64 1 (-.f64 (*.f64 y y) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (+.f64 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (*.f64 x y) 2)) (+.f64 (pow.f64 y 6) (pow.f64 x 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 y y) (*.f64 x x)) (-.f64 (pow.f64 y 4) (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 6) (pow.f64 x 6)) (-.f64 (+.f64 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (*.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 6) (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 y 4) (pow.f64 x 4)) (-.f64 (*.f64 y y) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 y 6) (pow.f64 x 6))) (neg.f64 (-.f64 (+.f64 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (*.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 y 4) (pow.f64 x 4))) (neg.f64 (-.f64 (*.f64 y y) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x 4) (pow.f64 y 4)) (-.f64 (*.f64 x x) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 x y) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (hypot.f64 x y) 2) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (hypot.f64 x y) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 x y) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 x y) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (+.f64 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (*.f64 x y) 2)) (+.f64 (pow.f64 y 6) (pow.f64 x 6))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (*.f64 y y) (*.f64 x x)) (-.f64 (pow.f64 y 4) (pow.f64 x 4))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (hypot.f64 x y) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y y))) (pow.f64 (exp.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 y y)) (+.f64 1 (expm1.f64 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y y))) (+.f64 1 (expm1.f64 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x x))) (exp.f64 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x) x) (+.f64 1 (expm1.f64 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x x))) (+.f64 1 (expm1.f64 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 x y) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 x y) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x x (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y y (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) 1 (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 1 (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x x) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (cbrt.f64 (pow.f64 y 4)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 y 4)) (pow.f64 (cbrt.f64 y) 2) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 (pow.f64 x 4)) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) x) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x 4)) (pow.f64 (cbrt.f64 x) 2) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) x) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 x)) (sqrt.f64 x) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 y)) (sqrt.f64 y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 y y))))))

simplify187.0ms (1.9%)

Algorithm
egg-herbie
Rules
740×times-frac_binary64
507×fma-def_binary64
362×associate-+l+_binary64
312×associate-/l*_binary64
310×associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0116288
1381288
21430288
36858288
Stop Event
node limit
Counts
220 → 178
Calls
Call 1
Inputs
(/.f64 1 y)
(+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2))))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))))
(/.f64 1 x)
(+.f64 (/.f64 y (pow.f64 x 2)) (/.f64 1 x))
(+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 3) (pow.f64 x 4))) (+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))))
(/.f64 1 x)
(+.f64 (/.f64 y (pow.f64 x 2)) (/.f64 1 x))
(+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 3) (pow.f64 x 4))) (+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))))
(/.f64 1 x)
(+.f64 (/.f64 y (pow.f64 x 2)) (/.f64 1 x))
(+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 3) (pow.f64 x 4))) (+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))))
(/.f64 1 y)
(+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2))))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))))
(/.f64 1 y)
(+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2))))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))))
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) 1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6))) (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) 1)
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x)))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))))))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2)))))))
1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4))) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y))))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 y 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 y 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 y 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
Outputs
(/.f64 1 y)
(+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2)))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2))))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))))
(/.f64 1 y)
(/.f64 1 x)
(/.f64 1 y)
(+.f64 (/.f64 y (pow.f64 x 2)) (/.f64 1 x))
(/.f64 1 y)
(+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x)))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 3) (pow.f64 x 4))) (+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))))
(/.f64 1 y)
(/.f64 1 x)
(/.f64 1 y)
(+.f64 (/.f64 y (pow.f64 x 2)) (/.f64 1 x))
(/.f64 1 y)
(+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x)))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 3) (pow.f64 x 4))) (+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))))
(/.f64 1 y)
(/.f64 1 x)
(/.f64 1 y)
(+.f64 (/.f64 y (pow.f64 x 2)) (/.f64 1 x))
(/.f64 1 y)
(+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x)))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 3) (pow.f64 x 4))) (+.f64 (/.f64 y (pow.f64 x 2)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))))
(/.f64 1 y)
(/.f64 1 y)
(+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2)))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2))))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))))
(/.f64 1 y)
(/.f64 1 y)
(+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2)))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (/.f64 x (pow.f64 y 2))))
(/.f64 1 y)
(+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))))
(/.f64 1 y)
-1
(/.f64 1 y)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(/.f64 1 y)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) 1)
(/.f64 1 y)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6))) (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) 1)
(/.f64 1 y)
1
(/.f64 1 y)
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(/.f64 1 y)
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(/.f64 1 y)
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x)))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(/.f64 1 y)
1
(/.f64 1 y)
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(/.f64 1 y)
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))))))
(/.f64 1 y)
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2)))))))
(/.f64 1 y)
1
(/.f64 1 y)
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(/.f64 1 y)
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(/.f64 1 y)
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4))) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
(/.f64 1 y)
-1
(/.f64 1 y)
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
(/.f64 1 y)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(/.f64 1 y)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y))))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(/.f64 1 y)
-1
(/.f64 1 y)
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
(/.f64 1 y)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(/.f64 1 y)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(/.f64 1 y)
(pow.f64 x 2)
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(pow.f64 y 2)
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(pow.f64 y 2)
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(pow.f64 y 2)
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(pow.f64 x 2)
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(pow.f64 x 2)
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 1 y)

localize14.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(pow.f64 y 2)
22.0b
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (pow.f64 y 2))
Compiler

Compiled 32 to 11 computations (65.6% saved)

series5.0ms (0.1%)

Counts
2 → 24
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (pow.f64 y 2))
1.0ms
x
@0
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (pow.f64 y 2))
1.0ms
x
@inf
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (pow.f64 y 2))
1.0ms
y
@0
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (pow.f64 y 2))
1.0ms
y
@-inf
(pow.f64 y 2)

rewrite76.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
893×prod-diff_binary64
548×log-prod_binary64
416×fma-def_binary64
193×pow1/3_binary64
186×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0920
121220
2327520
Stop Event
node limit
Counts
2 → 70
Calls
Call 1
Inputs
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (pow.f64 y 2))
(pow.f64 y 2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (-.f64 x y)) (+.f64 x y)) (pow.f64 y -2))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (-.f64 x y)) (+.f64 x y)) (pow.f64 y -2))))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (-.f64 x y)) (+.f64 x y)) (pow.f64 y -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (-.f64 x y)) (+.f64 x y)) (pow.f64 y -2)))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (-.f64 x y)) (+.f64 x y)) (pow.f64 y -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 x (/.f64 (*.f64 y y) (+.f64 x y))) (/.f64 y (/.f64 (*.f64 y y) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x y) (/.f64 1 (/.f64 (*.f64 y y) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (*.f64 (-.f64 x y) (pow.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 y -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2)))) (cbrt.f64 (/.f64 (pow.f64 (-.f64 (*.f64 x x) (*.f64 y y)) 2) (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (pow.f64 (-.f64 (*.f64 x x) (*.f64 y y)) 2) (pow.f64 y 4))) (cbrt.f64 (*.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) 2) (*.f64 (cbrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) (pow.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) y) (/.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) (*.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) (pow.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 x y) (neg.f64 (+.f64 x y))) (pow.f64 (*.f64 y (neg.f64 y)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 y -2) (-.f64 (*.f64 x x) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x y) y) (/.f64 (+.f64 x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) y) (/.f64 (-.f64 x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 y -1) (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) 2) y) (/.f64 (cbrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x y) 1) (/.f64 (+.f64 x y) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) 1) (/.f64 (-.f64 x y) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x y) (*.f64 y y)) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) 2) 1) (/.f64 (cbrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) 1) (/.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x y) (cbrt.f64 (pow.f64 y 4))) (/.f64 (+.f64 x y) (pow.f64 (cbrt.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (cbrt.f64 (pow.f64 y 4))) (/.f64 (-.f64 x y) (pow.f64 (cbrt.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (pow.f64 y 4))) (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (cbrt.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 (*.f64 x x) (*.f64 y y))) 2) (cbrt.f64 (pow.f64 y 4))) (cbrt.f64 (*.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) (cbrt.f64 (pow.f64 y 4))) (/.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) (pow.f64 (cbrt.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) y) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 y (-.f64 x y)) (/.f64 y (+.f64 x y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (-.f64 (*.f64 x x) (*.f64 y y)) 3) (pow.f64 (*.f64 y y) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 (/.f64 y (-.f64 x y)) (/.f64 y (+.f64 x y))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (pow.f64 (-.f64 (*.f64 x x) (*.f64 y y)) 2) (pow.f64 y 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 (-.f64 x y)) (+.f64 x y)) (pow.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (-.f64 (*.f64 x x) (*.f64 y y)) 3) (pow.f64 (*.f64 y y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (*.f64 y y))) (cbrt.f64 (exp.f64 (*.f64 y y))))) (log.f64 (cbrt.f64 (exp.f64 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 y y)))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 y) 2) (cbrt.f64 (pow.f64 y 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 y 4)) (pow.f64 (cbrt.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (sqrt.f64 y)) (sqrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 y 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 y y)) 1))))))

simplify64.0ms (0.6%)

Algorithm
egg-herbie
Rules
480×distribute-neg-frac_binary64
440×unswap-sqr_binary64
422×associate-/l*_binary64
362×fma-def_binary64
343×div-sub_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
023240
162240
2154210
3284210
4916210
55607210
Stop Event
node limit
Counts
94 → 80
Calls
Call 1
Inputs
-1
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) 1)
Outputs
-1
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)

localize64.0ms (0.6%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
0.0b
(pow.f64 y 2)
15.7b
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
Compiler

Compiled 40 to 30 computations (25% saved)

series6.0ms (0.1%)

Counts
2 → 6
Calls

12 calls:

TimeVariablePointExpression
1.0ms
y
@inf
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
1.0ms
y
@0
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
1.0ms
x
@0
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
1.0ms
x
@inf
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
1.0ms
x
@0
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))

rewrite69.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
475×log-prod_binary64
368×prod-diff_binary64
365×exp-prod_binary64
265×pow-prod-down_binary64
265×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01126
123518
2280518
Stop Event
node limit
Counts
2 → 101
Calls
Call 1
Inputs
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (/.f64 y x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (/.f64 y x) 2))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (/.f64 y x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (/.f64 y x) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (/.f64 y x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (/.f64 y x) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 y (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y y) (pow.f64 x -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 y x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (/.f64 y x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 y x)) 2) (cbrt.f64 (pow.f64 (/.f64 y x) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 y x) 4)) (pow.f64 (cbrt.f64 (/.f64 y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 y) y) (*.f64 (cbrt.f64 (*.f64 y y)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y x) (/.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (neg.f64 y)) (/.f64 1 (*.f64 x (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x -2) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (/.f64 (*.f64 y y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (cbrt.f64 y) y) x) (/.f64 (cbrt.f64 (*.f64 y y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y 1) (/.f64 y (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (cbrt.f64 y) y) 1) (/.f64 (cbrt.f64 (*.f64 y y)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y (*.f64 (cbrt.f64 x) x)) (/.f64 y (pow.f64 (cbrt.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 (cbrt.f64 x) x)) (/.f64 (*.f64 y y) (pow.f64 (cbrt.f64 x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (cbrt.f64 y) y) (*.f64 (cbrt.f64 x) x)) (pow.f64 (cbrt.f64 (/.f64 y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (*.f64 2 (log.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y x) 4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y x) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (/.f64 y x)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 y x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y x) -2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 y 6) (pow.f64 x 6)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (/.f64 y x) -2) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 2 (log.f64 (/.f64 y x)))) 2)) (cbrt.f64 (*.f64 2 (log.f64 (/.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (*.f64 2 (log.f64 (/.f64 y x))))) (sqrt.f64 (*.f64 2 (log.f64 (/.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 y y) (*.f64 x (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 y x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (/.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (/.f64 y x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 y x) 6))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 y 6) (pow.f64 x 6)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (/.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (/.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (/.f64 y x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 y x) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (cbrt.f64 (/.f64 y x)) 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 y x) -2)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 2 (log.f64 (/.f64 y x))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (+.f64 1 (*.f64 2 (pow.f64 (/.f64 y x) 2)))) (/.f64 (*.f64 4 (pow.f64 (/.f64 y x) 4)) (+.f64 1 (*.f64 2 (pow.f64 (/.f64 y x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)) (pow.f64 (cbrt.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)) 2) (cbrt.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 1 (*.f64 (sqrt.f64 -2) (/.f64 y x))) (hypot.f64 1 (*.f64 (sqrt.f64 -2) (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 -8 (pow.f64 (/.f64 y x) 6) 1) (/.f64 1 (+.f64 1 (fma.f64 4 (pow.f64 (/.f64 y x) 4) (*.f64 2 (pow.f64 (/.f64 y x) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (*.f64 4 (pow.f64 (/.f64 y x) 4))) (/.f64 1 (+.f64 1 (*.f64 2 (pow.f64 (/.f64 y x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1 (fma.f64 4 (pow.f64 (/.f64 y x) 4) (*.f64 2 (pow.f64 (/.f64 y x) 2)))) (fma.f64 -8 (pow.f64 (/.f64 y x) 6) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1 (*.f64 2 (pow.f64 (/.f64 y x) 2))) (-.f64 1 (*.f64 4 (pow.f64 (/.f64 y x) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 -8 (pow.f64 (/.f64 y x) 6) 1) (+.f64 1 (fma.f64 4 (pow.f64 (/.f64 y x) 4) (*.f64 2 (pow.f64 (/.f64 y x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 -8 (pow.f64 (/.f64 y x) 6) 1) (fma.f64 4 (pow.f64 (/.f64 y x) 4) (+.f64 1 (*.f64 2 (pow.f64 (/.f64 y x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 4 (pow.f64 (/.f64 y x) 4))) (+.f64 1 (*.f64 2 (pow.f64 (/.f64 y x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 -8 (pow.f64 (/.f64 y x) 6) 1)) (neg.f64 (+.f64 1 (fma.f64 4 (pow.f64 (/.f64 y x) 4) (*.f64 2 (pow.f64 (/.f64 y x) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 (*.f64 4 (pow.f64 (/.f64 y x) 4)))) (neg.f64 (+.f64 1 (*.f64 2 (pow.f64 (/.f64 y x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 4 (pow.f64 (/.f64 y x) 4) -1) (fma.f64 (pow.f64 (/.f64 y x) 2) -2 -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log1p.f64 (/.f64 -2 (pow.f64 (/.f64 y x) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 1 (*.f64 (sqrt.f64 -2) (/.f64 y x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 1 (fma.f64 4 (pow.f64 (/.f64 y x) 4) (*.f64 2 (pow.f64 (/.f64 y x) 2)))) (fma.f64 -8 (pow.f64 (/.f64 y x) 6) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 1 (*.f64 2 (pow.f64 (/.f64 y x) 2))) (-.f64 1 (*.f64 4 (pow.f64 (/.f64 y x) 4)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log1p.f64 (/.f64 -2 (pow.f64 (/.f64 y x) -2)))) 2)) (cbrt.f64 (log1p.f64 (/.f64 -2 (pow.f64 (/.f64 y x) -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log1p.f64 (/.f64 -2 (pow.f64 (/.f64 y x) -2))))) (sqrt.f64 (log1p.f64 (/.f64 -2 (pow.f64 (/.f64 y x) -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (/.f64 -2 (pow.f64 (/.f64 y x) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (/.f64 -2 (pow.f64 (/.f64 y x) -2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log1p.f64 (/.f64 -2 (pow.f64 (/.f64 y x) -2)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/3 (log1p.f64 (/.f64 -2 (pow.f64 (/.f64 y x) -2)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (hypot.f64 1 (*.f64 (sqrt.f64 -2) (/.f64 y x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log1p.f64 (/.f64 -2 (pow.f64 (/.f64 y x) -2))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) (*.f64 (pow.f64 x -2) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 -2 (pow.f64 (/.f64 y x) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -2 (pow.f64 (/.f64 y x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 -2 (pow.f64 (/.f64 y x) -2)) 1 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 -2 (pow.f64 (/.f64 y x) -2))) (cbrt.f64 (*.f64 4 (pow.f64 (/.f64 y x) 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 4 (pow.f64 (/.f64 y x) 4))) (cbrt.f64 (/.f64 -2 (pow.f64 (/.f64 y x) -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (/.f64 y x) 4)) (*.f64 (pow.f64 (cbrt.f64 (/.f64 y x)) 2) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 -2) (/.f64 y x)) (*.f64 (sqrt.f64 -2) (/.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 y x) (*.f64 (/.f64 y x) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 y y) -2) (pow.f64 x -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 -2 x) (/.f64 (*.f64 y y) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 -2 (*.f64 (cbrt.f64 x) x)) (/.f64 (*.f64 y y) (pow.f64 (cbrt.f64 x) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -2 (cbrt.f64 (pow.f64 (/.f64 y x) 4))) (pow.f64 (cbrt.f64 (/.f64 y x)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -2 (/.f64 y x)) (/.f64 y x) 1)))))

simplify114.0ms (1.1%)

Algorithm
egg-herbie
Rules
684×*-commutative_binary64
638×associate-/l*_binary64
574×sqr-pow_binary64
397×associate-/r*_binary64
332×associate-/l/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01042
12242
24542
313242
466642
5419842
6480642
7501842
8522242
9545842
10578042
11657442
12710242
13775042
Stop Event
node limit
Counts
107 → 104
Calls
Call 1
Inputs
1
(*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
1
1
Outputs
1
(*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x))
(*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)))
(*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x))
(*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)))
(*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x))
(*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)))
1
1

eval314.0ms (3.1%)

Compiler

Compiled 21708 to 7588 computations (65% saved)

prune205.0ms (2%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New8188826
Fresh314
Picked101
Done314
Total82510835
Error
0.0b
Counts
835 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
40.8b
1
18.5b
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))
23.3b
-1
0.0b
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y)))
22.4b
(fma.f64 (/.f64 2 y) (/.f64 x (/.f64 y x)) -1)
38.2b
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))
40.2b
(+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))))
22.7b
(*.f64 (/.f64 (-.f64 x y) y) (/.f64 (+.f64 x y) y))
0.0b
(/.f64 (+.f64 x y) (*.f64 (hypot.f64 x y) (/.f64 (hypot.f64 x y) (-.f64 x y))))
30.4b
(*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y)))
Compiler

Compiled 239 to 133 computations (44.4% saved)

localize14.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 x y)
0.0b
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y)))
0.0b
(/.f64 (hypot.f64 x y) (-.f64 x y))
0.0b
(/.f64 (+.f64 x y) (hypot.f64 x y))
Compiler

Compiled 42 to 8 computations (81% saved)

series8.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
3.0ms
x
@0
(/.f64 (hypot.f64 x y) (-.f64 x y))
1.0ms
y
@inf
(/.f64 (hypot.f64 x y) (-.f64 x y))
1.0ms
x
@inf
(/.f64 (hypot.f64 x y) (-.f64 x y))
1.0ms
x
@-inf
(/.f64 (hypot.f64 x y) (-.f64 x y))
0.0ms
y
@-inf
(/.f64 (hypot.f64 x y) (-.f64 x y))

rewrite83.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
668×prod-diff_binary64
659×log-prod_binary64
277×log-div_binary64
264×fma-def_binary64
206×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0932
121629
2356029
Stop Event
node limit
Counts
2 → 99
Calls
Call 1
Inputs
(/.f64 (hypot.f64 x y) (-.f64 x y))
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (hypot.f64 x y) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)))) (cbrt.f64 (exp.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)))))) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 x y) (/.f64 1 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (hypot.f64 x y) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))) (pow.f64 (cbrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))) 2) (cbrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) (*.f64 (cbrt.f64 (hypot.f64 x y)) (/.f64 1 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))) (sqrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (hypot.f64 x y)) (*.f64 (sqrt.f64 (hypot.f64 x y)) (/.f64 1 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (hypot.f64 x y)) (/.f64 1 (neg.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 x y)) (hypot.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) 1) (/.f64 (cbrt.f64 (hypot.f64 x y)) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (hypot.f64 x y)) 1) (/.f64 (sqrt.f64 (hypot.f64 x y)) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (-.f64 x y)) 2)) (/.f64 (hypot.f64 x y) (cbrt.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) (pow.f64 (cbrt.f64 (-.f64 x y)) 2)) (cbrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (hypot.f64 x y)) (pow.f64 (cbrt.f64 (-.f64 x y)) 2)) (/.f64 (sqrt.f64 (hypot.f64 x y)) (cbrt.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (-.f64 x y))) (/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) (sqrt.f64 (-.f64 x y))) (/.f64 (cbrt.f64 (hypot.f64 x y)) (sqrt.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 x y) (-.f64 (pow.f64 x 3) (pow.f64 y 3))) (fma.f64 y (+.f64 x y) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 x y) (-.f64 (*.f64 x x) (*.f64 y y))) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (hypot.f64 x y) (neg.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (hypot.f64 x y) 3) (pow.f64 (-.f64 x y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (*.f64 (neg.f64 y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) x) (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (-.f64 x y))) (cbrt.f64 (pow.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (-.f64 x y))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (-.f64 x y)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (/.f64 1 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (*.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (-.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) 2) (*.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (/.f64 (-.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))) (pow.f64 (cbrt.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))) 2) (cbrt.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (*.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (/.f64 (-.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))) (sqrt.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (neg.f64 (+.f64 x y)) (hypot.f64 x y)) (/.f64 1 (/.f64 (neg.f64 (hypot.f64 x y)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 1 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (+.f64 x y) 2)) (/.f64 (hypot.f64 x y) (-.f64 x y))) (/.f64 (cbrt.f64 (+.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y))) (/.f64 (sqrt.f64 (+.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) 2) (hypot.f64 x y)) (/.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (/.f64 1 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (hypot.f64 x y)) (/.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (/.f64 1 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) 1) (/.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) 2) 1) (/.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) 1) (/.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (pow.f64 (cbrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))) 2)) (/.f64 (/.f64 1 (hypot.f64 x y)) (cbrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))) 2)) (/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (cbrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) 2) (pow.f64 (cbrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))) 2)) (cbrt.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (pow.f64 (cbrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y))) 2)) (/.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (cbrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (sqrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)))) (/.f64 (/.f64 1 (hypot.f64 x y)) (sqrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)))) (/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (sqrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) 2) (sqrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)))) (/.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (sqrt.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) 1) (/.f64 (-.f64 x y) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (neg.f64 (hypot.f64 x y))) (neg.f64 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) 1) (-.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (pow.f64 (cbrt.f64 (-.f64 x y)) 2)) (cbrt.f64 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (sqrt.f64 (-.f64 x y))) (sqrt.f64 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) (/.f64 (hypot.f64 x y) (+.f64 x y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (hypot.f64 x y) (+.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)) (+.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) (/.f64 (hypot.f64 x y) (+.f64 x y))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (neg.f64 (hypot.f64 x y)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) 3) (pow.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (*.f64 (neg.f64 y) (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) x (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (neg.f64 y)))))))

simplify56.0ms (0.6%)

Algorithm
egg-herbie
Rules
535×associate-/l*_binary64
534×associate-/r*_binary64
494×associate-+l+_binary64
363×associate-*r*_binary64
309×associate-*l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0162930
1547807
22096699
Stop Event
node limit
Counts
147 → 154
Calls
Call 1
Inputs
-1
(-.f64 (*.f64 -1 (/.f64 x y)) 1)
(-.f64 (+.f64 (*.f64 -3/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y))) 1)
(-.f64 (+.f64 (*.f64 -3/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (+.f64 (*.f64 -3/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y)))) 1)
1
(+.f64 (/.f64 y x) 1)
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))) (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (/.f64 (*.f64 y (-.f64 (*.f64 1/2 (pow.f64 y 2)) (*.f64 -1 (pow.f64 y 2)))) (pow.f64 x 3)) (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))))) (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
-1
(-.f64 (*.f64 -1 (/.f64 y x)) 1)
(-.f64 (+.f64 (*.f64 -1 (/.f64 (-.f64 (*.f64 1/2 (pow.f64 y 2)) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))) 1)
(-.f64 (+.f64 (*.f64 -1 (/.f64 (-.f64 (*.f64 1/2 (pow.f64 y 2)) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 y (-.f64 (*.f64 1/2 (pow.f64 y 2)) (*.f64 -1 (pow.f64 y 2)))) (pow.f64 x 3))) (*.f64 -1 (/.f64 y x)))) 1)
1
(+.f64 (/.f64 y x) 1)
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 3/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 3/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3))) (*.f64 3/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))))
-1
(-.f64 (*.f64 -1 (/.f64 x y)) 1)
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y))) (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1))
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 x 2)) (pow.f64 x 2)) x) (pow.f64 y 3)) (*.f64 -1 (/.f64 x y)))) (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1))
1
(+.f64 1 (/.f64 x y))
(-.f64 (+.f64 1 (+.f64 (/.f64 x y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))) (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))
(-.f64 (+.f64 1 (+.f64 (/.f64 x y) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1 (pow.f64 x 2))) x) (pow.f64 y 3)) (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))))) (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) 1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6))) (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) 1)
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x)))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))))))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2)))))))
1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4))) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y))))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
Outputs
-1
(-.f64 (*.f64 -1 (/.f64 x y)) 1)
(fma.f64 -1 (/.f64 x y) -1)
(-.f64 -1 (/.f64 x y))
(-.f64 (+.f64 (*.f64 -3/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y))) 1)
(+.f64 (fma.f64 -3/2 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (neg.f64 x) y)) -1)
(fma.f64 -3/2 (*.f64 (/.f64 x y) (/.f64 x y)) (fma.f64 -1 (/.f64 x y) -1))
(fma.f64 -3/2 (*.f64 (/.f64 x y) (/.f64 x y)) (-.f64 -1 (/.f64 x y)))
(-.f64 (+.f64 (*.f64 -3/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (+.f64 (*.f64 -3/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (fma.f64 -3/2 (/.f64 (*.f64 x x) (*.f64 y y)) (fma.f64 -3/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3)) (/.f64 (neg.f64 x) y))) -1)
(+.f64 -1 (-.f64 (*.f64 -3/2 (+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (/.f64 (pow.f64 x 3) (pow.f64 y 3)))) (/.f64 x y)))
(+.f64 (*.f64 (+.f64 (/.f64 x y) 1) (/.f64 (*.f64 (*.f64 -3/2 x) x) (*.f64 y y))) (-.f64 -1 (/.f64 x y)))
1
(+.f64 (/.f64 y x) 1)
(+.f64 1 (/.f64 y x))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))) (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 (/.f64 y x) (-.f64 (+.f64 1 (*.f64 1/2 (/.f64 (*.f64 y y) (*.f64 x x)))) (/.f64 (neg.f64 (*.f64 y y)) (*.f64 x x))))
(+.f64 (/.f64 y x) (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) 3/2 1))
(+.f64 (/.f64 y x) (fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) 3/2 1))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (/.f64 (*.f64 y (-.f64 (*.f64 1/2 (pow.f64 y 2)) (*.f64 -1 (pow.f64 y 2)))) (pow.f64 x 3)) (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))))) (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 1/2 (/.f64 (*.f64 y y) (*.f64 x x))) (/.f64 y (/.f64 (pow.f64 x 3) (*.f64 (*.f64 y y) 3/2)))))) (/.f64 (neg.f64 (*.f64 y y)) (*.f64 x x)))
(+.f64 (/.f64 y x) (fma.f64 3/2 (+.f64 (*.f64 (/.f64 y x) (/.f64 y x)) (/.f64 (pow.f64 y 3) (pow.f64 x 3))) 1))
(+.f64 (/.f64 y x) (fma.f64 3/2 (+.f64 (/.f64 y (/.f64 (*.f64 x x) y)) (pow.f64 (/.f64 y x) 3)) 1))
-1
(-.f64 (*.f64 -1 (/.f64 y x)) 1)
(fma.f64 -1 (/.f64 y x) -1)
(-.f64 -1 (/.f64 y x))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (-.f64 (*.f64 1/2 (pow.f64 y 2)) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))) 1)
(+.f64 (neg.f64 (/.f64 (*.f64 (*.f64 y y) 3/2) (*.f64 x x))) (fma.f64 -1 (/.f64 y x) -1))
(fma.f64 -1 (+.f64 (/.f64 y x) (*.f64 (/.f64 (*.f64 y y) x) (/.f64 3/2 x))) -1)
(+.f64 (-.f64 -1 (/.f64 y x)) (*.f64 -3/2 (/.f64 y (/.f64 (*.f64 x x) y))))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (-.f64 (*.f64 1/2 (pow.f64 y 2)) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))) (+.f64 (*.f64 -1 (/.f64 (*.f64 y (-.f64 (*.f64 1/2 (pow.f64 y 2)) (*.f64 -1 (pow.f64 y 2)))) (pow.f64 x 3))) (*.f64 -1 (/.f64 y x)))) 1)
(+.f64 (fma.f64 -1 (/.f64 (*.f64 (*.f64 y y) 3/2) (*.f64 x x)) (fma.f64 -1 (/.f64 y (/.f64 (pow.f64 x 3) (*.f64 (*.f64 y y) 3/2))) (neg.f64 (/.f64 y x)))) -1)
(+.f64 -1 (-.f64 (neg.f64 (*.f64 3/2 (+.f64 (*.f64 (/.f64 y x) (/.f64 y x)) (/.f64 (pow.f64 y 3) (pow.f64 x 3))))) (/.f64 y x)))
(+.f64 (*.f64 -3/2 (+.f64 (/.f64 y (/.f64 (*.f64 x x) y)) (pow.f64 (/.f64 y x) 3))) (-.f64 -1 (/.f64 y x)))
1
(+.f64 (/.f64 y x) 1)
(+.f64 1 (/.f64 y x))
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 3/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(+.f64 (/.f64 y x) (-.f64 (+.f64 1 (*.f64 1/2 (/.f64 (*.f64 y y) (*.f64 x x)))) (/.f64 (neg.f64 (*.f64 y y)) (*.f64 x x))))
(+.f64 (/.f64 y x) (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) 3/2 1))
(+.f64 (/.f64 y x) (fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) 3/2 1))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 3/2 (/.f64 (pow.f64 y 3) (pow.f64 x 3))) (*.f64 3/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 1/2 (/.f64 (*.f64 y y) (*.f64 x x))) (/.f64 y (/.f64 (pow.f64 x 3) (*.f64 (*.f64 y y) 3/2)))))) (/.f64 (neg.f64 (*.f64 y y)) (*.f64 x x)))
(+.f64 (/.f64 y x) (fma.f64 3/2 (+.f64 (*.f64 (/.f64 y x) (/.f64 y x)) (/.f64 (pow.f64 y 3) (pow.f64 x 3))) 1))
(+.f64 (/.f64 y x) (fma.f64 3/2 (+.f64 (/.f64 y (/.f64 (*.f64 x x) y)) (pow.f64 (/.f64 y x) 3)) 1))
-1
(-.f64 (*.f64 -1 (/.f64 x y)) 1)
(fma.f64 -1 (/.f64 x y) -1)
(-.f64 -1 (/.f64 x y))
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y))) (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1))
(+.f64 (fma.f64 -3/2 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (neg.f64 x) y)) -1)
(fma.f64 -3/2 (*.f64 (/.f64 x y) (/.f64 x y)) (fma.f64 -1 (/.f64 x y) -1))
(fma.f64 -3/2 (*.f64 (/.f64 x y) (/.f64 x y)) (-.f64 -1 (/.f64 x y)))
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 -1/2 (pow.f64 x 2)) (pow.f64 x 2)) x) (pow.f64 y 3)) (*.f64 -1 (/.f64 x y)))) (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1))
(+.f64 (fma.f64 -3/2 (/.f64 (*.f64 x x) (*.f64 y y)) (fma.f64 -3/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3)) (/.f64 (neg.f64 x) y))) -1)
(+.f64 -1 (-.f64 (*.f64 -3/2 (+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (/.f64 (pow.f64 x 3) (pow.f64 y 3)))) (/.f64 x y)))
(+.f64 (*.f64 (+.f64 (/.f64 x y) 1) (/.f64 (*.f64 (*.f64 -3/2 x) x) (*.f64 y y))) (-.f64 -1 (/.f64 x y)))
1
(+.f64 1 (/.f64 x y))
(+.f64 (/.f64 x y) 1)
(-.f64 (+.f64 1 (+.f64 (/.f64 x y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))) (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))
(+.f64 1 (-.f64 (+.f64 (/.f64 x y) (*.f64 (/.f64 (*.f64 x x) (*.f64 y y)) 1/2)) (/.f64 (neg.f64 (*.f64 x x)) (*.f64 y y))))
(+.f64 1 (+.f64 (fma.f64 (*.f64 (/.f64 x y) (/.f64 x y)) 1/2 (/.f64 x y)) (*.f64 (/.f64 x y) (/.f64 x y))))
(+.f64 (/.f64 x y) (+.f64 (*.f64 (*.f64 (/.f64 x y) (/.f64 x y)) 3/2) 1))
(-.f64 (+.f64 1 (+.f64 (/.f64 x y) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1 (pow.f64 x 2))) x) (pow.f64 y 3)) (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))))) (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))
(+.f64 1 (-.f64 (+.f64 (/.f64 x y) (+.f64 (*.f64 (/.f64 (*.f64 x x) (*.f64 y y)) 1/2) (/.f64 (*.f64 (*.f64 x x) 3/2) (/.f64 (pow.f64 y 3) x)))) (/.f64 (neg.f64 (*.f64 x x)) (*.f64 y y))))
(+.f64 (+.f64 (fma.f64 (*.f64 (/.f64 x y) (/.f64 x y)) 1/2 (/.f64 x y)) (/.f64 (*.f64 (pow.f64 x 3) 3/2) (pow.f64 y 3))) (+.f64 1 (*.f64 (/.f64 x y) (/.f64 x y))))
(+.f64 1 (+.f64 (/.f64 x y) (+.f64 (*.f64 (pow.f64 (/.f64 x y) 3) 3/2) (*.f64 (*.f64 (/.f64 x y) (/.f64 x y)) 3/2))))
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) 1)
(+.f64 (fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) (fma.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)) -1))
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6))) (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) 1)
(+.f64 (fma.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6)) (fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) -1)
(fma.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6)) (fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) (fma.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)) -1)))
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (/.f64 y x) (+.f64 1 (neg.f64 (/.f64 y x))))
(+.f64 (/.f64 y x) (-.f64 1 (/.f64 y x)))
(+.f64 1 (*.f64 0 (/.f64 y x)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (/.f64 y x) (-.f64 (+.f64 1 (fma.f64 -1 (/.f64 (*.f64 y y) (*.f64 x x)) (neg.f64 (/.f64 y x)))) (/.f64 (*.f64 y y) (*.f64 x x))))
(+.f64 (-.f64 (-.f64 1 (*.f64 (/.f64 y x) (/.f64 y x))) (/.f64 y x)) (-.f64 (/.f64 y x) (*.f64 (/.f64 y x) (/.f64 y x))))
(+.f64 (fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1) (*.f64 0 (/.f64 y x)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x)))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (/.f64 y x) (-.f64 (+.f64 1 (fma.f64 -1 (/.f64 (*.f64 y y) (*.f64 x x)) (neg.f64 (/.f64 y x)))) (/.f64 (*.f64 y y) (*.f64 x x))))
(+.f64 (-.f64 (-.f64 1 (*.f64 (/.f64 y x) (/.f64 y x))) (/.f64 y x)) (-.f64 (/.f64 y x) (*.f64 (/.f64 y x) (/.f64 y x))))
(+.f64 (fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1) (*.f64 0 (/.f64 y x)))
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (/.f64 y x) (+.f64 1 (neg.f64 (/.f64 y x))))
(+.f64 (/.f64 y x) (-.f64 1 (/.f64 y x)))
(+.f64 1 (*.f64 0 (/.f64 y x)))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))))))
(+.f64 (/.f64 y x) (-.f64 (+.f64 1 (fma.f64 -1 (/.f64 (*.f64 y y) (*.f64 x x)) (neg.f64 (/.f64 y x)))) (/.f64 (*.f64 y y) (*.f64 x x))))
(+.f64 (-.f64 (-.f64 1 (*.f64 (/.f64 y x) (/.f64 y x))) (/.f64 y x)) (-.f64 (/.f64 y x) (*.f64 (/.f64 y x) (/.f64 y x))))
(+.f64 (fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1) (*.f64 0 (/.f64 y x)))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2)))))))
(+.f64 (/.f64 y x) (-.f64 (+.f64 1 (fma.f64 -1 (/.f64 (*.f64 y y) (*.f64 x x)) (neg.f64 (/.f64 y x)))) (/.f64 (*.f64 y y) (*.f64 x x))))
(+.f64 (-.f64 (-.f64 1 (*.f64 (/.f64 y x) (/.f64 y x))) (/.f64 y x)) (-.f64 (/.f64 y x) (*.f64 (/.f64 y x) (/.f64 y x))))
(+.f64 (fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1) (*.f64 0 (/.f64 y x)))
1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 1 (fma.f64 -2 (/.f64 (*.f64 y y) (*.f64 x x)) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 1 (fma.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (*.f64 (/.f64 -2 x) (/.f64 (*.f64 y y) x))))
(+.f64 1 (fma.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (*.f64 (/.f64 -2 x) (/.f64 y (/.f64 x y)))))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4))) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
(+.f64 1 (fma.f64 -2 (/.f64 (*.f64 y y) (*.f64 x x)) (fma.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
(+.f64 1 (fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 (fma.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (/.f64 (*.f64 -2 (pow.f64 y 6)) (pow.f64 x 6)))))
(+.f64 (fma.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (/.f64 -2 (/.f64 (pow.f64 x 6) (pow.f64 y 6)))) (fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1))
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y))))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)

localize12.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (+.f64 x y) y)
0.0b
(/.f64 (-.f64 x y) y)
0.1b
(*.f64 (/.f64 (-.f64 x y) y) (/.f64 (+.f64 x y) y))
Compiler

Compiled 31 to 7 computations (77.4% saved)

series7.0ms (0.1%)

Counts
3 → 72
Calls

18 calls:

TimeVariablePointExpression
1.0ms
y
@-inf
(/.f64 (-.f64 x y) y)
0.0ms
x
@-inf
(/.f64 (-.f64 x y) y)
0.0ms
x
@0
(*.f64 (/.f64 (-.f64 x y) y) (/.f64 (+.f64 x y) y))
0.0ms
x
@inf
(/.f64 (-.f64 x y) y)
0.0ms
y
@-inf
(/.f64 (+.f64 x y) y)

rewrite85.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
658×prod-diff_binary64
558×log-prod_binary64
280×fma-def_binary64
266×pow2_binary64
258×log-div_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0830
119230
2324630
Stop Event
node limit
Counts
3 → 151
Calls
Call 1
Inputs
(*.f64 (/.f64 (-.f64 x y) y) (/.f64 (+.f64 x y) y))
(/.f64 (-.f64 x y) y)
(/.f64 (+.f64 x y) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x y) (*.f64 y (/.f64 y (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x y) (*.f64 (/.f64 y (+.f64 x y)) y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x y) (/.f64 (*.f64 y y) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x y) (/.f64 y (/.f64 (+.f64 x y) y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 x y) -1) (/.f64 y (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x y) (*.f64 y (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 x y) y) (/.f64 y (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (/.f64 y (-.f64 x y)) (/.f64 y (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (/.f64 y (+.f64 x y)) (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 y y) (fma.f64 x x (neg.f64 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 y (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 x y)) (*.f64 (/.f64 y (+.f64 x y)) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 x y)) (*.f64 (/.f64 y (-.f64 x y)) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) y) y)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) y)) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 x x (neg.f64 (*.f64 y y)))) (neg.f64 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 x y)) (+.f64 x y)) (*.f64 (neg.f64 y) y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 x y)) 1) (*.f64 (neg.f64 y) (/.f64 y (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x y) (neg.f64 (+.f64 x y))) (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 x y)) (neg.f64 (+.f64 x y))) (pow.f64 (neg.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 x y)) (-.f64 x y)) (*.f64 (neg.f64 y) y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 x y)) 1) (*.f64 (neg.f64 y) (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (neg.f64 (-.f64 x y))) (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 x y)) (neg.f64 (-.f64 x y))) (pow.f64 (neg.f64 y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) y) 1) y)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) y) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) y) (sqrt.f64 y)) (sqrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 x y)) (/.f64 (+.f64 x y) y)) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 x y)) (+.f64 (/.f64 x y) -1)) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (/.f64 x y) -1) (neg.f64 (+.f64 x y))) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 (+.f64 x y) y) (neg.f64 (-.f64 x y))) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (fma.f64 x x (neg.f64 (*.f64 y y)))) y) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (+.f64 (/.f64 x y) -1) 3) (pow.f64 (/.f64 (+.f64 x y) y) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (/.f64 (+.f64 x y) y) 3) (pow.f64 (+.f64 (/.f64 x y) -1) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 y (-.f64 x y)) (/.f64 y (+.f64 x y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 y (+.f64 x y)) (/.f64 y (-.f64 x y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 y y) (fma.f64 x x (neg.f64 (*.f64 y y)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 y (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 (/.f64 x y) -1) 3) (pow.f64 (/.f64 (+.f64 x y) y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 (+.f64 x y) y) 3) (pow.f64 (+.f64 (/.f64 x y) -1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (fma.f64 x x (neg.f64 (*.f64 y y))) (*.f64 y y))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 x y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (/.f64 x y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (+.f64 (/.f64 x y) -1))) 2)) (log.f64 (cbrt.f64 (exp.f64 (+.f64 (/.f64 x y) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (+.f64 (/.f64 x y) -1)))) (log.f64 (sqrt.f64 (exp.f64 (+.f64 (/.f64 x y) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 x y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 (/.f64 x y) -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x y) (/.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 x y) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (/.f64 x y) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (/.f64 x y) -1)) (pow.f64 (cbrt.f64 (+.f64 (/.f64 x y) -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (/.f64 x y) -1)) 2) (cbrt.f64 (+.f64 (/.f64 x y) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 x y)) 2) (*.f64 (cbrt.f64 (-.f64 x y)) (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (/.f64 x y) -1)) (sqrt.f64 (+.f64 (/.f64 x y) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 x y)) (*.f64 (sqrt.f64 (-.f64 x y)) (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (-.f64 x y)) (/.f64 1 (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 y) (-.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2)) (/.f64 (-.f64 x y) (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 y)) (/.f64 (-.f64 x y) (sqrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 x y)) 2) 1) (/.f64 (cbrt.f64 (-.f64 x y)) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 x y)) 1) (/.f64 (sqrt.f64 (-.f64 x y)) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 x y)) 2) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 (+.f64 (/.f64 x y) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 x y)) (pow.f64 (cbrt.f64 y) 2)) (/.f64 (sqrt.f64 (-.f64 x y)) (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 x y)) 2) (sqrt.f64 y)) (/.f64 (cbrt.f64 (-.f64 x y)) (sqrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (/.f64 x y) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (/.f64 x y) -1) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (/.f64 x y) -1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (/.f64 x y) -1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (/.f64 x y) -1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 y (-.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 y 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 y (-.f64 x y)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (-.f64 x y) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (/.f64 x y) -1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (/.f64 x y) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (/.f64 x y) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (/.f64 x y) -1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (-.f64 x y) 3) (pow.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (/.f64 x y) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log.f64 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (/.f64 x y) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (/.f64 x y) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (/.f64 x y) -1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (/.f64 1 y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 x y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 x y)) 2) (cbrt.f64 (/.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2)) (/.f64 x (cbrt.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 y) 2)) (/.f64 (cbrt.f64 x) (cbrt.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 y) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (sqrt.f64 y)) (/.f64 x (sqrt.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (sqrt.f64 y)) (/.f64 (cbrt.f64 x) (sqrt.f64 y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 x) (sqrt.f64 y)) (/.f64 (sqrt.f64 x) (sqrt.f64 y)) -1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (+.f64 x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 (+.f64 x y) y))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (+.f64 x y) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (+.f64 x y) y)))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (+.f64 x y) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 x y) y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (/.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (+.f64 x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (*.f64 (cbrt.f64 (+.f64 x y)) (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (+.f64 x y) y)) (pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) y)) 2) (cbrt.f64 (/.f64 (+.f64 x y) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 x y)) (*.f64 (sqrt.f64 (+.f64 x y)) (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (+.f64 x y) y)) (sqrt.f64 (/.f64 (+.f64 x y) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 x y)) (/.f64 1 (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 y) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 y) 2)) (/.f64 (+.f64 x y) (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 y)) (/.f64 (+.f64 x y) (sqrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) 1) (/.f64 (cbrt.f64 (+.f64 x y)) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) 1) (/.f64 (sqrt.f64 (+.f64 x y)) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 (/.f64 (+.f64 x y) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (pow.f64 (cbrt.f64 y) 2)) (/.f64 (sqrt.f64 (+.f64 x y)) (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (sqrt.f64 y)) (/.f64 (cbrt.f64 (+.f64 x y)) (sqrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 x y) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (+.f64 x y) y) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (+.f64 x y) y) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) y)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (+.f64 x y) y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 y (+.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (+.f64 x y) 3) (pow.f64 y 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 y (+.f64 x y)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (+.f64 x y) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (+.f64 x y) y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (+.f64 x y) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (+.f64 x y) y))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (+.f64 x y) y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (+.f64 x y) 3) (pow.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (+.f64 x y) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (+.f64 x y) y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (+.f64 x y) y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (+.f64 x y) y)) 1))))))

simplify85.0ms (0.8%)

Algorithm
egg-herbie
Rules
480×distribute-neg-frac_binary64
440×unswap-sqr_binary64
422×associate-/l*_binary64
356×fma-def_binary64
343×div-sub_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
025522
166522
2156492
3279492
4911492
55557492
Stop Event
node limit
Counts
223 → 165
Calls
Call 1
Inputs
-1
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) 1)
-1
(-.f64 (/.f64 x y) 1)
(-.f64 (/.f64 x y) 1)
(-.f64 (/.f64 x y) 1)
(/.f64 x y)
(-.f64 (/.f64 x y) 1)
(-.f64 (/.f64 x y) 1)
(-.f64 (/.f64 x y) 1)
(/.f64 x y)
(-.f64 (/.f64 x y) 1)
(-.f64 (/.f64 x y) 1)
(-.f64 (/.f64 x y) 1)
(/.f64 x y)
(-.f64 (/.f64 x y) 1)
(-.f64 (/.f64 x y) 1)
(-.f64 (/.f64 x y) 1)
-1
(-.f64 (/.f64 x y) 1)
(-.f64 (/.f64 x y) 1)
(-.f64 (/.f64 x y) 1)
-1
(-.f64 (/.f64 x y) 1)
(-.f64 (/.f64 x y) 1)
(-.f64 (/.f64 x y) 1)
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
Outputs
-1
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
-1
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
(/.f64 x y)
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
(/.f64 x y)
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
(/.f64 x y)
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
-1
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
-1
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
(-.f64 (/.f64 x y) 1)
(+.f64 (/.f64 x y) -1)
(+.f64 -1 (/.f64 x y))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(/.f64 x y)
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))
(+.f64 1 (/.f64 x y))

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))))
0.3b
(*.f64 (/.f64 y x) (/.f64 y x))
Compiler

Compiled 36 to 12 computations (66.7% saved)

series3.0ms (0%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
0.0ms
y
@0
(*.f64 (/.f64 y x) (/.f64 y x))
0.0ms
y
@inf
(*.f64 (/.f64 y x) (/.f64 y x))
0.0ms
y
@0
(+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))))
0.0ms
x
@0
(+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))))
0.0ms
x
@inf
(*.f64 (/.f64 y x) (/.f64 y x))

rewrite67.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
453×log-prod_binary64
401×prod-diff_binary64
348×exp-prod_binary64
296×fma-def_binary64
276×pow-prod-down_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0920
119518
2263518
Stop Event
node limit
Counts
2 → 110
Calls
Call 1
Inputs
(*.f64 (/.f64 y x) (/.f64 y x))
(+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (/.f64 y x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (/.f64 y x) 2))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (/.f64 y x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (/.f64 y x) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (/.f64 y x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (/.f64 y x) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 y (*.f64 x (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 y (*.f64 (/.f64 x y) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 y (/.f64 (*.f64 x x) y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 y (/.f64 x (/.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 y x) (/.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (pow.f64 (/.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 x x) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 x (*.f64 y (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 y) (*.f64 (/.f64 x y) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (/.f64 y x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (neg.f64 y) 2) (pow.f64 (neg.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y y)) (neg.f64 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y (/.f64 y x))) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 y) y) (*.f64 (neg.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 y) 1) (*.f64 (neg.f64 x) (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (neg.f64 y)) (*.f64 x (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 y (/.f64 y x)) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 y (/.f64 y x)) (cbrt.f64 (*.f64 x x))) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 y (/.f64 y x)) (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 y) (/.f64 y x)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 y x) (neg.f64 y)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 y x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (*.f64 2 (log.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y x) 4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y x) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 x y) -3) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 y x)) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (/.f64 y x)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 y x)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 x y) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 2) (log.f64 (/.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 x y) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 x (*.f64 y (/.f64 y x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 2 (log.f64 (/.f64 y x)))) 2)) (cbrt.f64 (*.f64 2 (log.f64 (/.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (*.f64 2 (log.f64 (/.f64 y x))))) (sqrt.f64 (*.f64 2 (log.f64 (/.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 y x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (/.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (/.f64 y x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 y x) 6))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (/.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (/.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (/.f64 y x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 y x) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (cbrt.f64 (/.f64 y x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 y x)) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 y x)) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 2 (log.f64 (/.f64 y x))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (+.f64 1 (*.f64 2 (pow.f64 (/.f64 y x) 2)))) (/.f64 (*.f64 (pow.f64 (/.f64 y x) 4) 4) (+.f64 1 (*.f64 2 (pow.f64 (/.f64 y x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)) (pow.f64 (cbrt.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)) 2) (cbrt.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 1 (*.f64 (/.f64 y x) (sqrt.f64 -2))) (hypot.f64 1 (*.f64 (/.f64 y x) (sqrt.f64 -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 (/.f64 y x) 6) -8 1) (/.f64 1 (+.f64 1 (fma.f64 (pow.f64 (/.f64 y x) 4) 4 (*.f64 2 (pow.f64 (/.f64 y x) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (*.f64 (pow.f64 (/.f64 y x) 4) 4)) (/.f64 1 (+.f64 1 (*.f64 2 (pow.f64 (/.f64 y x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1 (fma.f64 (pow.f64 (/.f64 y x) 4) 4 (*.f64 2 (pow.f64 (/.f64 y x) 2)))) (fma.f64 (pow.f64 (/.f64 y x) 6) -8 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 1 (*.f64 2 (pow.f64 (/.f64 y x) 2))) (-.f64 1 (*.f64 (pow.f64 (/.f64 y x) 4) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 (/.f64 y x) 6) -8 1) (+.f64 1 (fma.f64 (pow.f64 (/.f64 y x) 4) 4 (*.f64 2 (pow.f64 (/.f64 y x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 (/.f64 y x) 6) -8 1) (fma.f64 (pow.f64 (/.f64 y x) 4) 4 (+.f64 1 (*.f64 2 (pow.f64 (/.f64 y x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 (pow.f64 (/.f64 y x) 4) 4)) (+.f64 1 (*.f64 2 (pow.f64 (/.f64 y x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 (pow.f64 (/.f64 y x) 6) -8 1)) (neg.f64 (+.f64 1 (fma.f64 (pow.f64 (/.f64 y x) 4) 4 (*.f64 2 (pow.f64 (/.f64 y x) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 (*.f64 (pow.f64 (/.f64 y x) 4) 4))) (neg.f64 (+.f64 1 (*.f64 2 (pow.f64 (/.f64 y x) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 (/.f64 y x) 4) 4 -1) (fma.f64 (pow.f64 (/.f64 y x) 2) -2 -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log1p.f64 (*.f64 (pow.f64 (/.f64 y x) 2) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 1 (*.f64 (/.f64 y x) (sqrt.f64 -2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 1 (fma.f64 (pow.f64 (/.f64 y x) 4) 4 (*.f64 2 (pow.f64 (/.f64 y x) 2)))) (fma.f64 (pow.f64 (/.f64 y x) 6) -8 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 1 (*.f64 2 (pow.f64 (/.f64 y x) 2))) (-.f64 1 (*.f64 (pow.f64 (/.f64 y x) 4) 4))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log1p.f64 (*.f64 (pow.f64 (/.f64 y x) 2) -2))) 2)) (cbrt.f64 (log1p.f64 (*.f64 (pow.f64 (/.f64 y x) 2) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log1p.f64 (*.f64 (pow.f64 (/.f64 y x) 2) -2)))) (sqrt.f64 (log1p.f64 (*.f64 (pow.f64 (/.f64 y x) 2) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (*.f64 (pow.f64 (/.f64 y x) 2) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (*.f64 (pow.f64 (/.f64 y x) 2) -2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log1p.f64 (*.f64 (pow.f64 (/.f64 y x) 2) -2))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/3 (log1p.f64 (*.f64 (pow.f64 (/.f64 y x) 2) -2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (hypot.f64 1 (*.f64 (/.f64 y x) (sqrt.f64 -2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log1p.f64 (*.f64 (pow.f64 (/.f64 y x) 2) -2)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 y x) (*.f64 (/.f64 y x) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (/.f64 y x) 2) -2 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (pow.f64 (/.f64 y x) 2) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -2 (pow.f64 (/.f64 y x) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 (/.f64 y x) 2) -2) 1 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 (/.f64 y x) 2) -2)) (cbrt.f64 (*.f64 (pow.f64 (/.f64 y x) 4) 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 (/.f64 y x) 4) 4)) (cbrt.f64 (*.f64 (pow.f64 (/.f64 y x) 2) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 y x)) 4) (*.f64 (pow.f64 (cbrt.f64 (/.f64 y x)) 2) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 y x) (sqrt.f64 -2)) (*.f64 (/.f64 y x) (sqrt.f64 -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (/.f64 y x) -2) (/.f64 y x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (/.f64 y x) -2) y) (/.f64 1 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (/.f64 y x) -2) 1) (/.f64 y x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -2 (pow.f64 (cbrt.f64 (/.f64 y x)) 4)) (pow.f64 (cbrt.f64 (/.f64 y x)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (/.f64 y x) -2) (pow.f64 (cbrt.f64 (/.f64 y x)) 2)) (cbrt.f64 (/.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 (/.f64 y x) -2) (sqrt.f64 (/.f64 y x))) (sqrt.f64 (/.f64 y x)) 1)))))

simplify146.0ms (1.5%)

Algorithm
egg-herbie
Rules
717×*-commutative_binary64
638×associate-/l*_binary64
574×sqr-pow_binary64
397×associate-/r*_binary64
323×associate-/l/_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
011570
124534
249534
3137534
4674534
54245534
64924534
75137534
85341534
95577534
105901534
116732534
127284534
137930534
Stop Event
node limit
Counts
158 → 117
Calls
Call 1
Inputs
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
Outputs
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
(/.f64 (pow.f64 y 2) (pow.f64 x 2))
(/.f64 (*.f64 y y) (*.f64 x x))
(*.f64 (/.f64 y x) (/.f64 y x))
(/.f64 y (/.f64 (*.f64 x x) y))
(*.f64 y (/.f64 y (*.f64 x x)))
1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)
(*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x))
(*.f64 (/.f64 -2 x) (/.f64 (*.f64 y y) x))
(*.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2)
(*.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)))
(*.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)
(*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x))
(*.f64 (/.f64 -2 x) (/.f64 (*.f64 y y) x))
(*.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2)
(*.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)))
(*.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)
(*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x))
(*.f64 (/.f64 -2 x) (/.f64 (*.f64 y y) x))
(*.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2)
(*.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)))
(*.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)
1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)
1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 (*.f64 (/.f64 y x) (/.f64 y x)) -2 1)
(fma.f64 (/.f64 (*.f64 y y) (*.f64 x x)) -2 1)
(fma.f64 (/.f64 y (/.f64 (*.f64 x x) y)) -2 1)
(fma.f64 (*.f64 y y) (/.f64 -2 (*.f64 x x)) 1)
(fma.f64 y (*.f64 y (/.f64 -2 (*.f64 x x))) 1)

localize17.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
22.0b
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))
Compiler

Compiled 31 to 7 computations (77.4% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))
0.0ms
y
@inf
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))
0.0ms
y
@0
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))
0.0ms
x
@inf
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))
0.0ms
y
@-inf
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))

rewrite75.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
911×prod-diff_binary64
577×log-prod_binary64
414×fma-def_binary64
214×log-div_binary64
190×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0816
119316
2334116
Stop Event
node limit
Counts
1 → 48
Calls
Call 1
Inputs
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (-.f64 x y)) (+.f64 x y)) (pow.f64 y -2))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (-.f64 x y)) (+.f64 x y)) (pow.f64 y -2))))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (-.f64 x y)) (+.f64 x y)) (pow.f64 y -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (-.f64 x y)) (+.f64 x y)) (pow.f64 y -2)))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (-.f64 x y)) (+.f64 x y)) (pow.f64 y -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 x (/.f64 (*.f64 y y) (+.f64 x y))) (/.f64 y (/.f64 (*.f64 y y) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x y) (/.f64 1 (/.f64 (*.f64 y y) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x y) (*.f64 (+.f64 x y) (pow.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (*.f64 (-.f64 x y) (pow.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2))) (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2))) 2) (cbrt.f64 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x x (*.f64 y (neg.f64 y)))) 2) (*.f64 (cbrt.f64 (fma.f64 x x (*.f64 y (neg.f64 y)))) (pow.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) y) (/.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) (*.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) (pow.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) (neg.f64 (-.f64 x y))) (/.f64 1 (*.f64 y (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x y) y) (/.f64 (+.f64 x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) y) (/.f64 (-.f64 x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 y -2) (fma.f64 x x (*.f64 y (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (/.f64 y (-.f64 x y))) (/.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x y) 1) (/.f64 (+.f64 x y) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) 1) (/.f64 (-.f64 x y) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x x (*.f64 y (neg.f64 y)))) 2) 1) (/.f64 (cbrt.f64 (fma.f64 x x (*.f64 y (neg.f64 y)))) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) 1) (/.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 y) (/.f64 (+.f64 x y) (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x x (*.f64 y (neg.f64 y)))) 2) y) (/.f64 (cbrt.f64 (fma.f64 x x (*.f64 y (neg.f64 y)))) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x y) (*.f64 y y)) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x y) (cbrt.f64 (pow.f64 y 4))) (/.f64 (+.f64 x y) (pow.f64 (cbrt.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (cbrt.f64 (pow.f64 y 4))) (/.f64 (-.f64 x y) (pow.f64 (cbrt.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (pow.f64 y 4))) (/.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 (cbrt.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x x (*.f64 y (neg.f64 y)))) 2) (cbrt.f64 (pow.f64 y 4))) (cbrt.f64 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) (cbrt.f64 (pow.f64 y 4))) (/.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) (pow.f64 (cbrt.f64 y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (hypot.f64 x (sqrt.f64 (*.f64 y (neg.f64 y)))) y) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 y y) (fma.f64 x x (*.f64 y (neg.f64 y)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (*.f64 y (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (pow.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) 2) (pow.f64 y 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 (-.f64 x y)) (+.f64 x y)) (pow.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) 3) (pow.f64 (*.f64 y y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (fma.f64 x x (*.f64 y (neg.f64 y))) (pow.f64 y -2))) 1))))))

simplify71.0ms (0.7%)

Algorithm
egg-herbie
Rules
480×distribute-neg-frac_binary64
440×unswap-sqr_binary64
422×associate-/l*_binary64
362×fma-def_binary64
343×div-sub_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
023240
162240
2154210
3284210
4916210
55607210
Stop Event
node limit
Counts
72 → 58
Calls
Call 1
Inputs
-1
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) 1)
Outputs
-1
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(fma.f64 x (/.f64 x (*.f64 y y)) -1)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 (/.f64 2 y) (/.f64 x (/.f64 y x)) -1)
0.2b
(/.f64 x (/.f64 y x))
Compiler

Compiled 27 to 12 computations (55.6% saved)

series6.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(/.f64 x (/.f64 y x))
1.0ms
x
@0
(/.f64 x (/.f64 y x))
1.0ms
y
@0
(fma.f64 (/.f64 2 y) (/.f64 x (/.f64 y x)) -1)
0.0ms
x
@0
(fma.f64 (/.f64 2 y) (/.f64 x (/.f64 y x)) -1)
0.0ms
y
@-inf
(fma.f64 (/.f64 2 y) (/.f64 x (/.f64 y x)) -1)

rewrite74.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
475×log-prod_binary64
378×exp-prod_binary64
300×prod-exp_binary64
264×pow-prod-down_binary64
247×pow2_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0921
119321
2254818
Stop Event
node limit
Counts
2 → 95
Calls
Call 1
Inputs
(/.f64 x (/.f64 y x))
(fma.f64 (/.f64 2 y) (/.f64 x (/.f64 y x)) -1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 x y))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (/.f64 x y)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (/.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (/.f64 x y))) (pow.f64 (cbrt.f64 (*.f64 x (/.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x (/.f64 x y))) 2) (cbrt.f64 (*.f64 x (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (/.f64 x y))) (sqrt.f64 (*.f64 x (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (/.f64 1 (/.f64 (neg.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x y) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 y -1) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 x x)) 1) (/.f64 (cbrt.f64 x) (/.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (/.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 x) y) (pow.f64 x 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 x x)) y) (*.f64 (cbrt.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 y x)) -2) (/.f64 x (cbrt.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 x x)) (pow.f64 (cbrt.f64 (/.f64 y x)) 2)) (cbrt.f64 (*.f64 x (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (/.f64 y x)) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 y x) -1/2) (/.f64 x (sqrt.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 x x)) (sqrt.f64 (/.f64 y x))) (/.f64 (cbrt.f64 x) (sqrt.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x 1) (/.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (neg.f64 y)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 x y) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 x y) (cbrt.f64 (*.f64 x x))) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 x y) (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (/.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (/.f64 x y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y (*.f64 x x)) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (/.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (/.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 y (*.f64 x x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 x (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 x 3) (pow.f64 (/.f64 y x) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 y (*.f64 x x)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (/.f64 x y)))) 2)) (cbrt.f64 (log.f64 (*.f64 x (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (/.f64 x y))))) (sqrt.f64 (log.f64 (*.f64 x (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 x (/.f64 (neg.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (/.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 y (*.f64 x x)) -3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 x 3) (pow.f64 (/.f64 y x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (/.f64 x y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 y (*.f64 x x)) -3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (/.f64 x y)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (/.f64 x y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 y (*.f64 x x))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 x (/.f64 x y))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 x) 1) (log.f64 (/.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 x) (*.f64 (log.f64 (/.f64 y x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 x) 1) (*.f64 (log.f64 (/.f64 y x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 x x)) (*.f64 (log.f64 y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 x) 1) (log.f64 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (/.f64 x y)) (*.f64 (log.f64 x) 1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (*.f64 2 (pow.f64 (/.f64 y x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (pow.f64 (/.f64 y x) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 2 (pow.f64 (/.f64 y x) -2)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)) (pow.f64 (cbrt.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)) 2) (cbrt.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)) (sqrt.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 2 (pow.f64 (/.f64 y x) -2)) 3) -1) (+.f64 (pow.f64 (*.f64 2 (pow.f64 (/.f64 y x) -2)) 2) (-.f64 1 (*.f64 (*.f64 2 (pow.f64 (/.f64 y x) -2)) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 2 (pow.f64 (/.f64 y x) -2)) 2) 1) (fma.f64 2 (pow.f64 (/.f64 y x) -2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1))) 2)) (cbrt.f64 (log.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)))) (sqrt.f64 (log.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (fma.f64 2 (pow.f64 (/.f64 y x) -2) -1)) 1) 1))))))

simplify138.0ms (1.4%)

Algorithm
egg-herbie
Rules
705×associate-/l*_binary64
482×sqr-pow_binary64
432×associate-/r*_binary64
426×associate-/l/_binary64
399×unswap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
012462
127462
253462
3148462
4766462
54879462
65752462
75988462
86201462
96449462
106786462
117222462
127785462
Stop Event
node limit
Counts
143 → 101
Calls
Call 1
Inputs
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(/.f64 (pow.f64 x 2) y)
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
Outputs
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(/.f64 (pow.f64 x 2) y)
(/.f64 (*.f64 x x) y)
(/.f64 x (/.f64 y x))
(*.f64 x (/.f64 x y))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)))
(/.f64 2 (/.f64 (*.f64 y y) (*.f64 x x)))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 2 (*.f64 x (/.f64 x (*.f64 y y))))
(*.f64 x (*.f64 2 (/.f64 (/.f64 x y) y)))
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)))
(/.f64 2 (/.f64 (*.f64 y y) (*.f64 x x)))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 2 (*.f64 x (/.f64 x (*.f64 y y))))
(*.f64 x (*.f64 2 (/.f64 (/.f64 x y) y)))
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)))
(/.f64 2 (/.f64 (*.f64 y y) (*.f64 x x)))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 2 (*.f64 x (/.f64 x (*.f64 y y))))
(*.f64 x (*.f64 2 (/.f64 (/.f64 x y) y)))
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (*.f64 x (/.f64 x (*.f64 y y))) -1)
(fma.f64 (/.f64 x y) (*.f64 x (/.f64 2 y)) -1)
(fma.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)) -1)

eval252.0ms (2.5%)

Compiler

Compiled 13759 to 5572 computations (59.5% saved)

prune164.0ms (1.6%)

Pruning

11 alts after pruning (7 fresh and 4 done)

PrunedKeptTotal
New7535758
Fresh224
Picked101
Done145
Total75711768
Error
0b
Counts
768 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
40.8b
1
18.5b
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))
23.3b
-1
0.2b
(*.f64 (+.f64 x y) (*.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (-.f64 x y) (hypot.f64 x y))))
40.2b
(+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))))
30.4b
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (-.f64 x y)))
38.2b
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))
22.8b
(/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))
0.0b
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y)))
0.0b
(/.f64 (+.f64 x y) (*.f64 (hypot.f64 x y) (/.f64 (hypot.f64 x y) (-.f64 x y))))
22.4b
(+.f64 (*.f64 2 (pow.f64 (/.f64 y x) -2)) -1)
Compiler

Compiled 232 to 132 computations (43.1% saved)

localize18.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 x y)
0.0b
(/.f64 (hypot.f64 x y) (-.f64 x y))
0.0b
(/.f64 (+.f64 x y) (*.f64 (hypot.f64 x y) (/.f64 (hypot.f64 x y) (-.f64 x y))))
0.0b
(*.f64 (hypot.f64 x y) (/.f64 (hypot.f64 x y) (-.f64 x y)))
Compiler

Compiled 46 to 8 computations (82.6% saved)

series5.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 (hypot.f64 x y) (/.f64 (hypot.f64 x y) (-.f64 x y)))
0.0ms
y
@0
(*.f64 (hypot.f64 x y) (/.f64 (hypot.f64 x y) (-.f64 x y)))
0.0ms
y
@inf
(*.f64 (hypot.f64 x y) (/.f64 (hypot.f64 x y) (-.f64 x y)))
0.0ms
x
@inf
(*.f64 (hypot.f64 x y) (/.f64 (hypot.f64 x y) (-.f64 x y)))
0.0ms
y
@-inf
(*.f64 (hypot.f64 x y) (/.f64 (hypot.f64 x y) (-.f64 x y)))

rewrite69.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
650×prod-diff_binary64
619×log-prod_binary64
295×pow2_binary64
262×fma-def_binary64
222×log-div_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0938
121032
2329832
Stop Event
node limit
Counts
2 → 79
Calls
Call 1
Inputs
(*.f64 (hypot.f64 x y) (/.f64 (hypot.f64 x y) (-.f64 x y)))
(/.f64 (+.f64 x y) (*.f64 (hypot.f64 x y) (/.f64 (hypot.f64 x y) (-.f64 x y))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (hypot.f64 x y) (/.f64 (-.f64 x y) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (pow.f64 (hypot.f64 x y) 2)) (neg.f64 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (hypot.f64 x y)) (hypot.f64 x y)) (neg.f64 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (hypot.f64 x y) (neg.f64 (hypot.f64 x y))) (neg.f64 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) 1) (-.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (pow.f64 (cbrt.f64 (-.f64 x y)) 2)) (cbrt.f64 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (sqrt.f64 (-.f64 x y))) (sqrt.f64 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (hypot.f64 x y) 3) (pow.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) 3) (pow.f64 (hypot.f64 x y) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (hypot.f64 x y) 3) (pow.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) 3) (pow.f64 (hypot.f64 x y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (*.f64 (/.f64 1 (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (*.f64 (cbrt.f64 (+.f64 x y)) (*.f64 (/.f64 1 (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))) (pow.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))) 2) (cbrt.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 x y)) (*.f64 (sqrt.f64 (+.f64 x y)) (*.f64 (/.f64 1 (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y)))) (/.f64 (sqrt.f64 (+.f64 x y)) (/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 x y)) (/.f64 1 (/.f64 (neg.f64 (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) 1) (/.f64 (cbrt.f64 (+.f64 x y)) (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) 1) (/.f64 (sqrt.f64 (+.f64 x y)) (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (hypot.f64 x y)) (/.f64 (sqrt.f64 (+.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (+.f64 x y) (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (hypot.f64 x y)) (/.f64 (cbrt.f64 (+.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y))) (/.f64 (sqrt.f64 (+.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (/.f64 (hypot.f64 x y) (-.f64 x y))) (/.f64 (cbrt.f64 (+.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (pow.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)) 2))) (/.f64 (+.f64 x y) (cbrt.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (cbrt.f64 (pow.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)) 2))) (cbrt.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (cbrt.f64 (pow.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)) 2))) (/.f64 (sqrt.f64 (+.f64 x y)) (cbrt.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y)))) (/.f64 (+.f64 x y) (/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y)))) (/.f64 (cbrt.f64 (+.f64 x y)) (/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (hypot.f64 x y)) (-.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) 1) (/.f64 (-.f64 x y) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (neg.f64 (hypot.f64 x y))) (neg.f64 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (/.f64 (hypot.f64 x y) (sqrt.f64 (-.f64 x y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)) (+.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (+.f64 x y) 3) (pow.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)) (+.f64 x y)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (+.f64 x y) (/.f64 (neg.f64 (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (+.f64 x y) 3) (pow.f64 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 (+.f64 x y) (pow.f64 (hypot.f64 x y) 2)) (-.f64 x y))) 1))))))

simplify62.0ms (0.6%)

Algorithm
egg-herbie
Rules
720×fma-def_binary64
447×associate-+l+_binary64
405×div-sub_binary64
370×associate-/l*_binary64
360×associate-/r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0137825
1482758
21778614
37409614
Stop Event
node limit
Counts
127 → 126
Calls
Call 1
Inputs
(*.f64 -1 y)
(+.f64 (*.f64 -1 x) (*.f64 -1 y))
(+.f64 (*.f64 -2 (/.f64 (pow.f64 x 2) y)) (+.f64 (*.f64 -1 x) (*.f64 -1 y)))
(+.f64 (*.f64 -2 (/.f64 (pow.f64 x 3) (pow.f64 y 2))) (+.f64 (*.f64 -2 (/.f64 (pow.f64 x 2) y)) (+.f64 (*.f64 -1 x) (*.f64 -1 y))))
x
(+.f64 y x)
(-.f64 (+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 y x)) (*.f64 -1 (/.f64 (pow.f64 y 2) x)))
(-.f64 (+.f64 (/.f64 (*.f64 y (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2)))) (pow.f64 x 2)) (+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 y x))) (*.f64 -1 (/.f64 (pow.f64 y 2) x)))
x
(+.f64 y x)
(-.f64 (+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 y x)) (*.f64 -1 (/.f64 (pow.f64 y 2) x)))
(-.f64 (+.f64 (/.f64 (*.f64 y (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2)))) (pow.f64 x 2)) (+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 y x))) (*.f64 -1 (/.f64 (pow.f64 y 2) x)))
x
(+.f64 y x)
(+.f64 y (+.f64 (*.f64 2 (/.f64 (pow.f64 y 2) x)) x))
(+.f64 y (+.f64 (*.f64 2 (/.f64 (pow.f64 y 3) (pow.f64 x 2))) (+.f64 (*.f64 2 (/.f64 (pow.f64 y 2) x)) x)))
(*.f64 -1 y)
(+.f64 (*.f64 -1 x) (*.f64 -1 y))
(-.f64 (+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y))) (/.f64 (pow.f64 x 2) y))
(-.f64 (+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (+.f64 (*.f64 -1 y) (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 x 2)) (pow.f64 x 2)) x) (pow.f64 y 2))))) (/.f64 (pow.f64 x 2) y))
(*.f64 -1 y)
(+.f64 (*.f64 -1 x) (*.f64 -1 y))
(+.f64 (*.f64 -1 (/.f64 (-.f64 (pow.f64 x 2) (*.f64 -1 (pow.f64 x 2))) y)) (+.f64 (*.f64 -1 x) (*.f64 -1 y)))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (-.f64 (pow.f64 x 2) (*.f64 -1 (pow.f64 x 2))) x) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (-.f64 (pow.f64 x 2) (*.f64 -1 (pow.f64 x 2))) y)) (+.f64 (*.f64 -1 x) (*.f64 -1 y))))
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) 1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6))) (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) 1)
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x)))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))))))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2)))))))
1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4))) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y))))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
Outputs
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 -1 x) (*.f64 -1 y))
(*.f64 -1 (+.f64 y x))
(-.f64 (neg.f64 y) x)
(-.f64 (neg.f64 x) y)
(+.f64 (*.f64 -2 (/.f64 (pow.f64 x 2) y)) (+.f64 (*.f64 -1 x) (*.f64 -1 y)))
(fma.f64 -2 (/.f64 (*.f64 x x) y) (*.f64 -1 (+.f64 y x)))
(-.f64 (fma.f64 -2 (/.f64 x (/.f64 y x)) (neg.f64 x)) y)
(-.f64 (*.f64 -2 (/.f64 (*.f64 x x) y)) (+.f64 y x))
(+.f64 (*.f64 -2 (/.f64 (pow.f64 x 3) (pow.f64 y 2))) (+.f64 (*.f64 -2 (/.f64 (pow.f64 x 2) y)) (+.f64 (*.f64 -1 x) (*.f64 -1 y))))
(fma.f64 -2 (/.f64 (pow.f64 x 3) (*.f64 y y)) (fma.f64 -2 (/.f64 (*.f64 x x) y) (*.f64 -1 (+.f64 y x))))
(fma.f64 -2 (/.f64 (pow.f64 x 3) (*.f64 y y)) (-.f64 (fma.f64 -2 (/.f64 x (/.f64 y x)) (neg.f64 x)) y))
(fma.f64 -2 (*.f64 (+.f64 (/.f64 x y) 1) (/.f64 (*.f64 x x) y)) (-.f64 (neg.f64 x) y))
x
(+.f64 y x)
(-.f64 (+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 y x)) (*.f64 -1 (/.f64 (pow.f64 y 2) x)))
(-.f64 (+.f64 (+.f64 y x) (/.f64 (*.f64 y y) x)) (/.f64 (neg.f64 (*.f64 y y)) x))
(+.f64 (+.f64 y x) (+.f64 (/.f64 (*.f64 y y) x) (/.f64 (*.f64 y y) x)))
(+.f64 y (fma.f64 2 (/.f64 (*.f64 y y) x) x))
(-.f64 (+.f64 (/.f64 (*.f64 y (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2)))) (pow.f64 x 2)) (+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 y x))) (*.f64 -1 (/.f64 (pow.f64 y 2) x)))
(+.f64 (/.f64 (*.f64 y (-.f64 (*.f64 y y) (neg.f64 (*.f64 y y)))) (*.f64 x x)) (-.f64 (+.f64 (+.f64 y x) (/.f64 (*.f64 y y) x)) (/.f64 (neg.f64 (*.f64 y y)) x)))
(+.f64 (+.f64 (+.f64 y x) (+.f64 (/.f64 (*.f64 y y) x) (/.f64 (*.f64 y y) x))) (*.f64 2 (/.f64 (pow.f64 y 3) (*.f64 x x))))
(+.f64 y (fma.f64 2 (*.f64 (/.f64 (*.f64 y y) x) (+.f64 1 (/.f64 y x))) x))
x
(+.f64 y x)
(-.f64 (+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 y x)) (*.f64 -1 (/.f64 (pow.f64 y 2) x)))
(-.f64 (+.f64 (+.f64 y x) (/.f64 (*.f64 y y) x)) (/.f64 (neg.f64 (*.f64 y y)) x))
(+.f64 (+.f64 y x) (+.f64 (/.f64 (*.f64 y y) x) (/.f64 (*.f64 y y) x)))
(+.f64 y (fma.f64 2 (/.f64 (*.f64 y y) x) x))
(-.f64 (+.f64 (/.f64 (*.f64 y (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2)))) (pow.f64 x 2)) (+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 y x))) (*.f64 -1 (/.f64 (pow.f64 y 2) x)))
(+.f64 (/.f64 (*.f64 y (-.f64 (*.f64 y y) (neg.f64 (*.f64 y y)))) (*.f64 x x)) (-.f64 (+.f64 (+.f64 y x) (/.f64 (*.f64 y y) x)) (/.f64 (neg.f64 (*.f64 y y)) x)))
(+.f64 (+.f64 (+.f64 y x) (+.f64 (/.f64 (*.f64 y y) x) (/.f64 (*.f64 y y) x))) (*.f64 2 (/.f64 (pow.f64 y 3) (*.f64 x x))))
(+.f64 y (fma.f64 2 (*.f64 (/.f64 (*.f64 y y) x) (+.f64 1 (/.f64 y x))) x))
x
(+.f64 y x)
(+.f64 y (+.f64 (*.f64 2 (/.f64 (pow.f64 y 2) x)) x))
(-.f64 (+.f64 (+.f64 y x) (/.f64 (*.f64 y y) x)) (/.f64 (neg.f64 (*.f64 y y)) x))
(+.f64 (+.f64 y x) (+.f64 (/.f64 (*.f64 y y) x) (/.f64 (*.f64 y y) x)))
(+.f64 y (fma.f64 2 (/.f64 (*.f64 y y) x) x))
(+.f64 y (+.f64 (*.f64 2 (/.f64 (pow.f64 y 3) (pow.f64 x 2))) (+.f64 (*.f64 2 (/.f64 (pow.f64 y 2) x)) x)))
(+.f64 (/.f64 (*.f64 y (-.f64 (*.f64 y y) (neg.f64 (*.f64 y y)))) (*.f64 x x)) (-.f64 (+.f64 (+.f64 y x) (/.f64 (*.f64 y y) x)) (/.f64 (neg.f64 (*.f64 y y)) x)))
(+.f64 (+.f64 (+.f64 y x) (+.f64 (/.f64 (*.f64 y y) x) (/.f64 (*.f64 y y) x))) (*.f64 2 (/.f64 (pow.f64 y 3) (*.f64 x x))))
(+.f64 y (fma.f64 2 (*.f64 (/.f64 (*.f64 y y) x) (+.f64 1 (/.f64 y x))) x))
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 -1 x) (*.f64 -1 y))
(*.f64 -1 (+.f64 y x))
(-.f64 (neg.f64 y) x)
(-.f64 (neg.f64 x) y)
(-.f64 (+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y))) (/.f64 (pow.f64 x 2) y))
(fma.f64 -2 (/.f64 (*.f64 x x) y) (*.f64 -1 (+.f64 y x)))
(-.f64 (fma.f64 -2 (/.f64 x (/.f64 y x)) (neg.f64 x)) y)
(-.f64 (*.f64 -2 (/.f64 (*.f64 x x) y)) (+.f64 y x))
(-.f64 (+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (+.f64 (*.f64 -1 y) (/.f64 (*.f64 (-.f64 (*.f64 -1 (pow.f64 x 2)) (pow.f64 x 2)) x) (pow.f64 y 2))))) (/.f64 (pow.f64 x 2) y))
(fma.f64 -2 (/.f64 (pow.f64 x 3) (*.f64 y y)) (fma.f64 -2 (/.f64 (*.f64 x x) y) (*.f64 -1 (+.f64 y x))))
(fma.f64 -2 (/.f64 (pow.f64 x 3) (*.f64 y y)) (-.f64 (fma.f64 -2 (/.f64 x (/.f64 y x)) (neg.f64 x)) y))
(fma.f64 -2 (*.f64 (+.f64 (/.f64 x y) 1) (/.f64 (*.f64 x x) y)) (-.f64 (neg.f64 x) y))
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 -1 x) (*.f64 -1 y))
(*.f64 -1 (+.f64 y x))
(-.f64 (neg.f64 y) x)
(-.f64 (neg.f64 x) y)
(+.f64 (*.f64 -1 (/.f64 (-.f64 (pow.f64 x 2) (*.f64 -1 (pow.f64 x 2))) y)) (+.f64 (*.f64 -1 x) (*.f64 -1 y)))
(fma.f64 -2 (/.f64 (*.f64 x x) y) (*.f64 -1 (+.f64 y x)))
(-.f64 (fma.f64 -2 (/.f64 x (/.f64 y x)) (neg.f64 x)) y)
(-.f64 (*.f64 -2 (/.f64 (*.f64 x x) y)) (+.f64 y x))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (-.f64 (pow.f64 x 2) (*.f64 -1 (pow.f64 x 2))) x) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (-.f64 (pow.f64 x 2) (*.f64 -1 (pow.f64 x 2))) y)) (+.f64 (*.f64 -1 x) (*.f64 -1 y))))
(fma.f64 -2 (/.f64 (pow.f64 x 3) (*.f64 y y)) (fma.f64 -2 (/.f64 (*.f64 x x) y) (*.f64 -1 (+.f64 y x))))
(fma.f64 -2 (/.f64 (pow.f64 x 3) (*.f64 y y)) (-.f64 (fma.f64 -2 (/.f64 x (/.f64 y x)) (neg.f64 x)) y))
(fma.f64 -2 (*.f64 (+.f64 (/.f64 x y) 1) (/.f64 (*.f64 x x) y)) (-.f64 (neg.f64 x) y))
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) 1)
(+.f64 (fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) (fma.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)) -1))
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6))) (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) 1)
(+.f64 (fma.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6)) (fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) -1)
(fma.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6)) (fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) (fma.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)) -1)))
(fma.f64 2 (+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (/.f64 (pow.f64 x 6) (pow.f64 y 6))) (fma.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)) -1))
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (/.f64 y x) (+.f64 1 (/.f64 (neg.f64 y) x)))
(+.f64 (/.f64 y x) (-.f64 1 (/.f64 y x)))
(+.f64 1 (*.f64 0 (/.f64 y x)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (+.f64 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 y x))))) (/.f64 (*.f64 y y) (*.f64 x x)))
(+.f64 (-.f64 (-.f64 1 (*.f64 (/.f64 y x) (/.f64 y x))) (/.f64 y x)) (-.f64 (/.f64 y x) (*.f64 (/.f64 y x) (/.f64 y x))))
(+.f64 (*.f64 0 (/.f64 y x)) (fma.f64 (/.f64 -2 x) (/.f64 (*.f64 y y) x) 1))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x)))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (+.f64 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 y x))))) (/.f64 (*.f64 y y) (*.f64 x x)))
(+.f64 (-.f64 (-.f64 1 (*.f64 (/.f64 y x) (/.f64 y x))) (/.f64 y x)) (-.f64 (/.f64 y x) (*.f64 (/.f64 y x) (/.f64 y x))))
(+.f64 (*.f64 0 (/.f64 y x)) (fma.f64 (/.f64 -2 x) (/.f64 (*.f64 y y) x) 1))
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (/.f64 y x) (+.f64 1 (/.f64 (neg.f64 y) x)))
(+.f64 (/.f64 y x) (-.f64 1 (/.f64 y x)))
(+.f64 1 (*.f64 0 (/.f64 y x)))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))))))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (+.f64 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 y x))))) (/.f64 (*.f64 y y) (*.f64 x x)))
(+.f64 (-.f64 (-.f64 1 (*.f64 (/.f64 y x) (/.f64 y x))) (/.f64 y x)) (-.f64 (/.f64 y x) (*.f64 (/.f64 y x) (/.f64 y x))))
(+.f64 (*.f64 0 (/.f64 y x)) (fma.f64 (/.f64 -2 x) (/.f64 (*.f64 y y) x) 1))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2)))))))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (+.f64 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 y x))))) (/.f64 (*.f64 y y) (*.f64 x x)))
(+.f64 (-.f64 (-.f64 1 (*.f64 (/.f64 y x) (/.f64 y x))) (/.f64 y x)) (-.f64 (/.f64 y x) (*.f64 (/.f64 y x) (/.f64 y x))))
(+.f64 (*.f64 0 (/.f64 y x)) (fma.f64 (/.f64 -2 x) (/.f64 (*.f64 y y) x) 1))
1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (*.f64 -2 (/.f64 (*.f64 y y) (*.f64 x x))))
(fma.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)) 1)
(fma.f64 (/.f64 -2 x) (/.f64 (*.f64 y y) x) 1)
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 1 (fma.f64 -2 (/.f64 (*.f64 y y) (*.f64 x x)) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 1 (fma.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(fma.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (fma.f64 (/.f64 -2 x) (/.f64 (*.f64 y y) x) 1))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4))) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
(+.f64 1 (fma.f64 -2 (/.f64 (*.f64 y y) (*.f64 x x)) (fma.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
(+.f64 1 (fma.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)) (fma.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6)) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4))))))
(+.f64 1 (fma.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (*.f64 -2 (+.f64 (/.f64 (pow.f64 y 6) (pow.f64 x 6)) (*.f64 (/.f64 y x) (/.f64 y x))))))
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y))))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(/.f64 y (-.f64 x y))
0.1b
(*.f64 (/.f64 y (-.f64 x y)) y)
2.3b
(/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))
Compiler

Compiled 33 to 7 computations (78.8% saved)

series7.0ms (0.1%)

Counts
3 → 72
Calls

18 calls:

TimeVariablePointExpression
0.0ms
y
@0
(*.f64 (/.f64 y (-.f64 x y)) y)
0.0ms
x
@inf
(*.f64 (/.f64 y (-.f64 x y)) y)
0.0ms
x
@-inf
(*.f64 (/.f64 y (-.f64 x y)) y)
0.0ms
x
@-inf
(/.f64 y (-.f64 x y))
0.0ms
y
@inf
(*.f64 (/.f64 y (-.f64 x y)) y)

rewrite128.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
579×prod-diff_binary64
570×log-prod_binary64
266×pow2_binary64
244×fma-def_binary64
219×log-div_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0833
118833
2303233
Stop Event
node limit
Counts
3 → 119
Calls
Call 1
Inputs
(/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))
(*.f64 (/.f64 y (-.f64 x y)) y)
(/.f64 y (-.f64 x y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x y) (*.f64 (pow.f64 y -2) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (*.f64 (pow.f64 y -2) (-.f64 x y)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (*.f64 (pow.f64 y -2) (-.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (*.f64 (pow.f64 y -2) (-.f64 x y))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (*.f64 (pow.f64 y -2) (-.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 x y) (*.f64 (pow.f64 y -2) (-.f64 x y))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (*.f64 (pow.f64 y -2) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) (*.f64 (pow.f64 y -2) (-.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (+.f64 x y) (*.f64 (pow.f64 y -2) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (+.f64 x y) (*.f64 (pow.f64 y -2) (-.f64 x y)))) (cbrt.f64 (pow.f64 (/.f64 y (*.f64 (/.f64 (+.f64 x y) y) (-.f64 x y))) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 y (*.f64 (/.f64 (+.f64 x y) y) (-.f64 x y))) -2)) (cbrt.f64 (*.f64 (+.f64 x y) (*.f64 (pow.f64 y -2) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (*.f64 (cbrt.f64 (+.f64 x y)) (*.f64 (pow.f64 y -2) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (/.f64 y (sqrt.f64 (-.f64 x y)))) (/.f64 (sqrt.f64 (+.f64 x y)) (/.f64 y (sqrt.f64 (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 x y)) (*.f64 (sqrt.f64 (+.f64 x y)) (*.f64 (pow.f64 y -2) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 x y)) (/.f64 1 (/.f64 (neg.f64 (*.f64 y y)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (/.f64 x y) 1) (/.f64 (+.f64 x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 y -2) (-.f64 x y)) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 x y) y) (-.f64 x y)) (/.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 y) (*.f64 (/.f64 (+.f64 x y) y) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) y) (/.f64 (cbrt.f64 (+.f64 x y)) (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) y) (/.f64 (sqrt.f64 (+.f64 x y)) (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) 1) (/.f64 (cbrt.f64 (+.f64 x y)) (/.f64 (*.f64 y y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) 1) (/.f64 (sqrt.f64 (+.f64 x y)) (/.f64 (*.f64 y y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (/.f64 y (-.f64 x y))) (/.f64 (sqrt.f64 (+.f64 x y)) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (/.f64 y (-.f64 x y))) (/.f64 (cbrt.f64 (+.f64 x y)) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (*.f64 y y) (-.f64 x y))) -2) (/.f64 (+.f64 x y) (cbrt.f64 (/.f64 (*.f64 y y) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (cbrt.f64 (pow.f64 (/.f64 y (sqrt.f64 (-.f64 x y))) 4))) (cbrt.f64 (*.f64 (+.f64 x y) (*.f64 (pow.f64 y -2) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (cbrt.f64 (pow.f64 (/.f64 y (sqrt.f64 (-.f64 x y))) 4))) (/.f64 (sqrt.f64 (+.f64 x y)) (cbrt.f64 (/.f64 (*.f64 y y) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 y (sqrt.f64 (-.f64 x y)))) (/.f64 (+.f64 x y) (/.f64 y (sqrt.f64 (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 x y)) 2) (/.f64 y (sqrt.f64 (-.f64 x y)))) (/.f64 (cbrt.f64 (+.f64 x y)) (/.f64 y (sqrt.f64 (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (*.f64 y y)) (-.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 x y) (*.f64 (pow.f64 y -2) (-.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y (*.f64 (/.f64 (+.f64 x y) y) (-.f64 x y))) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 x y) (*.f64 (pow.f64 y -2) (-.f64 x y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 x y) (*.f64 (pow.f64 y -2) (-.f64 x y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (/.f64 y (sqrt.f64 (-.f64 x y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 y (*.f64 (/.f64 (+.f64 x y) y) (-.f64 x y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (+.f64 x y) 3) (pow.f64 (/.f64 y (sqrt.f64 (-.f64 x y))) 6)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 y (*.f64 (/.f64 (+.f64 x y) y) (-.f64 x y))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (+.f64 x y) (/.f64 (neg.f64 (*.f64 y y)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 y (*.f64 (/.f64 (+.f64 x y) y) (-.f64 x y))) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 x y)) (*.f64 (pow.f64 y -2) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x y) (*.f64 (pow.f64 y -2) (-.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 x y) (*.f64 (pow.f64 y -2) (-.f64 x y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (+.f64 x y) 3) (pow.f64 (/.f64 y (sqrt.f64 (-.f64 x y))) 6)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 x y) (*.f64 (pow.f64 y -2) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 x y) (*.f64 (pow.f64 y -2) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (+.f64 x y) (*.f64 (pow.f64 y -2) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 x y) (*.f64 (pow.f64 y -2) (-.f64 x y)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (*.f64 y y) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (/.f64 y (-.f64 x y)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (/.f64 y (-.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (/.f64 y (-.f64 x y))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (/.f64 y (-.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (*.f64 y y) (-.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 y (-.f64 (/.f64 x y) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 x y) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y y) (-.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y y)) (neg.f64 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 y) y) (neg.f64 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (neg.f64 y)) (neg.f64 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 y y) 1) (-.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 y y) (pow.f64 (cbrt.f64 (-.f64 x y)) 2)) (cbrt.f64 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 y y) (sqrt.f64 (-.f64 x y))) (sqrt.f64 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 y y) (-.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y (sqrt.f64 (-.f64 x y))) 4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y (sqrt.f64 (-.f64 x y))) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (*.f64 y y) (-.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 y (sqrt.f64 (-.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (/.f64 x y) 1) -3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (-.f64 (/.f64 x y) 1) -3) (pow.f64 y 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 x y) (*.f64 y y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 y (sqrt.f64 (-.f64 x y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 y) (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (*.f64 y y) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 y (sqrt.f64 (-.f64 x y))) 6))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 y 3) (pow.f64 (-.f64 (/.f64 x y) 1) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 (/.f64 x y) 1) -3) (pow.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (*.f64 y y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (*.f64 y y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (*.f64 y y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (*.f64 y y) (-.f64 x y))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 y (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 y (-.f64 x y)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 y (-.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 y (-.f64 x y))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 y (-.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 y (-.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (/.f64 1 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y (-.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 y (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 y (-.f64 x y))) (pow.f64 (cbrt.f64 (/.f64 y (-.f64 x y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 y (-.f64 x y))) 2) (cbrt.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (/.f64 1 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 y (-.f64 x y))) (sqrt.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (/.f64 1 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (/.f64 1 (neg.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 x y)) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) 1) (/.f64 (cbrt.f64 y) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) 1) (/.f64 (sqrt.f64 y) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 x y)) -2) (/.f64 y (cbrt.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (-.f64 x y)) 2)) (cbrt.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (-.f64 x y)) 2)) (/.f64 (sqrt.f64 y) (cbrt.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (-.f64 x y) -1/2) (/.f64 y (sqrt.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (-.f64 x y))) (/.f64 (cbrt.f64 y) (sqrt.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y (-.f64 (pow.f64 x 3) (pow.f64 y 3))) (fma.f64 x x (*.f64 y (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y (-.f64 (*.f64 x x) (*.f64 y y))) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 y (-.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y (-.f64 x y)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (/.f64 x y) 1) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 y (-.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 y (-.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (/.f64 x y) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 y 3) (pow.f64 (-.f64 x y) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (/.f64 x y) 1) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 y (neg.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 y (-.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 y (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (/.f64 x y) 1) -3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 y 3) (pow.f64 (-.f64 x y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 y (-.f64 x y))) 1))))))

simplify55.0ms (0.5%)

Algorithm
egg-herbie
Rules
604×associate-/r*_binary64
563×associate-*l/_binary64
411×associate-/r/_binary64
407×cancel-sign-sub-inv_binary64
399×associate-*r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0691173
12001143
2617993
32160954
Stop Event
node limit
Counts
191 → 158
Calls
Call 1
Inputs
-1
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) 1)
(/.f64 (pow.f64 y 2) x)
(+.f64 (/.f64 (pow.f64 y 2) x) (/.f64 (pow.f64 y 3) (pow.f64 x 2)))
(+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (/.f64 (pow.f64 y 3) (pow.f64 x 2))))
(+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 2)) (/.f64 (pow.f64 y 5) (pow.f64 x 4)))))
(*.f64 -1 y)
(+.f64 (*.f64 -1 x) (*.f64 -1 y))
(+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y)))
(+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y))))
(*.f64 -1 y)
(+.f64 (*.f64 -1 x) (*.f64 -1 y))
(+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y)))
(+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y))))
(*.f64 -1 y)
(+.f64 (*.f64 -1 x) (*.f64 -1 y))
(+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y)))
(+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y))))
(/.f64 (pow.f64 y 2) x)
(+.f64 (/.f64 (pow.f64 y 2) x) (/.f64 (pow.f64 y 3) (pow.f64 x 2)))
(+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (/.f64 (pow.f64 y 3) (pow.f64 x 2))))
(+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 2)) (/.f64 (pow.f64 y 5) (pow.f64 x 4)))))
(/.f64 (pow.f64 y 2) x)
(+.f64 (/.f64 (pow.f64 y 2) x) (/.f64 (pow.f64 y 3) (pow.f64 x 2)))
(+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (/.f64 (pow.f64 y 3) (pow.f64 x 2))))
(+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 2)) (/.f64 (pow.f64 y 5) (pow.f64 x 4)))))
(/.f64 y x)
(+.f64 (/.f64 y x) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (+.f64 (/.f64 y x) (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (+.f64 (/.f64 y x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))))
-1
(-.f64 (*.f64 -1 (/.f64 x y)) 1)
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y))) 1)
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y)))) 1)
-1
(-.f64 (*.f64 -1 (/.f64 x y)) 1)
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y))) 1)
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y)))) 1)
-1
(-.f64 (*.f64 -1 (/.f64 x y)) 1)
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y))) 1)
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y)))) 1)
(/.f64 y x)
(+.f64 (/.f64 y x) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (+.f64 (/.f64 y x) (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (+.f64 (/.f64 y x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(/.f64 y x)
(+.f64 (/.f64 y x) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (+.f64 (/.f64 y x) (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (+.f64 (/.f64 y x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))))
Outputs
-1
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(-.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) 1)
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (/.f64 x y)))
(fma.f64 (/.f64 x y) (/.f64 x y) -1)
(/.f64 (pow.f64 y 2) x)
(/.f64 (*.f64 y y) x)
(/.f64 y (/.f64 x y))
(*.f64 (/.f64 y x) y)
(*.f64 y (/.f64 y x))
(+.f64 (/.f64 (pow.f64 y 2) x) (/.f64 (pow.f64 y 3) (pow.f64 x 2)))
(+.f64 (/.f64 (*.f64 y y) x) (/.f64 (pow.f64 y 3) (*.f64 x x)))
(+.f64 (/.f64 y (/.f64 x y)) (/.f64 (pow.f64 y 3) (*.f64 x x)))
(*.f64 (+.f64 (/.f64 y x) 1) (*.f64 (/.f64 y x) y))
(*.f64 (/.f64 y x) (+.f64 (*.f64 y (/.f64 y x)) y))
(+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (/.f64 (pow.f64 y 3) (pow.f64 x 2))))
(+.f64 (/.f64 (*.f64 y y) x) (+.f64 (/.f64 (pow.f64 y 3) (*.f64 x x)) (/.f64 (pow.f64 y 4) (pow.f64 x 3))))
(+.f64 (/.f64 y (/.f64 x y)) (+.f64 (/.f64 (pow.f64 y 3) (*.f64 x x)) (/.f64 (pow.f64 y 4) (pow.f64 x 3))))
(+.f64 (*.f64 (+.f64 (/.f64 y x) 1) (*.f64 (/.f64 y x) y)) (*.f64 (pow.f64 (/.f64 y x) 3) y))
(+.f64 (*.f64 (/.f64 y x) (+.f64 (*.f64 y (/.f64 y x)) y)) (*.f64 (pow.f64 (/.f64 y x) 3) y))
(+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 2)) (/.f64 (pow.f64 y 5) (pow.f64 x 4)))))
(+.f64 (/.f64 (*.f64 y y) x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (+.f64 (/.f64 (pow.f64 y 3) (*.f64 x x)) (/.f64 (pow.f64 y 5) (pow.f64 x 4)))))
(+.f64 (/.f64 y (/.f64 x y)) (+.f64 (/.f64 (pow.f64 y 3) (*.f64 x x)) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (/.f64 (pow.f64 y 5) (pow.f64 x 4)))))
(+.f64 (*.f64 (+.f64 (/.f64 y x) 1) (*.f64 (/.f64 y x) y)) (+.f64 (*.f64 (pow.f64 (/.f64 y x) 3) y) (/.f64 (pow.f64 y 5) (pow.f64 x 4))))
(+.f64 (*.f64 (/.f64 y x) (+.f64 (*.f64 y (/.f64 y x)) y)) (+.f64 (*.f64 (pow.f64 (/.f64 y x) 3) y) (/.f64 (pow.f64 y 5) (pow.f64 x 4))))
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 -1 x) (*.f64 -1 y))
(*.f64 -1 (+.f64 x y))
(-.f64 (neg.f64 x) y)
(+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y)))
(fma.f64 -1 x (*.f64 -1 (+.f64 (/.f64 (*.f64 x x) y) y)))
(-.f64 (-.f64 (neg.f64 y) (/.f64 x (/.f64 y x))) x)
(-.f64 (/.f64 (neg.f64 x) (/.f64 y x)) (+.f64 x y))
(-.f64 (*.f64 x (-.f64 -1 (/.f64 x y))) y)
(+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y))))
(fma.f64 -1 x (fma.f64 -1 (/.f64 (pow.f64 x 3) (*.f64 y y)) (*.f64 -1 (+.f64 (/.f64 (*.f64 x x) y) y))))
(-.f64 (-.f64 (-.f64 (neg.f64 y) (/.f64 x (/.f64 y x))) (/.f64 (pow.f64 x 3) (*.f64 y y))) x)
(-.f64 (neg.f64 (*.f64 (+.f64 1 (/.f64 x y)) (*.f64 (/.f64 x y) x))) (+.f64 x y))
(-.f64 (*.f64 (/.f64 x y) (*.f64 x (-.f64 -1 (/.f64 x y)))) (+.f64 x y))
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 -1 x) (*.f64 -1 y))
(*.f64 -1 (+.f64 x y))
(-.f64 (neg.f64 x) y)
(+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y)))
(fma.f64 -1 x (*.f64 -1 (+.f64 (/.f64 (*.f64 x x) y) y)))
(-.f64 (-.f64 (neg.f64 y) (/.f64 x (/.f64 y x))) x)
(-.f64 (/.f64 (neg.f64 x) (/.f64 y x)) (+.f64 x y))
(-.f64 (*.f64 x (-.f64 -1 (/.f64 x y))) y)
(+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y))))
(fma.f64 -1 x (fma.f64 -1 (/.f64 (pow.f64 x 3) (*.f64 y y)) (*.f64 -1 (+.f64 (/.f64 (*.f64 x x) y) y))))
(-.f64 (-.f64 (-.f64 (neg.f64 y) (/.f64 x (/.f64 y x))) (/.f64 (pow.f64 x 3) (*.f64 y y))) x)
(-.f64 (neg.f64 (*.f64 (+.f64 1 (/.f64 x y)) (*.f64 (/.f64 x y) x))) (+.f64 x y))
(-.f64 (*.f64 (/.f64 x y) (*.f64 x (-.f64 -1 (/.f64 x y)))) (+.f64 x y))
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 -1 x) (*.f64 -1 y))
(*.f64 -1 (+.f64 x y))
(-.f64 (neg.f64 x) y)
(+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y)))
(fma.f64 -1 x (*.f64 -1 (+.f64 (/.f64 (*.f64 x x) y) y)))
(-.f64 (-.f64 (neg.f64 y) (/.f64 x (/.f64 y x))) x)
(-.f64 (/.f64 (neg.f64 x) (/.f64 y x)) (+.f64 x y))
(-.f64 (*.f64 x (-.f64 -1 (/.f64 x y))) y)
(+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) y)) (*.f64 -1 y))))
(fma.f64 -1 x (fma.f64 -1 (/.f64 (pow.f64 x 3) (*.f64 y y)) (*.f64 -1 (+.f64 (/.f64 (*.f64 x x) y) y))))
(-.f64 (-.f64 (-.f64 (neg.f64 y) (/.f64 x (/.f64 y x))) (/.f64 (pow.f64 x 3) (*.f64 y y))) x)
(-.f64 (neg.f64 (*.f64 (+.f64 1 (/.f64 x y)) (*.f64 (/.f64 x y) x))) (+.f64 x y))
(-.f64 (*.f64 (/.f64 x y) (*.f64 x (-.f64 -1 (/.f64 x y)))) (+.f64 x y))
(/.f64 (pow.f64 y 2) x)
(/.f64 (*.f64 y y) x)
(/.f64 y (/.f64 x y))
(*.f64 (/.f64 y x) y)
(*.f64 y (/.f64 y x))
(+.f64 (/.f64 (pow.f64 y 2) x) (/.f64 (pow.f64 y 3) (pow.f64 x 2)))
(+.f64 (/.f64 (*.f64 y y) x) (/.f64 (pow.f64 y 3) (*.f64 x x)))
(+.f64 (/.f64 y (/.f64 x y)) (/.f64 (pow.f64 y 3) (*.f64 x x)))
(*.f64 (+.f64 (/.f64 y x) 1) (*.f64 (/.f64 y x) y))
(*.f64 (/.f64 y x) (+.f64 (*.f64 y (/.f64 y x)) y))
(+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (/.f64 (pow.f64 y 3) (pow.f64 x 2))))
(+.f64 (/.f64 (*.f64 y y) x) (+.f64 (/.f64 (pow.f64 y 3) (*.f64 x x)) (/.f64 (pow.f64 y 4) (pow.f64 x 3))))
(+.f64 (/.f64 y (/.f64 x y)) (+.f64 (/.f64 (pow.f64 y 3) (*.f64 x x)) (/.f64 (pow.f64 y 4) (pow.f64 x 3))))
(+.f64 (*.f64 (+.f64 (/.f64 y x) 1) (*.f64 (/.f64 y x) y)) (*.f64 (pow.f64 (/.f64 y x) 3) y))
(+.f64 (*.f64 (/.f64 y x) (+.f64 (*.f64 y (/.f64 y x)) y)) (*.f64 (pow.f64 (/.f64 y x) 3) y))
(+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 2)) (/.f64 (pow.f64 y 5) (pow.f64 x 4)))))
(+.f64 (/.f64 (*.f64 y y) x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (+.f64 (/.f64 (pow.f64 y 3) (*.f64 x x)) (/.f64 (pow.f64 y 5) (pow.f64 x 4)))))
(+.f64 (/.f64 y (/.f64 x y)) (+.f64 (/.f64 (pow.f64 y 3) (*.f64 x x)) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (/.f64 (pow.f64 y 5) (pow.f64 x 4)))))
(+.f64 (*.f64 (+.f64 (/.f64 y x) 1) (*.f64 (/.f64 y x) y)) (+.f64 (*.f64 (pow.f64 (/.f64 y x) 3) y) (/.f64 (pow.f64 y 5) (pow.f64 x 4))))
(+.f64 (*.f64 (/.f64 y x) (+.f64 (*.f64 y (/.f64 y x)) y)) (+.f64 (*.f64 (pow.f64 (/.f64 y x) 3) y) (/.f64 (pow.f64 y 5) (pow.f64 x 4))))
(/.f64 (pow.f64 y 2) x)
(/.f64 (*.f64 y y) x)
(/.f64 y (/.f64 x y))
(*.f64 (/.f64 y x) y)
(*.f64 y (/.f64 y x))
(+.f64 (/.f64 (pow.f64 y 2) x) (/.f64 (pow.f64 y 3) (pow.f64 x 2)))
(+.f64 (/.f64 (*.f64 y y) x) (/.f64 (pow.f64 y 3) (*.f64 x x)))
(+.f64 (/.f64 y (/.f64 x y)) (/.f64 (pow.f64 y 3) (*.f64 x x)))
(*.f64 (+.f64 (/.f64 y x) 1) (*.f64 (/.f64 y x) y))
(*.f64 (/.f64 y x) (+.f64 (*.f64 y (/.f64 y x)) y))
(+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (/.f64 (pow.f64 y 3) (pow.f64 x 2))))
(+.f64 (/.f64 (*.f64 y y) x) (+.f64 (/.f64 (pow.f64 y 3) (*.f64 x x)) (/.f64 (pow.f64 y 4) (pow.f64 x 3))))
(+.f64 (/.f64 y (/.f64 x y)) (+.f64 (/.f64 (pow.f64 y 3) (*.f64 x x)) (/.f64 (pow.f64 y 4) (pow.f64 x 3))))
(+.f64 (*.f64 (+.f64 (/.f64 y x) 1) (*.f64 (/.f64 y x) y)) (*.f64 (pow.f64 (/.f64 y x) 3) y))
(+.f64 (*.f64 (/.f64 y x) (+.f64 (*.f64 y (/.f64 y x)) y)) (*.f64 (pow.f64 (/.f64 y x) 3) y))
(+.f64 (/.f64 (pow.f64 y 2) x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 2)) (/.f64 (pow.f64 y 5) (pow.f64 x 4)))))
(+.f64 (/.f64 (*.f64 y y) x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (+.f64 (/.f64 (pow.f64 y 3) (*.f64 x x)) (/.f64 (pow.f64 y 5) (pow.f64 x 4)))))
(+.f64 (/.f64 y (/.f64 x y)) (+.f64 (/.f64 (pow.f64 y 3) (*.f64 x x)) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 3)) (/.f64 (pow.f64 y 5) (pow.f64 x 4)))))
(+.f64 (*.f64 (+.f64 (/.f64 y x) 1) (*.f64 (/.f64 y x) y)) (+.f64 (*.f64 (pow.f64 (/.f64 y x) 3) y) (/.f64 (pow.f64 y 5) (pow.f64 x 4))))
(+.f64 (*.f64 (/.f64 y x) (+.f64 (*.f64 y (/.f64 y x)) y)) (+.f64 (*.f64 (pow.f64 (/.f64 y x) 3) y) (/.f64 (pow.f64 y 5) (pow.f64 x 4))))
(/.f64 y x)
(+.f64 (/.f64 y x) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (/.f64 y x) (/.f64 (*.f64 y y) (*.f64 x x)))
(+.f64 (/.f64 y x) (*.f64 (/.f64 y x) (/.f64 y x)))
(*.f64 (+.f64 (/.f64 y x) 1) (/.f64 y x))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (+.f64 (/.f64 y x) (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 (+.f64 (/.f64 y x) (/.f64 (*.f64 y y) (*.f64 x x))) (/.f64 (pow.f64 y 3) (pow.f64 x 3)))
(+.f64 (/.f64 y x) (+.f64 (*.f64 (/.f64 y x) (/.f64 y x)) (/.f64 (pow.f64 y 3) (pow.f64 x 3))))
(+.f64 (*.f64 (+.f64 (/.f64 y x) 1) (/.f64 y x)) (pow.f64 (/.f64 y x) 3))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (+.f64 (/.f64 y x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (+.f64 (/.f64 y x) (+.f64 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 (+.f64 (/.f64 y x) (+.f64 (*.f64 (/.f64 y x) (/.f64 y x)) (/.f64 (pow.f64 y 3) (pow.f64 x 3)))) (/.f64 (pow.f64 y 4) (pow.f64 x 4)))
(+.f64 (*.f64 (+.f64 (/.f64 y x) 1) (/.f64 y x)) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (/.f64 y x) 3)))
(*.f64 (+.f64 (*.f64 y (/.f64 (/.f64 y x) x)) 1) (*.f64 (+.f64 (/.f64 y x) 1) (/.f64 y x)))
-1
(-.f64 (*.f64 -1 (/.f64 x y)) 1)
(fma.f64 -1 (/.f64 x y) -1)
(-.f64 -1 (/.f64 x y))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y))) 1)
(+.f64 (neg.f64 (/.f64 (*.f64 x x) (*.f64 y y))) (fma.f64 -1 (/.f64 x y) -1))
(fma.f64 -1 (+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (/.f64 x y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (-.f64 -1 (/.f64 x y))))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 y y)) (fma.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 3)) (/.f64 (neg.f64 x) y))) -1)
(+.f64 -1 (-.f64 (-.f64 (/.f64 (neg.f64 x) y) (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 (/.f64 x y) (/.f64 x y))))
(+.f64 -1 (-.f64 (*.f64 (/.f64 x y) (-.f64 -1 (/.f64 x y))) (pow.f64 (/.f64 x y) 3)))
(*.f64 (+.f64 (*.f64 x (/.f64 x (*.f64 y y))) 1) (-.f64 -1 (/.f64 x y)))
-1
(-.f64 (*.f64 -1 (/.f64 x y)) 1)
(fma.f64 -1 (/.f64 x y) -1)
(-.f64 -1 (/.f64 x y))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y))) 1)
(+.f64 (neg.f64 (/.f64 (*.f64 x x) (*.f64 y y))) (fma.f64 -1 (/.f64 x y) -1))
(fma.f64 -1 (+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (/.f64 x y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (-.f64 -1 (/.f64 x y))))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 y y)) (fma.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 3)) (/.f64 (neg.f64 x) y))) -1)
(+.f64 -1 (-.f64 (-.f64 (/.f64 (neg.f64 x) y) (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 (/.f64 x y) (/.f64 x y))))
(+.f64 -1 (-.f64 (*.f64 (/.f64 x y) (-.f64 -1 (/.f64 x y))) (pow.f64 (/.f64 x y) 3)))
(*.f64 (+.f64 (*.f64 x (/.f64 x (*.f64 y y))) 1) (-.f64 -1 (/.f64 x y)))
-1
(-.f64 (*.f64 -1 (/.f64 x y)) 1)
(fma.f64 -1 (/.f64 x y) -1)
(-.f64 -1 (/.f64 x y))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -1 (/.f64 x y))) 1)
(+.f64 (neg.f64 (/.f64 (*.f64 x x) (*.f64 y y))) (fma.f64 -1 (/.f64 x y) -1))
(fma.f64 -1 (+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (/.f64 x y)) -1)
(+.f64 -1 (*.f64 (/.f64 x y) (-.f64 -1 (/.f64 x y))))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y)))) 1)
(+.f64 (fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 y y)) (fma.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 3)) (/.f64 (neg.f64 x) y))) -1)
(+.f64 -1 (-.f64 (-.f64 (/.f64 (neg.f64 x) y) (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 (/.f64 x y) (/.f64 x y))))
(+.f64 -1 (-.f64 (*.f64 (/.f64 x y) (-.f64 -1 (/.f64 x y))) (pow.f64 (/.f64 x y) 3)))
(*.f64 (+.f64 (*.f64 x (/.f64 x (*.f64 y y))) 1) (-.f64 -1 (/.f64 x y)))
(/.f64 y x)
(+.f64 (/.f64 y x) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (/.f64 y x) (/.f64 (*.f64 y y) (*.f64 x x)))
(+.f64 (/.f64 y x) (*.f64 (/.f64 y x) (/.f64 y x)))
(*.f64 (+.f64 (/.f64 y x) 1) (/.f64 y x))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (+.f64 (/.f64 y x) (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 (+.f64 (/.f64 y x) (/.f64 (*.f64 y y) (*.f64 x x))) (/.f64 (pow.f64 y 3) (pow.f64 x 3)))
(+.f64 (/.f64 y x) (+.f64 (*.f64 (/.f64 y x) (/.f64 y x)) (/.f64 (pow.f64 y 3) (pow.f64 x 3))))
(+.f64 (*.f64 (+.f64 (/.f64 y x) 1) (/.f64 y x)) (pow.f64 (/.f64 y x) 3))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (+.f64 (/.f64 y x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (+.f64 (/.f64 y x) (+.f64 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 (+.f64 (/.f64 y x) (+.f64 (*.f64 (/.f64 y x) (/.f64 y x)) (/.f64 (pow.f64 y 3) (pow.f64 x 3)))) (/.f64 (pow.f64 y 4) (pow.f64 x 4)))
(+.f64 (*.f64 (+.f64 (/.f64 y x) 1) (/.f64 y x)) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (/.f64 y x) 3)))
(*.f64 (+.f64 (*.f64 y (/.f64 (/.f64 y x) x)) 1) (*.f64 (+.f64 (/.f64 y x) 1) (/.f64 y x)))
(/.f64 y x)
(+.f64 (/.f64 y x) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (/.f64 y x) (/.f64 (*.f64 y y) (*.f64 x x)))
(+.f64 (/.f64 y x) (*.f64 (/.f64 y x) (/.f64 y x)))
(*.f64 (+.f64 (/.f64 y x) 1) (/.f64 y x))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (+.f64 (/.f64 y x) (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 (+.f64 (/.f64 y x) (/.f64 (*.f64 y y) (*.f64 x x))) (/.f64 (pow.f64 y 3) (pow.f64 x 3)))
(+.f64 (/.f64 y x) (+.f64 (*.f64 (/.f64 y x) (/.f64 y x)) (/.f64 (pow.f64 y 3) (pow.f64 x 3))))
(+.f64 (*.f64 (+.f64 (/.f64 y x) 1) (/.f64 y x)) (pow.f64 (/.f64 y x) 3))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (+.f64 (/.f64 y x) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 3)) (+.f64 (/.f64 y x) (+.f64 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 (+.f64 (/.f64 y x) (+.f64 (*.f64 (/.f64 y x) (/.f64 y x)) (/.f64 (pow.f64 y 3) (pow.f64 x 3)))) (/.f64 (pow.f64 y 4) (pow.f64 x 4)))
(+.f64 (*.f64 (+.f64 (/.f64 y x) 1) (/.f64 y x)) (+.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (/.f64 y x) 3)))
(*.f64 (+.f64 (*.f64 y (/.f64 (/.f64 y x) x)) 1) (*.f64 (+.f64 (/.f64 y x) 1) (/.f64 y x)))

localize14.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 2 (pow.f64 (/.f64 y x) -2))
0.3b
(pow.f64 (/.f64 y x) -2)
Compiler

Compiled 31 to 18 computations (41.9% saved)

series8.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
y
@-inf
(pow.f64 (/.f64 y x) -2)
1.0ms
y
@inf
(pow.f64 (/.f64 y x) -2)
1.0ms
x
@-inf
(pow.f64 (/.f64 y x) -2)
1.0ms
y
@0
(pow.f64 (/.f64 y x) -2)
1.0ms
x
@0
(*.f64 2 (pow.f64 (/.f64 y x) -2))

rewrite202.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
781×pow1_binary64
724×add-log-exp_binary64
723×log1p-expm1-u_binary64
723×expm1-log1p-u_binary64
708×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
117017
2201117
Stop Event
node limit
Counts
2 → 26
Calls
Call 1
Inputs
(pow.f64 (/.f64 y x) -2)
(*.f64 2 (pow.f64 (/.f64 y x) -2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (/.f64 y x) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 y x) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (/.f64 y x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 y x) -2)) (cbrt.f64 (pow.f64 (/.f64 y x) -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 y x) -4)) (cbrt.f64 (pow.f64 (/.f64 y x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x y) (/.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 y -2) (pow.f64 (/.f64 1 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 y x)) 2) -2) (pow.f64 (cbrt.f64 (/.f64 y x)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (/.f64 y x)) -2) (pow.f64 (sqrt.f64 (/.f64 y x)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 y x) -4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (/.f64 y x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (/.f64 y x) -2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (/.f64 y x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (/.f64 y x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 -2 (log.f64 (/.f64 y x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (pow.f64 (/.f64 y x) -2) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (/.f64 y x) -2) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (/.f64 y x) -2) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (/.f64 y x) -2) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 x y) (sqrt.f64 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 4 (pow.f64 (/.f64 y x) -4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (/.f64 y x) -2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (/.f64 y x) -2) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (/.f64 y x) -2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (/.f64 y x) -2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (pow.f64 (/.f64 y x) -2) 2)))))))

simplify140.0ms (1.4%)

Algorithm
egg-herbie
Rules
703×*-commutative_binary64
640×associate-/l*_binary64
574×sqr-pow_binary64
395×associate-/r*_binary64
337×associate-/l/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08552
119552
244552
3131552
4665552
54214552
64822552
75035552
85239552
95475552
105795552
116601552
127129552
137772552
Stop Event
node limit
Counts
74 → 30
Calls
Call 1
Inputs
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
Outputs
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (*.f64 x x) (*.f64 y y))
(*.f64 (/.f64 x y) (/.f64 x y))
(*.f64 x (/.f64 x (*.f64 y y)))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))
(*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(/.f64 (*.f64 2 (*.f64 x x)) (*.f64 y y))
(*.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)))
(*.f64 (*.f64 2 (/.f64 x (*.f64 y y))) x)
(*.f64 x (*.f64 (/.f64 2 y) (/.f64 x y)))
(/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))

localize24.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (+.f64 x y) (hypot.f64 x y))
0.1b
(/.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (-.f64 x y))
0.1b
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (-.f64 x y)))
0.2b
(/.f64 x (/.f64 y x))
Compiler

Compiled 79 to 23 computations (70.9% saved)

series12.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
5.0ms
y
@0
(/.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (-.f64 x y))
1.0ms
x
@inf
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (-.f64 x y)))
1.0ms
y
@0
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (-.f64 x y)))
1.0ms
x
@0
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (-.f64 x y)))
1.0ms
x
@-inf
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (-.f64 x y)))

rewrite96.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
546×fma-def_binary64
323×fma-neg_binary64
323×expm1-udef_binary64
323×log1p-udef_binary64
182×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01450
134450
2577150
Stop Event
node limit
Counts
2 → 112
Calls
Call 1
Inputs
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (-.f64 x y)))
(/.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (-.f64 x y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (/.f64 (+.f64 x y) (*.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (hypot.f64 x y)))) (*.f64 (neg.f64 y) (/.f64 (+.f64 x y) (*.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (hypot.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (+.f64 x y) (*.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (hypot.f64 x y))) x) (*.f64 (/.f64 (+.f64 x y) (*.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (hypot.f64 x y))) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (/.f64 1 (*.f64 (hypot.f64 x y) (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (*.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x y) (/.f64 (+.f64 x y) (*.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))))) (pow.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))))) 2) (cbrt.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) 2) (*.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))))) (sqrt.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (*.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (neg.f64 (+.f64 x y)) (hypot.f64 x y)) (/.f64 1 (/.f64 (neg.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) (/.f64 (+.f64 x y) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (*.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (hypot.f64 x y))) (-.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) 1) (/.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) 2) 1) (/.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) 1) (/.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) (/.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (/.f64 1 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (+.f64 x y) 2)) (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y))) (/.f64 (cbrt.f64 (+.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y))) (/.f64 (sqrt.f64 (+.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) (/.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 1 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) (/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 1 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) 2) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) (/.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (/.f64 1 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (cbrt.f64 (pow.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)) 2))) (/.f64 (/.f64 1 (hypot.f64 x y)) (cbrt.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (pow.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)) 2))) (/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (cbrt.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) 2) (cbrt.f64 (pow.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)) 2))) (cbrt.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (cbrt.f64 (pow.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)) 2))) (/.f64 (sqrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (cbrt.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (sqrt.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)))) (/.f64 (/.f64 1 (hypot.f64 x y)) (sqrt.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)))) (/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (sqrt.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) 2) (sqrt.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)))) (/.f64 (cbrt.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (sqrt.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) 1) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (neg.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)))) (neg.f64 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 x y) (*.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (hypot.f64 x y))) 1) (-.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 x y) (*.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (hypot.f64 x y))) (pow.f64 (cbrt.f64 (-.f64 x y)) 2)) (cbrt.f64 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (+.f64 x y) (*.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (hypot.f64 x y))) (sqrt.f64 (-.f64 x y))) (sqrt.f64 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)) (/.f64 (hypot.f64 x y) (+.f64 x y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (neg.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 (+.f64 x y) (hypot.f64 x y))) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) 3) (pow.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (/.f64 (+.f64 x y) (*.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (hypot.f64 x y))) (*.f64 (neg.f64 y) (/.f64 (+.f64 x y) (*.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (hypot.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (+.f64 x y) (*.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (hypot.f64 x y))) x (*.f64 (/.f64 (+.f64 x y) (*.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (hypot.f64 x y))) (neg.f64 y)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1/2 (/.f64 (*.f64 x (/.f64 x y)) (-.f64 x y))) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -1/2 (/.f64 (*.f64 x (/.f64 x y)) (-.f64 x y))) (/.f64 y (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (/.f64 1 (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) 2) (*.f64 (cbrt.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) (/.f64 1 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y))) (cbrt.f64 (pow.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)) 2)) (cbrt.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) (*.f64 (sqrt.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) (/.f64 1 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y))) (sqrt.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) (/.f64 1 (neg.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 x y)) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (-.f64 x y)) 2)) (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (cbrt.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (-.f64 x y))) (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (sqrt.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) 2) 1) (/.f64 (cbrt.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) 1) (/.f64 (sqrt.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) 2) (pow.f64 (cbrt.f64 (-.f64 x y)) 2)) (cbrt.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) (pow.f64 (cbrt.f64 (-.f64 x y)) 2)) (/.f64 (sqrt.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) (cbrt.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) 2) (sqrt.f64 (-.f64 x y))) (/.f64 (cbrt.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) (sqrt.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 (pow.f64 x 3) (pow.f64 y 3))) (fma.f64 x x (*.f64 y (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 (*.f64 x x) (*.f64 y y))) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 x y) (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (neg.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) 3) (pow.f64 (-.f64 x y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (fma.f64 x (*.f64 (/.f64 x y) -1/2) (neg.f64 y)) (-.f64 x y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1/2 (/.f64 (*.f64 x (/.f64 x y)) (-.f64 x y)) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (*.f64 (/.f64 x y) -1/2)) (/.f64 1 (-.f64 x y)) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 -1/2 (/.f64 (*.f64 x (/.f64 x y)) (-.f64 x y))) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 -1/2 (/.f64 (*.f64 x (/.f64 x y)) (-.f64 x y)))) (cbrt.f64 (*.f64 -1/2 (/.f64 (*.f64 x (/.f64 x y)) (-.f64 x y))))) (cbrt.f64 (*.f64 -1/2 (/.f64 (*.f64 x (/.f64 x y)) (-.f64 x y)))) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 -1/2 (/.f64 (*.f64 x (/.f64 x y)) (-.f64 x y)))) (sqrt.f64 (*.f64 -1/2 (/.f64 (*.f64 x (/.f64 x y)) (-.f64 x y)))) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (-.f64 x y)) 2)) (/.f64 (*.f64 x (*.f64 (/.f64 x y) -1/2)) (cbrt.f64 (-.f64 x y))) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (sqrt.f64 (-.f64 x y))) (/.f64 (*.f64 x (*.f64 (/.f64 x y) -1/2)) (sqrt.f64 (-.f64 x y))) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 x (/.f64 x y)) 1) (/.f64 -1/2 (-.f64 x y)) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 x (*.f64 (/.f64 x y) -1/2)) 2)) 1) (/.f64 (cbrt.f64 (*.f64 x (*.f64 (/.f64 x y) -1/2))) (-.f64 x y)) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (*.f64 x (*.f64 (/.f64 x y) -1/2))) 1) (/.f64 (sqrt.f64 (*.f64 x (*.f64 (/.f64 x y) -1/2))) (-.f64 x y)) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 -1/2 (pow.f64 (cbrt.f64 (-.f64 x y)) 2)) (/.f64 (*.f64 x (/.f64 x y)) (cbrt.f64 (-.f64 x y))) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 x (/.f64 x y)) (pow.f64 (cbrt.f64 (-.f64 x y)) 2)) (/.f64 -1/2 (cbrt.f64 (-.f64 x y))) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 x (*.f64 (/.f64 x y) -1/2)) 2)) (pow.f64 (cbrt.f64 (-.f64 x y)) 2)) (/.f64 (cbrt.f64 (*.f64 x (*.f64 (/.f64 x y) -1/2))) (cbrt.f64 (-.f64 x y))) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (*.f64 x (*.f64 (/.f64 x y) -1/2))) (pow.f64 (cbrt.f64 (-.f64 x y)) 2)) (/.f64 (sqrt.f64 (*.f64 x (*.f64 (/.f64 x y) -1/2))) (cbrt.f64 (-.f64 x y))) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 -1/2 (sqrt.f64 (-.f64 x y))) (/.f64 (*.f64 x (/.f64 x y)) (sqrt.f64 (-.f64 x y))) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 x (/.f64 x y)) (sqrt.f64 (-.f64 x y))) (/.f64 -1/2 (sqrt.f64 (-.f64 x y))) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 x (*.f64 (/.f64 x y) -1/2)) 2)) (sqrt.f64 (-.f64 x y))) (/.f64 (cbrt.f64 (*.f64 x (*.f64 (/.f64 x y) -1/2))) (sqrt.f64 (-.f64 x y))) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (sqrt.f64 (*.f64 x (*.f64 (/.f64 x y) -1/2))) (sqrt.f64 (-.f64 x y))) (/.f64 (sqrt.f64 (*.f64 x (*.f64 (/.f64 x y) -1/2))) (sqrt.f64 (-.f64 x y))) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 x (*.f64 (/.f64 x y) -1/2)) (-.f64 (pow.f64 x 3) (pow.f64 y 3))) (fma.f64 x x (*.f64 y (+.f64 x y))) (neg.f64 (/.f64 y (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 x (*.f64 (/.f64 x y) -1/2)) (-.f64 (*.f64 x x) (*.f64 y y))) (+.f64 x y) (neg.f64 (/.f64 y (-.f64 x y))))))))

simplify98.0ms (1%)

Algorithm
egg-herbie
Rules
870×fma-def_binary64
677×associate-/l*_binary64
565×associate-/r*_binary64
515×associate-*r*_binary64
462×associate-*l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0156986
1542823
22281635
Stop Event
node limit
Counts
160 → 157
Calls
Call 1
Inputs
1
(+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 y (*.f64 -1 y)) x) (pow.f64 y 2))) 1)
(+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 y (*.f64 -1 y)) x) (pow.f64 y 2))) (+.f64 (*.f64 -2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 y (*.f64 -1 y)) x) (pow.f64 y 2))) (+.f64 (*.f64 -2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (+.f64 1 (/.f64 (*.f64 (+.f64 y (*.f64 -1 y)) (pow.f64 x 3)) (pow.f64 y 4)))))
(*.f64 -2 (/.f64 y x))
(+.f64 (*.f64 -2 (/.f64 (*.f64 y (+.f64 y (*.f64 -1 y))) (pow.f64 x 2))) (*.f64 -2 (/.f64 y x)))
(+.f64 (*.f64 -2 (/.f64 (*.f64 y (+.f64 y (*.f64 -1 y))) (pow.f64 x 2))) (+.f64 (*.f64 -2 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (*.f64 -2 (pow.f64 y 3)) (*.f64 4 (*.f64 (+.f64 y (*.f64 1/4 y)) (pow.f64 y 2)))) (pow.f64 x 3)))))
(+.f64 (*.f64 -2 (/.f64 (*.f64 y (+.f64 y (*.f64 -1 y))) (pow.f64 x 2))) (+.f64 (*.f64 -2 (/.f64 y x)) (+.f64 (*.f64 4 (/.f64 (*.f64 (+.f64 y (*.f64 1/4 y)) (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y)))) (pow.f64 x 4))) (*.f64 -1 (/.f64 (-.f64 (*.f64 -2 (pow.f64 y 3)) (*.f64 4 (*.f64 (+.f64 y (*.f64 1/4 y)) (pow.f64 y 2)))) (pow.f64 x 3))))))
(*.f64 2 (/.f64 y x))
(+.f64 (*.f64 2 (/.f64 (*.f64 y (+.f64 y (*.f64 -1 y))) (pow.f64 x 2))) (*.f64 2 (/.f64 y x)))
(+.f64 (*.f64 -1 (/.f64 (-.f64 (*.f64 2 (pow.f64 y 3)) (*.f64 -4 (*.f64 (+.f64 y (*.f64 1/4 y)) (pow.f64 y 2)))) (pow.f64 x 3))) (+.f64 (*.f64 2 (/.f64 (*.f64 y (+.f64 y (*.f64 -1 y))) (pow.f64 x 2))) (*.f64 2 (/.f64 y x))))
(+.f64 (*.f64 -4 (/.f64 (*.f64 (+.f64 y (*.f64 1/4 y)) (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y)))) (pow.f64 x 4))) (+.f64 (*.f64 -1 (/.f64 (-.f64 (*.f64 2 (pow.f64 y 3)) (*.f64 -4 (*.f64 (+.f64 y (*.f64 1/4 y)) (pow.f64 y 2)))) (pow.f64 x 3))) (+.f64 (*.f64 2 (/.f64 (*.f64 y (+.f64 y (*.f64 -1 y))) (pow.f64 x 2))) (*.f64 2 (/.f64 y x)))))
(*.f64 -2 (/.f64 y x))
(+.f64 (*.f64 -2 (/.f64 y x)) (*.f64 -2 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 x 3))))
(+.f64 (*.f64 (pow.f64 y 3) (-.f64 (*.f64 2 (/.f64 1 (pow.f64 x 3))) (*.f64 4 (/.f64 (+.f64 (*.f64 -1 x) (*.f64 -1/4 x)) (pow.f64 x 4))))) (+.f64 (*.f64 -2 (/.f64 y x)) (*.f64 -2 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 x 3)))))
(+.f64 (*.f64 (pow.f64 y 3) (-.f64 (*.f64 2 (/.f64 1 (pow.f64 x 3))) (*.f64 4 (/.f64 (+.f64 (*.f64 -1 x) (*.f64 -1/4 x)) (pow.f64 x 4))))) (+.f64 (*.f64 -2 (/.f64 y x)) (+.f64 (*.f64 -4 (/.f64 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1/4 x)) (*.f64 (pow.f64 y 4) (+.f64 (*.f64 -1 x) x))) (pow.f64 x 6))) (*.f64 -2 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 x 3))))))
1
(+.f64 1 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (+.f64 1 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)))) (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3))))) (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (+.f64 (/.f64 x y) (*.f64 3/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))))
(+.f64 1 (+.f64 (/.f64 x y) (+.f64 (*.f64 3/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 3/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))))
(*.f64 -1/2 (/.f64 x y))
(-.f64 (*.f64 -1/2 (/.f64 x y)) 1/2)
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 x y)) (*.f64 -1 (/.f64 (-.f64 y (*.f64 -1/2 y)) x))) 1/2)
(-.f64 (+.f64 (*.f64 -1 (/.f64 (*.f64 y (-.f64 y (*.f64 -1/2 y))) (pow.f64 x 2))) (+.f64 (*.f64 -1/2 (/.f64 x y)) (*.f64 -1 (/.f64 (-.f64 y (*.f64 -1/2 y)) x)))) 1/2)
(*.f64 -1/2 (/.f64 x y))
(-.f64 (*.f64 -1/2 (/.f64 x y)) 1/2)
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 x y)) (*.f64 -1 (/.f64 (-.f64 y (*.f64 -1/2 y)) x))) 1/2)
(-.f64 (+.f64 (*.f64 -1 (/.f64 (*.f64 y (-.f64 y (*.f64 -1/2 y))) (pow.f64 x 2))) (+.f64 (*.f64 -1/2 (/.f64 x y)) (*.f64 -1 (/.f64 (-.f64 y (*.f64 -1/2 y)) x)))) 1/2)
(*.f64 -1/2 (/.f64 x y))
(-.f64 (*.f64 -1/2 (/.f64 x y)) 1/2)
(-.f64 (+.f64 (*.f64 -3/2 (/.f64 y x)) (*.f64 -1/2 (/.f64 x y))) 1/2)
(-.f64 (+.f64 (*.f64 -3/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 -3/2 (/.f64 y x)) (*.f64 -1/2 (/.f64 x y)))) 1/2)
1
(+.f64 1 (/.f64 x y))
(-.f64 (+.f64 1 (+.f64 (/.f64 x y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))) (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))
(-.f64 (+.f64 1 (+.f64 (/.f64 x y) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1 (pow.f64 x 2))) x) (pow.f64 y 3)) (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))))) (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))
1
(+.f64 1 (/.f64 x y))
(-.f64 (+.f64 1 (+.f64 (/.f64 x y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))) (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))
(-.f64 (+.f64 1 (+.f64 (/.f64 x y) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1 (pow.f64 x 2))) x) (pow.f64 y 3)) (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))))) (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))
Outputs
1
(+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 y (*.f64 -1 y)) x) (pow.f64 y 2))) 1)
1
(+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 y (*.f64 -1 y)) x) (pow.f64 y 2))) (+.f64 (*.f64 -2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(fma.f64 -1 (/.f64 (*.f64 0 y) (/.f64 (*.f64 y y) x)) (fma.f64 -2 (/.f64 (*.f64 x x) (*.f64 y y)) 1))
(+.f64 (fma.f64 -2 (*.f64 (/.f64 x y) (/.f64 x y)) 1) (/.f64 (/.f64 0 y) y))
(fma.f64 -2 (*.f64 (/.f64 x y) (/.f64 x y)) 1)
(+.f64 (*.f64 -1 (/.f64 (*.f64 (+.f64 y (*.f64 -1 y)) x) (pow.f64 y 2))) (+.f64 (*.f64 -2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (+.f64 1 (/.f64 (*.f64 (+.f64 y (*.f64 -1 y)) (pow.f64 x 3)) (pow.f64 y 4)))))
(fma.f64 -1 (/.f64 (*.f64 0 y) (/.f64 (*.f64 y y) x)) (fma.f64 -2 (/.f64 (*.f64 x x) (*.f64 y y)) 1))
(+.f64 (fma.f64 -2 (*.f64 (/.f64 x y) (/.f64 x y)) 1) (/.f64 (/.f64 0 y) y))
(fma.f64 -2 (*.f64 (/.f64 x y) (/.f64 x y)) 1)
(*.f64 -2 (/.f64 y x))
(/.f64 -2 (/.f64 x y))
(+.f64 (*.f64 -2 (/.f64 (*.f64 y (+.f64 y (*.f64 -1 y))) (pow.f64 x 2))) (*.f64 -2 (/.f64 y x)))
(*.f64 -2 (/.f64 y x))
(/.f64 -2 (/.f64 x y))
(+.f64 (*.f64 -2 (/.f64 (*.f64 y (+.f64 y (*.f64 -1 y))) (pow.f64 x 2))) (+.f64 (*.f64 -2 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (*.f64 -2 (pow.f64 y 3)) (*.f64 4 (*.f64 (+.f64 y (*.f64 1/4 y)) (pow.f64 y 2)))) (pow.f64 x 3)))))
(fma.f64 -2 (/.f64 y (/.f64 (*.f64 x x) (*.f64 0 y))) (fma.f64 -2 (/.f64 y x) (neg.f64 (/.f64 (-.f64 (*.f64 -2 (pow.f64 y 3)) (*.f64 (*.f64 4 (*.f64 5/4 y)) (*.f64 y y))) (pow.f64 x 3)))))
(-.f64 (fma.f64 -2 (/.f64 y x) (/.f64 0 (*.f64 x x))) (/.f64 (fma.f64 -2 (pow.f64 y 3) (*.f64 (*.f64 y y) (*.f64 -5 y))) (pow.f64 x 3)))
(fma.f64 -2 (/.f64 y x) (/.f64 (fma.f64 2 (pow.f64 y 3) (*.f64 5 (pow.f64 y 3))) (pow.f64 x 3)))
(+.f64 (*.f64 -2 (/.f64 (*.f64 y (+.f64 y (*.f64 -1 y))) (pow.f64 x 2))) (+.f64 (*.f64 -2 (/.f64 y x)) (+.f64 (*.f64 4 (/.f64 (*.f64 (+.f64 y (*.f64 1/4 y)) (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y)))) (pow.f64 x 4))) (*.f64 -1 (/.f64 (-.f64 (*.f64 -2 (pow.f64 y 3)) (*.f64 4 (*.f64 (+.f64 y (*.f64 1/4 y)) (pow.f64 y 2)))) (pow.f64 x 3))))))
(fma.f64 -2 (/.f64 y (/.f64 (*.f64 x x) (*.f64 0 y))) (fma.f64 -2 (/.f64 y x) (neg.f64 (/.f64 (-.f64 (*.f64 -2 (pow.f64 y 3)) (*.f64 (*.f64 4 (*.f64 5/4 y)) (*.f64 y y))) (pow.f64 x 3)))))
(-.f64 (fma.f64 -2 (/.f64 y x) (/.f64 0 (*.f64 x x))) (/.f64 (fma.f64 -2 (pow.f64 y 3) (*.f64 (*.f64 y y) (*.f64 -5 y))) (pow.f64 x 3)))
(fma.f64 -2 (/.f64 y x) (/.f64 (fma.f64 2 (pow.f64 y 3) (*.f64 5 (pow.f64 y 3))) (pow.f64 x 3)))
(*.f64 2 (/.f64 y x))
(+.f64 (*.f64 2 (/.f64 (*.f64 y (+.f64 y (*.f64 -1 y))) (pow.f64 x 2))) (*.f64 2 (/.f64 y x)))
(*.f64 2 (/.f64 y x))
(+.f64 (*.f64 -1 (/.f64 (-.f64 (*.f64 2 (pow.f64 y 3)) (*.f64 -4 (*.f64 (+.f64 y (*.f64 1/4 y)) (pow.f64 y 2)))) (pow.f64 x 3))) (+.f64 (*.f64 2 (/.f64 (*.f64 y (+.f64 y (*.f64 -1 y))) (pow.f64 x 2))) (*.f64 2 (/.f64 y x))))
(fma.f64 -1 (/.f64 (+.f64 (*.f64 2 (pow.f64 y 3)) (*.f64 (*.f64 4 (*.f64 5/4 y)) (*.f64 y y))) (pow.f64 x 3)) (*.f64 2 (+.f64 (/.f64 y (/.f64 (*.f64 x x) (*.f64 0 y))) (/.f64 y x))))
(-.f64 (fma.f64 2 (/.f64 y x) (/.f64 0 (*.f64 x x))) (/.f64 (fma.f64 2 (pow.f64 y 3) (*.f64 (*.f64 y y) (*.f64 5 y))) (pow.f64 x 3)))
(fma.f64 2 (/.f64 y x) (/.f64 (fma.f64 -2 (pow.f64 y 3) (*.f64 -5 (pow.f64 y 3))) (pow.f64 x 3)))
(+.f64 (*.f64 -4 (/.f64 (*.f64 (+.f64 y (*.f64 1/4 y)) (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y)))) (pow.f64 x 4))) (+.f64 (*.f64 -1 (/.f64 (-.f64 (*.f64 2 (pow.f64 y 3)) (*.f64 -4 (*.f64 (+.f64 y (*.f64 1/4 y)) (pow.f64 y 2)))) (pow.f64 x 3))) (+.f64 (*.f64 2 (/.f64 (*.f64 y (+.f64 y (*.f64 -1 y))) (pow.f64 x 2))) (*.f64 2 (/.f64 y x)))))
(fma.f64 -1 (/.f64 (+.f64 (*.f64 2 (pow.f64 y 3)) (*.f64 (*.f64 4 (*.f64 5/4 y)) (*.f64 y y))) (pow.f64 x 3)) (*.f64 2 (+.f64 (/.f64 y (/.f64 (*.f64 x x) (*.f64 0 y))) (/.f64 y x))))
(-.f64 (fma.f64 2 (/.f64 y x) (/.f64 0 (*.f64 x x))) (/.f64 (fma.f64 2 (pow.f64 y 3) (*.f64 (*.f64 y y) (*.f64 5 y))) (pow.f64 x 3)))
(fma.f64 2 (/.f64 y x) (/.f64 (fma.f64 -2 (pow.f64 y 3) (*.f64 -5 (pow.f64 y 3))) (pow.f64 x 3)))
(*.f64 -2 (/.f64 y x))
(/.f64 -2 (/.f64 x y))
(+.f64 (*.f64 -2 (/.f64 y x)) (*.f64 -2 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 x 3))))
(*.f64 -2 (/.f64 y x))
(/.f64 -2 (/.f64 x y))
(+.f64 (*.f64 (pow.f64 y 3) (-.f64 (*.f64 2 (/.f64 1 (pow.f64 x 3))) (*.f64 4 (/.f64 (+.f64 (*.f64 -1 x) (*.f64 -1/4 x)) (pow.f64 x 4))))) (+.f64 (*.f64 -2 (/.f64 y x)) (*.f64 -2 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 x 3)))))
(fma.f64 (pow.f64 y 3) (-.f64 (/.f64 2 (pow.f64 x 3)) (*.f64 4 (/.f64 (*.f64 x -5/4) (pow.f64 x 4)))) (*.f64 -2 (+.f64 (/.f64 y x) (/.f64 (*.f64 y y) (/.f64 (pow.f64 x 3) (*.f64 0 x))))))
(fma.f64 (pow.f64 y 3) (+.f64 (/.f64 2 (pow.f64 x 3)) (*.f64 -4 (/.f64 (*.f64 x -5/4) (pow.f64 x 4)))) (fma.f64 -2 (/.f64 y x) (/.f64 0 (pow.f64 x 3))))
(fma.f64 -2 (/.f64 y x) (*.f64 (pow.f64 y 3) (+.f64 (/.f64 2 (pow.f64 x 3)) (/.f64 (*.f64 x 5) (pow.f64 x 4)))))
(+.f64 (*.f64 (pow.f64 y 3) (-.f64 (*.f64 2 (/.f64 1 (pow.f64 x 3))) (*.f64 4 (/.f64 (+.f64 (*.f64 -1 x) (*.f64 -1/4 x)) (pow.f64 x 4))))) (+.f64 (*.f64 -2 (/.f64 y x)) (+.f64 (*.f64 -4 (/.f64 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1/4 x)) (*.f64 (pow.f64 y 4) (+.f64 (*.f64 -1 x) x))) (pow.f64 x 6))) (*.f64 -2 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 x 3))))))
(fma.f64 (pow.f64 y 3) (-.f64 (/.f64 2 (pow.f64 x 3)) (*.f64 4 (/.f64 (*.f64 x -5/4) (pow.f64 x 4)))) (*.f64 -2 (+.f64 (/.f64 y x) (/.f64 (*.f64 y y) (/.f64 (pow.f64 x 3) (*.f64 0 x))))))
(fma.f64 (pow.f64 y 3) (+.f64 (/.f64 2 (pow.f64 x 3)) (*.f64 -4 (/.f64 (*.f64 x -5/4) (pow.f64 x 4)))) (fma.f64 -2 (/.f64 y x) (/.f64 0 (pow.f64 x 3))))
(fma.f64 -2 (/.f64 y x) (*.f64 (pow.f64 y 3) (+.f64 (/.f64 2 (pow.f64 x 3)) (/.f64 (*.f64 x 5) (pow.f64 x 4)))))
1
(+.f64 1 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)))
1
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (+.f64 1 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)))) (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(fma.f64 -1 (/.f64 (*.f64 0 y) (/.f64 (*.f64 y y) x)) (fma.f64 -2 (/.f64 (*.f64 x x) (*.f64 y y)) 1))
(+.f64 (fma.f64 -2 (*.f64 (/.f64 x y) (/.f64 x y)) 1) (/.f64 (/.f64 0 y) y))
(fma.f64 -2 (*.f64 (/.f64 x y) (/.f64 x y)) 1)
(-.f64 (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3))))) (/.f64 (pow.f64 x 2) (pow.f64 y 2)))
(fma.f64 -1 (/.f64 (*.f64 0 y) (/.f64 (*.f64 y y) x)) (fma.f64 -2 (/.f64 (*.f64 x x) (*.f64 y y)) 1))
(+.f64 (fma.f64 -2 (*.f64 (/.f64 x y) (/.f64 x y)) 1) (/.f64 (/.f64 0 y) y))
(fma.f64 -2 (*.f64 (/.f64 x y) (/.f64 x y)) 1)
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (-.f64 (neg.f64 (/.f64 (*.f64 0 x) y)) (fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 y y)) 1)))
(+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (-.f64 (/.f64 0 y) (-.f64 1 (*.f64 (/.f64 x y) (/.f64 x y)))))
(+.f64 (*.f64 (*.f64 (/.f64 x y) (/.f64 x y)) 2) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (-.f64 (neg.f64 (/.f64 (*.f64 0 x) y)) (fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 y y)) 1)))
(+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (-.f64 (/.f64 0 y) (-.f64 1 (*.f64 (/.f64 x y) (/.f64 x y)))))
(+.f64 (*.f64 (*.f64 (/.f64 x y) (/.f64 x y)) 2) -1)
1
(+.f64 1 (/.f64 x y))
(+.f64 1 (+.f64 (/.f64 x y) (*.f64 3/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))))
(+.f64 1 (+.f64 (/.f64 x y) (*.f64 (/.f64 (*.f64 x x) (*.f64 y y)) 3/2)))
(+.f64 1 (fma.f64 (*.f64 (/.f64 x y) (/.f64 x y)) 3/2 (/.f64 x y)))
(fma.f64 (*.f64 (/.f64 x y) (/.f64 x y)) 3/2 (+.f64 1 (/.f64 x y)))
(+.f64 1 (+.f64 (/.f64 x y) (+.f64 (*.f64 3/2 (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 3/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))))
(+.f64 1 (+.f64 (/.f64 x y) (*.f64 3/2 (+.f64 (/.f64 (pow.f64 x 3) (pow.f64 y 3)) (/.f64 (*.f64 x x) (*.f64 y y))))))
(+.f64 1 (fma.f64 3/2 (+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (/.f64 x y)))
(+.f64 (/.f64 x y) (fma.f64 3/2 (fma.f64 (/.f64 x y) (/.f64 x y) (pow.f64 (/.f64 x y) 3)) 1))
(*.f64 -1/2 (/.f64 x y))
(*.f64 (/.f64 x y) -1/2)
(/.f64 -1/2 (/.f64 y x))
(-.f64 (*.f64 -1/2 (/.f64 x y)) 1/2)
(fma.f64 -1/2 (/.f64 x y) -1/2)
(fma.f64 (/.f64 x y) -1/2 -1/2)
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 x y)) (*.f64 -1 (/.f64 (-.f64 y (*.f64 -1/2 y)) x))) 1/2)
(+.f64 (fma.f64 -1/2 (/.f64 x y) (neg.f64 (/.f64 (-.f64 y (*.f64 y -1/2)) x))) -1/2)
(fma.f64 (/.f64 x y) -1/2 (fma.f64 -1 (/.f64 (*.f64 3/2 y) x) -1/2))
(fma.f64 (/.f64 y x) -3/2 (fma.f64 (/.f64 x y) -1/2 -1/2))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (*.f64 y (-.f64 y (*.f64 -1/2 y))) (pow.f64 x 2))) (+.f64 (*.f64 -1/2 (/.f64 x y)) (*.f64 -1 (/.f64 (-.f64 y (*.f64 -1/2 y)) x)))) 1/2)
(+.f64 (fma.f64 -1 (/.f64 (*.f64 y (-.f64 y (*.f64 y -1/2))) (*.f64 x x)) (fma.f64 -1/2 (/.f64 x y) (neg.f64 (/.f64 (-.f64 y (*.f64 y -1/2)) x)))) -1/2)
(+.f64 -1/2 (-.f64 (-.f64 (/.f64 -1/2 (/.f64 y x)) (/.f64 (*.f64 3/2 y) x)) (*.f64 (/.f64 y x) (/.f64 (*.f64 3/2 y) x))))
(fma.f64 -3/2 (*.f64 (+.f64 (/.f64 y x) 1) (/.f64 y x)) (fma.f64 (/.f64 x y) -1/2 -1/2))
(*.f64 -1/2 (/.f64 x y))
(*.f64 (/.f64 x y) -1/2)
(/.f64 -1/2 (/.f64 y x))
(-.f64 (*.f64 -1/2 (/.f64 x y)) 1/2)
(fma.f64 -1/2 (/.f64 x y) -1/2)
(fma.f64 (/.f64 x y) -1/2 -1/2)
(-.f64 (+.f64 (*.f64 -1/2 (/.f64 x y)) (*.f64 -1 (/.f64 (-.f64 y (*.f64 -1/2 y)) x))) 1/2)
(+.f64 (fma.f64 -1/2 (/.f64 x y) (neg.f64 (/.f64 (-.f64 y (*.f64 y -1/2)) x))) -1/2)
(fma.f64 (/.f64 x y) -1/2 (fma.f64 -1 (/.f64 (*.f64 3/2 y) x) -1/2))
(fma.f64 (/.f64 y x) -3/2 (fma.f64 (/.f64 x y) -1/2 -1/2))
(-.f64 (+.f64 (*.f64 -1 (/.f64 (*.f64 y (-.f64 y (*.f64 -1/2 y))) (pow.f64 x 2))) (+.f64 (*.f64 -1/2 (/.f64 x y)) (*.f64 -1 (/.f64 (-.f64 y (*.f64 -1/2 y)) x)))) 1/2)
(+.f64 (fma.f64 -1 (/.f64 (*.f64 y (-.f64 y (*.f64 y -1/2))) (*.f64 x x)) (fma.f64 -1/2 (/.f64 x y) (neg.f64 (/.f64 (-.f64 y (*.f64 y -1/2)) x)))) -1/2)
(+.f64 -1/2 (-.f64 (-.f64 (/.f64 -1/2 (/.f64 y x)) (/.f64 (*.f64 3/2 y) x)) (*.f64 (/.f64 y x) (/.f64 (*.f64 3/2 y) x))))
(fma.f64 -3/2 (*.f64 (+.f64 (/.f64 y x) 1) (/.f64 y x)) (fma.f64 (/.f64 x y) -1/2 -1/2))
(*.f64 -1/2 (/.f64 x y))
(*.f64 (/.f64 x y) -1/2)
(/.f64 -1/2 (/.f64 y x))
(-.f64 (*.f64 -1/2 (/.f64 x y)) 1/2)
(fma.f64 -1/2 (/.f64 x y) -1/2)
(fma.f64 (/.f64 x y) -1/2 -1/2)
(-.f64 (+.f64 (*.f64 -3/2 (/.f64 y x)) (*.f64 -1/2 (/.f64 x y))) 1/2)
(+.f64 (fma.f64 -1/2 (/.f64 x y) (neg.f64 (/.f64 (-.f64 y (*.f64 y -1/2)) x))) -1/2)
(fma.f64 (/.f64 x y) -1/2 (fma.f64 -1 (/.f64 (*.f64 3/2 y) x) -1/2))
(fma.f64 (/.f64 y x) -3/2 (fma.f64 (/.f64 x y) -1/2 -1/2))
(-.f64 (+.f64 (*.f64 -3/2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 -3/2 (/.f64 y x)) (*.f64 -1/2 (/.f64 x y)))) 1/2)
(+.f64 (fma.f64 -1 (/.f64 (*.f64 y (-.f64 y (*.f64 y -1/2))) (*.f64 x x)) (fma.f64 -1/2 (/.f64 x y) (neg.f64 (/.f64 (-.f64 y (*.f64 y -1/2)) x)))) -1/2)
(+.f64 -1/2 (-.f64 (-.f64 (/.f64 -1/2 (/.f64 y x)) (/.f64 (*.f64 3/2 y) x)) (*.f64 (/.f64 y x) (/.f64 (*.f64 3/2 y) x))))
(fma.f64 -3/2 (*.f64 (+.f64 (/.f64 y x) 1) (/.f64 y x)) (fma.f64 (/.f64 x y) -1/2 -1/2))
1
(+.f64 1 (/.f64 x y))
(-.f64 (+.f64 1 (+.f64 (/.f64 x y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))) (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))
(+.f64 1 (+.f64 (/.f64 x y) (*.f64 (/.f64 (*.f64 x x) (*.f64 y y)) 3/2)))
(+.f64 1 (fma.f64 (*.f64 (/.f64 x y) (/.f64 x y)) 3/2 (/.f64 x y)))
(fma.f64 (*.f64 (/.f64 x y) (/.f64 x y)) 3/2 (+.f64 1 (/.f64 x y)))
(-.f64 (+.f64 1 (+.f64 (/.f64 x y) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1 (pow.f64 x 2))) x) (pow.f64 y 3)) (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))))) (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))
(+.f64 1 (+.f64 (/.f64 x y) (*.f64 3/2 (+.f64 (/.f64 (pow.f64 x 3) (pow.f64 y 3)) (/.f64 (*.f64 x x) (*.f64 y y))))))
(+.f64 1 (fma.f64 3/2 (+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (/.f64 x y)))
(+.f64 (/.f64 x y) (fma.f64 3/2 (fma.f64 (/.f64 x y) (/.f64 x y) (pow.f64 (/.f64 x y) 3)) 1))
1
(+.f64 1 (/.f64 x y))
(-.f64 (+.f64 1 (+.f64 (/.f64 x y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))) (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))
(+.f64 1 (+.f64 (/.f64 x y) (*.f64 (/.f64 (*.f64 x x) (*.f64 y y)) 3/2)))
(+.f64 1 (fma.f64 (*.f64 (/.f64 x y) (/.f64 x y)) 3/2 (/.f64 x y)))
(fma.f64 (*.f64 (/.f64 x y) (/.f64 x y)) 3/2 (+.f64 1 (/.f64 x y)))
(-.f64 (+.f64 1 (+.f64 (/.f64 x y) (+.f64 (/.f64 (*.f64 (-.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 -1 (pow.f64 x 2))) x) (pow.f64 y 3)) (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 2)))))) (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))))
(+.f64 1 (+.f64 (/.f64 x y) (*.f64 3/2 (+.f64 (/.f64 (pow.f64 x 3) (pow.f64 y 3)) (/.f64 (*.f64 x x) (*.f64 y y))))))
(+.f64 1 (fma.f64 3/2 (+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (/.f64 (pow.f64 x 3) (pow.f64 y 3))) (/.f64 x y)))
(+.f64 (/.f64 x y) (fma.f64 3/2 (fma.f64 (/.f64 x y) (/.f64 x y) (pow.f64 (/.f64 x y) 3)) 1))

localize19.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 1 (hypot.f64 x y))
0.0b
(/.f64 (-.f64 x y) (hypot.f64 x y))
0.0b
(*.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (-.f64 x y) (hypot.f64 x y)))
0.2b
(*.f64 (+.f64 x y) (*.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (-.f64 x y) (hypot.f64 x y))))
Compiler

Compiled 56 to 16 computations (71.4% saved)

series9.0ms (0.1%)

Counts
3 → 72
Calls

18 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(/.f64 1 (hypot.f64 x y))
1.0ms
y
@inf
(/.f64 1 (hypot.f64 x y))
1.0ms
x
@0
(/.f64 1 (hypot.f64 x y))
1.0ms
y
@0
(/.f64 1 (hypot.f64 x y))
1.0ms
y
@-inf
(/.f64 1 (hypot.f64 x y))

rewrite102.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
796×prod-diff_binary64
668×log-prod_binary64
294×fma-def_binary64
238×log-div_binary64
218×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01145
124739
2374939
Stop Event
node limit
Counts
3 → 125
Calls
Call 1
Inputs
(*.f64 (+.f64 x y) (*.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (-.f64 x y) (hypot.f64 x y))))
(*.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (-.f64 x y) (hypot.f64 x y)))
(/.f64 1 (hypot.f64 x y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x y) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))) (*.f64 y (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))) (*.f64 x (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) x) (*.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) y) (*.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)))) (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 x y)) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 x y) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 y 3)) (-.f64 x y)) (*.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (-.f64 x y)) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 y 3)) (/.f64 (-.f64 x y) (hypot.f64 x y))) (*.f64 (fma.f64 y (-.f64 y x) (*.f64 x x)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (-.f64 x y) (hypot.f64 x y))) (*.f64 (-.f64 x y) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x y) (+.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 (pow.f64 (hypot.f64 x y) 2) (fma.f64 y (-.f64 y x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (+.f64 (pow.f64 x 3) (pow.f64 y 3))) (*.f64 (hypot.f64 x y) (fma.f64 y (-.f64 y x) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x y) (-.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (-.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (hypot.f64 x y) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 y 3)) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))) (fma.f64 y (-.f64 y x) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))) (-.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (+.f64 x y)) (hypot.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (/.f64 (-.f64 x y) (hypot.f64 x y))) (hypot.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) (+.f64 (pow.f64 x 3) (pow.f64 y 3))) (fma.f64 y (-.f64 y x) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) (-.f64 (*.f64 x x) (*.f64 y y))) (-.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) 1) (/.f64 (hypot.f64 x y) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (-.f64 x y)) (hypot.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (neg.f64 (-.f64 x y))) (neg.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 x y) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 x y) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 x y) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (sqrt.f64 (-.f64 x y)) (hypot.f64 x y)) (sqrt.f64 (+.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (+.f64 x y) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 x y)) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 x y) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 x y) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 x y) 3) (pow.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) 3) (pow.f64 (+.f64 x y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 x y) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 x y) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (+.f64 x y) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 x y) (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) (*.f64 y (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) (*.f64 x (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) x (*.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) y (*.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) x))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)))) (cbrt.f64 (exp.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)))))) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 x (pow.f64 (hypot.f64 x y) 2)) (/.f64 y (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (/.f64 x (hypot.f64 x y)) (hypot.f64 x y)) (/.f64 (/.f64 y (hypot.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (hypot.f64 x y) (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (pow.f64 (hypot.f64 x y) 2) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (hypot.f64 x y) (/.f64 (-.f64 x y) (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x y) (/.f64 (hypot.f64 x y) (/.f64 1 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (hypot.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (-.f64 x y)) 2) (/.f64 (pow.f64 (hypot.f64 x y) 2) (cbrt.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))) 2) (/.f64 (hypot.f64 x y) (cbrt.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (-.f64 x y)) (/.f64 (pow.f64 (hypot.f64 x y) 2) (sqrt.f64 (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))) (/.f64 (hypot.f64 x y) (sqrt.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (*.f64 (neg.f64 (hypot.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (*.f64 (/.f64 (hypot.f64 x y) (-.f64 x y)) (neg.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 x y)) (neg.f64 (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 x y)) (*.f64 (neg.f64 (hypot.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 x y)) (*.f64 (hypot.f64 x y) (neg.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x 3) (pow.f64 y 3)) (*.f64 (pow.f64 (hypot.f64 x y) 2) (fma.f64 y (+.f64 x y) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (*.f64 y y)) (*.f64 (pow.f64 (hypot.f64 x y) 2) (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 (-.f64 x y) (hypot.f64 x y))) (neg.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 x y)) 1) (*.f64 (neg.f64 (hypot.f64 x y)) (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (neg.f64 (-.f64 x y))) (*.f64 (neg.f64 (hypot.f64 x y)) (neg.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x y) -1) (*.f64 (hypot.f64 x y) (neg.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 x y)) -1) (*.f64 (neg.f64 (hypot.f64 x y)) (neg.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (sqrt.f64 (hypot.f64 x y))) (sqrt.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) 1) (hypot.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) (cbrt.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (/.f64 (-.f64 x y) (hypot.f64 x y))) (neg.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (-.f64 x y)) (/.f64 1 (hypot.f64 x y))) (neg.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 1 (hypot.f64 x y)) (neg.f64 (-.f64 x y))) (neg.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) -1) (neg.f64 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (-.f64 x y)) (hypot.f64 x y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) 3) (pow.f64 (hypot.f64 x y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 1 (hypot.f64 x y)) 3) (pow.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) 3) (pow.f64 (/.f64 1 (hypot.f64 x y)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (-.f64 x y) (pow.f64 (hypot.f64 x y) -2))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (/.f64 1 (hypot.f64 x y)))) (cbrt.f64 (exp.f64 (/.f64 1 (hypot.f64 x y)))))) (log.f64 (cbrt.f64 (exp.f64 (/.f64 1 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (hypot.f64 x y))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (hypot.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 1 (hypot.f64 x y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (hypot.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (hypot.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 1 (hypot.f64 x y))) (cbrt.f64 (pow.f64 (hypot.f64 x y) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (hypot.f64 x y) -2)) (cbrt.f64 (/.f64 1 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 x y) -1/2) (pow.f64 (hypot.f64 x y) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (neg.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) -1) (pow.f64 (cbrt.f64 (hypot.f64 x y)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (hypot.f64 x y)) -1) (pow.f64 (sqrt.f64 (hypot.f64 x y)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 x y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (hypot.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 x y) 2) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 1 (hypot.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 1 (hypot.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 x y) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (hypot.f64 x y) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 1 (hypot.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 1 (hypot.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log.f64 (hypot.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (hypot.f64 x y)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (hypot.f64 x y))) 1))))))

simplify65.0ms (0.6%)

Algorithm
egg-herbie
Rules
685×associate-/l*_binary64
540×associate-/r*_binary64
490×associate-*r*_binary64
445×associate-*l*_binary64
234×associate-*l/_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02111743
16791596
225101466
Stop Event
node limit
Counts
197 → 199
Calls
Call 1
Inputs
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) 1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6))) (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) 1)
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x)))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))))))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2)))))))
1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4))) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y))))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(/.f64 -1 y)
(-.f64 (/.f64 x (pow.f64 y 2)) (/.f64 1 y))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 3)) (/.f64 x (pow.f64 y 2))) (/.f64 1 y))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 3)) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))) (/.f64 1 y))
(/.f64 1 x)
(+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2))))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2)))))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 4)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2))))))
(/.f64 1 x)
(+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2))))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2)))))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 4)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2))))))
(/.f64 1 x)
(+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2))))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2)))))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 4)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2))))))
(/.f64 -1 y)
(-.f64 (/.f64 x (pow.f64 y 2)) (/.f64 1 y))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 3)) (/.f64 x (pow.f64 y 2))) (/.f64 1 y))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 3)) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))) (/.f64 1 y))
(/.f64 -1 y)
(-.f64 (/.f64 x (pow.f64 y 2)) (/.f64 1 y))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 3)) (/.f64 x (pow.f64 y 2))) (/.f64 1 y))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 3)) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))) (/.f64 1 y))
(/.f64 1 y)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (/.f64 1 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (*.f64 3/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5)))))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (+.f64 (*.f64 3/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5))) (*.f64 -5/16 (/.f64 (pow.f64 x 6) (pow.f64 y 7))))))
(/.f64 1 x)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1/8 (pow.f64 y 4)) (*.f64 -1/4 (pow.f64 y 4))) (pow.f64 x 5))) (/.f64 1 x)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1/8 (pow.f64 y 4)) (*.f64 -1/4 (pow.f64 y 4))) (pow.f64 x 5))) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 1/8 (pow.f64 y 6)) (*.f64 -1/2 (*.f64 (+.f64 (*.f64 -1/8 (pow.f64 y 4)) (*.f64 -1/4 (pow.f64 y 4))) (pow.f64 y 2)))) (pow.f64 x 7))) (/.f64 1 x))))
(/.f64 -1 x)
(-.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))
(-.f64 (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 5))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 y 4) (pow.f64 x 5))) (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))))) (/.f64 1 x))
(-.f64 (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 y 4) (pow.f64 x 5))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 5))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (*.f64 -1/8 (pow.f64 y 4)) (*.f64 -1/4 (pow.f64 y 4))) (pow.f64 y 2)) (pow.f64 x 7))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (*.f64 1/8 (/.f64 (pow.f64 y 6) (pow.f64 x 7))))))) (/.f64 1 x))
(/.f64 1 x)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (*.f64 3/8 (/.f64 (pow.f64 y 4) (pow.f64 x 5))) (/.f64 1 x)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (*.f64 -5/16 (/.f64 (pow.f64 y 6) (pow.f64 x 7))) (+.f64 (*.f64 3/8 (/.f64 (pow.f64 y 4) (pow.f64 x 5))) (/.f64 1 x))))
(/.f64 1 y)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (/.f64 1 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1/8 (pow.f64 x 4)) (*.f64 -1/4 (pow.f64 x 4))) (pow.f64 y 5)))))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1/8 (pow.f64 x 4)) (*.f64 -1/4 (pow.f64 x 4))) (pow.f64 y 5))) (*.f64 -1 (/.f64 (+.f64 (*.f64 1/8 (pow.f64 x 6)) (*.f64 -1/2 (*.f64 (+.f64 (*.f64 -1/8 (pow.f64 x 4)) (*.f64 -1/4 (pow.f64 x 4))) (pow.f64 x 2)))) (pow.f64 y 7))))))
(/.f64 -1 y)
(-.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (/.f64 1 y))
(-.f64 (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 x 4) (pow.f64 y 5))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5))))) (/.f64 1 y))
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 x 6) (pow.f64 y 7))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 x 4) (pow.f64 y 5))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (*.f64 -1/8 (pow.f64 x 4)) (*.f64 -1/4 (pow.f64 x 4))) (pow.f64 x 2)) (pow.f64 y 7))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5))))))) (/.f64 1 y))
Outputs
-1
(-.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1)
(fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) -1)
(fma.f64 2 (/.f64 x (/.f64 (*.f64 y y) x)) -1)
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) 1)
(+.f64 (fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)))) -1)
(fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) (fma.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)) -1))
(fma.f64 2 (/.f64 x (/.f64 (*.f64 y y) x)) (fma.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)) -1))
(-.f64 (+.f64 (*.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6))) (+.f64 (*.f64 2 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) 1)
(+.f64 (fma.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6)) (fma.f64 2 (/.f64 (*.f64 x x) (*.f64 y y)) (*.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4))))) -1)
(fma.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6)) (fma.f64 2 (*.f64 (/.f64 x y) (/.f64 x y)) (fma.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)) -1)))
(fma.f64 2 (/.f64 (pow.f64 x 6) (pow.f64 y 6)) (fma.f64 2 (/.f64 x (/.f64 (*.f64 y y) x)) (fma.f64 -2 (/.f64 (pow.f64 x 4) (pow.f64 y 4)) -1)))
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (/.f64 y x) (+.f64 1 (/.f64 (neg.f64 y) x)))
(+.f64 (/.f64 y x) (-.f64 1 (/.f64 y x)))
(+.f64 1 (*.f64 0 (/.f64 y x)))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (/.f64 y x) (-.f64 (+.f64 1 (*.f64 -1 (+.f64 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 y x)))) (/.f64 (*.f64 y y) (*.f64 x x))))
(+.f64 (/.f64 y x) (-.f64 (-.f64 (-.f64 1 (*.f64 (/.f64 y x) (/.f64 y x))) (/.f64 y x)) (*.f64 (/.f64 y x) (/.f64 y x))))
(+.f64 1 (-.f64 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))) (*.f64 0 (/.f64 y x))))
(-.f64 (+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 -1 (/.f64 y x)))))) (/.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (/.f64 y x) (-.f64 (+.f64 1 (*.f64 -1 (+.f64 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 y x)))) (/.f64 (*.f64 y y) (*.f64 x x))))
(+.f64 (/.f64 y x) (-.f64 (-.f64 (-.f64 1 (*.f64 (/.f64 y x) (/.f64 y x))) (/.f64 y x)) (*.f64 (/.f64 y x) (/.f64 y x))))
(+.f64 1 (-.f64 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))) (*.f64 0 (/.f64 y x))))
1
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(+.f64 (/.f64 y x) (+.f64 1 (/.f64 (neg.f64 y) x)))
(+.f64 (/.f64 y x) (-.f64 1 (/.f64 y x)))
(+.f64 1 (*.f64 0 (/.f64 y x)))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2))))))
(+.f64 (/.f64 y x) (-.f64 (+.f64 1 (*.f64 -1 (+.f64 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 y x)))) (/.f64 (*.f64 y y) (*.f64 x x))))
(+.f64 (/.f64 y x) (-.f64 (-.f64 (-.f64 1 (*.f64 (/.f64 y x) (/.f64 y x))) (/.f64 y x)) (*.f64 (/.f64 y x) (/.f64 y x))))
(+.f64 1 (-.f64 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))) (*.f64 0 (/.f64 y x))))
(+.f64 (/.f64 y x) (+.f64 1 (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 y 2) (+.f64 y (*.f64 -1 y))) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 y x)) (*.f64 -1 (/.f64 (-.f64 (pow.f64 y 2) (*.f64 -1 (pow.f64 y 2))) (pow.f64 x 2)))))))
(+.f64 (/.f64 y x) (-.f64 (+.f64 1 (*.f64 -1 (+.f64 (/.f64 (*.f64 y y) (*.f64 x x)) (/.f64 y x)))) (/.f64 (*.f64 y y) (*.f64 x x))))
(+.f64 (/.f64 y x) (-.f64 (-.f64 (-.f64 1 (*.f64 (/.f64 y x) (/.f64 y x))) (/.f64 y x)) (*.f64 (/.f64 y x) (/.f64 y x))))
(+.f64 1 (-.f64 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))) (*.f64 0 (/.f64 y x))))
1
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(+.f64 1 (/.f64 (*.f64 -2 (*.f64 y y)) (*.f64 x x)))
(fma.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)) 1)
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 1 (fma.f64 -2 (/.f64 (*.f64 y y) (*.f64 x x)) (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)))))
(+.f64 1 (fma.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (*.f64 (/.f64 -2 x) (/.f64 (*.f64 y y) x))))
(+.f64 1 (fma.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)))))
(+.f64 1 (+.f64 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4))) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
(+.f64 1 (fma.f64 -2 (/.f64 (*.f64 y y) (*.f64 x x)) (fma.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6))))))
(+.f64 (fma.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)) 1) (fma.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (/.f64 -2 (/.f64 (pow.f64 x 6) (pow.f64 y 6)))))
(+.f64 (fma.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)) 1) (fma.f64 2 (/.f64 (pow.f64 y 4) (pow.f64 x 4)) (*.f64 -2 (/.f64 (pow.f64 y 6) (pow.f64 x 6)))))
-1
(-.f64 (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y))) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (*.f64 -1 (/.f64 x y)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (-.f64 (*.f64 0 (/.f64 x y)) (fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 y y)) 1)))
(+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (-.f64 -1 (/.f64 (*.f64 (neg.f64 x) x) (*.f64 y y))))
(+.f64 (fma.f64 (/.f64 x y) (/.f64 x y) (/.f64 x (/.f64 (*.f64 y y) x))) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (/.f64 x y) (+.f64 (*.f64 -1 (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3))) (*.f64 -1 (/.f64 x y))))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (-.f64 (*.f64 0 (/.f64 x y)) (fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 y y)) 1)))
(+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (-.f64 -1 (/.f64 (*.f64 (neg.f64 x) x) (*.f64 y y))))
(+.f64 (fma.f64 (/.f64 x y) (/.f64 x y) (/.f64 x (/.f64 (*.f64 y y) x))) -1)
-1
(-.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) 1)
-1
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (-.f64 (*.f64 0 (/.f64 x y)) (fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 y y)) 1)))
(+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (-.f64 -1 (/.f64 (*.f64 (neg.f64 x) x) (*.f64 y y))))
(+.f64 (fma.f64 (/.f64 x y) (/.f64 x y) (/.f64 x (/.f64 (*.f64 y y) x))) -1)
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1 x) x) y)) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (*.f64 -1 x) x)) (pow.f64 y 3)))) (+.f64 (*.f64 -1 (/.f64 (pow.f64 x 2) (pow.f64 y 2))) 1))
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (-.f64 (*.f64 0 (/.f64 x y)) (fma.f64 -1 (/.f64 (*.f64 x x) (*.f64 y y)) 1)))
(+.f64 (*.f64 (/.f64 x y) (/.f64 x y)) (-.f64 -1 (/.f64 (*.f64 (neg.f64 x) x) (*.f64 y y))))
(+.f64 (fma.f64 (/.f64 x y) (/.f64 x y) (/.f64 x (/.f64 (*.f64 y y) x))) -1)
(/.f64 -1 y)
(-.f64 (/.f64 x (pow.f64 y 2)) (/.f64 1 y))
(-.f64 (/.f64 x (*.f64 y y)) (/.f64 1 y))
(+.f64 (/.f64 x (*.f64 y y)) (/.f64 -1 y))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 3)) (/.f64 x (pow.f64 y 2))) (/.f64 1 y))
(-.f64 (+.f64 (/.f64 x (*.f64 y y)) (/.f64 (*.f64 x x) (pow.f64 y 3))) (/.f64 1 y))
(+.f64 (+.f64 (/.f64 x (*.f64 y y)) (/.f64 -1 y)) (/.f64 x (/.f64 (pow.f64 y 3) x)))
(+.f64 (*.f64 (+.f64 (/.f64 x y) 1) (/.f64 x (*.f64 y y))) (/.f64 -1 y))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 3)) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))) (/.f64 1 y))
(+.f64 (/.f64 (*.f64 x x) (pow.f64 y 3)) (-.f64 (+.f64 (/.f64 x (*.f64 y y)) (neg.f64 (/.f64 (pow.f64 x 3) (pow.f64 y 4)))) (/.f64 1 y)))
(+.f64 (/.f64 x (/.f64 (pow.f64 y 3) x)) (+.f64 (-.f64 (/.f64 x (*.f64 y y)) (/.f64 (pow.f64 x 3) (pow.f64 y 4))) (/.f64 -1 y)))
(+.f64 (-.f64 (*.f64 (+.f64 (/.f64 x y) 1) (/.f64 x (*.f64 y y))) (/.f64 (pow.f64 x 3) (pow.f64 y 4))) (/.f64 -1 y))
(/.f64 1 x)
(+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2))))
(+.f64 (/.f64 1 x) (/.f64 (neg.f64 y) (*.f64 x x)))
(-.f64 (/.f64 1 x) (/.f64 y (*.f64 x x)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2)))))
(fma.f64 -1 (/.f64 (*.f64 y y) (pow.f64 x 3)) (+.f64 (/.f64 1 x) (/.f64 (neg.f64 y) (*.f64 x x))))
(-.f64 (-.f64 (/.f64 1 x) (/.f64 y (*.f64 x x))) (/.f64 (*.f64 y y) (pow.f64 x 3)))
(+.f64 (/.f64 1 x) (*.f64 (/.f64 -1 x) (*.f64 (+.f64 1 (/.f64 y x)) (/.f64 y x))))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 4)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2))))))
(+.f64 (fma.f64 -1 (/.f64 (*.f64 y y) (pow.f64 x 3)) (+.f64 (/.f64 1 x) (/.f64 (neg.f64 y) (*.f64 x x)))) (/.f64 (pow.f64 y 3) (pow.f64 x 4)))
(+.f64 (-.f64 (/.f64 1 x) (/.f64 y (*.f64 x x))) (-.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 4)) (/.f64 (*.f64 y y) (pow.f64 x 3))))
(/.f64 1 x)
(+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2))))
(+.f64 (/.f64 1 x) (/.f64 (neg.f64 y) (*.f64 x x)))
(-.f64 (/.f64 1 x) (/.f64 y (*.f64 x x)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2)))))
(fma.f64 -1 (/.f64 (*.f64 y y) (pow.f64 x 3)) (+.f64 (/.f64 1 x) (/.f64 (neg.f64 y) (*.f64 x x))))
(-.f64 (-.f64 (/.f64 1 x) (/.f64 y (*.f64 x x))) (/.f64 (*.f64 y y) (pow.f64 x 3)))
(+.f64 (/.f64 1 x) (*.f64 (/.f64 -1 x) (*.f64 (+.f64 1 (/.f64 y x)) (/.f64 y x))))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 4)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2))))))
(+.f64 (fma.f64 -1 (/.f64 (*.f64 y y) (pow.f64 x 3)) (+.f64 (/.f64 1 x) (/.f64 (neg.f64 y) (*.f64 x x)))) (/.f64 (pow.f64 y 3) (pow.f64 x 4)))
(+.f64 (-.f64 (/.f64 1 x) (/.f64 y (*.f64 x x))) (-.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 4)) (/.f64 (*.f64 y y) (pow.f64 x 3))))
(/.f64 1 x)
(+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2))))
(+.f64 (/.f64 1 x) (/.f64 (neg.f64 y) (*.f64 x x)))
(-.f64 (/.f64 1 x) (/.f64 y (*.f64 x x)))
(+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2)))))
(fma.f64 -1 (/.f64 (*.f64 y y) (pow.f64 x 3)) (+.f64 (/.f64 1 x) (/.f64 (neg.f64 y) (*.f64 x x))))
(-.f64 (-.f64 (/.f64 1 x) (/.f64 y (*.f64 x x))) (/.f64 (*.f64 y y) (pow.f64 x 3)))
(+.f64 (/.f64 1 x) (*.f64 (/.f64 -1 x) (*.f64 (+.f64 1 (/.f64 y x)) (/.f64 y x))))
(+.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 4)) (+.f64 (*.f64 -1 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (/.f64 1 x) (*.f64 -1 (/.f64 y (pow.f64 x 2))))))
(+.f64 (fma.f64 -1 (/.f64 (*.f64 y y) (pow.f64 x 3)) (+.f64 (/.f64 1 x) (/.f64 (neg.f64 y) (*.f64 x x)))) (/.f64 (pow.f64 y 3) (pow.f64 x 4)))
(+.f64 (-.f64 (/.f64 1 x) (/.f64 y (*.f64 x x))) (-.f64 (/.f64 (pow.f64 y 3) (pow.f64 x 4)) (/.f64 (*.f64 y y) (pow.f64 x 3))))
(/.f64 -1 y)
(-.f64 (/.f64 x (pow.f64 y 2)) (/.f64 1 y))
(-.f64 (/.f64 x (*.f64 y y)) (/.f64 1 y))
(+.f64 (/.f64 x (*.f64 y y)) (/.f64 -1 y))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 3)) (/.f64 x (pow.f64 y 2))) (/.f64 1 y))
(-.f64 (+.f64 (/.f64 x (*.f64 y y)) (/.f64 (*.f64 x x) (pow.f64 y 3))) (/.f64 1 y))
(+.f64 (+.f64 (/.f64 x (*.f64 y y)) (/.f64 -1 y)) (/.f64 x (/.f64 (pow.f64 y 3) x)))
(+.f64 (*.f64 (+.f64 (/.f64 x y) 1) (/.f64 x (*.f64 y y))) (/.f64 -1 y))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 3)) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))) (/.f64 1 y))
(+.f64 (/.f64 (*.f64 x x) (pow.f64 y 3)) (-.f64 (+.f64 (/.f64 x (*.f64 y y)) (neg.f64 (/.f64 (pow.f64 x 3) (pow.f64 y 4)))) (/.f64 1 y)))
(+.f64 (/.f64 x (/.f64 (pow.f64 y 3) x)) (+.f64 (-.f64 (/.f64 x (*.f64 y y)) (/.f64 (pow.f64 x 3) (pow.f64 y 4))) (/.f64 -1 y)))
(+.f64 (-.f64 (*.f64 (+.f64 (/.f64 x y) 1) (/.f64 x (*.f64 y y))) (/.f64 (pow.f64 x 3) (pow.f64 y 4))) (/.f64 -1 y))
(/.f64 -1 y)
(-.f64 (/.f64 x (pow.f64 y 2)) (/.f64 1 y))
(-.f64 (/.f64 x (*.f64 y y)) (/.f64 1 y))
(+.f64 (/.f64 x (*.f64 y y)) (/.f64 -1 y))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 3)) (/.f64 x (pow.f64 y 2))) (/.f64 1 y))
(-.f64 (+.f64 (/.f64 x (*.f64 y y)) (/.f64 (*.f64 x x) (pow.f64 y 3))) (/.f64 1 y))
(+.f64 (+.f64 (/.f64 x (*.f64 y y)) (/.f64 -1 y)) (/.f64 x (/.f64 (pow.f64 y 3) x)))
(+.f64 (*.f64 (+.f64 (/.f64 x y) 1) (/.f64 x (*.f64 y y))) (/.f64 -1 y))
(-.f64 (+.f64 (/.f64 (pow.f64 x 2) (pow.f64 y 3)) (+.f64 (/.f64 x (pow.f64 y 2)) (*.f64 -1 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))) (/.f64 1 y))
(+.f64 (/.f64 (*.f64 x x) (pow.f64 y 3)) (-.f64 (+.f64 (/.f64 x (*.f64 y y)) (neg.f64 (/.f64 (pow.f64 x 3) (pow.f64 y 4)))) (/.f64 1 y)))
(+.f64 (/.f64 x (/.f64 (pow.f64 y 3) x)) (+.f64 (-.f64 (/.f64 x (*.f64 y y)) (/.f64 (pow.f64 x 3) (pow.f64 y 4))) (/.f64 -1 y)))
(+.f64 (-.f64 (*.f64 (+.f64 (/.f64 x y) 1) (/.f64 x (*.f64 y y))) (/.f64 (pow.f64 x 3) (pow.f64 y 4))) (/.f64 -1 y))
(/.f64 1 y)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (/.f64 1 y))
(fma.f64 -1/2 (/.f64 (*.f64 x x) (pow.f64 y 3)) (/.f64 1 y))
(fma.f64 (/.f64 x (/.f64 (pow.f64 y 3) x)) -1/2 (/.f64 1 y))
(fma.f64 (/.f64 (*.f64 x x) (pow.f64 y 3)) -1/2 (/.f64 1 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (*.f64 3/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5)))))
(+.f64 (fma.f64 -1/2 (/.f64 (*.f64 x x) (pow.f64 y 3)) (/.f64 1 y)) (*.f64 3/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5))))
(fma.f64 (/.f64 x (/.f64 (pow.f64 y 3) x)) -1/2 (fma.f64 3/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5)) (/.f64 1 y)))
(fma.f64 (/.f64 (*.f64 x x) (pow.f64 y 3)) -1/2 (fma.f64 3/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5)) (/.f64 1 y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (+.f64 (*.f64 3/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5))) (*.f64 -5/16 (/.f64 (pow.f64 x 6) (pow.f64 y 7))))))
(+.f64 (fma.f64 -1/2 (/.f64 (*.f64 x x) (pow.f64 y 3)) (/.f64 1 y)) (fma.f64 3/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5)) (*.f64 -5/16 (/.f64 (pow.f64 x 6) (pow.f64 y 7)))))
(+.f64 (fma.f64 (/.f64 x (/.f64 (pow.f64 y 3) x)) -1/2 (/.f64 1 y)) (fma.f64 3/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5)) (/.f64 -5/16 (/.f64 (pow.f64 y 7) (pow.f64 x 6)))))
(+.f64 (fma.f64 (/.f64 (*.f64 x x) (pow.f64 y 3)) -1/2 (/.f64 1 y)) (fma.f64 3/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5)) (*.f64 (/.f64 -5/16 (pow.f64 y 7)) (pow.f64 x 6))))
(/.f64 1 x)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))
(fma.f64 -1/2 (/.f64 (*.f64 y y) (pow.f64 x 3)) (/.f64 1 x))
(fma.f64 (/.f64 (*.f64 y y) (pow.f64 x 3)) -1/2 (/.f64 1 x))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1/8 (pow.f64 y 4)) (*.f64 -1/4 (pow.f64 y 4))) (pow.f64 x 5))) (/.f64 1 x)))
(fma.f64 -1/2 (/.f64 (*.f64 y y) (pow.f64 x 3)) (fma.f64 -1 (/.f64 (*.f64 (pow.f64 y 4) -3/8) (pow.f64 x 5)) (/.f64 1 x)))
(fma.f64 (/.f64 (*.f64 y y) (pow.f64 x 3)) -1/2 (-.f64 (/.f64 1 x) (/.f64 (pow.f64 y 4) (/.f64 (pow.f64 x 5) -3/8))))
(fma.f64 (/.f64 (*.f64 y y) (pow.f64 x 3)) -1/2 (fma.f64 3/8 (/.f64 (pow.f64 y 4) (pow.f64 x 5)) (/.f64 1 x)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1/8 (pow.f64 y 4)) (*.f64 -1/4 (pow.f64 y 4))) (pow.f64 x 5))) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 1/8 (pow.f64 y 6)) (*.f64 -1/2 (*.f64 (+.f64 (*.f64 -1/8 (pow.f64 y 4)) (*.f64 -1/4 (pow.f64 y 4))) (pow.f64 y 2)))) (pow.f64 x 7))) (/.f64 1 x))))
(fma.f64 -1/2 (/.f64 (*.f64 y y) (pow.f64 x 3)) (fma.f64 -1 (/.f64 (*.f64 (pow.f64 y 4) -3/8) (pow.f64 x 5)) (fma.f64 -1 (/.f64 (fma.f64 1/8 (pow.f64 y 6) (*.f64 -1/2 (*.f64 (*.f64 y y) (*.f64 (pow.f64 y 4) -3/8)))) (pow.f64 x 7)) (/.f64 1 x))))
(fma.f64 (/.f64 (*.f64 y y) (pow.f64 x 3)) -1/2 (-.f64 (-.f64 (/.f64 1 x) (/.f64 (fma.f64 (pow.f64 y 6) 1/8 (*.f64 -1/2 (*.f64 (pow.f64 y 6) -3/8))) (pow.f64 x 7))) (/.f64 (pow.f64 y 4) (/.f64 (pow.f64 x 5) -3/8))))
(-.f64 (fma.f64 (/.f64 (*.f64 y y) (pow.f64 x 3)) -1/2 (fma.f64 3/8 (/.f64 (pow.f64 y 4) (pow.f64 x 5)) (/.f64 1 x))) (/.f64 (fma.f64 (pow.f64 y 6) 1/8 (*.f64 (pow.f64 y 6) 3/16)) (pow.f64 x 7)))
(/.f64 -1 x)
(-.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))
(-.f64 (/.f64 (*.f64 1/2 (*.f64 y y)) (pow.f64 x 3)) (/.f64 1 x))
(fma.f64 (/.f64 (*.f64 y y) (pow.f64 x 3)) 1/2 (/.f64 -1 x))
(-.f64 (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 5))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 y 4) (pow.f64 x 5))) (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))))) (/.f64 1 x))
(-.f64 (fma.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 5)) (fma.f64 -1/4 (/.f64 (pow.f64 y 4) (pow.f64 x 5)) (/.f64 (*.f64 1/2 (*.f64 y y)) (pow.f64 x 3)))) (/.f64 1 x))
(+.f64 (*.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 5)) -3/8) (fma.f64 (/.f64 (*.f64 y y) (pow.f64 x 3)) 1/2 (/.f64 -1 x)))
(-.f64 (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 y 4) (pow.f64 x 5))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 5))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (*.f64 -1/8 (pow.f64 y 4)) (*.f64 -1/4 (pow.f64 y 4))) (pow.f64 y 2)) (pow.f64 x 7))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (*.f64 1/8 (/.f64 (pow.f64 y 6) (pow.f64 x 7))))))) (/.f64 1 x))
(-.f64 (fma.f64 -1/4 (/.f64 (pow.f64 y 4) (pow.f64 x 5)) (fma.f64 -1/8 (/.f64 (pow.f64 y 4) (pow.f64 x 5)) (fma.f64 -1/2 (/.f64 (*.f64 (*.f64 y y) (*.f64 (pow.f64 y 4) -3/8)) (pow.f64 x 7)) (fma.f64 1/2 (/.f64 (*.f64 y y) (pow.f64 x 3)) (*.f64 1/8 (/.f64 (pow.f64 y 6) (pow.f64 x 7))))))) (/.f64 1 x))
(+.f64 (/.f64 -1 x) (+.f64 (fma.f64 -1/2 (/.f64 (*.f64 (pow.f64 y 6) -3/8) (pow.f64 x 7)) (fma.f64 (/.f64 (*.f64 y y) (pow.f64 x 3)) 1/2 (/.f64 1/8 (/.f64 (pow.f64 x 7) (pow.f64 y 6))))) (*.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 5)) -3/8)))
(+.f64 (/.f64 -1 x) (+.f64 (*.f64 (/.f64 (pow.f64 y 4) (pow.f64 x 5)) -3/8) (+.f64 (/.f64 (*.f64 (pow.f64 y 6) 3/16) (pow.f64 x 7)) (fma.f64 (/.f64 (*.f64 y y) (pow.f64 x 3)) 1/2 (/.f64 (pow.f64 y 6) (/.f64 (pow.f64 x 7) 1/8))))))
(/.f64 1 x)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (/.f64 1 x))
(fma.f64 -1/2 (/.f64 (*.f64 y y) (pow.f64 x 3)) (/.f64 1 x))
(fma.f64 (/.f64 (*.f64 y y) (pow.f64 x 3)) -1/2 (/.f64 1 x))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (*.f64 3/8 (/.f64 (pow.f64 y 4) (pow.f64 x 5))) (/.f64 1 x)))
(fma.f64 -1/2 (/.f64 (*.f64 y y) (pow.f64 x 3)) (fma.f64 -1 (/.f64 (*.f64 (pow.f64 y 4) -3/8) (pow.f64 x 5)) (/.f64 1 x)))
(fma.f64 (/.f64 (*.f64 y y) (pow.f64 x 3)) -1/2 (-.f64 (/.f64 1 x) (/.f64 (pow.f64 y 4) (/.f64 (pow.f64 x 5) -3/8))))
(fma.f64 (/.f64 (*.f64 y y) (pow.f64 x 3)) -1/2 (fma.f64 3/8 (/.f64 (pow.f64 y 4) (pow.f64 x 5)) (/.f64 1 x)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 y 2) (pow.f64 x 3))) (+.f64 (*.f64 -5/16 (/.f64 (pow.f64 y 6) (pow.f64 x 7))) (+.f64 (*.f64 3/8 (/.f64 (pow.f64 y 4) (pow.f64 x 5))) (/.f64 1 x))))
(fma.f64 -1/2 (/.f64 (*.f64 y y) (pow.f64 x 3)) (fma.f64 -5/16 (/.f64 (pow.f64 y 6) (pow.f64 x 7)) (fma.f64 3/8 (/.f64 (pow.f64 y 4) (pow.f64 x 5)) (/.f64 1 x))))
(fma.f64 (/.f64 (*.f64 y y) (pow.f64 x 3)) -1/2 (fma.f64 -5/16 (/.f64 (pow.f64 y 6) (pow.f64 x 7)) (fma.f64 3/8 (/.f64 (pow.f64 y 4) (pow.f64 x 5)) (/.f64 1 x))))
(/.f64 1 y)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (/.f64 1 y))
(fma.f64 -1/2 (/.f64 (*.f64 x x) (pow.f64 y 3)) (/.f64 1 y))
(fma.f64 (/.f64 x (/.f64 (pow.f64 y 3) x)) -1/2 (/.f64 1 y))
(fma.f64 (/.f64 (*.f64 x x) (pow.f64 y 3)) -1/2 (/.f64 1 y))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (*.f64 -1 (/.f64 (+.f64 (*.f64 -1/8 (pow.f64 x 4)) (*.f64 -1/4 (pow.f64 x 4))) (pow.f64 y 5)))))
(+.f64 (fma.f64 -1/2 (/.f64 (*.f64 x x) (pow.f64 y 3)) (/.f64 1 y)) (*.f64 3/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5))))
(fma.f64 (/.f64 x (/.f64 (pow.f64 y 3) x)) -1/2 (fma.f64 3/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5)) (/.f64 1 y)))
(fma.f64 (/.f64 (*.f64 x x) (pow.f64 y 3)) -1/2 (fma.f64 3/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5)) (/.f64 1 y)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (+.f64 (/.f64 1 y) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -1/8 (pow.f64 x 4)) (*.f64 -1/4 (pow.f64 x 4))) (pow.f64 y 5))) (*.f64 -1 (/.f64 (+.f64 (*.f64 1/8 (pow.f64 x 6)) (*.f64 -1/2 (*.f64 (+.f64 (*.f64 -1/8 (pow.f64 x 4)) (*.f64 -1/4 (pow.f64 x 4))) (pow.f64 x 2)))) (pow.f64 y 7))))))
(+.f64 (fma.f64 -1/2 (/.f64 (*.f64 x x) (pow.f64 y 3)) (/.f64 1 y)) (fma.f64 -1 (/.f64 (*.f64 (pow.f64 x 4) -3/8) (pow.f64 y 5)) (neg.f64 (/.f64 (fma.f64 1/8 (pow.f64 x 6) (*.f64 -1/2 (*.f64 (*.f64 x x) (*.f64 (pow.f64 x 4) -3/8)))) (pow.f64 y 7)))))
(fma.f64 (/.f64 x (/.f64 (pow.f64 y 3) x)) -1/2 (-.f64 (-.f64 (/.f64 1 y) (/.f64 (pow.f64 x 4) (/.f64 (pow.f64 y 5) -3/8))) (/.f64 (fma.f64 (pow.f64 x 6) 1/8 (*.f64 -1/2 (*.f64 (pow.f64 x 6) -3/8))) (pow.f64 y 7))))
(-.f64 (fma.f64 (/.f64 (*.f64 x x) (pow.f64 y 3)) -1/2 (fma.f64 3/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5)) (/.f64 1 y))) (/.f64 (fma.f64 (pow.f64 x 6) 1/8 (*.f64 (pow.f64 x 6) 3/16)) (pow.f64 y 7)))
(/.f64 -1 y)
(-.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (/.f64 1 y))
(-.f64 (*.f64 (/.f64 (*.f64 x x) (pow.f64 y 3)) 1/2) (/.f64 1 y))
(fma.f64 (/.f64 x (/.f64 (pow.f64 y 3) x)) 1/2 (/.f64 -1 y))
(fma.f64 (/.f64 (*.f64 x x) (pow.f64 y 3)) 1/2 (/.f64 -1 y))
(-.f64 (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 x 4) (pow.f64 y 5))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5))))) (/.f64 1 y))
(-.f64 (fma.f64 -1/4 (/.f64 (pow.f64 x 4) (pow.f64 y 5)) (fma.f64 1/2 (/.f64 (*.f64 x x) (pow.f64 y 3)) (*.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 5)) -1/8))) (/.f64 1 y))
(+.f64 (fma.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 5)) -1/4 (fma.f64 (/.f64 x (/.f64 (pow.f64 y 3) x)) 1/2 (/.f64 (pow.f64 x 4) (/.f64 (pow.f64 y 5) -1/8)))) (/.f64 -1 y))
(+.f64 (*.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 5)) -3/8) (fma.f64 (/.f64 (*.f64 x x) (pow.f64 y 3)) 1/2 (/.f64 -1 y)))
(-.f64 (+.f64 (*.f64 1/8 (/.f64 (pow.f64 x 6) (pow.f64 y 7))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 x 4) (pow.f64 y 5))) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (*.f64 -1/8 (pow.f64 x 4)) (*.f64 -1/4 (pow.f64 x 4))) (pow.f64 x 2)) (pow.f64 y 7))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (pow.f64 y 3))) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (pow.f64 y 5))))))) (/.f64 1 y))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 x 6) (pow.f64 y 7)) (fma.f64 -1/4 (/.f64 (pow.f64 x 4) (pow.f64 y 5)) (fma.f64 -1/2 (/.f64 (*.f64 (pow.f64 x 4) -3/8) (/.f64 (pow.f64 y 7) (*.f64 x x))) (fma.f64 1/2 (/.f64 (*.f64 x x) (pow.f64 y 3)) (*.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 5)) -1/8))))) (/.f64 1 y))
(+.f64 (fma.f64 (/.f64 (pow.f64 x 6) (pow.f64 y 7)) 1/8 (fma.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 5)) -1/4 (fma.f64 -1/2 (/.f64 (*.f64 (pow.f64 x 6) -3/8) (pow.f64 y 7)) (fma.f64 (/.f64 x (/.f64 (pow.f64 y 3) x)) 1/2 (/.f64 (pow.f64 x 4) (/.f64 (pow.f64 y 5) -1/8)))))) (/.f64 -1 y))
(fma.f64 (/.f64 (pow.f64 x 6) (pow.f64 y 7)) 1/8 (+.f64 (/.f64 (*.f64 (pow.f64 x 6) 3/16) (pow.f64 y 7)) (+.f64 (*.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 5)) -3/8) (fma.f64 (/.f64 (*.f64 x x) (pow.f64 y 3)) 1/2 (/.f64 -1 y)))))

eval461.0ms (4.6%)

Compiler

Compiled 32184 to 11993 computations (62.7% saved)

prune237.0ms (2.4%)

Pruning

12 alts after pruning (7 fresh and 5 done)

PrunedKeptTotal
New115371160
Fresh202
Picked101
Done358
Total1159121171
Error
0b
Counts
1171 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
30.4b
(/.f64 (+.f64 x y) (*.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (/.f64 (hypot.f64 x y) (-.f64 x y))))
30.4b
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (-.f64 x y)))
0.0b
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y)))
40.8b
1
30.4b
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (-.f64 (*.f64 -1/2 (/.f64 (*.f64 x (/.f64 x y)) (-.f64 x y))) (/.f64 y (-.f64 x y))))
23.3b
-1
0.2b
(*.f64 (+.f64 x y) (/.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (hypot.f64 x y)))
18.5b
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))
40.2b
(+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))))
0.0b
(/.f64 (+.f64 x y) (*.f64 (hypot.f64 x y) (/.f64 (hypot.f64 x y) (-.f64 x y))))
22.4b
(+.f64 (*.f64 2 (-.f64 (+.f64 1 (pow.f64 (/.f64 y x) -2)) 1)) -1)
22.4b
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
Compiler

Compiled 188 to 109 computations (42% saved)

regimes112.0ms (1.1%)

Counts
31 → 1
Calls
Call 1
Inputs
1
-1
-1
1
-1
1
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
(/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))
(+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))))
(*.f64 (/.f64 (-.f64 x y) y) (/.f64 (+.f64 x y) y))
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 (/.f64 y x) -2)) -1)
(fma.f64 (/.f64 2 y) (/.f64 x (/.f64 y x)) -1)
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 2 (-.f64 (+.f64 1 (pow.f64 (/.f64 y x) -2)) 1)) -1)
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (fma.f64 x x (*.f64 y y))))
(/.f64 (+.f64 x y) (*.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (/.f64 (hypot.f64 x y) (-.f64 x y))))
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (-.f64 x y)))
(*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y)))
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (-.f64 (*.f64 -1/2 (/.f64 (*.f64 x (/.f64 x y)) (-.f64 x y))) (/.f64 y (-.f64 x y))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(*.f64 (+.f64 x y) (/.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (hypot.f64 x y)))
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y)))
(/.f64 (+.f64 x y) (*.f64 (hypot.f64 x y) (/.f64 (hypot.f64 x y) (-.f64 x y))))
(*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y)))
(*.f64 (+.f64 x y) (*.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (-.f64 x y) (hypot.f64 x y))))
(*.f64 (-.f64 x y) (*.f64 (/.f64 1 (hypot.f64 x y)) (/.f64 (+.f64 x y) (hypot.f64 x y))))
(*.f64 (-.f64 x y) (pow.f64 (/.f64 (sqrt.f64 (+.f64 x y)) (hypot.f64 x y)) 2))
Outputs
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y)))
Calls

4 calls:

30.0ms
y
29.0ms
x
8.0ms
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
7.0ms
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
0.0b1(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
Compiler

Compiled 408 to 145 computations (64.5% saved)

regimes103.0ms (1%)

Counts
25 → 1
Calls
Call 1
Inputs
1
-1
-1
1
-1
1
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
(/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))
(+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))))
(*.f64 (/.f64 (-.f64 x y) y) (/.f64 (+.f64 x y) y))
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 (/.f64 y x) -2)) -1)
(fma.f64 (/.f64 2 y) (/.f64 x (/.f64 y x)) -1)
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 2 (-.f64 (+.f64 1 (pow.f64 (/.f64 y x) -2)) 1)) -1)
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (fma.f64 x x (*.f64 y y))))
(/.f64 (+.f64 x y) (*.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (/.f64 (hypot.f64 x y) (-.f64 x y))))
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (-.f64 x y)))
(*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y)))
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (-.f64 (*.f64 -1/2 (/.f64 (*.f64 x (/.f64 x y)) (-.f64 x y))) (/.f64 y (-.f64 x y))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
(*.f64 (+.f64 x y) (/.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (hypot.f64 x y)))
Outputs
(*.f64 (+.f64 x y) (/.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (hypot.f64 x y)))
Calls

4 calls:

51.0ms
y
25.0ms
x
8.0ms
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
7.0ms
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
Results
ErrorSegmentsBranch
0.2b1x
0.2b1y
0.2b1(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
0.2b1(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
Compiler

Compiled 315 to 128 computations (59.4% saved)

regimes337.0ms (3.4%)

Counts
24 → 2
Calls
Call 1
Inputs
1
-1
-1
1
-1
1
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
(/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))
(+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))))
(*.f64 (/.f64 (-.f64 x y) y) (/.f64 (+.f64 x y) y))
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 (/.f64 y x) -2)) -1)
(fma.f64 (/.f64 2 y) (/.f64 x (/.f64 y x)) -1)
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 2 (-.f64 (+.f64 1 (pow.f64 (/.f64 y x) -2)) 1)) -1)
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (fma.f64 x x (*.f64 y y))))
(/.f64 (+.f64 x y) (*.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (/.f64 (hypot.f64 x y) (-.f64 x y))))
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y) (-.f64 x y)))
(*.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (/.f64 (+.f64 x y) (-.f64 (*.f64 -1/2 (/.f64 x (/.f64 y x))) y)))
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (-.f64 (*.f64 -1/2 (/.f64 (*.f64 x (/.f64 x y)) (-.f64 x y))) (/.f64 y (-.f64 x y))))
(+.f64 1 (*.f64 -2 (/.f64 (pow.f64 y 2) (pow.f64 x 2))))
Outputs
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
(+.f64 (*.f64 2 (-.f64 (+.f64 1 (pow.f64 (/.f64 y x) -2)) 1)) -1)
Calls

4 calls:

252.0ms
y
46.0ms
x
11.0ms
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
10.0ms
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
Results
ErrorSegmentsBranch
9.2b2x
3.7b7y
2.9b2(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
2.9b2(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
Compiler

Compiled 300 to 126 computations (58% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.0
NaN
Compiler

Compiled 22 to 13 computations (40.9% saved)

regimes259.0ms (2.6%)

Counts
17 → 2
Calls
Call 1
Inputs
1
-1
-1
1
-1
1
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
(/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))
(+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))))
(*.f64 (/.f64 (-.f64 x y) y) (/.f64 (+.f64 x y) y))
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 (/.f64 y x) -2)) -1)
(fma.f64 (/.f64 2 y) (/.f64 x (/.f64 y x)) -1)
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (pow.f64 y 2))
Outputs
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
Calls

4 calls:

169.0ms
y
37.0ms
x
35.0ms
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
9.0ms
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
Results
ErrorSegmentsBranch
9.2b2x
3.7b7y
2.9b2(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
2.9b2(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y)))
Compiler

Compiled 174 to 78 computations (55.2% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.0
NaN
Compiler

Compiled 22 to 13 computations (40.9% saved)

regimes141.0ms (1.4%)

Counts
13 → 7
Calls
Call 1
Inputs
1
-1
-1
1
-1
1
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
(/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))
(+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))))
(*.f64 (/.f64 (-.f64 x y) y) (/.f64 (+.f64 x y) y))
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))
Outputs
-1
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))
(/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))
(+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))))
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
(+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))))
(*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))
Calls

2 calls:

103.0ms
y
31.0ms
x
Results
ErrorSegmentsBranch
9.2b2x
3.8b7y
Compiler

Compiled 95 to 44 computations (53.7% saved)

bsearch168.0ms (1.7%)

Algorithm
binary-search
Steps
TimeLeftRight
39.0ms
5.0432457117699704e-141
7.977545766529931e-140
28.0ms
-1.1501473155494471e-244
-8.239770047563684e-246
21.0ms
-3.5773975902606055e-236
-9.756181688017296e-238
22.0ms
-5.208182775869543e-210
-2.846750037899296e-210
22.0ms
-6.912635693132585e-186
-6.080096386754083e-190
35.0ms
-7.224230589813143e-24
-6.327409112535658e-27
Compiler

Compiled 22 to 13 computations (40.9% saved)

regimes125.0ms (1.2%)

Counts
12 → 5
Calls
Call 1
Inputs
1
-1
-1
1
-1
1
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
(/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))
(+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))))
(*.f64 (/.f64 (-.f64 x y) y) (/.f64 (+.f64 x y) y))
(+.f64 (/.f64 y x) (+.f64 1 (*.f64 -1 (/.f64 y x))))
Outputs
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
(+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))))
(/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))
(+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x))))
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))
Calls

2 calls:

85.0ms
y
35.0ms
x
Results
ErrorSegmentsBranch
14.5b4x
9.5b5y
Compiler

Compiled 80 to 40 computations (50% saved)

bsearch87.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
2.0451869875353209e-128
2.642724879082986e-122
22.0ms
-2.7514879357174125e-128
-5.852759238145744e-131
21.0ms
-1.7046811496283202e-99
-3.701155935692018e-101
22.0ms
-4.948842715265956e-80
-3.5165196992869834e-82
Compiler

Compiled 22 to 13 computations (40.9% saved)

regimes82.0ms (0.8%)

Counts
9 → 5
Calls
Call 1
Inputs
1
-1
-1
1
-1
1
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
(/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))
Outputs
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
1
(/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))
1
(/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))
Calls

2 calls:

56.0ms
y
24.0ms
x
Results
ErrorSegmentsBranch
14.6b4x
9.9b5y
Compiler

Compiled 47 to 27 computations (42.6% saved)

bsearch88.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
2.0451869875353209e-128
2.642724879082986e-122
22.0ms
-2.7514879357174125e-128
-5.852759238145744e-131
22.0ms
-1.7046811496283202e-99
-3.701155935692018e-101
22.0ms
-4.948842715265956e-80
-3.5165196992869834e-82
Compiler

Compiled 22 to 13 computations (40.9% saved)

regimes50.0ms (0.5%)

Counts
8 → 5
Calls
Call 1
Inputs
1
-1
-1
1
-1
1
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
(/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))
Outputs
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
1
(/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))
1
(/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))
Calls

2 calls:

29.0ms
y
19.0ms
x
Results
ErrorSegmentsBranch
14.6b4x
9.9b5y
Compiler

Compiled 36 to 24 computations (33.3% saved)

bsearch85.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
20.0ms
2.0451869875353209e-128
2.642724879082986e-122
21.0ms
-2.7514879357174125e-128
-5.852759238145744e-131
23.0ms
-1.7046811496283202e-99
-3.701155935692018e-101
21.0ms
-4.948842715265956e-80
-3.5165196992869834e-82
Compiler

Compiled 22 to 13 computations (40.9% saved)

regimes47.0ms (0.5%)

Counts
7 → 5
Calls
Call 1
Inputs
1
-1
-1
1
-1
1
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
Outputs
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
1
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
1
(+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)
Calls

2 calls:

27.0ms
y
18.0ms
x
Results
ErrorSegmentsBranch
14.6b4x
9.9b5y
Compiler

Compiled 25 to 19 computations (24% saved)

bsearch83.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
20.0ms
2.0451869875353209e-128
2.642724879082986e-122
21.0ms
-2.7514879357174125e-128
-5.852759238145744e-131
21.0ms
-1.7046811496283202e-99
-3.701155935692018e-101
21.0ms
-4.948842715265956e-80
-3.5165196992869834e-82
Compiler

Compiled 22 to 13 computations (40.9% saved)

regimes46.0ms (0.5%)

Accuracy

Total -52.8b remaining (-515.4%)

Threshold costs -52.8b (-515.4%)

Counts
6 → 5
Calls
Call 1
Inputs
1
-1
-1
1
-1
1
Outputs
-1
1
-1
1
-1
Calls

2 calls:

27.0ms
y
18.0ms
x
Results
ErrorSegmentsBranch
15.3b4x
10.2b5y
Compiler

Compiled 14 to 12 computations (14.3% saved)

bsearch97.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
2.0451869875353209e-128
2.642724879082986e-122
28.0ms
-2.7514879357174125e-128
-5.852759238145744e-131
24.0ms
-1.7046811496283202e-99
-3.701155935692018e-101
22.0ms
-4.948842715265956e-80
-3.5165196992869834e-82
Compiler

Compiled 22 to 13 computations (40.9% saved)

simplify50.0ms (0.5%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
*-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
091678
1109678
2113678
3115678
4116678
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y)))
(*.f64 (+.f64 x y) (/.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (hypot.f64 x y)))
(if (<=.f64 (/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y))) 2) (/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y))) (+.f64 (*.f64 2 (-.f64 (+.f64 1 (pow.f64 (/.f64 y x) -2)) 1)) -1))
(if (<=.f64 (/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y))) 2) (/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y))) (+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1))
(if (<=.f64 y -4916556568568527/680564733841876926926749214863536422912) -1 (if (<=.f64 y -1058256113429421/153090103458041951154620325043801237641319743206933311288544235956760011447392195175450369025277569052617268428910122535686807015741471080782585043071649294869136754165183653769539196448293593632735232) (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x)))) (if (<=.f64 y -7711217868372339/1480596630383213935040454376661779933220754639736839877261211431528140022932412039118650826290747144651878100106364319997951107067217649833149230265656644000248389221211290269422784124023054547143233298486439198256390425542656) (/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y)) (if (<=.f64 y -8196219669252587/229111231347799689635350271469398707925773913377365220235531597618488512042823233274762274126597027003434876073751997760595174886056587013603560208332516636964102994463833696818134410091831830209960320065853961979807444428853900668922870296851794362368) (+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)))) (if (<=.f64 y -3536793733976893/30750788930784052141961861920805916103932967295178766486232675904563738880488373075752592173385037335955677262580553574888172300969173988400174943873597051535522721474932336956770829721145939608862637129391729156728137068727028191720507858482133392040241659904) (+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1) (if (<=.f64 y 2163803835101389/429049853758163107186368799942587076079339706258956588087153966199096448962353503257659977541340909686081019461967553627320124249982290238285876768194691072) (+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)))) (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))))))))
(if (<=.f64 y -1651666231659331/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) (+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1) (if (<=.f64 y -2098995538141623/1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697088) (+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)))) (if (<=.f64 y -5368408421586109/195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643136) (/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y)) (if (<=.f64 y 7980699391829399/390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286272) (+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)))) (/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))))))
(if (<=.f64 y -1651666231659331/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) (+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1) (if (<=.f64 y -2098995538141623/1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697088) 1 (if (<=.f64 y -5368408421586109/195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643136) (/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y)) (if (<=.f64 y 7980699391829399/390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286272) 1 (/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))))))
(if (<=.f64 y -1651666231659331/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) (+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1) (if (<=.f64 y -2098995538141623/1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697088) 1 (if (<=.f64 y -5368408421586109/195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643136) (/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y)) (if (<=.f64 y 7980699391829399/390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286272) 1 (/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))))))
(if (<=.f64 y -1651666231659331/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) (+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1) (if (<=.f64 y -2098995538141623/1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697088) 1 (if (<=.f64 y -5368408421586109/195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643136) (+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1) (if (<=.f64 y 7980699391829399/390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286272) 1 (+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)))))
(if (<=.f64 y -1651666231659331/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) -1 (if (<=.f64 y -2098995538141623/1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697088) 1 (if (<=.f64 y -5368408421586109/195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643136) -1 (if (<=.f64 y 7980699391829399/390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286272) 1 -1))))
1
Outputs
(/.f64 (/.f64 (+.f64 x y) (hypot.f64 x y)) (/.f64 (hypot.f64 x y) (-.f64 x y)))
(*.f64 (+.f64 x y) (/.f64 (/.f64 (-.f64 x y) (hypot.f64 x y)) (hypot.f64 x y)))
(if (<=.f64 (/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y))) 2) (/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y))) (+.f64 (*.f64 2 (-.f64 (+.f64 1 (pow.f64 (/.f64 y x) -2)) 1)) -1))
(if (<=.f64 (/.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y))) 2) (/.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y))) (+.f64 (*.f64 2 (+.f64 (+.f64 1 (pow.f64 (/.f64 y x) -2)) -1)) -1))
(if (<=.f64 (/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y))) 2) (/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y))) (+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1))
(if (<=.f64 (/.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y))) 2) (/.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (+.f64 (*.f64 x x) (*.f64 y y))) (+.f64 -1 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))))
(if (<=.f64 y -4916556568568527/680564733841876926926749214863536422912) -1 (if (<=.f64 y -1058256113429421/153090103458041951154620325043801237641319743206933311288544235956760011447392195175450369025277569052617268428910122535686807015741471080782585043071649294869136754165183653769539196448293593632735232) (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x)))) (if (<=.f64 y -7711217868372339/1480596630383213935040454376661779933220754639736839877261211431528140022932412039118650826290747144651878100106364319997951107067217649833149230265656644000248389221211290269422784124023054547143233298486439198256390425542656) (/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y)) (if (<=.f64 y -8196219669252587/229111231347799689635350271469398707925773913377365220235531597618488512042823233274762274126597027003434876073751997760595174886056587013603560208332516636964102994463833696818134410091831830209960320065853961979807444428853900668922870296851794362368) (+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)))) (if (<=.f64 y -3536793733976893/30750788930784052141961861920805916103932967295178766486232675904563738880488373075752592173385037335955677262580553574888172300969173988400174943873597051535522721474932336956770829721145939608862637129391729156728137068727028191720507858482133392040241659904) (+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1) (if (<=.f64 y 2163803835101389/429049853758163107186368799942587076079339706258956588087153966199096448962353503257659977541340909686081019461967553627320124249982290238285876768194691072) (+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)))) (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 y y) (*.f64 x x))))))))))
(if (<=.f64 y -4916556568568527/680564733841876926926749214863536422912) -1 (if (<=.f64 y -1058256113429421/153090103458041951154620325043801237641319743206933311288544235956760011447392195175450369025277569052617268428910122535686807015741471080782585043071649294869136754165183653769539196448293593632735232) (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 x x) (*.f64 y y)))) (if (<=.f64 y -7711217868372339/1480596630383213935040454376661779933220754639736839877261211431528140022932412039118650826290747144651878100106364319997951107067217649833149230265656644000248389221211290269422784124023054547143233298486439198256390425542656) (/.f64 (+.f64 x y) (*.f64 y (/.f64 y (-.f64 x y)))) (if (<=.f64 y -8196219669252587/229111231347799689635350271469398707925773913377365220235531597618488512042823233274762274126597027003434876073751997760595174886056587013603560208332516636964102994463833696818134410091831830209960320065853961979807444428853900668922870296851794362368) (+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)))) (if (<=.f64 y -3536793733976893/30750788930784052141961861920805916103932967295178766486232675904563738880488373075752592173385037335955677262580553574888172300969173988400174943873597051535522721474932336956770829721145939608862637129391729156728137068727028191720507858482133392040241659904) (+.f64 -1 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))) (if (<=.f64 y 2163803835101389/429049853758163107186368799942587076079339706258956588087153966199096448962353503257659977541340909686081019461967553627320124249982290238285876768194691072) (+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)))) (*.f64 (-.f64 x y) (/.f64 (+.f64 x y) (+.f64 (*.f64 x x) (*.f64 y y))))))))))
(if (<=.f64 y -1651666231659331/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) (+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1) (if (<=.f64 y -2098995538141623/1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697088) (+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)))) (if (<=.f64 y -5368408421586109/195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643136) (/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y)) (if (<=.f64 y 7980699391829399/390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286272) (+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)))) (/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))))))
(if (<=.f64 y -1651666231659331/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) (+.f64 -1 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))) (if (<=.f64 y -2098995538141623/1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697088) (+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)))) (if (<=.f64 y -5368408421586109/195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643136) (/.f64 (+.f64 x y) (*.f64 y (/.f64 y (-.f64 x y)))) (if (<=.f64 y 7980699391829399/390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286272) (+.f64 1 (*.f64 -2 (*.f64 (/.f64 y x) (/.f64 y x)))) (/.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (*.f64 y y))))))
(if (<=.f64 y -1651666231659331/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) (+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1) (if (<=.f64 y -2098995538141623/1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697088) 1 (if (<=.f64 y -5368408421586109/195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643136) (/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y)) (if (<=.f64 y 7980699391829399/390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286272) 1 (/.f64 (*.f64 (-.f64 x y) (+.f64 x y)) (*.f64 y y))))))
(if (<=.f64 y -1651666231659331/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) (+.f64 -1 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))) (if (<=.f64 y -2098995538141623/1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697088) 1 (if (<=.f64 y -5368408421586109/195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643136) (/.f64 (+.f64 x y) (*.f64 y (/.f64 y (-.f64 x y)))) (if (<=.f64 y 7980699391829399/390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286272) 1 (/.f64 (*.f64 (+.f64 x y) (-.f64 x y)) (*.f64 y y))))))
(if (<=.f64 y -1651666231659331/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) (+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1) (if (<=.f64 y -2098995538141623/1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697088) 1 (if (<=.f64 y -5368408421586109/195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643136) (/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y)) (if (<=.f64 y 7980699391829399/390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286272) 1 (/.f64 (+.f64 x y) (*.f64 (/.f64 y (-.f64 x y)) y))))))
(if (<=.f64 y -1651666231659331/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) (+.f64 -1 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))) (if (<=.f64 y -2098995538141623/1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697088) 1 (if (<=.f64 y -5368408421586109/195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643136) (/.f64 (+.f64 x y) (*.f64 y (/.f64 y (-.f64 x y)))) (if (<=.f64 y 7980699391829399/390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286272) 1 (/.f64 (+.f64 x y) (*.f64 y (/.f64 y (-.f64 x y))))))))
(if (<=.f64 y -1651666231659331/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) (+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1) (if (<=.f64 y -2098995538141623/1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697088) 1 (if (<=.f64 y -5368408421586109/195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643136) (+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1) (if (<=.f64 y 7980699391829399/390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286272) 1 (+.f64 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)) -1)))))
(if (<=.f64 y -1651666231659331/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) (+.f64 -1 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))) (if (<=.f64 y -2098995538141623/1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697088) 1 (if (<=.f64 y -5368408421586109/195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643136) (+.f64 -1 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x))) (if (<=.f64 y 7980699391829399/390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286272) 1 (+.f64 -1 (/.f64 (/.f64 2 y) (/.f64 (/.f64 y x) x)))))))
(if (<=.f64 y -1651666231659331/33374797436264220037422214158899251790667258161822699530422525122222183215322508594108782608384) -1 (if (<=.f64 y -2098995538141623/1231312693637327475383720003129487931408741852202045208373384168882678805359287831606695820465153613775207124697088) 1 (if (<=.f64 y -5368408421586109/195109284394749514461349826862072894109287383916560696928697309976585733676235351257519131441468248197489183195087913930965498479955517831643136) -1 (if (<=.f64 y 7980699391829399/390218568789499028922699653724145788218574767833121393857394619953171467352470702515038262882936496394978366390175827861930996959911035663286272) 1 -1))))
1
Compiler

Compiled 487 to 257 computations (47.2% saved)

soundness0.0ms (0%)

end626.0ms (6.2%)

Compiler

Compiled 467 to 188 computations (59.7% saved)

Profiling

Loading profile data...