Details

Time bar (total: 4.9s)

analyze459.0ms (9.4%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
0%0%99.8%0.2%0%0%0%1
0%0%99.8%0.2%0%0%0%2
0%0%99.8%0.2%0%0%0%3
0%0%99.8%0.2%0%0%0%4
0%0%99.8%0.2%0%0%0%5
0%0%99.8%0.2%0%0%0%6
0%0%99.8%0.2%0%0%0%7
0%0%99.8%0.2%0%0%0%8
6.3%6.2%93.6%0.2%0%0%0%9
9.4%9.4%90.4%0.2%0%0%0%10
14.1%14%85.8%0.2%0%0%0%11
21.1%21.1%78.8%0.2%0%0%0%12
Compiler

Compiled 18 to 14 computations (22.2% saved)

sample1.4s (29.3%)

Results
1.2s8254×body256valid
200.0ms1178×body256infinite
0.0msbody2048valid
0.0msbody1024valid
Bogosity

preprocess462.0ms (9.5%)

Algorithm
egg-herbie
Rules
3234×rational.json-simplify-41
3168×rational.json-simplify-1
2184×rational.json-simplify-35
2144×rational.json-simplify-51
1886×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041217
178217
2117217
3175217
4281217
5491217
61024217
71539217
81777217
91833217
101883217
111923217
121963217
132003217
142043217
152083217
162123217
172163217
182203217
192243217
202283217
212323217
224394217
235266217
245356217
255392217
265428217
275464217
285500217
296116217
306194217
316284217
326344217
336404217
346464217
356524217
366584217
376644217
387812217
397848217
407884217
417920217
427956217
437992217
044
144
Stop Event
unsound
node limit
Calls
Call 1
Inputs
0
1
2
3
Outputs
0
1
2
1
3
Call 2
Inputs
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
(+.f64 (-.f64 (*.f64 (/.f64 1 8) y) (/.f64 (*.f64 x z) 2)) t)
(+.f64 (-.f64 (*.f64 (/.f64 1 8) z) (/.f64 (*.f64 y x) 2)) t)
(+.f64 (-.f64 (*.f64 (/.f64 1 8) t) (/.f64 (*.f64 y z) 2)) x)
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 z y) 2)) t)
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 t z) 2)) y)
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y t) 2)) z)
Outputs
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
(+.f64 (-.f64 (*.f64 1/8 x) (*.f64 y (/.f64 z 2))) t)
(+.f64 (-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2)) t)
(+.f64 (-.f64 (*.f64 1/8 x) (*.f64 z (/.f64 y 2))) t)
(+.f64 (-.f64 (*.f64 (/.f64 1 8) y) (/.f64 (*.f64 x z) 2)) t)
(+.f64 t (-.f64 (*.f64 1/8 y) (*.f64 z (/.f64 x 2))))
(+.f64 t (-.f64 (*.f64 1/8 y) (*.f64 x (/.f64 z 2))))
(+.f64 (-.f64 (*.f64 (/.f64 1 8) z) (/.f64 (*.f64 y x) 2)) t)
(+.f64 t (-.f64 (*.f64 1/8 z) (*.f64 x (/.f64 y 2))))
(+.f64 (-.f64 (*.f64 (/.f64 1 8) t) (/.f64 (*.f64 y z) 2)) x)
(+.f64 x (-.f64 (*.f64 1/8 t) (*.f64 y (/.f64 z 2))))
(+.f64 x (-.f64 (*.f64 1/8 t) (/.f64 (*.f64 y z) 2)))
(+.f64 x (-.f64 (*.f64 1/8 t) (*.f64 z (/.f64 y 2))))
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 z y) 2)) t)
(+.f64 (-.f64 (*.f64 1/8 x) (*.f64 y (/.f64 z 2))) t)
(+.f64 (-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2)) t)
(+.f64 (-.f64 (*.f64 1/8 x) (*.f64 z (/.f64 y 2))) t)
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 t z) 2)) y)
(+.f64 y (-.f64 (*.f64 1/8 x) (*.f64 z (/.f64 t 2))))
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y t) 2)) z)
(+.f64 z (-.f64 (*.f64 1/8 x) (*.f64 t (/.f64 y 2))))
(+.f64 z (-.f64 (*.f64 1/8 x) (*.f64 y (/.f64 t 2))))
Symmetry

(sort y z)

Compiler

Compiled 21 to 17 computations (19% saved)

simplify92.0ms (1.9%)

Algorithm
egg-herbie
Rules
6090×rational.json-simplify-51
2652×rational.json-simplify-41
1092×rational.json-simplify-2
604×rational.json-simplify-35
566×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01631
12531
23631
35231
48031
513131
626331
758631
896131
9114031
10117631
11121031
12123831
13126631
14129431
15132231
16135031
17137831
18140631
19143431
20146231
21149031
22151831
23309331
24383431
Stop Event
node limit
Counts
1 → 4
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
Outputs
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
(+.f64 (-.f64 (*.f64 1/8 x) (*.f64 z (/.f64 y 2))) t)
(+.f64 (-.f64 (*.f64 1/8 x) (*.f64 y (/.f64 z 2))) t)
(+.f64 (-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2)) t)

eval1.0ms (0%)

Compiler

Compiled 50 to 33 computations (34% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New314
Fresh101
Picked000
Done000
Total415
Error
0.0b
Counts
5 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2)) t)
Compiler

Compiled 15 to 11 computations (26.7% saved)

localize14.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2))
Compiler

Compiled 41 to 22 computations (46.3% saved)

series3.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
y
@0
(-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2))
0.0ms
x
@0
(-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2))
0.0ms
x
@inf
(-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2))
0.0ms
z
@inf
(-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2))
0.0ms
z
@0
(-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2))

rewrite90.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
1592×rational.json-simplify-35
1388×rational.json-1
1388×rational.json-2
1388×rational.json-3
1384×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01125
17625
217525
337325
473025
5160625
6364425
7644225
Stop Event
node limit
Counts
1 → 44
Calls
Call 1
Inputs
(-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (+.f64 (*.f64 1/8 x) (+.f64 (/.f64 (*.f64 y z) -2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (*.f64 y z) -2) (*.f64 1/8 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (*.f64 1/8 x) (+.f64 1 (/.f64 (*.f64 y z) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 1/8 x) (+.f64 1 (/.f64 (*.f64 y z) -2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 x 1/16) (*.f64 y (*.f64 z 1/4))) (-.f64 (*.f64 x 1/16) (*.f64 y (*.f64 z 1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 1/16) (-.f64 (*.f64 x 1/16) (*.f64 y (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (/.f64 (*.f64 y z) -2)) (+.f64 (*.f64 1/8 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (+.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 1/8 x) 1) (+.f64 (/.f64 (*.f64 y z) -2) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (-.f64 x (*.f64 y (*.f64 z 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (-.f64 (*.f64 x 1/16) (*.f64 y (*.f64 z 1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 (*.f64 x 1/4) (*.f64 y z)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (-.f64 (/.f64 x 32) (*.f64 1/8 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x 1/4) (*.f64 y z)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y (*.f64 z 1/2)) (/.f64 x -8)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (-.f64 (*.f64 x 1/4) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x 1/2) (*.f64 y (+.f64 z z))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (-.f64 (*.f64 x 1/2) (*.f64 y (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (*.f64 y (*.f64 z 1/2)) (/.f64 x -8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (*.f64 y (*.f64 z 4))) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x 1/16) (*.f64 y (*.f64 z 1/4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/16 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 x 1/4) (*.f64 y z)) 8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x 1/4) (*.f64 y z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y (*.f64 z 1/2)) (/.f64 x -8)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x 1/2) (*.f64 y (+.f64 z z))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y z) (/.f64 x -4)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x (*.f64 y (*.f64 z 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y (+.f64 z z)) (/.f64 x -2)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 y (*.f64 z 4)) x) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 z 4)) x)) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8)))))) (*.f64 2 (*.f64 2 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (*.f64 y (*.f64 z 1/2)) (/.f64 x -8)))))))

simplify394.0ms (8.1%)

Algorithm
egg-herbie
Rules
2408×rational.json-simplify-35
1934×rational.json-simplify-2
1724×rational.json-simplify-48
1384×rational.json-simplify-1
814×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01161998
12401998
24131998
38501998
412971998
517911998
627521998
737251998
840351998
942411998
1044411998
1146341998
1250971998
1359951998
1462021998
1562591998
1663151998
1766641998
1868401998
1971641998
2078761998
Stop Event
node limit
Counts
80 → 64
Calls
Call 1
Inputs
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(*.f64 1/8 x)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(*.f64 1/8 x)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(*.f64 1/8 x)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(*.f64 1/8 x)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2))
(+.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 0)
(+.f64 0 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)))
(+.f64 1 (+.f64 (*.f64 1/8 x) (+.f64 (/.f64 (*.f64 y z) -2) -1)))
(+.f64 (/.f64 (*.f64 y z) -2) (*.f64 1/8 x))
(+.f64 -1 (+.f64 (*.f64 1/8 x) (+.f64 1 (/.f64 (*.f64 y z) -2))))
(+.f64 (+.f64 (*.f64 1/8 x) (+.f64 1 (/.f64 (*.f64 y z) -2))) -1)
(+.f64 (-.f64 (*.f64 x 1/16) (*.f64 y (*.f64 z 1/4))) (-.f64 (*.f64 x 1/16) (*.f64 y (*.f64 z 1/4))))
(+.f64 (*.f64 x 1/16) (-.f64 (*.f64 x 1/16) (*.f64 y (*.f64 z 1/2))))
(+.f64 (+.f64 1 (/.f64 (*.f64 y z) -2)) (+.f64 (*.f64 1/8 x) -1))
(+.f64 -2 (+.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 2))
(+.f64 (+.f64 (*.f64 1/8 x) 1) (+.f64 (/.f64 (*.f64 y z) -2) -1))
(+.f64 (+.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 2) -2)
(*.f64 1/8 (-.f64 x (*.f64 y (*.f64 z 4))))
(*.f64 2 (-.f64 (*.f64 x 1/16) (*.f64 y (*.f64 z 1/4))))
(*.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 1)
(*.f64 1 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)))
(*.f64 4 (/.f64 (-.f64 (*.f64 x 1/4) (*.f64 y z)) 8))
(*.f64 4 (-.f64 (/.f64 x 32) (*.f64 1/8 (*.f64 y z))))
(*.f64 (-.f64 (*.f64 x 1/4) (*.f64 y z)) 1/2)
(*.f64 (+.f64 (*.f64 y (*.f64 z 1/2)) (/.f64 x -8)) -1)
(*.f64 1/2 (-.f64 (*.f64 x 1/4) (*.f64 y z)))
(*.f64 (-.f64 (*.f64 x 1/2) (*.f64 y (+.f64 z z))) 1/4)
(*.f64 1/4 (-.f64 (*.f64 x 1/2) (*.f64 y (+.f64 z z))))
(*.f64 -1 (+.f64 (*.f64 y (*.f64 z 1/2)) (/.f64 x -8)))
(*.f64 (-.f64 x (*.f64 y (*.f64 z 4))) 1/8)
(*.f64 (-.f64 (*.f64 x 1/16) (*.f64 y (*.f64 z 1/4))) 2)
(*.f64 1/16 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8)))))
(*.f64 (/.f64 (-.f64 (*.f64 x 1/4) (*.f64 y z)) 8) 4)
(/.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 1)
(/.f64 (-.f64 (*.f64 x 1/4) (*.f64 y z)) 2)
(/.f64 (+.f64 (*.f64 y (*.f64 z 1/2)) (/.f64 x -8)) -1)
(/.f64 (-.f64 (*.f64 x 1/2) (*.f64 y (+.f64 z z))) 4)
(/.f64 (+.f64 (*.f64 y z) (/.f64 x -4)) -2)
(/.f64 (-.f64 x (*.f64 y (*.f64 z 4))) 8)
(/.f64 (+.f64 (*.f64 y (+.f64 z z)) (/.f64 x -2)) -4)
(/.f64 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8)))) 16)
(/.f64 (-.f64 (*.f64 y (*.f64 z 4)) x) -8)
(/.f64 (*.f64 2 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8))))) 32)
(/.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 z 4)) x)) -16)
(/.f64 (*.f64 2 (*.f64 2 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8)))))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8)))))) (*.f64 2 (*.f64 2 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8))))))) 128)
(pow.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 1)
(neg.f64 (+.f64 (*.f64 y (*.f64 z 1/2)) (/.f64 x -8)))
Outputs
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(*.f64 1/8 x)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(*.f64 1/8 x)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(*.f64 1/8 x)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(*.f64 1/8 x)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 0)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 0 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 1 (+.f64 (*.f64 1/8 x) (+.f64 (/.f64 (*.f64 y z) -2) -1)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (/.f64 (*.f64 y z) -2) (*.f64 1/8 x))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 -1 (+.f64 (*.f64 1/8 x) (+.f64 1 (/.f64 (*.f64 y z) -2))))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (+.f64 (*.f64 1/8 x) (+.f64 1 (/.f64 (*.f64 y z) -2))) -1)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (-.f64 (*.f64 x 1/16) (*.f64 y (*.f64 z 1/4))) (-.f64 (*.f64 x 1/16) (*.f64 y (*.f64 z 1/4))))
(+.f64 (-.f64 (*.f64 x 1/16) (*.f64 1/4 (*.f64 y z))) (-.f64 (*.f64 x 1/16) (*.f64 1/4 (*.f64 y z))))
(+.f64 (*.f64 x 1/16) (-.f64 (*.f64 x 1/16) (*.f64 y (*.f64 z 1/2))))
(+.f64 (*.f64 x 1/16) (-.f64 (*.f64 x 1/16) (*.f64 z (*.f64 1/2 y))))
(+.f64 (*.f64 x 1/16) (-.f64 (*.f64 x 1/16) (*.f64 z (*.f64 y 1/2))))
(+.f64 (*.f64 x 1/16) (-.f64 (*.f64 x 1/16) (*.f64 (*.f64 y z) 1/2)))
(+.f64 (+.f64 1 (/.f64 (*.f64 y z) -2)) (+.f64 (*.f64 1/8 x) -1))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 -2 (+.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 2))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (+.f64 (*.f64 1/8 x) 1) (+.f64 (/.f64 (*.f64 y z) -2) -1))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(+.f64 (+.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 2) -2)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(*.f64 1/8 (-.f64 x (*.f64 y (*.f64 z 4))))
(*.f64 2 (-.f64 (*.f64 x 1/16) (*.f64 y (*.f64 z 1/4))))
(*.f64 (-.f64 (*.f64 x 1/16) (*.f64 y (*.f64 z 1/4))) 2)
(*.f64 (-.f64 (*.f64 x 1/16) (*.f64 1/4 (*.f64 y z))) 2)
(*.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 1)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(*.f64 1 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(*.f64 4 (/.f64 (-.f64 (*.f64 x 1/4) (*.f64 y z)) 8))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(*.f64 4 (-.f64 (/.f64 x 32) (*.f64 1/8 (*.f64 y z))))
(*.f64 4 (-.f64 (/.f64 x 32) (*.f64 (*.f64 y z) 1/8)))
(*.f64 4 (-.f64 (/.f64 x 32) (*.f64 z (*.f64 y 1/8))))
(*.f64 4 (-.f64 (/.f64 x 32) (*.f64 y (*.f64 z 1/8))))
(*.f64 (-.f64 (*.f64 x 1/4) (*.f64 y z)) 1/2)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(*.f64 (+.f64 (*.f64 y (*.f64 z 1/2)) (/.f64 x -8)) -1)
(neg.f64 (+.f64 (*.f64 z (*.f64 1/2 y)) (/.f64 x -8)))
(neg.f64 (+.f64 (*.f64 z (*.f64 y 1/2)) (/.f64 x -8)))
(neg.f64 (+.f64 (*.f64 y (*.f64 z 1/2)) (/.f64 x -8)))
(neg.f64 (+.f64 (*.f64 (*.f64 y z) 1/2) (/.f64 x -8)))
(*.f64 1/2 (-.f64 (*.f64 x 1/4) (*.f64 y z)))
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(*.f64 (-.f64 (*.f64 x 1/2) (*.f64 y (+.f64 z z))) 1/4)
(*.f64 1/4 (-.f64 (*.f64 x 1/2) (*.f64 y (+.f64 z z))))
(*.f64 1/4 (-.f64 (*.f64 x 1/2) (*.f64 y (+.f64 z z))))
(*.f64 -1 (+.f64 (*.f64 y (*.f64 z 1/2)) (/.f64 x -8)))
(neg.f64 (+.f64 (*.f64 z (*.f64 1/2 y)) (/.f64 x -8)))
(neg.f64 (+.f64 (*.f64 z (*.f64 y 1/2)) (/.f64 x -8)))
(neg.f64 (+.f64 (*.f64 y (*.f64 z 1/2)) (/.f64 x -8)))
(neg.f64 (+.f64 (*.f64 (*.f64 y z) 1/2) (/.f64 x -8)))
(*.f64 (-.f64 x (*.f64 y (*.f64 z 4))) 1/8)
(*.f64 1/8 (-.f64 x (*.f64 y (*.f64 z 4))))
(*.f64 (-.f64 (*.f64 x 1/16) (*.f64 y (*.f64 z 1/4))) 2)
(*.f64 (-.f64 (*.f64 x 1/16) (*.f64 1/4 (*.f64 y z))) 2)
(*.f64 1/16 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8)))))
(*.f64 1/16 (+.f64 x (-.f64 x (*.f64 8 (*.f64 y z)))))
(*.f64 1/16 (+.f64 x (-.f64 x (*.f64 z (*.f64 y 8)))))
(*.f64 (/.f64 (-.f64 (*.f64 x 1/4) (*.f64 y z)) 8) 4)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(/.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 1)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(/.f64 (-.f64 (*.f64 x 1/4) (*.f64 y z)) 2)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(/.f64 (+.f64 (*.f64 y (*.f64 z 1/2)) (/.f64 x -8)) -1)
(neg.f64 (+.f64 (*.f64 z (*.f64 1/2 y)) (/.f64 x -8)))
(neg.f64 (+.f64 (*.f64 z (*.f64 y 1/2)) (/.f64 x -8)))
(neg.f64 (+.f64 (*.f64 y (*.f64 z 1/2)) (/.f64 x -8)))
(neg.f64 (+.f64 (*.f64 (*.f64 y z) 1/2) (/.f64 x -8)))
(/.f64 (-.f64 (*.f64 x 1/2) (*.f64 y (+.f64 z z))) 4)
(/.f64 (+.f64 (*.f64 y z) (/.f64 x -4)) -2)
(/.f64 (-.f64 x (*.f64 y (*.f64 z 4))) 8)
(/.f64 (+.f64 (*.f64 y (+.f64 z z)) (/.f64 x -2)) -4)
(/.f64 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8)))) 16)
(/.f64 (+.f64 x (-.f64 x (*.f64 8 (*.f64 y z)))) 16)
(/.f64 (+.f64 x (-.f64 x (*.f64 z (*.f64 y 8)))) 16)
(/.f64 (-.f64 (*.f64 y (*.f64 z 4)) x) -8)
(/.f64 (*.f64 2 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8))))) 32)
(*.f64 1/16 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8)))))
(*.f64 1/16 (+.f64 x (-.f64 x (*.f64 8 (*.f64 y z)))))
(*.f64 1/16 (+.f64 x (-.f64 x (*.f64 z (*.f64 y 8)))))
(/.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 z 4)) x)) -16)
(*.f64 (-.f64 (*.f64 y (*.f64 z 4)) x) -1/8)
(/.f64 (*.f64 2 (*.f64 2 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8)))))) 64)
(*.f64 1/16 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8)))))
(*.f64 1/16 (+.f64 x (-.f64 x (*.f64 8 (*.f64 y z)))))
(*.f64 1/16 (+.f64 x (-.f64 x (*.f64 z (*.f64 y 8)))))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8)))))) (*.f64 2 (*.f64 2 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8))))))) 128)
(*.f64 1/16 (+.f64 x (-.f64 x (*.f64 y (*.f64 z 8)))))
(*.f64 1/16 (+.f64 x (-.f64 x (*.f64 8 (*.f64 y z)))))
(*.f64 1/16 (+.f64 x (-.f64 x (*.f64 z (*.f64 y 8)))))
(pow.f64 (+.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) -2)) 1)
(+.f64 (*.f64 -1/2 (*.f64 y z)) (*.f64 1/8 x))
(+.f64 (*.f64 1/8 x) (*.f64 -1/2 (*.f64 y z)))
(neg.f64 (+.f64 (*.f64 y (*.f64 z 1/2)) (/.f64 x -8)))
(neg.f64 (+.f64 (*.f64 z (*.f64 1/2 y)) (/.f64 x -8)))
(neg.f64 (+.f64 (*.f64 z (*.f64 y 1/2)) (/.f64 x -8)))
(neg.f64 (+.f64 (*.f64 (*.f64 y z) 1/2) (/.f64 x -8)))

eval14.0ms (0.3%)

Compiler

Compiled 854 to 536 computations (37.2% saved)

prune74.0ms (1.5%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New62264
Fresh000
Picked011
Done000
Total62365
Error
0.0b
Counts
65 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2)) t)
18.7b
(+.f64 (*.f64 1/8 x) t)
22.5b
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
Compiler

Compiled 35 to 26 computations (25.7% saved)

localize8.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
Compiler

Compiled 23 to 11 computations (52.2% saved)

series2.0ms (0%)

Counts
1 → 9
Calls

9 calls:

TimeVariablePointExpression
1.0ms
t
@0
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
0.0ms
y
@0
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
0.0ms
z
@0
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
0.0ms
t
@inf
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
0.0ms
z
@-inf
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)

rewrite214.0ms (4.4%)

Algorithm
batch-egg-rewrite
Rules
2772×rational.json-simplify-2
1758×rational.json-simplify-1
1330×exponential.json-3
1330×rational.json-1
1330×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
16119
213519
328619
453919
5125219
6277119
7474019
8591619
9692119
10704319
11715719
12727719
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 -1/2 (*.f64 y z)) t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (*.f64 y z) -1/4) (*.f64 t 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 t (+.f64 t (*.f64 y (neg.f64 z)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 t (+.f64 t (*.f64 y (neg.f64 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (*.f64 y z) -1/4) (*.f64 t 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 t (+.f64 t (*.f64 y (neg.f64 z)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 1)))))

simplify701.0ms (14.4%)

Algorithm
egg-herbie
Rules
2648×rational.json-simplify-35
2366×rational.json-simplify-2
1566×rational.json-simplify-49
1454×rational.json-simplify-1
1178×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056473
1122473
2255473
3845473
41750473
53471473
63818473
73865473
83907473
93947473
104481473
115201473
125307473
135399473
145460473
155519473
165578473
175637473
185696473
196787473
207470473
217651473
227699473
237745473
247790473
257835473
267880473
277925473
287970473
Stop Event
node limit
Counts
29 → 24
Calls
Call 1
Inputs
t
(*.f64 -1/2 (*.f64 y z))
(*.f64 -1/2 (*.f64 y z))
t
(*.f64 -1/2 (*.f64 y z))
(*.f64 -1/2 (*.f64 y z))
(*.f64 -1/2 (*.f64 y z))
t
t
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 0)
(*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 1)
(*.f64 1 (+.f64 (*.f64 -1/2 (*.f64 y z)) t))
(*.f64 2 (+.f64 (*.f64 (*.f64 y z) -1/4) (*.f64 t 1/2)))
(*.f64 (+.f64 t (+.f64 t (*.f64 y (neg.f64 z)))) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 4))
(*.f64 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 4) 1/4)
(*.f64 1/2 (+.f64 t (+.f64 t (*.f64 y (neg.f64 z)))))
(*.f64 (+.f64 (*.f64 (*.f64 y z) -1/4) (*.f64 t 1/2)) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 4))
(*.f64 (/.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 4) 4)
(/.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 1)
(/.f64 (+.f64 t (+.f64 t (*.f64 y (neg.f64 z)))) 2)
(/.f64 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 8))))) 128)
(pow.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 1)
Outputs
t
(*.f64 -1/2 (*.f64 y z))
(*.f64 -1/2 (*.f64 y z))
t
(*.f64 -1/2 (*.f64 y z))
(*.f64 -1/2 (*.f64 y z))
(*.f64 -1/2 (*.f64 y z))
t
t
(-.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 0)
(+.f64 t (*.f64 -1/2 (*.f64 y z)))
(*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 1)
(+.f64 t (*.f64 -1/2 (*.f64 y z)))
(*.f64 1 (+.f64 (*.f64 -1/2 (*.f64 y z)) t))
(+.f64 t (*.f64 -1/2 (*.f64 y z)))
(*.f64 2 (+.f64 (*.f64 (*.f64 y z) -1/4) (*.f64 t 1/2)))
(*.f64 2 (+.f64 (*.f64 y (*.f64 z -1/4)) (*.f64 t 1/2)))
(*.f64 (+.f64 t (+.f64 t (*.f64 y (neg.f64 z)))) 1/2)
(+.f64 t (*.f64 -1/2 (*.f64 y z)))
(*.f64 4 (/.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 4))
(+.f64 t (*.f64 -1/2 (*.f64 y z)))
(*.f64 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 4) 1/4)
(+.f64 t (*.f64 -1/2 (*.f64 y z)))
(*.f64 1/2 (+.f64 t (+.f64 t (*.f64 y (neg.f64 z)))))
(+.f64 t (*.f64 -1/2 (*.f64 y z)))
(*.f64 (+.f64 (*.f64 (*.f64 y z) -1/4) (*.f64 t 1/2)) 2)
(*.f64 2 (+.f64 (*.f64 (*.f64 y z) -1/4) (*.f64 t 1/2)))
(*.f64 2 (+.f64 (*.f64 y (*.f64 z -1/4)) (*.f64 t 1/2)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 4))
(+.f64 t (*.f64 -1/2 (*.f64 y z)))
(*.f64 (/.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 4) 4)
(+.f64 t (*.f64 -1/2 (*.f64 y z)))
(/.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 1)
(+.f64 t (*.f64 -1/2 (*.f64 y z)))
(/.f64 (+.f64 t (+.f64 t (*.f64 y (neg.f64 z)))) 2)
(+.f64 t (*.f64 -1/2 (*.f64 y z)))
(/.f64 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 4) 4)
(+.f64 t (*.f64 -1/2 (*.f64 y z)))
(/.f64 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 8) 8)
(+.f64 t (*.f64 -1/2 (*.f64 y z)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 8)) 16)
(+.f64 t (*.f64 -1/2 (*.f64 y z)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 8))) 32)
(+.f64 t (*.f64 -1/2 (*.f64 y z)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 8)))) 64)
(+.f64 t (*.f64 -1/2 (*.f64 y z)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 8))))) 128)
(+.f64 t (*.f64 -1/2 (*.f64 y z)))
(pow.f64 (+.f64 (*.f64 -1/2 (*.f64 y z)) t) 1)
(+.f64 t (*.f64 -1/2 (*.f64 y z)))

localize6.0ms (0.1%)

Compiler

Compiled 15 to 10 computations (33.3% saved)

eval4.0ms (0.1%)

Compiler

Compiled 255 to 157 computations (38.4% saved)

prune6.0ms (0.1%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New22224
Fresh000
Picked011
Done022
Total22527
Error
0.0b
Counts
27 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2)) t)
18.7b
(+.f64 (*.f64 1/8 x) t)
22.5b
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
44.3b
(*.f64 -1/2 (*.f64 y z))
41.0b
t
Compiler

Compiled 49 to 37 computations (24.5% saved)

localize5.0ms (0.1%)

Compiler

Compiled 15 to 8 computations (46.7% saved)

eval0.0ms (0%)

Compiler

Compiled 4 to 4 computations (0% saved)

prune2.0ms (0%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked011
Done033
Total055
Error
0.0b
Counts
5 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2)) t)
18.7b
(+.f64 (*.f64 1/8 x) t)
22.5b
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
44.3b
(*.f64 -1/2 (*.f64 y z))
41.0b
t
Compiler

Compiled 49 to 37 computations (24.5% saved)

eval0.0ms (0%)

Compiler

Compiled 4 to 4 computations (0% saved)

prune2.0ms (0%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done044
Total055
Error
0.0b
Counts
5 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2)) t)
18.7b
(+.f64 (*.f64 1/8 x) t)
22.5b
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
44.3b
(*.f64 -1/2 (*.f64 y z))
41.0b
t
Compiler

Compiled 49 to 37 computations (24.5% saved)

regimes118.0ms (2.4%)

Counts
6 → 1
Calls
Call 1
Inputs
t
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 1/8 x) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2)) t)
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
Outputs
(+.f64 (-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2)) t)
Calls

9 calls:

77.0ms
(*.f64 y z)
5.0ms
(*.f64 (/.f64 1 8) x)
5.0ms
y
5.0ms
t
5.0ms
(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1t
0.0b1(+.f64 (-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2)) t)
0.0b1(-.f64 (*.f64 (/.f64 1 8) x) (/.f64 (*.f64 y z) 2))
0.0b1(*.f64 (/.f64 1 8) x)
0.0b1(/.f64 (*.f64 y z) 2)
0.0b1(*.f64 y z)
Compiler

Compiled 123 to 88 computations (28.5% saved)

regimes199.0ms (4.1%)

Counts
4 → 3
Calls
Call 1
Inputs
t
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 1/8 x) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
Outputs
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
(+.f64 (*.f64 1/8 x) t)
(+.f64 (*.f64 -1/2 (*.f64 y z)) t)
Calls

5 calls:

98.0ms
t
51.0ms
y
19.0ms
z
18.0ms
(*.f64 y z)
11.0ms
x
Results
ErrorSegmentsBranch
8.0b3x
12.5b3y
11.0b5z
13.6b7t
7.6b3(*.f64 y z)
Compiler

Compiled 49 to 34 computations (30.6% saved)

bsearch33.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
2.4120810020285988e+44
3.316647301421992e+52
15.0ms
-6.3914048462827284e+41
-1.206698188896925e+38
Results
29.0ms272×body256valid
Compiler

Compiled 364 to 291 computations (20.1% saved)

regimes68.0ms (1.4%)

Counts
3 → 3
Calls
Call 1
Inputs
t
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 1/8 x) t)
Outputs
(*.f64 -1/2 (*.f64 y z))
(+.f64 (*.f64 1/8 x) t)
(*.f64 -1/2 (*.f64 y z))
Calls

5 calls:

19.0ms
z
17.0ms
t
13.0ms
x
12.0ms
(*.f64 y z)
6.0ms
y
Results
ErrorSegmentsBranch
16.7b3x
16.7b2y
15.2b6z
16.1b5t
11.6b3(*.f64 y z)
Compiler

Compiled 42 to 31 computations (26.2% saved)

bsearch34.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
4.1569111387545714e+143
1.755064524474164e+147
19.0ms
-6.861392132249747e+103
-3.1549322722331607e+86
Results
30.0ms287×body256valid
0.0msbody1024valid
Compiler

Compiled 348 to 289 computations (17% saved)

regimes71.0ms (1.5%)

Accuracy

Total -34.4b remaining (-122.7%)

Threshold costs -34.4b (-122.7%)

Counts
2 → 3
Calls
Call 1
Inputs
t
(*.f64 -1/2 (*.f64 y z))
Outputs
t
(*.f64 -1/2 (*.f64 y z))
t
Calls

5 calls:

22.0ms
y
14.0ms
t
13.0ms
z
13.0ms
x
8.0ms
(*.f64 y z)
Results
ErrorSegmentsBranch
37.9b3x
31.0b7y
33.8b3z
28.0b3t
30.1b3(*.f64 y z)
Compiler

Compiled 37 to 28 computations (24.3% saved)

bsearch19.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
0.0ms
4.612852429011275e+41
4.8079178493379984e+41
19.0ms
-7.615382876180122e+77
-3.0568847834393023e+66
Results
17.0ms160×body256valid
Compiler

Compiled 184 to 149 computations (19% saved)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
038215
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2)) t)
(if (<=.f64 (*.f64 y z) -300000000000000012135895401846682943488) (+.f64 (*.f64 -1/2 (*.f64 y z)) t) (if (<=.f64 (*.f64 y z) 89999999999999996482199139913043045904475815411712) (+.f64 (*.f64 1/8 x) t) (+.f64 (*.f64 -1/2 (*.f64 y z)) t)))
(if (<=.f64 (*.f64 y z) -124999999999999997131189158155667078555855339990518750766249496841499181522598738912907661810188943360) (*.f64 -1/2 (*.f64 y z)) (if (<=.f64 (*.f64 y z) 449999999999999967362480590755265229921174440287224118168729942154472856255165810552221998234337122358605590733047144462369364654519726880325632) (+.f64 (*.f64 1/8 x) t) (*.f64 -1/2 (*.f64 y z))))
(if (<=.f64 t -49999999999999997582409405901396098942598045401506677583603409881825017856) t (if (<=.f64 t 480000000000000033924542478330242806054912) (*.f64 -1/2 (*.f64 y z)) t))
t
Outputs
(+.f64 (-.f64 (*.f64 1/8 x) (/.f64 (*.f64 y z) 2)) t)
(if (<=.f64 (*.f64 y z) -300000000000000012135895401846682943488) (+.f64 (*.f64 -1/2 (*.f64 y z)) t) (if (<=.f64 (*.f64 y z) 89999999999999996482199139913043045904475815411712) (+.f64 (*.f64 1/8 x) t) (+.f64 (*.f64 -1/2 (*.f64 y z)) t)))
(if (<=.f64 (*.f64 y z) -124999999999999997131189158155667078555855339990518750766249496841499181522598738912907661810188943360) (*.f64 -1/2 (*.f64 y z)) (if (<=.f64 (*.f64 y z) 449999999999999967362480590755265229921174440287224118168729942154472856255165810552221998234337122358605590733047144462369364654519726880325632) (+.f64 (*.f64 1/8 x) t) (*.f64 -1/2 (*.f64 y z))))
(if (<=.f64 t -49999999999999997582409405901396098942598045401506677583603409881825017856) t (if (<=.f64 t 480000000000000033924542478330242806054912) (*.f64 -1/2 (*.f64 y z)) t))
t
Compiler

Compiled 105 to 66 computations (37.1% saved)

soundness123.0ms (2.5%)

Algorithm
egg-herbie
Rules
6090×rational.json-simplify-51
2652×rational.json-simplify-41
1092×rational.json-simplify-2
604×rational.json-simplify-35
566×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01631
12531
23631
35231
48031
513131
626331
758631
896131
9114031
10117631
11121031
12123831
13126631
14129431
15132231
16135031
17137831
18140631
19143431
20146231
21149031
22151831
23309331
24383431
Stop Event
node limit
Compiler

Compiled 28 to 19 computations (32.1% saved)

end209.0ms (4.3%)

Remove

(sort y z)

Compiler

Compiled 119 to 69 computations (42% saved)

Profiling

Loading profile data...