Details

Time bar (total: 2.7s)

analyze6.0ms (0.2%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
50%50%50%0%0%0%0%3
66.7%50%25%0%25%0%0%4
83.3%62.5%12.5%0%25%0%0%5
91.7%68.7%6.2%0%25%0%0%6
95.8%71.8%3.1%0%25%0%0%7
97.9%73.4%1.6%0%25%0%0%8
99%74.2%0.8%0%25%0%0%9
99.5%74.6%0.4%0%25%0%0%10
99.7%74.8%0.2%0%25%0%0%11
99.9%74.9%0.1%0%25%0%0%12
Compiler

Compiled 11 to 9 computations (18.2% saved)

sample1.2s (43.3%)

Results
548.0ms2712×body1024valid
310.0ms3823×body256valid
173.0ms1432×body512valid
126.0ms289×body2048valid
0.0msbody256infinite
Bogosity

preprocess11.0ms (0.4%)

Algorithm
egg-herbie
Rules
rational_best-simplify-1
rational_best-simplify-22
rational_best-simplify-17
rational_best-simplify-19
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0725
11225
21425
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
Outputs
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
(+.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) -1)
Compiler

Compiled 11 to 9 computations (18.2% saved)

simplify11.0ms (0.4%)

Algorithm
egg-herbie
Rules
rational_best-simplify-1
rational_best-simplify-22
rational_best-simplify-17
rational_best-simplify-19
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0725
11225
21425
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
Outputs
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
(+.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) -1)

eval1.0ms (0%)

Compiler

Compiled 19 to 15 computations (21.1% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
38.2b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
38.2b
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
Compiler

Compiled 10 to 8 computations (20% saved)

localize8.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (+.f64 x 1) (+.f64 x 1))
2.6b
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
Compiler

Compiled 22 to 16 computations (27.3% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite17.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0744
14844
28144
39244
49744
511044
612544
714644
816944
918344
1018444
Stop Event
saturated
Counts
2 → 18
Calls
Call 1
Inputs
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
(*.f64 (+.f64 x 1) (+.f64 x 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (*.f64 (-.f64 -1 x) (-.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 -1 x) (-.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (+.f64 x 1) (-.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x 1) (-.f64 -1 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (+.f64 x 1) (-.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (+.f64 x 1) (-.f64 -1 x)))))))

simplify45.0ms (1.7%)

Algorithm
egg-herbie
Rules
54×rational_best-simplify-1
44×rational_best-simplify-2
24×rational_best-simplify-44
24×rational_best-simplify-43
22×rational_best-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036798
152798
274798
392798
4106798
5122798
6151798
7165798
8173798
9182798
10192798
11197798
12202798
13210798
14215798
15228798
16231798
Stop Event
saturated
Counts
42 → 26
Calls
Call 1
Inputs
(*.f64 2 x)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
1
(+.f64 (*.f64 2 x) 1)
(+.f64 (*.f64 2 x) (+.f64 1 (pow.f64 x 2)))
(+.f64 (*.f64 2 x) (+.f64 1 (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (+.f64 1 (pow.f64 x 2)))
(+.f64 (*.f64 2 x) (+.f64 1 (pow.f64 x 2)))
(pow.f64 x 2)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (+.f64 1 (pow.f64 x 2)))
(+.f64 (*.f64 2 x) (+.f64 1 (pow.f64 x 2)))
(+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1)
(+.f64 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1) 0)
(+.f64 0 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1))
(+.f64 -1 (*.f64 (-.f64 -1 x) (-.f64 -1 x)))
(*.f64 1 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1))
(*.f64 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1) 1)
(/.f64 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1) 1)
(pow.f64 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1) 1)
(+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) 0)
(+.f64 0 (*.f64 (-.f64 -1 x) (-.f64 -1 x)))
(-.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) 0)
(-.f64 0 (*.f64 (+.f64 x 1) (-.f64 -1 x)))
(/.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) 1)
(/.f64 (*.f64 (+.f64 x 1) (-.f64 -1 x)) -1)
(pow.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) 1)
(neg.f64 (*.f64 (+.f64 x 1) (-.f64 -1 x)))
(fabs.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)))
(fabs.f64 (*.f64 (+.f64 x 1) (-.f64 -1 x)))
Outputs
(*.f64 2 x)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
1
(+.f64 (*.f64 2 x) 1)
(+.f64 (*.f64 2 x) (+.f64 1 (pow.f64 x 2)))
(+.f64 (*.f64 2 x) (+.f64 (pow.f64 x 2) 1))
(+.f64 (*.f64 2 x) (+.f64 1 (pow.f64 x 2)))
(+.f64 (*.f64 2 x) (+.f64 (pow.f64 x 2) 1))
(pow.f64 x 2)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (+.f64 1 (pow.f64 x 2)))
(+.f64 (*.f64 2 x) (+.f64 (pow.f64 x 2) 1))
(+.f64 (*.f64 2 x) (+.f64 1 (pow.f64 x 2)))
(+.f64 (*.f64 2 x) (+.f64 (pow.f64 x 2) 1))
(pow.f64 x 2)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (+.f64 1 (pow.f64 x 2)))
(+.f64 (*.f64 2 x) (+.f64 (pow.f64 x 2) 1))
(+.f64 (*.f64 2 x) (+.f64 1 (pow.f64 x 2)))
(+.f64 (*.f64 2 x) (+.f64 (pow.f64 x 2) 1))
(+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1)
(+.f64 -1 (*.f64 (-.f64 -1 x) (-.f64 -1 x)))
(+.f64 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1) 0)
(+.f64 -1 (*.f64 (-.f64 -1 x) (-.f64 -1 x)))
(+.f64 0 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1))
(+.f64 -1 (*.f64 (-.f64 -1 x) (-.f64 -1 x)))
(+.f64 -1 (*.f64 (-.f64 -1 x) (-.f64 -1 x)))
(*.f64 1 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1))
(+.f64 -1 (*.f64 (-.f64 -1 x) (-.f64 -1 x)))
(*.f64 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1) 1)
(+.f64 -1 (*.f64 (-.f64 -1 x) (-.f64 -1 x)))
(/.f64 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1) 1)
(+.f64 -1 (*.f64 (-.f64 -1 x) (-.f64 -1 x)))
(pow.f64 (+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) -1) 1)
(+.f64 -1 (*.f64 (-.f64 -1 x) (-.f64 -1 x)))
(+.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) 0)
(*.f64 (-.f64 -1 x) (-.f64 -1 x))
(+.f64 0 (*.f64 (-.f64 -1 x) (-.f64 -1 x)))
(*.f64 (-.f64 -1 x) (-.f64 -1 x))
(-.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) 0)
(*.f64 (-.f64 -1 x) (-.f64 -1 x))
(-.f64 0 (*.f64 (+.f64 x 1) (-.f64 -1 x)))
(*.f64 (-.f64 -1 x) (-.f64 -1 x))
(/.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) 1)
(*.f64 (-.f64 -1 x) (-.f64 -1 x))
(/.f64 (*.f64 (+.f64 x 1) (-.f64 -1 x)) -1)
(*.f64 (-.f64 -1 x) (-.f64 -1 x))
(pow.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)) 1)
(*.f64 (-.f64 -1 x) (-.f64 -1 x))
(neg.f64 (*.f64 (+.f64 x 1) (-.f64 -1 x)))
(*.f64 (-.f64 -1 x) (-.f64 -1 x))
(fabs.f64 (*.f64 (-.f64 -1 x) (-.f64 -1 x)))
(*.f64 (-.f64 -1 x) (-.f64 -1 x))
(fabs.f64 (*.f64 (+.f64 x 1) (-.f64 -1 x)))
(*.f64 (-.f64 -1 x) (-.f64 -1 x))

eval5.0ms (0.2%)

Compiler

Compiled 246 to 199 computations (19.1% saved)

prune5.0ms (0.2%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New22426
Fresh000
Picked011
Done000
Total22527
Error
0.0b
Counts
27 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
60.2b
(-.f64 (+.f64 (*.f64 2 x) 1) 1)
38.2b
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
61.2b
(-.f64 1 1)
0.0b
(+.f64 (*.f64 2 x) (pow.f64 x 2))
22.2b
(*.f64 2 x)
Compiler

Compiled 34 to 28 computations (17.6% saved)

localize2.0ms (0.1%)

Compiler

Compiled 6 to 4 computations (33.3% saved)

localize6.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 16 to 11 computations (31.3% saved)

series2.0ms (0.1%)

Counts
2 → 3
Calls

6 calls:

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

rewrite11.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0726
14626
26926
Stop Event
saturated
Counts
2 → 11
Calls
Call 1
Inputs
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(pow.f64 x 2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 2 x) (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 2 x) (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 2 x) (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 x) (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 2 x) (pow.f64 x 2)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 x 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 x 2) 1)))))

simplify11.0ms (0.4%)

Algorithm
egg-herbie
Rules
10×rational_best-simplify-1
rational_best-simplify-2
rational_best-simplify-5
rational_best-simplify-4
rational_best-simplify-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
020158
122158
229158
332158
432158
Stop Event
saturated
Counts
14 → 14
Calls
Call 1
Inputs
(*.f64 2 x)
(pow.f64 x 2)
(pow.f64 x 2)
(-.f64 (+.f64 (*.f64 2 x) (pow.f64 x 2)) 0)
(*.f64 (+.f64 (*.f64 2 x) (pow.f64 x 2)) 1)
(*.f64 1 (+.f64 (*.f64 2 x) (pow.f64 x 2)))
(/.f64 (+.f64 (*.f64 2 x) (pow.f64 x 2)) 1)
(pow.f64 (+.f64 (*.f64 2 x) (pow.f64 x 2)) 1)
(+.f64 (pow.f64 x 2) 0)
(+.f64 0 (pow.f64 x 2))
(-.f64 (pow.f64 x 2) 0)
(*.f64 (pow.f64 x 2) 1)
(*.f64 1 (pow.f64 x 2))
(/.f64 (pow.f64 x 2) 1)
Outputs
(*.f64 2 x)
(pow.f64 x 2)
(pow.f64 x 2)
(-.f64 (+.f64 (*.f64 2 x) (pow.f64 x 2)) 0)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 (+.f64 (*.f64 2 x) (pow.f64 x 2)) 1)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 1 (+.f64 (*.f64 2 x) (pow.f64 x 2)))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(/.f64 (+.f64 (*.f64 2 x) (pow.f64 x 2)) 1)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(pow.f64 (+.f64 (*.f64 2 x) (pow.f64 x 2)) 1)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) 0)
(pow.f64 x 2)
(+.f64 0 (pow.f64 x 2))
(pow.f64 x 2)
(-.f64 (pow.f64 x 2) 0)
(pow.f64 x 2)
(*.f64 (pow.f64 x 2) 1)
(pow.f64 x 2)
(*.f64 1 (pow.f64 x 2))
(pow.f64 x 2)
(/.f64 (pow.f64 x 2) 1)
(pow.f64 x 2)

localize2.0ms (0.1%)

Compiler

Compiled 5 to 5 computations (0% saved)

localize7.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
2.6b
(-.f64 (+.f64 (*.f64 2 x) 1) 1)
Compiler

Compiled 19 to 15 computations (21.1% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite225.0ms (8.3%)

Algorithm
batch-egg-rewrite
Rules
11898×rational_best-simplify-43
1996×rational_best-simplify-1
332×rational_best-4
332×rational_best-2
332×rational_best-3
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0819
15319
2777
3837
4977
51147
61517
72097
83297
95747
107687
118017
128017
138017
1415107
1519297
1620027
1720027
1820027
1936117
2041527
2142457
2242457
2348557
2448577
2548577
2648577
2748577
Stop Event
node limit
Counts
1 → 80
Calls
Call 1
Inputs
(-.f64 (+.f64 (*.f64 2 x) 1) 1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 2 (+.f64 (*.f64 2 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (+.f64 (*.f64 2 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 2 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (*.f64 2 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 2 (*.f64 2 x)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (+.f64 2 (*.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 3 (+.f64 (*.f64 2 x) -3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) 3) -3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -3 (+.f64 (*.f64 2 x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -3) 3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -4 (+.f64 (*.f64 2 x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 4 (+.f64 (*.f64 2 x) -4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 5 (+.f64 (*.f64 2 x) -5))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) 5) -5)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 6 (+.f64 (*.f64 2 x) -6))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) 6) -6)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 7 (+.f64 (*.f64 2 x) -7))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) 7) -7)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -5 (+.f64 (*.f64 2 x) 5))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -5) 5)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -6 (+.f64 (*.f64 2 x) 6))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -6) 6)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -7 (+.f64 (*.f64 2 x) 7))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -7) 7)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -8 (+.f64 (*.f64 2 x) 8))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 8 (+.f64 (*.f64 2 x) -8))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) 8) -8)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 9 (+.f64 (*.f64 2 x) -9))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -9 (+.f64 (*.f64 2 x) 9))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 10 (+.f64 (*.f64 2 x) -10))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) 10) -10)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -9) 9)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -10 (+.f64 (*.f64 2 x) 10))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -11 (+.f64 (*.f64 2 x) 11))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -11) 11)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -12 (+.f64 (*.f64 2 x) 12))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -12) 12)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -10) 10)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) 9) -9)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 11 (+.f64 (*.f64 2 x) -11))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) 11) -11)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 12 (+.f64 (*.f64 2 x) -12))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) 12) -12)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 13 (+.f64 (*.f64 2 x) -13))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 14 (+.f64 (*.f64 2 x) -14))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 15 (+.f64 (*.f64 2 x) -15))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) 15) -15)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 16 (+.f64 (*.f64 2 x) -16))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -13 (+.f64 (*.f64 2 x) 13))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -13) 13)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -14 (+.f64 (*.f64 2 x) 14))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -15 (+.f64 (*.f64 2 x) 15))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -16 (+.f64 (*.f64 2 x) 16))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 17 (+.f64 (*.f64 2 x) -17))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) 13) -13)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) 16) -16)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) 14) -14)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -14) 14)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -17 (+.f64 (*.f64 2 x) 17))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -17) 17)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -16) 16)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -18 (+.f64 (*.f64 2 x) 18))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -18) 18)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 18 (+.f64 (*.f64 2 x) -18))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) 18) -18)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) -15) 15)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 2 x) 17) -17)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 2 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 x) 1)))))

simplify607.0ms (22.5%)

Algorithm
egg-herbie
Rules
58954×rational_best-simplify-43
2558×rational_best-simplify-1
80×rational_best-simplify-6
76×rational_best-simplify-53
76×rational_best-simplify-17
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0156644
1199644
2571644
3754644
4758644
5760644
6760644
7760644
8760644
9760644
105170644
115236644
125240644
135244644
145248644
155252644
165256644
175260644
185264644
195268644
205272644
215276644
225280644
235284644
245288644
255292644
266326644
276332644
286336644
296336644
306336644
316336644
326336644
336336644
346336644
356336644
Stop Event
node limit
Counts
92 → 80
Calls
Call 1
Inputs
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(+.f64 2 (+.f64 (*.f64 2 x) -2))
(+.f64 (*.f64 2 x) 0)
(+.f64 1 (+.f64 (*.f64 2 x) -1))
(+.f64 (+.f64 (*.f64 2 x) 1) -1)
(+.f64 0 (*.f64 2 x))
(+.f64 -1 (+.f64 (*.f64 2 x) 1))
(+.f64 (+.f64 (*.f64 2 x) -1) 1)
(+.f64 (+.f64 2 (*.f64 2 x)) -2)
(+.f64 -2 (+.f64 2 (*.f64 2 x)))
(+.f64 (+.f64 (*.f64 2 x) -2) 2)
(+.f64 3 (+.f64 (*.f64 2 x) -3))
(+.f64 (+.f64 (*.f64 2 x) 3) -3)
(+.f64 -3 (+.f64 (*.f64 2 x) 3))
(+.f64 (+.f64 (*.f64 2 x) -3) 3)
(+.f64 -4 (+.f64 (*.f64 2 x) 4))
(+.f64 (+.f64 (*.f64 2 x) -4) 4)
(+.f64 4 (+.f64 (*.f64 2 x) -4))
(+.f64 (+.f64 (*.f64 2 x) 4) -4)
(+.f64 5 (+.f64 (*.f64 2 x) -5))
(+.f64 (+.f64 (*.f64 2 x) 5) -5)
(+.f64 6 (+.f64 (*.f64 2 x) -6))
(+.f64 (+.f64 (*.f64 2 x) 6) -6)
(+.f64 7 (+.f64 (*.f64 2 x) -7))
(+.f64 (+.f64 (*.f64 2 x) 7) -7)
(+.f64 -5 (+.f64 (*.f64 2 x) 5))
(+.f64 (+.f64 (*.f64 2 x) -5) 5)
(+.f64 -6 (+.f64 (*.f64 2 x) 6))
(+.f64 (+.f64 (*.f64 2 x) -6) 6)
(+.f64 -7 (+.f64 (*.f64 2 x) 7))
(+.f64 (+.f64 (*.f64 2 x) -7) 7)
(+.f64 -8 (+.f64 (*.f64 2 x) 8))
(+.f64 (+.f64 (*.f64 2 x) -8) 8)
(+.f64 8 (+.f64 (*.f64 2 x) -8))
(+.f64 (+.f64 (*.f64 2 x) 8) -8)
(+.f64 9 (+.f64 (*.f64 2 x) -9))
(+.f64 -9 (+.f64 (*.f64 2 x) 9))
(+.f64 10 (+.f64 (*.f64 2 x) -10))
(+.f64 (+.f64 (*.f64 2 x) 10) -10)
(+.f64 (+.f64 (*.f64 2 x) -9) 9)
(+.f64 -10 (+.f64 (*.f64 2 x) 10))
(+.f64 -11 (+.f64 (*.f64 2 x) 11))
(+.f64 (+.f64 (*.f64 2 x) -11) 11)
(+.f64 -12 (+.f64 (*.f64 2 x) 12))
(+.f64 (+.f64 (*.f64 2 x) -12) 12)
(+.f64 (+.f64 (*.f64 2 x) -10) 10)
(+.f64 (+.f64 (*.f64 2 x) 9) -9)
(+.f64 11 (+.f64 (*.f64 2 x) -11))
(+.f64 (+.f64 (*.f64 2 x) 11) -11)
(+.f64 12 (+.f64 (*.f64 2 x) -12))
(+.f64 (+.f64 (*.f64 2 x) 12) -12)
(+.f64 13 (+.f64 (*.f64 2 x) -13))
(+.f64 14 (+.f64 (*.f64 2 x) -14))
(+.f64 15 (+.f64 (*.f64 2 x) -15))
(+.f64 (+.f64 (*.f64 2 x) 15) -15)
(+.f64 16 (+.f64 (*.f64 2 x) -16))
(+.f64 -13 (+.f64 (*.f64 2 x) 13))
(+.f64 (+.f64 (*.f64 2 x) -13) 13)
(+.f64 -14 (+.f64 (*.f64 2 x) 14))
(+.f64 -15 (+.f64 (*.f64 2 x) 15))
(+.f64 -16 (+.f64 (*.f64 2 x) 16))
(+.f64 17 (+.f64 (*.f64 2 x) -17))
(+.f64 (+.f64 (*.f64 2 x) 13) -13)
(+.f64 (+.f64 (*.f64 2 x) 16) -16)
(+.f64 (+.f64 (*.f64 2 x) 14) -14)
(+.f64 (+.f64 (*.f64 2 x) -14) 14)
(+.f64 -17 (+.f64 (*.f64 2 x) 17))
(+.f64 (+.f64 (*.f64 2 x) -17) 17)
(+.f64 (+.f64 (*.f64 2 x) -16) 16)
(+.f64 -18 (+.f64 (*.f64 2 x) 18))
(+.f64 (+.f64 (*.f64 2 x) -18) 18)
(+.f64 18 (+.f64 (*.f64 2 x) -18))
(+.f64 (+.f64 (*.f64 2 x) 18) -18)
(+.f64 (+.f64 (*.f64 2 x) -15) 15)
(+.f64 (+.f64 (*.f64 2 x) 17) -17)
(*.f64 2 x)
(*.f64 x 2)
(*.f64 (*.f64 2 x) 1)
(*.f64 1 (*.f64 2 x))
(/.f64 (*.f64 2 x) 1)
(pow.f64 (*.f64 2 x) 1)
Outputs
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(+.f64 2 (+.f64 (*.f64 2 x) -2))
(*.f64 2 x)
(+.f64 (*.f64 2 x) 0)
(*.f64 2 x)
(+.f64 1 (+.f64 (*.f64 2 x) -1))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) 1) -1)
(*.f64 2 x)
(+.f64 0 (*.f64 2 x))
(*.f64 2 x)
(+.f64 -1 (+.f64 (*.f64 2 x) 1))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -1) 1)
(*.f64 2 x)
(+.f64 (+.f64 2 (*.f64 2 x)) -2)
(*.f64 2 x)
(+.f64 -2 (+.f64 2 (*.f64 2 x)))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -2) 2)
(*.f64 2 x)
(+.f64 3 (+.f64 (*.f64 2 x) -3))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) 3) -3)
(*.f64 2 x)
(+.f64 -3 (+.f64 (*.f64 2 x) 3))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -3) 3)
(*.f64 2 x)
(+.f64 -4 (+.f64 (*.f64 2 x) 4))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -4) 4)
(*.f64 2 x)
(+.f64 4 (+.f64 (*.f64 2 x) -4))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) 4) -4)
(*.f64 2 x)
(+.f64 5 (+.f64 (*.f64 2 x) -5))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) 5) -5)
(*.f64 2 x)
(+.f64 6 (+.f64 (*.f64 2 x) -6))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) 6) -6)
(*.f64 2 x)
(+.f64 7 (+.f64 (*.f64 2 x) -7))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) 7) -7)
(*.f64 2 x)
(+.f64 -5 (+.f64 (*.f64 2 x) 5))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -5) 5)
(*.f64 2 x)
(+.f64 -6 (+.f64 (*.f64 2 x) 6))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -6) 6)
(*.f64 2 x)
(+.f64 -7 (+.f64 (*.f64 2 x) 7))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -7) 7)
(*.f64 2 x)
(+.f64 -8 (+.f64 (*.f64 2 x) 8))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -8) 8)
(*.f64 2 x)
(+.f64 8 (+.f64 (*.f64 2 x) -8))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) 8) -8)
(*.f64 2 x)
(+.f64 9 (+.f64 (*.f64 2 x) -9))
(*.f64 2 x)
(+.f64 -9 (+.f64 (*.f64 2 x) 9))
(*.f64 2 x)
(+.f64 10 (+.f64 (*.f64 2 x) -10))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) 10) -10)
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -9) 9)
(*.f64 2 x)
(+.f64 -10 (+.f64 (*.f64 2 x) 10))
(*.f64 2 x)
(+.f64 -11 (+.f64 (*.f64 2 x) 11))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -11) 11)
(*.f64 2 x)
(+.f64 -12 (+.f64 (*.f64 2 x) 12))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -12) 12)
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -10) 10)
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) 9) -9)
(*.f64 2 x)
(+.f64 11 (+.f64 (*.f64 2 x) -11))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) 11) -11)
(*.f64 2 x)
(+.f64 12 (+.f64 (*.f64 2 x) -12))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) 12) -12)
(*.f64 2 x)
(+.f64 13 (+.f64 (*.f64 2 x) -13))
(*.f64 2 x)
(+.f64 14 (+.f64 (*.f64 2 x) -14))
(*.f64 2 x)
(+.f64 15 (+.f64 (*.f64 2 x) -15))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) 15) -15)
(*.f64 2 x)
(+.f64 16 (+.f64 (*.f64 2 x) -16))
(*.f64 2 x)
(+.f64 -13 (+.f64 (*.f64 2 x) 13))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -13) 13)
(*.f64 2 x)
(+.f64 -14 (+.f64 (*.f64 2 x) 14))
(*.f64 2 x)
(+.f64 -15 (+.f64 (*.f64 2 x) 15))
(*.f64 2 x)
(+.f64 -16 (+.f64 (*.f64 2 x) 16))
(*.f64 2 x)
(+.f64 17 (+.f64 (*.f64 2 x) -17))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) 13) -13)
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) 16) -16)
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) 14) -14)
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -14) 14)
(*.f64 2 x)
(+.f64 -17 (+.f64 (*.f64 2 x) 17))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -17) 17)
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -16) 16)
(*.f64 2 x)
(+.f64 -18 (+.f64 (*.f64 2 x) 18))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -18) 18)
(*.f64 2 x)
(+.f64 18 (+.f64 (*.f64 2 x) -18))
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) 18) -18)
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) -15) 15)
(*.f64 2 x)
(+.f64 (+.f64 (*.f64 2 x) 17) -17)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 x 2)
(*.f64 2 x)
(*.f64 (*.f64 2 x) 1)
(*.f64 2 x)
(*.f64 1 (*.f64 2 x))
(*.f64 2 x)
(/.f64 (*.f64 2 x) 1)
(*.f64 2 x)
(pow.f64 (*.f64 2 x) 1)
(*.f64 2 x)

eval15.0ms (0.6%)

Compiler

Compiled 653 to 547 computations (16.2% saved)

prune15.0ms (0.5%)

Pruning

6 alts after pruning (2 fresh and 4 done)

PrunedKeptTotal
New92294
Fresh000
Picked101
Done044
Total93699
Error
0.0b
Counts
99 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
38.2b
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
61.2b
(-.f64 1 1)
60.3b
(+.f64 (+.f64 (*.f64 2 x) 18) -18)
60.2b
(+.f64 (+.f64 (*.f64 2 x) 15) -15)
0.0b
(+.f64 (*.f64 2 x) (pow.f64 x 2))
22.2b
(*.f64 2 x)
Compiler

Compiled 42 to 35 computations (16.7% saved)

localize7.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
2.7b
(+.f64 (+.f64 (*.f64 2 x) 15) -15)
Compiler

Compiled 20 to 16 computations (20% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite197.0ms (7.3%)

Algorithm
batch-egg-rewrite
Rules
13558×rational_best-simplify-43
2006×rational_best-simplify-1
332×rational_best-4
332×rational_best-2
332×rational_best-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0919
1597
2847
31007
41227
51547
62147
73317
85807
97677
107997
117997
127997
1313227
1417297
1517997
1617997
1717997
1836027
1941277
2042207
2142207
2248357
2348357
2448357
2548357
Stop Event
node limit
Counts
1 → 7
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 2 x) 15) -15)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 2 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 x) 1)))))

simplify12.0ms (0.5%)

Algorithm
egg-herbie
Rules
10×rational_best-simplify-2
rational_best-simplify-5
rational_best-simplify-6
rational_best-simplify-4
exponential-simplify-11
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
013133
116133
224133
326133
Stop Event
saturated
Counts
19 → 7
Calls
Call 1
Inputs
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(-.f64 (*.f64 2 x) 0)
(*.f64 2 x)
(*.f64 x 2)
(*.f64 (*.f64 2 x) 1)
(*.f64 1 (*.f64 2 x))
(/.f64 (*.f64 2 x) 1)
(pow.f64 (*.f64 2 x) 1)
Outputs
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(-.f64 (*.f64 2 x) 0)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 x 2)
(*.f64 2 x)
(*.f64 (*.f64 2 x) 1)
(*.f64 2 x)
(*.f64 1 (*.f64 2 x))
(*.f64 2 x)
(/.f64 (*.f64 2 x) 1)
(*.f64 2 x)
(pow.f64 (*.f64 2 x) 1)
(*.f64 2 x)

localize7.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
2.8b
(+.f64 (+.f64 (*.f64 2 x) 18) -18)
Compiler

Compiled 20 to 16 computations (20% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite203.0ms (7.5%)

Algorithm
batch-egg-rewrite
Rules
13558×rational_best-simplify-43
2006×rational_best-simplify-1
332×rational_best-4
332×rational_best-2
332×rational_best-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0919
1597
2847
31007
41227
51547
62147
73317
85807
97677
107997
117997
127997
1313227
1417297
1517997
1617997
1717997
1836027
1941277
2042207
2142207
2248357
2348357
2448357
2548357
Stop Event
node limit
Counts
1 → 7
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 2 x) 18) -18)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 2 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 2 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 x) 1)))))

simplify12.0ms (0.5%)

Algorithm
egg-herbie
Rules
10×rational_best-simplify-2
rational_best-simplify-5
rational_best-simplify-6
rational_best-simplify-4
exponential-simplify-11
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
013133
116133
224133
326133
Stop Event
saturated
Counts
19 → 7
Calls
Call 1
Inputs
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(-.f64 (*.f64 2 x) 0)
(*.f64 2 x)
(*.f64 x 2)
(*.f64 (*.f64 2 x) 1)
(*.f64 1 (*.f64 2 x))
(/.f64 (*.f64 2 x) 1)
(pow.f64 (*.f64 2 x) 1)
Outputs
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 2 x)
(-.f64 (*.f64 2 x) 0)
(*.f64 2 x)
(*.f64 2 x)
(*.f64 x 2)
(*.f64 2 x)
(*.f64 (*.f64 2 x) 1)
(*.f64 2 x)
(*.f64 1 (*.f64 2 x))
(*.f64 2 x)
(/.f64 (*.f64 2 x) 1)
(*.f64 2 x)
(pow.f64 (*.f64 2 x) 1)
(*.f64 2 x)

eval2.0ms (0.1%)

Compiler

Compiled 63 to 49 computations (22.2% saved)

prune3.0ms (0.1%)

Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New14014
Fresh000
Picked011
Done055
Total14620
Error
0.0b
Counts
20 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
38.2b
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
61.2b
(-.f64 1 1)
60.3b
(+.f64 (+.f64 (*.f64 2 x) 18) -18)
60.2b
(+.f64 (+.f64 (*.f64 2 x) 15) -15)
0.0b
(+.f64 (*.f64 2 x) (pow.f64 x 2))
22.2b
(*.f64 2 x)
Compiler

Compiled 42 to 35 computations (16.7% saved)

regimes14.0ms (0.5%)

Counts
7 → 1
Calls
Call 1
Inputs
(*.f64 2 x)
(-.f64 1 1)
(+.f64 (+.f64 (*.f64 2 x) 15) -15)
(+.f64 (+.f64 (*.f64 2 x) 18) -18)
(-.f64 (+.f64 (*.f64 2 x) 1) 1)
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
Outputs
(+.f64 (*.f64 2 x) (pow.f64 x 2))
Calls

4 calls:

4.0ms
x
3.0ms
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
3.0ms
(+.f64 x 1)
2.0ms
(*.f64 (+.f64 x 1) (+.f64 x 1))
Results
ErrorSegmentsBranch
0.0b1x
0.0b1(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
0.0b1(*.f64 (+.f64 x 1) (+.f64 x 1))
0.0b1(+.f64 x 1)
Compiler

Compiled 68 to 54 computations (20.6% saved)

regimes28.0ms (1%)

Counts
6 → 3
Calls
Call 1
Inputs
(*.f64 2 x)
(-.f64 1 1)
(+.f64 (+.f64 (*.f64 2 x) 15) -15)
(+.f64 (+.f64 (*.f64 2 x) 18) -18)
(-.f64 (+.f64 (*.f64 2 x) 1) 1)
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
Outputs
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
(*.f64 2 x)
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
Calls

4 calls:

11.0ms
x
7.0ms
(+.f64 x 1)
4.0ms
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
4.0ms
(*.f64 (+.f64 x 1) (+.f64 x 1))
Results
ErrorSegmentsBranch
0.2b3x
0.2b2(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
0.2b2(*.f64 (+.f64 x 1) (+.f64 x 1))
0.2b3(+.f64 x 1)
Compiler

Compiled 61 to 49 computations (19.7% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.0000000000003428
1.0000001589638885
0.0ms
-2.1116772904995553
0.999999999985393
Compiler

Compiled 12 to 9 computations (25% saved)

regimes5.0ms (0.2%)

Accuracy

Total -39.2b remaining (-177%)

Threshold costs -39.2b (-177%)

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

1 calls:

4.0ms
x
Results
ErrorSegmentsBranch
22.2b1x
Compiler

Compiled 30 to 25 computations (16.7% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
020113
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(if (<=.f64 (+.f64 x 1) -2) (-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1) (if (<=.f64 (+.f64 x 1) 4503600077730459/4503599627370496) (*.f64 2 x) (-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)))
(*.f64 2 x)
Outputs
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(if (<=.f64 (+.f64 x 1) -2) (-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1) (if (<=.f64 (+.f64 x 1) 4503600077730459/4503599627370496) (*.f64 2 x) (-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)))
(*.f64 2 x)
Compiler

Compiled 46 to 36 computations (21.7% saved)

soundness0.0ms (0%)

end28.0ms (1%)

Compiler

Compiled 44 to 34 computations (22.7% saved)

Profiling

Loading profile data...