Details

Time bar (total: 7.3s)

analyze49.0ms (0.7%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
33.3%25%50%0.1%25%0%0%6
44.4%25%31.2%0.1%43.7%0%0%7
55.6%31.2%25%0.1%43.7%0%0%8
69.4%39%17.2%0.1%43.7%0%0%9
76.4%42.9%13.3%0.1%43.7%0%0%10
84%47.2%9%0.1%43.7%0%0%11
87.8%49.4%6.8%0.1%43.7%0%0%12
Compiler

Compiled 18 to 8 computations (55.6% saved)

sample943.0ms (12.9%)

Results
929.0ms8256×body256valid
0.0msbody256infinite
Bogosity

preprocess21.0ms (0.3%)

Algorithm
egg-herbie
Rules
54×fma-def_binary64
*-commutative_binary64
associate-+l+_binary64
associate-*r*_binary64
associate-+r+_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01140
12530
25222
39122
412522
513722
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
(+.f64 (+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 x x)) (*.f64 x x))
Outputs
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
(+.f64 (*.f64 y y) (+.f64 (*.f64 y y) (fma.f64 x x (*.f64 y y))))
(fma.f64 y y (fma.f64 x x (*.f64 y (+.f64 y y))))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(fma.f64 x x (*.f64 (*.f64 y y) 3))
(+.f64 (+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 x x)) (*.f64 x x))
(+.f64 (*.f64 x x) (+.f64 (*.f64 x x) (fma.f64 x x (*.f64 y y))))
(fma.f64 x x (fma.f64 y y (*.f64 x (+.f64 x x))))
(fma.f64 y y (*.f64 3 (*.f64 x x)))
(fma.f64 y y (*.f64 x (*.f64 3 x)))
(fma.f64 y y (*.f64 x (*.f64 x 3)))
Compiler

Compiled 19 to 9 computations (52.6% saved)

simplify15.0ms (0.2%)

Algorithm
egg-herbie
Rules
28×fma-def_binary64
*-commutative_binary64
associate-+l+_binary64
associate-*r*_binary64
+-commutative_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0820
11515
23011
35111
46911
57511
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
Outputs
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
(+.f64 (*.f64 y y) (+.f64 (*.f64 y y) (fma.f64 x x (*.f64 y y))))
(fma.f64 y y (fma.f64 x x (*.f64 y (+.f64 y y))))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(fma.f64 y (*.f64 3 y) (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))

eval1.0ms (0%)

Compiler

Compiled 25 to 10 computations (60% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 27 to 13 computations (51.9% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 43 to 7 computations (83.7% saved)

series7.0ms (0.1%)

Counts
3 → 72
Calls

18 calls:

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

rewrite88.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
752×fma-def_binary64
444×log-prod_binary64
396×pow-prod-down_binary64
308×fma-neg_binary64
259×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0842
119030
2299430
Stop Event
node limit
Counts
3 → 245
Calls
Call 1
Inputs
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
(+.f64 (*.f64 x x) (*.f64 y y))
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4) (-.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2) (*.f64 y y))) (/.f64 (pow.f64 y 4) (-.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y)))) 2) (cbrt.f64 (pow.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))) 4)) (pow.f64 (cbrt.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))) (hypot.f64 y (hypot.f64 x (hypot.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 y 6) (pow.f64 (hypot.f64 x (hypot.f64 y y)) 6)) (/.f64 1 (+.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 y (hypot.f64 x (hypot.f64 y y))) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4) (pow.f64 y 4)) (/.f64 1 (-.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 y (hypot.f64 x (hypot.f64 y y))) 2))) (+.f64 (pow.f64 y 6) (pow.f64 (hypot.f64 x (hypot.f64 y y)) 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2) (*.f64 y y)) (-.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4) (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 6) (pow.f64 (hypot.f64 x (hypot.f64 y y)) 6)) (+.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 y (hypot.f64 x (hypot.f64 y y))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 6) (pow.f64 (hypot.f64 x (hypot.f64 y y)) 6)) (+.f64 (pow.f64 y 4) (-.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4) (pow.f64 (*.f64 y (hypot.f64 x (hypot.f64 y y))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4) (pow.f64 y 4)) (-.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 y 6) (pow.f64 (hypot.f64 x (hypot.f64 y y)) 6))) (neg.f64 (+.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 y (hypot.f64 x (hypot.f64 y y))) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4) (pow.f64 y 4))) (neg.f64 (-.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (hypot.f64 x y) 6) (pow.f64 (*.f64 (*.f64 y y) 2) 3)) (+.f64 (pow.f64 (hypot.f64 x y) 4) (-.f64 (pow.f64 (*.f64 (*.f64 y y) 2) 2) (*.f64 (pow.f64 (hypot.f64 x y) 2) (*.f64 (*.f64 y y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 y 4) (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4)) (-.f64 (*.f64 y y) (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (hypot.f64 x y) 4) (pow.f64 (*.f64 (*.f64 y y) 2) 2)) (-.f64 (pow.f64 (hypot.f64 x y) 2) (*.f64 (*.f64 y y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))) 4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y)))) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 y (hypot.f64 x (hypot.f64 y y))) 2))) (+.f64 (pow.f64 y 6) (pow.f64 (hypot.f64 x (hypot.f64 y y)) 6))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2) (*.f64 y y)) (-.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4) (pow.f64 y 4))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y y))) (exp.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 y) y) (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y y))) (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 x y) 2))) (exp.f64 (*.f64 (*.f64 y y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 x y) 2))) (pow.f64 (pow.f64 (exp.f64 y) y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2))) (pow.f64 (exp.f64 y) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2)) (+.f64 1 (expm1.f64 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2))) (+.f64 1 (expm1.f64 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (*.f64 y y) 2)) (exp.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (*.f64 y y) 2)) (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 2) (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 x y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))) 6))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y))) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (cbrt.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y)))) 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (hypot.f64 y (hypot.f64 x (hypot.f64 y y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x x (fma.f64 y y (*.f64 (*.f64 y y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x x (log.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 1 (fma.f64 y y (*.f64 (*.f64 y y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 1 (log.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y y (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (+.f64 y y) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) 1 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) 2 (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (hypot.f64 x y) 2) 1 (*.f64 (*.f64 y y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (hypot.f64 x y) 2) 1 (*.f64 (*.f64 (*.f64 y y) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2) 1 (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x x) (fma.f64 y y (*.f64 (*.f64 y y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x x) (log.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y y) (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 (hypot.f64 x y) 2) (*.f64 (*.f64 y y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 (hypot.f64 x y) 2) (*.f64 (*.f64 (*.f64 y y) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (*.f64 y y) 2) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) y) (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (+.f64 (*.f64 (cbrt.f64 y) y) (*.f64 (cbrt.f64 y) y)) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 y) y) (pow.f64 (cbrt.f64 y) 2) (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 y) y) (+.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 y) 2)) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) (cbrt.f64 (pow.f64 (hypot.f64 x y) 4)) (*.f64 (*.f64 y y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) (cbrt.f64 (pow.f64 (hypot.f64 x y) 4)) (*.f64 (*.f64 (*.f64 y y) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (hypot.f64 x y) 4)) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) (*.f64 (*.f64 y y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (hypot.f64 x y) 4)) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) (*.f64 (*.f64 (*.f64 y y) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) x) (fma.f64 y y (*.f64 (*.f64 y y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) x) (log.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x) x) (pow.f64 (cbrt.f64 x) 2) (fma.f64 y y (*.f64 (*.f64 y y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x) x) (pow.f64 (cbrt.f64 x) 2) (log.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2)) (cbrt.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4)) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4)) (cbrt.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2)) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (pow.f64 x 3/2) (fma.f64 y y (*.f64 (*.f64 y y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (pow.f64 x 3/2) (log.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 x y) (hypot.f64 x y) (*.f64 (*.f64 y y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 x y) (hypot.f64 x y) (*.f64 (*.f64 (*.f64 y y) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 x (hypot.f64 y y)) (hypot.f64 x (hypot.f64 y y)) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (pow.f64 y 3/2) (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 (*.f64 y y) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 x 6) (pow.f64 y 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 x 4) (pow.f64 y 4)) (pow.f64 (*.f64 x y) 2))) (*.f64 (*.f64 y y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 x 6) (pow.f64 y 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 x 4) (pow.f64 y 4)) (pow.f64 (*.f64 x y) 2))) (*.f64 (*.f64 (*.f64 y y) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 y 6) (pow.f64 (hypot.f64 x y) 6)) (/.f64 1 (+.f64 (pow.f64 (hypot.f64 x y) 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 (hypot.f64 x y) y) 2)))) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x 4) (pow.f64 y 4)) (/.f64 1 (-.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (*.f64 y y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x 4) (pow.f64 y 4)) (/.f64 1 (-.f64 (*.f64 x x) (*.f64 y y))) (*.f64 (*.f64 (*.f64 y y) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (hypot.f64 x y) 4) (pow.f64 y 4)) (/.f64 1 (-.f64 (pow.f64 (hypot.f64 x y) 2) (*.f64 y y))) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3/2) (sqrt.f64 x) (fma.f64 y y (*.f64 (*.f64 y y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3/2) (sqrt.f64 x) (log.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 y y) 2)) 2) (cbrt.f64 (*.f64 (*.f64 y y) 2)) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 y y) (hypot.f64 y y) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 y 3/2) (sqrt.f64 y) (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 5) (cbrt.f64 y) (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 5) (cbrt.f64 x) (fma.f64 y y (*.f64 (*.f64 y y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 5) (cbrt.f64 x) (log.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 3)))))))
((#(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) (cbrt.f64 (pow.f64 (hypot.f64 x y) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (hypot.f64 x y) 4)) (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 (+.f64 (pow.f64 x 4) (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 (+.f64 (pow.f64 x 4) (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 (+.f64 (pow.f64 x 4) (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 (+.f64 (pow.f64 x 4) (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))) (neg.f64 (-.f64 (*.f64 x x) (*.f64 y 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 (hypot.f64 x y) 4) 1/2)))) (#(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 (pow.f64 (hypot.f64 x y) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (+.f64 (pow.f64 x 4) (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 (hypot.f64 x y) 4))))) (#(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))) (pow.f64 (exp.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 (pow.f64 (exp.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 (hypot.f64 x y) 6))))) (#(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 exp.f64 (*.f64 (log.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (hypot.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 x y) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x x (*.f64 y y))))) (#(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 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 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) (*.f64 (cbrt.f64 y) y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 y) y) (pow.f64 (cbrt.f64 y) 2) (*.f64 x x))))) (#(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 (*.f64 (cbrt.f64 x) x) (pow.f64 (cbrt.f64 x) 2) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (pow.f64 x 3/2) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (pow.f64 y 3/2) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3/2) (sqrt.f64 x) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 y 3/2) (sqrt.f64 y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 5) (cbrt.f64 y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 5) (cbrt.f64 x) (*.f64 y y))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (hypot.f64 x y) 4) (-.f64 (pow.f64 (hypot.f64 x y) 2) (*.f64 y y))) (/.f64 (pow.f64 y 4) (-.f64 (pow.f64 (hypot.f64 x y) 2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2)) (cbrt.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4)) (cbrt.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 x (hypot.f64 y y)) (hypot.f64 x (hypot.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 y 6) (pow.f64 (hypot.f64 x y) 6)) (/.f64 1 (+.f64 (pow.f64 (hypot.f64 x y) 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 (hypot.f64 x y) y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (hypot.f64 x y) 4) (pow.f64 y 4)) (/.f64 1 (-.f64 (pow.f64 (hypot.f64 x y) 2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (hypot.f64 x y) 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 (hypot.f64 x y) y) 2))) (+.f64 (pow.f64 y 6) (pow.f64 (hypot.f64 x y) 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (pow.f64 (hypot.f64 x y) 2) (*.f64 y y)) (-.f64 (pow.f64 (hypot.f64 x y) 4) (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 6) (pow.f64 (hypot.f64 x y) 6)) (+.f64 (pow.f64 (hypot.f64 x y) 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 (hypot.f64 x y) y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 6) (pow.f64 (hypot.f64 x y) 6)) (+.f64 (pow.f64 y 4) (-.f64 (pow.f64 (hypot.f64 x y) 4) (pow.f64 (*.f64 (hypot.f64 x y) y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (hypot.f64 x y) 4) (pow.f64 y 4)) (-.f64 (pow.f64 (hypot.f64 x y) 2) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 y 6) (pow.f64 (hypot.f64 x y) 6))) (neg.f64 (+.f64 (pow.f64 (hypot.f64 x y) 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 (hypot.f64 x y) y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (hypot.f64 x y) 4) (pow.f64 y 4))) (neg.f64 (-.f64 (pow.f64 (hypot.f64 x y) 2) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 6) (pow.f64 (*.f64 (*.f64 y y) 2) 3)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 (*.f64 (*.f64 y y) 2) 2) (*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x 4) (pow.f64 (*.f64 (*.f64 y y) 2) 2)) (-.f64 (*.f64 x x) (*.f64 (*.f64 y y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 y 4) (pow.f64 (hypot.f64 x y) 4)) (-.f64 (*.f64 y y) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 x (hypot.f64 y y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (hypot.f64 x y) 4) (-.f64 (pow.f64 y 4) (pow.f64 (*.f64 (hypot.f64 x y) y) 2))) (+.f64 (pow.f64 y 6) (pow.f64 (hypot.f64 x y) 6))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (pow.f64 (hypot.f64 x y) 2) (*.f64 y y)) (-.f64 (pow.f64 (hypot.f64 x y) 4) (pow.f64 y 4))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x x))) (exp.f64 (*.f64 (*.f64 y y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x x))) (pow.f64 (pow.f64 (exp.f64 y) y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y y))) (exp.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 y) y) (+.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))) (+.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 (pow.f64 (hypot.f64 x y) 2))) (pow.f64 (exp.f64 y) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (pow.f64 (hypot.f64 x y) 2)) (+.f64 1 (expm1.f64 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 x y) 2))) (+.f64 1 (expm1.f64 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (*.f64 y y) 2)) (pow.f64 (exp.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (*.f64 y y) 2)) (+.f64 1 (expm1.f64 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 2) (+.f64 1 (expm1.f64 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (hypot.f64 x (hypot.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 x (hypot.f64 y y)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (hypot.f64 x (hypot.f64 y y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x x (*.f64 (*.f64 y y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x x (*.f64 (*.f64 (*.f64 y y) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 1 (*.f64 (*.f64 y y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 1 (*.f64 (*.f64 (*.f64 y y) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y y (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (+.f64 y y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) 1 (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) 2 (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (hypot.f64 x y) 2) 1 (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x x) (*.f64 (*.f64 y y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x x) (*.f64 (*.f64 (*.f64 y y) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y y) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 (hypot.f64 x y) 2) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (*.f64 y y) 2) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) y) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (+.f64 (*.f64 (cbrt.f64 y) y) (*.f64 (cbrt.f64 y) y)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 y) y) (pow.f64 (cbrt.f64 y) 2) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 y) y) (+.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 y) 2)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) (cbrt.f64 (pow.f64 (hypot.f64 x y) 4)) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (hypot.f64 x y) 4)) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) x) (*.f64 (*.f64 y y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) x) (*.f64 (*.f64 (*.f64 y y) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x) x) (pow.f64 (cbrt.f64 x) 2) (*.f64 (*.f64 y y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x) x) (pow.f64 (cbrt.f64 x) 2) (*.f64 (*.f64 (*.f64 y y) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (pow.f64 x 3/2) (*.f64 (*.f64 y y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (pow.f64 x 3/2) (*.f64 (*.f64 (*.f64 y y) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 x y) (hypot.f64 x y) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (pow.f64 y 3/2) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 (*.f64 y y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 x 6) (pow.f64 y 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 x 4) (pow.f64 y 4)) (pow.f64 (*.f64 x y) 2))) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x 4) (pow.f64 y 4)) (/.f64 1 (-.f64 (*.f64 x x) (*.f64 y y))) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3/2) (sqrt.f64 x) (*.f64 (*.f64 y y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3/2) (sqrt.f64 x) (*.f64 (*.f64 (*.f64 y y) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 y y) 2)) 2) (cbrt.f64 (*.f64 (*.f64 y y) 2)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 y y) (hypot.f64 y y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 y 3/2) (sqrt.f64 y) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 5) (cbrt.f64 y) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 5) (cbrt.f64 x) (*.f64 (*.f64 y y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 5) (cbrt.f64 x) (*.f64 (*.f64 (*.f64 y y) 2) 1))))))

simplify233.0ms (3.2%)

Algorithm
egg-herbie
Rules
1040×sqr-pow_binary64
740×fabs-mul_binary64
698×cube-prod_binary64
619×fma-def_binary64
484×unswap-sqr_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
014702
133630
268630
3128630
4303630
5836630
61427630
72346630
82694630
92944630
103272630
113748630
124355630
135070630
145968630
156672630
167137630
177570630
187728630
197798630
Stop Event
node limit
Counts
317 → 260
Calls
Call 1
Inputs
(+.f64 (pow.f64 y 2) (*.f64 2 (pow.f64 y 2)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 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))
(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))
(*.f64 2 (pow.f64 y 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(*.f64 2 (pow.f64 y 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(*.f64 2 (pow.f64 y 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
Outputs
(+.f64 (pow.f64 y 2) (*.f64 2 (pow.f64 y 2)))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(*.f64 3 (pow.f64 y 2))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(*.f64 3 (pow.f64 y 2))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(pow.f64 y 2)
(*.f64 y y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(pow.f64 y 2)
(*.f64 y y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(pow.f64 y 2)
(*.f64 y y)
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
(+.f64 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 y y))
(fma.f64 y y (*.f64 x x))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (*.f64 y y))
(*.f64 y (*.f64 y 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (*.f64 y y))
(*.f64 y (*.f64 y 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (*.f64 y y))
(*.f64 y (*.f64 y 2))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(fma.f64 y (*.f64 y 2) (*.f64 x x))
(fma.f64 x x (*.f64 2 (*.f64 y y)))

localize41.0ms (0.6%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 y (*.f64 y 3) (*.f64 x x))
Compiler

Compiled 19 to 9 computations (52.6% saved)

series4.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@0
(fma.f64 y (*.f64 y 3) (*.f64 x x))
1.0ms
y
@0
(fma.f64 y (*.f64 y 3) (*.f64 x x))
1.0ms
y
@-inf
(fma.f64 y (*.f64 y 3) (*.f64 x x))
1.0ms
y
@inf
(fma.f64 y (*.f64 y 3) (*.f64 x x))
0.0ms
x
@inf
(fma.f64 y (*.f64 y 3) (*.f64 x x))

rewrite73.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
621×pow1_binary64
571×add-log-exp_binary64
571×log1p-expm1-u_binary64
571×expm1-log1p-u_binary64
557×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify165.0ms (2.3%)

Algorithm
egg-herbie
Rules
1204×sqr-pow_binary64
666×cube-prod_binary64
661×fabs-mul_binary64
602×associate-*l*_binary64
514×pow-sqr_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
09267
119231
236231
367231
4154231
5481231
61821231
72138231
82428231
92679231
103016231
113512231
124173231
134963231
145887231
156412231
166825231
177216231
187335231
197379231
Stop Event
node limit
Counts
45 → 27
Calls
Call 1
Inputs
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
Outputs
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))

eval96.0ms (1.3%)

Compiler

Compiled 4897 to 2083 computations (57.5% saved)

prune62.0ms (0.8%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New2789287
Fresh000
Picked101
Done011
Total27910289
Error
0b
Counts
289 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (*.f64 y (*.f64 y 3)) (*.f64 x x))
0.1b
(fma.f64 x x (*.f64 3 (*.f64 y y)))
29.8b
(*.f64 3 (*.f64 y y))
0.1b
(fma.f64 x x (fma.f64 y y (*.f64 (*.f64 y y) 2)))
29.7b
(*.f64 y (*.f64 y 3))
0.2b
(+.f64 (pow.f64 (hypot.f64 x (hypot.f64 y y)) 2) (*.f64 y y))
0.3b
(pow.f64 (sqrt.f64 (fma.f64 y (*.f64 y 3) (*.f64 x x))) 2)
27.6b
(*.f64 x x)
34.7b
(+.f64 (+.f64 (/.f64 (-.f64 (pow.f64 y 4) (pow.f64 x 4)) (-.f64 (*.f64 y y) (*.f64 x x))) (*.f64 y y)) (*.f64 y y))
0.1b
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
Compiler

Compiled 225 to 133 computations (40.9% saved)

localize13.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (*.f64 y y) 2)
0.0b
(fma.f64 x x (fma.f64 y y (*.f64 (*.f64 y y) 2)))
0.1b
(fma.f64 y y (*.f64 (*.f64 y y) 2))
Compiler

Compiled 32 to 13 computations (59.4% saved)

series5.0ms (0.1%)

Counts
3 → 48
Calls

12 calls:

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

rewrite66.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
714×pow1_binary64
654×add-log-exp_binary64
654×log1p-expm1-u_binary64
654×expm1-log1p-u_binary64
639×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify180.0ms (2.5%)

Algorithm
egg-herbie
Rules
1040×sqr-pow_binary64
735×fabs-mul_binary64
698×cube-prod_binary64
619×fma-def_binary64
484×unswap-sqr_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
013435
130399
266399
3129399
4306399
5851399
61438399
72357399
82705399
92953399
103281399
113755399
124368399
135085399
145983399
156683399
167148399
177575399
187731399
197801399
Stop Event
node limit
Counts
104 → 65
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 2 (pow.f64 y 2)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (pow.f64 y 2))
Outputs
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 y 2) (*.f64 2 (pow.f64 y 2)))
(*.f64 3 (*.f64 y y))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (*.f64 2 (pow.f64 y 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (*.f64 y y))
(*.f64 y (*.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (*.f64 y y))
(*.f64 y (*.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (*.f64 y y))
(*.f64 y (*.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (*.f64 y y))
(*.f64 y (*.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (*.f64 y y))
(*.f64 y (*.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (*.f64 y y))
(*.f64 y (*.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (*.f64 y y))
(*.f64 y (*.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (*.f64 y y))
(*.f64 y (*.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (*.f64 y y))
(*.f64 y (*.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (*.f64 y y))
(*.f64 y (*.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (*.f64 y y))
(*.f64 y (*.f64 y 2))
(*.f64 2 (pow.f64 y 2))
(*.f64 2 (*.f64 y y))
(*.f64 y (*.f64 y 2))

localize3.0ms (0%)

Compiler

Compiled 6 to 3 computations (50% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 y (*.f64 y 3))
Compiler

Compiled 12 to 8 computations (33.3% saved)

series27.0ms (0.4%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
26.0ms
y
@-inf
(*.f64 y (*.f64 y 3))
0.0ms
y
@0
(*.f64 y (*.f64 y 3))
0.0ms
y
@inf
(*.f64 y (*.f64 y 3))

rewrite45.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
448×pow1_binary64
432×add-sqr-sqrt_binary64
425×*-un-lft-identity_binary64
414×add-log-exp_binary64
414×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify173.0ms (2.4%)

Algorithm
egg-herbie
Rules
1082×sqr-pow_binary64
617×cube-prod_binary64
556×fabs-mul_binary64
523×pow-sqr_binary64
446×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0684
11284
22384
34484
410484
531884
6126884
7214084
8230484
9248884
10269684
11299184
12338284
13386384
14443184
15512384
16595884
17635084
18664084
19691884
20698884
21702484
22796584
Stop Event
node limit
Counts
23 → 13
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
Outputs
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 3 y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 3 y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 3 y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 3 y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 3 y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 3 y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 3 y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 3 y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 3 y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 3 y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 3 y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 3 y))

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 x x (*.f64 3 (*.f64 y y)))
0.2b
(*.f64 3 (*.f64 y y))
Compiler

Compiled 21 to 9 computations (57.1% saved)

series3.0ms (0%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
x
@0
(fma.f64 x x (*.f64 3 (*.f64 y y)))
0.0ms
y
@0
(*.f64 3 (*.f64 y y))
0.0ms
y
@inf
(*.f64 3 (*.f64 y y))
0.0ms
x
@inf
(fma.f64 x x (*.f64 3 (*.f64 y y)))
0.0ms
y
@inf
(fma.f64 x x (*.f64 3 (*.f64 y y)))

rewrite115.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
621×pow1_binary64
571×add-log-exp_binary64
571×log1p-expm1-u_binary64
571×expm1-log1p-u_binary64
558×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0718
114118
2160118
Stop Event
node limit
Counts
2 → 32
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y y))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 3 (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 3 (*.f64 y y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 3 (*.f64 y y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (sqrt.f64 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 9 (pow.f64 y 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 3) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 3 (*.f64 y y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 3 (*.f64 y y))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x x) 1) (*.f64 3 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 x x (*.f64 3 (*.f64 y y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x (*.f64 3 (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x x (*.f64 3 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x x (*.f64 3 (*.f64 y y)))) (pow.f64 (cbrt.f64 (fma.f64 x x (*.f64 3 (*.f64 y y)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x x (*.f64 3 (*.f64 y y)))) 2) (cbrt.f64 (fma.f64 x x (*.f64 3 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 x (*.f64 y (sqrt.f64 3))) (hypot.f64 x (*.f64 y (sqrt.f64 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x x) 3) (pow.f64 (*.f64 3 (*.f64 y y)) 3)) (+.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (-.f64 (*.f64 9 (pow.f64 y 4)) (*.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 9 (pow.f64 y 4))) (-.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x x (*.f64 3 (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x x (*.f64 3 (*.f64 y y))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x x (*.f64 3 (*.f64 y y)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 x (*.f64 y (sqrt.f64 3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x x (*.f64 3 (*.f64 y y))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x x (*.f64 3 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x x (*.f64 3 (*.f64 y y))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x x (*.f64 3 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x x (*.f64 3 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x x (*.f64 3 (*.f64 y y)))))))))

simplify165.0ms (2.3%)

Algorithm
egg-herbie
Rules
1204×sqr-pow_binary64
666×cube-prod_binary64
662×fabs-mul_binary64
607×associate-*l*_binary64
514×pow-sqr_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
09351
119315
236315
368315
4155315
5473315
61826315
72132315
82422315
92673315
103010315
113504315
124163315
134955315
145879315
156404315
166819315
177208315
187329315
197373315
Stop Event
node limit
Counts
68 → 38
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
Outputs
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))

localize38.0ms (0.5%)

Local error

Found 4 expressions with local error:

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

Compiled 34 to 11 computations (67.6% saved)

series18.0ms (0.2%)

Counts
4 → 84
Calls

21 calls:

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

rewrite160.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
903×pow1_binary64
837×add-log-exp_binary64
836×log1p-expm1-u_binary64
836×expm1-log1p-u_binary64
816×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify81.0ms (1.1%)

Algorithm
egg-herbie
Rules
725×associate-/r*_binary64
671×associate-*r*_binary64
605×associate-/l*_binary64
563×associate-*l*_binary64
420×+-commutative_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01642391
15691640
223031469
Stop Event
node limit
Counts
174 → 153
Calls
Call 1
Inputs
(*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))
(+.f64 (*.f64 (+.f64 (*.f64 5/64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)))) (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)))) (pow.f64 (/.f64 -1/8 (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))) 2)))) (pow.f64 x 8)) (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))))))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 4))) (+.f64 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 4))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))))))))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))))))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 4))) (+.f64 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 4))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))))))))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))
(+.f64 (*.f64 (pow.f64 y 4) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 x 2))) (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 x 2))))) (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))))
(+.f64 (*.f64 (pow.f64 y 6) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 x 4))) (*.f64 -1/8 (/.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 x 4))))) (+.f64 (*.f64 (pow.f64 y 4) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 x 2))) (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 x 2))))) (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))))
(+.f64 (pow.f64 y 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))
(+.f64 (pow.f64 y 2) (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))))
(+.f64 (pow.f64 y 2) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 (+.f64 (*.f64 5/64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)))) (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))) 2) (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6))))))) (pow.f64 x 8)))))
(+.f64 (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))) 2) (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6))))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (*.f64 -1/2 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)))) (pow.f64 (/.f64 -1/8 (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))) 2)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))))) (pow.f64 x 10)) (+.f64 (pow.f64 y 2) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 (+.f64 (*.f64 5/64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)))) (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))) 2) (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6))))))) (pow.f64 x 8))))))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))) (+.f64 (pow.f64 y 2) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2)))))))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 4))) (+.f64 (pow.f64 y 2) (+.f64 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 4))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2)))))))))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))) (+.f64 (pow.f64 y 2) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2)))))))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 4))) (+.f64 (pow.f64 y 2) (+.f64 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 4))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2)))))))))
(pow.f64 x 2)
(+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (+.f64 (*.f64 (pow.f64 y 4) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 x 2))) (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 x 2))))) (pow.f64 x 2)))
(+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (+.f64 (*.f64 (pow.f64 y 6) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 x 4))) (*.f64 -1/8 (/.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 x 4))))) (+.f64 (*.f64 (pow.f64 y 4) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 x 2))) (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 x 2))))) (pow.f64 x 2))))
(*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2))
(+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (+.f64 (pow.f64 x 2) (*.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)))) (+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (+.f64 (pow.f64 x 2) (*.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))))))
(*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2))
(+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (+.f64 (pow.f64 x 2) (*.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)))) (+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (+.f64 (pow.f64 x 2) (*.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))))))
(*.f64 (sqrt.f64 2) y)
(*.f64 (sqrt.f64 2) y)
(*.f64 (sqrt.f64 2) y)
(*.f64 (sqrt.f64 2) y)
(*.f64 (sqrt.f64 2) y)
(*.f64 (sqrt.f64 2) y)
(*.f64 (sqrt.f64 2) y)
(*.f64 (sqrt.f64 2) y)
(*.f64 -1 (*.f64 (sqrt.f64 2) y))
(*.f64 -1 (*.f64 (sqrt.f64 2) y))
(*.f64 -1 (*.f64 (sqrt.f64 2) y))
(*.f64 -1 (*.f64 (sqrt.f64 2) y))
(*.f64 (sqrt.f64 2) y)
(+.f64 (*.f64 (sqrt.f64 2) y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3)))) (+.f64 (*.f64 (sqrt.f64 2) y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y)))))
(+.f64 (*.f64 1/16 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 5) (pow.f64 y 5)))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3)))) (+.f64 (*.f64 (sqrt.f64 2) y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y))))))
x
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) x)
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3))) x))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) (+.f64 (*.f64 1/16 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 5))) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3))) x)))
(*.f64 -1 x)
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) (*.f64 -1 x))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) (+.f64 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3))) (*.f64 -1 x)))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) (+.f64 (*.f64 -1/16 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 5))) (+.f64 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3))) (*.f64 -1 x))))
x
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) x)
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3))) x))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) (+.f64 (*.f64 1/16 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 5))) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3))) x)))
(*.f64 (sqrt.f64 2) y)
(+.f64 (*.f64 (sqrt.f64 2) y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3)))) (+.f64 (*.f64 (sqrt.f64 2) y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y)))))
(+.f64 (*.f64 1/16 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 5) (pow.f64 y 5)))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3)))) (+.f64 (*.f64 (sqrt.f64 2) y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y))))))
(*.f64 -1 (*.f64 (sqrt.f64 2) y))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 2) y)) (*.f64 -1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y))))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 2) y)) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y))) (*.f64 1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))))))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 2) y)) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 5) (pow.f64 y 5)))) (*.f64 1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3)))))))
Outputs
(*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))
(*.f64 2 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)) (*.f64 x x))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)) (*.f64 x x))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(+.f64 (*.f64 (+.f64 (*.f64 5/64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)))) (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)))) (pow.f64 (/.f64 -1/8 (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))) 2)))) (pow.f64 x 8)) (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))))
(fma.f64 (+.f64 (/.f64 5/64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6))) (neg.f64 (+.f64 (/.f64 1/16 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6))) (pow.f64 (/.f64 -1/8 (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))) 2)))) (pow.f64 x 8) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)) (*.f64 x x)))
(fma.f64 (-.f64 (/.f64 5/512 (pow.f64 y 6)) (+.f64 (/.f64 1/128 (pow.f64 y 6)) (pow.f64 (/.f64 (/.f64 -1/16 (sqrt.f64 2)) (pow.f64 y 3)) 2))) (pow.f64 x 8) (fma.f64 2 (*.f64 y y) (*.f64 x x)))
(fma.f64 (-.f64 (*.f64 (/.f64 1/8 (pow.f64 y 6)) 1/64) (pow.f64 (/.f64 -1/16 (*.f64 (sqrt.f64 2) (pow.f64 y 3))) 2)) (pow.f64 x 8) (fma.f64 2 (*.f64 y y) (*.f64 x x)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)) (*.f64 x x))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))))))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)) (*.f64 x x))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 4))) (+.f64 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 4))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))))))))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)) (*.f64 x x))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)) (*.f64 x x))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))))))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)) (*.f64 x x))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 4))) (+.f64 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 4))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))))))))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)) (*.f64 x x))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)) (*.f64 x x))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(+.f64 (*.f64 (pow.f64 y 4) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 x 2))) (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 x 2))))) (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)) (*.f64 x x))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(+.f64 (*.f64 (pow.f64 y 6) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 x 4))) (*.f64 -1/8 (/.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 x 4))))) (+.f64 (*.f64 (pow.f64 y 4) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 x 2))) (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 x 2))))) (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)) (*.f64 x x))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))
(*.f64 2 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)) (*.f64 x x))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))
(fma.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))) (+.f64 (*.f64 x x) (fma.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 x 4) (*.f64 y y))) (fma.f64 x x (fma.f64 2 (*.f64 y y) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 y y))))))
(+.f64 (*.f64 2 (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 (/.f64 (pow.f64 x 4) (*.f64 y y)) 0)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))))
(fma.f64 1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4))) (fma.f64 -1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4))) (fma.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))) (+.f64 (*.f64 x x) (fma.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)))))))
(+.f64 (+.f64 (*.f64 (/.f64 (/.f64 (pow.f64 x 6) (pow.f64 y 4)) 4) 0) (*.f64 1/8 (/.f64 (pow.f64 x 4) (*.f64 y y)))) (fma.f64 x x (fma.f64 2 (*.f64 y y) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 y y))))))
(+.f64 0 (+.f64 (*.f64 2 (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 (/.f64 (pow.f64 x 4) (*.f64 y y)) 0))))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))
(*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))
(*.f64 2 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))
(+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)) (*.f64 x x))
(fma.f64 2 (*.f64 y y) (*.f64 x x))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))
(fma.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))) (+.f64 (*.f64 x x) (fma.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)))))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 x 4) (*.f64 y y))) (fma.f64 x x (fma.f64 2 (*.f64 y y) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 y y))))))
(+.f64 (*.f64 2 (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 (/.f64 (pow.f64 x 4) (*.f64 y y)) 0)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))))
(fma.f64 1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4))) (fma.f64 -1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4))) (fma.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))) (+.f64 (*.f64 x x) (fma.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)))))))
(+.f64 (+.f64 (*.f64 (/.f64 (/.f64 (pow.f64 x 6) (pow.f64 y 4)) 4) 0) (*.f64 1/8 (/.f64 (pow.f64 x 4) (*.f64 y y)))) (fma.f64 x x (fma.f64 2 (*.f64 y y) (*.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 y y))))))
(+.f64 0 (+.f64 (*.f64 2 (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 (/.f64 (pow.f64 x 4) (*.f64 y y)) 0))))
(+.f64 (pow.f64 y 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))
(*.f64 (*.f64 y y) (+.f64 (pow.f64 (sqrt.f64 2) 2) 1))
(*.f64 (*.f64 3 y) y)
(*.f64 y (*.f64 y 3))
(+.f64 (pow.f64 y 2) (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))))
(+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 x x (*.f64 y (*.f64 y 3)))
(+.f64 (pow.f64 y 2) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 (+.f64 (*.f64 5/64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)))) (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))) 2) (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6))))))) (pow.f64 x 8)))))
(+.f64 (*.f64 y y) (fma.f64 (+.f64 (/.f64 5/64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6))) (neg.f64 (+.f64 (/.f64 1/16 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6))) (pow.f64 (/.f64 -1/8 (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))) 2)))) (pow.f64 x 8) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)) (*.f64 x x))))
(+.f64 (fma.f64 (-.f64 (/.f64 5/512 (pow.f64 y 6)) (+.f64 (/.f64 1/128 (pow.f64 y 6)) (pow.f64 (/.f64 (/.f64 -1/16 (sqrt.f64 2)) (pow.f64 y 3)) 2))) (pow.f64 x 8) (*.f64 x x)) (*.f64 (*.f64 3 y) y))
(+.f64 (*.f64 y (*.f64 y 3)) (fma.f64 (-.f64 (*.f64 (/.f64 1/8 (pow.f64 y 6)) 1/64) (pow.f64 (/.f64 -1/16 (*.f64 (sqrt.f64 2) (pow.f64 y 3))) 2)) (pow.f64 x 8) (*.f64 x x)))
(+.f64 (*.f64 (-.f64 (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))) 2) (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6))))) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (*.f64 -1/2 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)))) (pow.f64 (/.f64 -1/8 (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))) 2)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))))) (pow.f64 x 10)) (+.f64 (pow.f64 y 2) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 (+.f64 (*.f64 5/64 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)))) (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))) 2) (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6))))))) (pow.f64 x 8))))))
(+.f64 (*.f64 y y) (fma.f64 (+.f64 (/.f64 5/64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6))) (neg.f64 (+.f64 (/.f64 1/16 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6))) (pow.f64 (/.f64 -1/8 (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))) 2)))) (pow.f64 x 8) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)) (*.f64 x x))))
(+.f64 (fma.f64 (-.f64 (/.f64 5/512 (pow.f64 y 6)) (+.f64 (/.f64 1/128 (pow.f64 y 6)) (pow.f64 (/.f64 (/.f64 -1/16 (sqrt.f64 2)) (pow.f64 y 3)) 2))) (pow.f64 x 8) (*.f64 x x)) (*.f64 (*.f64 3 y) y))
(+.f64 (*.f64 y (*.f64 y 3)) (fma.f64 (-.f64 (*.f64 (/.f64 1/8 (pow.f64 y 6)) 1/64) (pow.f64 (/.f64 -1/16 (*.f64 (sqrt.f64 2) (pow.f64 y 3))) 2)) (pow.f64 x 8) (*.f64 x x)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 y 2) (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))))
(+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 x x (*.f64 y (*.f64 y 3)))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))) (+.f64 (pow.f64 y 2) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2)))))))
(+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 x x (*.f64 y (*.f64 y 3)))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 4))) (+.f64 (pow.f64 y 2) (+.f64 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 4))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2)))))))))
(+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 x x (*.f64 y (*.f64 y 3)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 y 2) (+.f64 (pow.f64 x 2) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2))))
(+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 x x (*.f64 y (*.f64 y 3)))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))) (+.f64 (pow.f64 y 2) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2)))))))
(+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 x x (*.f64 y (*.f64 y 3)))
(+.f64 (*.f64 1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2))) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 4))) (+.f64 (pow.f64 y 2) (+.f64 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 4))) (+.f64 (pow.f64 x 2) (+.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) (*.f64 -1/4 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 2)))))))))
(+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 x x (*.f64 y (*.f64 y 3)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 x x (*.f64 y (*.f64 y 3)))
(+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (+.f64 (*.f64 (pow.f64 y 4) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 x 2))) (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 x 2))))) (pow.f64 x 2)))
(+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 x x (*.f64 y (*.f64 y 3)))
(+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (+.f64 (*.f64 (pow.f64 y 6) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 x 4))) (*.f64 -1/8 (/.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 x 4))))) (+.f64 (*.f64 (pow.f64 y 4) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 x 2))) (*.f64 1/4 (/.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 x 2))))) (pow.f64 x 2))))
(+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 x x (*.f64 y (*.f64 y 3)))
(*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2))
(*.f64 (*.f64 y y) (+.f64 (pow.f64 (sqrt.f64 2) 2) 1))
(*.f64 (*.f64 3 y) y)
(*.f64 y (*.f64 y 3))
(+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 x x (*.f64 y (*.f64 y 3)))
(+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (+.f64 (pow.f64 x 2) (*.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))))
(fma.f64 (+.f64 (pow.f64 (sqrt.f64 2) 2) 1) (*.f64 y y) (fma.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))) (+.f64 (*.f64 x x) (/.f64 (*.f64 -1/4 (pow.f64 x 4)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))))))
(+.f64 (fma.f64 x x (*.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 y y)))) (fma.f64 (*.f64 y y) 3 (*.f64 1/8 (/.f64 (pow.f64 x 4) (*.f64 y y)))))
(fma.f64 (*.f64 y y) 3 (+.f64 (*.f64 x x) (*.f64 (/.f64 (pow.f64 x 4) (*.f64 y y)) 0)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)))) (+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (+.f64 (pow.f64 x 2) (*.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))))))
(fma.f64 1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4))) (fma.f64 (+.f64 (pow.f64 (sqrt.f64 2) 2) 1) (*.f64 y y) (fma.f64 -1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4))) (fma.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))) (+.f64 (*.f64 x x) (/.f64 (*.f64 -1/4 (pow.f64 x 4)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))))))))
(+.f64 (*.f64 1/32 (/.f64 (pow.f64 x 6) (pow.f64 y 4))) (+.f64 (*.f64 -1/32 (/.f64 (pow.f64 x 6) (pow.f64 y 4))) (+.f64 (fma.f64 x x (*.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 y y)))) (fma.f64 (*.f64 y y) 3 (*.f64 1/8 (/.f64 (pow.f64 x 4) (*.f64 y y)))))))
(+.f64 (fma.f64 (*.f64 y y) 3 (*.f64 (/.f64 (pow.f64 x 6) (pow.f64 y 4)) -1/32)) (+.f64 (*.f64 1/32 (/.f64 (pow.f64 x 6) (pow.f64 y 4))) (+.f64 (*.f64 x x) (*.f64 (/.f64 (pow.f64 x 4) (*.f64 y y)) 0))))
(*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2))
(*.f64 (*.f64 y y) (+.f64 (pow.f64 (sqrt.f64 2) 2) 1))
(*.f64 (*.f64 3 y) y)
(*.f64 y (*.f64 y 3))
(+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (pow.f64 x 2))
(+.f64 (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y)))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 x x (*.f64 y (*.f64 y 3)))
(+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (+.f64 (pow.f64 x 2) (*.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))))
(fma.f64 (+.f64 (pow.f64 (sqrt.f64 2) 2) 1) (*.f64 y y) (fma.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))) (+.f64 (*.f64 x x) (/.f64 (*.f64 -1/4 (pow.f64 x 4)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))))))
(+.f64 (fma.f64 x x (*.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 y y)))) (fma.f64 (*.f64 y y) 3 (*.f64 1/8 (/.f64 (pow.f64 x 4) (*.f64 y y)))))
(fma.f64 (*.f64 y y) 3 (+.f64 (*.f64 x x) (*.f64 (/.f64 (pow.f64 x 4) (*.f64 y y)) 0)))
(+.f64 (*.f64 1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)))) (+.f64 (*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2)) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))) (+.f64 (pow.f64 x 2) (*.f64 -1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)))))))))
(fma.f64 1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4))) (fma.f64 (+.f64 (pow.f64 (sqrt.f64 2) 2) 1) (*.f64 y y) (fma.f64 -1/8 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4))) (fma.f64 1/4 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))) (+.f64 (*.f64 x x) (/.f64 (*.f64 -1/4 (pow.f64 x 4)) (*.f64 (pow.f64 (sqrt.f64 2) 2) (*.f64 y y))))))))
(+.f64 (*.f64 1/32 (/.f64 (pow.f64 x 6) (pow.f64 y 4))) (+.f64 (*.f64 -1/32 (/.f64 (pow.f64 x 6) (pow.f64 y 4))) (+.f64 (fma.f64 x x (*.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 y y)))) (fma.f64 (*.f64 y y) 3 (*.f64 1/8 (/.f64 (pow.f64 x 4) (*.f64 y y)))))))
(+.f64 (fma.f64 (*.f64 y y) 3 (*.f64 (/.f64 (pow.f64 x 6) (pow.f64 y 4)) -1/32)) (+.f64 (*.f64 1/32 (/.f64 (pow.f64 x 6) (pow.f64 y 4))) (+.f64 (*.f64 x x) (*.f64 (/.f64 (pow.f64 x 4) (*.f64 y y)) 0))))
(*.f64 (sqrt.f64 2) y)
(*.f64 (sqrt.f64 2) y)
(*.f64 (sqrt.f64 2) y)
(*.f64 (sqrt.f64 2) y)
(*.f64 (sqrt.f64 2) y)
(*.f64 (sqrt.f64 2) y)
(*.f64 (sqrt.f64 2) y)
(*.f64 (sqrt.f64 2) y)
(*.f64 -1 (*.f64 (sqrt.f64 2) y))
(neg.f64 (*.f64 (sqrt.f64 2) y))
(*.f64 (sqrt.f64 2) (neg.f64 y))
(*.f64 -1 (*.f64 (sqrt.f64 2) y))
(neg.f64 (*.f64 (sqrt.f64 2) y))
(*.f64 (sqrt.f64 2) (neg.f64 y))
(*.f64 -1 (*.f64 (sqrt.f64 2) y))
(neg.f64 (*.f64 (sqrt.f64 2) y))
(*.f64 (sqrt.f64 2) (neg.f64 y))
(*.f64 -1 (*.f64 (sqrt.f64 2) y))
(neg.f64 (*.f64 (sqrt.f64 2) y))
(*.f64 (sqrt.f64 2) (neg.f64 y))
(*.f64 (sqrt.f64 2) y)
(+.f64 (*.f64 (sqrt.f64 2) y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y))))
(fma.f64 (sqrt.f64 2) y (/.f64 (*.f64 1/2 (*.f64 x x)) (*.f64 (sqrt.f64 2) y)))
(fma.f64 (sqrt.f64 2) y (/.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) y) (sqrt.f64 2)))
(fma.f64 1/2 (/.f64 x (*.f64 y (/.f64 (sqrt.f64 2) x))) (*.f64 (sqrt.f64 2) y))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3)))) (+.f64 (*.f64 (sqrt.f64 2) y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y)))))
(fma.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))) (fma.f64 (sqrt.f64 2) y (/.f64 (*.f64 1/2 (*.f64 x x)) (*.f64 (sqrt.f64 2) y))))
(+.f64 (fma.f64 (sqrt.f64 2) y (/.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) y) (sqrt.f64 2))) (*.f64 (/.f64 -1/16 (sqrt.f64 2)) (/.f64 (pow.f64 x 4) (pow.f64 y 3))))
(+.f64 (fma.f64 1/2 (/.f64 x (*.f64 y (/.f64 (sqrt.f64 2) x))) (*.f64 (sqrt.f64 2) y)) (*.f64 (/.f64 -1/16 (*.f64 (sqrt.f64 2) (pow.f64 y 3))) (pow.f64 x 4)))
(+.f64 (*.f64 1/16 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 5) (pow.f64 y 5)))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3)))) (+.f64 (*.f64 (sqrt.f64 2) y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y))))))
(fma.f64 1/16 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 5) (pow.f64 y 5))) (fma.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))) (fma.f64 (sqrt.f64 2) y (/.f64 (*.f64 1/2 (*.f64 x x)) (*.f64 (sqrt.f64 2) y)))))
(+.f64 (fma.f64 (sqrt.f64 2) y (/.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) y) (sqrt.f64 2))) (fma.f64 1/16 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 5) (pow.f64 y 5))) (*.f64 (/.f64 -1/16 (sqrt.f64 2)) (/.f64 (pow.f64 x 4) (pow.f64 y 3)))))
(+.f64 (fma.f64 1/2 (/.f64 x (*.f64 y (/.f64 (sqrt.f64 2) x))) (*.f64 (sqrt.f64 2) y)) (fma.f64 1/16 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 5) (pow.f64 y 5))) (*.f64 (/.f64 -1/16 (*.f64 (sqrt.f64 2) (pow.f64 y 3))) (pow.f64 x 4))))
x
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) x)
(fma.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 2) 2) (/.f64 x (*.f64 y y))) x)
(+.f64 x (/.f64 1 (/.f64 x (*.f64 y y))))
(+.f64 x (/.f64 (*.f64 y y) x))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3))) x))
(fma.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 2) 2) (/.f64 x (*.f64 y y))) (fma.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3)) x))
(+.f64 (+.f64 x (/.f64 1 (/.f64 x (*.f64 y y)))) (/.f64 -1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))
(+.f64 (+.f64 x (/.f64 (*.f64 y y) x)) (*.f64 (/.f64 -1/2 (pow.f64 x 3)) (pow.f64 y 4)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) (+.f64 (*.f64 1/16 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 5))) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3))) x)))
(fma.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 2) 2) (/.f64 x (*.f64 y y))) (fma.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 2) 6) (/.f64 (pow.f64 x 5) (pow.f64 y 6))) (fma.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3)) x)))
(+.f64 (+.f64 (+.f64 x (/.f64 1 (/.f64 x (*.f64 y y)))) (/.f64 -1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 4)))) (/.f64 (*.f64 1/2 (pow.f64 y 6)) (pow.f64 x 5)))
(+.f64 x (+.f64 (*.f64 (/.f64 -1/2 (pow.f64 x 3)) (pow.f64 y 4)) (+.f64 (/.f64 (*.f64 y y) x) (*.f64 (/.f64 1/2 (pow.f64 x 5)) (pow.f64 y 6)))))
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) (*.f64 -1 x))
(fma.f64 -1/2 (/.f64 (pow.f64 (sqrt.f64 2) 2) (/.f64 x (*.f64 y y))) (neg.f64 x))
(-.f64 (/.f64 -1 (/.f64 x (*.f64 y y))) x)
(-.f64 (/.f64 (*.f64 (neg.f64 y) y) x) x)
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) (+.f64 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3))) (*.f64 -1 x)))
(fma.f64 -1/2 (/.f64 (pow.f64 (sqrt.f64 2) 2) (/.f64 x (*.f64 y y))) (fma.f64 1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3)) (neg.f64 x)))
(-.f64 (+.f64 (/.f64 -1 (/.f64 x (*.f64 y y))) (/.f64 1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 4)))) x)
(-.f64 (/.f64 (*.f64 (neg.f64 y) y) x) (-.f64 x (/.f64 (*.f64 (pow.f64 y 4) 1/2) (pow.f64 x 3))))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) (+.f64 (*.f64 -1/16 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 5))) (+.f64 (*.f64 1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3))) (*.f64 -1 x))))
(fma.f64 -1/2 (/.f64 (pow.f64 (sqrt.f64 2) 2) (/.f64 x (*.f64 y y))) (fma.f64 -1/16 (/.f64 (pow.f64 (sqrt.f64 2) 6) (/.f64 (pow.f64 x 5) (pow.f64 y 6))) (fma.f64 1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3)) (neg.f64 x))))
(+.f64 (/.f64 -1 (/.f64 x (*.f64 y y))) (-.f64 (+.f64 (/.f64 1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 4))) (/.f64 -1/2 (/.f64 (pow.f64 x 5) (pow.f64 y 6)))) x))
(+.f64 (-.f64 (/.f64 (*.f64 (neg.f64 y) y) x) (-.f64 x (/.f64 (*.f64 (pow.f64 y 4) 1/2) (pow.f64 x 3)))) (*.f64 (/.f64 -1/2 (pow.f64 x 5)) (pow.f64 y 6)))
x
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) x)
(fma.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 2) 2) (/.f64 x (*.f64 y y))) x)
(+.f64 x (/.f64 1 (/.f64 x (*.f64 y y))))
(+.f64 x (/.f64 (*.f64 y y) x))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3))) x))
(fma.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 2) 2) (/.f64 x (*.f64 y y))) (fma.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3)) x))
(+.f64 (+.f64 x (/.f64 1 (/.f64 x (*.f64 y y)))) (/.f64 -1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 4))))
(+.f64 (+.f64 x (/.f64 (*.f64 y y) x)) (*.f64 (/.f64 -1/2 (pow.f64 x 3)) (pow.f64 y 4)))
(+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 2) (pow.f64 y 2)) x)) (+.f64 (*.f64 1/16 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 6) (pow.f64 y 6)) (pow.f64 x 5))) (+.f64 (*.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3))) x)))
(fma.f64 1/2 (/.f64 (pow.f64 (sqrt.f64 2) 2) (/.f64 x (*.f64 y y))) (fma.f64 1/16 (/.f64 (pow.f64 (sqrt.f64 2) 6) (/.f64 (pow.f64 x 5) (pow.f64 y 6))) (fma.f64 -1/8 (/.f64 (*.f64 (pow.f64 (sqrt.f64 2) 4) (pow.f64 y 4)) (pow.f64 x 3)) x)))
(+.f64 (+.f64 (+.f64 x (/.f64 1 (/.f64 x (*.f64 y y)))) (/.f64 -1/2 (/.f64 (pow.f64 x 3) (pow.f64 y 4)))) (/.f64 (*.f64 1/2 (pow.f64 y 6)) (pow.f64 x 5)))
(+.f64 x (+.f64 (*.f64 (/.f64 -1/2 (pow.f64 x 3)) (pow.f64 y 4)) (+.f64 (/.f64 (*.f64 y y) x) (*.f64 (/.f64 1/2 (pow.f64 x 5)) (pow.f64 y 6)))))
(*.f64 (sqrt.f64 2) y)
(+.f64 (*.f64 (sqrt.f64 2) y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y))))
(fma.f64 (sqrt.f64 2) y (/.f64 (*.f64 1/2 (*.f64 x x)) (*.f64 (sqrt.f64 2) y)))
(fma.f64 (sqrt.f64 2) y (/.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) y) (sqrt.f64 2)))
(fma.f64 1/2 (/.f64 x (*.f64 y (/.f64 (sqrt.f64 2) x))) (*.f64 (sqrt.f64 2) y))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3)))) (+.f64 (*.f64 (sqrt.f64 2) y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y)))))
(fma.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))) (fma.f64 (sqrt.f64 2) y (/.f64 (*.f64 1/2 (*.f64 x x)) (*.f64 (sqrt.f64 2) y))))
(+.f64 (fma.f64 (sqrt.f64 2) y (/.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) y) (sqrt.f64 2))) (*.f64 (/.f64 -1/16 (sqrt.f64 2)) (/.f64 (pow.f64 x 4) (pow.f64 y 3))))
(+.f64 (fma.f64 1/2 (/.f64 x (*.f64 y (/.f64 (sqrt.f64 2) x))) (*.f64 (sqrt.f64 2) y)) (*.f64 (/.f64 -1/16 (*.f64 (sqrt.f64 2) (pow.f64 y 3))) (pow.f64 x 4)))
(+.f64 (*.f64 1/16 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 5) (pow.f64 y 5)))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3)))) (+.f64 (*.f64 (sqrt.f64 2) y) (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y))))))
(fma.f64 1/16 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 5) (pow.f64 y 5))) (fma.f64 -1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))) (fma.f64 (sqrt.f64 2) y (/.f64 (*.f64 1/2 (*.f64 x x)) (*.f64 (sqrt.f64 2) y)))))
(+.f64 (fma.f64 (sqrt.f64 2) y (/.f64 (/.f64 (*.f64 (*.f64 x x) 1/2) y) (sqrt.f64 2))) (fma.f64 1/16 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 5) (pow.f64 y 5))) (*.f64 (/.f64 -1/16 (sqrt.f64 2)) (/.f64 (pow.f64 x 4) (pow.f64 y 3)))))
(+.f64 (fma.f64 1/2 (/.f64 x (*.f64 y (/.f64 (sqrt.f64 2) x))) (*.f64 (sqrt.f64 2) y)) (fma.f64 1/16 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 5) (pow.f64 y 5))) (*.f64 (/.f64 -1/16 (*.f64 (sqrt.f64 2) (pow.f64 y 3))) (pow.f64 x 4))))
(*.f64 -1 (*.f64 (sqrt.f64 2) y))
(neg.f64 (*.f64 (sqrt.f64 2) y))
(*.f64 (sqrt.f64 2) (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 2) y)) (*.f64 -1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y))))
(fma.f64 -1 (*.f64 (sqrt.f64 2) y) (/.f64 (*.f64 -1/2 (*.f64 x x)) (*.f64 (sqrt.f64 2) y)))
(-.f64 (*.f64 -1/2 (*.f64 (/.f64 x (sqrt.f64 2)) (/.f64 x y))) (*.f64 (sqrt.f64 2) y))
(-.f64 (/.f64 (/.f64 (*.f64 x (*.f64 x -1/2)) y) (sqrt.f64 2)) (*.f64 (sqrt.f64 2) y))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 2) y)) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y))) (*.f64 1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))))))
(fma.f64 -1 (*.f64 (sqrt.f64 2) y) (fma.f64 -1/2 (/.f64 (*.f64 x x) (*.f64 (sqrt.f64 2) y)) (*.f64 1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3))))))
(-.f64 (fma.f64 1/8 (/.f64 (/.f64 (/.f64 (pow.f64 x 4) (sqrt.f64 2)) 2) (pow.f64 y 3)) (*.f64 -1/2 (*.f64 (/.f64 x (sqrt.f64 2)) (/.f64 x y)))) (*.f64 (sqrt.f64 2) y))
(-.f64 (fma.f64 -1/2 (/.f64 x (*.f64 y (/.f64 (sqrt.f64 2) x))) (*.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) (/.f64 1/16 (sqrt.f64 2)))) (*.f64 (sqrt.f64 2) y))
(+.f64 (*.f64 -1 (*.f64 (sqrt.f64 2) y)) (+.f64 (*.f64 -1/2 (/.f64 (pow.f64 x 2) (*.f64 (sqrt.f64 2) y))) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 5) (pow.f64 y 5)))) (*.f64 1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3)))))))
(fma.f64 -1 (*.f64 (sqrt.f64 2) y) (fma.f64 -1/2 (/.f64 (*.f64 x x) (*.f64 (sqrt.f64 2) y)) (fma.f64 -1/16 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 5) (pow.f64 y 5))) (*.f64 1/8 (/.f64 (pow.f64 x 4) (*.f64 (pow.f64 (sqrt.f64 2) 3) (pow.f64 y 3)))))))
(-.f64 (fma.f64 -1/2 (*.f64 (/.f64 x (sqrt.f64 2)) (/.f64 x y)) (fma.f64 1/8 (/.f64 (/.f64 (/.f64 (pow.f64 x 4) (sqrt.f64 2)) 2) (pow.f64 y 3)) (*.f64 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 5) (pow.f64 y 5))) -1/16))) (*.f64 (sqrt.f64 2) y))
(-.f64 (fma.f64 -1/2 (/.f64 x (*.f64 y (/.f64 (sqrt.f64 2) x))) (fma.f64 (/.f64 (pow.f64 x 6) (*.f64 (pow.f64 (sqrt.f64 2) 5) (pow.f64 y 5))) -1/16 (*.f64 (/.f64 (pow.f64 x 4) (pow.f64 y 3)) (/.f64 1/16 (sqrt.f64 2))))) (*.f64 (sqrt.f64 2) y))

eval155.0ms (2.1%)

Compiler

Compiled 4995 to 2891 computations (42.1% saved)

prune69.0ms (0.9%)

Pruning

12 alts after pruning (9 fresh and 3 done)

PrunedKeptTotal
New2627269
Fresh224
Picked101
Done235
Total26712279
Error
0b
Counts
279 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y (*.f64 y 2)))
0.1b
(+.f64 (*.f64 y (*.f64 y 3)) (*.f64 x x))
0.1b
(fma.f64 x x (*.f64 3 (*.f64 y y)))
29.7b
(*.f64 y (*.f64 y 3))
23.7b
(+.f64 (*.f64 x x) (*.f64 y y))
15.1b
(fma.f64 x x (sqrt.f64 (*.f64 9 (pow.f64 y 4))))
35.1b
(/.f64 (-.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 9 (pow.f64 y 4))) (-.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
30.0b
(pow.f64 (*.f64 y (sqrt.f64 3)) 2)
29.8b
(*.f64 3 (*.f64 y y))
0.1b
(fma.f64 3 (*.f64 y y) (*.f64 x x))
30.0b
(*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2))
27.6b
(*.f64 x x)
Compiler

Compiled 238 to 158 computations (33.6% saved)

localize11.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 y (*.f64 y 3)) (*.f64 x x))
0.2b
(*.f64 y (*.f64 y 3))
Compiler

Compiled 25 to 13 computations (48% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite60.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
853×pow1_binary64
792×add-log-exp_binary64
792×log1p-expm1-u_binary64
792×expm1-log1p-u_binary64
774×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify169.0ms (2.3%)

Algorithm
egg-herbie
Rules
1204×sqr-pow_binary64
666×cube-prod_binary64
661×fabs-mul_binary64
602×associate-*l*_binary64
514×pow-sqr_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
09267
119231
236231
367231
4154231
5481231
61821231
72138231
82428231
92679231
103016231
113512231
124173231
134963231
145887231
156412231
166825231
177216231
187335231
197379231
Stop Event
node limit
Counts
60 → 42
Calls
Call 1
Inputs
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
Outputs
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 3 (*.f64 y y))
Compiler

Compiled 12 to 6 computations (50% saved)

localize14.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 39 to 15 computations (61.5% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite72.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
591×fma-def_binary64
529×log-prod_binary64
416×pow-prod-down_binary64
283×pow2_binary64
267×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01017
122214
2314414
Stop Event
node limit
Counts
1 → 98
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y (*.f64 y 2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 y (+.f64 y (+.f64 y y)) (*.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (hypot.f64 x y) 4) (-.f64 (pow.f64 (hypot.f64 x y) 2) (*.f64 y (+.f64 y y)))) (/.f64 (*.f64 (pow.f64 y 4) 4) (-.f64 (pow.f64 (hypot.f64 x y) 2) (*.f64 y (+.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 y (+.f64 y (+.f64 y y)) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 y (+.f64 y (+.f64 y y)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 y (+.f64 y (+.f64 y y)) (*.f64 x x))) (cbrt.f64 (pow.f64 (hypot.f64 x (hypot.f64 y (*.f64 y (sqrt.f64 2)))) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (hypot.f64 x (hypot.f64 y (*.f64 y (sqrt.f64 2)))) 4)) (cbrt.f64 (fma.f64 y (+.f64 y (+.f64 y y)) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 x (hypot.f64 y (*.f64 y (sqrt.f64 2)))) (hypot.f64 x (hypot.f64 y (*.f64 y (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 y 6) 8 (pow.f64 (hypot.f64 x y) 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 (hypot.f64 x y) 4) (*.f64 (pow.f64 y 4) 4)) (*.f64 (pow.f64 (*.f64 (hypot.f64 x y) y) 2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (hypot.f64 x y) 4) (*.f64 (pow.f64 y 4) 4)) (/.f64 1 (-.f64 (pow.f64 (hypot.f64 x y) 2) (*.f64 y (+.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (+.f64 (pow.f64 (hypot.f64 x y) 4) (*.f64 (pow.f64 y 4) 4)) (*.f64 (pow.f64 (*.f64 (hypot.f64 x y) y) 2) 2)) (fma.f64 (pow.f64 y 6) 8 (pow.f64 (hypot.f64 x y) 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (pow.f64 (hypot.f64 x y) 2) (*.f64 y (+.f64 y y))) (-.f64 (pow.f64 (hypot.f64 x y) 4) (*.f64 (pow.f64 y 4) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 y 6) 8 (pow.f64 (hypot.f64 x y) 6)) (-.f64 (+.f64 (pow.f64 (hypot.f64 x y) 4) (*.f64 (pow.f64 y 4) 4)) (*.f64 (pow.f64 (*.f64 (hypot.f64 x y) y) 2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 y 6) 8 (pow.f64 (hypot.f64 x y) 6)) (fma.f64 (pow.f64 y 4) 4 (-.f64 (pow.f64 (hypot.f64 x y) 4) (*.f64 (pow.f64 (*.f64 (hypot.f64 x y) y) 2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (hypot.f64 x y) 4) (*.f64 (pow.f64 y 4) 4)) (-.f64 (pow.f64 (hypot.f64 x y) 2) (*.f64 y (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 (pow.f64 y 6) 8 (pow.f64 (hypot.f64 x y) 6))) (neg.f64 (-.f64 (+.f64 (pow.f64 (hypot.f64 x y) 4) (*.f64 (pow.f64 y 4) 4)) (*.f64 (pow.f64 (*.f64 (hypot.f64 x y) y) 2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (hypot.f64 x y) 4) (*.f64 (pow.f64 y 4) 4))) (neg.f64 (-.f64 (pow.f64 (hypot.f64 x y) 2) (*.f64 y (+.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x 6) (pow.f64 (*.f64 y (+.f64 y (+.f64 y y))) 3)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 (*.f64 y (+.f64 y (+.f64 y y))) 2) (*.f64 (*.f64 x x) (*.f64 y (+.f64 y (+.f64 y y)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x 4) (pow.f64 (*.f64 y (+.f64 y (+.f64 y y))) 2)) (-.f64 (*.f64 x x) (*.f64 y (+.f64 y (+.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 y 4) 4) (pow.f64 (hypot.f64 x y) 4)) (-.f64 (*.f64 y (+.f64 y y)) (pow.f64 (hypot.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 y (+.f64 y (+.f64 y y)) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 x (hypot.f64 y (*.f64 y (sqrt.f64 2)))) 4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 x (hypot.f64 y (*.f64 y (sqrt.f64 2)))) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 y (+.f64 y (+.f64 y y)) (*.f64 x x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 x (hypot.f64 y (*.f64 y (sqrt.f64 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (+.f64 (pow.f64 (hypot.f64 x y) 4) (*.f64 (pow.f64 y 4) 4)) (*.f64 (pow.f64 (*.f64 (hypot.f64 x y) y) 2) 2)) (fma.f64 (pow.f64 y 6) 8 (pow.f64 (hypot.f64 x y) 6))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 (pow.f64 (hypot.f64 x y) 2) (*.f64 y (+.f64 y y))) (-.f64 (pow.f64 (hypot.f64 x y) 4) (*.f64 (pow.f64 y 4) 4))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (hypot.f64 x (hypot.f64 y (*.f64 y (sqrt.f64 2)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 y (+.f64 y (+.f64 y y)) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 y (+.f64 y (+.f64 y y)) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x x))) (exp.f64 (*.f64 y (+.f64 y (+.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x x))) (pow.f64 (pow.f64 (exp.f64 y) 3) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 x y) 2))) (pow.f64 (exp.f64 y) (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (pow.f64 (hypot.f64 x y) 2)) (+.f64 1 (expm1.f64 (*.f64 y (+.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 x y) 2))) (+.f64 1 (expm1.f64 (*.f64 y (+.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y (+.f64 y y)))) (exp.f64 (pow.f64 (hypot.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 y) (+.f64 y y)) (+.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 (+.f64 y y)))) (+.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 (+.f64 y (+.f64 y y)))) (pow.f64 (exp.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 y (+.f64 y (+.f64 y y)))) (+.f64 1 (expm1.f64 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 y) 3) y) (+.f64 1 (expm1.f64 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (hypot.f64 x (hypot.f64 y (*.f64 y (sqrt.f64 2)))) 6))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 y (+.f64 y (+.f64 y y)) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 y (+.f64 y (+.f64 y y)) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 y (+.f64 y (+.f64 y y)) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 y (+.f64 y (+.f64 y y)) (*.f64 x x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x x (*.f64 y (+.f64 y (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x x (*.f64 (*.f64 y (+.f64 y (+.f64 y y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 1 (*.f64 y (+.f64 y (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 1 (*.f64 (*.f64 y (+.f64 y (+.f64 y y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y y (fma.f64 x x (*.f64 y (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (+.f64 y y) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (+.f64 y (+.f64 y y)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) 2 (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) 1 (fma.f64 x x (*.f64 y (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (hypot.f64 x y) 2) 1 (*.f64 y (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 (*.f64 y y) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 y y) y (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (+.f64 y y)) 1 (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x x) (*.f64 y (+.f64 y (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x x) (*.f64 (*.f64 y (+.f64 y (+.f64 y y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y y) (fma.f64 x x (*.f64 y (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 (hypot.f64 x y) 2) (*.f64 y (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y (+.f64 y y)) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y (+.f64 y (+.f64 y y))) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (*.f64 y y) 4)) (*.f64 (cbrt.f64 (+.f64 y y)) y) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) y) (fma.f64 x x (*.f64 y (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (+.f64 y y)) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 y) y) (pow.f64 (cbrt.f64 y) 2) (fma.f64 x x (*.f64 y (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 y) y) (*.f64 (pow.f64 (cbrt.f64 y) 2) 2) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 y (+.f64 y y))) (cbrt.f64 (*.f64 (pow.f64 y 4) 4)) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 y 4) 4)) (cbrt.f64 (*.f64 y (+.f64 y y))) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) (cbrt.f64 (pow.f64 (hypot.f64 x y) 4)) (*.f64 y (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (hypot.f64 x y) 4)) (pow.f64 (cbrt.f64 (hypot.f64 x y)) 2) (*.f64 y (+.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 (+.f64 y (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) x) (*.f64 (*.f64 y (+.f64 y (+.f64 y y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x) x) (pow.f64 (cbrt.f64 x) 2) (*.f64 y (+.f64 y (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x) x) (pow.f64 (cbrt.f64 x) 2) (*.f64 (*.f64 y (+.f64 y (+.f64 y y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 y y)) (*.f64 (sqrt.f64 (+.f64 y y)) y) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (pow.f64 x 3/2) (*.f64 y (+.f64 y (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (pow.f64 x 3/2) (*.f64 (*.f64 y (+.f64 y (+.f64 y y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 2)) (*.f64 y (sqrt.f64 2)) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 x y) (hypot.f64 x y) (*.f64 y (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (pow.f64 y 3/2) (fma.f64 x x (*.f64 y (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (+.f64 y y)) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.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 y x) 2)))) (*.f64 y (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x 4) (pow.f64 y 4)) (/.f64 1 (fma.f64 x x (*.f64 (neg.f64 y) y))) (*.f64 y (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 y (+.f64 y (+.f64 y y)))) 2) (cbrt.f64 (*.f64 y (+.f64 y (+.f64 y y)))) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 y (*.f64 y (sqrt.f64 2))) (hypot.f64 y (*.f64 y (sqrt.f64 2))) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 y 3/2) (sqrt.f64 y) (fma.f64 x x (*.f64 y (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3/2) (sqrt.f64 x) (*.f64 y (+.f64 y (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3/2) (sqrt.f64 x) (*.f64 (*.f64 y (+.f64 y (+.f64 y y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 y) 5) (cbrt.f64 y) (fma.f64 x x (*.f64 y (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 5) (cbrt.f64 x) (*.f64 y (+.f64 y (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 5) (cbrt.f64 x) (*.f64 (*.f64 y (+.f64 y (+.f64 y y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (cbrt.f64 (*.f64 (*.f64 y y) 4))) (cbrt.f64 (+.f64 y y)) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 (+.f64 y y))) (sqrt.f64 (+.f64 y y)) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 y y) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (pow.f64 (hypot.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 y y) (sqrt.f64 y)) (sqrt.f64 y) (pow.f64 (hypot.f64 x y) 2))))))

simplify169.0ms (2.3%)

Algorithm
egg-herbie
Rules
1040×sqr-pow_binary64
734×fabs-mul_binary64
698×cube-prod_binary64
622×fma-def_binary64
484×unswap-sqr_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
013267
131231
266231
3132231
4305231
5853231
61448231
72367231
82715231
92961231
103295231
113773231
124382231
135099231
145996231
156696231
167153231
177584231
187738231
197806231
Stop Event
node limit
Counts
122 → 106
Calls
Call 1
Inputs
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
Outputs
(+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 y 2))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 y 2) (+.f64 (*.f64 2 (pow.f64 y 2)) (pow.f64 x 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(*.f64 3 (pow.f64 y 2))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(*.f64 3 (pow.f64 y 2))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 y (*.f64 y 3) (*.f64 x x))

localize44.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 x x) (*.f64 x x))
0.2b
(*.f64 3 (*.f64 y y))
1.1b
(-.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 9 (pow.f64 y 4)))
33.5b
(/.f64 (-.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 9 (pow.f64 y 4))) (-.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
Compiler

Compiled 78 to 33 computations (57.7% saved)

series8.0ms (0.1%)

Counts
3 → 60
Calls

15 calls:

TimeVariablePointExpression
1.0ms
x
@0
(/.f64 (-.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 9 (pow.f64 y 4))) (-.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
1.0ms
y
@0
(/.f64 (-.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 9 (pow.f64 y 4))) (-.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
1.0ms
x
@inf
(/.f64 (-.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 9 (pow.f64 y 4))) (-.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
1.0ms
y
@inf
(/.f64 (-.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 9 (pow.f64 y 4))) (-.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
0.0ms
x
@inf
(-.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 9 (pow.f64 y 4)))

rewrite114.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
849×fma-def_binary64
399×fma-neg_binary64
272×expm1-udef_binary64
272×log1p-udef_binary64
227×log-pow_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01554
136028
2504326
Stop Event
node limit
Counts
3 → 274
Calls
Call 1
Inputs
(/.f64 (-.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 9 (pow.f64 y 4))) (-.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
(-.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 9 (pow.f64 y 4)))
(*.f64 (*.f64 x x) (*.f64 x x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x x) (*.f64 y (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 y 3)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (pow.f64 x 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 x 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))) (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 x x (*.f64 y (*.f64 y 3))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (/.f64 1 (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x (*.f64 y (*.f64 y 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x x (*.f64 y (*.f64 y 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 3)))) (pow.f64 (cbrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 3)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 3)))) 2) (cbrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2)) (*.f64 (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (/.f64 1 (fma.f64 (*.f64 y y) -3 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 x (*.f64 y (sqrt.f64 3))) (hypot.f64 x (*.f64 y (sqrt.f64 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (*.f64 (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (/.f64 1 (fma.f64 (*.f64 y y) -3 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (/.f64 1 (neg.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 (*.f64 y y) -3 (*.f64 x x))) (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x))) 2)) (/.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (cbrt.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))) (/.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2)) 1) (/.f64 (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) 1) (/.f64 (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2)) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x))) 2)) (cbrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x))) 2)) (/.f64 (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (cbrt.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2)) (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))) (/.f64 (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (-.f64 (pow.f64 x 6) (*.f64 (pow.f64 y 6) 27))) (fma.f64 (*.f64 y (*.f64 y 3)) (fma.f64 x x (*.f64 y (*.f64 y 3))) (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (fma.f64 x x (*.f64 y (*.f64 y 3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x x (*.f64 y (*.f64 y 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x x (*.f64 y (*.f64 y 3))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x x (*.f64 y (*.f64 y 3)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 x (*.f64 y (sqrt.f64 3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (fma.f64 x x (*.f64 y (*.f64 y 3)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (neg.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x x (*.f64 y (*.f64 y 3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x x (*.f64 y (*.f64 y 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 x x (*.f64 y (*.f64 y 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x) x) (pow.f64 (pow.f64 (exp.f64 y) y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x x))) (pow.f64 (pow.f64 (exp.f64 y) y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x) x) (+.f64 1 (expm1.f64 (*.f64 y (*.f64 y 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x x))) (+.f64 1 (expm1.f64 (*.f64 y (*.f64 y 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 3) (pow.f64 (exp.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y (*.f64 y 3)))) (pow.f64 (exp.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 3) (+.f64 1 (expm1.f64 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 y (*.f64 y 3)))) (+.f64 1 (expm1.f64 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x x (*.f64 y (*.f64 y 3))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 3) (pow.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x x (*.f64 y (*.f64 y 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x x (*.f64 y (*.f64 y 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x x (*.f64 y (*.f64 y 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 x x (*.f64 y (*.f64 y 3)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x x (*.f64 y (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 1 (*.f64 y (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 4) (/.f64 1 (fma.f64 (*.f64 y y) -3 (*.f64 x x))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y (*.f64 y 3) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 y y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) 3 (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (*.f64 y 3)) 1 (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x x) (*.f64 y (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 y (*.f64 y 3)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (/.f64 (pow.f64 x 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 9 (pow.f64 y 4))) (cbrt.f64 (*.f64 y (*.f64 y 3))) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 x (cbrt.f64 x)) (*.f64 y (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) (*.f64 y (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 y 4)) (*.f64 (pow.f64 (cbrt.f64 y) 2) 3) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 y (*.f64 y 3))) (cbrt.f64 (*.f64 9 (pow.f64 y 4))) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (sqrt.f64 (pow.f64 x 3)) (*.f64 y (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) x) (*.f64 y (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (sqrt.f64 3)) (*.f64 y (sqrt.f64 3)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y 3) y (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 x)) (sqrt.f64 x) (*.f64 y (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (/.f64 (pow.f64 x 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x)))) (cbrt.f64 (/.f64 (pow.f64 x 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))) (cbrt.f64 (/.f64 (pow.f64 x 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x)))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (pow.f64 (*.f64 x (cbrt.f64 x)) 2)) (sqrt.f64 (*.f64 x (cbrt.f64 x))) (*.f64 y (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (pow.f64 x 3)) (sqrt.f64 x) (*.f64 y (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 (pow.f64 x 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x)))) (sqrt.f64 (/.f64 (pow.f64 x 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x)))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (cbrt.f64 (*.f64 (pow.f64 y 8) 81))) (sqrt.f64 (cbrt.f64 (*.f64 9 (pow.f64 y 4)))) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 x 1) (/.f64 (pow.f64 x 3) (fma.f64 (*.f64 y y) -3 (*.f64 x x))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 x x) 1) (/.f64 (*.f64 x x) (fma.f64 (*.f64 y y) -3 (*.f64 x x))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 x 3) 1) (/.f64 x (fma.f64 (*.f64 y y) -3 (*.f64 x x))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (*.f64 x (cbrt.f64 x)) 2) 1) (/.f64 (*.f64 x (cbrt.f64 x)) (fma.f64 (*.f64 y y) -3 (*.f64 x x))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 x (pow.f64 (cbrt.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x))) 2)) (/.f64 (pow.f64 x 3) (cbrt.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x)))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 x x) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x))) 2)) (/.f64 (*.f64 x x) (cbrt.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x)))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (pow.f64 (cbrt.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x))) 2)) (/.f64 (pow.f64 x 4) (cbrt.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x)))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 x 3) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x))) 2)) (/.f64 x (cbrt.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x)))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (*.f64 x (cbrt.f64 x)) 2) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x))) 2)) (/.f64 (*.f64 x (cbrt.f64 x)) (cbrt.f64 (fma.f64 (*.f64 y y) -3 (*.f64 x x)))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 x (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))) (/.f64 (pow.f64 x 3) (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 x 3) (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))) (/.f64 x (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (*.f64 x x) (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))) (/.f64 (*.f64 x x) (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))) (/.f64 (pow.f64 x 4) (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 (*.f64 x (cbrt.f64 x)) 2) (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))) (/.f64 (*.f64 x (cbrt.f64 x)) (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 x 4) (-.f64 (pow.f64 x 6) (*.f64 (pow.f64 y 6) 27))) (fma.f64 (*.f64 y (*.f64 y 3)) (fma.f64 x x (*.f64 y (*.f64 y 3))) (pow.f64 x 4)) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (pow.f64 x 4) (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (fma.f64 x x (*.f64 y (*.f64 y 3))) (neg.f64 (*.f64 9 (/.f64 (pow.f64 y 4) (fma.f64 (*.f64 y y) -3 (*.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 (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (cbrt.f64 (pow.f64 y 4))) (pow.f64 (cbrt.f64 y) 2) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 y 3) 1) y (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 y 3) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 y 3) (sqrt.f64 y)) (sqrt.f64 y) (*.f64 x x))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x 4) (*.f64 (pow.f64 y 4) -9))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x 4) (*.f64 (*.f64 (pow.f64 y 4) -9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x 4) (fma.f64 (pow.f64 y 4) -9 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (fma.f64 (*.f64 (pow.f64 y 4) -9) 1 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 9 (pow.f64 y 4)))) (cbrt.f64 (*.f64 (pow.f64 y 8) 81)) (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (*.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (+.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 y 4) -9) (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x (*.f64 y (*.f64 y 3))) (fma.f64 (*.f64 y y) -3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (cbrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2)) (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (pow.f64 x 4) 3) (*.f64 (pow.f64 (pow.f64 y 4) 3) 729)) (/.f64 1 (fma.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (*.f64 x x) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 x x) 4) (*.f64 (pow.f64 y 8) 81)) (/.f64 1 (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (*.f64 x x) 4)) (-.f64 (pow.f64 (pow.f64 x 4) 3) (*.f64 (pow.f64 (pow.f64 y 4) 3) 729))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4)) (-.f64 (pow.f64 (*.f64 x x) 4) (*.f64 (pow.f64 y 8) 81))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (pow.f64 x 4) 3) (*.f64 (pow.f64 (pow.f64 y 4) 3) 729)) (fma.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (*.f64 x x) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x x) 4) (*.f64 (pow.f64 y 8) 81)) (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (pow.f64 x 4) 3) (*.f64 (pow.f64 (pow.f64 y 4) 3) 729))) (neg.f64 (fma.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (*.f64 x x) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x x) 4) (*.f64 (pow.f64 y 8) 81))) (neg.f64 (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (pow.f64 x 4) 3) (pow.f64 (*.f64 (pow.f64 y 4) -9) 3)) (+.f64 (pow.f64 (*.f64 x x) 4) (-.f64 (*.f64 (*.f64 (pow.f64 y 4) -9) (*.f64 (pow.f64 y 4) -9)) (*.f64 (pow.f64 x 4) (*.f64 (pow.f64 y 4) -9)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 3) (pow.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) 3)) (+.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2) (-.f64 (*.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))) (*.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x x) 4) (*.f64 (*.f64 (pow.f64 y 4) -9) (*.f64 (pow.f64 y 4) -9))) (-.f64 (pow.f64 x 4) (*.f64 (pow.f64 y 4) -9)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2) (*.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))) (-.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (pow.f64 x 4))) (pow.f64 (exp.f64 (pow.f64 y 4)) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (pow.f64 x 4)) (+.f64 1 (expm1.f64 (*.f64 9 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (pow.f64 x 4))) (+.f64 1 (expm1.f64 (*.f64 9 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (pow.f64 x 4))) (exp.f64 (*.f64 (pow.f64 y 4) -9))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (pow.f64 x 4)) (/.f64 1 (pow.f64 (exp.f64 (pow.f64 y 4)) 9))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (pow.f64 x 4))) (/.f64 1 (pow.f64 (exp.f64 (pow.f64 y 4)) 9))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)))) (exp.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))) (exp.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))) (+.f64 1 (expm1.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (pow.f64 y 4) -9)) (exp.f64 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (pow.f64 (exp.f64 (pow.f64 y 4)) 9)) (exp.f64 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (pow.f64 y 4) -9)) (+.f64 1 (expm1.f64 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (pow.f64 (exp.f64 (pow.f64 y 4)) 9)) (+.f64 1 (expm1.f64 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (pow.f64 x 3) (*.f64 (pow.f64 y 4) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (pow.f64 x 3) (*.f64 (*.f64 (pow.f64 y 4) -9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (pow.f64 x 3) (fma.f64 (pow.f64 y 4) -9 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (pow.f64 x 3) (neg.f64 (-.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) (*.f64 x x) (*.f64 (pow.f64 y 4) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) (*.f64 x x) (*.f64 (*.f64 (pow.f64 y 4) -9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) (*.f64 x x) (fma.f64 (pow.f64 y 4) -9 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) (*.f64 x x) (neg.f64 (-.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 4) 1 (*.f64 (pow.f64 y 4) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 4) 1 (*.f64 (*.f64 (pow.f64 y 4) -9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 4) 1 (fma.f64 (pow.f64 y 4) -9 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 4) 1 (neg.f64 (-.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 9 (neg.f64 (pow.f64 y 4)) (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 1 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 1 (fma.f64 (*.f64 (pow.f64 y 4) -9) 1 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 1 (fma.f64 (neg.f64 (cbrt.f64 (*.f64 9 (pow.f64 y 4)))) (cbrt.f64 (*.f64 (pow.f64 y 8) 81)) (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 1 (*.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 1 (+.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y (*.f64 y 3)) (*.f64 (*.f64 y y) -3) (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x x (*.f64 y (*.f64 y 3))) (fma.f64 (*.f64 y y) -3 (*.f64 x x)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x x (*.f64 y (*.f64 y 3))) (fma.f64 (*.f64 y y) -3 (*.f64 x x)) (fma.f64 (*.f64 (pow.f64 y 4) -9) 1 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x x (*.f64 y (*.f64 y 3))) (fma.f64 (*.f64 y y) -3 (*.f64 x x)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 9 (pow.f64 y 4)))) (cbrt.f64 (*.f64 (pow.f64 y 8) 81)) (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x x (*.f64 y (*.f64 y 3))) (fma.f64 (*.f64 y y) -3 (*.f64 x x)) (*.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x x (*.f64 y (*.f64 y 3))) (fma.f64 (*.f64 y y) -3 (*.f64 x x)) (+.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 x 4) (*.f64 (pow.f64 y 4) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 x 4) (*.f64 (*.f64 (pow.f64 y 4) -9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 x 4) (fma.f64 (pow.f64 y 4) -9 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 x 4) (neg.f64 (-.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (fma.f64 (*.f64 (pow.f64 y 4) -9) 1 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 9 (pow.f64 y 4)))) (cbrt.f64 (*.f64 (pow.f64 y 8) 81)) (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (*.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) (+.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (pow.f64 y 4) -9) (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3) x (*.f64 (pow.f64 y 4) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3) x (*.f64 (*.f64 (pow.f64 y 4) -9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3) x (fma.f64 (pow.f64 y 4) -9 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 3) x (neg.f64 (-.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 y 8) 81)) (neg.f64 (cbrt.f64 (*.f64 9 (pow.f64 y 4)))) (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (pow.f64 x 3)) (*.f64 (pow.f64 y 4) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (pow.f64 x 3)) (*.f64 (*.f64 (pow.f64 y 4) -9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (pow.f64 x 3)) (fma.f64 (pow.f64 y 4) -9 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (pow.f64 x 3)) (neg.f64 (-.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 x)) (pow.f64 (*.f64 x (cbrt.f64 x)) 2) (*.f64 (pow.f64 y 4) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 x)) (pow.f64 (*.f64 x (cbrt.f64 x)) 2) (*.f64 (*.f64 (pow.f64 y 4) -9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 x)) (pow.f64 (*.f64 x (cbrt.f64 x)) 2) (fma.f64 (pow.f64 y 4) -9 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 x)) (pow.f64 (*.f64 x (cbrt.f64 x)) 2) (neg.f64 (-.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 x)) (*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 x x)) (*.f64 (pow.f64 y 4) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 x)) (*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 x x)) (*.f64 (*.f64 (pow.f64 y 4) -9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 x)) (*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 x x)) (fma.f64 (pow.f64 y 4) -9 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 x)) (*.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 x x)) (neg.f64 (-.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (cbrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (cbrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2)) (fma.f64 (*.f64 (pow.f64 y 4) -9) 1 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (cbrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 9 (pow.f64 y 4)))) (cbrt.f64 (*.f64 (pow.f64 y 8) 81)) (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (cbrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2)) (*.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (cbrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2)) (+.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2)) (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2)) (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (fma.f64 (*.f64 (pow.f64 y 4) -9) 1 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2)) (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 9 (pow.f64 y 4)))) (cbrt.f64 (*.f64 (pow.f64 y 8) 81)) (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2)) (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (*.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)) 2)) (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (+.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 x (cbrt.f64 x)) 2) (*.f64 x (cbrt.f64 x)) (*.f64 (pow.f64 y 4) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 x (cbrt.f64 x)) 2) (*.f64 x (cbrt.f64 x)) (*.f64 (*.f64 (pow.f64 y 4) -9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 x (cbrt.f64 x)) 2) (*.f64 x (cbrt.f64 x)) (fma.f64 (pow.f64 y 4) -9 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 x (cbrt.f64 x)) 2) (*.f64 x (cbrt.f64 x)) (neg.f64 (-.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (pow.f64 x 3)) (*.f64 (pow.f64 y 4) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (pow.f64 x 3)) (*.f64 (*.f64 (pow.f64 y 4) -9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (pow.f64 x 3)) (fma.f64 (pow.f64 y 4) -9 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (pow.f64 x 3)) (neg.f64 (-.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (fma.f64 (*.f64 (pow.f64 y 4) -9) 1 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 9 (pow.f64 y 4)))) (cbrt.f64 (*.f64 (pow.f64 y 8) 81)) (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (*.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4))) (+.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 y 4)) 9 (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 y y) -3) (*.f64 y (*.f64 y 3)) (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (pow.f64 x 4) 3) (*.f64 (pow.f64 (pow.f64 y 4) 3) 729)) (/.f64 1 (fma.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (*.f64 x x) 4))) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (pow.f64 x 4) 3) (*.f64 (pow.f64 (pow.f64 y 4) 3) 729)) (/.f64 1 (fma.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (*.f64 x x) 4))) (fma.f64 (*.f64 (pow.f64 y 4) -9) 1 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (pow.f64 x 4) 3) (*.f64 (pow.f64 (pow.f64 y 4) 3) 729)) (/.f64 1 (fma.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (*.f64 x x) 4))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 9 (pow.f64 y 4)))) (cbrt.f64 (*.f64 (pow.f64 y 8) 81)) (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (pow.f64 x 4) 3) (*.f64 (pow.f64 (pow.f64 y 4) 3) 729)) (/.f64 1 (fma.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (*.f64 x x) 4))) (*.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (pow.f64 x 4) 3) (*.f64 (pow.f64 (pow.f64 y 4) 3) 729)) (/.f64 1 (fma.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4)) (pow.f64 (*.f64 x x) 4))) (+.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x x) 4) (*.f64 (pow.f64 y 8) 81)) (/.f64 1 (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4))) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x x) 4) (*.f64 (pow.f64 y 8) 81)) (/.f64 1 (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4))) (fma.f64 (*.f64 (pow.f64 y 4) -9) 1 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x x) 4) (*.f64 (pow.f64 y 8) 81)) (/.f64 1 (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 9 (pow.f64 y 4)))) (cbrt.f64 (*.f64 (pow.f64 y 8) 81)) (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x x) 4) (*.f64 (pow.f64 y 8) 81)) (/.f64 1 (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4))) (*.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x x) 4) (*.f64 (pow.f64 y 8) 81)) (/.f64 1 (fma.f64 9 (pow.f64 y 4) (pow.f64 x 4))) (+.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))) (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))) (cbrt.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))) (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 (pow.f64 y 4) -9)) (cbrt.f64 (*.f64 (pow.f64 y 4) -9))) (cbrt.f64 (*.f64 (pow.f64 y 4) -9)) (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))) (sqrt.f64 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))) (fma.f64 (pow.f64 y 4) -9 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (pow.f64 y 4) -9)) (sqrt.f64 (*.f64 (pow.f64 y 4) -9)) (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 9 (pow.f64 y 4)) (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (*.f64 (pow.f64 y 8) 81))) (cbrt.f64 (*.f64 9 (pow.f64 y 4))) (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x x) (*.f64 x (cbrt.f64 x))) (pow.f64 (cbrt.f64 x) 2) (*.f64 (pow.f64 y 4) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x x) (*.f64 x (cbrt.f64 x))) (pow.f64 (cbrt.f64 x) 2) (*.f64 (*.f64 (pow.f64 y 4) -9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x x) (*.f64 x (cbrt.f64 x))) (pow.f64 (cbrt.f64 x) 2) (fma.f64 (pow.f64 y 4) -9 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x x) (*.f64 x (cbrt.f64 x))) (pow.f64 (cbrt.f64 x) 2) (neg.f64 (-.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3) 1) x (*.f64 (pow.f64 y 4) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3) 1) x (*.f64 (*.f64 (pow.f64 y 4) -9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3) 1) x (fma.f64 (pow.f64 y 4) -9 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3) 1) x (neg.f64 (-.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 (pow.f64 y 4) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 (*.f64 (pow.f64 y 4) -9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (fma.f64 (pow.f64 y 4) -9 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (neg.f64 (-.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3) (sqrt.f64 x)) (sqrt.f64 x) (*.f64 (pow.f64 y 4) -9))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3) (sqrt.f64 x)) (sqrt.f64 x) (*.f64 (*.f64 (pow.f64 y 4) -9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3) (sqrt.f64 x)) (sqrt.f64 x) (fma.f64 (pow.f64 y 4) -9 (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 x 3) (sqrt.f64 x)) (sqrt.f64 x) (neg.f64 (-.f64 (*.f64 9 (pow.f64 y 4)) (fma.f64 (pow.f64 y 4) -9 (*.f64 9 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -9 (*.f64 y y)) (*.f64 y y) (pow.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -9 (cbrt.f64 (pow.f64 y 8))) (cbrt.f64 (pow.f64 y 4)) (pow.f64 x 4))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 x 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 x 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (cbrt.f64 x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 x 4) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 x 4) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 4 (log.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 4 (log.f64 x)) 1))))))

simplify196.0ms (2.7%)

Algorithm
egg-herbie
Rules
1066×sqr-pow_binary64
684×unswap-sqr_binary64
529×associate-*l*_binary64
500×cube-prod_binary64
407×*-commutative_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
015546
131510
263510
3141510
4442510
51674510
63125510
73363510
83710510
94095510
104609510
115289510
126145510
136641510
146946510
157199510
167314510
177360510
Stop Event
node limit
Counts
334 → 281
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 -9 (pow.f64 y 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(pow.f64 x 4)
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(pow.f64 x 4)
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(pow.f64 x 4)
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(*.f64 -9 (pow.f64 y 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(*.f64 -9 (pow.f64 y 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
Outputs
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(*.f64 -9 (pow.f64 y 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(pow.f64 x 4)
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(pow.f64 x 4)
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(pow.f64 x 4)
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(*.f64 -9 (pow.f64 y 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(*.f64 -9 (pow.f64 y 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(+.f64 (*.f64 -9 (pow.f64 y 4)) (pow.f64 x 4))
(fma.f64 -9 (pow.f64 y 4) (pow.f64 x 4))
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)
(pow.f64 x 4)

localize13.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 x x (sqrt.f64 (*.f64 9 (pow.f64 y 4))))
0.1b
(*.f64 9 (pow.f64 y 4))
19.3b
(sqrt.f64 (*.f64 9 (pow.f64 y 4)))
Compiler

Compiled 29 to 21 computations (27.6% saved)

series3.0ms (0%)

Counts
3 → 36
Calls

12 calls:

TimeVariablePointExpression
0.0ms
y
@inf
(*.f64 9 (pow.f64 y 4))
0.0ms
y
@0
(*.f64 9 (pow.f64 y 4))
0.0ms
y
@0
(sqrt.f64 (*.f64 9 (pow.f64 y 4)))
0.0ms
y
@inf
(sqrt.f64 (*.f64 9 (pow.f64 y 4)))
0.0ms
x
@0
(fma.f64 x x (sqrt.f64 (*.f64 9 (pow.f64 y 4))))

rewrite75.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
763×pow1_binary64
709×add-log-exp_binary64
709×log1p-expm1-u_binary64
709×expm1-log1p-u_binary64
692×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0929
118725
2201925
Stop Event
node limit
Counts
3 → 57
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 9 (pow.f64 y 4)))
(*.f64 9 (pow.f64 y 4))
(fma.f64 x x (sqrt.f64 (*.f64 9 (pow.f64 y 4))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (*.f64 y y) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y y) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (*.f64 y y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y y) 3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y y) (pow.f64 9 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 9 (pow.f64 y 4))) (cbrt.f64 (*.f64 (*.f64 y y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (*.f64 y y) 3)) (cbrt.f64 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 3) y) (*.f64 (sqrt.f64 3) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (*.f64 (pow.f64 y 8) 81))) (sqrt.f64 (cbrt.f64 (*.f64 9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 9 1/2) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (*.f64 (*.f64 y y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 y 8) 81)) 1/2) (pow.f64 (cbrt.f64 (*.f64 9 (pow.f64 y 4))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 9 (pow.f64 y 4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 y y) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 9 (pow.f64 y 4)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 y y) 3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 3) y) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (*.f64 y y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 3) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 9 (pow.f64 y 4)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 y y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 y y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 y y) 3)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 9 (pow.f64 y 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 9 (pow.f64 y 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 y y) 3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 y 8) 81) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 9 (pow.f64 y 4)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 9 (pow.f64 y 4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 y 8) 81))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 9) (pow.f64 y 4)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 9 (pow.f64 y 4)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 9 (pow.f64 y 4))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y y) 3) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x x) 1) (*.f64 (*.f64 y y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 x x (*.f64 (*.f64 y y) 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x (*.f64 (*.f64 y y) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x x (*.f64 (*.f64 y y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x x (*.f64 (*.f64 y y) 3))) (pow.f64 (cbrt.f64 (fma.f64 x x (*.f64 (*.f64 y y) 3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x x (*.f64 (*.f64 y y) 3))) 2) (cbrt.f64 (fma.f64 x x (*.f64 (*.f64 y y) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 x (*.f64 (sqrt.f64 3) y)) (hypot.f64 x (*.f64 (sqrt.f64 3) y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x x) 3) (pow.f64 (*.f64 9 (pow.f64 y 4)) 3/2)) (+.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (-.f64 (*.f64 9 (pow.f64 y 4)) (*.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x x) (*.f64 x x)) (*.f64 9 (pow.f64 y 4))) (-.f64 (*.f64 x x) (*.f64 (*.f64 y y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x x (*.f64 (*.f64 y y) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x x (*.f64 (*.f64 y y) 3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x x (*.f64 (*.f64 y y) 3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 x (*.f64 (sqrt.f64 3) y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x x (*.f64 (*.f64 y y) 3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x x (*.f64 (*.f64 y y) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x x (*.f64 (*.f64 y y) 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x x (*.f64 (*.f64 y y) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x x (*.f64 (*.f64 y y) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x x (*.f64 (*.f64 y y) 3))))))))

simplify174.0ms (2.4%)

Algorithm
egg-herbie
Rules
1204×sqr-pow_binary64
666×cube-prod_binary64
662×fabs-mul_binary64
607×associate-*l*_binary64
514×pow-sqr_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
09351
119315
236315
368315
4155315
5473315
61826315
72132315
82422315
92673315
103010315
113504315
124163315
134955315
145879315
156404315
166819315
177208315
187329315
197373315
Stop Event
node limit
Counts
93 → 62
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
Outputs
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 3 (*.f64 y y)) (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))

eval901.0ms (12.3%)

Compiler

Compiled 12458 to 7129 computations (42.8% saved)

prune105.0ms (1.4%)

Pruning

12 alts after pruning (6 fresh and 6 done)

PrunedKeptTotal
New5864590
Fresh224
Picked101
Done167
Total59012602
Error
0b
Counts
602 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y (*.f64 y 2)))
0.1b
(+.f64 (*.f64 y (*.f64 y 3)) (*.f64 x x))
0.1b
(fma.f64 x x (*.f64 3 (*.f64 y y)))
48.9b
(/.f64 (*.f64 -9 (pow.f64 y 4)) (-.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
30.0b
(*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2))
27.6b
(*.f64 x x)
0.1b
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
29.7b
(*.f64 y (*.f64 y 3))
23.7b
(+.f64 (*.f64 x x) (*.f64 y y))
44.0b
(sqrt.f64 (*.f64 9 (pow.f64 y 4)))
29.8b
(*.f64 3 (*.f64 y y))
30.0b
(pow.f64 (*.f64 y (sqrt.f64 3)) 2)
Compiler

Compiled 183 to 131 computations (28.4% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
Compiler

Compiled 19 to 7 computations (63.2% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite74.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
585×pow1_binary64
538×add-log-exp_binary64
538×log1p-expm1-u_binary64
538×expm1-log1p-u_binary64
524×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify159.0ms (2.2%)

Algorithm
egg-herbie
Rules
1204×sqr-pow_binary64
666×cube-prod_binary64
661×fabs-mul_binary64
602×associate-*l*_binary64
514×pow-sqr_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
09267
119231
236231
367231
4154231
5481231
61821231
72138231
82428231
92679231
103016231
113512231
124173231
134963231
145887231
156412231
166825231
177216231
187335231
197379231
Stop Event
node limit
Counts
45 → 27
Calls
Call 1
Inputs
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
Outputs
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 17 to 5 computations (70.6% saved)

localize26.0ms (0.4%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(*.f64 -9 (pow.f64 y 4))
0.2b
(*.f64 3 (*.f64 y y))
19.8b
(/.f64 (*.f64 -9 (pow.f64 y 4)) (-.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
Compiler

Compiled 50 to 26 computations (48% saved)

series7.0ms (0.1%)

Counts
2 → 24
Calls

9 calls:

TimeVariablePointExpression
3.0ms
x
@0
(/.f64 (*.f64 -9 (pow.f64 y 4)) (-.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
1.0ms
y
@0
(/.f64 (*.f64 -9 (pow.f64 y 4)) (-.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
1.0ms
x
@inf
(/.f64 (*.f64 -9 (pow.f64 y 4)) (-.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
1.0ms
y
@inf
(/.f64 (*.f64 -9 (pow.f64 y 4)) (-.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
0.0ms
y
@inf
(*.f64 -9 (pow.f64 y 4))

rewrite78.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
670×log-prod_binary64
382×fma-def_binary64
344×pow2_binary64
234×expm1-udef_binary64
234×log1p-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01329
129627
2382427
Stop Event
node limit
Counts
2 → 68
Calls
Call 1
Inputs
(/.f64 (*.f64 -9 (pow.f64 y 4)) (-.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
(*.f64 -9 (pow.f64 y 4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3)))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3))))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3))))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3))))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -9 (/.f64 1 (/.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)) (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -9 (*.f64 (pow.f64 y 4) (/.f64 1 (fma.f64 x x (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 y 4) (*.f64 -9 (/.f64 1 (fma.f64 x x (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -9 (pow.f64 y 4)) (/.f64 1 (fma.f64 x x (*.f64 (*.f64 y y) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 y 4) 9) (/.f64 1 (neg.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 y 8) 81)) (*.f64 (cbrt.f64 (*.f64 -9 (pow.f64 y 4))) (/.f64 1 (fma.f64 x x (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3))))) (cbrt.f64 (/.f64 (*.f64 (pow.f64 y 8) 81) (pow.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (*.f64 (pow.f64 y 8) 81) (pow.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)) 2))) (cbrt.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y y) (sqrt.f64 -9)) (*.f64 (*.f64 (*.f64 y y) (sqrt.f64 -9)) (/.f64 1 (fma.f64 x x (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3))))) (sqrt.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x x (*.f64 (*.f64 y y) -3))) (*.f64 -9 (pow.f64 y 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 y 4) 1) (/.f64 -9 (fma.f64 x x (*.f64 (*.f64 y y) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -9 (fma.f64 x x (*.f64 (*.f64 y y) -3))) (pow.f64 y 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 (pow.f64 y 8) 81)) 1) (/.f64 (cbrt.f64 (*.f64 -9 (pow.f64 y 4))) (fma.f64 x x (*.f64 (*.f64 y y) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (*.f64 y y) (sqrt.f64 -9)) 1) (/.f64 (*.f64 (*.f64 y y) (sqrt.f64 -9)) (fma.f64 x x (*.f64 (*.f64 y y) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -9 (cbrt.f64 (pow.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)) 2))) (/.f64 (pow.f64 y 4) (cbrt.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 y 4) (cbrt.f64 (pow.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)) 2))) (/.f64 -9 (cbrt.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (pow.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)) 2))) (/.f64 (*.f64 -9 (pow.f64 y 4)) (cbrt.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 (pow.f64 y 8) 81)) (cbrt.f64 (pow.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)) 2))) (cbrt.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (*.f64 y y) (sqrt.f64 -9)) (cbrt.f64 (pow.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)) 2))) (/.f64 (*.f64 (*.f64 y y) (sqrt.f64 -9)) (cbrt.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -9 (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))) (/.f64 (pow.f64 y 4) (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 y 4) (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))) (/.f64 -9 (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))) (/.f64 (*.f64 -9 (pow.f64 y 4)) (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 (pow.f64 y 8) 81)) (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))) (/.f64 (cbrt.f64 (*.f64 -9 (pow.f64 y 4))) (hypot.f64 x (sqrt.f64 (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 -9 (pow.f64 y 4)) (-.f64 (pow.f64 x 6) (*.f64 27 (pow.f64 y 6)))) (fma.f64 (*.f64 y (*.f64 y 3)) (fma.f64 y (*.f64 y 3) (*.f64 x x)) (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 -9 (pow.f64 y 4)) (-.f64 (pow.f64 x 4) (*.f64 (pow.f64 y 4) 9))) (fma.f64 y (*.f64 y 3) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 (pow.f64 y 8) 81) (pow.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -1/9 (/.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)) (pow.f64 y 4))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 -9 (pow.f64 y 4)) 3) (pow.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 -1/9 (/.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)) (pow.f64 y 4))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 -9 (pow.f64 y 4)) (neg.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (*.f64 (pow.f64 y 8) 81) (pow.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 -9 (pow.f64 y 4)) 3) (pow.f64 (fma.f64 x x (*.f64 (*.f64 y y) -3)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (fma.f64 x x (*.f64 (*.f64 y y) -3))))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -9 (pow.f64 y 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 y 4)) -9)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 y 4)) -9))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 y 4)) -9))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 y 4)) -9))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 -9 (pow.f64 y 4)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -9 (pow.f64 y 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 y 8) 81) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 -9 (pow.f64 y 4)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 -9 (pow.f64 y 4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 y y) (sqrt.f64 -9)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 y 8) 81))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 y 4)) -9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 -9 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 -9 (pow.f64 y 4)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -9 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (fma.f64 4 (log.f64 y) (log.f64 -9)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (fma.f64 4 (log.f64 y) (log.f64 -9)) 1))))))

simplify112.0ms (1.5%)

Algorithm
egg-herbie
Rules
655×associate-*l*_binary64
540×fma-def_binary64
437×associate-+l+_binary64
401×associate-*l/_binary64
385×associate-+r+_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
046645
1113627
2318627
31326627
44992627
55443627
66099627
77561627
87955627
Stop Event
node limit
Counts
92 → 84
Calls
Call 1
Inputs
(*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2)))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2))))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (+.f64 (*.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6))) (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2)))))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (+.f64 (*.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6))) (+.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2))) (*.f64 -243 (/.f64 (pow.f64 y 10) (pow.f64 x 8))))))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 4) (pow.f64 y 2))) (+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2))))
(+.f64 (*.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4))) (+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 4) (pow.f64 y 2))) (+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 4) (pow.f64 y 2))) (+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2))))
(+.f64 (*.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4))) (+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 4) (pow.f64 y 2))) (+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))))
(*.f64 3 (pow.f64 y 2))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 4) (pow.f64 y 2))) (+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2))))
(+.f64 (*.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4))) (+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 4) (pow.f64 y 2))) (+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))))
(*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2)))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2))))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (+.f64 (*.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6))) (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2)))))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (+.f64 (*.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6))) (+.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2))) (*.f64 -243 (/.f64 (pow.f64 y 10) (pow.f64 x 8))))))
(*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2)))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2))))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (+.f64 (*.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6))) (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2)))))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (+.f64 (*.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6))) (+.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2))) (*.f64 -243 (/.f64 (pow.f64 y 10) (pow.f64 x 8))))))
Outputs
(*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2)))
(*.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)))
(*.f64 (/.f64 -9 x) (/.f64 (pow.f64 y 4) x))
(*.f64 (pow.f64 y 4) (/.f64 -9 (*.f64 x x)))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (*.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (/.f64 (*.f64 -27 (pow.f64 y 6)) (pow.f64 x 4)))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (/.f64 -27 (/.f64 (pow.f64 x 4) (pow.f64 y 6))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (+.f64 (*.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6))) (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2)))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (*.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (/.f64 (*.f64 -81 (pow.f64 y 8)) (pow.f64 x 6))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (/.f64 -27 (/.f64 (pow.f64 x 4) (pow.f64 y 6)))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)))))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (+.f64 (*.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6))) (+.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2))) (*.f64 -243 (/.f64 (pow.f64 y 10) (pow.f64 x 8))))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (*.f64 -243 (/.f64 (pow.f64 y 10) (pow.f64 x 8))))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (/.f64 (*.f64 -243 (pow.f64 y 10)) (pow.f64 x 8)))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (fma.f64 -243 (/.f64 (pow.f64 y 10) (pow.f64 x 8)) (*.f64 (/.f64 -9 x) (/.f64 (pow.f64 y 4) x)))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (*.f64 -243 (/.f64 (pow.f64 y 10) (pow.f64 x 8))))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (*.f64 (pow.f64 y 10) (/.f64 -243 (pow.f64 x 8))))))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 y 3))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 4) (pow.f64 y 2))) (+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 x x (*.f64 3 (*.f64 y y))))
(fma.f64 y (*.f64 y 3) (fma.f64 x x (*.f64 (/.f64 1/3 (*.f64 y y)) (pow.f64 x 4))))
(fma.f64 y (*.f64 y 3) (fma.f64 x x (*.f64 (pow.f64 x 4) (/.f64 1/3 (*.f64 y y)))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 y (*.f64 y 3) (*.f64 x x)))
(+.f64 (*.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4))) (+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 4) (pow.f64 y 2))) (+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))))
(fma.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4)) (fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))))
(fma.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4)) (fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 x x (*.f64 3 (*.f64 y y)))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4)) (fma.f64 y (*.f64 y 3) (*.f64 x x))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 y (*.f64 y 3) (fma.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4)) (*.f64 x x))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 y (*.f64 y 3) (fma.f64 x x (/.f64 (pow.f64 x 6) (/.f64 (pow.f64 y 4) 1/9)))))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 y 3))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 4) (pow.f64 y 2))) (+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 x x (*.f64 3 (*.f64 y y))))
(fma.f64 y (*.f64 y 3) (fma.f64 x x (*.f64 (/.f64 1/3 (*.f64 y y)) (pow.f64 x 4))))
(fma.f64 y (*.f64 y 3) (fma.f64 x x (*.f64 (pow.f64 x 4) (/.f64 1/3 (*.f64 y y)))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 y (*.f64 y 3) (*.f64 x x)))
(+.f64 (*.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4))) (+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 4) (pow.f64 y 2))) (+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))))
(fma.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4)) (fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))))
(fma.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4)) (fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 x x (*.f64 3 (*.f64 y y)))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4)) (fma.f64 y (*.f64 y 3) (*.f64 x x))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 y (*.f64 y 3) (fma.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4)) (*.f64 x x))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 y (*.f64 y 3) (fma.f64 x x (/.f64 (pow.f64 x 6) (/.f64 (pow.f64 y 4) 1/9)))))
(*.f64 3 (pow.f64 y 2))
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 y 3))
(+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))
(+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 4) (pow.f64 y 2))) (+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 x x (*.f64 3 (*.f64 y y))))
(fma.f64 y (*.f64 y 3) (fma.f64 x x (*.f64 (/.f64 1/3 (*.f64 y y)) (pow.f64 x 4))))
(fma.f64 y (*.f64 y 3) (fma.f64 x x (*.f64 (pow.f64 x 4) (/.f64 1/3 (*.f64 y y)))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 y (*.f64 y 3) (*.f64 x x)))
(+.f64 (*.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4))) (+.f64 (*.f64 1/3 (/.f64 (pow.f64 x 4) (pow.f64 y 2))) (+.f64 (pow.f64 x 2) (*.f64 3 (pow.f64 y 2)))))
(fma.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4)) (fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (+.f64 (*.f64 x x) (*.f64 3 (*.f64 y y)))))
(fma.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4)) (fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 x x (*.f64 3 (*.f64 y y)))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4)) (fma.f64 y (*.f64 y 3) (*.f64 x x))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 y (*.f64 y 3) (fma.f64 1/9 (/.f64 (pow.f64 x 6) (pow.f64 y 4)) (*.f64 x x))))
(fma.f64 1/3 (/.f64 (pow.f64 x 4) (*.f64 y y)) (fma.f64 y (*.f64 y 3) (fma.f64 x x (/.f64 (pow.f64 x 6) (/.f64 (pow.f64 y 4) 1/9)))))
(*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2)))
(*.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)))
(*.f64 (/.f64 -9 x) (/.f64 (pow.f64 y 4) x))
(*.f64 (pow.f64 y 4) (/.f64 -9 (*.f64 x x)))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (*.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (/.f64 (*.f64 -27 (pow.f64 y 6)) (pow.f64 x 4)))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (/.f64 -27 (/.f64 (pow.f64 x 4) (pow.f64 y 6))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (+.f64 (*.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6))) (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2)))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (*.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (/.f64 (*.f64 -81 (pow.f64 y 8)) (pow.f64 x 6))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (/.f64 -27 (/.f64 (pow.f64 x 4) (pow.f64 y 6)))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)))))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (+.f64 (*.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6))) (+.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2))) (*.f64 -243 (/.f64 (pow.f64 y 10) (pow.f64 x 8))))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (*.f64 -243 (/.f64 (pow.f64 y 10) (pow.f64 x 8))))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (/.f64 (*.f64 -243 (pow.f64 y 10)) (pow.f64 x 8)))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (fma.f64 -243 (/.f64 (pow.f64 y 10) (pow.f64 x 8)) (*.f64 (/.f64 -9 x) (/.f64 (pow.f64 y 4) x)))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (*.f64 -243 (/.f64 (pow.f64 y 10) (pow.f64 x 8))))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (*.f64 (pow.f64 y 10) (/.f64 -243 (pow.f64 x 8))))))
(*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2)))
(*.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)))
(*.f64 (/.f64 -9 x) (/.f64 (pow.f64 y 4) x))
(*.f64 (pow.f64 y 4) (/.f64 -9 (*.f64 x x)))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (*.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (/.f64 (*.f64 -27 (pow.f64 y 6)) (pow.f64 x 4)))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (/.f64 -27 (/.f64 (pow.f64 x 4) (pow.f64 y 6))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (+.f64 (*.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6))) (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2)))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (*.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (/.f64 (*.f64 -81 (pow.f64 y 8)) (pow.f64 x 6))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (/.f64 -27 (/.f64 (pow.f64 x 4) (pow.f64 y 6)))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)))))
(+.f64 (*.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4))) (+.f64 (*.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6))) (+.f64 (*.f64 -9 (/.f64 (pow.f64 y 4) (pow.f64 x 2))) (*.f64 -243 (/.f64 (pow.f64 y 10) (pow.f64 x 8))))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (*.f64 -243 (/.f64 (pow.f64 y 10) (pow.f64 x 8))))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (/.f64 (*.f64 -243 (pow.f64 y 10)) (pow.f64 x 8)))))
(fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (fma.f64 -243 (/.f64 (pow.f64 y 10) (pow.f64 x 8)) (*.f64 (/.f64 -9 x) (/.f64 (pow.f64 y 4) x)))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (*.f64 -243 (/.f64 (pow.f64 y 10) (pow.f64 x 8))))))
(fma.f64 -9 (/.f64 (pow.f64 y 4) (*.f64 x x)) (fma.f64 -27 (/.f64 (pow.f64 y 6) (pow.f64 x 4)) (fma.f64 -81 (/.f64 (pow.f64 y 8) (pow.f64 x 6)) (*.f64 (pow.f64 y 10) (/.f64 -243 (pow.f64 x 8))))))

localize66.0ms (0.9%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 9 (pow.f64 y 4))
19.3b
(sqrt.f64 (*.f64 9 (pow.f64 y 4)))
Compiler

Compiled 19 to 15 computations (21.1% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.4b
(*.f64 y (sqrt.f64 3))
0.4b
(pow.f64 (*.f64 y (sqrt.f64 3)) 2)
Compiler

Compiled 17 to 14 computations (17.6% saved)

series3.0ms (0%)

Counts
2 → 12
Calls

6 calls:

TimeVariablePointExpression
1.0ms
y
@0
(pow.f64 (*.f64 y (sqrt.f64 3)) 2)
1.0ms
y
@-inf
(pow.f64 (*.f64 y (sqrt.f64 3)) 2)
1.0ms
y
@inf
(pow.f64 (*.f64 y (sqrt.f64 3)) 2)
0.0ms
y
@0
(*.f64 y (sqrt.f64 3))
0.0ms
y
@-inf
(*.f64 y (sqrt.f64 3))

rewrite73.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
550×pow1_binary64
511×add-log-exp_binary64
510×log1p-expm1-u_binary64
510×expm1-log1p-u_binary64
498×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify183.0ms (2.5%)

Algorithm
egg-herbie
Rules
834×sqr-pow_binary64
692×cube-prod_binary64
683×fabs-mul_binary64
634×associate-*l*_binary64
573×pow-sqr_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
08144
11784
23984
39884
438984
5214384
6225684
7246684
8266284
9289184
10319484
11382984
12430484
13493984
14565584
15657884
16709484
17748684
18785084
19794484
20797484
Stop Event
node limit
Counts
47 → 37
Calls
Call 1
Inputs
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
Outputs
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))
(*.f64 (pow.f64 y 2) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) (pow.f64 (sqrt.f64 3) 2))
(*.f64 (*.f64 y y) 3)
(*.f64 y (*.f64 y 3))

eval79.0ms (1.1%)

Compiler

Compiled 3578 to 2204 computations (38.4% saved)

prune41.0ms (0.6%)

Pruning

13 alts after pruning (2 fresh and 11 done)

PrunedKeptTotal
New2571258
Fresh011
Picked011
Done01010
Total25713270
Error
0b
Counts
270 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y (*.f64 y 2)))
0.1b
(+.f64 (*.f64 y (*.f64 y 3)) (*.f64 x x))
0.1b
(fma.f64 x x (*.f64 3 (*.f64 y y)))
48.9b
(/.f64 (*.f64 -9 (pow.f64 y 4)) (-.f64 (*.f64 x x) (*.f64 3 (*.f64 y y))))
30.0b
(*.f64 (+.f64 1 (pow.f64 (sqrt.f64 2) 2)) (pow.f64 y 2))
27.6b
(*.f64 x x)
0.1b
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
29.7b
(*.f64 y (*.f64 y 3))
23.7b
(+.f64 (*.f64 x x) (*.f64 y y))
44.0b
(sqrt.f64 (*.f64 9 (pow.f64 y 4)))
29.8b
(*.f64 3 (*.f64 y y))
52.8b
(*.f64 y y)
30.0b
(pow.f64 (*.f64 y (sqrt.f64 3)) 2)
Compiler

Compiled 124 to 86 computations (30.6% saved)

regimes72.0ms (1%)

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

7 calls:

13.0ms
y
11.0ms
x
11.0ms
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
8.0ms
(*.f64 y y)
8.0ms
(*.f64 x x)
Results
ErrorSegmentsBranch
0.1b1x
0.1b1y
0.1b1(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
0.1b1(*.f64 x x)
0.1b1(*.f64 x x)
0.1b1(*.f64 y y)
0.1b1(*.f64 y y)
Compiler

Compiled 268 to 125 computations (53.4% saved)

regimes51.0ms (0.7%)

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

6 calls:

10.0ms
y
9.0ms
x
9.0ms
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
6.0ms
(*.f64 x x)
6.0ms
(*.f64 y y)
Results
ErrorSegmentsBranch
0.1b1x
0.1b1y
0.1b1(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
0.1b1(*.f64 x x)
0.1b1(*.f64 y y)
0.1b1(*.f64 y y)
Compiler

Compiled 188 to 83 computations (55.9% saved)

regimes36.0ms (0.5%)

Counts
11 → 1
Calls
Call 1
Inputs
(*.f64 y y)
(*.f64 x x)
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 y 3))
(+.f64 (*.f64 x x) (*.f64 y y))
(+.f64 (*.f64 y (*.f64 y 3)) (*.f64 x x))
(+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y (*.f64 y 2)))
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
(fma.f64 (*.f64 y y) 3 (*.f64 x x))
(fma.f64 3 (*.f64 y y) (*.f64 x x))
(fma.f64 x x (*.f64 3 (*.f64 y y)))
Outputs
(+.f64 (*.f64 y (*.f64 y 3)) (*.f64 x x))
Calls

6 calls:

7.0ms
y
6.0ms
x
6.0ms
(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
5.0ms
(*.f64 x x)
4.0ms
(*.f64 y y)
Results
ErrorSegmentsBranch
0.1b1x
0.1b1y
0.1b1(+.f64 (+.f64 (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 y y)) (*.f64 y y))
0.1b1(*.f64 x x)
0.1b1(*.f64 y y)
0.1b1(*.f64 y y)
Compiler

Compiled 124 to 47 computations (62.1% saved)

regimes84.0ms (1.2%)

Counts
5 → 6
Calls
Call 1
Inputs
(*.f64 y y)
(*.f64 x x)
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 y 3))
(+.f64 (*.f64 x x) (*.f64 y y))
Outputs
(+.f64 (*.f64 x x) (*.f64 y y))
(*.f64 y (*.f64 y 3))
(+.f64 (*.f64 x x) (*.f64 y y))
(*.f64 y (*.f64 y 3))
(+.f64 (*.f64 x x) (*.f64 y y))
(*.f64 3 (*.f64 y y))
Calls

5 calls:

20.0ms
x
20.0ms
y
17.0ms
(*.f64 y y)
16.0ms
(*.f64 y y)
9.0ms
(*.f64 x x)
Results
ErrorSegmentsBranch
8.9b3x
9.5b5y
9.3b2(*.f64 x x)
8.7b6(*.f64 y y)
8.7b6(*.f64 y y)
Compiler

Compiled 46 to 23 computations (50% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.446674136008301e+42
6.574387541731355e+42
0.0ms
2.5420052129741317
442.37960191933144
0.0ms
5.921882023283137e-49
2.0512320009544546e-48
0.0ms
3.073525358441043e-214
6.394018951701995e-202
0.0ms
1.2794310318170465e-235
9.533056163202404e-227
Compiler

Compiled 18 to 11 computations (38.9% saved)

regimes184.0ms (2.5%)

Counts
4 → 8
Calls
Call 1
Inputs
(*.f64 y y)
(*.f64 x x)
(*.f64 3 (*.f64 y y))
(*.f64 y (*.f64 y 3))
Outputs
(*.f64 x x)
(*.f64 y (*.f64 y 3))
(*.f64 x x)
(*.f64 y (*.f64 y 3))
(*.f64 x x)
(*.f64 y (*.f64 y 3))
(*.f64 x x)
(*.f64 3 (*.f64 y y))
Calls

5 calls:

56.0ms
(*.f64 y y)
52.0ms
(*.f64 x x)
34.0ms
(*.f64 y y)
25.0ms
y
15.0ms
x
Results
ErrorSegmentsBranch
9.8b3x
9.2b7y
10.1b2(*.f64 x x)
8.2b8(*.f64 y y)
8.2b8(*.f64 y y)
Compiler

Compiled 39 to 22 computations (43.6% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.446674136008301e+42
6.574387541731355e+42
0.0ms
2.5420052129741317
442.37960191933144
0.0ms
5.921882023283137e-49
2.0512320009544546e-48
0.0ms
7.216583468882681e-89
2.0466801492772429e-84
0.0ms
3.1354731815199125e-114
1.596851675121344e-113
0.0ms
3.073525358441043e-214
6.394018951701995e-202
0.0ms
2.0929593062527046e-238
7.173638783162185e-236
Compiler

Compiled 18 to 11 computations (38.9% saved)

regimes100.0ms (1.4%)

Counts
3 → 8
Calls
Call 1
Inputs
(*.f64 y y)
(*.f64 x x)
(*.f64 3 (*.f64 y y))
Outputs
(*.f64 x x)
(*.f64 3 (*.f64 y y))
(*.f64 x x)
(*.f64 3 (*.f64 y y))
(*.f64 x x)
(*.f64 3 (*.f64 y y))
(*.f64 x x)
(*.f64 3 (*.f64 y y))
Calls

4 calls:

44.0ms
y
30.0ms
x
18.0ms
(*.f64 y y)
7.0ms
(*.f64 x x)
Results
ErrorSegmentsBranch
9.9b3x
9.2b7y
10.1b2(*.f64 x x)
8.2b8(*.f64 y y)
Compiler

Compiled 29 to 16 computations (44.8% saved)

bsearch247.0ms (3.4%)

Algorithm
binary-search
Steps
TimeLeftRight
27.0ms
1.446674136008301e+42
6.574387541731355e+42
32.0ms
2.5420052129741317
442.37960191933144
63.0ms
5.921882023283137e-49
2.0512320009544546e-48
30.0ms
7.216583468882681e-89
2.0466801492772429e-84
31.0ms
3.1354731815199125e-114
1.596851675121344e-113
32.0ms
3.073525358441043e-214
6.394018951701995e-202
31.0ms
2.0929593062527046e-238
7.173638783162185e-236
Compiler

Compiled 18 to 11 computations (38.9% saved)

regimes60.0ms (0.8%)

Accuracy

Total -31.3b remaining (-123%)

Threshold costs -31.3b (-123%)

Counts
2 → 3
Calls
Call 1
Inputs
(*.f64 y y)
(*.f64 x x)
Outputs
(*.f64 x x)
(*.f64 y y)
(*.f64 x x)
Calls

4 calls:

32.0ms
x
11.0ms
(*.f64 x x)
8.0ms
(*.f64 y y)
7.0ms
y
Results
ErrorSegmentsBranch
25.4b3x
27.6b1y
25.6b2(*.f64 x x)
26.5b2(*.f64 y y)
Compiler

Compiled 24 to 14 computations (41.7% saved)

bsearch70.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
34.0ms
5.04611013677248e-145
3.953605122031731e-140
36.0ms
-8.508733983896255e-151
-6.046800242175236e-153
Compiler

Compiled 22 to 11 computations (50% saved)

simplify27.0ms (0.4%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
072377
178377
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(fma.f64 x x (fma.f64 y y (*.f64 (*.f64 y y) 2)))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (*.f64 y (*.f64 y 3)) (*.f64 x x))
(if (<=.f64 (*.f64 y y) 357986298980937/1789931494904685075276173995854677405670108698260665783090090606394441500334556509959080266614039273464334969326187482504649803797317086043777814127597786226282054644248700756391675078842436173515315000514484077967245659600421098975959924194154643456) (+.f64 (*.f64 x x) (*.f64 y y)) (if (<=.f64 (*.f64 y y) 1516130949512411/3032261899024822138962850563403325303236105502181048068630961011769630766965579856114996892243450152247046349017834127355803867273661746858289623584064806912508701125040722471777861885999215712549341795300227478029087591511359488) (*.f64 y (*.f64 y 3)) (if (<=.f64 (*.f64 y y) 822752278660603/822752278660603021077484591278675252491367932816789931674304512) (+.f64 (*.f64 x x) (*.f64 y y)) (if (<=.f64 (*.f64 y y) 5) (*.f64 y (*.f64 y 3)) (if (<=.f64 (*.f64 y y) 2000000000000000089771425356151833571098624) (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 3 (*.f64 y y)))))))
(if (<=.f64 (*.f64 y y) 733155940312959/1832889850782397517082802171755189663406191307018921761884252780947908096342585866198098193012776216027479008590015982084761399088452696108828481666660133095712823955710669574545075280734654641679682560526831695838459555430831205351382962374814354898944) (*.f64 x x) (if (<=.f64 (*.f64 y y) 1516130949512411/3032261899024822138962850563403325303236105502181048068630961011769630766965579856114996892243450152247046349017834127355803867273661746858289623584064806912508701125040722471777861885999215712549341795300227478029087591511359488) (*.f64 y (*.f64 y 3)) (if (<=.f64 (*.f64 y y) 6931674235302037/1386334847060407429789207092071541851718218537687908287585239790307310653902812811519987203052069789048695605480701785914487078912) (*.f64 x x) (if (<=.f64 (*.f64 y y) 7167183174968973/71671831749689734737838152978190216899892655911508785116799651230841339877765150252188079784691427704832) (*.f64 y (*.f64 y 3)) (if (<=.f64 (*.f64 y y) 822752278660603/822752278660603021077484591278675252491367932816789931674304512) (*.f64 x x) (if (<=.f64 (*.f64 y y) 5) (*.f64 y (*.f64 y 3)) (if (<=.f64 (*.f64 y y) 2000000000000000089771425356151833571098624) (*.f64 x x) (*.f64 3 (*.f64 y y)))))))))
(if (<=.f64 (*.f64 y y) 383616387053115/1832889850782397517082802171755189663406191307018921761884252780947908096342585866198098193012776216027479008590015982084761399088452696108828481666660133095712823955710669574545075280734654641679682560526831695838459555430831205351382962374814354898944) (*.f64 x x) (if (<=.f64 (*.f64 y y) 7455787072069907/24258095192198577111702804507226602425888844017448384549047688094157046135724638848919975137947601217976370792142673018846430938189293974866316988672518455300069609000325779774222895087993725700394734362401819824232700732090875904) (*.f64 3 (*.f64 y y)) (if (<=.f64 (*.f64 y y) 4346815733564417/1386334847060407429789207092071541851718218537687908287585239790307310653902812811519987203052069789048695605480701785914487078912) (*.f64 x x) (if (<=.f64 (*.f64 y y) 2586128780946759/35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852416) (*.f64 3 (*.f64 y y)) (if (<=.f64 (*.f64 y y) 7795587085784741/13164036458569648337239753460458804039861886925068638906788872192) (*.f64 x x) (if (<=.f64 (*.f64 y y) 5724086864962079/2251799813685248) (*.f64 3 (*.f64 y y)) (if (<=.f64 (*.f64 y y) 1446674136008301024186390412148520739930112) (*.f64 x x) (*.f64 3 (*.f64 y y)))))))))
(if (<=.f64 x -6271805144145813/7371020360979572953596786290992712677572111758625860211672277930167234692172165726730716260112614780354430419981960634569864423105321860610471551272329484460252725248) (*.f64 x x) (if (<=.f64 x 886797441527733/1757388200993436087035366604564836663620975436836686184804982645551499054949799949343375268009332366074187855716219099657503228927927460816018951242525454630912) (*.f64 y y) (*.f64 x x)))
(*.f64 y y)
Outputs
(fma.f64 x x (fma.f64 y y (*.f64 (*.f64 y y) 2)))
(fma.f64 y (*.f64 y 3) (*.f64 x x))
(+.f64 (*.f64 y (*.f64 y 3)) (*.f64 x x))
(+.f64 (*.f64 x x) (*.f64 y (*.f64 y 3)))
(if (<=.f64 (*.f64 y y) 357986298980937/1789931494904685075276173995854677405670108698260665783090090606394441500334556509959080266614039273464334969326187482504649803797317086043777814127597786226282054644248700756391675078842436173515315000514484077967245659600421098975959924194154643456) (+.f64 (*.f64 x x) (*.f64 y y)) (if (<=.f64 (*.f64 y y) 1516130949512411/3032261899024822138962850563403325303236105502181048068630961011769630766965579856114996892243450152247046349017834127355803867273661746858289623584064806912508701125040722471777861885999215712549341795300227478029087591511359488) (*.f64 y (*.f64 y 3)) (if (<=.f64 (*.f64 y y) 822752278660603/822752278660603021077484591278675252491367932816789931674304512) (+.f64 (*.f64 x x) (*.f64 y y)) (if (<=.f64 (*.f64 y y) 5) (*.f64 y (*.f64 y 3)) (if (<=.f64 (*.f64 y y) 2000000000000000089771425356151833571098624) (+.f64 (*.f64 x x) (*.f64 y y)) (*.f64 3 (*.f64 y y)))))))
(if (<=.f64 (*.f64 y y) 357986298980937/1789931494904685075276173995854677405670108698260665783090090606394441500334556509959080266614039273464334969326187482504649803797317086043777814127597786226282054644248700756391675078842436173515315000514484077967245659600421098975959924194154643456) (+.f64 (*.f64 y y) (*.f64 x x)) (if (<=.f64 (*.f64 y y) 1516130949512411/3032261899024822138962850563403325303236105502181048068630961011769630766965579856114996892243450152247046349017834127355803867273661746858289623584064806912508701125040722471777861885999215712549341795300227478029087591511359488) (*.f64 y (*.f64 y 3)) (if (<=.f64 (*.f64 y y) 822752278660603/822752278660603021077484591278675252491367932816789931674304512) (+.f64 (*.f64 y y) (*.f64 x x)) (if (<=.f64 (*.f64 y y) 5) (*.f64 y (*.f64 y 3)) (if (<=.f64 (*.f64 y y) 2000000000000000089771425356151833571098624) (+.f64 (*.f64 y y) (*.f64 x x)) (*.f64 (*.f64 y y) 3))))))
(if (<=.f64 (*.f64 y y) 733155940312959/1832889850782397517082802171755189663406191307018921761884252780947908096342585866198098193012776216027479008590015982084761399088452696108828481666660133095712823955710669574545075280734654641679682560526831695838459555430831205351382962374814354898944) (*.f64 x x) (if (<=.f64 (*.f64 y y) 1516130949512411/3032261899024822138962850563403325303236105502181048068630961011769630766965579856114996892243450152247046349017834127355803867273661746858289623584064806912508701125040722471777861885999215712549341795300227478029087591511359488) (*.f64 y (*.f64 y 3)) (if (<=.f64 (*.f64 y y) 6931674235302037/1386334847060407429789207092071541851718218537687908287585239790307310653902812811519987203052069789048695605480701785914487078912) (*.f64 x x) (if (<=.f64 (*.f64 y y) 7167183174968973/71671831749689734737838152978190216899892655911508785116799651230841339877765150252188079784691427704832) (*.f64 y (*.f64 y 3)) (if (<=.f64 (*.f64 y y) 822752278660603/822752278660603021077484591278675252491367932816789931674304512) (*.f64 x x) (if (<=.f64 (*.f64 y y) 5) (*.f64 y (*.f64 y 3)) (if (<=.f64 (*.f64 y y) 2000000000000000089771425356151833571098624) (*.f64 x x) (*.f64 3 (*.f64 y y)))))))))
(if (<=.f64 (*.f64 y y) 733155940312959/1832889850782397517082802171755189663406191307018921761884252780947908096342585866198098193012776216027479008590015982084761399088452696108828481666660133095712823955710669574545075280734654641679682560526831695838459555430831205351382962374814354898944) (*.f64 x x) (if (<=.f64 (*.f64 y y) 1516130949512411/3032261899024822138962850563403325303236105502181048068630961011769630766965579856114996892243450152247046349017834127355803867273661746858289623584064806912508701125040722471777861885999215712549341795300227478029087591511359488) (*.f64 y (*.f64 y 3)) (if (<=.f64 (*.f64 y y) 6931674235302037/1386334847060407429789207092071541851718218537687908287585239790307310653902812811519987203052069789048695605480701785914487078912) (*.f64 x x) (if (<=.f64 (*.f64 y y) 7167183174968973/71671831749689734737838152978190216899892655911508785116799651230841339877765150252188079784691427704832) (*.f64 y (*.f64 y 3)) (if (<=.f64 (*.f64 y y) 822752278660603/822752278660603021077484591278675252491367932816789931674304512) (*.f64 x x) (if (<=.f64 (*.f64 y y) 5) (*.f64 y (*.f64 y 3)) (if (<=.f64 (*.f64 y y) 2000000000000000089771425356151833571098624) (*.f64 x x) (*.f64 (*.f64 y y) 3))))))))
(if (<=.f64 (*.f64 y y) 383616387053115/1832889850782397517082802171755189663406191307018921761884252780947908096342585866198098193012776216027479008590015982084761399088452696108828481666660133095712823955710669574545075280734654641679682560526831695838459555430831205351382962374814354898944) (*.f64 x x) (if (<=.f64 (*.f64 y y) 7455787072069907/24258095192198577111702804507226602425888844017448384549047688094157046135724638848919975137947601217976370792142673018846430938189293974866316988672518455300069609000325779774222895087993725700394734362401819824232700732090875904) (*.f64 3 (*.f64 y y)) (if (<=.f64 (*.f64 y y) 4346815733564417/1386334847060407429789207092071541851718218537687908287585239790307310653902812811519987203052069789048695605480701785914487078912) (*.f64 x x) (if (<=.f64 (*.f64 y y) 2586128780946759/35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852416) (*.f64 3 (*.f64 y y)) (if (<=.f64 (*.f64 y y) 7795587085784741/13164036458569648337239753460458804039861886925068638906788872192) (*.f64 x x) (if (<=.f64 (*.f64 y y) 5724086864962079/2251799813685248) (*.f64 3 (*.f64 y y)) (if (<=.f64 (*.f64 y y) 1446674136008301024186390412148520739930112) (*.f64 x x) (*.f64 3 (*.f64 y y)))))))))
(if (<=.f64 (*.f64 y y) 383616387053115/1832889850782397517082802171755189663406191307018921761884252780947908096342585866198098193012776216027479008590015982084761399088452696108828481666660133095712823955710669574545075280734654641679682560526831695838459555430831205351382962374814354898944) (*.f64 x x) (if (<=.f64 (*.f64 y y) 7455787072069907/24258095192198577111702804507226602425888844017448384549047688094157046135724638848919975137947601217976370792142673018846430938189293974866316988672518455300069609000325779774222895087993725700394734362401819824232700732090875904) (*.f64 (*.f64 y y) 3) (if (<=.f64 (*.f64 y y) 4346815733564417/1386334847060407429789207092071541851718218537687908287585239790307310653902812811519987203052069789048695605480701785914487078912) (*.f64 x x) (if (<=.f64 (*.f64 y y) 2586128780946759/35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852416) (*.f64 (*.f64 y y) 3) (if (<=.f64 (*.f64 y y) 7795587085784741/13164036458569648337239753460458804039861886925068638906788872192) (*.f64 x x) (if (<=.f64 (*.f64 y y) 5724086864962079/2251799813685248) (*.f64 (*.f64 y y) 3) (if (<=.f64 (*.f64 y y) 1446674136008301024186390412148520739930112) (*.f64 x x) (*.f64 (*.f64 y y) 3))))))))
(if (<=.f64 x -6271805144145813/7371020360979572953596786290992712677572111758625860211672277930167234692172165726730716260112614780354430419981960634569864423105321860610471551272329484460252725248) (*.f64 x x) (if (<=.f64 x 886797441527733/1757388200993436087035366604564836663620975436836686184804982645551499054949799949343375268009332366074187855716219099657503228927927460816018951242525454630912) (*.f64 y y) (*.f64 x x)))
(*.f64 y y)
Compiler

Compiled 278 to 130 computations (53.2% saved)

soundness0.0ms (0%)

end172.0ms (2.4%)

Compiler

Compiled 264 to 106 computations (59.8% saved)

Profiling

Loading profile data...