Details

Time bar (total: 4.8s)

analyze50.0ms (1%)

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)

sample1.9s (40.2%)

Results
1.9s8256×body256valid
11.0ms145×body256infinite
Bogosity

preprocess4.0ms (0.1%)

Algorithm
egg-herbie
Rules
14×rational.json-simplify-2
rational.json-simplify-43
swap-x-y
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0926
11326
21726
31926
022
122
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
0
Call 2
Inputs
(*.f64 (*.f64 x 27) y)
(*.f64 (*.f64 y 27) x)
Outputs
(*.f64 (*.f64 x 27) y)
(*.f64 x (*.f64 27 y))
(*.f64 (*.f64 y 27) x)
(*.f64 (*.f64 x 27) y)
(*.f64 x (*.f64 27 y))
Symmetry

(sort x y)

Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify9.0ms (0.2%)

Algorithm
egg-herbie
Rules
12×rational.json-simplify-2
rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
1913
21313
31713
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 x 27) y)
Outputs
(*.f64 (*.f64 x 27) y)
(*.f64 x (*.f64 27 y))

eval0.0ms (0%)

Compiler

Compiled 12 to 8 computations (33.3% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.1b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (*.f64 x 27) y)
0.3b
(*.f64 x (*.f64 27 y))
Compiler

Compiled 14 to 10 computations (28.6% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(*.f64 x (*.f64 27 y))
Compiler

Compiled 13 to 8 computations (38.5% saved)

series3.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite101.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
1906×bool.json-1
1906×bool.json-2
1112×rational.json-1
1112×rational.json-2
1112×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17213
221113
345713
491613
5201113
6429213
7738313
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 x (*.f64 27 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 27 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 y 27/2)) (*.f64 x (*.f64 y 27/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 27 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 27 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y 54)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y 108)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 216 (*.f64 x y)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 216 (*.f64 x y))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y)))) (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 27 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 27 y)) (*.f64 x (*.f64 27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 27 y)) (*.f64 x (*.f64 27 y)))))))

simplify844.0ms (17.6%)

Algorithm
egg-herbie
Rules
4266×rational.json-simplify-35
4104×rational.json-simplify-49
2232×rational.json-simplify-2
1064×rational.json-simplify-53
782×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043455
1101455
2215455
3503455
41410455
52440455
63117455
73401455
83558455
93717455
103848455
113979455
124308455
134358455
144525455
154636455
164636455
174767455
184956455
195191455
205396455
215581455
225752455
235900455
246045455
256176455
266176455
276307455
Stop Event
node limit
Counts
35 → 13
Calls
Call 1
Inputs
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(+.f64 (*.f64 x (*.f64 27 y)) 0)
(+.f64 0 (*.f64 x (*.f64 27 y)))
(+.f64 (*.f64 x (*.f64 y 27/2)) (*.f64 x (*.f64 y 27/2)))
(-.f64 (*.f64 x (*.f64 27 y)) 0)
(/.f64 (*.f64 x (*.f64 27 y)) 1)
(/.f64 (*.f64 x (*.f64 y 54)) 2)
(/.f64 (*.f64 x (*.f64 y 108)) 4)
(/.f64 (*.f64 216 (*.f64 x y)) 8)
(/.f64 (*.f64 2 (*.f64 216 (*.f64 x y))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y)))) (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y))))) 64)
Outputs
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(+.f64 (*.f64 x (*.f64 27 y)) 0)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(+.f64 0 (*.f64 x (*.f64 27 y)))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(+.f64 (*.f64 x (*.f64 y 27/2)) (*.f64 x (*.f64 y 27/2)))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(-.f64 (*.f64 x (*.f64 27 y)) 0)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(/.f64 (*.f64 x (*.f64 27 y)) 1)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(/.f64 (*.f64 x (*.f64 y 54)) 2)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(/.f64 (*.f64 x (*.f64 y 108)) 4)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(/.f64 (*.f64 216 (*.f64 x y)) 8)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(/.f64 (*.f64 2 (*.f64 216 (*.f64 x y))) 16)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y)))) 32)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y)))) (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y))))) 64)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 x 27) y)
Compiler

Compiled 13 to 8 computations (38.5% saved)

series0.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite97.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
1858×bool.json-1
1858×bool.json-2
1164×bool.json-3
1090×rational.json-1
1090×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17013
219713
342913
488213
5194313
6415413
7720313
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 (*.f64 x 27) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 27 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x 27/2)) (*.f64 y (*.f64 x 27/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 27 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 27 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y 54)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y 108)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 216 (*.f64 x y)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 216 (*.f64 x y))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y)))) (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 27 y))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 27 y)) (*.f64 x (*.f64 27 y)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 27 y)) (*.f64 x (*.f64 27 y)))))))

simplify841.0ms (17.5%)

Algorithm
egg-herbie
Rules
4260×rational.json-simplify-35
3904×rational.json-simplify-49
2226×rational.json-simplify-2
1056×rational.json-simplify-53
774×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043455
1101455
2216455
3503455
41408455
52434455
63105455
73386455
83544455
93703455
103834455
113965455
124293455
134344455
144512455
154623455
164623455
174754455
184943455
195179455
205384455
215569455
225740455
235888455
246033455
256164455
266164455
276295455
Stop Event
node limit
Counts
35 → 13
Calls
Call 1
Inputs
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(*.f64 27 (*.f64 y x))
(+.f64 (*.f64 x (*.f64 27 y)) 0)
(+.f64 0 (*.f64 x (*.f64 27 y)))
(+.f64 (*.f64 y (*.f64 x 27/2)) (*.f64 y (*.f64 x 27/2)))
(-.f64 (*.f64 x (*.f64 27 y)) 0)
(/.f64 (*.f64 x (*.f64 27 y)) 1)
(/.f64 (*.f64 x (*.f64 y 54)) 2)
(/.f64 (*.f64 x (*.f64 y 108)) 4)
(/.f64 (*.f64 216 (*.f64 x y)) 8)
(/.f64 (*.f64 2 (*.f64 216 (*.f64 x y))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y)))) (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y))))) 64)
Outputs
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(+.f64 (*.f64 x (*.f64 27 y)) 0)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(+.f64 0 (*.f64 x (*.f64 27 y)))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(+.f64 (*.f64 y (*.f64 x 27/2)) (*.f64 y (*.f64 x 27/2)))
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(-.f64 (*.f64 x (*.f64 27 y)) 0)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(/.f64 (*.f64 x (*.f64 27 y)) 1)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(/.f64 (*.f64 x (*.f64 y 54)) 2)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(/.f64 (*.f64 x (*.f64 y 108)) 4)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(/.f64 (*.f64 216 (*.f64 x y)) 8)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(/.f64 (*.f64 2 (*.f64 216 (*.f64 x y))) 16)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y)))) 32)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y)))) (*.f64 2 (*.f64 2 (*.f64 216 (*.f64 x y))))) 64)
(*.f64 27 (*.f64 y x))
(*.f64 y (*.f64 27 x))

eval4.0ms (0.1%)

Compiler

Compiled 224 to 154 computations (31.3% saved)

prune3.0ms (0.1%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New25126
Fresh000
Picked011
Done011
Total25328
Error
0.0b
Counts
28 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (*.f64 x 27) y)
0.3b
(*.f64 x (*.f64 27 y))
0.3b
(*.f64 27 (*.f64 y x))
Compiler

Compiled 21 to 15 computations (28.6% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(*.f64 27 (*.f64 y x))
Compiler

Compiled 13 to 6 computations (53.8% saved)

series0.0ms (0%)

Counts
1 → 0
Calls

6 calls:

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

rewrite96.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
1898×bool.json-1
1898×bool.json-2
1108×rational.json-1
1108×rational.json-2
1108×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17213
221113
345913
491913
5200913
6427513
7731513
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 27 (*.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 27 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 27 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x 27/2)) (*.f64 y (*.f64 x 27/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 27 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 27 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x 54)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x 108)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x x) (*.f64 108 y)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 108 y))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 108 y)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 108 y)))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 108 y))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 27 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 27 (*.f64 y x)) (*.f64 27 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 27 (*.f64 y x)) (*.f64 27 (*.f64 y x)))))))

simplify760.0ms (15.8%)

Algorithm
egg-herbie
Rules
5692×rational.json-simplify-35
5172×rational.json-simplify-49
1940×rational.json-simplify-2
822×rational.json-simplify-1
552×rational.json-simplify-53
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041143
1100143
2218143
3562143
41594143
52744143
63583143
73908143
84159143
94357143
104546143
114548143
124765143
134775143
144785143
154785143
164964143
175143143
185322143
195501143
205680143
215859143
226038143
236038143
246217143
256396143
266575143
276754143
286933143
Stop Event
node limit
Counts
11 → 12
Calls
Call 1
Inputs
(+.f64 (*.f64 27 (*.f64 y x)) 0)
(+.f64 0 (*.f64 27 (*.f64 y x)))
(+.f64 (*.f64 y (*.f64 x 27/2)) (*.f64 y (*.f64 x 27/2)))
(-.f64 (*.f64 27 (*.f64 y x)) 0)
(/.f64 (*.f64 27 (*.f64 y x)) 1)
(/.f64 (*.f64 y (*.f64 x 54)) 2)
(/.f64 (*.f64 y (*.f64 x 108)) 4)
(/.f64 (*.f64 (+.f64 x x) (*.f64 108 y)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 108 y))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 108 y)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 108 y)))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 108 y))))) 64)
Outputs
(+.f64 (*.f64 27 (*.f64 y x)) 0)
(*.f64 27 (*.f64 y x))
(+.f64 0 (*.f64 27 (*.f64 y x)))
(*.f64 27 (*.f64 y x))
(+.f64 (*.f64 y (*.f64 x 27/2)) (*.f64 y (*.f64 x 27/2)))
(*.f64 27 (*.f64 y x))
(-.f64 (*.f64 27 (*.f64 y x)) 0)
(*.f64 27 (*.f64 y x))
(/.f64 (*.f64 27 (*.f64 y x)) 1)
(*.f64 27 (*.f64 y x))
(/.f64 (*.f64 y (*.f64 x 54)) 2)
(*.f64 27 (*.f64 y x))
(/.f64 (*.f64 y (*.f64 x 108)) 4)
(*.f64 27 (*.f64 y x))
(/.f64 (*.f64 (+.f64 x x) (*.f64 108 y)) 8)
(*.f64 27 (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 108 y))) 16)
(*.f64 27 (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 108 y)))) 32)
(*.f64 27 (*.f64 y x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 108 y)))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x x) (*.f64 108 y))))) 64)
(*.f64 27 (*.f64 y x))

eval3.0ms (0.1%)

Compiler

Compiled 118 to 77 computations (34.7% saved)

prune2.0ms (0.1%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New12012
Fresh000
Picked011
Done022
Total12315
Error
0.0b
Counts
15 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (*.f64 x 27) y)
0.3b
(*.f64 x (*.f64 27 y))
0.3b
(*.f64 27 (*.f64 y x))
Compiler

Compiled 21 to 15 computations (28.6% saved)

regimes15.0ms (0.3%)

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

4 calls:

4.0ms
(*.f64 (*.f64 x 27) y)
3.0ms
(*.f64 x 27)
3.0ms
y
3.0ms
x
Results
ErrorSegmentsBranch
0.2b1x
0.2b1y
0.2b1(*.f64 (*.f64 x 27) y)
0.2b1(*.f64 x 27)
Compiler

Compiled 35 to 24 computations (31.4% saved)

regimes7.0ms (0.1%)

Accuracy

Total -0.2b remaining (-63.1%)

Threshold costs -0.2b (-63.1%)

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

2 calls:

3.0ms
x
3.0ms
y
Results
ErrorSegmentsBranch
0.3b1x
0.3b1y
Compiler

Compiled 18 to 12 computations (33.3% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01139
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (*.f64 x 27) y)
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
Outputs
(*.f64 (*.f64 x 27) y)
(*.f64 x (*.f64 27 y))
(*.f64 27 (*.f64 y x))
Compiler

Compiled 21 to 15 computations (28.6% saved)

soundness0.0ms (0%)

end20.0ms (0.4%)

Remove

(sort x y)

Compiler

Compiled 31 to 21 computations (32.3% saved)

Profiling

Loading profile data...