Details

Time bar (total: 8.8s)

analyze62.0ms (0.7%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
37.5%37.5%62.4%0.1%0%0%0%6
53.3%50%43.7%0.1%6.2%0%0%7
63.3%59.3%34.3%0.1%6.2%0%0%8
74.1%67.1%23.4%0.1%9.4%0%0%9
80.2%72.6%18%0.1%9.4%0%0%10
86.4%76.9%12.1%0.1%10.9%0%0%11
89.7%79.8%9.2%0.1%10.9%0%0%12
Compiler

Compiled 8 to 6 computations (25% saved)

sample627.0ms (7.1%)

Results
604.0ms8256×body256valid
10.0ms147×body256infinite
Bogosity

preprocess4.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0926
11326
21626
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 x (+.f64 y 1))
(*.f64 y (+.f64 x 1))
Outputs
(*.f64 x (+.f64 y 1))
(*.f64 y (+.f64 x 1))
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify10.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
1913
21113
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 x (+.f64 y 1))
Outputs
(*.f64 x (+.f64 y 1))

eval0.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 7 to 5 computations (28.6% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 8 computations (38.5% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite184.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
1672×rational.json-simplify-1
1502×rational.json-simplify-35
1372×exponential.json-3
1372×rational.json-1
1372×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15613
213013
324113
444113
593813
6238013
7416413
8523713
9676413
10759913
11759913
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 x (+.f64 y 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 y 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (+.f64 y 1) 1/2)) (*.f64 x (*.f64 (+.f64 y 1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 y 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 y 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 2 (+.f64 y y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 y 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 y 1) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 y 1)) 1)))))

simplify670.0ms (7.6%)

Algorithm
egg-herbie
Rules
3226×rational.json-simplify-2
2896×rational.json-simplify-35
1710×rational.json-simplify-53
1068×rational.json-simplify-1
874×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
049470
1131470
2246470
3521470
41839470
53590470
64156470
74347470
84534470
94672470
104790470
115737470
126702470
136805470
146845470
156857470
166876470
176884470
186908470
197013470
207116470
217219470
227322470
237735470
Stop Event
node limit
Counts
38 → 20
Calls
Call 1
Inputs
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
x
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 x (+.f64 y 1)) 0)
(+.f64 0 (*.f64 x (+.f64 y 1)))
(+.f64 (*.f64 x (*.f64 (+.f64 y 1) 1/2)) (*.f64 x (*.f64 (+.f64 y 1) 1/2)))
(-.f64 (*.f64 x (+.f64 y 1)) 0)
(/.f64 (*.f64 x (+.f64 y 1)) 1)
(/.f64 (*.f64 x (+.f64 2 (+.f64 y y))) 2)
(/.f64 (*.f64 x (*.f64 (+.f64 y 1) 4)) 4)
(/.f64 (*.f64 x (*.f64 (+.f64 y 1) 8)) 8)
(/.f64 (*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 8))))))) 256)
(pow.f64 (*.f64 x (+.f64 y 1)) 1)
Outputs
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
x
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 x (+.f64 y 1)) 0)
(*.f64 x (+.f64 1 y))
(+.f64 0 (*.f64 x (+.f64 y 1)))
(*.f64 x (+.f64 1 y))
(+.f64 (*.f64 x (*.f64 (+.f64 y 1) 1/2)) (*.f64 x (*.f64 (+.f64 y 1) 1/2)))
(*.f64 x (+.f64 1 y))
(-.f64 (*.f64 x (+.f64 y 1)) 0)
(*.f64 x (+.f64 1 y))
(/.f64 (*.f64 x (+.f64 y 1)) 1)
(*.f64 x (+.f64 1 y))
(/.f64 (*.f64 x (+.f64 2 (+.f64 y y))) 2)
(*.f64 x (+.f64 1 y))
(/.f64 (*.f64 x (*.f64 (+.f64 y 1) 4)) 4)
(*.f64 x (+.f64 1 y))
(/.f64 (*.f64 x (*.f64 (+.f64 y 1) 8)) 8)
(*.f64 x (+.f64 1 y))
(/.f64 (*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 8))) 16)
(*.f64 x (+.f64 1 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 8)))) 32)
(*.f64 x (+.f64 1 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 8))))) 64)
(*.f64 x (+.f64 1 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 8)))))) 128)
(*.f64 x (+.f64 1 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 8))))))) 256)
(*.f64 x (+.f64 1 y))
(pow.f64 (*.f64 x (+.f64 y 1)) 1)
(*.f64 x (+.f64 1 y))

eval4.0ms (0%)

Compiler

Compiled 178 to 132 computations (25.8% saved)

prune4.0ms (0%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New17320
Fresh000
Picked011
Done000
Total17421
Error
0b
Counts
21 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 y x) x)
35.7b
(*.f64 y x)
0.0b
(*.f64 x (+.f64 y 1))
27.0b
x
Compiler

Compiled 22 to 14 computations (36.4% saved)

localize4.0ms (0%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

localize4.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 12 to 4 computations (66.7% saved)

series2.0ms (0%)

Counts
1 → 15
Calls

6 calls:

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

rewrite189.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
1734×rational.json-simplify-1
1654×rational.json-simplify-35
1514×exponential.json-3
1514×rational.json-1
1514×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
14013
29413
320913
439713
590713
6246713
7468313
8558213
9693113
10799813
11799813
Stop Event
node limit
Counts
1 → 44
Calls
Call 1
Inputs
(+.f64 (*.f64 y x) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 y 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 2 (+.f64 y y))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (+.f64 y 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (+.f64 2 (+.f64 y y)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 x (/.f64 (+.f64 y 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 x 8) (+.f64 2 (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 (+.f64 y 1) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 (+.f64 y 1) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (/.f64 (+.f64 y 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 1/8 (+.f64 2 (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 x 8) (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (*.f64 1/2 (*.f64 x 1/4)) (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y 1) (*.f64 x 8)) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (+.f64 y y)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 8) (*.f64 1/8 (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (+.f64 2 (+.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 (+.f64 y 1) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 2 (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 x 8)) (*.f64 1/16 (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y 1) 4) (*.f64 x 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x (*.f64 (+.f64 y 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y 1) 1/2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (/.f64 (+.f64 y 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/4) (*.f64 (+.f64 y 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 y 1) (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y 1) 1/4) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 y 1) 4) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 y 1/2)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 2 (+.f64 y y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 y 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y 1) (*.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 y x)) 1)))))

simplify142.0ms (1.6%)

Algorithm
egg-herbie
Rules
1880×rational.json-simplify-35
1270×rational.json-simplify-51
1184×rational.json-simplify-41
1036×rational.json-simplify-2
770×rational.json-simplify-42
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0105767
1250767
2485767
3885767
41621767
54535767
65752767
76384767
86964767
97408767
Stop Event
node limit
Counts
59 → 49
Calls
Call 1
Inputs
x
(*.f64 y x)
(*.f64 y x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(-.f64 (+.f64 x (*.f64 y x)) 0)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 x (*.f64 y x)) 1)
(*.f64 1 (+.f64 x (*.f64 y x)))
(*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 1/2)))
(*.f64 (*.f64 x (+.f64 2 (+.f64 y y))) 1/2)
(*.f64 (+.f64 x x) (*.f64 (+.f64 y 1) 1/2))
(*.f64 (+.f64 x x) (*.f64 (+.f64 2 (+.f64 y y)) 1/4))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y 1/2)))
(*.f64 (+.f64 y 1) x)
(*.f64 4 (*.f64 x (/.f64 (+.f64 y 1) 4)))
(*.f64 4 (*.f64 (/.f64 x 8) (+.f64 2 (+.f64 y y))))
(*.f64 (*.f64 x (*.f64 (+.f64 y 1) 4)) 1/4)
(*.f64 (*.f64 x 4) (*.f64 (+.f64 y 1) 1/4))
(*.f64 (*.f64 x 4) (/.f64 (+.f64 y 1) 4))
(*.f64 (*.f64 x 4) (*.f64 1/8 (+.f64 2 (+.f64 y y))))
(*.f64 8 (*.f64 (/.f64 x 8) (+.f64 y 1)))
(*.f64 8 (*.f64 (*.f64 1/2 (*.f64 x 1/4)) (+.f64 y 1)))
(*.f64 (*.f64 (+.f64 y 1) (*.f64 x 8)) 1/8)
(*.f64 (+.f64 2 (+.f64 y y)) (*.f64 x 1/2))
(*.f64 (*.f64 x 8) (*.f64 1/8 (+.f64 y 1)))
(*.f64 1/2 (*.f64 x (+.f64 2 (+.f64 y y))))
(*.f64 (*.f64 x (*.f64 (+.f64 y 1) 1/2)) 2)
(*.f64 (*.f64 x 1/2) (+.f64 2 (+.f64 y y)))
(*.f64 (*.f64 2 (*.f64 x 8)) (*.f64 1/16 (+.f64 y 1)))
(*.f64 (*.f64 (+.f64 y 1) 4) (*.f64 x 1/4))
(*.f64 1/4 (*.f64 x (*.f64 (+.f64 y 1) 4)))
(*.f64 (*.f64 (+.f64 y 1) 1/2) (+.f64 x x))
(*.f64 (*.f64 x (/.f64 (+.f64 y 1) 4)) 4)
(*.f64 (*.f64 x 1/4) (*.f64 (+.f64 y 1) 4))
(*.f64 1/8 (*.f64 (+.f64 y 1) (*.f64 x 8)))
(*.f64 (*.f64 (+.f64 y 1) 1/4) (*.f64 x 4))
(*.f64 (/.f64 (+.f64 y 1) 4) (*.f64 x 4))
(*.f64 (+.f64 1/2 (*.f64 y 1/2)) (+.f64 x x))
(/.f64 (+.f64 x (*.f64 y x)) 1)
(/.f64 (*.f64 x (+.f64 2 (+.f64 y y))) 2)
(/.f64 (*.f64 x (*.f64 (+.f64 y 1) 4)) 4)
(/.f64 (*.f64 (+.f64 y 1) (*.f64 x 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))))))) 256)
(pow.f64 (+.f64 x (*.f64 y x)) 1)
Outputs
x
(*.f64 y x)
(*.f64 x y)
(*.f64 y x)
(*.f64 x y)
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 x (+.f64 y 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 x (+.f64 y 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 x (+.f64 y 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 x (+.f64 y 1))
(-.f64 (+.f64 x (*.f64 y x)) 0)
(*.f64 x (+.f64 y 1))
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 x (*.f64 y x)) 1)
(*.f64 x (+.f64 y 1))
(*.f64 1 (+.f64 x (*.f64 y x)))
(*.f64 x (+.f64 y 1))
(*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 1/2)))
(*.f64 x (+.f64 y 1))
(*.f64 (*.f64 x (+.f64 2 (+.f64 y y))) 1/2)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 x x) (*.f64 (+.f64 y 1) 1/2))
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 x x) (*.f64 (+.f64 2 (+.f64 y y)) 1/4))
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y 1/2)))
(*.f64 (+.f64 y 1) x)
(*.f64 x (+.f64 y 1))
(*.f64 4 (*.f64 x (/.f64 (+.f64 y 1) 4)))
(*.f64 x (+.f64 y 1))
(*.f64 4 (*.f64 (/.f64 x 8) (+.f64 2 (+.f64 y y))))
(*.f64 x (+.f64 y 1))
(*.f64 (*.f64 x (*.f64 (+.f64 y 1) 4)) 1/4)
(*.f64 x (+.f64 y 1))
(*.f64 (*.f64 x 4) (*.f64 (+.f64 y 1) 1/4))
(*.f64 x (+.f64 y 1))
(*.f64 (*.f64 x 4) (/.f64 (+.f64 y 1) 4))
(*.f64 x (+.f64 y 1))
(*.f64 (*.f64 x 4) (*.f64 1/8 (+.f64 2 (+.f64 y y))))
(*.f64 x (+.f64 y 1))
(*.f64 8 (*.f64 (/.f64 x 8) (+.f64 y 1)))
(*.f64 x (+.f64 y 1))
(*.f64 8 (*.f64 (*.f64 1/2 (*.f64 x 1/4)) (+.f64 y 1)))
(*.f64 x (+.f64 y 1))
(*.f64 (*.f64 (+.f64 y 1) (*.f64 x 8)) 1/8)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 2 (+.f64 y y)) (*.f64 x 1/2))
(*.f64 x (+.f64 y 1))
(*.f64 (*.f64 x 8) (*.f64 1/8 (+.f64 y 1)))
(*.f64 x (+.f64 y 1))
(*.f64 1/2 (*.f64 x (+.f64 2 (+.f64 y y))))
(*.f64 x (+.f64 y 1))
(*.f64 (*.f64 x (*.f64 (+.f64 y 1) 1/2)) 2)
(*.f64 x (+.f64 y 1))
(*.f64 (*.f64 x 1/2) (+.f64 2 (+.f64 y y)))
(*.f64 x (+.f64 y 1))
(*.f64 (*.f64 2 (*.f64 x 8)) (*.f64 1/16 (+.f64 y 1)))
(*.f64 x (+.f64 y 1))
(*.f64 (*.f64 (+.f64 y 1) 4) (*.f64 x 1/4))
(*.f64 x (+.f64 y 1))
(*.f64 1/4 (*.f64 x (*.f64 (+.f64 y 1) 4)))
(*.f64 x (+.f64 y 1))
(*.f64 (*.f64 (+.f64 y 1) 1/2) (+.f64 x x))
(*.f64 x (+.f64 y 1))
(*.f64 (*.f64 x (/.f64 (+.f64 y 1) 4)) 4)
(*.f64 x (+.f64 y 1))
(*.f64 (*.f64 x 1/4) (*.f64 (+.f64 y 1) 4))
(*.f64 x (+.f64 y 1))
(*.f64 1/8 (*.f64 (+.f64 y 1) (*.f64 x 8)))
(*.f64 x (+.f64 y 1))
(*.f64 (*.f64 (+.f64 y 1) 1/4) (*.f64 x 4))
(*.f64 x (+.f64 y 1))
(*.f64 (/.f64 (+.f64 y 1) 4) (*.f64 x 4))
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1/2 (*.f64 y 1/2)) (+.f64 x x))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y 1/2)))
(/.f64 (+.f64 x (*.f64 y x)) 1)
(*.f64 x (+.f64 y 1))
(/.f64 (*.f64 x (+.f64 2 (+.f64 y y))) 2)
(*.f64 x (+.f64 y 1))
(/.f64 (*.f64 x (*.f64 (+.f64 y 1) 4)) 4)
(*.f64 x (+.f64 y 1))
(/.f64 (*.f64 (+.f64 y 1) (*.f64 x 8)) 8)
(*.f64 x (+.f64 y 1))
(/.f64 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))) 16)
(*.f64 x (+.f64 y 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8)))) 32)
(*.f64 x (+.f64 y 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))))) 64)
(*.f64 x (+.f64 y 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8)))))) 128)
(*.f64 x (+.f64 y 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))))))) 256)
(*.f64 x (+.f64 y 1))
(pow.f64 (+.f64 x (*.f64 y x)) 1)
(*.f64 x (+.f64 y 1))

eval8.0ms (0.1%)

Compiler

Compiled 441 to 306 computations (30.6% saved)

prune465.0ms (5.3%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New49049
Fresh011
Picked011
Done022
Total49453
Error
0b
Counts
53 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 y x) x)
35.7b
(*.f64 y x)
0.0b
(*.f64 x (+.f64 y 1))
27.0b
x
Compiler

Compiled 22 to 14 computations (36.4% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 y x) x)
35.7b
(*.f64 y x)
0.0b
(*.f64 x (+.f64 y 1))
27.0b
x
Compiler

Compiled 22 to 14 computations (36.4% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 y x) x)
35.7b
(*.f64 y x)
0.0b
(*.f64 x (+.f64 y 1))
27.0b
x
Compiler

Compiled 22 to 14 computations (36.4% saved)

regimes6.2s (70.8%)

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

4 calls:

6.2s
x
4.0ms
(*.f64 x (+.f64 y 1))
4.0ms
y
3.0ms
(+.f64 y 1)
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(*.f64 x (+.f64 y 1))
0.0b1(+.f64 y 1)
Compiler

Compiled 34 to 20 computations (41.2% saved)

regimes87.0ms (1%)

Accuracy

Total -60.1b remaining (-4668.2%)

Threshold costs -60.1b (-4668.2%)

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

2 calls:

78.0ms
x
8.0ms
y
Results
ErrorSegmentsBranch
21.7b7x
1.3b3y
Compiler

Compiled 12 to 7 computations (41.7% saved)

bsearch28.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
1.633249245804053e-11
1.1529589176233832
14.0ms
-54789.80959418281
-0.0003342326784359574
Results
23.0ms304×body256valid
Compiler

Compiled 202 to 142 computations (29.7% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01647
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 x (+.f64 y 1))
(if (<=.f64 y -1) (*.f64 y x) (if (<=.f64 y 1) x (*.f64 y x)))
x
Outputs
(*.f64 x (+.f64 y 1))
(if (<=.f64 y -1) (*.f64 y x) (if (<=.f64 y 1) x (*.f64 y x)))
x
Compiler

Compiled 27 to 16 computations (40.7% saved)

soundness0.0ms (0%)

end56.0ms (0.6%)

Compiler

Compiled 23 to 12 computations (47.8% saved)

Profiling

Loading profile data...