Details

Time bar (total: 1.6s)

analyze84.0ms (5.4%)

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)

sample905.0ms (57.5%)

Results
793.0ms8256×body256valid
99.0ms982×body256infinite
Bogosity

preprocess17.0ms (1.1%)

Algorithm
egg-herbie
Rules
18×rational_best-simplify-1
16×rational_best-simplify-2
rational_best-simplify-51
rational_best-simplify-43
rational_best-simplify-44
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01574
12674
24062
35262
45462
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)

simplify12.0ms (0.8%)

Algorithm
egg-herbie
Rules
16×rational_best-simplify-2
16×rational_best-simplify-1
rational_best-simplify-22
rational_best-simplify-51
rational_best-simplify-44
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01137
11837
22631
33931
44331
Stop Event
saturated
Counts
1 → 4
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 x x) (+.f64 (*.f64 x (*.f64 y 2)) (*.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)))

eval1.0ms (0.1%)

Compiler

Compiled 50 to 24 computations (52% saved)

prune1.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New224
Fresh011
Picked000
Done000
Total235
Error
0.0b
Counts
5 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (+.f64 (*.f64 x x) (*.f64 (*.f64 x 2) y)) (*.f64 y y))
0.0b
(+.f64 (*.f64 x x) (*.f64 y (+.f64 (*.f64 x 2) y)))
Compiler

Compiled 28 to 17 computations (39.3% saved)

localize19.0ms (1.2%)

Local error

Found 2 expressions with local error:

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

Compiled 34 to 18 computations (47.1% saved)

series3.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

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

rewrite28.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
52×rational_best-simplify-2
36×rational_best-2
36×rational_best-3
36×rational_best-1
32×rational_best-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01050
16850
210550
311550
412150
513950
615150
716650
818350
918850
1020550
1121950
1222450
1322550
Stop Event
saturated
Counts
2 → 10
Calls
Call 1
Inputs
(*.f64 y (+.f64 (*.f64 x 2) y))
(+.f64 (*.f64 x x) (*.f64 y (+.f64 (*.f64 x 2) y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 y (*.f64 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 y (*.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 y (*.f64 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 y (*.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 y (*.f64 x 2))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y (+.f64 y (*.f64 x 2))) (*.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y (+.f64 y (*.f64 x 2))) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y (+.f64 y (*.f64 x 2))) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y (+.f64 y (*.f64 x 2))) (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 y (+.f64 y (*.f64 x 2))) (*.f64 x x)) 1)))))

simplify24.0ms (1.5%)

Algorithm
egg-herbie
Rules
24×rational_best-simplify-1
20×rational_best-simplify-2
rational_best-simplify-6
rational_best-simplify-43
rational_best-simplify-44
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0301396
1461396
2631396
3691396
4691396
Stop Event
saturated
Counts
58 → 18
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))
(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 y (+.f64 y (*.f64 x 2))) 0)
(+.f64 0 (*.f64 y (+.f64 y (*.f64 x 2))))
(-.f64 (*.f64 y (+.f64 y (*.f64 x 2))) 0)
(/.f64 (*.f64 y (+.f64 y (*.f64 x 2))) 1)
(pow.f64 (*.f64 y (+.f64 y (*.f64 x 2))) 1)
(-.f64 (+.f64 (*.f64 y (+.f64 y (*.f64 x 2))) (*.f64 x x)) 0)
(*.f64 (+.f64 (*.f64 y (+.f64 y (*.f64 x 2))) (*.f64 x x)) 1)
(*.f64 1 (+.f64 (*.f64 y (+.f64 y (*.f64 x 2))) (*.f64 x x)))
(/.f64 (+.f64 (*.f64 y (+.f64 y (*.f64 x 2))) (*.f64 x x)) 1)
(pow.f64 (+.f64 (*.f64 y (+.f64 y (*.f64 x 2))) (*.f64 x x)) 1)
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))
(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 y (+.f64 y (*.f64 x 2))) 0)
(*.f64 y (+.f64 y (*.f64 2 x)))
(+.f64 0 (*.f64 y (+.f64 y (*.f64 x 2))))
(*.f64 y (+.f64 y (*.f64 2 x)))
(-.f64 (*.f64 y (+.f64 y (*.f64 x 2))) 0)
(*.f64 y (+.f64 y (*.f64 2 x)))
(/.f64 (*.f64 y (+.f64 y (*.f64 x 2))) 1)
(*.f64 y (+.f64 y (*.f64 2 x)))
(pow.f64 (*.f64 y (+.f64 y (*.f64 x 2))) 1)
(*.f64 y (+.f64 y (*.f64 2 x)))
(-.f64 (+.f64 (*.f64 y (+.f64 y (*.f64 x 2))) (*.f64 x x)) 0)
(+.f64 (*.f64 y (+.f64 y (*.f64 2 x))) (*.f64 x x))
(*.f64 (+.f64 (*.f64 y (+.f64 y (*.f64 x 2))) (*.f64 x x)) 1)
(+.f64 (*.f64 y (+.f64 y (*.f64 2 x))) (*.f64 x x))
(*.f64 1 (+.f64 (*.f64 y (+.f64 y (*.f64 x 2))) (*.f64 x x)))
(+.f64 (*.f64 y (+.f64 y (*.f64 2 x))) (*.f64 x x))
(/.f64 (+.f64 (*.f64 y (+.f64 y (*.f64 x 2))) (*.f64 x x)) 1)
(+.f64 (*.f64 y (+.f64 y (*.f64 2 x))) (*.f64 x x))
(pow.f64 (+.f64 (*.f64 y (+.f64 y (*.f64 x 2))) (*.f64 x x)) 1)
(+.f64 (*.f64 y (+.f64 y (*.f64 2 x))) (*.f64 x x))

localize16.0ms (1%)

Local error

Found 1 expressions with local error:

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

Compiled 41 to 19 computations (53.7% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite30.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
172×rational_best-simplify-2
116×rational_best-simplify-44
94×rational_best-2
94×rational_best-3
94×rational_best-1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0925
16125
210019
312619
414419
516319
617519
718919
820619
922319
1030919
1142919
1252419
1355319
Stop Event
saturated
Counts
1 → 14
Calls
Call 1
Inputs
(+.f64 (*.f64 x x) (*.f64 (*.f64 x 2) y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 x (*.f64 2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 x (*.f64 2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 x) (*.f64 y -2)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 2 y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))))))

simplify28.0ms (1.8%)

Algorithm
egg-herbie
Rules
114×rational_best-simplify-2
60×rational_best-simplify-44
24×rational_best-simplify-47
18×rational_best-simplify-5
16×rational_best-simplify-6
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
034832
153832
271832
379832
498832
5132832
6165832
7174832
8176832
Stop Event
saturated
Counts
38 → 21
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))
(-.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 0)
(-.f64 0 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 x (+.f64 x (*.f64 2 y)))
(*.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)
(*.f64 1 (*.f64 x (+.f64 x (*.f64 2 y))))
(*.f64 -1 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))
(*.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))) -1)
(*.f64 (+.f64 (neg.f64 x) (*.f64 y -2)) (neg.f64 x))
(*.f64 (+.f64 x (*.f64 2 y)) x)
(/.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)
(/.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))) -1)
(pow.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)
(neg.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))
Outputs
(*.f64 2 (*.f64 y x))
(*.f64 2 (*.f64 x y))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(*.f64 2 (*.f64 y x))
(*.f64 2 (*.f64 x y))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(*.f64 2 (*.f64 y x))
(*.f64 2 (*.f64 x y))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(-.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 0)
(*.f64 x (+.f64 x (*.f64 2 y)))
(-.f64 0 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 -2 y))))
(*.f64 x (+.f64 x (*.f64 2 y)))
(*.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)
(*.f64 x (+.f64 x (*.f64 2 y)))
(*.f64 1 (*.f64 x (+.f64 x (*.f64 2 y))))
(*.f64 x (+.f64 x (*.f64 2 y)))
(*.f64 -1 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 -2 y))))
(*.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 -2 y))))
(*.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))) -1)
(*.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 -2 y))))
(*.f64 (+.f64 (neg.f64 x) (*.f64 y -2)) (neg.f64 x))
(*.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 -2 y))))
(*.f64 (+.f64 x (*.f64 2 y)) x)
(*.f64 x (+.f64 x (*.f64 2 y)))
(/.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)
(*.f64 x (+.f64 x (*.f64 2 y)))
(/.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))) -1)
(*.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 -2 y))))
(pow.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)
(*.f64 x (+.f64 x (*.f64 2 y)))
(neg.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 -2 y))))

eval7.0ms (0.4%)

Compiler

Compiled 467 to 236 computations (49.5% saved)

prune6.0ms (0.4%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New36339
Fresh000
Picked101
Done101
Total38341
Error
0b
Counts
41 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(+.f64 (*.f64 (+.f64 x (*.f64 2 y)) x) (*.f64 y y))
28.9b
(+.f64 (*.f64 x x) (*.f64 2 (*.f64 y x)))
28.1b
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 y y))
Compiler

Compiled 35 to 22 computations (37.1% saved)

localize8.0ms (0.5%)

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)

series2.0ms (0.1%)

Counts
2 → 24
Calls

12 calls:

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

rewrite32.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
172×rational_best-simplify-2
114×rational_best-simplify-44
94×rational_best-2
94×rational_best-3
94×rational_best-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0938
16332
210932
313632
414532
516332
617532
718932
820632
922332
1030932
1144032
1253332
1356232
Stop Event
saturated
Counts
2 → 22
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 (+.f64 y (*.f64 2 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 y (+.f64 (neg.f64 y) (*.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 y (*.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y (+.f64 y (*.f64 2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 y (+.f64 (neg.f64 y) (*.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (+.f64 (neg.f64 y) (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 (neg.f64 y) (*.f64 x -2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 y) (*.f64 x -2)) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 2 x)) y)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 (neg.f64 y) (*.f64 x -2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 y (+.f64 (neg.f64 y) (*.f64 x -2))))))))
((#(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 2 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 y (*.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x -2)) -1)))) (#(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 y (*.f64 x -2)))))))

simplify31.0ms (2%)

Algorithm
egg-herbie
Rules
210×rational_best-simplify-2
130×rational_best-simplify-44
58×rational_best-simplify-47
28×rational_best-simplify-6
26×rational_best-simplify-5
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043936
167936
2104936
3142936
4205936
5272936
6322936
7325936
Stop Event
saturated
Counts
46 → 26
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 2 x))) 0)
(-.f64 0 (*.f64 y (+.f64 (neg.f64 y) (*.f64 x -2))))
(*.f64 y (+.f64 y (*.f64 2 x)))
(*.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 1)
(*.f64 1 (*.f64 y (+.f64 y (*.f64 2 x))))
(*.f64 -1 (*.f64 y (+.f64 (neg.f64 y) (*.f64 x -2))))
(*.f64 (neg.f64 y) (+.f64 (neg.f64 y) (*.f64 x -2)))
(*.f64 (*.f64 y (+.f64 (neg.f64 y) (*.f64 x -2))) -1)
(*.f64 (+.f64 (neg.f64 y) (*.f64 x -2)) (neg.f64 y))
(*.f64 (+.f64 y (*.f64 2 x)) y)
(/.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 1)
(/.f64 (*.f64 y (+.f64 (neg.f64 y) (*.f64 x -2))) -1)
(pow.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 1)
(neg.f64 (*.f64 y (+.f64 (neg.f64 y) (*.f64 x -2))))
(+.f64 (*.f64 2 (*.f64 y x)) 0)
(+.f64 0 (*.f64 2 (*.f64 y x)))
(-.f64 (*.f64 2 (*.f64 y x)) 0)
(-.f64 0 (*.f64 y (*.f64 x -2)))
(/.f64 (*.f64 2 (*.f64 y x)) 1)
(/.f64 (*.f64 y (*.f64 x -2)) -1)
(pow.f64 (*.f64 2 (*.f64 y x)) 1)
(neg.f64 (*.f64 y (*.f64 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 (+.f64 y (*.f64 2 x))) 0)
(*.f64 y (+.f64 y (*.f64 2 x)))
(-.f64 0 (*.f64 y (+.f64 (neg.f64 y) (*.f64 x -2))))
(*.f64 (neg.f64 y) (+.f64 (neg.f64 y) (*.f64 x -2)))
(*.f64 y (neg.f64 (+.f64 (neg.f64 y) (*.f64 x -2))))
(*.f64 y (+.f64 y (*.f64 2 x)))
(*.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 1)
(*.f64 y (+.f64 y (*.f64 2 x)))
(*.f64 1 (*.f64 y (+.f64 y (*.f64 2 x))))
(*.f64 y (+.f64 y (*.f64 2 x)))
(*.f64 -1 (*.f64 y (+.f64 (neg.f64 y) (*.f64 x -2))))
(*.f64 (neg.f64 y) (+.f64 (neg.f64 y) (*.f64 x -2)))
(*.f64 y (neg.f64 (+.f64 (neg.f64 y) (*.f64 x -2))))
(*.f64 (neg.f64 y) (+.f64 (neg.f64 y) (*.f64 x -2)))
(*.f64 y (neg.f64 (+.f64 (neg.f64 y) (*.f64 x -2))))
(*.f64 (*.f64 y (+.f64 (neg.f64 y) (*.f64 x -2))) -1)
(*.f64 (neg.f64 y) (+.f64 (neg.f64 y) (*.f64 x -2)))
(*.f64 y (neg.f64 (+.f64 (neg.f64 y) (*.f64 x -2))))
(*.f64 (+.f64 (neg.f64 y) (*.f64 x -2)) (neg.f64 y))
(*.f64 (neg.f64 y) (+.f64 (neg.f64 y) (*.f64 x -2)))
(*.f64 y (neg.f64 (+.f64 (neg.f64 y) (*.f64 x -2))))
(*.f64 (+.f64 y (*.f64 2 x)) y)
(*.f64 y (+.f64 y (*.f64 2 x)))
(/.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 1)
(*.f64 y (+.f64 y (*.f64 2 x)))
(/.f64 (*.f64 y (+.f64 (neg.f64 y) (*.f64 x -2))) -1)
(*.f64 (neg.f64 y) (+.f64 (neg.f64 y) (*.f64 x -2)))
(*.f64 y (neg.f64 (+.f64 (neg.f64 y) (*.f64 x -2))))
(pow.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 1)
(*.f64 y (+.f64 y (*.f64 2 x)))
(neg.f64 (*.f64 y (+.f64 (neg.f64 y) (*.f64 x -2))))
(*.f64 (neg.f64 y) (+.f64 (neg.f64 y) (*.f64 x -2)))
(*.f64 y (neg.f64 (+.f64 (neg.f64 y) (*.f64 x -2))))
(+.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 2 (*.f64 y x)) 0)
(*.f64 2 (*.f64 y x))
(-.f64 0 (*.f64 y (*.f64 x -2)))
(*.f64 2 (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 y x)) 1)
(*.f64 2 (*.f64 y x))
(/.f64 (*.f64 y (*.f64 x -2)) -1)
(*.f64 2 (*.f64 y x))
(pow.f64 (*.f64 2 (*.f64 y x)) 1)
(*.f64 2 (*.f64 y x))
(neg.f64 (*.f64 y (*.f64 x -2)))
(*.f64 2 (*.f64 y x))

localize9.0ms (0.5%)

Local error

Found 2 expressions with local error:

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

Compiled 25 to 10 computations (60% saved)

series0.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite31.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
168×rational_best-simplify-2
136×rational_best-simplify-44
94×rational_best-2
94×rational_best-3
94×rational_best-1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0925
16325
210719
312819
414419
516319
617519
718919
820619
922319
1030919
1144919
1254719
1357619
Stop Event
saturated
Counts
1 → 14
Calls
Call 1
Inputs
(+.f64 (*.f64 x x) (*.f64 2 (*.f64 y x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 x (*.f64 2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 x (*.f64 2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 x) (*.f64 y -2)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 2 y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))))))

simplify28.0ms (1.8%)

Algorithm
egg-herbie
Rules
114×rational_best-simplify-2
60×rational_best-simplify-44
24×rational_best-simplify-47
18×rational_best-simplify-5
16×rational_best-simplify-6
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
034832
153832
271832
379832
498832
5132832
6165832
7174832
8176832
Stop Event
saturated
Counts
38 → 21
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))
(-.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 0)
(-.f64 0 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 x (+.f64 x (*.f64 2 y)))
(*.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)
(*.f64 1 (*.f64 x (+.f64 x (*.f64 2 y))))
(*.f64 -1 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))
(*.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))) -1)
(*.f64 (+.f64 (neg.f64 x) (*.f64 y -2)) (neg.f64 x))
(*.f64 (+.f64 x (*.f64 2 y)) x)
(/.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)
(/.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))) -1)
(pow.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)
(neg.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))
Outputs
(*.f64 2 (*.f64 y x))
(*.f64 2 (*.f64 x y))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(*.f64 2 (*.f64 y x))
(*.f64 2 (*.f64 x y))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(*.f64 2 (*.f64 y x))
(*.f64 2 (*.f64 x y))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 y x)) (pow.f64 x 2))
(+.f64 (*.f64 2 (*.f64 x y)) (pow.f64 x 2))
(-.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 0)
(*.f64 x (+.f64 x (*.f64 2 y)))
(-.f64 0 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 -2 y))))
(*.f64 x (+.f64 x (*.f64 2 y)))
(*.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)
(*.f64 x (+.f64 x (*.f64 2 y)))
(*.f64 1 (*.f64 x (+.f64 x (*.f64 2 y))))
(*.f64 x (+.f64 x (*.f64 2 y)))
(*.f64 -1 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 -2 y))))
(*.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 -2 y))))
(*.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))) -1)
(*.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 -2 y))))
(*.f64 (+.f64 (neg.f64 x) (*.f64 y -2)) (neg.f64 x))
(*.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 -2 y))))
(*.f64 (+.f64 x (*.f64 2 y)) x)
(*.f64 x (+.f64 x (*.f64 2 y)))
(/.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)
(*.f64 x (+.f64 x (*.f64 2 y)))
(/.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))) -1)
(*.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 -2 y))))
(pow.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)
(*.f64 x (+.f64 x (*.f64 2 y)))
(neg.f64 (*.f64 x (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 (neg.f64 x) (+.f64 (neg.f64 x) (*.f64 y -2)))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 y -2))))
(*.f64 x (neg.f64 (+.f64 (neg.f64 x) (*.f64 -2 y))))

localize12.0ms (0.8%)

Local error

Found 1 expressions with local error:

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

Compiled 34 to 18 computations (47.1% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite12.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
18×rational_best-simplify-2
16×rational_best-simplify-1
14×rational_best-4
14×rational_best-2
14×rational_best-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
15319
27719
37819
Stop Event
saturated
Counts
1 → 5
Calls
Call 1
Inputs
(*.f64 (+.f64 x (*.f64 2 y)) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 x (*.f64 2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)))))

simplify16.0ms (1%)

Algorithm
egg-herbie
Rules
18×rational_best-simplify-2
rational_best-simplify-1
rational_best-simplify-6
rational_best-simplify-47
rational_best-simplify-44
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
019605
129605
238605
340605
Stop Event
saturated
Counts
29 → 9
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))
(+.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 0)
(+.f64 0 (*.f64 x (+.f64 x (*.f64 2 y))))
(-.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 0)
(/.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)
(pow.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)
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))
(+.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 0)
(*.f64 x (+.f64 x (*.f64 2 y)))
(+.f64 0 (*.f64 x (+.f64 x (*.f64 2 y))))
(*.f64 x (+.f64 x (*.f64 2 y)))
(-.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 0)
(*.f64 x (+.f64 x (*.f64 2 y)))
(/.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)
(*.f64 x (+.f64 x (*.f64 2 y)))
(pow.f64 (*.f64 x (+.f64 x (*.f64 2 y))) 1)
(*.f64 x (+.f64 x (*.f64 2 y)))

eval11.0ms (0.7%)

Compiler

Compiled 608 to 334 computations (45.1% saved)

prune10.0ms (0.7%)

Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New61364
Fresh000
Picked011
Done022
Total61667
Error
0b
Counts
67 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(+.f64 (*.f64 (+.f64 x (*.f64 2 y)) x) (*.f64 y y))
28.9b
(+.f64 (*.f64 x x) (*.f64 2 (*.f64 y x)))
28.1b
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 y y))
28.1b
(*.f64 (+.f64 y (*.f64 2 x)) y)
28.9b
(*.f64 (+.f64 x (*.f64 2 y)) x)
56.3b
(*.f64 2 (*.f64 y x))
Compiler

Compiled 60 to 39 computations (35% saved)

localize4.0ms (0.3%)

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)

localize8.0ms (0.5%)

Local error

Found 1 expressions with local error:

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

Compiled 20 to 12 computations (40% saved)

localize8.0ms (0.5%)

Local error

Found 1 expressions with local error:

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

Compiled 20 to 12 computations (40% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite12.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
18×rational_best-simplify-2
16×rational_best-simplify-1
14×rational_best-4
14×rational_best-2
14×rational_best-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
15319
27719
37819
Stop Event
saturated
Counts
1 → 5
Calls
Call 1
Inputs
(*.f64 (+.f64 y (*.f64 2 x)) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 y (*.f64 2 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 1)))))

simplify16.0ms (1%)

Algorithm
egg-herbie
Rules
20×rational_best-simplify-2
rational_best-simplify-1
rational_best-simplify-6
rational_best-simplify-44
rational_best-simplify-47
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
019605
128605
239605
342605
Stop Event
saturated
Counts
29 → 9
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 2 x))) 0)
(+.f64 0 (*.f64 y (+.f64 y (*.f64 2 x))))
(-.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 0)
(/.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 1)
(pow.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 1)
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 2 x))) 0)
(*.f64 y (+.f64 y (*.f64 2 x)))
(+.f64 0 (*.f64 y (+.f64 y (*.f64 2 x))))
(*.f64 y (+.f64 y (*.f64 2 x)))
(-.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 0)
(*.f64 y (+.f64 y (*.f64 2 x)))
(/.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 1)
(*.f64 y (+.f64 y (*.f64 2 x)))
(pow.f64 (*.f64 y (+.f64 y (*.f64 2 x))) 1)
(*.f64 y (+.f64 y (*.f64 2 x)))

eval4.0ms (0.3%)

Compiler

Compiled 195 to 123 computations (36.9% saved)

prune6.0ms (0.4%)

Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New26026
Fresh000
Picked011
Done055
Total26632
Error
0b
Counts
32 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(+.f64 (*.f64 (+.f64 x (*.f64 2 y)) x) (*.f64 y y))
28.9b
(+.f64 (*.f64 x x) (*.f64 2 (*.f64 y x)))
28.1b
(+.f64 (*.f64 2 (*.f64 y x)) (*.f64 y y))
28.1b
(*.f64 (+.f64 y (*.f64 2 x)) y)
28.9b
(*.f64 (+.f64 x (*.f64 2 y)) x)
56.3b
(*.f64 2 (*.f64 y x))
Compiler

Compiled 60 to 39 computations (35% saved)

regimes22.0ms (1.4%)

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

3 calls:

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

Compiled 95 to 49 computations (48.4% saved)

regimes12.0ms (0.8%)

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

2 calls:

6.0ms
x
5.0ms
y
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
Compiler

Compiled 56 to 30 computations (46.4% saved)

regimes19.0ms (1.2%)

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

2 calls:

9.0ms
y
9.0ms
x
Results
ErrorSegmentsBranch
7.0b2x
8.2b2y
Compiler

Compiled 45 to 25 computations (44.4% saved)

bsearch17.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
-7.850728444896704e-139
-9.364252930327105e-144
Results
15.0ms144×body256valid
Compiler

Compiled 200 to 139 computations (30.5% saved)

regimes7.0ms (0.4%)

Accuracy

Total -27.5b remaining (-95.1%)

Threshold costs -27.5b (-95.1%)

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

2 calls:

3.0ms
x
3.0ms
y
Results
ErrorSegmentsBranch
28.9b1x
28.9b1y
Compiler

Compiled 20 to 13 computations (35% saved)

simplify3.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
026141
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 (+.f64 x (*.f64 2 y)) x) (*.f64 y y))
(+.f64 (*.f64 x x) (*.f64 y (+.f64 (*.f64 x 2) y)))
(if (<=.f64 x -4290498537581631/6703903964971298549787012499102923063739682910296196688861780721860882015036773488400937149083451713845015929093243025426876941405973284973216824503042048) (*.f64 (+.f64 x (*.f64 2 y)) x) (*.f64 (+.f64 y (*.f64 2 x)) y))
(*.f64 (+.f64 x (*.f64 2 y)) x)
(*.f64 2 (*.f64 y x))
Outputs
(+.f64 (*.f64 (+.f64 x (*.f64 2 y)) x) (*.f64 y y))
(+.f64 (*.f64 x x) (*.f64 y (+.f64 (*.f64 x 2) y)))
(if (<=.f64 x -4290498537581631/6703903964971298549787012499102923063739682910296196688861780721860882015036773488400937149083451713845015929093243025426876941405973284973216824503042048) (*.f64 (+.f64 x (*.f64 2 y)) x) (*.f64 (+.f64 y (*.f64 2 x)) y))
(*.f64 (+.f64 x (*.f64 2 y)) x)
(*.f64 2 (*.f64 y x))
Compiler

Compiled 62 to 40 computations (35.5% saved)

soundness0.0ms (0%)

end48.0ms (3%)

Compiler

Compiled 80 to 48 computations (40% saved)

Profiling

Loading profile data...