Details

Time bar (total: 4.4s)

analyze3.0ms (0.1%)

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
75%75%25%0%0%0%0%4
87.5%87.5%12.5%0%0%0%0%5
93.8%93.7%6.2%0%0%0%0%6
96.9%96.8%3.1%0%0%0%0%7
98.4%98.4%1.6%0%0%0%0%8
99.2%99.2%0.8%0%0%0%0%9
99.6%99.6%0.4%0%0%0%0%10
99.8%99.8%0.2%0%0%0%0%11
99.9%99.9%0.1%0%0%0%0%12
Compiler

Compiled 7 to 6 computations (14.3% saved)

sample2.2s (49.9%)

Results
2.2s8256×body256valid
Bogosity

preprocess10.0ms (0.2%)

Algorithm
egg-herbie
Rules
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
087
197
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(+.f64 x (/.f64 1 3))
Outputs
(+.f64 x (/.f64 1 3))
(+.f64 x 1/3)
Compiler

Compiled 7 to 6 computations (14.3% saved)

simplify15.0ms (0.3%)

Algorithm
egg-herbie
Rules
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
087
197
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 x (/.f64 1 3))
Outputs
(+.f64 x (/.f64 1 3))
(+.f64 x 1/3)

eval1.0ms (0%)

Compiler

Compiled 9 to 7 computations (22.2% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
0.0b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 x 1/3)
Compiler

Compiled 4 to 3 computations (25% saved)

localize2.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x 1/3)
Compiler

Compiled 6 to 4 computations (33.3% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite254.0ms (5.8%)

Algorithm
batch-egg-rewrite
Rules
2644×rational.json-simplify-35
2380×rational.json-simplify-2
1438×rational.json-simplify-1
1180×exponential.json-3
1180×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
1337
2787
31587
42887
56197
615147
730507
844737
952217
1062107
1168157
1268157
1378027
1478137
Stop Event
node limit
Counts
1 → 25
Calls
Call 1
Inputs
(+.f64 x 1/3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x 1/3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x 1/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x 1/3) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x 2/3)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x 1/3) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x 1/3) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x 1/3) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 x (+.f64 x 2/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x 1/3) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x 1/3) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x 1/3) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 x 1/3) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x 1/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x 2/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x 1/3) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x 1/3) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x 1/3) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x 1/3) 1)))))

simplify725.0ms (16.6%)

Algorithm
egg-herbie
Rules
3884×rational.json-simplify-41
1784×rational.json-simplify-2
1760×rational.json-simplify-35
1752×rational.json-simplify-51
538×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
060241
1132241
2395241
31309241
42390241
52896241
62964241
73010241
83045241
93079241
104043241
114118241
124154241
134188241
144218241
154248241
164768241
174803241
184838241
194868241
207647241
217694241
227748241
237792241
247828241
257862241
267893241
277923241
287953241
297983241
Stop Event
node limit
Counts
37 → 28
Calls
Call 1
Inputs
1/3
(+.f64 1/3 x)
(+.f64 1/3 x)
(+.f64 1/3 x)
x
(+.f64 1/3 x)
(+.f64 1/3 x)
(+.f64 1/3 x)
x
(+.f64 1/3 x)
(+.f64 1/3 x)
(+.f64 1/3 x)
(-.f64 (+.f64 x 1/3) 0)
(*.f64 (+.f64 x 1/3) 1)
(*.f64 1 (+.f64 x 1/3))
(*.f64 2 (*.f64 (+.f64 x 1/3) 1/2))
(*.f64 (+.f64 x (+.f64 x 2/3)) 1/2)
(*.f64 4 (*.f64 (+.f64 x 1/3) 1/4))
(*.f64 (*.f64 (+.f64 x 1/3) 4) 1/4)
(*.f64 (*.f64 (+.f64 x 1/3) 8) 1/8)
(*.f64 1/2 (+.f64 x (+.f64 x 2/3)))
(*.f64 (*.f64 (+.f64 x 1/3) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 x 1/3) 4))
(*.f64 (*.f64 (+.f64 x 1/3) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 x 1/3) 8))
(/.f64 (+.f64 x 1/3) 1)
(/.f64 (+.f64 x (+.f64 x 2/3)) 2)
(/.f64 (*.f64 (+.f64 x 1/3) 4) 4)
(/.f64 (*.f64 (+.f64 x 1/3) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x 1/3) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8))))))) 512)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8)))))))) 1024)
(pow.f64 (+.f64 x 1/3) 1)
Outputs
1/3
(+.f64 1/3 x)
(+.f64 1/3 x)
(+.f64 1/3 x)
x
(+.f64 1/3 x)
(+.f64 1/3 x)
(+.f64 1/3 x)
x
(+.f64 1/3 x)
(+.f64 1/3 x)
(+.f64 1/3 x)
(-.f64 (+.f64 x 1/3) 0)
(+.f64 1/3 x)
(*.f64 (+.f64 x 1/3) 1)
(+.f64 1/3 x)
(*.f64 1 (+.f64 x 1/3))
(+.f64 1/3 x)
(*.f64 2 (*.f64 (+.f64 x 1/3) 1/2))
(+.f64 1/3 x)
(*.f64 (+.f64 x (+.f64 x 2/3)) 1/2)
(+.f64 1/3 x)
(*.f64 4 (*.f64 (+.f64 x 1/3) 1/4))
(+.f64 1/3 x)
(*.f64 (*.f64 (+.f64 x 1/3) 4) 1/4)
(+.f64 1/3 x)
(*.f64 (*.f64 (+.f64 x 1/3) 8) 1/8)
(+.f64 1/3 x)
(*.f64 1/2 (+.f64 x (+.f64 x 2/3)))
(+.f64 1/3 x)
(*.f64 (*.f64 (+.f64 x 1/3) 1/2) 2)
(+.f64 1/3 x)
(*.f64 1/4 (*.f64 (+.f64 x 1/3) 4))
(+.f64 1/3 x)
(*.f64 (*.f64 (+.f64 x 1/3) 1/4) 4)
(+.f64 1/3 x)
(*.f64 1/8 (*.f64 (+.f64 x 1/3) 8))
(+.f64 1/3 x)
(/.f64 (+.f64 x 1/3) 1)
(+.f64 1/3 x)
(/.f64 (+.f64 x (+.f64 x 2/3)) 2)
(+.f64 1/3 x)
(/.f64 (*.f64 (+.f64 x 1/3) 4) 4)
(+.f64 1/3 x)
(/.f64 (*.f64 (+.f64 x 1/3) 8) 8)
(+.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 (+.f64 x 1/3) 8)) 16)
(+.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8))) 32)
(+.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8)))) 64)
(+.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8))))) 128)
(+.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8)))))) 256)
(+.f64 1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8))))))) 512)
(+.f64 1/3 x)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1/3) 8)))))))) 1024)
(+.f64 1/3 x)
(pow.f64 (+.f64 x 1/3) 1)
(+.f64 1/3 x)

eval5.0ms (0.1%)

Compiler

Compiled 243 to 212 computations (12.8% saved)

prune4.0ms (0.1%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New25328
Fresh000
Picked011
Done000
Total25429
Error
0.0b
Counts
29 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(/.f64 (+.f64 x (+.f64 x 2/3)) 2)
0.0b
(+.f64 x 1/3)
29.0b
x
33.5b
1/3
Compiler

Compiled 16 to 12 computations (25% saved)

localize45.0ms (1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x 2/3)
0.0b
(+.f64 x (+.f64 x 2/3))
Compiler

Compiled 19 to 13 computations (31.6% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(+.f64 x (+.f64 x 2/3))
0.0ms
x
@inf
(+.f64 x (+.f64 x 2/3))
0.0ms
x
@-inf
(+.f64 x (+.f64 x 2/3))
0.0ms
x
@0
(+.f64 x 2/3)
0.0ms
x
@inf
(+.f64 x 2/3)

rewrite335.0ms (7.7%)

Algorithm
batch-egg-rewrite
Rules
3382×rational.json-simplify-35
1816×rational.json-simplify-2
1378×rational.json-simplify-1
1158×exponential.json-3
1158×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0620
14020
29020
318620
436720
587420
6194820
7303720
8376020
9446920
10519020
11557320
12557320
13605120
14624020
15670420
16755120
17799720
Stop Event
node limit
Counts
2 → 52
Calls
Call 1
Inputs
(+.f64 x (+.f64 x 2/3))
(+.f64 x 2/3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (+.f64 x 2/3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x 2/3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (+.f64 x 2/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2/3 (+.f64 2/3 (*.f64 x 4))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x (+.f64 x 2/3)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 2/3 (+.f64 2/3 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (+.f64 x 2/3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 x (+.f64 x 2/3)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x 2/3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 2/3 (+.f64 2/3 (*.f64 x 4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8))))))))) 2048)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (+.f64 x 2/3)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x 2/3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x 2/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x 2/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x 2/3) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x 4/3)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x 2/3) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x 2/3) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x 2/3) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 x (+.f64 x 4/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x 2/3) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x 2/3) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x 2/3) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 x 2/3) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x 2/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x 4/3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x 2/3) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x 2/3) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x 2/3) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8))))))))) 2048)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x 2/3) 1)))))

simplify680.0ms (15.6%)

Algorithm
egg-herbie
Rules
4728×rational.json-simplify-51
3550×rational.json-simplify-2
2326×rational.json-simplify-35
1510×rational.json-simplify-1
566×rational.json-simplify-41
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0108754
1247736
2732736
31682736
43322736
54121736
64185736
74233736
84281736
94329736
104377736
114456736
124504736
134552736
144600736
154648736
164696736
174744736
184792736
194840736
207242736
217323736
227375736
237377736
247377736
257421736
267465736
Stop Event
node limit
Counts
76 → 62
Calls
Call 1
Inputs
2/3
(+.f64 (*.f64 2 x) 2/3)
(+.f64 (*.f64 2 x) 2/3)
(+.f64 (*.f64 2 x) 2/3)
(*.f64 2 x)
(+.f64 2/3 (*.f64 2 x))
(+.f64 2/3 (*.f64 2 x))
(+.f64 2/3 (*.f64 2 x))
(*.f64 2 x)
(+.f64 2/3 (*.f64 2 x))
(+.f64 2/3 (*.f64 2 x))
(+.f64 2/3 (*.f64 2 x))
2/3
(+.f64 2/3 x)
(+.f64 2/3 x)
(+.f64 2/3 x)
x
(+.f64 2/3 x)
(+.f64 2/3 x)
(+.f64 2/3 x)
x
(+.f64 2/3 x)
(+.f64 2/3 x)
(+.f64 2/3 x)
(-.f64 (+.f64 x (+.f64 x 2/3)) 0)
(*.f64 (+.f64 x (+.f64 x 2/3)) 1)
(*.f64 1 (+.f64 x (+.f64 x 2/3)))
(*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 1/2))
(*.f64 (+.f64 2/3 (+.f64 2/3 (*.f64 x 4))) 1/2)
(*.f64 4 (*.f64 (+.f64 x (+.f64 x 2/3)) 1/4))
(*.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 4) 1/4)
(*.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 8) 1/8)
(*.f64 1/2 (+.f64 2/3 (+.f64 2/3 (*.f64 x 4))))
(*.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 x 2/3)) 4))
(*.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 x (+.f64 x 2/3)) 8))
(/.f64 (+.f64 x (+.f64 x 2/3)) 1)
(/.f64 (+.f64 2/3 (+.f64 2/3 (*.f64 x 4))) 2)
(/.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 4) 4)
(/.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8))))))) 512)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8)))))))) 1024)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8))))))))) 2048)
(pow.f64 (+.f64 x (+.f64 x 2/3)) 1)
(-.f64 (+.f64 x 2/3) 0)
(*.f64 (+.f64 x 2/3) 1)
(*.f64 1 (+.f64 x 2/3))
(*.f64 2 (*.f64 (+.f64 x 2/3) 1/2))
(*.f64 (+.f64 x (+.f64 x 4/3)) 1/2)
(*.f64 4 (*.f64 (+.f64 x 2/3) 1/4))
(*.f64 (*.f64 (+.f64 x 2/3) 4) 1/4)
(*.f64 (*.f64 (+.f64 x 2/3) 8) 1/8)
(*.f64 1/2 (+.f64 x (+.f64 x 4/3)))
(*.f64 (*.f64 (+.f64 x 2/3) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 x 2/3) 4))
(*.f64 (*.f64 (+.f64 x 2/3) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 x 2/3) 8))
(/.f64 (+.f64 x 2/3) 1)
(/.f64 (+.f64 x (+.f64 x 4/3)) 2)
(/.f64 (*.f64 (+.f64 x 2/3) 4) 4)
(/.f64 (*.f64 (+.f64 x 2/3) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x 2/3) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8))))))) 512)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8)))))))) 1024)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8))))))))) 2048)
(pow.f64 (+.f64 x 2/3) 1)
Outputs
2/3
(+.f64 (*.f64 2 x) 2/3)
(+.f64 2/3 (*.f64 2 x))
(+.f64 (*.f64 2 x) 2/3)
(+.f64 2/3 (*.f64 2 x))
(+.f64 (*.f64 2 x) 2/3)
(+.f64 2/3 (*.f64 2 x))
(*.f64 2 x)
(+.f64 2/3 (*.f64 2 x))
(+.f64 2/3 (*.f64 2 x))
(+.f64 2/3 (*.f64 2 x))
(*.f64 2 x)
(+.f64 2/3 (*.f64 2 x))
(+.f64 2/3 (*.f64 2 x))
(+.f64 2/3 (*.f64 2 x))
2/3
(+.f64 2/3 x)
(+.f64 2/3 x)
(+.f64 2/3 x)
x
(+.f64 2/3 x)
(+.f64 2/3 x)
(+.f64 2/3 x)
x
(+.f64 2/3 x)
(+.f64 2/3 x)
(+.f64 2/3 x)
(-.f64 (+.f64 x (+.f64 x 2/3)) 0)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(*.f64 (+.f64 x (+.f64 x 2/3)) 1)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(*.f64 1 (+.f64 x (+.f64 x 2/3)))
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 1/2))
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(*.f64 (+.f64 2/3 (+.f64 2/3 (*.f64 x 4))) 1/2)
(*.f64 1/2 (+.f64 2/3 (+.f64 2/3 (*.f64 x 4))))
(*.f64 1/2 (+.f64 (*.f64 x 4) 4/3))
(*.f64 4 (*.f64 (+.f64 x (+.f64 x 2/3)) 1/4))
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(*.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 4) 1/4)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(*.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 8) 1/8)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(*.f64 1/2 (+.f64 2/3 (+.f64 2/3 (*.f64 x 4))))
(*.f64 1/2 (+.f64 (*.f64 x 4) 4/3))
(*.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 1/2) 2)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 x 2/3)) 4))
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(*.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 1/4) 4)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(*.f64 1/8 (*.f64 (+.f64 x (+.f64 x 2/3)) 8))
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(/.f64 (+.f64 x (+.f64 x 2/3)) 1)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(/.f64 (+.f64 2/3 (+.f64 2/3 (*.f64 x 4))) 2)
(/.f64 (+.f64 (*.f64 x 4) 4/3) 2)
(/.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 4) 4)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(/.f64 (*.f64 (+.f64 x (+.f64 x 2/3)) 8) 8)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8)) 16)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8))) 32)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8)))) 64)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8))))) 128)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8)))))) 256)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8))))))) 512)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8)))))))) 1024)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 x 2/3)) 8))))))))) 2048)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(pow.f64 (+.f64 x (+.f64 x 2/3)) 1)
(+.f64 x (+.f64 2/3 x))
(+.f64 2/3 (+.f64 x x))
(-.f64 (+.f64 x 2/3) 0)
(+.f64 2/3 x)
(*.f64 (+.f64 x 2/3) 1)
(+.f64 2/3 x)
(*.f64 1 (+.f64 x 2/3))
(+.f64 2/3 x)
(*.f64 2 (*.f64 (+.f64 x 2/3) 1/2))
(+.f64 2/3 x)
(*.f64 (+.f64 x (+.f64 x 4/3)) 1/2)
(+.f64 2/3 x)
(*.f64 4 (*.f64 (+.f64 x 2/3) 1/4))
(+.f64 2/3 x)
(*.f64 (*.f64 (+.f64 x 2/3) 4) 1/4)
(+.f64 2/3 x)
(*.f64 (*.f64 (+.f64 x 2/3) 8) 1/8)
(+.f64 2/3 x)
(*.f64 1/2 (+.f64 x (+.f64 x 4/3)))
(+.f64 2/3 x)
(*.f64 (*.f64 (+.f64 x 2/3) 1/2) 2)
(+.f64 2/3 x)
(*.f64 1/4 (*.f64 (+.f64 x 2/3) 4))
(+.f64 2/3 x)
(*.f64 (*.f64 (+.f64 x 2/3) 1/4) 4)
(+.f64 2/3 x)
(*.f64 1/8 (*.f64 (+.f64 x 2/3) 8))
(+.f64 2/3 x)
(/.f64 (+.f64 x 2/3) 1)
(+.f64 2/3 x)
(/.f64 (+.f64 x (+.f64 x 4/3)) 2)
(+.f64 2/3 x)
(/.f64 (*.f64 (+.f64 x 2/3) 4) 4)
(+.f64 2/3 x)
(/.f64 (*.f64 (+.f64 x 2/3) 8) 8)
(+.f64 2/3 x)
(/.f64 (*.f64 2 (*.f64 (+.f64 x 2/3) 8)) 16)
(+.f64 2/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8))) 32)
(+.f64 2/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8)))) 64)
(+.f64 2/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8))))) 128)
(+.f64 2/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8)))))) 256)
(+.f64 2/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8))))))) 512)
(+.f64 2/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8)))))))) 1024)
(+.f64 2/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 2/3) 8))))))))) 2048)
(+.f64 2/3 x)
(pow.f64 (+.f64 x 2/3) 1)
(+.f64 2/3 x)

eval16.0ms (0.4%)

Compiler

Compiled 763 to 645 computations (15.5% saved)

prune10.0ms (0.2%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New62062
Fresh022
Picked011
Done011
Total62466
Error
0.0b
Counts
66 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(/.f64 (+.f64 x (+.f64 x 2/3)) 2)
0.0b
(+.f64 x 1/3)
29.0b
x
33.5b
1/3
Compiler

Compiled 16 to 12 computations (25% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune1.0ms (0%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New000
Fresh022
Picked000
Done022
Total044
Error
0.0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(/.f64 (+.f64 x (+.f64 x 2/3)) 2)
0.0b
(+.f64 x 1/3)
29.0b
x
33.5b
1/3
Compiler

Compiled 16 to 12 computations (25% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New000
Fresh022
Picked000
Done022
Total044
Error
0.0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(/.f64 (+.f64 x (+.f64 x 2/3)) 2)
0.0b
(+.f64 x 1/3)
29.0b
x
33.5b
1/3
Compiler

Compiled 16 to 12 computations (25% saved)

regimes8.0ms (0.2%)

Counts
5 → 1
Calls
Call 1
Inputs
1/3
x
(+.f64 x 1/3)
(+.f64 x (/.f64 1 3))
(/.f64 (+.f64 x (+.f64 x 2/3)) 2)
Outputs
(+.f64 x 1/3)
Calls

2 calls:

4.0ms
x
3.0ms
(+.f64 x (/.f64 1 3))
Results
ErrorSegmentsBranch
0.0b1x
0.0b1(+.f64 x (/.f64 1 3))
Compiler

Compiled 26 to 19 computations (26.9% saved)

regimes10.0ms (0.2%)

Accuracy

Total -61.1b remaining (-8383.6%)

Threshold costs -61.1b (-8383.6%)

Counts
2 → 3
Calls
Call 1
Inputs
1/3
x
Outputs
x
1/3
x
Calls

1 calls:

9.0ms
x
Results
ErrorSegmentsBranch
0.7b3x
Compiler

Compiled 5 to 3 computations (40% saved)

bsearch29.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
0.19673387342201387
1620788.3693265412
16.0ms
-1.0302113462607298e+24
-2.2277221623966724e-8
Results
25.0ms320×body256valid
Compiler

Compiled 130 to 108 computations (16.9% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01429
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 x 1/3)
(if (<=.f64 x -6124895493223875/18014398509481984) x (if (<=.f64 x 5944751508129055/18014398509481984) 1/3 x))
1/3
Outputs
(+.f64 x 1/3)
(if (<=.f64 x -6124895493223875/18014398509481984) x (if (<=.f64 x 5944751508129055/18014398509481984) 1/3 x))
1/3
Compiler

Compiled 18 to 13 computations (27.8% saved)

soundness9.0ms (0.2%)

Algorithm
egg-herbie
Rules
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
087
197
Stop Event
saturated
Compiler

Compiled 9 to 7 computations (22.2% saved)

end19.0ms (0.4%)

Compiler

Compiled 16 to 11 computations (31.3% saved)

Profiling

Loading profile data...