Details

Time bar (total: 6.5s)

analyze130.0ms (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
28.6%25%62.4%0.1%12.5%0%0%6
32%25%53.1%0.1%21.9%0%0%7
41.7%31.2%43.7%0.1%25%0%0%8
54.3%39%32.8%0.1%28.1%0%0%9
62.9%42.9%25.4%0.1%31.6%0%0%10
72.5%47.2%18%0.1%34.7%0%0%11
78.4%49.4%13.6%0.1%37%0%0%12
Compiler

Compiled 16 to 10 computations (37.5% saved)

sample2.5s (38.6%)

Results
2.3s8256×body256valid
150.0ms975×body256infinite
Bogosity

preprocess22.0ms (0.3%)

Algorithm
egg-herbie
Rules
20×rational.json-simplify-2
16×rational.json-simplify-1
rational.json-simplify-47
rational.json-simplify-54
rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01574
12674
24462
35962
46962
56962
022
122
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
0
Call 2
Inputs
(+.f64 (+.f64 (*.f64 x x) (*.f64 (*.f64 x 2) y)) (*.f64 y y))
(+.f64 (+.f64 (*.f64 y y) (*.f64 (*.f64 y 2) x)) (*.f64 x x))
Outputs
(+.f64 (+.f64 (*.f64 x x) (*.f64 (*.f64 x 2) y)) (*.f64 y y))
(+.f64 (*.f64 x x) (+.f64 (*.f64 x (*.f64 2 y)) (*.f64 y y)))
(+.f64 (*.f64 x x) (*.f64 y (+.f64 y (*.f64 x 2))))
(+.f64 (*.f64 x x) (*.f64 y (+.f64 (*.f64 x 2) y)))
(+.f64 (+.f64 (*.f64 y y) (*.f64 (*.f64 y 2) x)) (*.f64 x x))
(+.f64 (+.f64 (*.f64 x x) (*.f64 (*.f64 x 2) y)) (*.f64 y y))
(+.f64 (*.f64 x x) (+.f64 (*.f64 x (*.f64 2 y)) (*.f64 y y)))
(+.f64 (*.f64 x x) (*.f64 y (+.f64 y (*.f64 x 2))))
(+.f64 (*.f64 x x) (*.f64 y (+.f64 (*.f64 x 2) y)))
Symmetry

(sort x y)

Compiler

Compiled 17 to 11 computations (35.3% saved)

simplify140.0ms (2.1%)

Algorithm
egg-herbie
Rules
20×rational.json-simplify-2
16×rational.json-simplify-1
rational.json-simplify-54
rational.json-simplify-55
rational.json-simplify-73
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01137
11837
23031
34731
45931
55931
Stop Event
saturated
Counts
1 → 3
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x x) (*.f64 (*.f64 x 2) y)) (*.f64 y y))
Outputs
(+.f64 (+.f64 (*.f64 x x) (*.f64 (*.f64 x 2) y)) (*.f64 y y))
(+.f64 (+.f64 (*.f64 x x) (*.f64 x (*.f64 2 y))) (*.f64 y y))
(+.f64 (*.f64 x (+.f64 x (*.f64 2 y))) (*.f64 y y))

eval1.0ms (0%)

Compiler

Compiled 39 to 19 computations (51.3% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New213
Fresh101
Picked000
Done000
Total314
Error
0.0b
Counts
4 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 x (+.f64 x (*.f64 2 y))) (*.f64 y y))
Compiler

Compiled 13 to 8 computations (38.5% saved)

localize12.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 34 to 18 computations (47.1% saved)

series4.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite302.0ms (4.6%)

Algorithm
batch-egg-rewrite
Rules
1170×rational.json-simplify-2
814×rational.json-simplify-49
632×rational.json-simplify-47
566×rational.json-simplify-54
562×rational.json-simplify-76
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01050
18750
228050
3103650
4420750
Stop Event
node limit
Counts
2 → 32
Calls
Call 1
Inputs
(*.f64 x (+.f64 x (*.f64 2 y)))
(+.f64 (*.f64 x (+.f64 x (*.f64 2 y))) (*.f64 y y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 y (+.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 y (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 y (+.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 x (+.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 x (+.f64 y (+.f64 x y))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 y (+.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 y (+.f64 x y))) (/.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 x (+.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 y (+.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 x (+.f64 y (+.f64 x y)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y y) (neg.f64 (*.f64 x (+.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 (*.f64 y (neg.f64 y)) (*.f64 x (+.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 x (+.f64 y (+.f64 x y))))) (-.f64 1 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 y y))) (-.f64 1 (*.f64 x (+.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (*.f64 y y) (-.f64 -1 (*.f64 x (+.f64 y (+.f64 x y))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (*.f64 x (+.f64 y (+.f64 x y))) (-.f64 -1 (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (/.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (/.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (/.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))) (/.f64 (/.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))) (*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))) (*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))) (/.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))) (*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (/.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 y (neg.f64 y)) (*.f64 x (+.f64 y (+.f64 x y)))))))))

simplify349.0ms (5.3%)

Algorithm
egg-herbie
Rules
1528×rational.json-simplify-50
1294×rational.json-simplify-54
1278×rational.json-simplify-43
974×rational.json-simplify-1
830×rational.json-simplify-44
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0772122
11802122
25132122
328982030
474262030
Stop Event
node limit
Counts
80 → 42
Calls
Call 1
Inputs
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 x (+.f64 y (+.f64 x y))) 0)
(+.f64 0 (*.f64 x (+.f64 y (+.f64 x y))))
(-.f64 (*.f64 x (+.f64 y (+.f64 x y))) 0)
(-.f64 0 (neg.f64 (*.f64 x (+.f64 y (+.f64 x y)))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 x (+.f64 y (+.f64 x y))))) 1)
(/.f64 (*.f64 x (+.f64 y (+.f64 x y))) 1)
(/.f64 (*.f64 x (+.f64 y (+.f64 x y))) (/.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 x (+.f64 y (+.f64 x y)))))
(pow.f64 (*.f64 x (+.f64 y (+.f64 x y))) 1)
(neg.f64 (neg.f64 (*.f64 x (+.f64 y (+.f64 x y)))))
(-.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y (neg.f64 y)))
(-.f64 (*.f64 y y) (neg.f64 (*.f64 x (+.f64 y (+.f64 x y)))))
(-.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) 0)
(-.f64 0 (-.f64 (*.f64 y (neg.f64 y)) (*.f64 x (+.f64 y (+.f64 x y)))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 x (+.f64 y (+.f64 x y))))) (-.f64 1 (*.f64 y y)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y y))) (-.f64 1 (*.f64 x (+.f64 y (+.f64 x y)))))
(-.f64 (-.f64 0 (-.f64 -1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))) 1)
(-.f64 (-.f64 (*.f64 y y) (-.f64 -1 (*.f64 x (+.f64 y (+.f64 x y))))) 1)
(-.f64 (-.f64 (*.f64 x (+.f64 y (+.f64 x y))) (-.f64 -1 (*.f64 y y))) 1)
(*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) 1)
(*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (/.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))
(*.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))
(*.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (/.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (/.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))
(*.f64 (/.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))
(*.f64 (*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))) (/.f64 (/.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))))
(*.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))) (*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))))
(*.f64 (*.f64 (*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))) (*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))) (/.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))) (*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))))
(/.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) 1)
(/.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (/.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))
(pow.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) 1)
(neg.f64 (-.f64 (*.f64 y (neg.f64 y)) (*.f64 x (+.f64 y (+.f64 x y)))))
Outputs
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 x 2) (pow.f64 y 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 x 2) (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 x 2) (pow.f64 y 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 x 2) (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 x 2) (pow.f64 y 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 x 2) (pow.f64 y 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 x 2) (pow.f64 y 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 x 2) (pow.f64 y 2)))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 x 2) (pow.f64 y 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 x 2) (pow.f64 y 2)))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 x 2) (pow.f64 y 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 x 2) (pow.f64 y 2)))
(+.f64 (*.f64 x (+.f64 y (+.f64 x y))) 0)
(*.f64 x (+.f64 y (+.f64 y x)))
(+.f64 0 (*.f64 x (+.f64 y (+.f64 x y))))
(*.f64 x (+.f64 y (+.f64 y x)))
(-.f64 (*.f64 x (+.f64 y (+.f64 x y))) 0)
(*.f64 x (+.f64 y (+.f64 y x)))
(-.f64 0 (neg.f64 (*.f64 x (+.f64 y (+.f64 x y)))))
(*.f64 x (+.f64 y (+.f64 y x)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 x (+.f64 y (+.f64 x y))))) 1)
(*.f64 x (+.f64 y (+.f64 y x)))
(/.f64 (*.f64 x (+.f64 y (+.f64 x y))) 1)
(*.f64 x (+.f64 y (+.f64 y x)))
(/.f64 (*.f64 x (+.f64 y (+.f64 x y))) (/.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 x (+.f64 y (+.f64 x y)))))
(*.f64 x (+.f64 y (+.f64 y x)))
(pow.f64 (*.f64 x (+.f64 y (+.f64 x y))) 1)
(*.f64 x (+.f64 y (+.f64 y x)))
(neg.f64 (neg.f64 (*.f64 x (+.f64 y (+.f64 x y)))))
(*.f64 x (+.f64 y (+.f64 y x)))
(-.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y (neg.f64 y)))
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(-.f64 (*.f64 y y) (neg.f64 (*.f64 x (+.f64 y (+.f64 x y)))))
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(-.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) 0)
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(-.f64 0 (-.f64 (*.f64 y (neg.f64 y)) (*.f64 x (+.f64 y (+.f64 x y)))))
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 x (+.f64 y (+.f64 x y))))) (-.f64 1 (*.f64 y y)))
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y y))) (-.f64 1 (*.f64 x (+.f64 y (+.f64 x y)))))
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(-.f64 (-.f64 0 (-.f64 -1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))) 1)
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(-.f64 (-.f64 (*.f64 y y) (-.f64 -1 (*.f64 x (+.f64 y (+.f64 x y))))) 1)
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(-.f64 (-.f64 (*.f64 x (+.f64 y (+.f64 x y))) (-.f64 -1 (*.f64 y y))) 1)
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) 1)
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (/.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(*.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(*.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (/.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (/.f64 (/.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(*.f64 (/.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(*.f64 (*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))) (/.f64 (/.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))))
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(*.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))) (*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))))
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(*.f64 (*.f64 (*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))) (*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))) (/.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)))) (*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))) (*.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))))
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(/.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) 1)
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(/.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (/.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y))))
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(pow.f64 (+.f64 (*.f64 x (+.f64 y (+.f64 x y))) (*.f64 y y)) 1)
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))
(neg.f64 (-.f64 (*.f64 y (neg.f64 y)) (*.f64 x (+.f64 y (+.f64 x y)))))
(-.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y (neg.f64 y)))
(+.f64 (*.f64 x (+.f64 y (+.f64 y x))) (*.f64 y y))

eval7.0ms (0.1%)

Compiler

Compiled 1025 to 155 computations (84.9% saved)

prune66.0ms (1%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New40242
Fresh000
Picked011
Done000
Total40343
Error
0b
Counts
43 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 x (+.f64 x (*.f64 2 y))) (*.f64 y y))
0.0b
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
24.9b
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 y y))
Compiler

Compiled 39 to 26 computations (33.3% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 25 to 10 computations (60% saved)

series3.0ms (0.1%)

Counts
2 → 24
Calls

12 calls:

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

rewrite225.0ms (3.5%)

Algorithm
batch-egg-rewrite
Rules
854×rational.json-simplify-54
758×rational.json-simplify-47
752×rational.json-simplify-80
750×rational.json-simplify-79
624×rational.json-simplify-50
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0938
18032
227332
3101932
4418132
Stop Event
node limit
Counts
2 → 41
Calls
Call 1
Inputs
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 y y))
(*.f64 2 (*.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y x) (-.f64 0 (*.f64 y (+.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2 (*.f64 y x)) (*.f64 y (neg.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y y) (*.f64 (*.f64 y x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 y (+.f64 y (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 y y))) (-.f64 1 (*.f64 2 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (*.f64 y y) (-.f64 -1 (*.f64 2 (*.f64 y x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (*.f64 2 (*.f64 y x)) (-.f64 -1 (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 2 (*.f64 y x)))) (-.f64 1 (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 y (+.f64 y (+.f64 x x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y y) (*.f64 (+.f64 y (+.f64 x x)) (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y y) (+.f64 1 (*.f64 (+.f64 x x) (/.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y y) (+.f64 (/.f64 y y) (*.f64 (+.f64 x x) (/.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y (+.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 y (+.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (+.f64 x x)) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (/.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 y (+.f64 y (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (/.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (/.f64 (*.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) 1) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))) (/.f64 (/.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 y (+.f64 y (+.f64 x x)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 2 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y x) (neg.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (*.f64 y x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 2 (*.f64 y x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y x)) (/.f64 (*.f64 y x) (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (*.f64 y x) -2))))))

simplify194.0ms (3%)

Algorithm
egg-herbie
Rules
1762×rational.json-simplify-47
880×rational.json-simplify-2
850×rational.json-simplify-49
800×rational.json-simplify-54
662×rational.json-simplify-42
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0941405
12161351
26471327
319971321
470681321
Stop Event
node limit
Counts
65 → 60
Calls
Call 1
Inputs
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(-.f64 (*.f64 y x) (-.f64 0 (*.f64 y (+.f64 y x))))
(-.f64 (*.f64 2 (*.f64 y x)) (*.f64 y (neg.f64 y)))
(-.f64 (*.f64 y y) (*.f64 (*.f64 y x) -2))
(-.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)
(-.f64 0 (neg.f64 (*.f64 y (+.f64 y (+.f64 x x)))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y y))) (-.f64 1 (*.f64 2 (*.f64 y x))))
(-.f64 (-.f64 (*.f64 y y) (-.f64 -1 (*.f64 2 (*.f64 y x)))) 1)
(-.f64 (-.f64 (*.f64 2 (*.f64 y x)) (-.f64 -1 (*.f64 y y))) 1)
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 2 (*.f64 y x)))) (-.f64 1 (*.f64 y y)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y (+.f64 y (+.f64 x x))))) 1)
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 y y) (*.f64 (+.f64 y (+.f64 x x)) (/.f64 1 y)))
(*.f64 (*.f64 y y) (+.f64 1 (*.f64 (+.f64 x x) (/.f64 1 y))))
(*.f64 (*.f64 y y) (+.f64 (/.f64 y y) (*.f64 (+.f64 x x) (/.f64 1 y))))
(*.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 1 (*.f64 y (+.f64 y (+.f64 x x))))
(*.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 y (+.f64 y (+.f64 x x))))
(*.f64 (+.f64 y (+.f64 x x)) y)
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) 1))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (/.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (/.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (/.f64 (*.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) 1) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))
(*.f64 (*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))) (/.f64 (/.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))))
(/.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))
(pow.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(neg.f64 (neg.f64 (*.f64 y (+.f64 y (+.f64 x x)))))
(+.f64 (*.f64 y x) (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) 0)
(+.f64 0 (*.f64 2 (*.f64 y x)))
(-.f64 (*.f64 y x) (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 2 (*.f64 y x)) 0)
(-.f64 0 (*.f64 (*.f64 y x) -2))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 2 (*.f64 y x)))) 1)
(/.f64 (*.f64 2 (*.f64 y x)) 1)
(/.f64 (*.f64 2 (*.f64 y x)) (/.f64 (*.f64 y x) (*.f64 y x)))
(pow.f64 (*.f64 2 (*.f64 y x)) 1)
(neg.f64 (*.f64 (*.f64 y x) -2))
Outputs
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(-.f64 (*.f64 y x) (-.f64 0 (*.f64 y (+.f64 y x))))
(-.f64 (*.f64 y x) (neg.f64 (*.f64 y (+.f64 y x))))
(-.f64 (*.f64 y (+.f64 y x)) (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 2 (*.f64 y x)) (*.f64 y (neg.f64 y)))
(*.f64 y (-.f64 (*.f64 2 x) (neg.f64 y)))
(*.f64 y (-.f64 y (neg.f64 (*.f64 2 x))))
(-.f64 (*.f64 y y) (*.f64 (*.f64 y x) -2))
(-.f64 (*.f64 y y) (*.f64 y (*.f64 x -2)))
(*.f64 y (-.f64 y (*.f64 x -2)))
(-.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)
(*.f64 y (+.f64 y (+.f64 x x)))
(-.f64 0 (neg.f64 (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 y (+.f64 y (+.f64 x x)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y y))) (-.f64 1 (*.f64 2 (*.f64 y x))))
(-.f64 (*.f64 2 (*.f64 y x)) (-.f64 1 (-.f64 (*.f64 y y) -1)))
(+.f64 (*.f64 y y) (*.f64 2 (*.f64 y x)))
(*.f64 y (+.f64 (*.f64 2 x) y))
(*.f64 y (+.f64 y (*.f64 2 x)))
(-.f64 (-.f64 (*.f64 y y) (-.f64 -1 (*.f64 2 (*.f64 y x)))) 1)
(-.f64 (*.f64 2 (*.f64 y x)) (-.f64 1 (-.f64 (*.f64 y y) -1)))
(+.f64 (*.f64 y y) (*.f64 2 (*.f64 y x)))
(*.f64 y (+.f64 (*.f64 2 x) y))
(*.f64 y (+.f64 y (*.f64 2 x)))
(-.f64 (-.f64 (*.f64 2 (*.f64 y x)) (-.f64 -1 (*.f64 y y))) 1)
(-.f64 (*.f64 2 (*.f64 y x)) (-.f64 1 (-.f64 (*.f64 y y) -1)))
(+.f64 (*.f64 y y) (*.f64 2 (*.f64 y x)))
(*.f64 y (+.f64 (*.f64 2 x) y))
(*.f64 y (+.f64 y (*.f64 2 x)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 2 (*.f64 y x)))) (-.f64 1 (*.f64 y y)))
(-.f64 (*.f64 2 (*.f64 y x)) (-.f64 1 (-.f64 (*.f64 y y) -1)))
(+.f64 (*.f64 y y) (*.f64 2 (*.f64 y x)))
(*.f64 y (+.f64 (*.f64 2 x) y))
(*.f64 y (+.f64 y (*.f64 2 x)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y (+.f64 y (+.f64 x x))))) 1)
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 y y) (*.f64 (+.f64 y (+.f64 x x)) (/.f64 1 y)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 y y) (+.f64 1 (*.f64 (+.f64 x x) (/.f64 1 y))))
(*.f64 y (*.f64 y (+.f64 1 (*.f64 (+.f64 x x) (/.f64 1 y)))))
(*.f64 (*.f64 y y) (+.f64 (/.f64 y y) (*.f64 (+.f64 x x) (/.f64 1 y))))
(*.f64 (*.f64 y y) (+.f64 (*.f64 (+.f64 x x) (/.f64 1 y)) (/.f64 y y)))
(*.f64 y (*.f64 y (+.f64 (*.f64 (+.f64 x x) (/.f64 1 y)) (/.f64 y y))))
(*.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 1 (*.f64 y (+.f64 y (+.f64 x x))))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 y (+.f64 y (+.f64 x x))))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (+.f64 y (+.f64 x x)) y)
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) 1))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (/.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (/.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (/.f64 (*.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) 1) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))) (/.f64 (/.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))))
(*.f64 y (+.f64 y (+.f64 x x)))
(/.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(*.f64 y (+.f64 y (+.f64 x x)))
(/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 y (+.f64 y (+.f64 x x)))
(pow.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(*.f64 y (+.f64 y (+.f64 x x)))
(neg.f64 (neg.f64 (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 (*.f64 y x) (*.f64 y x))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) 0)
(*.f64 2 (*.f64 y x))
(+.f64 0 (*.f64 2 (*.f64 y x)))
(*.f64 2 (*.f64 y x))
(-.f64 (*.f64 y x) (neg.f64 (*.f64 y x)))
(-.f64 (*.f64 2 (*.f64 y x)) 0)
(*.f64 2 (*.f64 y x))
(-.f64 0 (*.f64 (*.f64 y x) -2))
(neg.f64 (*.f64 (*.f64 y x) -2))
(neg.f64 (*.f64 y (*.f64 x -2)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 2 (*.f64 y x)))) 1)
(*.f64 2 (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 y x)) 1)
(*.f64 2 (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 y x)) (/.f64 (*.f64 y x) (*.f64 y x)))
(*.f64 (*.f64 (*.f64 y x) (*.f64 y x)) (/.f64 2 (*.f64 y x)))
(*.f64 (*.f64 2 (*.f64 y x)) (/.f64 (*.f64 y x) (*.f64 y x)))
(pow.f64 (*.f64 2 (*.f64 y x)) 1)
(*.f64 2 (*.f64 y x))
(neg.f64 (*.f64 (*.f64 y x) -2))
(neg.f64 (*.f64 y (*.f64 x -2)))

localize16.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 39 to 23 computations (41% saved)

series2.0ms (0%)

Counts
2 → 18
Calls

12 calls:

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

rewrite129.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
1554×rational.json-simplify-49
902×rational.json-simplify-54
802×rational.json-simplify-47
604×rational.json-simplify-1
576×rational.json-simplify-50
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01156
19756
232656
3122256
4481556
Stop Event
node limit
Counts
2 → 59
Calls
Call 1
Inputs
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(+.f64 (pow.f64 y 2) (pow.f64 x 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y x) (-.f64 (neg.f64 (pow.f64 y 2)) (+.f64 (*.f64 y x) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2 (*.f64 y x)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 y 2) (-.f64 (*.f64 (*.f64 y x) -2) (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 x 2) (-.f64 (*.f64 (*.f64 y x) -2) (pow.f64 y 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (*.f64 (*.f64 y x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 (*.f64 (*.f64 y x) -2) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2)) (neg.f64 (pow.f64 y 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2)) (neg.f64 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 2 (*.f64 y x)))) (-.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (pow.f64 x 2))) (-.f64 (-.f64 1 (pow.f64 y 2)) (*.f64 2 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (pow.f64 y 2))) (-.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (-.f64 1 (*.f64 2 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2)) (-.f64 -1 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (*.f64 2 (*.f64 y x)) (-.f64 -1 (pow.f64 y 2))) (-.f64 1 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (*.f64 2 (*.f64 y x)) (-.f64 -1 (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (*.f64 2 (*.f64 y x)) (-.f64 -1 (pow.f64 x 2))) (-.f64 1 (pow.f64 y 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (-.f64 -1 (*.f64 2 (*.f64 y x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2)) (-.f64 -1 (pow.f64 y 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (/.f64 (/.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) (/.f64 (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) (/.f64 (*.f64 (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) 1) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) (*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))) (/.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) (*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 (*.f64 y x) -2) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 x 2) (neg.f64 (pow.f64 y 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (pow.f64 x 2))) (-.f64 1 (pow.f64 y 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (pow.f64 y 2))) (-.f64 1 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (pow.f64 y 2) (-.f64 -1 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 (pow.f64 x 2) (-.f64 -1 (pow.f64 y 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (/.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (/.f64 (*.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 1) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) (/.f64 (/.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))))))

simplify229.0ms (3.5%)

Algorithm
egg-herbie
Rules
1130×rational.json-simplify-2
1048×rational.json-simplify-54
994×rational.json-simplify-50
908×rational.json-simplify-1
670×rational.json-simplify-42
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01302207
13372111
29161995
338101995
Stop Event
node limit
Counts
77 → 82
Calls
Call 1
Inputs
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(pow.f64 x 2)
(pow.f64 y 2)
(pow.f64 y 2)
(pow.f64 y 2)
(pow.f64 x 2)
(pow.f64 x 2)
(-.f64 (*.f64 y x) (-.f64 (neg.f64 (pow.f64 y 2)) (+.f64 (*.f64 y x) (pow.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 y x)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(-.f64 (pow.f64 y 2) (-.f64 (*.f64 (*.f64 y x) -2) (pow.f64 x 2)))
(-.f64 (pow.f64 x 2) (-.f64 (*.f64 (*.f64 y x) -2) (pow.f64 y 2)))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (*.f64 (*.f64 y x) -2))
(-.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 0)
(-.f64 0 (-.f64 (*.f64 (*.f64 y x) -2) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(-.f64 (+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2)) (neg.f64 (pow.f64 y 2)))
(-.f64 (+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2)) (neg.f64 (pow.f64 x 2)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 2 (*.f64 y x)))) (-.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(-.f64 (-.f64 0 (-.f64 -1 (pow.f64 x 2))) (-.f64 (-.f64 1 (pow.f64 y 2)) (*.f64 2 (*.f64 y x))))
(-.f64 (-.f64 0 (-.f64 -1 (pow.f64 y 2))) (-.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))))
(-.f64 (-.f64 0 (-.f64 -1 (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (-.f64 1 (*.f64 2 (*.f64 y x))))
(-.f64 (-.f64 0 (-.f64 -1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) 1)
(-.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2)) (-.f64 -1 (pow.f64 x 2))) 1)
(-.f64 (-.f64 (*.f64 2 (*.f64 y x)) (-.f64 -1 (pow.f64 y 2))) (-.f64 1 (pow.f64 x 2)))
(-.f64 (-.f64 (*.f64 2 (*.f64 y x)) (-.f64 -1 (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) 1)
(-.f64 (-.f64 (*.f64 2 (*.f64 y x)) (-.f64 -1 (pow.f64 x 2))) (-.f64 1 (pow.f64 y 2)))
(-.f64 (-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (-.f64 -1 (*.f64 2 (*.f64 y x)))) 1)
(-.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2)) (-.f64 -1 (pow.f64 y 2))) 1)
(*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 1)
(*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(*.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(*.f64 (/.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) 1))
(*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (/.f64 (/.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(*.f64 (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(*.f64 (*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) (/.f64 (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(*.f64 (*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) (/.f64 (*.f64 (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) 1) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(*.f64 (*.f64 (*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) (*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))) (/.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) (*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))))
(/.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 1)
(/.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(pow.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 1)
(neg.f64 (-.f64 (*.f64 (*.f64 y x) -2) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 x 2) (neg.f64 (pow.f64 y 2)))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) 0)
(-.f64 0 (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(-.f64 (-.f64 0 (-.f64 -1 (pow.f64 x 2))) (-.f64 1 (pow.f64 y 2)))
(-.f64 (-.f64 0 (-.f64 -1 (pow.f64 y 2))) (-.f64 1 (pow.f64 x 2)))
(-.f64 (-.f64 0 (-.f64 -1 (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) 1)
(-.f64 (-.f64 (pow.f64 y 2) (-.f64 -1 (pow.f64 x 2))) 1)
(-.f64 (-.f64 (pow.f64 x 2) (-.f64 -1 (pow.f64 y 2))) 1)
(*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) 1)
(*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(*.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 1))
(*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(*.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(*.f64 (*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (/.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(*.f64 (*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (/.f64 (*.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 1) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(*.f64 (*.f64 (*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) (/.f64 (/.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) 1)
(/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(pow.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) 1)
(neg.f64 (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
Outputs
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 y (*.f64 x 2)))
(+.f64 (pow.f64 x 2) (*.f64 2 (*.f64 x y)))
(+.f64 (pow.f64 x 2) (*.f64 x (*.f64 2 y)))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 x 2)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 x 2)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 x 2)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 y (*.f64 x 2)))
(+.f64 (pow.f64 x 2) (*.f64 2 (*.f64 x y)))
(+.f64 (pow.f64 x 2) (*.f64 x (*.f64 2 y)))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 y (*.f64 x 2)))
(+.f64 (pow.f64 x 2) (*.f64 2 (*.f64 x y)))
(+.f64 (pow.f64 x 2) (*.f64 x (*.f64 2 y)))
(pow.f64 x 2)
(pow.f64 y 2)
(pow.f64 y 2)
(pow.f64 y 2)
(pow.f64 x 2)
(pow.f64 x 2)
(-.f64 (*.f64 y x) (-.f64 (neg.f64 (pow.f64 y 2)) (+.f64 (*.f64 y x) (pow.f64 x 2))))
(-.f64 (*.f64 x y) (-.f64 (neg.f64 (pow.f64 y 2)) (+.f64 (pow.f64 x 2) (*.f64 x y))))
(-.f64 (*.f64 x y) (-.f64 (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)) (*.f64 x y)))
(-.f64 (pow.f64 x 2) (-.f64 (neg.f64 (pow.f64 y 2)) (+.f64 (*.f64 x y) (*.f64 x y))))
(-.f64 (pow.f64 x 2) (-.f64 (-.f64 (neg.f64 (*.f64 x y)) (*.f64 x y)) (pow.f64 y 2)))
(-.f64 (*.f64 2 (*.f64 y x)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(-.f64 (pow.f64 y 2) (-.f64 (*.f64 (*.f64 y x) -2) (pow.f64 x 2)))
(-.f64 (pow.f64 x 2) (-.f64 (*.f64 (*.f64 x y) -2) (pow.f64 y 2)))
(-.f64 (pow.f64 x 2) (-.f64 (*.f64 y (*.f64 x -2)) (pow.f64 y 2)))
(-.f64 (pow.f64 y 2) (-.f64 (*.f64 x (*.f64 y -2)) (pow.f64 x 2)))
(-.f64 (pow.f64 y 2) (-.f64 (*.f64 y (*.f64 x -2)) (pow.f64 x 2)))
(-.f64 (pow.f64 x 2) (-.f64 (*.f64 (*.f64 y x) -2) (pow.f64 y 2)))
(-.f64 (pow.f64 x 2) (-.f64 (*.f64 (*.f64 x y) -2) (pow.f64 y 2)))
(-.f64 (pow.f64 x 2) (-.f64 (*.f64 y (*.f64 x -2)) (pow.f64 y 2)))
(-.f64 (pow.f64 y 2) (-.f64 (*.f64 x (*.f64 y -2)) (pow.f64 x 2)))
(-.f64 (pow.f64 y 2) (-.f64 (*.f64 y (*.f64 x -2)) (pow.f64 x 2)))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (*.f64 (*.f64 y x) -2))
(-.f64 (pow.f64 x 2) (-.f64 (*.f64 (*.f64 x y) -2) (pow.f64 y 2)))
(-.f64 (pow.f64 x 2) (-.f64 (*.f64 y (*.f64 x -2)) (pow.f64 y 2)))
(-.f64 (pow.f64 y 2) (-.f64 (*.f64 x (*.f64 y -2)) (pow.f64 x 2)))
(-.f64 (pow.f64 y 2) (-.f64 (*.f64 y (*.f64 x -2)) (pow.f64 x 2)))
(-.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 0)
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(-.f64 0 (-.f64 (*.f64 (*.f64 y x) -2) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(-.f64 (pow.f64 x 2) (-.f64 (*.f64 (*.f64 x y) -2) (pow.f64 y 2)))
(-.f64 (pow.f64 x 2) (-.f64 (*.f64 y (*.f64 x -2)) (pow.f64 y 2)))
(-.f64 (pow.f64 y 2) (-.f64 (*.f64 x (*.f64 y -2)) (pow.f64 x 2)))
(-.f64 (pow.f64 y 2) (-.f64 (*.f64 y (*.f64 x -2)) (pow.f64 x 2)))
(-.f64 (+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2)) (neg.f64 (pow.f64 y 2)))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(-.f64 (+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2)) (neg.f64 (pow.f64 x 2)))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 2 (*.f64 y x)))) (-.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(-.f64 (-.f64 0 (-.f64 -1 (pow.f64 x 2))) (-.f64 (-.f64 1 (pow.f64 y 2)) (*.f64 2 (*.f64 y x))))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(-.f64 (-.f64 0 (-.f64 -1 (pow.f64 y 2))) (-.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(-.f64 (-.f64 0 (-.f64 -1 (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (-.f64 1 (*.f64 2 (*.f64 y x))))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(-.f64 (-.f64 0 (-.f64 -1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) 1)
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(-.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2)) (-.f64 -1 (pow.f64 x 2))) 1)
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(-.f64 (-.f64 (*.f64 2 (*.f64 y x)) (-.f64 -1 (pow.f64 y 2))) (-.f64 1 (pow.f64 x 2)))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(-.f64 (-.f64 (*.f64 2 (*.f64 y x)) (-.f64 -1 (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) 1)
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(-.f64 (-.f64 (*.f64 2 (*.f64 y x)) (-.f64 -1 (pow.f64 x 2))) (-.f64 1 (pow.f64 y 2)))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(-.f64 (-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (-.f64 -1 (*.f64 2 (*.f64 y x)))) 1)
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(-.f64 (-.f64 (+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2)) (-.f64 -1 (pow.f64 y 2))) 1)
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 1)
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(*.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(*.f64 (/.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) 1))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (/.f64 (/.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(*.f64 (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(*.f64 (*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) (/.f64 (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(*.f64 (*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) (/.f64 (*.f64 (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) 1) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(*.f64 (*.f64 (*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) (*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))) (/.f64 (/.f64 (/.f64 1 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) (*.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(/.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 1)
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(/.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(pow.f64 (+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 1)
(-.f64 (pow.f64 y 2) (-.f64 (neg.f64 (pow.f64 x 2)) (*.f64 y (*.f64 x 2))))
(-.f64 (*.f64 2 (*.f64 x y)) (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2)))
(+.f64 (pow.f64 x 2) (+.f64 (*.f64 x (*.f64 2 y)) (pow.f64 y 2)))
(neg.f64 (-.f64 (*.f64 (*.f64 y x) -2) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(-.f64 (pow.f64 x 2) (-.f64 (*.f64 (*.f64 x y) -2) (pow.f64 y 2)))
(-.f64 (pow.f64 x 2) (-.f64 (*.f64 y (*.f64 x -2)) (pow.f64 y 2)))
(-.f64 (pow.f64 y 2) (-.f64 (*.f64 x (*.f64 y -2)) (pow.f64 x 2)))
(-.f64 (pow.f64 y 2) (-.f64 (*.f64 y (*.f64 x -2)) (pow.f64 x 2)))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(-.f64 (pow.f64 x 2) (neg.f64 (pow.f64 y 2)))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(-.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) 0)
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(-.f64 0 (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(-.f64 (-.f64 0 (-.f64 -1 (pow.f64 x 2))) (-.f64 1 (pow.f64 y 2)))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(-.f64 (-.f64 0 (-.f64 -1 (pow.f64 y 2))) (-.f64 1 (pow.f64 x 2)))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(-.f64 (-.f64 0 (-.f64 -1 (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) 1)
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(-.f64 (-.f64 (pow.f64 y 2) (-.f64 -1 (pow.f64 x 2))) 1)
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(-.f64 (-.f64 (pow.f64 x 2) (-.f64 -1 (pow.f64 y 2))) 1)
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) 1)
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(*.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(*.f64 (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 1))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (/.f64 (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(*.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(*.f64 (*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (/.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(*.f64 (*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (/.f64 (*.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))) 1) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(*.f64 (*.f64 (*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))) (/.f64 (/.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))) (*.f64 (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))) (*.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) 1)
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (/.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) (+.f64 (pow.f64 y 2) (pow.f64 x 2))))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(pow.f64 (+.f64 (pow.f64 y 2) (pow.f64 x 2)) 1)
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))
(neg.f64 (-.f64 (neg.f64 (pow.f64 x 2)) (pow.f64 y 2)))
(-.f64 (pow.f64 y 2) (neg.f64 (pow.f64 x 2)))
(+.f64 (pow.f64 x 2) (pow.f64 y 2))

eval232.0ms (3.6%)

Compiler

Compiled 3296 to 1796 computations (45.5% saved)

prune85.0ms (1.3%)

Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New1533156
Fresh000
Picked011
Done022
Total1536159
Error
0b
Counts
159 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
24.9b
(-.f64 (*.f64 y (+.f64 y x)) (neg.f64 (*.f64 y x)))
0.0b
(+.f64 (*.f64 x (+.f64 x (*.f64 2 y))) (*.f64 y y))
0.0b
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
24.9b
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 y y))
24.9b
(*.f64 (+.f64 y (+.f64 x x)) y)
53.6b
(*.f64 2 (*.f64 y x))
Compiler

Compiled 67 to 43 computations (35.8% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 6 computations (53.8% saved)

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 19 to 5 computations (73.7% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite289.0ms (4.4%)

Algorithm
batch-egg-rewrite
Rules
1594×rational.json-5
1592×exponential.json-3
1592×rational.json-1
1592×rational.json-2
1592×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
16219
221619
377219
4307119
Stop Event
node limit
Counts
1 → 9
Calls
Call 1
Inputs
(*.f64 (+.f64 y (+.f64 x x)) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 y (+.f64 y (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 y (+.f64 y (+.f64 x x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 y (+.f64 y (+.f64 x x)))))))))

simplify230.0ms (3.5%)

Algorithm
egg-herbie
Rules
1782×rational.json-simplify-47
826×rational.json-simplify-111
740×rational.json-simplify-2
680×rational.json-simplify-1
554×rational.json-simplify-79
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
029681
160681
2135681
3379681
41446681
53778681
66710681
Stop Event
node limit
Counts
33 → 13
Calls
Call 1
Inputs
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)
(+.f64 0 (*.f64 y (+.f64 y (+.f64 x x))))
(-.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)
(-.f64 0 (neg.f64 (*.f64 y (+.f64 y (+.f64 x x)))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y (+.f64 y (+.f64 x x))))) 1)
(/.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))
(pow.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(neg.f64 (neg.f64 (*.f64 y (+.f64 y (+.f64 x x)))))
Outputs
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 0 (*.f64 y (+.f64 y (+.f64 x x))))
(*.f64 y (+.f64 y (+.f64 x x)))
(-.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)
(*.f64 y (+.f64 y (+.f64 x x)))
(-.f64 0 (neg.f64 (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 y (+.f64 y (+.f64 x x)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y (+.f64 y (+.f64 x x))))) 1)
(*.f64 y (+.f64 y (+.f64 x x)))
(/.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(*.f64 y (+.f64 y (+.f64 x x)))
(/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 y (+.f64 y (+.f64 x x)))
(pow.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(*.f64 y (+.f64 y (+.f64 x x)))
(neg.f64 (neg.f64 (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 y (+.f64 y (+.f64 x x)))

localize17.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 29 to 7 computations (75.9% saved)

series7.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite225.0ms (3.5%)

Algorithm
batch-egg-rewrite
Rules
710×rational.json-simplify-47
706×rational.json-simplify-54
582×rational.json-simplify-49
574×rational.json-simplify-50
518×rational.json-simplify-58
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01042
18942
229842
3107432
4434832
Stop Event
node limit
Counts
2 → 48
Calls
Call 1
Inputs
(-.f64 (*.f64 y (+.f64 y x)) (neg.f64 (*.f64 y x)))
(*.f64 y (+.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 y x)) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (-.f64 1 (-.f64 1 (*.f64 y (+.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (-.f64 1 (+.f64 1 (neg.f64 (*.f64 y (+.f64 y x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (-.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 (*.f64 y (+.f64 y (+.f64 x x))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 y x) 1) (+.f64 -1 (*.f64 y (+.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 y (+.f64 y (+.f64 x x))) -1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 y x) 1) (-.f64 (*.f64 y (+.f64 y x)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 y x) 1) (+.f64 1 (*.f64 y (+.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 y x) 1) (+.f64 (-.f64 (*.f64 y (+.f64 y x)) -1) 0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 y (+.f64 y x)) -1) (-.f64 (*.f64 y x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (-.f64 (+.f64 y x) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y (+.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 y (+.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (/.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 y (+.f64 y (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (/.f64 -1 (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (+.f64 x x)) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))) (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))) (-.f64 -1 (-.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (/.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (/.f64 (*.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) 1) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))) (/.f64 (/.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 y (+.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 y (+.f64 y x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 y x)) (/.f64 (*.f64 y (+.f64 y x)) (*.f64 y (+.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 y (+.f64 y x))))))))

simplify387.0ms (5.9%)

Algorithm
egg-herbie
Rules
1750×rational.json-simplify-47
834×rational.json-simplify-2
828×rational.json-simplify-49
812×rational.json-simplify-54
660×rational.json-simplify-111
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01012096
12141868
26471866
318371866
465231866
Stop Event
node limit
Counts
96 → 64
Calls
Call 1
Inputs
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(*.f64 y x)
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(*.f64 y x)
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(*.f64 y x)
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (*.f64 y (+.f64 y x)) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(+.f64 (*.f64 y x) (-.f64 1 (-.f64 1 (*.f64 y (+.f64 y x)))))
(+.f64 (*.f64 y x) (-.f64 1 (+.f64 1 (neg.f64 (*.f64 y (+.f64 y x))))))
(+.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)
(+.f64 0 (*.f64 y (+.f64 y (+.f64 x x))))
(+.f64 1 (-.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1))
(+.f64 -1 (-.f64 (*.f64 y (+.f64 y (+.f64 x x))) -1))
(+.f64 (+.f64 (*.f64 y x) 1) (+.f64 -1 (*.f64 y (+.f64 y x))))
(+.f64 (-.f64 (*.f64 y (+.f64 y (+.f64 x x))) -1) -1)
(+.f64 (-.f64 (*.f64 y x) 1) (-.f64 (*.f64 y (+.f64 y x)) -1))
(+.f64 (-.f64 (*.f64 y x) 1) (+.f64 1 (*.f64 y (+.f64 y x))))
(+.f64 (-.f64 (*.f64 y x) 1) (+.f64 (-.f64 (*.f64 y (+.f64 y x)) -1) 0))
(+.f64 (-.f64 (*.f64 y (+.f64 y x)) -1) (-.f64 (*.f64 y x) 1))
(+.f64 (-.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1) 1)
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 y (-.f64 (+.f64 y x) (neg.f64 x)))
(*.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 1 (*.f64 y (+.f64 y (+.f64 x x))))
(*.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 y (+.f64 y (+.f64 x x))))
(*.f64 -1 (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x)))
(*.f64 (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x)) -1)
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) 1))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (/.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (/.f64 -1 (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x))))
(*.f64 (+.f64 y (+.f64 x x)) y)
(*.f64 (neg.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))) (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x)))
(*.f64 (neg.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))) (-.f64 -1 (-.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)))
(*.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (/.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (/.f64 (*.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) 1) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))
(*.f64 (*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))) (/.f64 (/.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))))
(/.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))
(/.f64 (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x)) -1)
(pow.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(neg.f64 (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x)))
(+.f64 (*.f64 y (+.f64 y x)) 0)
(+.f64 0 (*.f64 y (+.f64 y x)))
(-.f64 (*.f64 y (+.f64 y x)) 0)
(-.f64 0 (neg.f64 (*.f64 y (+.f64 y x))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y (+.f64 y x)))) 1)
(/.f64 (*.f64 y (+.f64 y x)) 1)
(/.f64 (*.f64 y (+.f64 y x)) (/.f64 (*.f64 y (+.f64 y x)) (*.f64 y (+.f64 y x))))
(pow.f64 (*.f64 y (+.f64 y x)) 1)
(neg.f64 (neg.f64 (*.f64 y (+.f64 y x))))
Outputs
(*.f64 2 (*.f64 y x))
(*.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(*.f64 2 (*.f64 y x))
(*.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(*.f64 2 (*.f64 y x))
(*.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 y (*.f64 2 x)) (pow.f64 y 2))
(*.f64 y x)
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(pow.f64 y 2)
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(pow.f64 y 2)
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(pow.f64 y 2)
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(+.f64 (*.f64 y x) (pow.f64 y 2))
(+.f64 (pow.f64 y 2) (*.f64 y x))
(+.f64 (*.f64 y (+.f64 y x)) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 (*.f64 y x) (-.f64 1 (-.f64 1 (*.f64 y (+.f64 y x)))))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 (*.f64 y x) (-.f64 1 (+.f64 1 (neg.f64 (*.f64 y (+.f64 y x))))))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 0 (*.f64 y (+.f64 y (+.f64 x x))))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 1 (-.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 -1 (-.f64 (*.f64 y (+.f64 y (+.f64 x x))) -1))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 (+.f64 (*.f64 y x) 1) (+.f64 -1 (*.f64 y (+.f64 y x))))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 (-.f64 (*.f64 y (+.f64 y (+.f64 x x))) -1) -1)
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 (-.f64 (*.f64 y x) 1) (-.f64 (*.f64 y (+.f64 y x)) -1))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 (-.f64 (*.f64 y x) 1) (+.f64 1 (*.f64 y (+.f64 y x))))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 (-.f64 (*.f64 y x) 1) (+.f64 (-.f64 (*.f64 y (+.f64 y x)) -1) 0))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 (-.f64 (*.f64 y (+.f64 y x)) -1) (-.f64 (*.f64 y x) 1))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 (-.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1) 1)
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (-.f64 (+.f64 y x) (neg.f64 x)))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 1 (*.f64 y (+.f64 y (+.f64 x x))))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 y (+.f64 y (+.f64 x x))))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 -1 (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x)))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x)) -1)
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) 1))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (/.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 y (+.f64 y (+.f64 x x)))))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (/.f64 -1 (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x))))
(*.f64 (*.f64 y (*.f64 (+.f64 y (+.f64 x x)) (*.f64 y (+.f64 y (+.f64 x x))))) (/.f64 -1 (*.f64 y (-.f64 (neg.f64 x) (+.f64 y x)))))
(*.f64 y (*.f64 (*.f64 y (*.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x)))) (/.f64 -1 (*.f64 y (-.f64 (neg.f64 x) (+.f64 y x))))))
(*.f64 y (*.f64 (/.f64 -1 (*.f64 y (-.f64 (neg.f64 x) (+.f64 y x)))) (*.f64 y (*.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))))))
(*.f64 (+.f64 y (+.f64 x x)) y)
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (neg.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))) (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x)))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (neg.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))) (-.f64 -1 (-.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)))
(*.f64 (neg.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))) (-.f64 1 (+.f64 1 (*.f64 y (+.f64 y (+.f64 x x))))))
(*.f64 (neg.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))) (-.f64 0 (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 (neg.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))) (neg.f64 (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))) (neg.f64 (neg.f64 (*.f64 y (+.f64 y (+.f64 x x))))))
(*.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (/.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (/.f64 (*.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) 1) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 (*.f64 (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))) (/.f64 (/.f64 (/.f64 1 (*.f64 y (+.f64 y (+.f64 x x)))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x))))))))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(/.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(/.f64 (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x)) -1)
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(pow.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(neg.f64 (*.f64 y (-.f64 (-.f64 (neg.f64 x) y) x)))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y (+.f64 x x)))
(+.f64 (*.f64 y (+.f64 y x)) 0)
(*.f64 y (+.f64 y x))
(+.f64 0 (*.f64 y (+.f64 y x)))
(*.f64 y (+.f64 y x))
(-.f64 (*.f64 y (+.f64 y x)) 0)
(*.f64 y (+.f64 y x))
(-.f64 0 (neg.f64 (*.f64 y (+.f64 y x))))
(*.f64 y (+.f64 y x))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y (+.f64 y x)))) 1)
(*.f64 y (+.f64 y x))
(/.f64 (*.f64 y (+.f64 y x)) 1)
(*.f64 y (+.f64 y x))
(/.f64 (*.f64 y (+.f64 y x)) (/.f64 (*.f64 y (+.f64 y x)) (*.f64 y (+.f64 y x))))
(*.f64 y (+.f64 y x))
(pow.f64 (*.f64 y (+.f64 y x)) 1)
(*.f64 y (+.f64 y x))
(neg.f64 (neg.f64 (*.f64 y (+.f64 y x))))
(*.f64 y (+.f64 y x))

eval17.0ms (0.3%)

Compiler

Compiled 1395 to 302 computations (78.4% saved)

prune20.0ms (0.3%)

Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New89291
Fresh000
Picked101
Done055
Total90797
Error
0b
Counts
97 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 x (+.f64 x (*.f64 2 y))) (*.f64 y y))
0.0b
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
24.9b
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 y y))
24.9b
(*.f64 (+.f64 y (+.f64 x x)) y)
24.9b
(*.f64 y (-.f64 (+.f64 y x) (neg.f64 x)))
53.6b
(*.f64 y (*.f64 2 x))
53.6b
(*.f64 2 (*.f64 y x))
Compiler

Compiled 72 to 47 computations (34.7% saved)

localize5.0ms (0.1%)

Compiler

Compiled 13 to 8 computations (38.5% saved)

localize10.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 23 to 6 computations (73.9% saved)

series1.0ms (0%)

Counts
2 → 48
Calls

12 calls:

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

rewrite93.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
1910×rational.json-1
1910×rational.json-2
1910×rational.json-3
1908×rational.json-5
1906×exponential.json-3
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0940
18040
227240
396732
4382232
Stop Event
node limit
Counts
2 → 27
Calls
Call 1
Inputs
(-.f64 (+.f64 y x) (neg.f64 x))
(*.f64 y (-.f64 (+.f64 y x) (neg.f64 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 y (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 x (+.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 y x) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 y (+.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (+.f64 y x) (-.f64 -1 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (neg.f64 x)) (-.f64 1 (-.f64 (neg.f64 y) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 -1 (-.f64 (*.f64 x -2) y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (+.f64 x x)) (/.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x -2) y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))) (/.f64 1 (+.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))) (*.f64 (/.f64 1 (+.f64 y (+.f64 x x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 y (+.f64 x x))) (*.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (+.f64 x x)) (*.f64 (+.f64 y (+.f64 x x)) (*.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))))) (/.f64 (/.f64 1 (+.f64 y (+.f64 x x))) (*.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y (+.f64 x x)) (/.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x -2) y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 y (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 x -2) y))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)))))

simplify244.0ms (3.7%)

Algorithm
egg-herbie
Rules
1400×rational.json-simplify-58
1048×rational.json-simplify-47
926×rational.json-simplify-1
856×rational.json-simplify-2
850×rational.json-simplify-49
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0641215
11211215
23451167
313471159
447591159
575921159
Stop Event
node limit
Counts
75 → 46
Calls
Call 1
Inputs
(*.f64 2 x)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
y
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
y
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
y
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(*.f64 2 x)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(*.f64 2 x)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(*.f64 2 (*.f64 y x))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 y (+.f64 x x))
(+.f64 x (+.f64 y x))
(+.f64 (+.f64 y x) x)
(+.f64 (+.f64 y (+.f64 x x)) 0)
(+.f64 0 (+.f64 y (+.f64 x x)))
(+.f64 (-.f64 (+.f64 y x) (-.f64 -1 x)) -1)
(+.f64 (-.f64 -1 (neg.f64 x)) (-.f64 1 (-.f64 (neg.f64 y) x)))
(+.f64 (-.f64 -1 (-.f64 (*.f64 x -2) y)) 1)
(*.f64 (+.f64 y (+.f64 x x)) 1)
(*.f64 (+.f64 y (+.f64 x x)) (/.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))))
(*.f64 1 (+.f64 y (+.f64 x x)))
(*.f64 (-.f64 (*.f64 x -2) y) -1)
(*.f64 (*.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))) (/.f64 1 (+.f64 y (+.f64 x x))))
(*.f64 (*.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))) (*.f64 (/.f64 1 (+.f64 y (+.f64 x x))) 1))
(*.f64 (/.f64 1 (+.f64 y (+.f64 x x))) (*.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))))
(*.f64 (*.f64 (+.f64 y (+.f64 x x)) (*.f64 (+.f64 y (+.f64 x x)) (*.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))))) (/.f64 (/.f64 1 (+.f64 y (+.f64 x x))) (*.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x)))))
(/.f64 (+.f64 y (+.f64 x x)) 1)
(/.f64 (+.f64 y (+.f64 x x)) (/.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))))
(/.f64 (-.f64 (*.f64 x -2) y) -1)
(pow.f64 (+.f64 y (+.f64 x x)) 1)
(neg.f64 (-.f64 (*.f64 x -2) y))
(+.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)
(+.f64 0 (*.f64 y (+.f64 y (+.f64 x x))))
(-.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)
(/.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))
(pow.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
Outputs
(*.f64 2 x)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
y
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
y
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
y
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(*.f64 2 x)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(*.f64 2 x)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(*.f64 2 (*.f64 y x))
(*.f64 2 (*.f64 x y))
(*.f64 x (+.f64 y y))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(pow.f64 y 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(*.f64 2 (*.f64 y x))
(*.f64 2 (*.f64 x y))
(*.f64 x (+.f64 y y))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(*.f64 2 (*.f64 y x))
(*.f64 2 (*.f64 x y))
(*.f64 x (+.f64 y y))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 y 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 y 2))
(+.f64 (*.f64 x (+.f64 y y)) (pow.f64 y 2))
(+.f64 y (+.f64 x x))
(+.f64 x (+.f64 x y))
(+.f64 x (+.f64 y x))
(+.f64 y (+.f64 x x))
(+.f64 x (+.f64 x y))
(+.f64 (+.f64 y x) x)
(+.f64 y (+.f64 x x))
(+.f64 x (+.f64 x y))
(+.f64 (+.f64 y (+.f64 x x)) 0)
(+.f64 y (+.f64 x x))
(+.f64 x (+.f64 x y))
(+.f64 0 (+.f64 y (+.f64 x x)))
(+.f64 y (+.f64 x x))
(+.f64 x (+.f64 x y))
(+.f64 (-.f64 (+.f64 y x) (-.f64 -1 x)) -1)
(+.f64 -1 (-.f64 (+.f64 x y) (-.f64 -1 x)))
(-.f64 x (+.f64 1 (-.f64 -1 (+.f64 x y))))
(-.f64 x (-.f64 (neg.f64 y) x))
(+.f64 (-.f64 -1 (neg.f64 x)) (-.f64 1 (-.f64 (neg.f64 y) x)))
(+.f64 y (+.f64 x x))
(+.f64 x (+.f64 x y))
(+.f64 (-.f64 -1 (-.f64 (*.f64 x -2) y)) 1)
(+.f64 1 (-.f64 -1 (-.f64 (*.f64 x -2) y)))
(+.f64 1 (-.f64 y (+.f64 1 (*.f64 x -2))))
(-.f64 y (*.f64 x -2))
(*.f64 (+.f64 y (+.f64 x x)) 1)
(+.f64 y (+.f64 x x))
(+.f64 x (+.f64 x y))
(*.f64 (+.f64 y (+.f64 x x)) (/.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))))
(+.f64 y (+.f64 x x))
(+.f64 x (+.f64 x y))
(*.f64 1 (+.f64 y (+.f64 x x)))
(+.f64 y (+.f64 x x))
(+.f64 x (+.f64 x y))
(*.f64 (-.f64 (*.f64 x -2) y) -1)
(+.f64 1 (-.f64 -1 (-.f64 (*.f64 x -2) y)))
(+.f64 1 (-.f64 y (+.f64 1 (*.f64 x -2))))
(-.f64 y (*.f64 x -2))
(*.f64 (*.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))) (/.f64 1 (+.f64 y (+.f64 x x))))
(+.f64 y (+.f64 x x))
(+.f64 x (+.f64 x y))
(*.f64 (*.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))) (*.f64 (/.f64 1 (+.f64 y (+.f64 x x))) 1))
(+.f64 y (+.f64 x x))
(+.f64 x (+.f64 x y))
(*.f64 (/.f64 1 (+.f64 y (+.f64 x x))) (*.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))))
(+.f64 y (+.f64 x x))
(+.f64 x (+.f64 x y))
(*.f64 (*.f64 (+.f64 y (+.f64 x x)) (*.f64 (+.f64 y (+.f64 x x)) (*.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))))) (/.f64 (/.f64 1 (+.f64 y (+.f64 x x))) (*.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x)))))
(+.f64 y (+.f64 x x))
(+.f64 x (+.f64 x y))
(/.f64 (+.f64 y (+.f64 x x)) 1)
(+.f64 y (+.f64 x x))
(+.f64 x (+.f64 x y))
(/.f64 (+.f64 y (+.f64 x x)) (/.f64 (+.f64 y (+.f64 x x)) (+.f64 y (+.f64 x x))))
(+.f64 y (+.f64 x x))
(+.f64 x (+.f64 x y))
(/.f64 (-.f64 (*.f64 x -2) y) -1)
(+.f64 1 (-.f64 -1 (-.f64 (*.f64 x -2) y)))
(+.f64 1 (-.f64 y (+.f64 1 (*.f64 x -2))))
(-.f64 y (*.f64 x -2))
(pow.f64 (+.f64 y (+.f64 x x)) 1)
(+.f64 y (+.f64 x x))
(+.f64 x (+.f64 x y))
(neg.f64 (-.f64 (*.f64 x -2) y))
(+.f64 1 (-.f64 -1 (-.f64 (*.f64 x -2) y)))
(+.f64 1 (-.f64 y (+.f64 1 (*.f64 x -2))))
(-.f64 y (*.f64 x -2))
(+.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 y (+.f64 x (+.f64 x y)))
(+.f64 0 (*.f64 y (+.f64 y (+.f64 x x))))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 y (+.f64 x (+.f64 x y)))
(-.f64 (*.f64 y (+.f64 y (+.f64 x x))) 0)
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 y (+.f64 x (+.f64 x y)))
(/.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 y (+.f64 x (+.f64 x y)))
(/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (/.f64 (*.f64 y (+.f64 y (+.f64 x x))) (*.f64 y (+.f64 y (+.f64 x x)))))
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 y (+.f64 x (+.f64 x y)))
(pow.f64 (*.f64 y (+.f64 y (+.f64 x x))) 1)
(*.f64 y (+.f64 y (+.f64 x x)))
(*.f64 y (+.f64 x (+.f64 x y)))

eval181.0ms (2.8%)

Compiler

Compiled 494 to 175 computations (64.6% saved)

prune11.0ms (0.2%)

Pruning

7 alts after pruning (2 fresh and 5 done)

PrunedKeptTotal
New44246
Fresh000
Picked101
Done156
Total46753
Error
0b
Counts
53 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 x (+.f64 x (*.f64 2 y))) (*.f64 y y))
0.0b
(+.f64 (*.f64 2 (*.f64 y x)) (+.f64 (pow.f64 y 2) (pow.f64 x 2)))
24.9b
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 y y))
24.9b
(*.f64 y (+.f64 (+.f64 y x) x))
53.6b
(*.f64 y (*.f64 2 x))
25.0b
(*.f64 y y)
53.6b
(*.f64 2 (*.f64 y x))
Compiler

Compiled 67 to 44 computations (34.3% saved)

regimes25.0ms (0.4%)

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

3 calls:

8.0ms
y
7.0ms
(+.f64 (+.f64 (*.f64 x x) (*.f64 (*.f64 x 2) y)) (*.f64 y y))
7.0ms
x
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(+.f64 (+.f64 (*.f64 x x) (*.f64 (*.f64 x 2) y)) (*.f64 y y))
Compiler

Compiled 114 to 56 computations (50.9% saved)

regimes13.0ms (0.2%)

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

2 calls:

5.0ms
x
5.0ms
y
Results
ErrorSegmentsBranch
24.9b1x
24.9b1y
Compiler

Compiled 62 to 28 computations (54.8% saved)

regimes9.0ms (0.1%)

Accuracy

Total -28.7b remaining (-114.6%)

Threshold costs -28.7b (-114.6%)

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

2 calls:

4.0ms
y
4.0ms
x
Results
ErrorSegmentsBranch
25.0b1x
25.0b1y
Compiler

Compiled 21 to 13 computations (38.1% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01357
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 x (+.f64 x (*.f64 2 y))) (*.f64 y y))
(*.f64 y (+.f64 (+.f64 y x) x))
(*.f64 y y)
Outputs
(+.f64 (*.f64 x (+.f64 x (*.f64 2 y))) (*.f64 y y))
(*.f64 y (+.f64 (+.f64 y x) x))
(*.f64 y y)
Compiler

Compiled 27 to 16 computations (40.7% saved)

soundness20.0ms (0.3%)

Algorithm
egg-herbie
Rules
20×rational.json-simplify-2
16×rational.json-simplify-1
rational.json-simplify-54
rational.json-simplify-55
rational.json-simplify-73
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01137
11837
23031
34731
45931
55931
Stop Event
saturated
Compiler

Compiled 65 to 29 computations (55.4% saved)

end22.0ms (0.3%)

Remove

(sort x y)

Compiler

Compiled 49 to 27 computations (44.9% saved)

Profiling

Loading profile data...