Details

Time bar (total: 6.2s)

analyze3.0ms (0%)

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.4s (39.3%)

Results
2.4s8256×body256valid
Bogosity

preprocess9.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
087
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)

simplify11.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
087
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)

eval0.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%)

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 → 3
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)

rewrite671.0ms (10.8%)

Algorithm
batch-egg-rewrite
Rules
3666×rational.json-simplify-35
1902×rational.json-simplify-2
1186×rational.json-simplify-1
1166×exponential.json-3
1166×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
1327
2767
31557
42697
55617
612887
725747
837247
943377
1051047
1155357
1255357
1359967
1459967
1565717
1674417
Stop Event
node limit
Counts
1 → 33
Calls
Call 1
Inputs
(-.f64 x 1/3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x -1/3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 x -1/3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1/3 x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -1/3) 1/2) (*.f64 (+.f64 x -1/3) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 1/2) (+.f64 -1/3 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 -1/3 (*.f64 x 1/2)) (*.f64 x 1/2))))) (#(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 2 (*.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 /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -1/3) 8))))))))) 2048)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.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 2 (*.f64 2 (*.f64 (+.f64 x -1/3) 8)))))))))) 4096)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x -1/3) 1)))))

simplify292.0ms (4.7%)

Algorithm
egg-herbie
Rules
4790×rational.json-simplify-41
2548×rational.json-simplify-51
1530×rational.json-simplify-35
1080×rational.json-simplify-2
586×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
072234
1161234
2442234
31505234
42967234
53707234
63778234
73821234
83857234
93893234
103929234
113965234
124001234
134037234
144073234
154109234
164145234
174181234
184217234
194253234
Stop Event
node limit
Counts
36 → 35
Calls
Call 1
Inputs
-1/3
x
x
(+.f64 x -1/3)
(+.f64 (+.f64 x -1/3) 0)
(+.f64 0 (+.f64 x -1/3))
(+.f64 -1/3 x)
(+.f64 (*.f64 (+.f64 x -1/3) 1/2) (*.f64 (+.f64 x -1/3) 1/2))
(+.f64 (*.f64 x 1/2) (+.f64 -1/3 (*.f64 x 1/2)))
(+.f64 (+.f64 -1/3 (*.f64 x 1/2)) (*.f64 x 1/2))
(*.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 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -1/3) 8)))))))) 1024)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -1/3) 8))))))))) 2048)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.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 2 (*.f64 2 (*.f64 (+.f64 x -1/3) 8)))))))))) 4096)
(pow.f64 (+.f64 x -1/3) 1)
Outputs
-1/3
x
x
(+.f64 x -1/3)
(+.f64 -1/3 x)
(+.f64 (+.f64 x -1/3) 0)
(+.f64 -1/3 x)
(+.f64 0 (+.f64 x -1/3))
(+.f64 -1/3 x)
(+.f64 -1/3 x)
(+.f64 (*.f64 (+.f64 x -1/3) 1/2) (*.f64 (+.f64 x -1/3) 1/2))
(+.f64 -1/3 x)
(+.f64 (*.f64 x 1/2) (+.f64 -1/3 (*.f64 x 1/2)))
(+.f64 -1/3 x)
(+.f64 (+.f64 -1/3 (*.f64 x 1/2)) (*.f64 x 1/2))
(+.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 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -1/3) 8)))))))) 1024)
(+.f64 -1/3 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -1/3) 8))))))))) 2048)
(+.f64 -1/3 x)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.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 2 (*.f64 2 (*.f64 (+.f64 x -1/3) 8)))))))))) 4096)
(+.f64 -1/3 x)
(pow.f64 (+.f64 x -1/3) 1)
(+.f64 -1/3 x)

eval7.0ms (0.1%)

Compiler

Compiled 332 to 291 computations (12.3% saved)

prune5.0ms (0.1%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New32335
Fresh000
Picked011
Done000
Total32436
Error
0.0b
Counts
36 → 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)
31.2b
x
32.0b
-1/3
Compiler

Compiled 16 to 12 computations (25% saved)

localize630.0ms (10.2%)

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)

rewrite322.0ms (5.2%)

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)))))

simplify635.0ms (10.2%)

Algorithm
egg-herbie
Rules
4770×rational.json-simplify-51
3548×rational.json-simplify-2
2350×rational.json-simplify-35
1514×rational.json-simplify-1
564×rational.json-simplify-41
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0108754
1248736
2734736
31689736
43340736
54144736
64208736
74256736
84304736
94352736
104400736
114479736
124527736
134575736
144623736
154671736
164719736
174767736
184815736
194863736
207302736
217383736
227435736
237437736
247437736
257481736
267525736
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 (*.f64 2 x) 2/3)
(-.f64 (*.f64 2 x) 2/3)
(-.f64 (*.f64 2 x) 2/3)
(*.f64 2 x)
(-.f64 (*.f64 2 x) 2/3)
(-.f64 (*.f64 2 x) 2/3)
(-.f64 (*.f64 2 x) 2/3)
-2/3
(-.f64 x 2/3)
(-.f64 x 2/3)
(-.f64 x 2/3)
x
(-.f64 x 2/3)
(-.f64 x 2/3)
(-.f64 x 2/3)
x
(-.f64 x 2/3)
(-.f64 x 2/3)
(-.f64 x 2/3)
(-.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 (*.f64 2 x) 2/3)
(-.f64 (*.f64 2 x) 2/3)
(*.f64 2 x)
(-.f64 (*.f64 2 x) 2/3)
(-.f64 (*.f64 2 x) 2/3)
(-.f64 (*.f64 2 x) 2/3)
(*.f64 2 x)
(-.f64 (*.f64 2 x) 2/3)
(-.f64 (*.f64 2 x) 2/3)
(-.f64 (*.f64 2 x) 2/3)
-2/3
(-.f64 x 2/3)
(-.f64 x 2/3)
(-.f64 x 2/3)
x
(-.f64 x 2/3)
(-.f64 x 2/3)
(-.f64 x 2/3)
x
(-.f64 x 2/3)
(-.f64 x 2/3)
(-.f64 x 2/3)
(-.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.3%)

Compiler

Compiled 763 to 644 computations (15.6% saved)

prune8.0ms (0.1%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New61162
Fresh022
Picked011
Done011
Total61566
Error
0b
Counts
66 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(/.f64 (/.f64 (+.f64 -2/3 (+.f64 -2/3 (*.f64 x 4))) 2) 2)
0.0b
(/.f64 (+.f64 x (+.f64 x -2/3)) 2)
0.0b
(-.f64 x 1/3)
31.2b
x
32.0b
-1/3
Compiler

Compiled 28 to 23 computations (17.9% saved)

localize16.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 40 to 34 computations (15% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite269.0ms (4.3%)

Algorithm
batch-egg-rewrite
Rules
3742×rational.json-simplify-35
1742×rational.json-simplify-2
1140×exponential.json-3
1140×rational.json-1
1140×rational.json-2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0832
15326
211026
322426
443126
599826
6229326
7345426
8415526
9495026
10538126
11538126
12585626
13599826
14644626
15732526
Stop Event
node limit
Counts
2 → 52
Calls
Call 1
Inputs
(+.f64 -2/3 (+.f64 -2/3 (*.f64 x 4)))
(+.f64 -2/3 (*.f64 x 4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x 4) -4/3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 x 4) -4/3) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 4) -4/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x 4) -4/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 -2/3 (*.f64 x 8)) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (+.f64 (*.f64 x 4) -4/3)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 -2/3 (*.f64 x 8)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x 4) -4/3) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 4 (+.f64 (*.f64 x 4) -4/3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x 4) -4/3) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x 4) -4/3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (+.f64 -2/3 (*.f64 x 8)) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 (*.f64 x 4) -4/3)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/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 (*.f64 x 4) -4/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 (*.f64 x 4) -4/3) 8)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8)))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8))))))))) 2048)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 x 4) -4/3) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 -2/3 (*.f64 x 4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -2/3 (*.f64 x 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 -2/3 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 8) -4/3) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (+.f64 -2/3 (*.f64 x 4))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x 8) -4/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 4 (+.f64 -2/3 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -2/3 (*.f64 x 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x 8) -4/3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 -2/3 (*.f64 x 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 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 -2/3 (*.f64 x 4)) 8)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8)))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8))))))))) 2048)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 -2/3 (*.f64 x 4)) 1)))))

simplify754.0ms (12.1%)

Algorithm
egg-herbie
Rules
3718×rational.json-simplify-51
3402×rational.json-simplify-2
2402×rational.json-simplify-35
1178×rational.json-simplify-1
800×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0110940
1236940
2683940
31990940
43573940
54302940
64378940
74433940
84481940
94529940
104577940
114661940
124709940
134757940
144805940
154853940
164901940
174949940
184997940
195045940
206837940
216902940
226902940
236902940
246950940
256998940
267046940
277094940
287142940
Stop Event
node limit
Counts
76 → 59
Calls
Call 1
Inputs
-4/3
(-.f64 (*.f64 4 x) 4/3)
(-.f64 (*.f64 4 x) 4/3)
(-.f64 (*.f64 4 x) 4/3)
(*.f64 4 x)
(-.f64 (*.f64 4 x) 4/3)
(-.f64 (*.f64 4 x) 4/3)
(-.f64 (*.f64 4 x) 4/3)
(*.f64 4 x)
(-.f64 (*.f64 4 x) 4/3)
(-.f64 (*.f64 4 x) 4/3)
(-.f64 (*.f64 4 x) 4/3)
-2/3
(-.f64 (*.f64 4 x) 2/3)
(-.f64 (*.f64 4 x) 2/3)
(-.f64 (*.f64 4 x) 2/3)
(*.f64 4 x)
(-.f64 (*.f64 4 x) 2/3)
(-.f64 (*.f64 4 x) 2/3)
(-.f64 (*.f64 4 x) 2/3)
(*.f64 4 x)
(-.f64 (*.f64 4 x) 2/3)
(-.f64 (*.f64 4 x) 2/3)
(-.f64 (*.f64 4 x) 2/3)
(-.f64 (+.f64 (*.f64 x 4) -4/3) 0)
(*.f64 4 (*.f64 (+.f64 (*.f64 x 4) -4/3) 1/4))
(*.f64 (+.f64 (*.f64 x 4) -4/3) 1)
(*.f64 1 (+.f64 (*.f64 x 4) -4/3))
(*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 1/2))
(*.f64 (+.f64 (+.f64 -2/3 (*.f64 x 8)) -2) 1/2)
(*.f64 (*.f64 4 (+.f64 (*.f64 x 4) -4/3)) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8) 1/8)
(*.f64 1/2 (+.f64 (+.f64 -2/3 (*.f64 x 8)) -2))
(*.f64 (*.f64 (+.f64 (*.f64 x 4) -4/3) 1/2) 2)
(*.f64 1/4 (*.f64 4 (+.f64 (*.f64 x 4) -4/3)))
(*.f64 (*.f64 (+.f64 (*.f64 x 4) -4/3) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8))
(/.f64 (+.f64 (*.f64 x 4) -4/3) 1)
(/.f64 (+.f64 (+.f64 -2/3 (*.f64 x 8)) -2) 2)
(/.f64 (*.f64 4 (+.f64 (*.f64 x 4) -4/3)) 4)
(/.f64 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8))))))) 512)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8)))))))) 1024)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8)))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8))))))))) 2048)
(pow.f64 (+.f64 (*.f64 x 4) -4/3) 1)
(-.f64 (+.f64 -2/3 (*.f64 x 4)) 0)
(*.f64 4 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 1/4))
(*.f64 (+.f64 -2/3 (*.f64 x 4)) 1)
(*.f64 1 (+.f64 -2/3 (*.f64 x 4)))
(*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 1/2))
(*.f64 (+.f64 (*.f64 x 8) -4/3) 1/2)
(*.f64 (*.f64 4 (+.f64 -2/3 (*.f64 x 4))) 1/4)
(*.f64 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8) 1/8)
(*.f64 1/2 (+.f64 (*.f64 x 8) -4/3))
(*.f64 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 1/2) 2)
(*.f64 1/4 (*.f64 4 (+.f64 -2/3 (*.f64 x 4))))
(*.f64 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8))
(/.f64 (+.f64 -2/3 (*.f64 x 4)) 1)
(/.f64 (+.f64 (*.f64 x 8) -4/3) 2)
(/.f64 (*.f64 4 (+.f64 -2/3 (*.f64 x 4))) 4)
(/.f64 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8))))))) 512)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8)))))))) 1024)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8)))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8))))))))) 2048)
(pow.f64 (+.f64 -2/3 (*.f64 x 4)) 1)
Outputs
-4/3
(-.f64 (*.f64 4 x) 4/3)
(-.f64 (*.f64 4 x) 4/3)
(-.f64 (*.f64 4 x) 4/3)
(*.f64 4 x)
(-.f64 (*.f64 4 x) 4/3)
(-.f64 (*.f64 4 x) 4/3)
(-.f64 (*.f64 4 x) 4/3)
(*.f64 4 x)
(-.f64 (*.f64 4 x) 4/3)
(-.f64 (*.f64 4 x) 4/3)
(-.f64 (*.f64 4 x) 4/3)
-2/3
(-.f64 (*.f64 4 x) 2/3)
(-.f64 (*.f64 4 x) 2/3)
(-.f64 (*.f64 4 x) 2/3)
(*.f64 4 x)
(-.f64 (*.f64 4 x) 2/3)
(-.f64 (*.f64 4 x) 2/3)
(-.f64 (*.f64 4 x) 2/3)
(*.f64 4 x)
(-.f64 (*.f64 4 x) 2/3)
(-.f64 (*.f64 4 x) 2/3)
(-.f64 (*.f64 4 x) 2/3)
(-.f64 (+.f64 (*.f64 x 4) -4/3) 0)
(+.f64 -4/3 (*.f64 4 x))
(*.f64 4 (*.f64 (+.f64 (*.f64 x 4) -4/3) 1/4))
(+.f64 -4/3 (*.f64 4 x))
(*.f64 (+.f64 (*.f64 x 4) -4/3) 1)
(+.f64 -4/3 (*.f64 4 x))
(*.f64 1 (+.f64 (*.f64 x 4) -4/3))
(+.f64 -4/3 (*.f64 4 x))
(*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 1/2))
(+.f64 -4/3 (*.f64 4 x))
(*.f64 (+.f64 (+.f64 -2/3 (*.f64 x 8)) -2) 1/2)
(+.f64 -4/3 (*.f64 4 x))
(*.f64 (*.f64 4 (+.f64 (*.f64 x 4) -4/3)) 1/4)
(+.f64 -4/3 (*.f64 4 x))
(*.f64 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8) 1/8)
(+.f64 -4/3 (*.f64 4 x))
(*.f64 1/2 (+.f64 (+.f64 -2/3 (*.f64 x 8)) -2))
(+.f64 -4/3 (*.f64 4 x))
(*.f64 (*.f64 (+.f64 (*.f64 x 4) -4/3) 1/2) 2)
(+.f64 -4/3 (*.f64 4 x))
(*.f64 1/4 (*.f64 4 (+.f64 (*.f64 x 4) -4/3)))
(+.f64 -4/3 (*.f64 4 x))
(*.f64 (*.f64 (+.f64 (*.f64 x 4) -4/3) 1/4) 4)
(+.f64 -4/3 (*.f64 4 x))
(*.f64 1/8 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8))
(+.f64 -4/3 (*.f64 4 x))
(/.f64 (+.f64 (*.f64 x 4) -4/3) 1)
(+.f64 -4/3 (*.f64 4 x))
(/.f64 (+.f64 (+.f64 -2/3 (*.f64 x 8)) -2) 2)
(+.f64 -4/3 (*.f64 4 x))
(/.f64 (*.f64 4 (+.f64 (*.f64 x 4) -4/3)) 4)
(+.f64 -4/3 (*.f64 4 x))
(/.f64 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8) 8)
(+.f64 -4/3 (*.f64 4 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8)) 16)
(+.f64 -4/3 (*.f64 4 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8))) 32)
(+.f64 -4/3 (*.f64 4 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8)))) 64)
(+.f64 -4/3 (*.f64 4 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8))))) 128)
(+.f64 -4/3 (*.f64 4 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8)))))) 256)
(+.f64 -4/3 (*.f64 4 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8))))))) 512)
(+.f64 -4/3 (*.f64 4 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8)))))))) 1024)
(+.f64 -4/3 (*.f64 4 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8)))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x 4) -4/3) 8))))))))) 2048)
(+.f64 -4/3 (*.f64 4 x))
(pow.f64 (+.f64 (*.f64 x 4) -4/3) 1)
(+.f64 -4/3 (*.f64 4 x))
(-.f64 (+.f64 -2/3 (*.f64 x 4)) 0)
(+.f64 -2/3 (*.f64 4 x))
(*.f64 4 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 1/4))
(+.f64 -2/3 (*.f64 4 x))
(*.f64 (+.f64 -2/3 (*.f64 x 4)) 1)
(+.f64 -2/3 (*.f64 4 x))
(*.f64 1 (+.f64 -2/3 (*.f64 x 4)))
(+.f64 -2/3 (*.f64 4 x))
(*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 1/2))
(+.f64 -2/3 (*.f64 4 x))
(*.f64 (+.f64 (*.f64 x 8) -4/3) 1/2)
(+.f64 -2/3 (*.f64 4 x))
(*.f64 (*.f64 4 (+.f64 -2/3 (*.f64 x 4))) 1/4)
(+.f64 -2/3 (*.f64 4 x))
(*.f64 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8) 1/8)
(+.f64 -2/3 (*.f64 4 x))
(*.f64 1/2 (+.f64 (*.f64 x 8) -4/3))
(+.f64 -2/3 (*.f64 4 x))
(*.f64 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 1/2) 2)
(+.f64 -2/3 (*.f64 4 x))
(*.f64 1/4 (*.f64 4 (+.f64 -2/3 (*.f64 x 4))))
(+.f64 -2/3 (*.f64 4 x))
(*.f64 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 1/4) 4)
(+.f64 -2/3 (*.f64 4 x))
(*.f64 1/8 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8))
(+.f64 -2/3 (*.f64 4 x))
(/.f64 (+.f64 -2/3 (*.f64 x 4)) 1)
(+.f64 -2/3 (*.f64 4 x))
(/.f64 (+.f64 (*.f64 x 8) -4/3) 2)
(+.f64 -2/3 (*.f64 4 x))
(/.f64 (*.f64 4 (+.f64 -2/3 (*.f64 x 4))) 4)
(+.f64 -2/3 (*.f64 4 x))
(/.f64 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8) 8)
(+.f64 -2/3 (*.f64 4 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8)) 16)
(+.f64 -2/3 (*.f64 4 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8))) 32)
(+.f64 -2/3 (*.f64 4 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8)))) 64)
(+.f64 -2/3 (*.f64 4 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8))))) 128)
(+.f64 -2/3 (*.f64 4 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8)))))) 256)
(+.f64 -2/3 (*.f64 4 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8))))))) 512)
(+.f64 -2/3 (*.f64 4 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8)))))))) 1024)
(+.f64 -2/3 (*.f64 4 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8)))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -2/3 (*.f64 x 4)) 8))))))))) 2048)
(+.f64 -2/3 (*.f64 4 x))
(pow.f64 (+.f64 -2/3 (*.f64 x 4)) 1)
(+.f64 -2/3 (*.f64 4 x))

eval22.0ms (0.4%)

Compiler

Compiled 946 to 887 computations (6.2% saved)

prune8.0ms (0.1%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New59059
Fresh022
Picked011
Done022
Total59564
Error
0b
Counts
64 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(/.f64 (/.f64 (+.f64 -2/3 (+.f64 -2/3 (*.f64 x 4))) 2) 2)
0.0b
(/.f64 (+.f64 x (+.f64 x -2/3)) 2)
0.0b
(-.f64 x 1/3)
31.2b
x
32.0b
-1/3
Compiler

Compiled 28 to 23 computations (17.9% saved)

eval3.0ms (0.1%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New000
Fresh022
Picked000
Done033
Total055
Error
0b
Counts
5 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(/.f64 (/.f64 (+.f64 -2/3 (+.f64 -2/3 (*.f64 x 4))) 2) 2)
0.0b
(/.f64 (+.f64 x (+.f64 x -2/3)) 2)
0.0b
(-.f64 x 1/3)
31.2b
x
32.0b
-1/3
Compiler

Compiled 28 to 23 computations (17.9% saved)

regimes9.0ms (0.1%)

Counts
6 → 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)
(/.f64 (/.f64 (+.f64 -2/3 (+.f64 -2/3 (*.f64 x 4))) 2) 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 37 to 29 computations (21.6% saved)

regimes11.0ms (0.2%)

Accuracy

Total -60.3b remaining (-4212.8%)

Threshold costs -60.3b (-4212.8%)

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

1 calls:

10.0ms
x
Results
ErrorSegmentsBranch
1.4b3x
Compiler

Compiled 5 to 3 computations (40% saved)

bsearch23.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
1.0689930560069171e-7
27.434380967864094
11.0ms
-62.41347299000895
-0.001144453717381607
Results
20.0ms272×body256valid
Compiler

Compiled 112 to 93 computations (17% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 18 to 13 computations (27.8% saved)

soundness11.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
087
Stop Event
saturated
Compiler

Compiled 9 to 7 computations (22.2% saved)

end20.0ms (0.3%)

Compiler

Compiled 16 to 11 computations (31.3% saved)

Profiling

Loading profile data...