Details

Time bar (total: 2.8s)

analyze44.0ms (1.6%)

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
56.3%56.2%43.7%0.1%0%0%0%7
65.6%65.6%34.3%0.1%0%0%0%8
76.6%76.5%23.4%0.1%0%0%0%9
82%82%18%0.1%0%0%0%10
87.9%87.8%12.1%0.1%0%0%0%11
90.8%90.7%9.2%0.1%0%0%0%12
Compiler

Compiled 8 to 5 computations (37.5% saved)

sample795.0ms (28.8%)

Results
784.0ms8256×body256valid
0.0msbody256infinite
Bogosity

preprocess11.0ms (0.4%)

Algorithm
egg-herbie
Rules
10×rational.json-simplify-1
rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0826
11226
21626
31826
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(+.f64 (+.f64 x y) x)
(+.f64 (+.f64 y x) y)
Outputs
(+.f64 (+.f64 x y) x)
(+.f64 x (+.f64 x y))
(+.f64 (+.f64 y x) y)
(+.f64 y (+.f64 x y))
(+.f64 x (+.f64 y y))
Compiler

Compiled 9 to 6 computations (33.3% saved)

simplify8.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
1813
21013
31113
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (+.f64 x y) x)
Outputs
(+.f64 (+.f64 x y) x)
(+.f64 x (+.f64 x y))

eval0.0ms (0%)

Compiler

Compiled 12 to 5 computations (58.3% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 7 to 4 computations (42.9% saved)

localize4.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 12 to 4 computations (66.7% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite282.0ms (10.2%)

Algorithm
batch-egg-rewrite
Rules
2960×rational.json-simplify-35
1792×rational.json-simplify-2
1320×rational.json-simplify-1
1212×exponential.json-3
1212×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
14013
29313
319913
439713
594213
6220913
7359313
8432713
9507613
10551313
11551313
12599213
13618913
14664513
15753813
Stop Event
node limit
Counts
1 → 27
Calls
Call 1
Inputs
(+.f64 (+.f64 x y) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 y (+.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 x (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (+.f64 x x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 y (+.f64 x x)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (+.f64 x x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (+.f64 x x)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 y (+.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 y y) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 y 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 y (+.f64 x x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (+.f64 x x)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 y (+.f64 x x)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 y y) (*.f64 x 4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (+.f64 x x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (+.f64 x x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (+.f64 x x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 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 y (+.f64 x x)) 8)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 y (+.f64 x x)) 1)))))

simplify854.0ms (30.9%)

Algorithm
egg-herbie
Rules
3566×rational.json-simplify-1
2764×rational.json-simplify-41
1950×rational.json-simplify-35
1922×rational.json-simplify-49
968×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
066645
1153645
2440645
31354645
42336645
52769645
62833645
72876645
82913645
92948645
105060645
115112645
125167645
135206645
145246645
155284645
165320645
175356645
185390645
195424645
205458645
215492645
225526645
235560645
245594645
255628645
267187645
277255645
287322645
297359645
307393645
317427645
327461645
337461645
Stop Event
node limit
Counts
51 → 33
Calls
Call 1
Inputs
y
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(*.f64 2 x)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(*.f64 2 x)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(*.f64 2 x)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
y
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
y
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(+.f64 (*.f64 2 x) y)
(-.f64 (+.f64 y (+.f64 x x)) 0)
(*.f64 (+.f64 y (+.f64 x x)) 1)
(*.f64 1 (+.f64 y (+.f64 x x)))
(*.f64 2 (+.f64 x (*.f64 y 1/2)))
(*.f64 (*.f64 (+.f64 y (+.f64 x x)) 2) 1/2)
(*.f64 4 (*.f64 (+.f64 y (+.f64 x x)) 1/4))
(*.f64 (*.f64 (+.f64 y (+.f64 x x)) 4) 1/4)
(*.f64 (*.f64 (+.f64 y (+.f64 x x)) 8) 1/8)
(*.f64 1/2 (*.f64 (+.f64 y (+.f64 x x)) 2))
(*.f64 1/2 (+.f64 (+.f64 y y) (*.f64 x 4)))
(*.f64 (+.f64 x (*.f64 y 1/2)) 2)
(*.f64 1/4 (*.f64 (+.f64 y (+.f64 x x)) 4))
(*.f64 (*.f64 (+.f64 y (+.f64 x x)) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 y (+.f64 x x)) 8))
(*.f64 (+.f64 (+.f64 y y) (*.f64 x 4)) 1/2)
(/.f64 (+.f64 y (+.f64 x x)) 1)
(/.f64 (*.f64 (+.f64 y (+.f64 x x)) 2) 2)
(/.f64 (*.f64 (+.f64 y (+.f64 x x)) 4) 4)
(/.f64 (*.f64 (+.f64 y (+.f64 x x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8))))))) 512)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8)))))))) 1024)
(pow.f64 (+.f64 y (+.f64 x x)) 1)
Outputs
y
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
(*.f64 2 x)
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
(*.f64 2 x)
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
(*.f64 2 x)
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
y
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
y
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
(+.f64 (*.f64 2 x) y)
(+.f64 y (*.f64 2 x))
(-.f64 (+.f64 y (+.f64 x x)) 0)
(+.f64 y (+.f64 x x))
(*.f64 (+.f64 y (+.f64 x x)) 1)
(+.f64 y (+.f64 x x))
(*.f64 1 (+.f64 y (+.f64 x x)))
(+.f64 y (+.f64 x x))
(*.f64 2 (+.f64 x (*.f64 y 1/2)))
(*.f64 (*.f64 (+.f64 y (+.f64 x x)) 2) 1/2)
(+.f64 y (+.f64 x x))
(*.f64 4 (*.f64 (+.f64 y (+.f64 x x)) 1/4))
(+.f64 y (+.f64 x x))
(*.f64 (*.f64 (+.f64 y (+.f64 x x)) 4) 1/4)
(+.f64 y (+.f64 x x))
(*.f64 (*.f64 (+.f64 y (+.f64 x x)) 8) 1/8)
(+.f64 y (+.f64 x x))
(*.f64 1/2 (*.f64 (+.f64 y (+.f64 x x)) 2))
(+.f64 y (+.f64 x x))
(*.f64 1/2 (+.f64 (+.f64 y y) (*.f64 x 4)))
(*.f64 1/2 (+.f64 y (+.f64 y (*.f64 x 4))))
(*.f64 (+.f64 x (*.f64 y 1/2)) 2)
(*.f64 2 (+.f64 x (*.f64 y 1/2)))
(*.f64 1/4 (*.f64 (+.f64 y (+.f64 x x)) 4))
(+.f64 y (+.f64 x x))
(*.f64 (*.f64 (+.f64 y (+.f64 x x)) 1/4) 4)
(+.f64 y (+.f64 x x))
(*.f64 1/8 (*.f64 (+.f64 y (+.f64 x x)) 8))
(+.f64 y (+.f64 x x))
(*.f64 (+.f64 (+.f64 y y) (*.f64 x 4)) 1/2)
(*.f64 1/2 (+.f64 (+.f64 y y) (*.f64 x 4)))
(*.f64 1/2 (+.f64 y (+.f64 y (*.f64 x 4))))
(/.f64 (+.f64 y (+.f64 x x)) 1)
(+.f64 y (+.f64 x x))
(/.f64 (*.f64 (+.f64 y (+.f64 x x)) 2) 2)
(+.f64 y (+.f64 x x))
(/.f64 (*.f64 (+.f64 y (+.f64 x x)) 4) 4)
(+.f64 y (+.f64 x x))
(/.f64 (*.f64 (+.f64 y (+.f64 x x)) 8) 8)
(+.f64 y (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8)) 16)
(+.f64 y (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8))) 32)
(+.f64 y (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8)))) 64)
(+.f64 y (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8))))) 128)
(+.f64 y (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8)))))) 256)
(+.f64 y (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8))))))) 512)
(+.f64 y (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 x x)) 8)))))))) 1024)
(+.f64 y (+.f64 x x))
(pow.f64 (+.f64 y (+.f64 x x)) 1)
(+.f64 y (+.f64 x x))

eval6.0ms (0.2%)

Compiler

Compiled 315 to 177 computations (43.8% saved)

prune5.0ms (0.2%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New30333
Fresh000
Picked101
Done000
Total31334
Error
0b
Counts
34 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(+.f64 (*.f64 2 x) y)
31.1b
(*.f64 2 x)
32.7b
y
Compiler

Compiled 15 to 11 computations (26.7% saved)

localize3.0ms (0.1%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize5.0ms (0.2%)

Compiler

Compiled 13 to 8 computations (38.5% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked011
Done011
Total033
Error
0b
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(+.f64 (*.f64 2 x) y)
31.1b
(*.f64 2 x)
32.7b
y
Compiler

Compiled 15 to 11 computations (26.7% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Error
0b
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(+.f64 (*.f64 2 x) y)
31.1b
(*.f64 2 x)
32.7b
y
Compiler

Compiled 15 to 11 computations (26.7% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Error
0b
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(+.f64 (*.f64 2 x) y)
31.1b
(*.f64 2 x)
32.7b
y
Compiler

Compiled 15 to 11 computations (26.7% saved)

regimes228.0ms (8.2%)

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

3 calls:

220.0ms
(+.f64 (+.f64 x y) x)
4.0ms
y
4.0ms
x
Results
ErrorSegmentsBranch
0b1x
0b1y
0b1(+.f64 (+.f64 x y) x)
Compiler

Compiled 29 to 17 computations (41.4% saved)

regimes214.0ms (7.7%)

Accuracy

Total -49.7b remaining (-408.3%)

Threshold costs -49.7b (-408.3%)

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

2 calls:

198.0ms
y
16.0ms
x
Results
ErrorSegmentsBranch
12.2b5x
14.4b3y
Compiler

Compiled 12 to 8 computations (33.3% saved)

bsearch49.0ms (1.8%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
1.7974011298973362e-7
864.8332090444151
16.0ms
3.608632408019527e-67
2.4621441676184363e-57
11.0ms
7.174842090862157e-84
7.563314317552312e-81
8.0ms
-3.269345415763413e-87
-8.113317393511023e-88
Results
43.0ms544×body256valid
Compiler

Compiled 352 to 280 computations (20.5% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02273
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 2 x) y)
(if (<=.f64 x -909896301509733/279968092772225526319680285071055534765205687154331191862498637620473983897520118172609686658950889472) (*.f64 2 x) (if (<=.f64 x 5767164996986457/4271974071841820164790043412339104229205409044713305539894083215644439451561281100045924173873152) y (if (<=.f64 x 5767298273795133/15177100720513508366558296147058741458143803430094840009779784451085189728165691392) (*.f64 2 x) (if (<=.f64 x 7926335344172073/72057594037927936) y (*.f64 2 x)))))
y
Outputs
(+.f64 (*.f64 2 x) y)
(if (<=.f64 x -909896301509733/279968092772225526319680285071055534765205687154331191862498637620473983897520118172609686658950889472) (*.f64 2 x) (if (<=.f64 x 5767164996986457/4271974071841820164790043412339104229205409044713305539894083215644439451561281100045924173873152) y (if (<=.f64 x 5767298273795133/15177100720513508366558296147058741458143803430094840009779784451085189728165691392) (*.f64 2 x) (if (<=.f64 x 7926335344172073/72057594037927936) y (*.f64 2 x)))))
y
Compiler

Compiled 39 to 27 computations (30.8% saved)

soundness0.0ms (0%)

end248.0ms (9%)

Compiler

Compiled 35 to 23 computations (34.3% saved)

Profiling

Loading profile data...