Details

Time bar (total: 20.0s)

analyze48.0ms (0.2%)

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
30.8%25%56.2%0.1%18.7%0%0%6
48%37.5%40.6%0.1%21.9%0%0%7
60%46.8%31.2%0.1%21.9%0%0%8
71.4%54.6%21.9%0.1%23.4%0%0%9
78.6%60.1%16.4%0.1%23.4%0%0%10
85.1%64.4%11.3%0.1%24.2%0%0%11
88.9%67.3%8.4%0.1%24.2%0%0%12
Compiler

Compiled 10 to 6 computations (40% saved)

sample695.0ms (3.5%)

Results
676.0ms8256×body256valid
7.0ms92×body256infinite
Bogosity

preprocess3.2s (15.9%)

Algorithm
egglog
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(+.f64 (+.f64 (*.f64 x x) y) y)
(+.f64 (+.f64 (*.f64 y y) x) x)
Outputs
(+.f64 (+.f64 (*.f64 x x) y) y)
(+.f64 (fma.f64 x x y) y)
(+.f64 (+.f64 (*.f64 y y) x) x)
(+.f64 (fma.f64 y y x) x)
Compiler

Compiled 11 to 7 computations (36.4% saved)

simplify1.6s (7.8%)

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

eval1.0ms (0%)

Compiler

Compiled 15 to 7 computations (53.3% 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.0b
(+.f64 (fma.f64 x x y) y)
0.0b
(+.f64 (+.f64 (*.f64 x x) y) y)
Compiler

Compiled 17 to 9 computations (47.1% saved)

localize6.0ms (0%)

Local error

Found 2 expressions with local error:

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

Compiled 19 to 5 computations (73.7% saved)

series17.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

Compiled 1405 to 985 computations (29.9% saved)

rewrite1.8s (8.9%)

Algorithm
batch-egg-rewrite
Rules
61×egg-rr
37×egg-rr
Counts
2 → 98
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x x) y) y)
(+.f64 (*.f64 x x) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)) (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (cbrt.f64 (pow.f64 y 2)) (*.f64 (cbrt.f64 (fma.f64 x x y)) (-.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 y)))) (+.f64 (cbrt.f64 y) (cbrt.f64 (fma.f64 x x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) (*.f64 (cbrt.f64 y) (-.f64 (cbrt.f64 y) (cbrt.f64 (fma.f64 x x y))))) (+.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)) (cbrt.f64 (+.f64 (fma.f64 x x y) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (cbrt.f64 (*.f64 4 (pow.f64 y 2))) (-.f64 (*.f64 x (cbrt.f64 x)) (*.f64 (cbrt.f64 (+.f64 y y)) (cbrt.f64 (pow.f64 x 2))))) (+.f64 (cbrt.f64 (+.f64 y y)) (cbrt.f64 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x (cbrt.f64 x)) (-.f64 (cbrt.f64 (*.f64 4 (pow.f64 y 2))) (*.f64 (cbrt.f64 (pow.f64 x 2)) (cbrt.f64 (+.f64 y y))))) (+.f64 (cbrt.f64 (pow.f64 x 2)) (cbrt.f64 (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (fma.f64 x x y) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (fma.f64 x x y) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (fma.f64 x x y) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x x (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) x) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 y) (*.f64 2 (cbrt.f64 (pow.f64 y 2))) (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 y y)) (cbrt.f64 (*.f64 4 (pow.f64 y 2))) (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) (cbrt.f64 (fma.f64 x x y)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 y) (cbrt.f64 (pow.f64 y 2)) (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x 2)) (*.f64 x (cbrt.f64 x)) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 y 2)) (*.f64 2 (cbrt.f64 y)) (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 y 2)) (cbrt.f64 y) (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 x)) (cbrt.f64 (pow.f64 x 2)) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 2 y (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y 2 (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 y (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 x x y) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 x 2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 y y) (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y 1 (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x x y) 1 y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 2) 1 (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (fma.f64 x x y) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (neg.f64 (fma.f64 x x y)) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (fma.f64 x x y) 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (fma.f64 x x y) 0) (*.f64 (fma.f64 x x y) (+.f64 1 (/.f64 y (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y))) 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 y 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (pow.f64 x 2) 0) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (fma.f64 x x y) y)) (pow.f64 x 2)) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (pow.f64 x 2) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 (+.f64 y y) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (neg.f64 (pow.f64 x 2)) 0) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (fma.f64 x x y) y)) (pow.f64 x 2)) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (fma.f64 x x (*.f64 -2 y)) 0) (/.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 4 (pow.f64 y 2))) (fma.f64 x x (*.f64 -2 y))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 y 0) (*.f64 y (+.f64 2 (/.f64 (pow.f64 x 2) y))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (pow.f64 x 2) 0) (*.f64 (+.f64 1 (/.f64 (/.f64 (+.f64 y y) x) x)) (pow.f64 x 2)) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 (+.f64 y y) (fma.f64 x x (*.f64 -2 y)))) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 (+.f64 y y) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (+.f64 y y) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 (+.f64 y y) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (+.f64 y y) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (+.f64 (*.f64 4 (pow.f64 y 2)) (*.f64 (pow.f64 x 2) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (-.f64 y (-.f64 (pow.f64 x 2) y)) 0) (/.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 4 (pow.f64 y 2))) (fma.f64 x x (*.f64 -2 y))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (+.f64 y y) 0) (*.f64 (+.f64 y y) (+.f64 1 (/.f64 (pow.f64 x 2) (+.f64 y y)))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (+.f64 (*.f64 4 (pow.f64 y 2)) (*.f64 (pow.f64 x 2) (fma.f64 x x (*.f64 -2 y)))) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (+.f64 (*.f64 4 (pow.f64 y 2)) (*.f64 (pow.f64 x 2) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (pow.f64 x 2) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (+.f64 (*.f64 4 (pow.f64 y 2)) (*.f64 (pow.f64 x 2) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (neg.f64 y) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (fma.f64 x x y) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y))) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 x x y) y)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 y (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x 2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 y y) (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x 2) (-.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (fma.f64 x x y) 0) y)))))
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (cbrt.f64 (pow.f64 y 2)) (*.f64 (cbrt.f64 x) (-.f64 x (cbrt.f64 (*.f64 x y))))) (+.f64 (cbrt.f64 y) (cbrt.f64 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x (cbrt.f64 x)) (*.f64 (cbrt.f64 y) (-.f64 (cbrt.f64 y) (cbrt.f64 (pow.f64 x 2))))) (+.f64 (cbrt.f64 (pow.f64 x 2)) (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (fma.f64 x x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) (cbrt.f64 (fma.f64 x x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x x y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (fma.f64 x x y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 x 2) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 x x y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x x y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) x) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x 2)) (*.f64 x (cbrt.f64 x)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 y) (cbrt.f64 (pow.f64 y 2)) (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 y 2)) (cbrt.f64 y) (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 x)) (cbrt.f64 (pow.f64 x 2)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 x 2) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 y (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y 1 (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x 2) 1 y)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x x y) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x x y)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x x y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x x y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (fma.f64 x x y)))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (pow.f64 x 2) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 y 3)) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (pow.f64 x 2) 0) (*.f64 x (*.f64 x (+.f64 1 (/.f64 y (pow.f64 x 2))))) (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3))) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 y 3)) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 y 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 y 3)) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (-.f64 (pow.f64 x 2) y) 0) (/.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (pow.f64 y 2)) (-.f64 (pow.f64 x 2) y)) (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (-.f64 y (pow.f64 x 2)) 0) (/.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (pow.f64 y 2)) (-.f64 (pow.f64 x 2) y)) (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 y 0) (*.f64 (/.f64 (fma.f64 x x y) y) y) (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (neg.f64 y) 0) (/.f64 (-.f64 (pow.f64 (pow.f64 x 3) 2) (neg.f64 (pow.f64 y 3))) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (pow.f64 x 2) 0) (/.f64 (-.f64 (pow.f64 (pow.f64 x 3) 2) (neg.f64 (pow.f64 y 3))) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3))) 0) (/.f64 (-.f64 (pow.f64 (pow.f64 x 3) 2) (neg.f64 (pow.f64 y 3))) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x 2) y)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 y (pow.f64 x 2))))))

simplify3.1s (15.6%)

Algorithm
egglog
Counts
146 → 149
Calls
Call 1
Inputs
(*.f64 2 y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(pow.f64 (/.f64 1 x) -2)
(+.f64 (pow.f64 (/.f64 1 x) -2) (*.f64 2 y))
(+.f64 (pow.f64 (/.f64 1 x) -2) (*.f64 2 y))
(+.f64 (pow.f64 (/.f64 1 x) -2) (*.f64 2 y))
(pow.f64 (/.f64 -1 x) -2)
(+.f64 (*.f64 2 y) (pow.f64 (/.f64 -1 x) -2))
(+.f64 (*.f64 2 y) (pow.f64 (/.f64 -1 x) -2))
(+.f64 (*.f64 2 y) (pow.f64 (/.f64 -1 x) -2))
(pow.f64 x 2)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(*.f64 2 y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(*.f64 2 y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
y
(+.f64 y (pow.f64 x 2))
(+.f64 y (pow.f64 x 2))
(+.f64 y (pow.f64 x 2))
(pow.f64 (/.f64 1 x) -2)
(+.f64 (pow.f64 (/.f64 1 x) -2) y)
(+.f64 (pow.f64 (/.f64 1 x) -2) y)
(+.f64 (pow.f64 (/.f64 1 x) -2) y)
(pow.f64 (/.f64 -1 x) -2)
(+.f64 y (pow.f64 (/.f64 -1 x) -2))
(+.f64 y (pow.f64 (/.f64 -1 x) -2))
(+.f64 y (pow.f64 (/.f64 -1 x) -2))
(pow.f64 x 2)
(+.f64 y (pow.f64 x 2))
(+.f64 y (pow.f64 x 2))
(+.f64 y (pow.f64 x 2))
y
(+.f64 y (pow.f64 x 2))
(+.f64 y (pow.f64 x 2))
(+.f64 y (pow.f64 x 2))
y
(+.f64 y (pow.f64 x 2))
(+.f64 y (pow.f64 x 2))
(+.f64 y (pow.f64 x 2))
(*.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)) (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)))
(*.f64 (+.f64 (cbrt.f64 (pow.f64 y 2)) (*.f64 (cbrt.f64 (fma.f64 x x y)) (-.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 y)))) (+.f64 (cbrt.f64 y) (cbrt.f64 (fma.f64 x x y))))
(*.f64 (+.f64 (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) (*.f64 (cbrt.f64 y) (-.f64 (cbrt.f64 y) (cbrt.f64 (fma.f64 x x y))))) (+.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 y)))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)) (cbrt.f64 (+.f64 (fma.f64 x x y) y)))
(*.f64 (+.f64 (cbrt.f64 (*.f64 4 (pow.f64 y 2))) (-.f64 (*.f64 x (cbrt.f64 x)) (*.f64 (cbrt.f64 (+.f64 y y)) (cbrt.f64 (pow.f64 x 2))))) (+.f64 (cbrt.f64 (+.f64 y y)) (cbrt.f64 (pow.f64 x 2))))
(*.f64 (+.f64 (*.f64 x (cbrt.f64 x)) (-.f64 (cbrt.f64 (*.f64 4 (pow.f64 y 2))) (*.f64 (cbrt.f64 (pow.f64 x 2)) (cbrt.f64 (+.f64 y y))))) (+.f64 (cbrt.f64 (pow.f64 x 2)) (cbrt.f64 (+.f64 y y))))
(*.f64 1 (+.f64 (fma.f64 x x y) y))
(*.f64 (+.f64 (fma.f64 x x y) y) 1)
(-.f64 (fma.f64 x x y) (neg.f64 y))
(/.f64 (+.f64 (fma.f64 x x y) y) 1)
(fma.f64 x x (+.f64 y y))
(fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) x) (+.f64 y y))
(fma.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) y)
(fma.f64 (cbrt.f64 y) (*.f64 2 (cbrt.f64 (pow.f64 y 2))) (pow.f64 x 2))
(fma.f64 (cbrt.f64 (+.f64 y y)) (cbrt.f64 (*.f64 4 (pow.f64 y 2))) (pow.f64 x 2))
(fma.f64 (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) (cbrt.f64 (fma.f64 x x y)) y)
(fma.f64 (cbrt.f64 y) (cbrt.f64 (pow.f64 y 2)) (fma.f64 x x y))
(fma.f64 (cbrt.f64 (pow.f64 x 2)) (*.f64 x (cbrt.f64 x)) (+.f64 y y))
(fma.f64 (cbrt.f64 (pow.f64 y 2)) (*.f64 2 (cbrt.f64 y)) (pow.f64 x 2))
(fma.f64 (cbrt.f64 (pow.f64 y 2)) (cbrt.f64 y) (fma.f64 x x y))
(fma.f64 (*.f64 x (cbrt.f64 x)) (cbrt.f64 (pow.f64 x 2)) (+.f64 y y))
(fma.f64 2 y (pow.f64 x 2))
(fma.f64 y 2 (pow.f64 x 2))
(fma.f64 1 y (fma.f64 x x y))
(fma.f64 1 (fma.f64 x x y) y)
(fma.f64 1 (pow.f64 x 2) (+.f64 y y))
(fma.f64 1 (+.f64 y y) (pow.f64 x 2))
(fma.f64 y 1 (fma.f64 x x y))
(fma.f64 (fma.f64 x x y) 1 y)
(fma.f64 (pow.f64 x 2) 1 (+.f64 y y))
(pow.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 3) 1/3)
(pow.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)) 3)
(pow.f64 (+.f64 (fma.f64 x x y) y) 1)
(cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 3))
(neg.f64 (-.f64 (neg.f64 (fma.f64 x x y)) y))
(if (!=.f64 (fma.f64 x x y) 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 x x y) 0) (*.f64 (fma.f64 x x y) (+.f64 1 (/.f64 y (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y))) 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 y 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (pow.f64 x 2) 0) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (fma.f64 x x y) y)) (pow.f64 x 2)) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (pow.f64 x 2) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 (+.f64 y y) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (neg.f64 (pow.f64 x 2)) 0) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (fma.f64 x x y) y)) (pow.f64 x 2)) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 x x (*.f64 -2 y)) 0) (/.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 4 (pow.f64 y 2))) (fma.f64 x x (*.f64 -2 y))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 y 0) (*.f64 y (+.f64 2 (/.f64 (pow.f64 x 2) y))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (pow.f64 x 2) 0) (*.f64 (+.f64 1 (/.f64 (/.f64 (+.f64 y y) x) x)) (pow.f64 x 2)) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 (+.f64 y y) (fma.f64 x x (*.f64 -2 y)))) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 (+.f64 y y) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (+.f64 y y) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 (+.f64 y y) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (+.f64 y y) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (+.f64 (*.f64 4 (pow.f64 y 2)) (*.f64 (pow.f64 x 2) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (-.f64 y (-.f64 (pow.f64 x 2) y)) 0) (/.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 4 (pow.f64 y 2))) (fma.f64 x x (*.f64 -2 y))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (+.f64 y y) 0) (*.f64 (+.f64 y y) (+.f64 1 (/.f64 (pow.f64 x 2) (+.f64 y y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (+.f64 (*.f64 4 (pow.f64 y 2)) (*.f64 (pow.f64 x 2) (fma.f64 x x (*.f64 -2 y)))) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (+.f64 (*.f64 4 (pow.f64 y 2)) (*.f64 (pow.f64 x 2) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (pow.f64 x 2) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (+.f64 (*.f64 4 (pow.f64 y 2)) (*.f64 (pow.f64 x 2) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (neg.f64 y) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 x x y) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y))) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(+.f64 (fma.f64 x x y) y)
(+.f64 y (fma.f64 x x y))
(+.f64 (pow.f64 x 2) (+.f64 y y))
(+.f64 (+.f64 y y) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (-.f64 y (neg.f64 y)))
(+.f64 (-.f64 (fma.f64 x x y) 0) y)
(*.f64 (+.f64 (cbrt.f64 (pow.f64 y 2)) (*.f64 (cbrt.f64 x) (-.f64 x (cbrt.f64 (*.f64 x y))))) (+.f64 (cbrt.f64 y) (cbrt.f64 (pow.f64 x 2))))
(*.f64 (+.f64 (*.f64 x (cbrt.f64 x)) (*.f64 (cbrt.f64 y) (-.f64 (cbrt.f64 y) (cbrt.f64 (pow.f64 x 2))))) (+.f64 (cbrt.f64 (pow.f64 x 2)) (cbrt.f64 y)))
(*.f64 -1 (neg.f64 (fma.f64 x x y)))
(*.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)))
(*.f64 (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) (cbrt.f64 (fma.f64 x x y)))
(*.f64 1 (fma.f64 x x y))
(*.f64 (fma.f64 x x y) 1)
(-.f64 0 (neg.f64 (fma.f64 x x y)))
(-.f64 (pow.f64 x 2) (neg.f64 y))
(/.f64 (fma.f64 x x y) 1)
(fma.f64 x x y)
(fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) x) y)
(fma.f64 (cbrt.f64 (pow.f64 x 2)) (*.f64 x (cbrt.f64 x)) y)
(fma.f64 (cbrt.f64 y) (cbrt.f64 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 (cbrt.f64 (pow.f64 y 2)) (cbrt.f64 y) (pow.f64 x 2))
(fma.f64 (*.f64 x (cbrt.f64 x)) (cbrt.f64 (pow.f64 x 2)) y)
(fma.f64 1 (pow.f64 x 2) y)
(fma.f64 1 y (pow.f64 x 2))
(fma.f64 y 1 (pow.f64 x 2))
(fma.f64 (pow.f64 x 2) 1 y)
(pow.f64 (pow.f64 (fma.f64 x x y) 3) 1/3)
(pow.f64 (cbrt.f64 (fma.f64 x x y)) 3)
(pow.f64 (fma.f64 x x y) 1)
(cbrt.f64 (pow.f64 (fma.f64 x x y) 3))
(neg.f64 (neg.f64 (fma.f64 x x y)))
(if (!=.f64 (pow.f64 x 2) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 y 3)) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(if (!=.f64 (pow.f64 x 2) 0) (*.f64 x (*.f64 x (+.f64 1 (/.f64 y (pow.f64 x 2))))) (fma.f64 x x y))
(if (!=.f64 (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3))) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 y 3)) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(if (!=.f64 y 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 y 3)) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(if (!=.f64 (-.f64 (pow.f64 x 2) y) 0) (/.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (pow.f64 y 2)) (-.f64 (pow.f64 x 2) y)) (fma.f64 x x y))
(if (!=.f64 (-.f64 y (pow.f64 x 2)) 0) (/.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (pow.f64 y 2)) (-.f64 (pow.f64 x 2) y)) (fma.f64 x x y))
(if (!=.f64 y 0) (*.f64 (/.f64 (fma.f64 x x y) y) y) (fma.f64 x x y))
(if (!=.f64 (neg.f64 y) 0) (/.f64 (-.f64 (pow.f64 (pow.f64 x 3) 2) (neg.f64 (pow.f64 y 3))) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(if (!=.f64 (pow.f64 x 2) 0) (/.f64 (-.f64 (pow.f64 (pow.f64 x 3) 2) (neg.f64 (pow.f64 y 3))) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(if (!=.f64 (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3))) 0) (/.f64 (-.f64 (pow.f64 (pow.f64 x 3) 2) (neg.f64 (pow.f64 y 3))) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(+.f64 (pow.f64 x 2) y)
(+.f64 y (pow.f64 x 2))
Outputs
(*.f64 2 y)
(*.f64 y 2)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (fma.f64 x x y) y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (fma.f64 x x y) y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (fma.f64 x x y) y)
(pow.f64 (/.f64 1 x) -2)
(+.f64 (pow.f64 (/.f64 1 x) -2) (*.f64 2 y))
(+.f64 y (+.f64 (pow.f64 (/.f64 1 x) -2) y))
(+.f64 (pow.f64 (/.f64 1 x) -2) (*.f64 2 y))
(+.f64 y (+.f64 (pow.f64 (/.f64 1 x) -2) y))
(+.f64 (pow.f64 (/.f64 1 x) -2) (*.f64 2 y))
(+.f64 y (+.f64 (pow.f64 (/.f64 1 x) -2) y))
(pow.f64 (/.f64 -1 x) -2)
(+.f64 (*.f64 2 y) (pow.f64 (/.f64 -1 x) -2))
(fma.f64 2 y (pow.f64 (/.f64 -1 x) -2))
(+.f64 (*.f64 2 y) (pow.f64 (/.f64 -1 x) -2))
(fma.f64 2 y (pow.f64 (/.f64 -1 x) -2))
(+.f64 (*.f64 2 y) (pow.f64 (/.f64 -1 x) -2))
(fma.f64 2 y (pow.f64 (/.f64 -1 x) -2))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (fma.f64 x x y) y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (fma.f64 x x y) y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (fma.f64 x x y) y)
(*.f64 2 y)
(*.f64 y 2)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (fma.f64 x x y) y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (fma.f64 x x y) y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (fma.f64 x x y) y)
(*.f64 2 y)
(*.f64 y 2)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (fma.f64 x x y) y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (fma.f64 x x y) y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (fma.f64 x x y) y)
y
(+.f64 y (pow.f64 x 2))
(fma.f64 x x y)
(+.f64 y (pow.f64 x 2))
(fma.f64 x x y)
(+.f64 y (pow.f64 x 2))
(fma.f64 x x y)
(pow.f64 (/.f64 1 x) -2)
(+.f64 (pow.f64 (/.f64 1 x) -2) y)
(+.f64 (pow.f64 (/.f64 1 x) -2) y)
(+.f64 (pow.f64 (/.f64 1 x) -2) y)
(pow.f64 (/.f64 -1 x) -2)
(+.f64 y (pow.f64 (/.f64 -1 x) -2))
(+.f64 y (pow.f64 (/.f64 -1 x) -2))
(+.f64 y (pow.f64 (/.f64 -1 x) -2))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 y (pow.f64 x 2))
(fma.f64 x x y)
(+.f64 y (pow.f64 x 2))
(fma.f64 x x y)
(+.f64 y (pow.f64 x 2))
(fma.f64 x x y)
y
(+.f64 y (pow.f64 x 2))
(fma.f64 x x y)
(+.f64 y (pow.f64 x 2))
(fma.f64 x x y)
(+.f64 y (pow.f64 x 2))
(fma.f64 x x y)
y
(+.f64 y (pow.f64 x 2))
(fma.f64 x x y)
(+.f64 y (pow.f64 x 2))
(fma.f64 x x y)
(+.f64 y (pow.f64 x 2))
(fma.f64 x x y)
(*.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)) (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)))
(+.f64 (fma.f64 x x y) y)
(*.f64 (+.f64 (cbrt.f64 (pow.f64 y 2)) (*.f64 (cbrt.f64 (fma.f64 x x y)) (-.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 y)))) (+.f64 (cbrt.f64 y) (cbrt.f64 (fma.f64 x x y))))
(+.f64 (fma.f64 x x y) y)
(*.f64 (+.f64 (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) (*.f64 (cbrt.f64 y) (-.f64 (cbrt.f64 y) (cbrt.f64 (fma.f64 x x y))))) (+.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 y)))
(+.f64 (fma.f64 x x y) y)
(*.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)) (cbrt.f64 (+.f64 (fma.f64 x x y) y)))
(+.f64 (fma.f64 x x y) y)
(*.f64 (+.f64 (cbrt.f64 (*.f64 4 (pow.f64 y 2))) (-.f64 (*.f64 x (cbrt.f64 x)) (*.f64 (cbrt.f64 (+.f64 y y)) (cbrt.f64 (pow.f64 x 2))))) (+.f64 (cbrt.f64 (+.f64 y y)) (cbrt.f64 (pow.f64 x 2))))
(*.f64 (fma.f64 x (cbrt.f64 x) (-.f64 (cbrt.f64 (*.f64 4 (*.f64 y y))) (cbrt.f64 (*.f64 (*.f64 x x) (*.f64 y 2))))) (+.f64 (cbrt.f64 (*.f64 y 2)) (pow.f64 (cbrt.f64 x) 2)))
(*.f64 (+.f64 (*.f64 x (cbrt.f64 x)) (-.f64 (cbrt.f64 (*.f64 4 (pow.f64 y 2))) (*.f64 (cbrt.f64 (pow.f64 x 2)) (cbrt.f64 (+.f64 y y))))) (+.f64 (cbrt.f64 (pow.f64 x 2)) (cbrt.f64 (+.f64 y y))))
(*.f64 (fma.f64 x (cbrt.f64 x) (-.f64 (cbrt.f64 (*.f64 4 (*.f64 y y))) (cbrt.f64 (*.f64 (*.f64 x x) (*.f64 y 2))))) (+.f64 (cbrt.f64 (*.f64 y 2)) (pow.f64 (cbrt.f64 x) 2)))
(*.f64 1 (+.f64 (fma.f64 x x y) y))
(+.f64 (fma.f64 x x y) y)
(*.f64 (+.f64 (fma.f64 x x y) y) 1)
(+.f64 (fma.f64 x x y) y)
(-.f64 (fma.f64 x x y) (neg.f64 y))
(+.f64 (fma.f64 x x y) y)
(/.f64 (+.f64 (fma.f64 x x y) y) 1)
(+.f64 (fma.f64 x x y) y)
(fma.f64 x x (+.f64 y y))
(+.f64 (fma.f64 x x y) y)
(fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) x) (+.f64 y y))
(fma.f64 (cbrt.f64 x) (*.f64 x (pow.f64 (cbrt.f64 x) 2)) (*.f64 y 2))
(fma.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) y)
(+.f64 (fma.f64 x x y) y)
(fma.f64 (cbrt.f64 y) (*.f64 2 (cbrt.f64 (pow.f64 y 2))) (pow.f64 x 2))
(fma.f64 (cbrt.f64 y) (cbrt.f64 (*.f64 8 (*.f64 y y))) (*.f64 x x))
(fma.f64 (cbrt.f64 (+.f64 y y)) (cbrt.f64 (*.f64 4 (pow.f64 y 2))) (pow.f64 x 2))
(+.f64 (fma.f64 x x y) y)
(fma.f64 (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) (cbrt.f64 (fma.f64 x x y)) y)
(+.f64 (fma.f64 x x y) y)
(fma.f64 (cbrt.f64 y) (cbrt.f64 (pow.f64 y 2)) (fma.f64 x x y))
(+.f64 (fma.f64 x x y) y)
(fma.f64 (cbrt.f64 (pow.f64 x 2)) (*.f64 x (cbrt.f64 x)) (+.f64 y y))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 x (cbrt.f64 x)) (*.f64 y 2))
(fma.f64 (cbrt.f64 (pow.f64 y 2)) (*.f64 2 (cbrt.f64 y)) (pow.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) 2) (*.f64 x x))
(fma.f64 (cbrt.f64 (pow.f64 y 2)) (cbrt.f64 y) (fma.f64 x x y))
(+.f64 (fma.f64 x x y) y)
(fma.f64 (*.f64 x (cbrt.f64 x)) (cbrt.f64 (pow.f64 x 2)) (+.f64 y y))
(fma.f64 (*.f64 x (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) (*.f64 y 2))
(fma.f64 2 y (pow.f64 x 2))
(+.f64 (fma.f64 x x y) y)
(fma.f64 y 2 (pow.f64 x 2))
(+.f64 (fma.f64 x x y) y)
(fma.f64 1 y (fma.f64 x x y))
(+.f64 (fma.f64 x x y) y)
(fma.f64 1 (fma.f64 x x y) y)
(+.f64 (fma.f64 x x y) y)
(fma.f64 1 (pow.f64 x 2) (+.f64 y y))
(+.f64 (fma.f64 x x y) y)
(fma.f64 1 (+.f64 y y) (pow.f64 x 2))
(+.f64 (fma.f64 x x y) y)
(fma.f64 y 1 (fma.f64 x x y))
(+.f64 (fma.f64 x x y) y)
(fma.f64 (fma.f64 x x y) 1 y)
(+.f64 (fma.f64 x x y) y)
(fma.f64 (pow.f64 x 2) 1 (+.f64 y y))
(+.f64 (fma.f64 x x y) y)
(pow.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 3) 1/3)
(+.f64 (fma.f64 x x y) y)
(pow.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)) 3)
(+.f64 (fma.f64 x x y) y)
(pow.f64 (+.f64 (fma.f64 x x y) y) 1)
(+.f64 (fma.f64 x x y) y)
(cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 3))
(+.f64 (fma.f64 x x y) y)
(neg.f64 (-.f64 (neg.f64 (fma.f64 x x y)) y))
(+.f64 (fma.f64 x x y) y)
(if (!=.f64 (fma.f64 x x y) 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 x x y) 0) (/.f64 (+.f64 (pow.f64 y 3) (pow.f64 (fma.f64 x x y) 3)) (fma.f64 y y (*.f64 (*.f64 x x) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 x x y) 0) (*.f64 (fma.f64 x x y) (+.f64 1 (/.f64 y (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 x x y) 0) (*.f64 (fma.f64 x x y) (-.f64 (/.f64 y (fma.f64 x x y)) -1)) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y))) 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 y y (*.f64 (*.f64 x x) (fma.f64 x x y))) 0) (/.f64 (+.f64 (pow.f64 y 3) (pow.f64 (fma.f64 x x y) 3)) (fma.f64 y y (*.f64 (*.f64 x x) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 y 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 y 0) (/.f64 (+.f64 (pow.f64 y 3) (pow.f64 (fma.f64 x x y) 3)) (fma.f64 y y (*.f64 (*.f64 x x) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (pow.f64 x 2) 0) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (fma.f64 x x y) y)) (pow.f64 x 2)) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (*.f64 x x) 0) (/.f64 (/.f64 (*.f64 (+.f64 (fma.f64 x x y) y) (*.f64 x x)) x) x) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (pow.f64 x 2) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 (+.f64 y y) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (*.f64 x x) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (*.f64 y 2) 3)) (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 (*.f64 y 2) (fma.f64 x x (*.f64 y -2))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (neg.f64 (pow.f64 x 2)) 0) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (fma.f64 x x y) y)) (pow.f64 x 2)) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (neg.f64 (*.f64 x x)) 0) (/.f64 (/.f64 (*.f64 (+.f64 (fma.f64 x x y) y) (*.f64 x x)) x) x) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 x x (*.f64 -2 y)) 0) (/.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 4 (pow.f64 y 2))) (fma.f64 x x (*.f64 -2 y))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 x x (*.f64 y -2)) 0) (/.f64 (fma.f64 x (pow.f64 x 3) (*.f64 (*.f64 y y) -4)) (fma.f64 x x (*.f64 y -2))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 y 0) (*.f64 y (+.f64 2 (/.f64 (pow.f64 x 2) y))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 y 0) (*.f64 y (+.f64 2 (/.f64 (*.f64 x x) y))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (pow.f64 x 2) 0) (*.f64 (+.f64 1 (/.f64 (/.f64 (+.f64 y y) x) x)) (pow.f64 x 2)) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (*.f64 x x) 0) (*.f64 (-.f64 (/.f64 (*.f64 y 2) (*.f64 x x)) -1) (*.f64 x x)) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 (+.f64 y y) (fma.f64 x x (*.f64 -2 y)))) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 (+.f64 y y) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 (*.f64 y 2) (fma.f64 x x (*.f64 y -2)))) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (*.f64 y 2) 3)) (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 (*.f64 y 2) (fma.f64 x x (*.f64 y -2))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (+.f64 y y) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 (+.f64 y y) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (*.f64 y 2) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (*.f64 y 2) 3)) (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 (*.f64 y 2) (fma.f64 x x (*.f64 y -2))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (+.f64 y y) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (+.f64 (*.f64 4 (pow.f64 y 2)) (*.f64 (pow.f64 x 2) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (*.f64 y 2) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (*.f64 y 2) 3)) (fma.f64 4 (*.f64 y y) (*.f64 (fma.f64 x x (*.f64 y -2)) (*.f64 x x)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (-.f64 y (-.f64 (pow.f64 x 2) y)) 0) (/.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 4 (pow.f64 y 2))) (fma.f64 x x (*.f64 -2 y))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (-.f64 (*.f64 y 2) (*.f64 x x)) 0) (/.f64 (fma.f64 x (pow.f64 x 3) (*.f64 (*.f64 y y) -4)) (fma.f64 x x (*.f64 y -2))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (+.f64 y y) 0) (*.f64 (+.f64 y y) (+.f64 1 (/.f64 (pow.f64 x 2) (+.f64 y y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (*.f64 y 2) 0) (*.f64 (*.f64 y 2) (-.f64 (/.f64 (*.f64 x x) (*.f64 y 2)) -1)) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (+.f64 (*.f64 4 (pow.f64 y 2)) (*.f64 (pow.f64 x 2) (fma.f64 x x (*.f64 -2 y)))) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (+.f64 (*.f64 4 (pow.f64 y 2)) (*.f64 (pow.f64 x 2) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 4 (*.f64 y y) (*.f64 (fma.f64 x x (*.f64 y -2)) (*.f64 x x))) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (*.f64 y 2) 3)) (fma.f64 4 (*.f64 y y) (*.f64 (fma.f64 x x (*.f64 y -2)) (*.f64 x x)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (pow.f64 x 2) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (*.f64 (pow.f64 y 3) 8)) (+.f64 (*.f64 4 (pow.f64 y 2)) (*.f64 (pow.f64 x 2) (fma.f64 x x (*.f64 -2 y))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (*.f64 x x) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (*.f64 y 2) 3)) (fma.f64 4 (*.f64 y y) (*.f64 (fma.f64 x x (*.f64 y -2)) (*.f64 x x)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (neg.f64 y) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (neg.f64 y) 0) (/.f64 (+.f64 (pow.f64 y 3) (pow.f64 (fma.f64 x x y) 3)) (fma.f64 y y (*.f64 (*.f64 x x) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 x x y) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 x x y) 0) (/.f64 (+.f64 (pow.f64 y 3) (pow.f64 (fma.f64 x x y) 3)) (fma.f64 y y (*.f64 (*.f64 x x) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y))) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 y y (*.f64 (*.f64 x x) (fma.f64 x x y))) 0) (/.f64 (+.f64 (pow.f64 y 3) (pow.f64 (fma.f64 x x y) 3)) (fma.f64 y y (*.f64 (*.f64 x x) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(+.f64 (fma.f64 x x y) y)
(+.f64 y (fma.f64 x x y))
(+.f64 (fma.f64 x x y) y)
(+.f64 (pow.f64 x 2) (+.f64 y y))
(+.f64 (fma.f64 x x y) y)
(+.f64 (+.f64 y y) (pow.f64 x 2))
(+.f64 (fma.f64 x x y) y)
(+.f64 (pow.f64 x 2) (-.f64 y (neg.f64 y)))
(+.f64 (fma.f64 x x y) y)
(+.f64 (-.f64 (fma.f64 x x y) 0) y)
(+.f64 (fma.f64 x x y) y)
(*.f64 (+.f64 (cbrt.f64 (pow.f64 y 2)) (*.f64 (cbrt.f64 x) (-.f64 x (cbrt.f64 (*.f64 x y))))) (+.f64 (cbrt.f64 y) (cbrt.f64 (pow.f64 x 2))))
(*.f64 (+.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 x) (-.f64 x (cbrt.f64 (*.f64 x y))))) (+.f64 (cbrt.f64 y) (pow.f64 (cbrt.f64 x) 2)))
(*.f64 (+.f64 (*.f64 x (cbrt.f64 x)) (*.f64 (cbrt.f64 y) (-.f64 (cbrt.f64 y) (cbrt.f64 (pow.f64 x 2))))) (+.f64 (cbrt.f64 (pow.f64 x 2)) (cbrt.f64 y)))
(*.f64 (fma.f64 x (cbrt.f64 x) (*.f64 (cbrt.f64 y) (-.f64 (cbrt.f64 y) (pow.f64 (cbrt.f64 x) 2)))) (+.f64 (cbrt.f64 y) (pow.f64 (cbrt.f64 x) 2)))
(*.f64 -1 (neg.f64 (fma.f64 x x y)))
(fma.f64 x x y)
(*.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)))
(fma.f64 x x y)
(*.f64 (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) (cbrt.f64 (fma.f64 x x y)))
(fma.f64 x x y)
(*.f64 1 (fma.f64 x x y))
(fma.f64 x x y)
(*.f64 (fma.f64 x x y) 1)
(fma.f64 x x y)
(-.f64 0 (neg.f64 (fma.f64 x x y)))
(fma.f64 x x y)
(-.f64 (pow.f64 x 2) (neg.f64 y))
(fma.f64 x x y)
(/.f64 (fma.f64 x x y) 1)
(fma.f64 x x y)
(fma.f64 x x y)
(fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) x) y)
(fma.f64 (cbrt.f64 x) (*.f64 x (pow.f64 (cbrt.f64 x) 2)) y)
(fma.f64 (cbrt.f64 (pow.f64 x 2)) (*.f64 x (cbrt.f64 x)) y)
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 x (cbrt.f64 x)) y)
(fma.f64 (cbrt.f64 y) (cbrt.f64 (pow.f64 y 2)) (pow.f64 x 2))
(fma.f64 x x y)
(fma.f64 (cbrt.f64 (pow.f64 y 2)) (cbrt.f64 y) (pow.f64 x 2))
(fma.f64 x x y)
(fma.f64 (*.f64 x (cbrt.f64 x)) (cbrt.f64 (pow.f64 x 2)) y)
(fma.f64 (*.f64 x (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) y)
(fma.f64 1 (pow.f64 x 2) y)
(fma.f64 x x y)
(fma.f64 1 y (pow.f64 x 2))
(fma.f64 x x y)
(fma.f64 y 1 (pow.f64 x 2))
(fma.f64 x x y)
(fma.f64 (pow.f64 x 2) 1 y)
(fma.f64 x x y)
(pow.f64 (pow.f64 (fma.f64 x x y) 3) 1/3)
(fma.f64 x x y)
(pow.f64 (cbrt.f64 (fma.f64 x x y)) 3)
(fma.f64 x x y)
(pow.f64 (fma.f64 x x y) 1)
(fma.f64 x x y)
(cbrt.f64 (pow.f64 (fma.f64 x x y) 3))
(fma.f64 x x y)
(neg.f64 (neg.f64 (fma.f64 x x y)))
(fma.f64 x x y)
(if (!=.f64 (pow.f64 x 2) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 y 3)) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(if (!=.f64 (*.f64 x x) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 y 3)) (fma.f64 y (-.f64 y (*.f64 x x)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(if (!=.f64 (pow.f64 x 2) 0) (*.f64 x (*.f64 x (+.f64 1 (/.f64 y (pow.f64 x 2))))) (fma.f64 x x y))
(if (!=.f64 (*.f64 x x) 0) (*.f64 x (+.f64 x (/.f64 (*.f64 x y) (*.f64 x x)))) (fma.f64 x x y))
(if (!=.f64 (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3))) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 y 3)) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(if (!=.f64 (fma.f64 y (-.f64 y (*.f64 x x)) (*.f64 x (pow.f64 x 3))) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 y 3)) (fma.f64 y (-.f64 y (*.f64 x x)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(if (!=.f64 y 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 y 3)) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(if (!=.f64 y 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 y 3)) (fma.f64 y (-.f64 y (*.f64 x x)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(if (!=.f64 (-.f64 (pow.f64 x 2) y) 0) (/.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (pow.f64 y 2)) (-.f64 (pow.f64 x 2) y)) (fma.f64 x x y))
(if (!=.f64 (-.f64 (*.f64 x x) y) 0) (/.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 y y)) (-.f64 (*.f64 x x) y)) (fma.f64 x x y))
(if (!=.f64 (-.f64 y (pow.f64 x 2)) 0) (/.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (pow.f64 y 2)) (-.f64 (pow.f64 x 2) y)) (fma.f64 x x y))
(if (!=.f64 (-.f64 y (*.f64 x x)) 0) (/.f64 (-.f64 (*.f64 x (pow.f64 x 3)) (*.f64 y y)) (-.f64 (*.f64 x x) y)) (fma.f64 x x y))
(if (!=.f64 y 0) (*.f64 (/.f64 (fma.f64 x x y) y) y) (fma.f64 x x y))
(if (!=.f64 y 0) (/.f64 (*.f64 (fma.f64 x x y) y) y) (fma.f64 x x y))
(if (!=.f64 (neg.f64 y) 0) (/.f64 (-.f64 (pow.f64 (pow.f64 x 3) 2) (neg.f64 (pow.f64 y 3))) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(if (!=.f64 (neg.f64 y) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 y 3)) (fma.f64 y (-.f64 y (*.f64 x x)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(if (!=.f64 (pow.f64 x 2) 0) (/.f64 (-.f64 (pow.f64 (pow.f64 x 3) 2) (neg.f64 (pow.f64 y 3))) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(if (!=.f64 (*.f64 x x) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 y 3)) (fma.f64 y (-.f64 y (*.f64 x x)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(if (!=.f64 (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3))) 0) (/.f64 (-.f64 (pow.f64 (pow.f64 x 3) 2) (neg.f64 (pow.f64 y 3))) (fma.f64 y (-.f64 y (pow.f64 x 2)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(if (!=.f64 (fma.f64 y (-.f64 y (*.f64 x x)) (*.f64 x (pow.f64 x 3))) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 y 3)) (fma.f64 y (-.f64 y (*.f64 x x)) (*.f64 x (pow.f64 x 3)))) (fma.f64 x x y))
(+.f64 (pow.f64 x 2) y)
(fma.f64 x x y)
(+.f64 y (pow.f64 x 2))
(fma.f64 x x y)

localize12.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 4 computations (71.4% saved)

series19.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

Compiled 815 to 605 computations (25.8% saved)

rewrite1.6s (7.8%)

Algorithm
batch-egg-rewrite
Rules
60×egg-rr
Counts
1 → 60
Calls
Call 1
Inputs
(+.f64 (fma.f64 x x y) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)) (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (cbrt.f64 (pow.f64 y 2)) (*.f64 (cbrt.f64 (fma.f64 x x y)) (-.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 y)))) (+.f64 (cbrt.f64 y) (cbrt.f64 (fma.f64 x x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) (*.f64 (cbrt.f64 y) (-.f64 (cbrt.f64 y) (cbrt.f64 (fma.f64 x x y))))) (+.f64 (cbrt.f64 y) (cbrt.f64 (fma.f64 x x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)) 2)) (cbrt.f64 (+.f64 (fma.f64 x x y) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y))) (*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2))) (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)) (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)))) (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)) (cbrt.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)))) (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)) (cbrt.f64 (+.f64 (fma.f64 x x y) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (fma.f64 x x y) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (fma.f64 x x y) y) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (fma.f64 x x y) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (fma.f64 x x y) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x x (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) x) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 y) (cbrt.f64 (pow.f64 y 2)) (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) (cbrt.f64 (fma.f64 x x y)) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 y 2)) (cbrt.f64 y) (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (cbrt.f64 x)) (cbrt.f64 (pow.f64 x 2)) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x 2)) (*.f64 x (cbrt.f64 x)) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 y (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 x x y) y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 x 2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x x y) 1 y)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 y 1 (fma.f64 x x y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (fma.f64 x x y) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (neg.f64 (fma.f64 x x y)) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (fma.f64 x x y) 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (fma.f64 x x y) 0) (*.f64 (fma.f64 x x y) (+.f64 1 (/.f64 y (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y))) 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 y 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (pow.f64 x 2) 0) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (fma.f64 x x y) y)) (pow.f64 x 2)) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (neg.f64 (pow.f64 x 2)) 0) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (fma.f64 x x y) y)) (pow.f64 x 2)) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 y 0) (*.f64 y (/.f64 (+.f64 (fma.f64 x x y) y) y)) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (pow.f64 x 2) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (*.f64 (+.f64 y y) (-.f64 (+.f64 y y) (pow.f64 x 2))) (pow.f64 (pow.f64 x 2) 2))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (-.f64 (pow.f64 x 2) (+.f64 y y)) 0) (/.f64 (-.f64 (pow.f64 (pow.f64 x 2) 2) (pow.f64 (+.f64 y y) 2)) (-.f64 (pow.f64 x 2) (+.f64 y y))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (pow.f64 x 2) 0) (*.f64 (pow.f64 x 2) (+.f64 1 (/.f64 (+.f64 y y) (pow.f64 x 2)))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (+.f64 (*.f64 (+.f64 y y) (-.f64 (+.f64 y y) (pow.f64 x 2))) (pow.f64 (pow.f64 x 2) 2)) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (*.f64 (+.f64 y y) (-.f64 (+.f64 y y) (pow.f64 x 2))) (pow.f64 (pow.f64 x 2) 2))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (+.f64 y y) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (*.f64 (+.f64 y y) (-.f64 (+.f64 y y) (pow.f64 x 2))) (pow.f64 (pow.f64 x 2) 2))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (+.f64 y y) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (pow.f64 (+.f64 y y) 2) (-.f64 (pow.f64 (pow.f64 x 2) 2) (*.f64 (+.f64 y y) (pow.f64 x 2))))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (-.f64 (+.f64 y y) (pow.f64 x 2)) 0) (/.f64 (-.f64 (pow.f64 (+.f64 y y) 2) (pow.f64 (pow.f64 x 2) 2)) (-.f64 (+.f64 y y) (pow.f64 x 2))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (+.f64 y y) 0) (*.f64 (+.f64 y y) (+.f64 1 (/.f64 (pow.f64 x 2) (+.f64 y y)))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (neg.f64 y) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (+.f64 (pow.f64 (+.f64 y y) 2) (-.f64 (pow.f64 (pow.f64 x 2) 2) (*.f64 (+.f64 y y) (pow.f64 x 2)))) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (pow.f64 (+.f64 y y) 2) (-.f64 (pow.f64 (pow.f64 x 2) 2) (*.f64 (+.f64 y y) (pow.f64 x 2))))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (pow.f64 x 2) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (pow.f64 (+.f64 y y) 2) (-.f64 (pow.f64 (pow.f64 x 2) 2) (*.f64 (+.f64 y y) (pow.f64 x 2))))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (fma.f64 x x y) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 -1 0) (+.f64 (fma.f64 x x y) y) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 1 0) (+.f64 (fma.f64 x x y) y) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y))) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x 2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 y y) (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 y (-.f64 (pow.f64 x 2) (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x 2) (-.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (fma.f64 x x y) 0) y)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 x x y) y)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 y (fma.f64 x x y))))))

simplify2.6s (13.1%)

Algorithm
egglog
Counts
84 → 90
Calls
Call 1
Inputs
(*.f64 2 y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(pow.f64 (/.f64 1 x) -2)
(+.f64 (pow.f64 (/.f64 1 x) -2) (*.f64 2 y))
(+.f64 (pow.f64 (/.f64 1 x) -2) (*.f64 2 y))
(+.f64 (pow.f64 (/.f64 1 x) -2) (*.f64 2 y))
(pow.f64 (/.f64 -1 x) -2)
(+.f64 (*.f64 2 y) (pow.f64 (/.f64 -1 x) -2))
(+.f64 (*.f64 2 y) (pow.f64 (/.f64 -1 x) -2))
(+.f64 (*.f64 2 y) (pow.f64 (/.f64 -1 x) -2))
(pow.f64 x 2)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(*.f64 2 y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(*.f64 2 y)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(*.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)) (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)))
(*.f64 (+.f64 (cbrt.f64 (pow.f64 y 2)) (*.f64 (cbrt.f64 (fma.f64 x x y)) (-.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 y)))) (+.f64 (cbrt.f64 y) (cbrt.f64 (fma.f64 x x y))))
(*.f64 (+.f64 (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) (*.f64 (cbrt.f64 y) (-.f64 (cbrt.f64 y) (cbrt.f64 (fma.f64 x x y))))) (+.f64 (cbrt.f64 y) (cbrt.f64 (fma.f64 x x y))))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)) 2)) (cbrt.f64 (+.f64 (fma.f64 x x y) y))))
(*.f64 (cbrt.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y))) (*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2))) (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2))))
(*.f64 (*.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)) (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)))) (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)) 2)))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)) (cbrt.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)))) (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2))))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)) (cbrt.f64 (+.f64 (fma.f64 x x y) y)))
(*.f64 1 (+.f64 (fma.f64 x x y) y))
(*.f64 (+.f64 (fma.f64 x x y) y) 1)
(*.f64 (/.f64 (+.f64 (fma.f64 x x y) y) -1) -1)
(-.f64 (fma.f64 x x y) (neg.f64 y))
(/.f64 (+.f64 (fma.f64 x x y) y) 1)
(fma.f64 x x (+.f64 y y))
(fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) x) (+.f64 y y))
(fma.f64 (cbrt.f64 y) (cbrt.f64 (pow.f64 y 2)) (fma.f64 x x y))
(fma.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) y)
(fma.f64 (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) (cbrt.f64 (fma.f64 x x y)) y)
(fma.f64 (cbrt.f64 (pow.f64 y 2)) (cbrt.f64 y) (fma.f64 x x y))
(fma.f64 (*.f64 x (cbrt.f64 x)) (cbrt.f64 (pow.f64 x 2)) (+.f64 y y))
(fma.f64 (cbrt.f64 (pow.f64 x 2)) (*.f64 x (cbrt.f64 x)) (+.f64 y y))
(fma.f64 1 y (fma.f64 x x y))
(fma.f64 1 (fma.f64 x x y) y)
(fma.f64 1 (pow.f64 x 2) (+.f64 y y))
(fma.f64 (fma.f64 x x y) 1 y)
(fma.f64 y 1 (fma.f64 x x y))
(pow.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 3) 1/3)
(pow.f64 (+.f64 (fma.f64 x x y) y) 1)
(pow.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)) 3)
(cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 3))
(neg.f64 (-.f64 (neg.f64 (fma.f64 x x y)) y))
(if (!=.f64 (fma.f64 x x y) 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 x x y) 0) (*.f64 (fma.f64 x x y) (+.f64 1 (/.f64 y (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y))) 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 y 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (pow.f64 x 2) 0) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (fma.f64 x x y) y)) (pow.f64 x 2)) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (neg.f64 (pow.f64 x 2)) 0) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (fma.f64 x x y) y)) (pow.f64 x 2)) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 y 0) (*.f64 y (/.f64 (+.f64 (fma.f64 x x y) y) y)) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (pow.f64 x 2) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (*.f64 (+.f64 y y) (-.f64 (+.f64 y y) (pow.f64 x 2))) (pow.f64 (pow.f64 x 2) 2))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (-.f64 (pow.f64 x 2) (+.f64 y y)) 0) (/.f64 (-.f64 (pow.f64 (pow.f64 x 2) 2) (pow.f64 (+.f64 y y) 2)) (-.f64 (pow.f64 x 2) (+.f64 y y))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (pow.f64 x 2) 0) (*.f64 (pow.f64 x 2) (+.f64 1 (/.f64 (+.f64 y y) (pow.f64 x 2)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (+.f64 (*.f64 (+.f64 y y) (-.f64 (+.f64 y y) (pow.f64 x 2))) (pow.f64 (pow.f64 x 2) 2)) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (*.f64 (+.f64 y y) (-.f64 (+.f64 y y) (pow.f64 x 2))) (pow.f64 (pow.f64 x 2) 2))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (+.f64 y y) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (*.f64 (+.f64 y y) (-.f64 (+.f64 y y) (pow.f64 x 2))) (pow.f64 (pow.f64 x 2) 2))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (+.f64 y y) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (pow.f64 (+.f64 y y) 2) (-.f64 (pow.f64 (pow.f64 x 2) 2) (*.f64 (+.f64 y y) (pow.f64 x 2))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (-.f64 (+.f64 y y) (pow.f64 x 2)) 0) (/.f64 (-.f64 (pow.f64 (+.f64 y y) 2) (pow.f64 (pow.f64 x 2) 2)) (-.f64 (+.f64 y y) (pow.f64 x 2))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (+.f64 y y) 0) (*.f64 (+.f64 y y) (+.f64 1 (/.f64 (pow.f64 x 2) (+.f64 y y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (neg.f64 y) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (+.f64 (pow.f64 (+.f64 y y) 2) (-.f64 (pow.f64 (pow.f64 x 2) 2) (*.f64 (+.f64 y y) (pow.f64 x 2)))) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (pow.f64 (+.f64 y y) 2) (-.f64 (pow.f64 (pow.f64 x 2) 2) (*.f64 (+.f64 y y) (pow.f64 x 2))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (pow.f64 x 2) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (pow.f64 (+.f64 y y) 2) (-.f64 (pow.f64 (pow.f64 x 2) 2) (*.f64 (+.f64 y y) (pow.f64 x 2))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 x x y) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 -1 0) (+.f64 (fma.f64 x x y) y) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 1 0) (+.f64 (fma.f64 x x y) y) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y))) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(+.f64 (pow.f64 x 2) (+.f64 y y))
(+.f64 (+.f64 y y) (pow.f64 x 2))
(+.f64 y (-.f64 (pow.f64 x 2) (neg.f64 y)))
(+.f64 (pow.f64 x 2) (-.f64 y (neg.f64 y)))
(+.f64 (-.f64 (fma.f64 x x y) 0) y)
(+.f64 (fma.f64 x x y) y)
(+.f64 y (fma.f64 x x y))
Outputs
(*.f64 2 y)
(*.f64 y 2)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 y (fma.f64 x x y))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 y (fma.f64 x x y))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 y (fma.f64 x x y))
(pow.f64 (/.f64 1 x) -2)
(+.f64 (pow.f64 (/.f64 1 x) -2) (*.f64 2 y))
(fma.f64 2 y (pow.f64 (/.f64 1 x) -2))
(+.f64 (pow.f64 (/.f64 1 x) -2) (*.f64 2 y))
(fma.f64 2 y (pow.f64 (/.f64 1 x) -2))
(+.f64 (pow.f64 (/.f64 1 x) -2) (*.f64 2 y))
(fma.f64 2 y (pow.f64 (/.f64 1 x) -2))
(pow.f64 (/.f64 -1 x) -2)
(+.f64 (*.f64 2 y) (pow.f64 (/.f64 -1 x) -2))
(fma.f64 2 y (pow.f64 (/.f64 -1 x) -2))
(+.f64 (*.f64 2 y) (pow.f64 (/.f64 -1 x) -2))
(fma.f64 2 y (pow.f64 (/.f64 -1 x) -2))
(+.f64 (*.f64 2 y) (pow.f64 (/.f64 -1 x) -2))
(fma.f64 2 y (pow.f64 (/.f64 -1 x) -2))
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 y (fma.f64 x x y))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 y (fma.f64 x x y))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 y (fma.f64 x x y))
(*.f64 2 y)
(*.f64 y 2)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 y (fma.f64 x x y))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 y (fma.f64 x x y))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 y (fma.f64 x x y))
(*.f64 2 y)
(*.f64 y 2)
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 y (fma.f64 x x y))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 y (fma.f64 x x y))
(+.f64 (*.f64 2 y) (pow.f64 x 2))
(+.f64 y (fma.f64 x x y))
(*.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)) (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)))
(+.f64 y (fma.f64 x x y))
(*.f64 (+.f64 (cbrt.f64 (pow.f64 y 2)) (*.f64 (cbrt.f64 (fma.f64 x x y)) (-.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 y)))) (+.f64 (cbrt.f64 y) (cbrt.f64 (fma.f64 x x y))))
(+.f64 y (fma.f64 x x y))
(*.f64 (+.f64 (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) (*.f64 (cbrt.f64 y) (-.f64 (cbrt.f64 y) (cbrt.f64 (fma.f64 x x y))))) (+.f64 (cbrt.f64 y) (cbrt.f64 (fma.f64 x x y))))
(+.f64 y (fma.f64 x x y))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)) 2)) (cbrt.f64 (+.f64 (fma.f64 x x y) y))))
(+.f64 y (fma.f64 x x y))
(*.f64 (cbrt.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y))) (*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2))) (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2))))
(+.f64 y (fma.f64 x x y))
(*.f64 (*.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)) (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)))) (cbrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)) 2)))
(+.f64 y (fma.f64 x x y))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)) (cbrt.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)))) (cbrt.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2))))
(+.f64 y (fma.f64 x x y))
(*.f64 (cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 2)) (cbrt.f64 (+.f64 (fma.f64 x x y) y)))
(+.f64 y (fma.f64 x x y))
(*.f64 1 (+.f64 (fma.f64 x x y) y))
(+.f64 y (fma.f64 x x y))
(*.f64 (+.f64 (fma.f64 x x y) y) 1)
(+.f64 y (fma.f64 x x y))
(*.f64 (/.f64 (+.f64 (fma.f64 x x y) y) -1) -1)
(+.f64 y (fma.f64 x x y))
(-.f64 (fma.f64 x x y) (neg.f64 y))
(+.f64 y (fma.f64 x x y))
(/.f64 (+.f64 (fma.f64 x x y) y) 1)
(+.f64 y (fma.f64 x x y))
(fma.f64 x x (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 (cbrt.f64 x) (*.f64 (cbrt.f64 (pow.f64 x 2)) x) (+.f64 y y))
(fma.f64 (cbrt.f64 x) (*.f64 x (pow.f64 (cbrt.f64 x) 2)) (*.f64 y 2))
(fma.f64 (cbrt.f64 y) (cbrt.f64 (pow.f64 y 2)) (fma.f64 x x y))
(+.f64 y (fma.f64 x x y))
(fma.f64 (cbrt.f64 (fma.f64 x x y)) (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) y)
(+.f64 y (fma.f64 x x y))
(fma.f64 (cbrt.f64 (pow.f64 (fma.f64 x x y) 2)) (cbrt.f64 (fma.f64 x x y)) y)
(+.f64 y (fma.f64 x x y))
(fma.f64 (cbrt.f64 (pow.f64 y 2)) (cbrt.f64 y) (fma.f64 x x y))
(+.f64 y (fma.f64 x x y))
(fma.f64 (*.f64 x (cbrt.f64 x)) (cbrt.f64 (pow.f64 x 2)) (+.f64 y y))
(fma.f64 (*.f64 (cbrt.f64 x) x) (pow.f64 (cbrt.f64 x) 2) (*.f64 y 2))
(fma.f64 (cbrt.f64 (pow.f64 x 2)) (*.f64 x (cbrt.f64 x)) (+.f64 y y))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) x) (*.f64 y 2))
(fma.f64 1 y (fma.f64 x x y))
(+.f64 y (fma.f64 x x y))
(fma.f64 1 (fma.f64 x x y) y)
(+.f64 y (fma.f64 x x y))
(fma.f64 1 (pow.f64 x 2) (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(fma.f64 (fma.f64 x x y) 1 y)
(+.f64 y (fma.f64 x x y))
(fma.f64 y 1 (fma.f64 x x y))
(+.f64 y (fma.f64 x x y))
(pow.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 3) 1/3)
(+.f64 y (fma.f64 x x y))
(pow.f64 (+.f64 (fma.f64 x x y) y) 1)
(+.f64 y (fma.f64 x x y))
(pow.f64 (cbrt.f64 (+.f64 (fma.f64 x x y) y)) 3)
(+.f64 y (fma.f64 x x y))
(cbrt.f64 (pow.f64 (+.f64 (fma.f64 x x y) y) 3))
(+.f64 y (fma.f64 x x y))
(neg.f64 (-.f64 (neg.f64 (fma.f64 x x y)) y))
(+.f64 y (fma.f64 x x y))
(if (!=.f64 (fma.f64 x x y) 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 x x y) 0) (/.f64 (+.f64 (pow.f64 y 3) (pow.f64 (fma.f64 x x y) 3)) (fma.f64 y y (*.f64 (*.f64 x x) (fma.f64 x x y)))) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 (fma.f64 x x y) 0) (*.f64 (fma.f64 x x y) (+.f64 1 (/.f64 y (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 x x y) 0) (*.f64 (fma.f64 x x y) (-.f64 (/.f64 y (fma.f64 x x y)) -1)) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y))) 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 y y (*.f64 (*.f64 x x) (fma.f64 x x y))) 0) (/.f64 (+.f64 (pow.f64 y 3) (pow.f64 (fma.f64 x x y) 3)) (fma.f64 y y (*.f64 (*.f64 x x) (fma.f64 x x y)))) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 y 0) (/.f64 (+.f64 (pow.f64 (fma.f64 x x y) 3) (pow.f64 y 3)) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 y 0) (/.f64 (+.f64 (pow.f64 y 3) (pow.f64 (fma.f64 x x y) 3)) (fma.f64 y y (*.f64 (*.f64 x x) (fma.f64 x x y)))) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 (pow.f64 x 2) 0) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (fma.f64 x x y) y)) (pow.f64 x 2)) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (*.f64 x x) 0) (*.f64 (*.f64 x x) (-.f64 (/.f64 (*.f64 y 2) (*.f64 x x)) -1)) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 (neg.f64 (pow.f64 x 2)) 0) (/.f64 (*.f64 (pow.f64 x 2) (+.f64 (fma.f64 x x y) y)) (pow.f64 x 2)) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (neg.f64 (*.f64 x x)) 0) (*.f64 (*.f64 x x) (-.f64 (/.f64 (*.f64 y 2) (*.f64 x x)) -1)) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 y 0) (*.f64 y (/.f64 (+.f64 (fma.f64 x x y) y) y)) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 y 0) (*.f64 (/.f64 (+.f64 y (fma.f64 x x y)) y) y) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 (pow.f64 x 2) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (*.f64 (+.f64 y y) (-.f64 (+.f64 y y) (pow.f64 x 2))) (pow.f64 (pow.f64 x 2) 2))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (*.f64 x x) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x x) 3) (pow.f64 (*.f64 y 2) 3)) (-.f64 (pow.f64 (*.f64 x x) 2) (*.f64 (*.f64 y 2) (fma.f64 x x (*.f64 y -2))))) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 (-.f64 (pow.f64 x 2) (+.f64 y y)) 0) (/.f64 (-.f64 (pow.f64 (pow.f64 x 2) 2) (pow.f64 (+.f64 y y) 2)) (-.f64 (pow.f64 x 2) (+.f64 y y))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 x x (*.f64 y -2)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x x) 2) (*.f64 4 (*.f64 y y))) (fma.f64 x x (*.f64 y -2))) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 (pow.f64 x 2) 0) (*.f64 (pow.f64 x 2) (+.f64 1 (/.f64 (+.f64 y y) (pow.f64 x 2)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (*.f64 x x) 0) (*.f64 (*.f64 x x) (-.f64 (/.f64 (*.f64 y 2) (*.f64 x x)) -1)) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 (+.f64 (*.f64 (+.f64 y y) (-.f64 (+.f64 y y) (pow.f64 x 2))) (pow.f64 (pow.f64 x 2) 2)) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (*.f64 (+.f64 y y) (-.f64 (+.f64 y y) (pow.f64 x 2))) (pow.f64 (pow.f64 x 2) 2))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (-.f64 (pow.f64 (*.f64 x x) 2) (*.f64 (*.f64 y 2) (fma.f64 x x (*.f64 y -2)))) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x x) 3) (pow.f64 (*.f64 y 2) 3)) (-.f64 (pow.f64 (*.f64 x x) 2) (*.f64 (*.f64 y 2) (fma.f64 x x (*.f64 y -2))))) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 (+.f64 y y) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (*.f64 (+.f64 y y) (-.f64 (+.f64 y y) (pow.f64 x 2))) (pow.f64 (pow.f64 x 2) 2))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (*.f64 y 2) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x x) 3) (pow.f64 (*.f64 y 2) 3)) (-.f64 (pow.f64 (*.f64 x x) 2) (*.f64 (*.f64 y 2) (fma.f64 x x (*.f64 y -2))))) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 (+.f64 y y) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (pow.f64 (+.f64 y y) 2) (-.f64 (pow.f64 (pow.f64 x 2) 2) (*.f64 (+.f64 y y) (pow.f64 x 2))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (*.f64 y 2) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x x) 3) (pow.f64 (*.f64 y 2) 3)) (-.f64 (pow.f64 (*.f64 x x) 2) (*.f64 (*.f64 y 2) (fma.f64 x x (*.f64 y -2))))) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 (-.f64 (+.f64 y y) (pow.f64 x 2)) 0) (/.f64 (-.f64 (pow.f64 (+.f64 y y) 2) (pow.f64 (pow.f64 x 2) 2)) (-.f64 (+.f64 y y) (pow.f64 x 2))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (-.f64 (*.f64 y 2) (*.f64 x x)) 0) (/.f64 (-.f64 (pow.f64 (*.f64 x x) 2) (*.f64 4 (*.f64 y y))) (fma.f64 x x (*.f64 y -2))) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 (+.f64 y y) 0) (*.f64 (+.f64 y y) (+.f64 1 (/.f64 (pow.f64 x 2) (+.f64 y y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (*.f64 y 2) 0) (*.f64 (*.f64 y 2) (fma.f64 (*.f64 x x) (/.f64 1/2 y) 1)) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 (neg.f64 y) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (neg.f64 y) 0) (/.f64 (+.f64 (pow.f64 y 3) (pow.f64 (fma.f64 x x y) 3)) (fma.f64 y y (*.f64 (*.f64 x x) (fma.f64 x x y)))) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 (+.f64 (pow.f64 (+.f64 y y) 2) (-.f64 (pow.f64 (pow.f64 x 2) 2) (*.f64 (+.f64 y y) (pow.f64 x 2)))) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (pow.f64 (+.f64 y y) 2) (-.f64 (pow.f64 (pow.f64 x 2) 2) (*.f64 (+.f64 y y) (pow.f64 x 2))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (-.f64 (pow.f64 (*.f64 x x) 2) (*.f64 (*.f64 y 2) (fma.f64 x x (*.f64 y -2)))) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x x) 3) (pow.f64 (*.f64 y 2) 3)) (-.f64 (pow.f64 (*.f64 x x) 2) (*.f64 (*.f64 y 2) (fma.f64 x x (*.f64 y -2))))) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 (pow.f64 x 2) 0) (/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 2) (pow.f64 (+.f64 y y) 3)) (+.f64 (pow.f64 (+.f64 y y) 2) (-.f64 (pow.f64 (pow.f64 x 2) 2) (*.f64 (+.f64 y y) (pow.f64 x 2))))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (*.f64 x x) 0) (/.f64 (+.f64 (pow.f64 (*.f64 x x) 3) (pow.f64 (*.f64 y 2) 3)) (-.f64 (pow.f64 (*.f64 x x) 2) (*.f64 (*.f64 y 2) (fma.f64 x x (*.f64 y -2))))) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 (fma.f64 x x y) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 x x y) 0) (/.f64 (+.f64 (pow.f64 y 3) (pow.f64 (fma.f64 x x y) 3)) (fma.f64 y y (*.f64 (*.f64 x x) (fma.f64 x x y)))) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 -1 0) (+.f64 (fma.f64 x x y) y) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 -1 0) (+.f64 y (fma.f64 x x y)) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 1 0) (+.f64 (fma.f64 x x y) y) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 1 0) (+.f64 y (fma.f64 x x y)) (+.f64 y (fma.f64 x x y)))
(if (!=.f64 (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y))) 0) (/.f64 (-.f64 (pow.f64 (fma.f64 x x y) 3) (neg.f64 (pow.f64 y 3))) (fma.f64 y y (*.f64 (pow.f64 x 2) (fma.f64 x x y)))) (+.f64 (fma.f64 x x y) y))
(if (!=.f64 (fma.f64 y y (*.f64 (*.f64 x x) (fma.f64 x x y))) 0) (/.f64 (+.f64 (pow.f64 y 3) (pow.f64 (fma.f64 x x y) 3)) (fma.f64 y y (*.f64 (*.f64 x x) (fma.f64 x x y)))) (+.f64 y (fma.f64 x x y)))
(+.f64 (pow.f64 x 2) (+.f64 y y))
(+.f64 y (fma.f64 x x y))
(+.f64 (+.f64 y y) (pow.f64 x 2))
(+.f64 y (fma.f64 x x y))
(+.f64 y (-.f64 (pow.f64 x 2) (neg.f64 y)))
(+.f64 y (fma.f64 x x y))
(+.f64 (pow.f64 x 2) (-.f64 y (neg.f64 y)))
(+.f64 y (fma.f64 x x y))
(+.f64 (-.f64 (fma.f64 x x y) 0) y)
(+.f64 y (fma.f64 x x y))
(+.f64 (fma.f64 x x y) y)
(+.f64 y (fma.f64 x x y))
(+.f64 y (fma.f64 x x y))

eval120.0ms (0.6%)

Compiler

Compiled 4712 to 2062 computations (56.2% saved)

prune60.0ms (0.3%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New2354239
Fresh000
Picked101
Done011
Total2365241
Error
0b
Counts
241 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(fma.f64 x x (+.f64 y y))
43.2b
(pow.f64 (/.f64 1 x) -2)
0.0b
(+.f64 (+.f64 (*.f64 x x) y) y)
20.1b
(+.f64 y y)
43.1b
(*.f64 x x)
Compiler

Compiled 34 to 21 computations (38.2% saved)

localize3.0ms (0%)

Compiler

Compiled 6 to 3 computations (50% saved)

localize3.0ms (0%)

Compiler

Compiled 6 to 3 computations (50% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.4b
(pow.f64 (/.f64 1 x) -2)
Compiler

Compiled 13 to 10 computations (23.1% saved)

series4.0ms (0%)

Counts
1 → 8
Calls

3 calls:

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

Compiled 175 to 135 computations (22.9% saved)

rewrite2.1s (10.6%)

Algorithm
batch-egg-rewrite
Rules
48×egg-rr
Counts
1 → 48
Calls
Call 1
Inputs
(pow.f64 (/.f64 1 x) -2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 2) (cbrt.f64 (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)) 2) (pow.f64 (pow.f64 x -1) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) (cbrt.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)) (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 x -1) -2) (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)))) (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2) (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)))) (pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)) (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (pow.f64 x -1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 x -1) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (pow.f64 (pow.f64 x -1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2) (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)))) (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 2) (cbrt.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (pow.f64 x -1) -2) 3) 3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (pow.f64 (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (pow.f64 x -1) -2) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (pow.f64 (pow.f64 x -1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (pow.f64 x -1) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x -1) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 x -1) -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (pow.f64 (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)) (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 1 (neg.f64 (pow.f64 (pow.f64 x -1) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2))) (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (pow.f64 (pow.f64 x -1) -2) 0) (pow.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) -1) -1) (pow.f64 (pow.f64 x -1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) 0) (/.f64 1 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) -3)) (pow.f64 (pow.f64 x -1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (pow.f64 x -1) 0) (/.f64 1 (pow.f64 (pow.f64 x -1) 2)) (pow.f64 (pow.f64 x -1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 3) 0) (/.f64 1 (pow.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 3) -1/3)) (pow.f64 (pow.f64 x -1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 -1 0) (pow.f64 (pow.f64 x -1) -2) (pow.f64 (pow.f64 x -1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 2 0) (pow.f64 (pow.f64 x -1) -2) (pow.f64 (pow.f64 x -1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 1 0) (pow.f64 (pow.f64 x -1) -2) (pow.f64 (pow.f64 x -1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x if (!=.f64 3 0) (pow.f64 (pow.f64 x -1) -2) (pow.f64 (pow.f64 x -1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (pow.f64 x -1) -2) (*.f64 0 (pow.f64 (pow.f64 x -1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (pow.f64 (pow.f64 x -1) -2)) (*.f64 1/2 (pow.f64 (pow.f64 x -1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (pow.f64 (pow.f64 x -1) -2)) (pow.f64 (pow.f64 x -1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 0 (neg.f64 (pow.f64 (pow.f64 x -1) -2))) (pow.f64 (pow.f64 x -1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (pow.f64 x -1) -2) (*.f64 (pow.f64 (pow.f64 x -1) -2) 0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 (pow.f64 x -1) -2) 1/2) (*.f64 (pow.f64 (pow.f64 x -1) -2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 (pow.f64 x -1) -2) 0) (pow.f64 (pow.f64 x -1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)) 0) (pow.f64 (pow.f64 x -1) -2))))))

simplify2.9s (14.3%)

Algorithm
egglog
Counts
56 → 64
Calls
Call 1
Inputs
(pow.f64 x 2)
(pow.f64 x 2)
(pow.f64 x 2)
(pow.f64 x 2)
(pow.f64 (/.f64 -1 x) -2)
(pow.f64 (/.f64 -1 x) -2)
(pow.f64 (/.f64 -1 x) -2)
(pow.f64 (/.f64 -1 x) -2)
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 2) (cbrt.f64 (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)) 2) (pow.f64 (pow.f64 x -1) -2))))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) (cbrt.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)) (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2))))
(*.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 x -1) -2) (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)))) (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 2) 2))
(*.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2) (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)))) (pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 2))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)) (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)))
(*.f64 1 (pow.f64 (pow.f64 x -1) -2))
(*.f64 (pow.f64 (pow.f64 x -1) -2) 1)
(*.f64 -1 (neg.f64 (pow.f64 (pow.f64 x -1) -2)))
(*.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)) -1)
(*.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2) (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)))) (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 2) (cbrt.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2))))
(*.f64 (/.f64 (pow.f64 (pow.f64 x -1) -2) 3) 3)
(*.f64 -1 (pow.f64 (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 3))
(*.f64 (/.f64 (pow.f64 (pow.f64 x -1) -2) 2) 2)
(-.f64 0 (neg.f64 (pow.f64 (pow.f64 x -1) -2)))
(/.f64 (pow.f64 (pow.f64 x -1) -2) 1)
(/.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)) -1)
(pow.f64 (pow.f64 x -1) -2)
(pow.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) 3)
(pow.f64 (pow.f64 (pow.f64 x -1) -2) 1)
(pow.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 3) 1/3)
(cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 3))
(neg.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)))
(neg.f64 (/.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)) 1))
(neg.f64 (pow.f64 (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 3))
(neg.f64 (*.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)) 1))
(neg.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)))))
(neg.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)) (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)))))
(neg.f64 (*.f64 1 (neg.f64 (pow.f64 (pow.f64 x -1) -2))))
(neg.f64 (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2))) (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))))
(neg.f64 (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2))))
(if (!=.f64 (pow.f64 (pow.f64 x -1) -2) 0) (pow.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) -1) -1) (pow.f64 (pow.f64 x -1) -2))
(if (!=.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) 0) (/.f64 1 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) -3)) (pow.f64 (pow.f64 x -1) -2))
(if (!=.f64 (pow.f64 x -1) 0) (/.f64 1 (pow.f64 (pow.f64 x -1) 2)) (pow.f64 (pow.f64 x -1) -2))
(if (!=.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 3) 0) (/.f64 1 (pow.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 3) -1/3)) (pow.f64 (pow.f64 x -1) -2))
(if (!=.f64 -1 0) (pow.f64 (pow.f64 x -1) -2) (pow.f64 (pow.f64 x -1) -2))
(if (!=.f64 2 0) (pow.f64 (pow.f64 x -1) -2) (pow.f64 (pow.f64 x -1) -2))
(if (!=.f64 1 0) (pow.f64 (pow.f64 x -1) -2) (pow.f64 (pow.f64 x -1) -2))
(if (!=.f64 3 0) (pow.f64 (pow.f64 x -1) -2) (pow.f64 (pow.f64 x -1) -2))
(+.f64 (pow.f64 (pow.f64 x -1) -2) (*.f64 0 (pow.f64 (pow.f64 x -1) -2)))
(+.f64 (*.f64 1/2 (pow.f64 (pow.f64 x -1) -2)) (*.f64 1/2 (pow.f64 (pow.f64 x -1) -2)))
(+.f64 (*.f64 0 (pow.f64 (pow.f64 x -1) -2)) (pow.f64 (pow.f64 x -1) -2))
(+.f64 (*.f64 0 (neg.f64 (pow.f64 (pow.f64 x -1) -2))) (pow.f64 (pow.f64 x -1) -2))
(+.f64 (pow.f64 (pow.f64 x -1) -2) (*.f64 (pow.f64 (pow.f64 x -1) -2) 0))
(+.f64 (*.f64 (pow.f64 (pow.f64 x -1) -2) 1/2) (*.f64 (pow.f64 (pow.f64 x -1) -2) 1/2))
(+.f64 (*.f64 (pow.f64 (pow.f64 x -1) -2) 0) (pow.f64 (pow.f64 x -1) -2))
(+.f64 (*.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)) 0) (pow.f64 (pow.f64 x -1) -2))
Outputs
(pow.f64 x 2)
(*.f64 x x)
(pow.f64 x 2)
(*.f64 x x)
(pow.f64 x 2)
(*.f64 x x)
(pow.f64 x 2)
(*.f64 x x)
(pow.f64 (/.f64 -1 x) -2)
(pow.f64 (/.f64 -1 x) -2)
(pow.f64 (/.f64 -1 x) -2)
(pow.f64 (/.f64 -1 x) -2)
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)))
(pow.f64 (/.f64 1 x) -2)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 2) (cbrt.f64 (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)) 2) (pow.f64 (pow.f64 x -1) -2))))
(cbrt.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (/.f64 1 x) -2) 2)) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (/.f64 1 x) -2) 2)) 2) (pow.f64 (/.f64 1 x) -2))))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) (cbrt.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)) (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2))))
(cbrt.f64 (*.f64 (cbrt.f64 (pow.f64 (/.f64 1 x) -2)) (*.f64 (pow.f64 (pow.f64 (/.f64 1 x) -2) 2) (cbrt.f64 (pow.f64 (pow.f64 (/.f64 1 x) -2) 2)))))
(*.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 x -1) -2) (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)))) (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 2) 2))
(cbrt.f64 (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (/.f64 1 x) -2) 2)) 2) (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (/.f64 1 x) -2) 2)) (pow.f64 (/.f64 1 x) -2))))
(*.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2) (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)))) (pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 2))
(cbrt.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (/.f64 1 x) -2) 2)) (*.f64 (pow.f64 (pow.f64 (/.f64 1 x) -2) 2) (cbrt.f64 (pow.f64 (/.f64 1 x) -2)))))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)) (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)))
(pow.f64 (/.f64 1 x) -2)
(*.f64 1 (pow.f64 (pow.f64 x -1) -2))
(pow.f64 (/.f64 1 x) -2)
(*.f64 (pow.f64 (pow.f64 x -1) -2) 1)
(pow.f64 (/.f64 1 x) -2)
(*.f64 -1 (neg.f64 (pow.f64 (pow.f64 x -1) -2)))
(pow.f64 (/.f64 1 x) -2)
(*.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)) -1)
(pow.f64 (/.f64 1 x) -2)
(*.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2) (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)))) (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))))
(cbrt.f64 (*.f64 (cbrt.f64 (pow.f64 (/.f64 1 x) -2)) (*.f64 (pow.f64 (pow.f64 (/.f64 1 x) -2) 2) (cbrt.f64 (pow.f64 (pow.f64 (/.f64 1 x) -2) 2)))))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 2) (cbrt.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2))))
(cbrt.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (/.f64 1 x) -2) 2)) (*.f64 (pow.f64 (pow.f64 (/.f64 1 x) -2) 2) (cbrt.f64 (pow.f64 (/.f64 1 x) -2)))))
(*.f64 (/.f64 (pow.f64 (pow.f64 x -1) -2) 3) 3)
(pow.f64 (/.f64 1 x) -2)
(*.f64 -1 (pow.f64 (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 3))
(pow.f64 (/.f64 1 x) -2)
(*.f64 (/.f64 (pow.f64 (pow.f64 x -1) -2) 2) 2)
(pow.f64 (/.f64 1 x) -2)
(-.f64 0 (neg.f64 (pow.f64 (pow.f64 x -1) -2)))
(pow.f64 (/.f64 1 x) -2)
(/.f64 (pow.f64 (pow.f64 x -1) -2) 1)
(pow.f64 (/.f64 1 x) -2)
(/.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)) -1)
(pow.f64 (/.f64 1 x) -2)
(pow.f64 (pow.f64 x -1) -2)
(pow.f64 (/.f64 1 x) -2)
(pow.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) 3)
(pow.f64 (/.f64 1 x) -2)
(pow.f64 (pow.f64 (pow.f64 x -1) -2) 1)
(pow.f64 (/.f64 1 x) -2)
(pow.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 3) 1/3)
(pow.f64 (/.f64 1 x) -2)
(cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 3))
(pow.f64 (/.f64 1 x) -2)
(neg.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)))
(pow.f64 (/.f64 1 x) -2)
(neg.f64 (/.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)) 1))
(pow.f64 (/.f64 1 x) -2)
(neg.f64 (pow.f64 (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) 3))
(pow.f64 (/.f64 1 x) -2)
(neg.f64 (*.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)) 1))
(pow.f64 (/.f64 1 x) -2)
(neg.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)))))
(pow.f64 (/.f64 1 x) -2)
(neg.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2)) (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)))))
(pow.f64 (/.f64 1 x) -2)
(neg.f64 (*.f64 1 (neg.f64 (pow.f64 (pow.f64 x -1) -2))))
(pow.f64 (/.f64 1 x) -2)
(neg.f64 (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2))) (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))))
(pow.f64 (/.f64 1 x) -2)
(neg.f64 (*.f64 (neg.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2))) (cbrt.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 2))))
(pow.f64 (/.f64 1 x) -2)
(if (!=.f64 (pow.f64 (pow.f64 x -1) -2) 0) (pow.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) -1) -1) (pow.f64 (pow.f64 x -1) -2))
(if (!=.f64 (pow.f64 (/.f64 1 x) -2) 0) (pow.f64 (/.f64 1 (pow.f64 (/.f64 1 x) -2)) -1) (pow.f64 (/.f64 1 x) -2))
(if (!=.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) 0) (/.f64 1 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 x -1) -2)) -3)) (pow.f64 (pow.f64 x -1) -2))
(if (!=.f64 (cbrt.f64 (pow.f64 (/.f64 1 x) -2)) 0) (pow.f64 (pow.f64 (cbrt.f64 (pow.f64 (/.f64 1 x) -2)) -3) -1) (pow.f64 (/.f64 1 x) -2))
(if (!=.f64 (pow.f64 x -1) 0) (/.f64 1 (pow.f64 (pow.f64 x -1) 2)) (pow.f64 (pow.f64 x -1) -2))
(if (!=.f64 (/.f64 1 x) 0) (pow.f64 (/.f64 1 (*.f64 x x)) -1) (pow.f64 (/.f64 1 x) -2))
(if (!=.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 3) 0) (/.f64 1 (pow.f64 (pow.f64 (pow.f64 (pow.f64 x -1) -2) 3) -1/3)) (pow.f64 (pow.f64 x -1) -2))
(if (!=.f64 (pow.f64 (pow.f64 (/.f64 1 x) -2) 3) 0) (/.f64 1 (pow.f64 (pow.f64 (pow.f64 (/.f64 1 x) -2) 3) -1/3)) (pow.f64 (/.f64 1 x) -2))
(if (!=.f64 -1 0) (pow.f64 (pow.f64 x -1) -2) (pow.f64 (pow.f64 x -1) -2))
(if (!=.f64 -1 0) (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -2))
(if (!=.f64 2 0) (pow.f64 (pow.f64 x -1) -2) (pow.f64 (pow.f64 x -1) -2))
(if (!=.f64 2 0) (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -2))
(if (!=.f64 1 0) (pow.f64 (pow.f64 x -1) -2) (pow.f64 (pow.f64 x -1) -2))
(if (!=.f64 1 0) (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -2))
(if (!=.f64 3 0) (pow.f64 (pow.f64 x -1) -2) (pow.f64 (pow.f64 x -1) -2))
(if (!=.f64 3 0) (pow.f64 (/.f64 1 x) -2) (pow.f64 (/.f64 1 x) -2))
(+.f64 (pow.f64 (pow.f64 x -1) -2) (*.f64 0 (pow.f64 (pow.f64 x -1) -2)))
(pow.f64 (/.f64 1 x) -2)
(+.f64 (*.f64 1/2 (pow.f64 (pow.f64 x -1) -2)) (*.f64 1/2 (pow.f64 (pow.f64 x -1) -2)))
(pow.f64 (/.f64 1 x) -2)
(+.f64 (*.f64 0 (pow.f64 (pow.f64 x -1) -2)) (pow.f64 (pow.f64 x -1) -2))
(pow.f64 (/.f64 1 x) -2)
(+.f64 (*.f64 0 (neg.f64 (pow.f64 (pow.f64 x -1) -2))) (pow.f64 (pow.f64 x -1) -2))
(pow.f64 (/.f64 1 x) -2)
(+.f64 (pow.f64 (pow.f64 x -1) -2) (*.f64 (pow.f64 (pow.f64 x -1) -2) 0))
(pow.f64 (/.f64 1 x) -2)
(+.f64 (*.f64 (pow.f64 (pow.f64 x -1) -2) 1/2) (*.f64 (pow.f64 (pow.f64 x -1) -2) 1/2))
(pow.f64 (/.f64 1 x) -2)
(+.f64 (*.f64 (pow.f64 (pow.f64 x -1) -2) 0) (pow.f64 (pow.f64 x -1) -2))
(pow.f64 (/.f64 1 x) -2)
(+.f64 (*.f64 (neg.f64 (pow.f64 (pow.f64 x -1) -2)) 0) (pow.f64 (pow.f64 x -1) -2))
(pow.f64 (/.f64 1 x) -2)

localize10.0ms (0%)

Compiler

Compiled 13 to 4 computations (69.2% saved)

eval37.0ms (0.2%)

Compiler

Compiled 935 to 810 computations (13.4% saved)

prune10.0ms (0.1%)

Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New64064
Fresh000
Picked011
Done044
Total64569
Error
0b
Counts
69 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(fma.f64 x x (+.f64 y y))
43.2b
(pow.f64 (/.f64 1 x) -2)
0.0b
(+.f64 (+.f64 (*.f64 x x) y) y)
20.1b
(+.f64 y y)
43.1b
(*.f64 x x)
Compiler

Compiled 34 to 21 computations (38.2% saved)

regimes38.0ms (0.2%)

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

4 calls:

17.0ms
y
9.0ms
x
5.0ms
(*.f64 x x)
5.0ms
(+.f64 (+.f64 (*.f64 x x) y) y)
Results
ErrorSegmentsBranch
0b1x
0b1y
0b1(+.f64 (+.f64 (*.f64 x x) y) y)
0b1(*.f64 x x)
Compiler

Compiled 52 to 25 computations (51.9% saved)

regimes23.0ms (0.1%)

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

4 calls:

9.0ms
(+.f64 (+.f64 (*.f64 x x) y) y)
4.0ms
y
4.0ms
x
4.0ms
(*.f64 x x)
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(+.f64 (+.f64 (*.f64 x x) y) y)
0.0b1(*.f64 x x)
Compiler

Compiled 46 to 24 computations (47.8% saved)

regimes16.0ms (0.1%)

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

4 calls:

5.0ms
x
4.0ms
y
4.0ms
(+.f64 (+.f64 (*.f64 x x) y) y)
3.0ms
(*.f64 x x)
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(+.f64 (+.f64 (*.f64 x x) y) y)
0.0b1(*.f64 x x)
Compiler

Compiled 40 to 22 computations (45% saved)

regimes29.0ms (0.1%)

Accuracy

Total -52.6b remaining (-576.1%)

Threshold costs -52.6b (-576.1%)

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

3 calls:

11.0ms
x
10.0ms
y
8.0ms
(*.f64 x x)
Results
ErrorSegmentsBranch
9.1b3x
16.3b3y
9.5b2(*.f64 x x)
Compiler

Compiled 19 to 11 computations (42.1% saved)

bsearch20.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
6.0ms
1.2777507888631453e-48
2.0892399614000443e-48
14.0ms
-266896.0845693673
-0.2693277350375477
Results
17.0ms208×body256valid
Compiler

Compiled 170 to 113 computations (33.5% saved)

simplify1.0ms (0%)

Stop Event
done
Compiler

Compiled 49 to 26 computations (46.9% saved)

soundness0.0ms (0%)

end28.0ms (0.1%)

Compiler

Compiled 41 to 15 computations (63.4% saved)

Profiling

Loading profile data...