Details

Time bar (total: 16.4s)

analyze175.0ms (1.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
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
42.2%42.1%57.7%0.1%0%0%0%10
49.2%49.1%50.7%0.1%0%0%0%11
57.4%57.3%42.5%0.1%0%0%0%12
Compiler

Compiled 15 to 9 computations (40% saved)

sample2.1s (12.9%)

Results
2.0s7808×body256valid
40.0ms195×body1024valid
26.0ms176×body512valid
25.0ms77×body2048valid
1.0ms10×body256infinite
Bogosity

preprocess21.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
025124
145124
285124
3137124
4267124
5428124
6487124
7496124
8496124
033
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(+.f64 (+.f64 (+.f64 (+.f64 (+.f64 x y) y) x) z) x)
(+.f64 (+.f64 (+.f64 (+.f64 (+.f64 y x) x) y) z) y)
(+.f64 (+.f64 (+.f64 (+.f64 (+.f64 z y) y) z) x) z)
(+.f64 (+.f64 (+.f64 (+.f64 (+.f64 x z) z) x) y) x)
Outputs
(+.f64 (+.f64 (+.f64 (+.f64 (+.f64 x y) y) x) z) x)
(+.f64 x (+.f64 (+.f64 x (+.f64 y (+.f64 x y))) z))
(+.f64 x (+.f64 x (+.f64 (+.f64 x (+.f64 y y)) z)))
(+.f64 x (+.f64 x (+.f64 x (+.f64 z (+.f64 y y)))))
(+.f64 (+.f64 (+.f64 (+.f64 (+.f64 y x) x) y) z) y)
(+.f64 y (+.f64 z (+.f64 y (+.f64 x (+.f64 x y)))))
(+.f64 y (+.f64 x (+.f64 (+.f64 x (+.f64 y y)) z)))
(+.f64 x (+.f64 (+.f64 (+.f64 x (+.f64 y y)) z) y))
(+.f64 x (+.f64 y (+.f64 x (+.f64 z (+.f64 y y)))))
(+.f64 x (+.f64 x (+.f64 (+.f64 z (+.f64 y y)) y)))
(+.f64 x (+.f64 x (+.f64 y (+.f64 z (+.f64 y y)))))
(+.f64 (+.f64 (+.f64 (+.f64 (+.f64 z y) y) z) x) z)
(+.f64 z (+.f64 x (+.f64 z (+.f64 y (+.f64 y z)))))
(+.f64 z (+.f64 x (+.f64 z (+.f64 z (+.f64 y y)))))
(+.f64 (+.f64 (+.f64 (+.f64 (+.f64 x z) z) x) y) x)
(+.f64 x (+.f64 y (+.f64 x (+.f64 z (+.f64 x z)))))
(+.f64 x (+.f64 x (+.f64 (+.f64 x (+.f64 z z)) y)))
(+.f64 x (+.f64 x (+.f64 y (+.f64 x (+.f64 z z)))))
(+.f64 x (+.f64 x (+.f64 x (+.f64 (+.f64 z z) y))))
(+.f64 (+.f64 z z) (+.f64 x (+.f64 x (+.f64 x y))))
Compiler

Compiled 17 to 11 computations (35.3% saved)

simplify13.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01031
11531
22831
34431
48131
513731
617931
718631
818631
Stop Event
saturated
Counts
1 → 7
Calls
Call 1
Inputs
(+.f64 (+.f64 (+.f64 (+.f64 (+.f64 x y) y) x) z) x)
Outputs
(+.f64 (+.f64 (+.f64 (+.f64 (+.f64 x y) y) x) z) x)
(+.f64 x (+.f64 (+.f64 x (+.f64 y (+.f64 x y))) z))
(+.f64 x (+.f64 x (+.f64 (+.f64 x (+.f64 y y)) z)))
(+.f64 (+.f64 x (+.f64 y y)) (+.f64 (+.f64 x z) x))
(+.f64 x (+.f64 x (+.f64 x (+.f64 (+.f64 y y) z))))
(+.f64 x (+.f64 x (+.f64 x (+.f64 z (+.f64 y y)))))
(+.f64 x (+.f64 x (+.f64 x (+.f64 y (+.f64 y z)))))

eval1.0ms (0%)

Compiler

Compiled 80 to 33 computations (58.8% saved)

prune2.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New527
Fresh011
Picked000
Done000
Total538
Error
0.0b
Counts
8 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (+.f64 (+.f64 (+.f64 (+.f64 x y) y) x) z) x)
0.0b
(+.f64 (+.f64 x (+.f64 y y)) (+.f64 (+.f64 x z) x))
Compiler

Compiled 28 to 16 computations (42.9% saved)

localize225.0ms (1.4%)

Local error

Found 2 expressions with local error:

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

Compiled 33 to 8 computations (75.8% saved)

series3.0ms (0%)

Counts
2 → 60
Calls

15 calls:

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

rewrite230.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
2780×rational.json-simplify-35
2102×rational.json-simplify-2
1622×rational.json-simplify-1
1176×exponential.json-3
1176×rational.json-1
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01044
17044
216644
341538
4114438
5244238
6359038
7467038
8575138
9639838
10639838
11678238
12740038
Stop Event
node limit
Counts
2 → 42
Calls
Call 1
Inputs
(+.f64 (+.f64 x (+.f64 y y)) (+.f64 (+.f64 x z) x))
(+.f64 (+.f64 x z) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (+.f64 x y) (*.f64 (+.f64 x z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 x y) (*.f64 (+.f64 x z) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 z (+.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 z (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 x (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z (+.f64 x x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 z (+.f64 x x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z (+.f64 x x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 z (+.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 z 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 z (+.f64 x x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 z (+.f64 x x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 z (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z (+.f64 x x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z (+.f64 x x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 z (+.f64 x x)) 1)))))

simplify1.2s (7.3%)

Algorithm
egg-herbie
Rules
2808×rational.json-simplify-35
2304×rational.json-simplify-49
2240×rational.json-simplify-51
2210×rational.json-simplify-2
1068×rational.json-simplify-1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01031950
12221950
25331836
314091836
426931836
533161836
634091836
734761836
835281836
935781836
1036281836
1136781836
1237281836
1337781836
1438281836
1538781836
1639281836
1739781836
1840281836
1940781836
2052201836
2153591836
2254111836
2354111836
2454111836
2560671836
2660731836
2761231836
2861671836
2962111836
3062551836
3162991836
3263431836
3363871836
3464311836
3564751836
3665191836
3765631836
Stop Event
node limit
Counts
102 → 68
Calls
Call 1
Inputs
(+.f64 (*.f64 2 y) z)
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 2 x) (+.f64 z x))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(*.f64 2 y)
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(*.f64 2 y)
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) x))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
z
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
z
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
z
(+.f64 (*.f64 2 x) z)
(+.f64 (*.f64 2 x) z)
(+.f64 (*.f64 2 x) z)
(*.f64 2 x)
(+.f64 (*.f64 2 x) z)
(+.f64 (*.f64 2 x) z)
(+.f64 (*.f64 2 x) z)
(*.f64 2 x)
(+.f64 (*.f64 2 x) z)
(+.f64 (*.f64 2 x) z)
(+.f64 (*.f64 2 x) z)
(*.f64 2 x)
(+.f64 (*.f64 2 x) z)
(+.f64 (*.f64 2 x) z)
(+.f64 (*.f64 2 x) z)
z
(+.f64 (*.f64 2 x) z)
(+.f64 (*.f64 2 x) z)
(+.f64 (*.f64 2 x) z)
z
(+.f64 (*.f64 2 x) z)
(+.f64 (*.f64 2 x) z)
(+.f64 (*.f64 2 x) z)
(-.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 0)
(*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 1)
(*.f64 1 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))))
(*.f64 2 (+.f64 (+.f64 x y) (*.f64 (+.f64 x z) 1/2)))
(*.f64 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4))
(*.f64 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 2))
(*.f64 (+.f64 (+.f64 x y) (*.f64 (+.f64 x z) 1/2)) 2)
(*.f64 1/4 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4))
(*.f64 (/.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4) 4)
(/.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 1)
(/.f64 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 2) 2)
(/.f64 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4)))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4))))))) 256)
(pow.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 1)
(-.f64 (+.f64 z (+.f64 x x)) 0)
(*.f64 (+.f64 z (+.f64 x x)) 1)
(*.f64 1 (+.f64 z (+.f64 x x)))
(*.f64 2 (+.f64 x (*.f64 z 1/2)))
(*.f64 (*.f64 (+.f64 z (+.f64 x x)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 z (+.f64 x x)) 4))
(*.f64 (*.f64 (+.f64 z (+.f64 x x)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 z (+.f64 x x)) 2))
(*.f64 (+.f64 x (*.f64 z 1/2)) 2)
(*.f64 1/4 (*.f64 (+.f64 z (+.f64 x x)) 4))
(*.f64 (/.f64 (+.f64 z (+.f64 x x)) 4) 4)
(/.f64 (+.f64 z (+.f64 x x)) 1)
(/.f64 (*.f64 (+.f64 z (+.f64 x x)) 2) 2)
(/.f64 (*.f64 (+.f64 z (+.f64 x x)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4)))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4))))))) 256)
(pow.f64 (+.f64 z (+.f64 x x)) 1)
Outputs
(+.f64 (*.f64 2 y) z)
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (+.f64 (*.f64 2 y) z) (*.f64 3 x))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 3 x)))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 3 x)))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (+.f64 (*.f64 2 y) z) (*.f64 3 x))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 3 x)))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 3 x)))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (+.f64 (*.f64 2 y) z) (*.f64 3 x))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 3 x)))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 3 x)))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (+.f64 (*.f64 2 y) z) (*.f64 3 x))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 3 x)))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 3 x)))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (+.f64 (*.f64 2 y) z) (*.f64 3 x))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 3 x)))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 3 x)))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (+.f64 (*.f64 2 y) z) (*.f64 3 x))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 3 x)))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 3 x)))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (+.f64 (*.f64 2 y) z) (*.f64 3 x))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 3 x)))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 3 x)))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (+.f64 (*.f64 2 y) z) (*.f64 3 x))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 3 x)))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 3 x)))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (+.f64 (*.f64 2 y) z) (*.f64 3 x))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 3 x)))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 3 x)))
(+.f64 (*.f64 2 x) (+.f64 z x))
(+.f64 x (+.f64 z (*.f64 2 x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
(*.f64 2 y)
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
(*.f64 2 y)
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) x))
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
z
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
z
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 z (+.f64 x (*.f64 2 (+.f64 y x))))
z
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
(*.f64 2 x)
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
(*.f64 2 x)
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
(*.f64 2 x)
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
z
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
z
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
(+.f64 (*.f64 2 x) z)
(+.f64 z (*.f64 2 x))
(-.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 0)
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 1)
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(*.f64 1 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))))
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(*.f64 2 (+.f64 (+.f64 x y) (*.f64 (+.f64 x z) 1/2)))
(*.f64 2 (+.f64 (+.f64 y x) (*.f64 (+.f64 z x) 1/2)))
(*.f64 2 (+.f64 x (+.f64 y (*.f64 (+.f64 z x) 1/2))))
(*.f64 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 2) 1/2)
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(*.f64 4 (/.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4))
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(*.f64 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4) 1/4)
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(*.f64 1/2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 2))
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(*.f64 (+.f64 (+.f64 x y) (*.f64 (+.f64 x z) 1/2)) 2)
(*.f64 2 (+.f64 (+.f64 y x) (*.f64 (+.f64 z x) 1/2)))
(*.f64 2 (+.f64 x (+.f64 y (*.f64 (+.f64 z x) 1/2))))
(*.f64 1/4 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4))
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(*.f64 (/.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4) 4)
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(/.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 1)
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(/.f64 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 2) 2)
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(/.f64 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4) 4)
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(/.f64 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4)) 8)
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4))) 16)
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4)))) 32)
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4))))) 64)
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4)))))) 128)
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 4))))))) 256)
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(pow.f64 (+.f64 y (+.f64 y (+.f64 z (*.f64 x 3)))) 1)
(+.f64 y (+.f64 y (+.f64 z (*.f64 3 x))))
(+.f64 y (+.f64 (*.f64 3 x) (+.f64 z y)))
(+.f64 y (+.f64 z (+.f64 y (*.f64 3 x))))
(-.f64 (+.f64 z (+.f64 x x)) 0)
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(*.f64 (+.f64 z (+.f64 x x)) 1)
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(*.f64 1 (+.f64 z (+.f64 x x)))
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(*.f64 2 (+.f64 x (*.f64 z 1/2)))
(*.f64 (*.f64 (+.f64 z (+.f64 x x)) 2) 1/2)
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(*.f64 4 (/.f64 (+.f64 z (+.f64 x x)) 4))
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(*.f64 (*.f64 (+.f64 z (+.f64 x x)) 4) 1/4)
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(*.f64 1/2 (*.f64 (+.f64 z (+.f64 x x)) 2))
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(*.f64 (+.f64 x (*.f64 z 1/2)) 2)
(*.f64 2 (+.f64 x (*.f64 z 1/2)))
(*.f64 1/4 (*.f64 (+.f64 z (+.f64 x x)) 4))
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(*.f64 (/.f64 (+.f64 z (+.f64 x x)) 4) 4)
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(/.f64 (+.f64 z (+.f64 x x)) 1)
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(/.f64 (*.f64 (+.f64 z (+.f64 x x)) 2) 2)
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(/.f64 (*.f64 (+.f64 z (+.f64 x x)) 4) 4)
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(/.f64 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4)) 8)
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4))) 16)
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4)))) 32)
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4))))) 64)
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4)))))) 128)
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (+.f64 x x)) 4))))))) 256)
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))
(pow.f64 (+.f64 z (+.f64 x x)) 1)
(+.f64 z (+.f64 x x))
(+.f64 x (+.f64 z x))

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 41 to 8 computations (80.5% saved)

series2.0ms (0%)

Counts
3 → 84
Calls

21 calls:

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

rewrite258.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
3452×rational.json-simplify-35
1866×rational.json-simplify-2
1240×rational.json-simplify-1
1190×exponential.json-3
1190×rational.json-1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01063
16763
214751
335551
490251
5197851
6295851
7398251
8512351
9570451
10570451
11598251
12598251
13694651
Stop Event
node limit
Counts
3 → 66
Calls
Call 1
Inputs
(+.f64 (+.f64 x y) y)
(+.f64 (+.f64 (+.f64 x y) y) x)
(+.f64 (+.f64 (+.f64 (+.f64 (+.f64 x y) y) x) z) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (+.f64 y y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 y (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x (*.f64 y 4))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x (+.f64 y y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 y y)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 x (+.f64 x (*.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 x 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (+.f64 y y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (+.f64 y y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x (*.f64 y 4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 y y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (+.f64 y y)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x y) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (+.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 8) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 1/2) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x y) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) 4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) 8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x y) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 x y) 2) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 1)))))

simplify1.3s (7.6%)

Algorithm
egg-herbie
Rules
3826×rational.json-simplify-1
2708×rational.json-simplify-41
2272×rational.json-simplify-35
2104×rational.json-simplify-2
1420×rational.json-simplify-51
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01402946
13132460
27402460
322442460
429712460
532222460
633352460
734012460
834652460
963312460
1065372460
1166562460
1267342460
1367952460
1468562460
1574692460
1675302460
1775302460
1875302460
1975912460
2076522460
2177132460
Stop Event
node limit
Counts
150 → 95
Calls
Call 1
Inputs
(*.f64 2 y)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
x
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
x
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
x
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(*.f64 2 y)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(*.f64 2 y)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(*.f64 2 y)
(+.f64 (*.f64 2 x) (*.f64 2 y))
(+.f64 (*.f64 2 x) (*.f64 2 y))
(+.f64 (*.f64 2 x) (*.f64 2 y))
(*.f64 2 x)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 x)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 x)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 y)
(+.f64 (*.f64 2 x) (*.f64 2 y))
(+.f64 (*.f64 2 x) (*.f64 2 y))
(+.f64 (*.f64 2 x) (*.f64 2 y))
(*.f64 2 y)
(+.f64 (*.f64 2 x) (*.f64 2 y))
(+.f64 (*.f64 2 x) (*.f64 2 y))
(+.f64 (*.f64 2 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) z)
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 2 x) (+.f64 z x))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(*.f64 2 y)
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(*.f64 2 y)
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) x))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
z
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
z
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(-.f64 (+.f64 x (+.f64 y y)) 0)
(*.f64 (+.f64 x (+.f64 y y)) 1)
(*.f64 1 (+.f64 x (+.f64 y y)))
(*.f64 2 (+.f64 y (*.f64 x 1/2)))
(*.f64 (+.f64 x (+.f64 x (*.f64 y 4))) 1/2)
(*.f64 4 (/.f64 (+.f64 x (+.f64 y y)) 4))
(*.f64 (*.f64 (+.f64 x (+.f64 y y)) 4) 1/4)
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 y 4))))
(*.f64 (+.f64 y (*.f64 x 1/2)) 2)
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 y y)) 4))
(*.f64 (/.f64 (+.f64 x (+.f64 y y)) 4) 4)
(/.f64 (+.f64 x (+.f64 y y)) 1)
(/.f64 (+.f64 x (+.f64 x (*.f64 y 4))) 2)
(/.f64 (*.f64 (+.f64 x (+.f64 y y)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)))))))) 512)
(pow.f64 (+.f64 x (+.f64 y y)) 1)
(-.f64 (*.f64 (+.f64 x y) 2) 0)
(*.f64 (+.f64 x y) 2)
(*.f64 (*.f64 (+.f64 x y) 2) 1)
(*.f64 1 (*.f64 (+.f64 x y) 2))
(*.f64 2 (+.f64 x y))
(*.f64 (*.f64 (+.f64 x y) 4) 1/2)
(*.f64 4 (*.f64 (+.f64 x y) 1/2))
(*.f64 (*.f64 (+.f64 x y) 8) 1/4)
(*.f64 1/2 (*.f64 (+.f64 x y) 4))
(*.f64 (*.f64 (+.f64 x y) 1/2) 4)
(*.f64 1/4 (*.f64 (+.f64 x y) 8))
(/.f64 (*.f64 (+.f64 x y) 2) 1)
(/.f64 (*.f64 (+.f64 x y) 4) 2)
(/.f64 (*.f64 (+.f64 x y) 8) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 x y) 8)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))))))) 512)
(pow.f64 (*.f64 (+.f64 x y) 2) 1)
(-.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 0)
(*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 1)
(*.f64 1 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)))
(*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 1/2))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 2) 1/2)
(*.f64 4 (/.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 2))
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 1/2) 2)
(*.f64 (/.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4) 4)
(/.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 1)
(/.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 2) 2)
(/.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4) 4)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4)))))))) 512)
(pow.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 1)
Outputs
(*.f64 2 y)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
x
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
x
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
x
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(*.f64 2 y)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(*.f64 2 y)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(+.f64 (*.f64 2 y) x)
(*.f64 2 y)
(+.f64 (*.f64 2 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(+.f64 (*.f64 2 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(+.f64 (*.f64 2 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(*.f64 2 x)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(*.f64 2 x)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(*.f64 2 x)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(*.f64 2 y)
(+.f64 (*.f64 2 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(+.f64 (*.f64 2 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(+.f64 (*.f64 2 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(*.f64 2 y)
(+.f64 (*.f64 2 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(+.f64 (*.f64 2 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(+.f64 (*.f64 2 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(+.f64 (*.f64 2 y) z)
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 x 3)))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 x 3)))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 x 3)))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 x 3)))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 x 3)))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 x 3)))
(*.f64 3 x)
(*.f64 x 3)
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 x 3)))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 x 3)))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 x 3)))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 x 3)))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 x 3)))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 x 3)))
(*.f64 3 x)
(*.f64 x 3)
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 x 3)))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 x 3)))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 x 3)))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 x 3)))
(+.f64 (*.f64 3 x) (+.f64 (*.f64 2 y) z))
(+.f64 (*.f64 2 y) (+.f64 z (*.f64 x 3)))
(+.f64 z (+.f64 (*.f64 2 y) (*.f64 x 3)))
(+.f64 (*.f64 2 x) (+.f64 z x))
(+.f64 (*.f64 2 x) (+.f64 x z))
(+.f64 x (+.f64 (*.f64 2 x) z))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(*.f64 2 y)
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(*.f64 2 y)
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) x))
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
z
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
z
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) (+.f64 z x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(-.f64 (+.f64 x (+.f64 y y)) 0)
(+.f64 x (+.f64 y y))
(+.f64 y (+.f64 y x))
(*.f64 (+.f64 x (+.f64 y y)) 1)
(+.f64 x (+.f64 y y))
(+.f64 y (+.f64 y x))
(*.f64 1 (+.f64 x (+.f64 y y)))
(+.f64 x (+.f64 y y))
(+.f64 y (+.f64 y x))
(*.f64 2 (+.f64 y (*.f64 x 1/2)))
(*.f64 (+.f64 x (+.f64 x (*.f64 y 4))) 1/2)
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 y 4))))
(*.f64 1/2 (+.f64 (*.f64 y 4) (+.f64 x x)))
(*.f64 4 (/.f64 (+.f64 x (+.f64 y y)) 4))
(+.f64 x (+.f64 y y))
(+.f64 y (+.f64 y x))
(*.f64 (*.f64 (+.f64 x (+.f64 y y)) 4) 1/4)
(+.f64 x (+.f64 y y))
(+.f64 y (+.f64 y x))
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 y 4))))
(*.f64 1/2 (+.f64 (*.f64 y 4) (+.f64 x x)))
(*.f64 (+.f64 y (*.f64 x 1/2)) 2)
(*.f64 2 (+.f64 y (*.f64 x 1/2)))
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 y y)) 4))
(+.f64 x (+.f64 y y))
(+.f64 y (+.f64 y x))
(*.f64 (/.f64 (+.f64 x (+.f64 y y)) 4) 4)
(+.f64 x (+.f64 y y))
(+.f64 y (+.f64 y x))
(/.f64 (+.f64 x (+.f64 y y)) 1)
(+.f64 x (+.f64 y y))
(+.f64 y (+.f64 y x))
(/.f64 (+.f64 x (+.f64 x (*.f64 y 4))) 2)
(/.f64 (+.f64 (*.f64 y 4) (+.f64 x x)) 2)
(/.f64 (*.f64 (+.f64 x (+.f64 y y)) 4) 4)
(+.f64 x (+.f64 y y))
(+.f64 y (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)) 8)
(+.f64 x (+.f64 y y))
(+.f64 y (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))) 16)
(+.f64 x (+.f64 y y))
(+.f64 y (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)))) 32)
(+.f64 x (+.f64 y y))
(+.f64 y (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))))) 64)
(+.f64 x (+.f64 y y))
(+.f64 y (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)))))) 128)
(+.f64 x (+.f64 y y))
(+.f64 y (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))))))) 256)
(+.f64 x (+.f64 y y))
(+.f64 y (+.f64 y x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 y y)) 4)))))))) 512)
(+.f64 x (+.f64 y y))
(+.f64 y (+.f64 y x))
(pow.f64 (+.f64 x (+.f64 y y)) 1)
(+.f64 x (+.f64 y y))
(+.f64 y (+.f64 y x))
(-.f64 (*.f64 (+.f64 x y) 2) 0)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(*.f64 (+.f64 x y) 2)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(*.f64 (*.f64 (+.f64 x y) 2) 1)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(*.f64 1 (*.f64 (+.f64 x y) 2))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(*.f64 2 (+.f64 x y))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(*.f64 (*.f64 (+.f64 x y) 4) 1/2)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(*.f64 4 (*.f64 (+.f64 x y) 1/2))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(*.f64 (*.f64 (+.f64 x y) 8) 1/4)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(*.f64 1/2 (*.f64 (+.f64 x y) 4))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(*.f64 (*.f64 (+.f64 x y) 1/2) 4)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(*.f64 1/4 (*.f64 (+.f64 x y) 8))
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(/.f64 (*.f64 (+.f64 x y) 2) 1)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(/.f64 (*.f64 (+.f64 x y) 4) 2)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(/.f64 (*.f64 (+.f64 x y) 8) 4)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 (+.f64 x y) 8)) 8)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))) 16)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))) 32)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))))) 64)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))))) 128)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))))))) 256)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 8)))))))) 512)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(pow.f64 (*.f64 (+.f64 x y) 2) 1)
(+.f64 (*.f64 2 y) (*.f64 2 x))
(*.f64 2 (+.f64 y x))
(-.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 0)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 1)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(*.f64 1 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 1/2))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 2) 1/2)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(*.f64 4 (/.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4) 1/4)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(*.f64 1/2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 2))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(*.f64 1/4 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(*.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 1/2) 2)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(*.f64 (/.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4) 4)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(/.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 1)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 2) 2)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4) 4)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4)) 8)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))) 16)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4)))) 32)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))))) 64)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4)))))) 128)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))))))) 256)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 4)))))))) 512)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))
(pow.f64 (+.f64 x (+.f64 (*.f64 (+.f64 x y) 2) z)) 1)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) (+.f64 x z)))
(+.f64 x (+.f64 z (*.f64 2 (+.f64 y x))))
(+.f64 (+.f64 x z) (*.f64 2 (+.f64 y x)))

eval42.0ms (0.3%)

Compiler

Compiled 2210 to 1289 computations (41.7% saved)

prune26.0ms (0.2%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New1576163
Fresh000
Picked101
Done101
Total1596165
Error
0.0b
Counts
165 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
20.3b
(+.f64 (*.f64 2 y) z)
23.4b
(+.f64 (*.f64 2 x) (+.f64 z x))
20.0b
(+.f64 x (*.f64 2 (+.f64 y x)))
42.7b
(*.f64 x 3)
39.9b
(*.f64 2 y)
43.6b
z
Compiler

Compiled 84 to 63 computations (25% saved)

localize7.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 21 to 10 computations (52.4% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite258.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
3162×rational.json-simplify-35
1982×rational.json-simplify-2
1206×rational.json-simplify-1
1140×exponential.json-3
1140×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
15319
210919
321519
441819
5100519
6233919
7382419
8458119
9540519
10589619
11589619
12641619
13663019
14712519
Stop Event
node limit
Counts
1 → 29
Calls
Call 1
Inputs
(+.f64 x (*.f64 2 (+.f64 y x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 x (+.f64 y (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 2 (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x (*.f64 (+.f64 x y) 4))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (+.f64 (*.f64 (+.f64 x y) 1/2) (*.f64 x 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 x (+.f64 x (*.f64 (+.f64 x y) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 x x) (*.f64 (+.f64 x y) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 y (*.f64 x 1/2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (+.f64 x y) 1/2) (*.f64 x 1/4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 x x) (*.f64 (+.f64 x y) 4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x (*.f64 (+.f64 x y) 4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 1)))))

simplify313.0ms (1.9%)

Algorithm
egg-herbie
Rules
4462×rational.json-simplify-41
1618×rational.json-simplify-51
1610×rational.json-simplify-2
1350×rational.json-simplify-35
582×rational.json-simplify-1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0811181
11721181
2395977
31266977
42409977
52900977
62971977
73021977
83061977
93100977
104023977
114100977
124137977
134171977
144201977
154231977
164696977
174729977
184762977
194792977
Stop Event
node limit
Counts
53 → 42
Calls
Call 1
Inputs
(*.f64 2 y)
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 x) x)
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) x))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) x))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) x))
(*.f64 2 y)
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) x))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) x))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) x))
(*.f64 2 y)
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) x))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) x))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) x))
(-.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 0)
(*.f64 2 (+.f64 x (+.f64 y (*.f64 x 1/2))))
(*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 1)
(*.f64 1 (+.f64 x (*.f64 2 (+.f64 x y))))
(*.f64 (+.f64 x (+.f64 x (*.f64 (+.f64 x y) 4))) 1/2)
(*.f64 4 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 1/4))
(*.f64 4 (+.f64 (*.f64 (+.f64 x y) 1/2) (*.f64 x 1/4)))
(*.f64 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 4) 1/4)
(*.f64 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8) 1/8)
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 (+.f64 x y) 4))))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 (+.f64 x y) 4)))
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 4))
(*.f64 (+.f64 x (+.f64 y (*.f64 x 1/2))) 2)
(*.f64 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8))
(*.f64 (+.f64 (*.f64 (+.f64 x y) 1/2) (*.f64 x 1/4)) 4)
(*.f64 (+.f64 (+.f64 x x) (*.f64 (+.f64 x y) 4)) 1/2)
(/.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 1)
(/.f64 (+.f64 x (+.f64 x (*.f64 (+.f64 x y) 4))) 2)
(/.f64 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 4) 4)
(/.f64 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8))))))) 512)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8)))))))) 1024)
(pow.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 1)
Outputs
(*.f64 2 y)
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 2 x) x)
(+.f64 x (*.f64 2 x))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) x))
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) x))
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 y) (+.f64 (*.f64 2 x) x))
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 2 y)
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) x))
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) x))
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) x))
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 2 y)
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) x))
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) x))
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 2 y) x))
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(-.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 0)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 2 (+.f64 x (+.f64 y (*.f64 x 1/2))))
(*.f64 2 (+.f64 y (+.f64 x (*.f64 x 1/2))))
(*.f64 2 (+.f64 (+.f64 y x) (*.f64 x 1/2)))
(*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 1)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 1 (+.f64 x (*.f64 2 (+.f64 x y))))
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 x (+.f64 x (*.f64 (+.f64 x y) 4))) 1/2)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 4 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 1/4))
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 4 (+.f64 (*.f64 (+.f64 x y) 1/2) (*.f64 x 1/4)))
(*.f64 4 (+.f64 (*.f64 (+.f64 y x) 1/2) (*.f64 x 1/4)))
(*.f64 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 4) 1/4)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8) 1/8)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 1/2 (+.f64 x (+.f64 x (*.f64 (+.f64 x y) 4))))
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 (+.f64 x y) 4)))
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 4))
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 x (+.f64 y (*.f64 x 1/2))) 2)
(*.f64 2 (+.f64 x (+.f64 y (*.f64 x 1/2))))
(*.f64 2 (+.f64 y (+.f64 x (*.f64 x 1/2))))
(*.f64 2 (+.f64 (+.f64 y x) (*.f64 x 1/2)))
(*.f64 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 1/4) 4)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 1/8 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8))
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 (*.f64 (+.f64 x y) 1/2) (*.f64 x 1/4)) 4)
(*.f64 4 (+.f64 (*.f64 (+.f64 y x) 1/2) (*.f64 x 1/4)))
(*.f64 (+.f64 (+.f64 x x) (*.f64 (+.f64 x y) 4)) 1/2)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 1)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (+.f64 x (+.f64 x (*.f64 (+.f64 x y) 4))) 2)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 4) 4)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8) 8)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8)) 16)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8))) 32)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8)))) 64)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8))))) 128)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8)))))) 256)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8))))))) 512)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 8)))))))) 1024)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(pow.f64 (+.f64 x (*.f64 2 (+.f64 x y))) 1)
(+.f64 (*.f64 2 y) (+.f64 x (*.f64 2 x)))
(+.f64 x (*.f64 2 (+.f64 y x)))

localize6.0ms (0%)

Compiler

Compiled 8 to 6 computations (25% saved)

localize3.0ms (0%)

Compiler

Compiled 8 to 6 computations (25% saved)

localize5.0ms (0%)

Compiler

Compiled 14 to 9 computations (35.7% saved)

localize7.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 19 to 10 computations (47.4% saved)

series1.0ms (0%)

Counts
1 → 15
Calls

6 calls:

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

rewrite641.0ms (3.9%)

Algorithm
batch-egg-rewrite
Rules
2242×rational.json-simplify-2
2240×rational.json-simplify-35
1580×rational.json-simplify-1
1214×exponential.json-3
1214×rational.json-1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0819
15519
212213
325413
454413
5135613
6320813
7526313
8624813
9700313
10700313
11700313
Stop Event
node limit
Counts
1 → 29
Calls
Call 1
Inputs
(+.f64 (*.f64 2 x) (+.f64 z x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 z (*.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 z 1/2) (*.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (*.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 z (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (+.f64 z (*.f64 x 6))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 z (*.f64 x 3)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (+.f64 (*.f64 x 1/2) (*.f64 (+.f64 x z) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z (*.f64 x 3)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z (*.f64 x 3)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 z (+.f64 z (*.f64 x 6))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 z z) (*.f64 x 6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x 4) (*.f64 2 (+.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 z 1/2) (*.f64 x 3/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 z (*.f64 x 3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z (*.f64 x 3)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 z (*.f64 x 3)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 z z) (*.f64 x 6)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 1/2) (*.f64 (+.f64 x z) 1/4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 4) (*.f64 2 (+.f64 x z))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 z (*.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 z (+.f64 z (*.f64 x 6))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z (*.f64 x 3)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z (*.f64 x 3)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 z (*.f64 x 3)) 1)))))

simplify1.2s (7.2%)

Algorithm
egg-herbie
Rules
3180×rational.json-simplify-1
2580×rational.json-simplify-41
2008×rational.json-simplify-35
1522×rational.json-simplify-49
1484×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
078620
1150620
2351620
31089620
41942620
52277620
62342620
72390620
82428620
92465620
105015620
115508620
125556620
135591620
145622620
155651620
165680620
175719620
185747620
195775620
205803620
215831620
225859620
235887620
245915620
255943620
267340620
277396620
287448620
297476620
307504620
317532620
327560620
337588620
347616620
357644620
367672620
377700620
387728620
Stop Event
node limit
Counts
44 → 37
Calls
Call 1
Inputs
z
(+.f64 (*.f64 3 x) z)
(+.f64 (*.f64 3 x) z)
(+.f64 (*.f64 3 x) z)
(*.f64 3 x)
(+.f64 (*.f64 3 x) z)
(+.f64 (*.f64 3 x) z)
(+.f64 (*.f64 3 x) z)
(*.f64 3 x)
(+.f64 (*.f64 3 x) z)
(+.f64 (*.f64 3 x) z)
(+.f64 (*.f64 3 x) z)
(+.f64 (*.f64 2 x) x)
z
z
(-.f64 (+.f64 z (*.f64 x 3)) 0)
(*.f64 2 (+.f64 (*.f64 z 1/2) (*.f64 x 3/2)))
(*.f64 (+.f64 z (*.f64 x 3)) 1)
(*.f64 1 (+.f64 z (*.f64 x 3)))
(*.f64 (+.f64 z (+.f64 z (*.f64 x 6))) 1/2)
(*.f64 4 (*.f64 (+.f64 z (*.f64 x 3)) 1/4))
(*.f64 4 (+.f64 (*.f64 x 1/2) (*.f64 (+.f64 x z) 1/4)))
(*.f64 (*.f64 (+.f64 z (*.f64 x 3)) 4) 1/4)
(*.f64 (*.f64 (+.f64 z (*.f64 x 3)) 8) 1/8)
(*.f64 1/2 (+.f64 z (+.f64 z (*.f64 x 6))))
(*.f64 1/2 (+.f64 (+.f64 z z) (*.f64 x 6)))
(*.f64 1/2 (+.f64 (*.f64 x 4) (*.f64 2 (+.f64 x z))))
(*.f64 (+.f64 (*.f64 z 1/2) (*.f64 x 3/2)) 2)
(*.f64 1/4 (*.f64 (+.f64 z (*.f64 x 3)) 4))
(*.f64 (*.f64 (+.f64 z (*.f64 x 3)) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 z (*.f64 x 3)) 8))
(*.f64 (+.f64 (+.f64 z z) (*.f64 x 6)) 1/2)
(*.f64 (+.f64 (*.f64 x 1/2) (*.f64 (+.f64 x z) 1/4)) 4)
(*.f64 (+.f64 (*.f64 x 4) (*.f64 2 (+.f64 x z))) 1/2)
(/.f64 (+.f64 z (*.f64 x 3)) 1)
(/.f64 (+.f64 z (+.f64 z (*.f64 x 6))) 2)
(/.f64 (*.f64 (+.f64 z (*.f64 x 3)) 4) 4)
(/.f64 (*.f64 (+.f64 z (*.f64 x 3)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8)))))) 256)
(pow.f64 (+.f64 z (*.f64 x 3)) 1)
Outputs
z
(+.f64 (*.f64 3 x) z)
(+.f64 z (*.f64 3 x))
(+.f64 (*.f64 3 x) z)
(+.f64 z (*.f64 3 x))
(+.f64 (*.f64 3 x) z)
(+.f64 z (*.f64 3 x))
(*.f64 3 x)
(+.f64 (*.f64 3 x) z)
(+.f64 z (*.f64 3 x))
(+.f64 (*.f64 3 x) z)
(+.f64 z (*.f64 3 x))
(+.f64 (*.f64 3 x) z)
(+.f64 z (*.f64 3 x))
(*.f64 3 x)
(+.f64 (*.f64 3 x) z)
(+.f64 z (*.f64 3 x))
(+.f64 (*.f64 3 x) z)
(+.f64 z (*.f64 3 x))
(+.f64 (*.f64 3 x) z)
(+.f64 z (*.f64 3 x))
(+.f64 (*.f64 2 x) x)
(+.f64 x (*.f64 x 2))
z
z
(-.f64 (+.f64 z (*.f64 x 3)) 0)
(+.f64 z (*.f64 3 x))
(*.f64 2 (+.f64 (*.f64 z 1/2) (*.f64 x 3/2)))
(*.f64 (+.f64 z (*.f64 x 3)) 1)
(+.f64 z (*.f64 3 x))
(*.f64 1 (+.f64 z (*.f64 x 3)))
(+.f64 z (*.f64 3 x))
(*.f64 (+.f64 z (+.f64 z (*.f64 x 6))) 1/2)
(+.f64 z (*.f64 3 x))
(*.f64 4 (*.f64 (+.f64 z (*.f64 x 3)) 1/4))
(+.f64 z (*.f64 3 x))
(*.f64 4 (+.f64 (*.f64 x 1/2) (*.f64 (+.f64 x z) 1/4)))
(*.f64 4 (+.f64 (*.f64 x 1/2) (*.f64 1/4 (+.f64 z x))))
(*.f64 (*.f64 (+.f64 z (*.f64 x 3)) 4) 1/4)
(+.f64 z (*.f64 3 x))
(*.f64 (*.f64 (+.f64 z (*.f64 x 3)) 8) 1/8)
(+.f64 z (*.f64 3 x))
(*.f64 1/2 (+.f64 z (+.f64 z (*.f64 x 6))))
(+.f64 z (*.f64 3 x))
(*.f64 1/2 (+.f64 (+.f64 z z) (*.f64 x 6)))
(+.f64 z (*.f64 3 x))
(*.f64 1/2 (+.f64 (*.f64 x 4) (*.f64 2 (+.f64 x z))))
(*.f64 1/2 (+.f64 (*.f64 x 4) (*.f64 2 (+.f64 z x))))
(*.f64 (+.f64 (*.f64 z 1/2) (*.f64 x 3/2)) 2)
(*.f64 2 (+.f64 (*.f64 z 1/2) (*.f64 x 3/2)))
(*.f64 1/4 (*.f64 (+.f64 z (*.f64 x 3)) 4))
(+.f64 z (*.f64 3 x))
(*.f64 (*.f64 (+.f64 z (*.f64 x 3)) 1/4) 4)
(+.f64 z (*.f64 3 x))
(*.f64 1/8 (*.f64 (+.f64 z (*.f64 x 3)) 8))
(+.f64 z (*.f64 3 x))
(*.f64 (+.f64 (+.f64 z z) (*.f64 x 6)) 1/2)
(+.f64 z (*.f64 3 x))
(*.f64 (+.f64 (*.f64 x 1/2) (*.f64 (+.f64 x z) 1/4)) 4)
(*.f64 4 (+.f64 (*.f64 x 1/2) (*.f64 1/4 (+.f64 z x))))
(*.f64 (+.f64 (*.f64 x 4) (*.f64 2 (+.f64 x z))) 1/2)
(*.f64 1/2 (+.f64 (*.f64 x 4) (*.f64 2 (+.f64 z x))))
(/.f64 (+.f64 z (*.f64 x 3)) 1)
(+.f64 z (*.f64 3 x))
(/.f64 (+.f64 z (+.f64 z (*.f64 x 6))) 2)
(+.f64 z (*.f64 3 x))
(/.f64 (*.f64 (+.f64 z (*.f64 x 3)) 4) 4)
(+.f64 z (*.f64 3 x))
(/.f64 (*.f64 (+.f64 z (*.f64 x 3)) 8) 8)
(+.f64 z (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8)) 16)
(+.f64 z (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8))) 32)
(+.f64 z (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8)))) 64)
(+.f64 z (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8))))) 128)
(+.f64 z (*.f64 3 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z (*.f64 x 3)) 8)))))) 256)
(+.f64 z (*.f64 3 x))
(pow.f64 (+.f64 z (*.f64 x 3)) 1)
(+.f64 z (*.f64 3 x))

eval202.0ms (1.2%)

Compiler

Compiled 826 to 580 computations (29.8% saved)

prune921.0ms (5.6%)

Pruning

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New77279
Fresh011
Picked101
Done044
Total78785
Error
0b
Counts
85 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
20.8b
(/.f64 (+.f64 x (+.f64 x (*.f64 (+.f64 x y) 4))) 2)
23.4b
(+.f64 (*.f64 3 x) z)
20.3b
(+.f64 (*.f64 2 y) z)
20.0b
(+.f64 x (*.f64 2 (+.f64 y x)))
42.7b
(*.f64 x 3)
39.9b
(*.f64 2 y)
43.6b
z
Compiler

Compiled 56 to 42 computations (25% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 9 computations (35.7% saved)

series1.0ms (0%)

Counts
1 → 6
Calls

6 calls:

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

rewrite271.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
2280×rational.json-simplify-35
2072×rational.json-simplify-2
1304×rational.json-1
1304×rational.json-2
1304×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14613
29913
320313
437913
584213
6216413
7383913
8452113
9555813
10624113
11624113
12715913
13715913
14773613
Stop Event
node limit
Counts
1 → 24
Calls
Call 1
Inputs
(+.f64 (*.f64 3 x) z)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 3 x) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 3 x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 3 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 z 1/2) (*.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 z z) (*.f64 x 6)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 3 x) z) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 3 x) z) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 3 x) z) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 z z) (*.f64 x 6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 z 1/2) (*.f64 x 3/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 3 x) z) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 3 x) z) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 3 x) z) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 3 x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (+.f64 z z) (*.f64 x 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) z) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) z) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 3 x) z) 1)))))

simplify1.1s (6.6%)

Algorithm
egg-herbie
Rules
3240×rational.json-simplify-1
2518×rational.json-simplify-41
2034×rational.json-simplify-35
1570×rational.json-simplify-2
1366×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
062360
1130360
2338360
31138360
42108360
52476360
62543360
72592360
82631360
92669360
105252360
115344360
125393360
135430360
145462360
155492360
165950360
175980360
186009360
196038360
206067360
216096360
226125360
236154360
246183360
256212360
267632360
277691360
287746360
297775360
307804360
317833360
327862360
337891360
347920360
357949360
367978360
Stop Event
node limit
Counts
30 → 27
Calls
Call 1
Inputs
z
(*.f64 3 x)
(*.f64 3 x)
(*.f64 3 x)
z
z
(-.f64 (+.f64 (*.f64 3 x) z) 0)
(*.f64 (+.f64 (*.f64 3 x) z) 1)
(*.f64 1 (+.f64 (*.f64 3 x) z))
(*.f64 2 (+.f64 (*.f64 z 1/2) (*.f64 x 3/2)))
(*.f64 (+.f64 (+.f64 z z) (*.f64 x 6)) 1/2)
(*.f64 4 (*.f64 (+.f64 (*.f64 3 x) z) 1/4))
(*.f64 (*.f64 (+.f64 (*.f64 3 x) z) 4) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 3 x) z) 8) 1/8)
(*.f64 1/2 (+.f64 (+.f64 z z) (*.f64 x 6)))
(*.f64 (+.f64 (*.f64 z 1/2) (*.f64 x 3/2)) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 3 x) z) 4))
(*.f64 (*.f64 (+.f64 (*.f64 3 x) z) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 3 x) z) 8))
(/.f64 (+.f64 (*.f64 3 x) z) 1)
(/.f64 (+.f64 (+.f64 z z) (*.f64 x 6)) 2)
(/.f64 (*.f64 (+.f64 (*.f64 3 x) z) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 3 x) z) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8))))))) 512)
(pow.f64 (+.f64 (*.f64 3 x) z) 1)
Outputs
z
(*.f64 3 x)
(*.f64 3 x)
(*.f64 3 x)
z
z
(-.f64 (+.f64 (*.f64 3 x) z) 0)
(+.f64 z (*.f64 3 x))
(*.f64 (+.f64 (*.f64 3 x) z) 1)
(+.f64 z (*.f64 3 x))
(*.f64 1 (+.f64 (*.f64 3 x) z))
(+.f64 z (*.f64 3 x))
(*.f64 2 (+.f64 (*.f64 z 1/2) (*.f64 x 3/2)))
(*.f64 (+.f64 (+.f64 z z) (*.f64 x 6)) 1/2)
(+.f64 z (*.f64 3 x))
(*.f64 4 (*.f64 (+.f64 (*.f64 3 x) z) 1/4))
(+.f64 z (*.f64 3 x))
(*.f64 (*.f64 (+.f64 (*.f64 3 x) z) 4) 1/4)
(+.f64 z (*.f64 3 x))
(*.f64 (*.f64 (+.f64 (*.f64 3 x) z) 8) 1/8)
(+.f64 z (*.f64 3 x))
(*.f64 1/2 (+.f64 (+.f64 z z) (*.f64 x 6)))
(+.f64 z (*.f64 3 x))
(*.f64 (+.f64 (*.f64 z 1/2) (*.f64 x 3/2)) 2)
(*.f64 2 (+.f64 (*.f64 z 1/2) (*.f64 x 3/2)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 3 x) z) 4))
(+.f64 z (*.f64 3 x))
(*.f64 (*.f64 (+.f64 (*.f64 3 x) z) 1/4) 4)
(+.f64 z (*.f64 3 x))
(*.f64 1/8 (*.f64 (+.f64 (*.f64 3 x) z) 8))
(+.f64 z (*.f64 3 x))
(/.f64 (+.f64 (*.f64 3 x) z) 1)
(+.f64 z (*.f64 3 x))
(/.f64 (+.f64 (+.f64 z z) (*.f64 x 6)) 2)
(+.f64 z (*.f64 3 x))
(/.f64 (*.f64 (+.f64 (*.f64 3 x) z) 4) 4)
(+.f64 z (*.f64 3 x))
(/.f64 (*.f64 (+.f64 (*.f64 3 x) z) 8) 8)
(+.f64 z (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8)) 16)
(+.f64 z (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8))) 32)
(+.f64 z (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8)))) 64)
(+.f64 z (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8))))) 128)
(+.f64 z (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8)))))) 256)
(+.f64 z (*.f64 3 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) z) 8))))))) 512)
(+.f64 z (*.f64 3 x))
(pow.f64 (+.f64 (*.f64 3 x) z) 1)
(+.f64 z (*.f64 3 x))

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (*.f64 (+.f64 x y) 4))
0.2b
(+.f64 x (+.f64 x (*.f64 (+.f64 x y) 4)))
0.6b
(/.f64 (+.f64 x (+.f64 x (*.f64 (+.f64 x y) 4))) 2)
Compiler

Compiled 42 to 21 computations (50% saved)

series3.0ms (0%)

Counts
3 → 72
Calls

18 calls:

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

rewrite238.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
2572×rational.json-simplify-35
2196×rational.json-simplify-2
1868×rational.json-simplify-1
1262×exponential.json-3
1262×rational.json-1
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
01175
17575
215775
334075
470775
5187475
6357363
7442363
8584563
9675663
10675663
11724763
12724763
Stop Event
node limit
Counts
3 → 65
Calls
Call 1
Inputs
(/.f64 (+.f64 x (+.f64 x (*.f64 (+.f64 x y) 4))) 2)
(+.f64 x (+.f64 x (*.f64 (+.f64 x y) 4)))
(+.f64 x (*.f64 (+.f64 x y) 4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 (+.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 x (*.f64 (+.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x y) 2) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2) (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 (+.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 2))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8) 1/16)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/16 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 x (*.f64 (+.f64 x y) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 8) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.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 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 (+.f64 x y) 2) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 (+.f64 x y) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 x x) (*.f64 (+.f64 x y) 8)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 x x) (*.f64 (+.f64 x y) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (+.f64 x y) 2) (*.f64 x 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (+.f64 x x) (*.f64 (+.f64 x y) 8)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4)))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4)))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4)))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4)))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 1)))))

simplify788.0ms (4.8%)

Algorithm
egg-herbie
Rules
3424×rational.json-simplify-51
2350×rational.json-simplify-35
1594×rational.json-simplify-1
1364×rational.json-simplify-2
812×rational.json-simplify-41
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01312723
12652555
25772555
317132555
441482555
550602555
651952555
752692555
853312555
953912555
1054512555
1155112555
1255712555
1356312555
1456912555
1557512555
1658112555
1758712555
1859312555
1959312555
2077442555
2178482555
2278582555
2379162555
2479682555
Stop Event
node limit
Counts
137 → 92
Calls
Call 1
Inputs
(*.f64 2 y)
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x)))
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(*.f64 2 y)
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(*.f64 2 y)
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(*.f64 4 y)
(+.f64 (*.f64 6 x) (*.f64 4 y))
(+.f64 (*.f64 6 x) (*.f64 4 y))
(+.f64 (*.f64 6 x) (*.f64 4 y))
(*.f64 6 x)
(+.f64 (*.f64 6 x) (*.f64 4 y))
(+.f64 (*.f64 6 x) (*.f64 4 y))
(+.f64 (*.f64 6 x) (*.f64 4 y))
(*.f64 6 x)
(+.f64 (*.f64 6 x) (*.f64 4 y))
(+.f64 (*.f64 6 x) (*.f64 4 y))
(+.f64 (*.f64 6 x) (*.f64 4 y))
(+.f64 (*.f64 2 x) (*.f64 4 x))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(*.f64 4 y)
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(*.f64 4 y)
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(*.f64 4 y)
(+.f64 (*.f64 5 x) (*.f64 4 y))
(+.f64 (*.f64 5 x) (*.f64 4 y))
(+.f64 (*.f64 5 x) (*.f64 4 y))
(*.f64 5 x)
(+.f64 (*.f64 5 x) (*.f64 4 y))
(+.f64 (*.f64 5 x) (*.f64 4 y))
(+.f64 (*.f64 5 x) (*.f64 4 y))
(*.f64 5 x)
(+.f64 (*.f64 5 x) (*.f64 4 y))
(+.f64 (*.f64 5 x) (*.f64 4 y))
(+.f64 (*.f64 5 x) (*.f64 4 y))
(+.f64 (*.f64 4 x) x)
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(*.f64 4 y)
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(*.f64 4 y)
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(+.f64 x (*.f64 (+.f64 x y) 2))
(+.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 0)
(+.f64 0 (+.f64 x (*.f64 (+.f64 x y) 2)))
(+.f64 (*.f64 (+.f64 x y) 2) x)
(+.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2) (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2))
(-.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 0)
(*.f64 4 (/.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 4))
(*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 1/2)
(*.f64 2 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2))
(*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1)
(*.f64 1 (+.f64 x (*.f64 (+.f64 x y) 2)))
(*.f64 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 2))) 1/4)
(*.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 8) 1/8)
(*.f64 1/2 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)))
(*.f64 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8) 1/16)
(*.f64 1/4 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 2))))
(*.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2) 2)
(*.f64 1/8 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 8))
(*.f64 (/.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 4) 4)
(*.f64 1/16 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8))
(pow.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1)
(-.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 0)
(*.f64 4 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2))
(*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 1)
(*.f64 2 (+.f64 x (*.f64 (+.f64 x y) 2)))
(*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 2)
(*.f64 1 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)))
(*.f64 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 2))) 1/2)
(*.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 8) 1/4)
(*.f64 1/2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 2))))
(*.f64 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8) 1/8)
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 8))
(*.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8))
(/.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 1)
(/.f64 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 2))) 2)
(/.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 8) 4)
(/.f64 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8)))))) 256)
(pow.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 1)
(-.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 0)
(*.f64 4 (/.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 4))
(*.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 1)
(*.f64 2 (+.f64 (*.f64 (+.f64 x y) 2) (*.f64 x 1/2)))
(*.f64 1 (+.f64 x (*.f64 (+.f64 x y) 4)))
(*.f64 (+.f64 (+.f64 x x) (*.f64 (+.f64 x y) 8)) 1/2)
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 (+.f64 x y) 8)))
(*.f64 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))) 1/4)
(*.f64 1/4 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))))
(*.f64 (+.f64 (*.f64 (+.f64 x y) 2) (*.f64 x 1/2)) 2)
(*.f64 (/.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 4) 4)
(/.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 1)
(/.f64 (+.f64 (+.f64 x x) (*.f64 (+.f64 x y) 8)) 2)
(/.f64 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))) 4)
(/.f64 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4)))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4)))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4)))))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4)))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))))))))) 256)
(pow.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 1)
Outputs
(*.f64 2 y)
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(*.f64 3 x)
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 3 x) (*.f64 2 y))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x)))
(*.f64 3 x)
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(*.f64 2 y)
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(*.f64 2 y)
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(+.f64 (*.f64 2 y) (*.f64 1/2 (+.f64 (*.f64 2 x) (*.f64 4 x))))
(+.f64 (*.f64 2 y) (*.f64 3 x))
(*.f64 4 y)
(*.f64 y 4)
(+.f64 (*.f64 6 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(+.f64 (*.f64 6 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(+.f64 (*.f64 6 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(*.f64 6 x)
(*.f64 x 6)
(+.f64 (*.f64 6 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(+.f64 (*.f64 6 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(+.f64 (*.f64 6 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(*.f64 6 x)
(*.f64 x 6)
(+.f64 (*.f64 6 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(+.f64 (*.f64 6 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(+.f64 (*.f64 6 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(+.f64 (*.f64 2 x) (*.f64 4 x))
(*.f64 x 6)
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(*.f64 4 y)
(*.f64 y 4)
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(*.f64 4 y)
(*.f64 y 4)
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(+.f64 (*.f64 2 x) (+.f64 (*.f64 4 y) (*.f64 4 x)))
(+.f64 (*.f64 y 4) (*.f64 x 6))
(+.f64 (*.f64 x 6) (*.f64 y 4))
(*.f64 4 y)
(*.f64 y 4)
(+.f64 (*.f64 5 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 5))
(+.f64 (*.f64 5 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 5))
(+.f64 (*.f64 5 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 5))
(*.f64 5 x)
(*.f64 x 5)
(+.f64 (*.f64 5 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 5))
(+.f64 (*.f64 5 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 5))
(+.f64 (*.f64 5 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 5))
(*.f64 5 x)
(*.f64 x 5)
(+.f64 (*.f64 5 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 5))
(+.f64 (*.f64 5 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 5))
(+.f64 (*.f64 5 x) (*.f64 4 y))
(+.f64 (*.f64 y 4) (*.f64 x 5))
(+.f64 (*.f64 4 x) x)
(+.f64 x (*.f64 x 4))
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(*.f64 4 y)
(*.f64 y 4)
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(*.f64 4 y)
(*.f64 y 4)
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(+.f64 (*.f64 4 y) (+.f64 (*.f64 4 x) x))
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(+.f64 x (*.f64 (+.f64 x y) 2))
(+.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 0)
(+.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 0 (+.f64 x (*.f64 (+.f64 x y) 2)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 (+.f64 x y) 2) x)
(+.f64 x (*.f64 2 (+.f64 y x)))
(+.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2) (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2))
(+.f64 x (*.f64 2 (+.f64 y x)))
(-.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 0)
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 4 (/.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 4))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 1/2)
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 2 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1)
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 1 (+.f64 x (*.f64 (+.f64 x y) 2)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 2))) 1/4)
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 8) 1/8)
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8) 1/16)
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 1/4 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 2))))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2) 2)
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 1/8 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 8))
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 (/.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 4) 4)
(+.f64 x (*.f64 2 (+.f64 y x)))
(*.f64 1/16 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8))
(+.f64 x (*.f64 2 (+.f64 y x)))
(pow.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1)
(+.f64 x (*.f64 2 (+.f64 y x)))
(-.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 0)
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(*.f64 4 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2))
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 1)
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(*.f64 2 (+.f64 x (*.f64 (+.f64 x y) 2)))
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 2)
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(*.f64 1 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)))
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(*.f64 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 2))) 1/2)
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(*.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 8) 1/4)
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(*.f64 1/2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 2))))
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(*.f64 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8) 1/8)
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 8))
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(*.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 1/2) 4)
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(*.f64 1/8 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8))
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(/.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 1)
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(/.f64 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 2))) 2)
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(/.f64 (*.f64 (+.f64 x (*.f64 (+.f64 x y) 2)) 8) 4)
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(/.f64 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8) 8)
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8)) 16)
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8))) 32)
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8)))) 64)
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8))))) 128)
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 8)))))) 256)
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(pow.f64 (+.f64 (*.f64 (+.f64 x y) 4) (+.f64 x x)) 1)
(+.f64 (*.f64 4 (+.f64 y x)) (+.f64 x x))
(-.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 0)
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(*.f64 4 (/.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 4))
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(*.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 1)
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(*.f64 2 (+.f64 (*.f64 (+.f64 x y) 2) (*.f64 x 1/2)))
(*.f64 2 (+.f64 (*.f64 2 (+.f64 y x)) (*.f64 x 1/2)))
(*.f64 1 (+.f64 x (*.f64 (+.f64 x y) 4)))
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(*.f64 (+.f64 (+.f64 x x) (*.f64 (+.f64 x y) 8)) 1/2)
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 (+.f64 x y) 8)))
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(*.f64 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))) 1/4)
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(*.f64 1/4 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))))
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(*.f64 (+.f64 (*.f64 (+.f64 x y) 2) (*.f64 x 1/2)) 2)
(*.f64 2 (+.f64 (*.f64 2 (+.f64 y x)) (*.f64 x 1/2)))
(*.f64 (/.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 4) 4)
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(/.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 1)
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(/.f64 (+.f64 (+.f64 x x) (*.f64 (+.f64 x y) 8)) 2)
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(/.f64 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))) 4)
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4)))) 8)
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))))) 16)
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4)))))) 32)
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))))))) 64)
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4)))))))) 128)
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4)))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 4 (+.f64 x (*.f64 (+.f64 x y) 4))))))))) 256)
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))
(pow.f64 (+.f64 x (*.f64 (+.f64 x y) 4)) 1)
(+.f64 (*.f64 y 4) (+.f64 x (*.f64 x 4)))
(+.f64 x (*.f64 4 (+.f64 y x)))

eval69.0ms (0.4%)

Compiler

Compiled 1440 to 985 computations (31.6% saved)

prune63.0ms (0.4%)

Pruning

8 alts after pruning (2 fresh and 6 done)

PrunedKeptTotal
New1181119
Fresh011
Picked011
Done055
Total1188126
Error
0b
Counts
126 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
20.8b
(/.f64 (+.f64 x (+.f64 x (*.f64 (+.f64 x y) 4))) 2)
42.8b
(/.f64 (+.f64 x (*.f64 x 5)) 2)
23.4b
(+.f64 (*.f64 3 x) z)
20.3b
(+.f64 (*.f64 2 y) z)
20.0b
(+.f64 x (*.f64 2 (+.f64 y x)))
42.7b
(*.f64 x 3)
39.9b
(*.f64 2 y)
43.6b
z
Compiler

Compiled 66 to 50 computations (24.2% saved)

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.5b
(+.f64 x (*.f64 x 5))
Compiler

Compiled 21 to 15 computations (28.6% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite280.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
2570×rational.json-simplify-35
2114×rational.json-simplify-2
1252×rational.json-simplify-1
1222×rational.json-1
1052×exponential.json-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0613
1407
2927
31947
43647
58277
621707
736897
842627
950897
1059677
1164827
1264827
1374127
1474127
1579457
Stop Event
node limit
Counts
1 → 35
Calls
Call 1
Inputs
(+.f64 x (*.f64 x 5))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x 6) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x 6)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 6) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 x 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 12) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) 3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 6 x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 x 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 24) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 48) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 12 (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x 12))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) 12)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 24 (/.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x 24))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x 4) 24)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 3/2) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3/2 (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 x 48))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 6) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 12) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 24) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 48) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x 48)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x 48))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 6) 1)))))

simplify424.0ms (2.6%)

Algorithm
egg-herbie
Rules
3296×rational.json-simplify-51
2196×rational.json-simplify-35
2038×rational.json-simplify-49
1168×rational.json-simplify-1
1070×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075329
1157329
2358329
31002329
42222329
53248329
63765329
73895329
83991329
94056329
104116329
114175329
124235329
134293329
144351329
154409329
164467329
174525329
184583329
194641329
207809329
217897329
227954329
Stop Event
node limit
Counts
47 → 35
Calls
Call 1
Inputs
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(-.f64 (*.f64 x 6) 0)
(*.f64 x 6)
(*.f64 (*.f64 x 6) 1)
(*.f64 1 (*.f64 x 6))
(*.f64 2 (*.f64 x 3))
(*.f64 (*.f64 x 12) 1/2)
(*.f64 (+.f64 x x) 3)
(*.f64 6 x)
(*.f64 4 (*.f64 x 3/2))
(*.f64 (*.f64 x 24) 1/4)
(*.f64 (*.f64 x 4) 3/2)
(*.f64 (*.f64 x 48) 1/8)
(*.f64 12 (*.f64 x 1/2))
(*.f64 1/2 (*.f64 x 12))
(*.f64 (*.f64 x 3) 2)
(*.f64 (*.f64 x 1/2) 12)
(*.f64 3 (+.f64 x x))
(*.f64 24 (/.f64 x 4))
(*.f64 1/4 (*.f64 x 24))
(*.f64 (/.f64 x 4) 24)
(*.f64 (*.f64 x 3/2) 4)
(*.f64 3/2 (*.f64 x 4))
(*.f64 1/8 (*.f64 x 48))
(/.f64 (*.f64 x 6) 1)
(/.f64 (*.f64 x 12) 2)
(/.f64 (*.f64 x 24) 4)
(/.f64 (*.f64 x 48) 8)
(/.f64 (*.f64 2 (*.f64 x 48)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 48))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48))))))) 512)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48)))))))) 1024)
(pow.f64 (*.f64 x 6) 1)
Outputs
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(-.f64 (*.f64 x 6) 0)
(*.f64 6 x)
(*.f64 x 6)
(*.f64 6 x)
(*.f64 (*.f64 x 6) 1)
(*.f64 6 x)
(*.f64 1 (*.f64 x 6))
(*.f64 6 x)
(*.f64 2 (*.f64 x 3))
(*.f64 6 x)
(*.f64 (*.f64 x 12) 1/2)
(*.f64 6 x)
(*.f64 (+.f64 x x) 3)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 4 (*.f64 x 3/2))
(*.f64 6 x)
(*.f64 (*.f64 x 24) 1/4)
(*.f64 6 x)
(*.f64 (*.f64 x 4) 3/2)
(*.f64 6 x)
(*.f64 (*.f64 x 48) 1/8)
(*.f64 6 x)
(*.f64 12 (*.f64 x 1/2))
(*.f64 6 x)
(*.f64 1/2 (*.f64 x 12))
(*.f64 6 x)
(*.f64 (*.f64 x 3) 2)
(*.f64 6 x)
(*.f64 (*.f64 x 1/2) 12)
(*.f64 6 x)
(*.f64 3 (+.f64 x x))
(*.f64 6 x)
(*.f64 24 (/.f64 x 4))
(*.f64 6 x)
(*.f64 1/4 (*.f64 x 24))
(*.f64 6 x)
(*.f64 (/.f64 x 4) 24)
(*.f64 6 x)
(*.f64 (*.f64 x 3/2) 4)
(*.f64 6 x)
(*.f64 3/2 (*.f64 x 4))
(*.f64 6 x)
(*.f64 1/8 (*.f64 x 48))
(*.f64 6 x)
(/.f64 (*.f64 x 6) 1)
(*.f64 6 x)
(/.f64 (*.f64 x 12) 2)
(*.f64 6 x)
(/.f64 (*.f64 x 24) 4)
(*.f64 6 x)
(/.f64 (*.f64 x 48) 8)
(*.f64 6 x)
(/.f64 (*.f64 2 (*.f64 x 48)) 16)
(*.f64 6 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 48))) 32)
(*.f64 6 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48)))) 64)
(*.f64 6 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48))))) 128)
(*.f64 6 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48)))))) 256)
(*.f64 6 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48))))))) 512)
(*.f64 6 x)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 48)))))))) 1024)
(*.f64 6 x)
(pow.f64 (*.f64 x 6) 1)
(*.f64 6 x)

eval85.0ms (0.5%)

Compiler

Compiled 314 to 275 computations (12.4% saved)

prune7.0ms (0%)

Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New35035
Fresh011
Picked011
Done066
Total35843
Error
0b
Counts
43 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
20.8b
(/.f64 (+.f64 x (+.f64 x (*.f64 (+.f64 x y) 4))) 2)
42.8b
(/.f64 (+.f64 x (*.f64 x 5)) 2)
23.4b
(+.f64 (*.f64 3 x) z)
20.3b
(+.f64 (*.f64 2 y) z)
20.0b
(+.f64 x (*.f64 2 (+.f64 y x)))
42.7b
(*.f64 x 3)
39.9b
(*.f64 2 y)
43.6b
z
Compiler

Compiled 66 to 50 computations (24.2% saved)

regimes165.0ms (1%)

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

4 calls:

143.0ms
(+.f64 (+.f64 (+.f64 (+.f64 (+.f64 x y) y) x) z) x)
7.0ms
y
7.0ms
z
7.0ms
x
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1(+.f64 (+.f64 (+.f64 (+.f64 (+.f64 x y) y) x) z) x)
Compiler

Compiled 100 to 59 computations (41% saved)

regimes503.0ms (3.1%)

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

3 calls:

416.0ms
z
70.0ms
y
15.0ms
x
Results
ErrorSegmentsBranch
7.7b3x
6.1b3y
6.2b3z
Compiler

Compiled 53 to 35 computations (34% saved)

bsearch28.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
3.381825269513324e+64
3.1220843741148646e+68
13.0ms
-1.7656043891361137e+70
-2.263294063546162e+68
Results
23.0ms230×body256valid
1.0msbody512valid
1.0msbody1024valid
Compiler

Compiled 304 to 230 computations (24.3% saved)

regimes150.0ms (0.9%)

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

3 calls:

108.0ms
x
29.0ms
z
13.0ms
y
Results
ErrorSegmentsBranch
9.0b3x
6.3b3y
15.5b7z
Compiler

Compiled 32 to 22 computations (31.3% saved)

bsearch436.0ms (2.7%)

Algorithm
binary-search
Steps
TimeLeftRight
421.0ms
3.381825269513324e+64
3.1220843741148646e+68
15.0ms
-8.946140277652645e+49
-5.167556333794975e+40
Results
431.0ms258×body256valid
2.0ms11×body512valid
1.0msbody1024valid
Compiler

Compiled 326 to 251 computations (23% saved)

regimes641.0ms (3.9%)

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

3 calls:

382.0ms
z
224.0ms
x
34.0ms
y
Results
ErrorSegmentsBranch
11.2b3x
13.3b9y
17.1b5z
Compiler

Compiled 27 to 19 computations (29.6% saved)

bsearch22.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
4.36282172941893e+135
3.925845163113811e+149
4.0ms
-1.4876883133918651e+148
-1.3103609824576167e+148
Results
16.0ms176×body256valid
2.0ms10×body1024valid
1.0msbody512valid
1.0msbody2048valid
Compiler

Compiled 212 to 169 computations (20.3% saved)

regimes1.0s (6.3%)

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

3 calls:

876.0ms
z
133.0ms
y
25.0ms
x
Results
ErrorSegmentsBranch
25.0b8x
19.2b11y
23.6b10z
Compiler

Compiled 22 to 16 computations (27.3% saved)

bsearch739.0ms (4.5%)

Algorithm
10×binary-search
Steps
TimeLeftRight
16.0ms
3.381825269513324e+64
3.1220843741148646e+68
9.0ms
2633523038784555.5
10480325321003948.0
336.0ms
4.7433322665467455e-130
3.013201151006628e-124
16.0ms
3.6569804150260564e-194
1.5881890316747337e-188
11.0ms
1.4079324170686796e-266
3.7713992138684185e-266
14.0ms
-8.884537449922653e-290
-1.5966218175071417e-292
226.0ms
-6.4069249124837e-200
-1.5146268667151483e-202
13.0ms
-5.854775186102824e-161
-3.4567560441176893e-162
86.0ms
-6.334059111157491e-77
-1.8918692538111783e-77
12.0ms
-5.167556333794975e+40
-2.5839111670095296e+38
Results
627.0ms1028×body256valid
87.0ms49×body1024valid
7.0ms45×body512valid
4.0ms14×body2048valid
Compiler

Compiled 902 to 753 computations (16.5% saved)

regimes74.0ms (0.4%)

Accuracy

Total -34.8b remaining (-126.6%)

Threshold costs -34.8b (-126.6%)

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

3 calls:

50.0ms
y
14.0ms
x
8.0ms
z
Results
ErrorSegmentsBranch
36.7b5x
27.5b3y
28.4b3z
Compiler

Compiled 19 to 14 computations (26.3% saved)

bsearch24.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
8.807431170624359e+44
3.402890025148657e+46
12.0ms
-1.7656043891361137e+70
-2.263294063546162e+68
Results
21.0ms218×body256valid
1.0msbody512valid
Compiler

Compiled 188 to 153 computations (18.6% saved)

simplify7.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
077373
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (+.f64 x (+.f64 y y)) (+.f64 (+.f64 x z) x))
(if (<=.f64 y -12200000000000000118635753421712239359958654222532976047952602805043200) (+.f64 x (*.f64 2 (+.f64 y x))) (if (<=.f64 y 102000000000000004805385686159973733741361001758641859951660630016) (+.f64 (*.f64 3 x) z) (+.f64 (*.f64 2 y) z)))
(if (<=.f64 y -2899999999999999883764029586900927241071722758144) (+.f64 (*.f64 2 y) z) (if (<=.f64 y 165000000000000011556128141879941534049974128698770824325394071552) (+.f64 (*.f64 3 x) z) (+.f64 (*.f64 2 y) z)))
(if (<=.f64 x -13999999999999998982145911984278638389033503311919787051083654133360651905564732256633909893685487697343307795157787091631588046174921661317709299712) (*.f64 x 3) (if (<=.f64 x 14000000000000001079521845589727026623238777209757413576301778246636101175941277507371447702830070488690177854213593642717840142338359296) (+.f64 (*.f64 2 y) z) (*.f64 x 3)))
(if (<=.f64 y -3599999999999999843399289918502901645312) (*.f64 2 y) (if (<=.f64 y -3650368469591399/65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032) (*.f64 x 3) (if (<=.f64 y -3495075369296735/253266331108459042877954581524118722595974501479640924072000569439126758509088631982403994686712878069348015540240526683495797795130113239006767262824338603946605334680267915264) z (if (<=.f64 y -775638599498717/86182066610968551542636378241108028056376767329454880514019834315878107616003372189510312530372009184902888961739623919010110377987011442493486117202360415845666384627768436296772219009176743399772868636439042064384) (*.f64 x 3) (if (<=.f64 y -6179570151089211/5617791046444737211654078721215702292556178059194708039794690036179146118921905097897139916325235500660003558745981042426837180275450519452901482207483566386805246669527046414884444362538940441232908842252656430276192208823201965046059784704400851161354703458893321819998351435577491134526104885300757004288) z (if (<=.f64 y 290432989937067/9076030935533343889148330677184451660957398691768765008885326289770145612551296225251271450782204288267814476258502032778653474399077793626653018683486295323382390383590453332169716856898789897889643528945016096228440849041002686084943230837088977557446564364344140092918489677824) (*.f64 x 3) (if (<=.f64 y 3862912302699587/41094811730846668025320233460001005199612029709556045777330319555224469955445943922763019814668659775210804444188892325882964314454560967680686052895717819140275184930690973423372373108471271228681978529185792) z (if (<=.f64 y 5306972535537187/780437137578998057845399307448291576437149535666242787714789239906342934704941405030076525765872992789956732780351655723861993919822071326572544) (*.f64 x 3) (if (<=.f64 y 7000000000000000) z (if (<=.f64 y 3199999999999999974689236041076283226328195894215374571698185568256) (*.f64 x 3) (*.f64 2 y)))))))))))
(if (<=.f64 y -229999999999999997526036106928113349537088274839835254534949308465152) (*.f64 2 y) (if (<=.f64 y 10599999999999999825870033762780073604782489600) z (*.f64 2 y)))
z
Outputs
(+.f64 (+.f64 x (+.f64 y y)) (+.f64 (+.f64 x z) x))
(if (<=.f64 y -12200000000000000118635753421712239359958654222532976047952602805043200) (+.f64 x (*.f64 2 (+.f64 y x))) (if (<=.f64 y 102000000000000004805385686159973733741361001758641859951660630016) (+.f64 (*.f64 3 x) z) (+.f64 (*.f64 2 y) z)))
(if (<=.f64 y -2899999999999999883764029586900927241071722758144) (+.f64 (*.f64 2 y) z) (if (<=.f64 y 165000000000000011556128141879941534049974128698770824325394071552) (+.f64 (*.f64 3 x) z) (+.f64 (*.f64 2 y) z)))
(if (<=.f64 x -13999999999999998982145911984278638389033503311919787051083654133360651905564732256633909893685487697343307795157787091631588046174921661317709299712) (*.f64 x 3) (if (<=.f64 x 14000000000000001079521845589727026623238777209757413576301778246636101175941277507371447702830070488690177854213593642717840142338359296) (+.f64 (*.f64 2 y) z) (*.f64 x 3)))
(if (<=.f64 y -3599999999999999843399289918502901645312) (*.f64 2 y) (if (<=.f64 y -3650368469591399/65185151242703554760590262029100101153646988597309960020356494379340201592426774597868716032) (*.f64 x 3) (if (<=.f64 y -3495075369296735/253266331108459042877954581524118722595974501479640924072000569439126758509088631982403994686712878069348015540240526683495797795130113239006767262824338603946605334680267915264) z (if (<=.f64 y -775638599498717/86182066610968551542636378241108028056376767329454880514019834315878107616003372189510312530372009184902888961739623919010110377987011442493486117202360415845666384627768436296772219009176743399772868636439042064384) (*.f64 x 3) (if (<=.f64 y -6179570151089211/5617791046444737211654078721215702292556178059194708039794690036179146118921905097897139916325235500660003558745981042426837180275450519452901482207483566386805246669527046414884444362538940441232908842252656430276192208823201965046059784704400851161354703458893321819998351435577491134526104885300757004288) z (if (<=.f64 y 290432989937067/9076030935533343889148330677184451660957398691768765008885326289770145612551296225251271450782204288267814476258502032778653474399077793626653018683486295323382390383590453332169716856898789897889643528945016096228440849041002686084943230837088977557446564364344140092918489677824) (*.f64 x 3) (if (<=.f64 y 3862912302699587/41094811730846668025320233460001005199612029709556045777330319555224469955445943922763019814668659775210804444188892325882964314454560967680686052895717819140275184930690973423372373108471271228681978529185792) z (if (<=.f64 y 5306972535537187/780437137578998057845399307448291576437149535666242787714789239906342934704941405030076525765872992789956732780351655723861993919822071326572544) (*.f64 x 3) (if (<=.f64 y 7000000000000000) z (if (<=.f64 y 3199999999999999974689236041076283226328195894215374571698185568256) (*.f64 x 3) (*.f64 2 y)))))))))))
(if (<=.f64 y -229999999999999997526036106928113349537088274839835254534949308465152) (*.f64 2 y) (if (<=.f64 y 10599999999999999825870033762780073604782489600) z (*.f64 2 y)))
z
Compiler

Compiled 180 to 124 computations (31.1% saved)

soundness14.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01031
11531
22831
34431
48131
513731
617931
718631
818631
Stop Event
saturated
Compiler

Compiled 102 to 24 computations (76.5% saved)

end129.0ms (0.8%)

Compiler

Compiled 162 to 106 computations (34.6% saved)

Profiling

Loading profile data...