Details

Time bar (total: 6.5s)

analyze192.0ms (3%)

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
0%0%99.9%0.1%0%0%0%5
0%0%99.9%0.1%0%0%0%6
12.5%12.5%87.4%0.1%0%0%0%7
18.8%18.7%81.1%0.1%0%0%0%8
28.1%28.1%71.8%0.1%0%0%0%9
37.6%34.3%56.9%0.1%8.6%0%0%10
44.8%40.6%49.9%0.1%9.4%0%0%11
53.4%48%41.9%0.1%9.9%0%0%12
Compiler

Compiled 9 to 6 computations (33.3% saved)

sample3.3s (51.4%)

Results
3.2s8256×body256valid
88.0ms1129×body256infinite
Bogosity

preprocess91.0ms (1.4%)

Algorithm
egg-herbie
Rules
rational.json-simplify-2
rational.json-simplify-1
swap-x-y
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01352
11852
033
133
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
0
2
Call 2
Inputs
(*.f64 (+.f64 x y) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 z y) x)
(*.f64 (+.f64 x z) y)
Outputs
(*.f64 (+.f64 x y) z)
(*.f64 z (+.f64 x y))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 x y))
(*.f64 (+.f64 z y) x)
(*.f64 x (+.f64 y z))
(*.f64 (+.f64 x z) y)
(*.f64 y (+.f64 x z))
Symmetry

(sort x y)

Compiler

Compiled 11 to 8 computations (27.3% saved)

simplify9.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

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

eval0.0ms (0%)

Compiler

Compiled 8 to 5 computations (37.5% 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 (+.f64 x y) z)
Compiler

Compiled 8 to 5 computations (37.5% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 5 computations (64.3% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite262.0ms (4%)

Algorithm
batch-egg-rewrite
Rules
2514×rational.json-simplify-2
1526×rational.json-simplify-35
1252×rational.json-simplify-1
1232×exponential.json-3
1232×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14613
210213
321413
439713
589813
6231513
7417613
8508113
9615513
10697013
11697013
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 (+.f64 x y) z)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x y) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x y) (*.f64 z 1/2)) (*.f64 (+.f64 x y) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (*.f64 z 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x y) (*.f64 z 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) (*.f64 z 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) (*.f64 z 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) (*.f64 z 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) (*.f64 z 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 x y) z) 1)))))

simplify580.0ms (8.9%)

Algorithm
egg-herbie
Rules
3094×rational.json-simplify-2
2740×rational.json-simplify-35
1802×rational.json-simplify-53
1044×rational.json-simplify-1
1042×exponential.json-simplify-26
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
050878
1128614
2240614
3546614
41942614
53827614
64415614
74558614
84665614
94770614
104873614
115836614
126441614
136716614
146716614
156716614
166819614
176922614
187505614
197759614
Stop Event
node limit
Counts
50 → 19
Calls
Call 1
Inputs
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 (+.f64 x y) z) 0)
(+.f64 0 (*.f64 (+.f64 x y) z))
(+.f64 (*.f64 (+.f64 x y) (*.f64 z 1/2)) (*.f64 (+.f64 x y) (*.f64 z 1/2)))
(-.f64 (*.f64 (+.f64 x y) z) 0)
(/.f64 (*.f64 (+.f64 x y) z) 1)
(/.f64 (*.f64 (+.f64 x y) (+.f64 z z)) 2)
(/.f64 (*.f64 (+.f64 x y) (*.f64 z 4)) 4)
(/.f64 (*.f64 (+.f64 x y) (*.f64 z 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x y) (*.f64 z 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) (*.f64 z 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) (*.f64 z 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) (*.f64 z 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) (*.f64 z 8))))))) 256)
(pow.f64 (*.f64 (+.f64 x y) z) 1)
Outputs
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 (+.f64 x y) z) 0)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 0 (*.f64 (+.f64 x y) z))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 (+.f64 x y) (*.f64 z 1/2)) (*.f64 (+.f64 x y) (*.f64 z 1/2)))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(-.f64 (*.f64 (+.f64 x y) z) 0)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 (+.f64 x y) z) 1)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 (+.f64 x y) (+.f64 z z)) 2)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 (+.f64 x y) (*.f64 z 4)) 4)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 (+.f64 x y) (*.f64 z 8)) 8)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 (+.f64 x y) (*.f64 z 8))) 16)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) (*.f64 z 8)))) 32)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) (*.f64 z 8))))) 64)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) (*.f64 z 8)))))) 128)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) (*.f64 z 8))))))) 256)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(pow.f64 (*.f64 (+.f64 x y) z) 1)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))

eval3.0ms (0%)

Compiler

Compiled 178 to 97 computations (45.5% saved)

prune3.0ms (0.1%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New17219
Fresh000
Picked011
Done000
Total17320
Error
0.0b
Counts
20 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (+.f64 x y) z)
29.7b
(*.f64 z x)
28.9b
(*.f64 y z)
Compiler

Compiled 20 to 13 computations (35% saved)

localize3.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize233.0ms (3.6%)

Compiler

Compiled 8 to 4 computations (50% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done022
Total033
Error
0.0b
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (+.f64 x y) z)
29.7b
(*.f64 z x)
28.9b
(*.f64 y z)
Compiler

Compiled 20 to 13 computations (35% saved)

regimes469.0ms (7.2%)

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

5 calls:

454.0ms
y
3.0ms
(+.f64 x y)
3.0ms
(*.f64 (+.f64 x y) z)
3.0ms
z
3.0ms
x
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1(*.f64 (+.f64 x y) z)
0.0b1(+.f64 x y)
Compiler

Compiled 40 to 25 computations (37.5% saved)

regimes1.2s (19.2%)

Accuracy

Total -49.7b remaining (-632.1%)

Threshold costs -49.7b (-632.1%)

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

3 calls:

979.0ms
x
254.0ms
z
13.0ms
y
Results
ErrorSegmentsBranch
9.0b2x
7.9b4y
19.1b11z
Compiler

Compiled 21 to 14 computations (33.3% saved)

bsearch30.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
4.0ms
4.830395304220947e-74
6.463310857697647e-74
16.0ms
1.2367963444094506e-120
2.2126065841654083e-115
10.0ms
3.301582120849604e-163
5.386198801085346e-161
Results
27.0ms304×body256valid
Compiler

Compiled 280 to 200 computations (28.6% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02175
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (+.f64 x y) z)
(if (<=.f64 y 6584924608819935/126633165554229521438977290762059361297987250739820462036000284719563379254544315991201997343356439034674007770120263341747898897565056619503383631412169301973302667340133957632) (*.f64 z x) (if (<=.f64 y 7268387242956069/5814709794364855124394590463104036274829130885498544482251921593445114304907183386609528405710108524486100172850129423468276813028917248) (*.f64 y z) (if (<=.f64 y 3946757204148067/63657374260452690195888927762793067532858387302060507832379389042324415617604272068231168) (*.f64 z x) (*.f64 y z))))
(*.f64 y z)
Outputs
(*.f64 (+.f64 x y) z)
(if (<=.f64 y 6584924608819935/126633165554229521438977290762059361297987250739820462036000284719563379254544315991201997343356439034674007770120263341747898897565056619503383631412169301973302667340133957632) (*.f64 z x) (if (<=.f64 y 7268387242956069/5814709794364855124394590463104036274829130885498544482251921593445114304907183386609528405710108524486100172850129423468276813028917248) (*.f64 y z) (if (<=.f64 y 3946757204148067/63657374260452690195888927762793067532858387302060507832379389042324415617604272068231168) (*.f64 z x) (*.f64 y z))))
(*.f64 y z)
Compiler

Compiled 41 to 23 computations (43.9% saved)

soundness0.0ms (0%)

end24.0ms (0.4%)

Remove

(sort x y)

Compiler

Compiled 51 to 26 computations (49% saved)

Profiling

Loading profile data...