Details

Time bar (total: 15.8s)

analyze321.0ms (2%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
0%0%99.9%0.1%0%0%0%5
0%0%99.9%0.1%0%0%0%6
12.5%12.5%87.4%0.1%0%0%0%7
18.8%18.7%81.1%0.1%0%0%0%8
28.1%28.1%71.8%0.1%0%0%0%9
37.6%34.3%56.9%0.1%8.6%0%0%10
44.8%40.6%49.9%0.1%9.4%0%0%11
53.4%48%41.9%0.1%9.9%0%0%12
Compiler

Compiled 11 to 8 computations (27.3% saved)

sample5.7s (35.9%)

Results
5.1s8255×body256valid
428.0ms1140×body256infinite
0.0msbody1024valid
Bogosity

preprocess13.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

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

(sort x y)

Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify11.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

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

eval0.0ms (0%)

Compiler

Compiled 10 to 7 computations (30% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 10 to 7 computations (30% saved)

localize7.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 20 to 10 computations (50% saved)

series4.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite210.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
2710×rational.json-simplify-35
1348×rational.json-simplify-1
1182×rational.json-1
1182×rational.json-2
1182×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
16919
215119
328619
454219
5119519
6258219
7404319
8531019
9650419
10701519
11701519
12701519
Stop Event
node limit
Counts
1 → 15
Calls
Call 1
Inputs
(*.f64 (+.f64 x y) (+.f64 z 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x y) (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 1/2)) (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (+.f64 z (+.f64 z 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 z 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.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 (+.f64 z 1) (*.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 (+.f64 z 1) (*.f64 (+.f64 x y) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 1)))))

simplify314.0ms (2%)

Algorithm
egg-herbie
Rules
2370×rational.json-simplify-41
2356×rational.json-simplify-2
1746×rational.json-simplify-35
1496×rational.json-simplify-53
860×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
058963
1150963
2285963
3596963
42053963
53623963
64412963
74630963
84784963
94932963
106815963
117681963
Stop Event
node limit
Counts
51 → 29
Calls
Call 1
Inputs
(*.f64 y (+.f64 1 z))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 1 z) x)
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 1 z) x)
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 1 z) x)
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 y (+.f64 1 z))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 y (+.f64 1 z))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 y x)
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(*.f64 (+.f64 y x) z)
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(*.f64 (+.f64 y x) z)
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 0)
(+.f64 0 (*.f64 (+.f64 x y) (+.f64 z 1)))
(+.f64 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 1/2)) (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 1/2)))
(-.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 0)
(/.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 1)
(/.f64 (*.f64 (+.f64 x y) (+.f64 z (+.f64 z 2))) 2)
(/.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 z 1) 4)) 4)
(/.f64 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8))))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8)))))))) 512)
(pow.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 1)
Outputs
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 1 z))
(*.f64 x (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 1 z))
(*.f64 x (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 1 z))
(*.f64 x (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 y x)
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(+.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 0)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 0 (*.f64 (+.f64 x y) (+.f64 z 1)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 1/2)) (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 1/2)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(-.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 0)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(/.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 1)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(/.f64 (*.f64 (+.f64 x y) (+.f64 z (+.f64 z 2))) 2)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(/.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 z 1) 4)) 4)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(/.f64 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8)) 8)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(/.f64 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8))) 16)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8)))) 32)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8))))) 64)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8)))))) 128)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8))))))) 256)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 8)))))))) 512)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(pow.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 1)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))

eval5.0ms (0%)

Compiler

Compiled 316 to 194 computations (38.6% saved)

prune9.0ms (0.1%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New23629
Fresh000
Picked011
Done000
Total23730
Error
0.0b
Counts
30 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
0.0b
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
26.0b
(+.f64 y x)
38.0b
(*.f64 (+.f64 y x) z)
0.0b
(*.f64 (+.f64 x y) (+.f64 z 1))
33.5b
(*.f64 (+.f64 1 z) x)
30.4b
(*.f64 y (-.f64 z -1))
Compiler

Compiled 122 to 81 computations (33.6% saved)

localize6.0ms (0%)

Local error

Found 2 expressions with local error:

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

Compiled 23 to 6 computations (73.9% saved)

series4.0ms (0%)

Counts
2 → 72
Calls

18 calls:

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

rewrite390.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
1784×rational.json-1
1784×rational.json-2
1784×rational.json-3
1718×rational.json-simplify-35
1372×exponential.json-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0838
15532
212832
328932
461632
5159332
6371932
7582332
8760932
Stop Event
node limit
Counts
2 → 58
Calls
Call 1
Inputs
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (+.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (+.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 (+.f64 y x) 1/2)) (*.f64 z (*.f64 (+.f64 y x) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (+.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 y x) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 y x) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 y x) 8) z) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) 8) z)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) 8) z))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) 8) z)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) 8) z)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) 8) z))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (+.f64 y x)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y x) (+.f64 z 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y x) (*.f64 1/2 (+.f64 z (+.f64 z 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (+.f64 y x) (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 y x) (*.f64 (+.f64 z 1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 y x) 1/4) (+.f64 z (+.f64 z 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) (+.f64 z (+.f64 z 2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) 2) (*.f64 (+.f64 z 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) 2) (+.f64 (*.f64 z 1/2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) 2) (+.f64 1/2 (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) 2) (*.f64 1/4 (+.f64 z (+.f64 z 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z 1) (+.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 y x) (/.f64 (+.f64 z 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 (+.f64 y x) 8) (+.f64 z (+.f64 z 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) (*.f64 (+.f64 z 1) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) 4) (/.f64 (+.f64 z 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) 4) (*.f64 1/4 (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) 4) (*.f64 1/8 (+.f64 z (+.f64 z 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 (+.f64 y x) 8) (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) 8) (*.f64 1/8 (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (+.f64 z 2)) (*.f64 (+.f64 y x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 y x) (+.f64 z (+.f64 z 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 x (*.f64 z (+.f64 y x))) 2) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 z (*.f64 (+.f64 y x) 2)) (*.f64 (+.f64 y x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 y x) 2) (*.f64 z (*.f64 (+.f64 y x) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) 1/2) (+.f64 z (+.f64 z 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) 1/2) (+.f64 (+.f64 z z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) 1/2) (+.f64 2 (+.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) (*.f64 (+.f64 z 1) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 (+.f64 y x) 8)) (*.f64 1/16 (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z 1) 4) (*.f64 (+.f64 y x) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 y x) (*.f64 (+.f64 z 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z 1) 1/2) (*.f64 (+.f64 y x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) (/.f64 (+.f64 z 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y x) (+.f64 z (+.f64 z 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y x) (*.f64 (+.f64 z 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 1)))))

simplify1.1s (6.7%)

Algorithm
egg-herbie
Rules
2202×rational.json-simplify-2
2132×rational.json-simplify-35
1180×rational.json-simplify-51
1060×rational.json-simplify-1
866×rational.json-simplify-43
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01552638
13632638
27382638
321502320
449482320
556742320
660502320
762822320
866052320
970802320
Stop Event
node limit
Counts
130 → 87
Calls
Call 1
Inputs
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 y x)
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(*.f64 (+.f64 y x) z)
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(*.f64 (+.f64 y x) z)
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 y (+.f64 1 z)) x))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y (+.f64 1 z)) x))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y (+.f64 1 z)) x))
(*.f64 y (+.f64 1 z))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y (+.f64 1 z)) x))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y (+.f64 1 z)) x))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y (+.f64 1 z)) x))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))))
(+.f64 (*.f64 y z) y)
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 1 z) x) y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 1 z) x) y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 1 z) x) y))
(*.f64 (+.f64 1 z) x)
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 1 z) x) y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 1 z) x) y))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 1 z) x) y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(+.f64 (*.f64 y z) (+.f64 y (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))))
(+.f64 (*.f64 y z) (+.f64 y (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))))
(+.f64 (*.f64 y z) (+.f64 y (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))))
(+.f64 (*.f64 z (+.f64 y x)) 0)
(+.f64 0 (*.f64 z (+.f64 y x)))
(+.f64 (*.f64 z (*.f64 (+.f64 y x) 1/2)) (*.f64 z (*.f64 (+.f64 y x) 1/2)))
(-.f64 (*.f64 z (+.f64 y x)) 0)
(/.f64 (*.f64 z (+.f64 y x)) 1)
(/.f64 (*.f64 z (*.f64 (+.f64 y x) 2)) 2)
(/.f64 (*.f64 z (*.f64 (+.f64 y x) 4)) 4)
(/.f64 (*.f64 (*.f64 (+.f64 y x) 8) z) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) 8) z)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) 8) z))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) 8) z)))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) 8) z)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) 8) z))))) 128)
(pow.f64 (*.f64 z (+.f64 y x)) 1)
(-.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 0)
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (+.f64 y x) (*.f64 1/2 (+.f64 z (+.f64 z 2))))
(*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 1)
(*.f64 1 (*.f64 (+.f64 y x) (+.f64 z 1)))
(*.f64 2 (*.f64 (+.f64 y x) (*.f64 (+.f64 z 1) 1/2)))
(*.f64 2 (*.f64 (*.f64 (+.f64 y x) 1/4) (+.f64 z (+.f64 z 2))))
(*.f64 (*.f64 (+.f64 y x) (+.f64 z (+.f64 z 2))) 1/2)
(*.f64 (*.f64 (+.f64 y x) 2) (*.f64 (+.f64 z 1) 1/2))
(*.f64 (*.f64 (+.f64 y x) 2) (+.f64 (*.f64 z 1/2) 1/2))
(*.f64 (*.f64 (+.f64 y x) 2) (+.f64 1/2 (*.f64 z 1/2)))
(*.f64 (*.f64 (+.f64 y x) 2) (*.f64 1/4 (+.f64 z (+.f64 z 2))))
(*.f64 (+.f64 z 1) (+.f64 y x))
(*.f64 4 (*.f64 (+.f64 y x) (/.f64 (+.f64 z 1) 4)))
(*.f64 4 (*.f64 (/.f64 (+.f64 y x) 8) (+.f64 z (+.f64 z 2))))
(*.f64 (*.f64 (+.f64 y x) (*.f64 (+.f64 z 1) 4)) 1/4)
(*.f64 (*.f64 (+.f64 y x) 4) (/.f64 (+.f64 z 1) 4))
(*.f64 (*.f64 (+.f64 y x) 4) (*.f64 1/4 (+.f64 z 1)))
(*.f64 (*.f64 (+.f64 y x) 4) (*.f64 1/8 (+.f64 z (+.f64 z 2))))
(*.f64 8 (*.f64 (/.f64 (+.f64 y x) 8) (+.f64 z 1)))
(*.f64 (*.f64 (+.f64 y x) 8) (*.f64 1/8 (+.f64 z 1)))
(*.f64 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8) 1/8)
(*.f64 (+.f64 z (+.f64 z 2)) (*.f64 (+.f64 y x) 1/2))
(*.f64 1/2 (*.f64 (+.f64 y x) (+.f64 z (+.f64 z 2))))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 x (*.f64 z (+.f64 y x))) 2) (+.f64 y y)))
(*.f64 1/2 (+.f64 (*.f64 z (*.f64 (+.f64 y x) 2)) (*.f64 (+.f64 y x) 2)))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 y x) 2) (*.f64 z (*.f64 (+.f64 y x) 2))))
(*.f64 (*.f64 (+.f64 y x) 1/2) (+.f64 z (+.f64 z 2)))
(*.f64 (*.f64 (+.f64 y x) 1/2) (+.f64 (+.f64 z z) 2))
(*.f64 (*.f64 (+.f64 y x) 1/2) (+.f64 2 (+.f64 z z)))
(*.f64 (*.f64 (+.f64 y x) (*.f64 (+.f64 z 1) 1/2)) 2)
(*.f64 (*.f64 2 (*.f64 (+.f64 y x) 8)) (*.f64 1/16 (+.f64 z 1)))
(*.f64 (*.f64 (+.f64 z 1) 4) (*.f64 (+.f64 y x) 1/4))
(*.f64 1/4 (*.f64 (+.f64 y x) (*.f64 (+.f64 z 1) 4)))
(*.f64 (*.f64 (+.f64 z 1) 1/2) (*.f64 (+.f64 y x) 2))
(*.f64 (*.f64 (+.f64 y x) (/.f64 (+.f64 z 1) 4)) 4)
(/.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 1)
(/.f64 (*.f64 (+.f64 y x) (+.f64 z (+.f64 z 2))) 2)
(/.f64 (*.f64 (+.f64 y x) (*.f64 (+.f64 z 1) 4)) 4)
(/.f64 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8))))) 128)
(pow.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 1)
Outputs
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 y x)
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (+.f64 y x) z)
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (+.f64 y x) z)
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y (+.f64 1 z)) x))
(+.f64 (*.f64 x z) (+.f64 x (*.f64 y (+.f64 z 1))))
(+.f64 x (+.f64 (*.f64 y (+.f64 z 1)) (*.f64 x z)))
(+.f64 x (+.f64 (*.f64 x z) (*.f64 y (+.f64 z 1))))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y (+.f64 1 z)) x))
(+.f64 (*.f64 x z) (+.f64 x (*.f64 y (+.f64 z 1))))
(+.f64 x (+.f64 (*.f64 y (+.f64 z 1)) (*.f64 x z)))
(+.f64 x (+.f64 (*.f64 x z) (*.f64 y (+.f64 z 1))))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y (+.f64 1 z)) x))
(+.f64 (*.f64 x z) (+.f64 x (*.f64 y (+.f64 z 1))))
(+.f64 x (+.f64 (*.f64 y (+.f64 z 1)) (*.f64 x z)))
(+.f64 x (+.f64 (*.f64 x z) (*.f64 y (+.f64 z 1))))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 z 1))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y (+.f64 1 z)) x))
(+.f64 (*.f64 x z) (+.f64 x (*.f64 y (+.f64 z 1))))
(+.f64 x (+.f64 (*.f64 y (+.f64 z 1)) (*.f64 x z)))
(+.f64 x (+.f64 (*.f64 x z) (*.f64 y (+.f64 z 1))))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y (+.f64 1 z)) x))
(+.f64 (*.f64 x z) (+.f64 x (*.f64 y (+.f64 z 1))))
(+.f64 x (+.f64 (*.f64 y (+.f64 z 1)) (*.f64 x z)))
(+.f64 x (+.f64 (*.f64 x z) (*.f64 y (+.f64 z 1))))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y (+.f64 1 z)) x))
(+.f64 (*.f64 x z) (+.f64 x (*.f64 y (+.f64 z 1))))
(+.f64 x (+.f64 (*.f64 y (+.f64 z 1)) (*.f64 x z)))
(+.f64 x (+.f64 (*.f64 x z) (*.f64 y (+.f64 z 1))))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
(*.f64 y (+.f64 z 1))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))))
(+.f64 (*.f64 x z) (+.f64 x (*.f64 y (+.f64 z 1))))
(+.f64 x (+.f64 (*.f64 y (+.f64 z 1)) (*.f64 x z)))
(+.f64 x (+.f64 (*.f64 x z) (*.f64 y (+.f64 z 1))))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))))
(+.f64 (*.f64 x z) (+.f64 x (*.f64 y (+.f64 z 1))))
(+.f64 x (+.f64 (*.f64 y (+.f64 z 1)) (*.f64 x z)))
(+.f64 x (+.f64 (*.f64 x z) (*.f64 y (+.f64 z 1))))
(+.f64 (*.f64 z x) (+.f64 x (*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))))
(+.f64 (*.f64 x z) (+.f64 x (*.f64 y (+.f64 z 1))))
(+.f64 x (+.f64 (*.f64 y (+.f64 z 1)) (*.f64 x z)))
(+.f64 x (+.f64 (*.f64 x z) (*.f64 y (+.f64 z 1))))
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 1 z) x) y))
(+.f64 (*.f64 y z) (+.f64 y (*.f64 x (+.f64 z 1))))
(+.f64 y (+.f64 (*.f64 y z) (*.f64 x (+.f64 z 1))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 1 z) x) y))
(+.f64 (*.f64 y z) (+.f64 y (*.f64 x (+.f64 z 1))))
(+.f64 y (+.f64 (*.f64 y z) (*.f64 x (+.f64 z 1))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 1 z) x) y))
(+.f64 (*.f64 y z) (+.f64 y (*.f64 x (+.f64 z 1))))
(+.f64 y (+.f64 (*.f64 y z) (*.f64 x (+.f64 z 1))))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 1 z) x) y))
(+.f64 (*.f64 y z) (+.f64 y (*.f64 x (+.f64 z 1))))
(+.f64 y (+.f64 (*.f64 y z) (*.f64 x (+.f64 z 1))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 1 z) x) y))
(+.f64 (*.f64 y z) (+.f64 y (*.f64 x (+.f64 z 1))))
(+.f64 y (+.f64 (*.f64 y z) (*.f64 x (+.f64 z 1))))
(+.f64 (*.f64 y z) (+.f64 (*.f64 (+.f64 1 z) x) y))
(+.f64 (*.f64 y z) (+.f64 y (*.f64 x (+.f64 z 1))))
(+.f64 y (+.f64 (*.f64 y z) (*.f64 x (+.f64 z 1))))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(*.f64 x (+.f64 z 1))
(+.f64 (*.f64 y z) (+.f64 y (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))))
(+.f64 (*.f64 y z) (+.f64 y (*.f64 x (+.f64 z 1))))
(+.f64 y (+.f64 (*.f64 y z) (*.f64 x (+.f64 z 1))))
(+.f64 (*.f64 y z) (+.f64 y (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))))
(+.f64 (*.f64 y z) (+.f64 y (*.f64 x (+.f64 z 1))))
(+.f64 y (+.f64 (*.f64 y z) (*.f64 x (+.f64 z 1))))
(+.f64 (*.f64 y z) (+.f64 y (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))))
(+.f64 (*.f64 y z) (+.f64 y (*.f64 x (+.f64 z 1))))
(+.f64 y (+.f64 (*.f64 y z) (*.f64 x (+.f64 z 1))))
(+.f64 (*.f64 z (+.f64 y x)) 0)
(*.f64 (+.f64 y x) z)
(+.f64 0 (*.f64 z (+.f64 y x)))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 z (*.f64 (+.f64 y x) 1/2)) (*.f64 z (*.f64 (+.f64 y x) 1/2)))
(*.f64 (+.f64 y x) z)
(-.f64 (*.f64 z (+.f64 y x)) 0)
(*.f64 (+.f64 y x) z)
(/.f64 (*.f64 z (+.f64 y x)) 1)
(*.f64 (+.f64 y x) z)
(/.f64 (*.f64 z (*.f64 (+.f64 y x) 2)) 2)
(*.f64 (+.f64 y x) z)
(/.f64 (*.f64 z (*.f64 (+.f64 y x) 4)) 4)
(*.f64 (+.f64 y x) z)
(/.f64 (*.f64 (*.f64 (+.f64 y x) 8) z) 8)
(*.f64 (+.f64 y x) z)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) 8) z)) 16)
(*.f64 (+.f64 y x) z)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) 8) z))) 32)
(*.f64 (+.f64 y x) z)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) 8) z)))) 64)
(*.f64 (+.f64 y x) z)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) 8) z)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) 8) z))))) 128)
(*.f64 (+.f64 y x) z)
(pow.f64 (*.f64 z (+.f64 y x)) 1)
(*.f64 (+.f64 y x) z)
(-.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 0)
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (+.f64 y x) (+.f64 z 1))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (*.f64 1/2 (+.f64 z (+.f64 z 2))))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 1)
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 1 (*.f64 (+.f64 y x) (+.f64 z 1)))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 2 (*.f64 (+.f64 y x) (*.f64 (+.f64 z 1) 1/2)))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 2 (*.f64 (*.f64 (+.f64 y x) 1/4) (+.f64 z (+.f64 z 2))))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 y x) (+.f64 z (+.f64 z 2))) 1/2)
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 y x) 2) (*.f64 (+.f64 z 1) 1/2))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 y x) 2) (+.f64 (*.f64 z 1/2) 1/2))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 y x) 2) (+.f64 1/2 (*.f64 z 1/2)))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 y x) 2) (*.f64 1/4 (+.f64 z (+.f64 z 2))))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (+.f64 z 1) (+.f64 y x))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 4 (*.f64 (+.f64 y x) (/.f64 (+.f64 z 1) 4)))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 4 (*.f64 (/.f64 (+.f64 y x) 8) (+.f64 z (+.f64 z 2))))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 y x) (*.f64 (+.f64 z 1) 4)) 1/4)
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 y x) 4) (/.f64 (+.f64 z 1) 4))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 y x) 4) (*.f64 1/4 (+.f64 z 1)))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 y x) 4) (*.f64 1/8 (+.f64 z (+.f64 z 2))))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 8 (*.f64 (/.f64 (+.f64 y x) 8) (+.f64 z 1)))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 y x) 8) (*.f64 1/8 (+.f64 z 1)))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8) 1/8)
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (+.f64 z (+.f64 z 2)) (*.f64 (+.f64 y x) 1/2))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 1/2 (*.f64 (+.f64 y x) (+.f64 z (+.f64 z 2))))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 x (*.f64 z (+.f64 y x))) 2) (+.f64 y y)))
(*.f64 1/2 (+.f64 (*.f64 2 (+.f64 x (*.f64 (+.f64 y x) z))) (+.f64 y y)))
(*.f64 1/2 (+.f64 (*.f64 z (*.f64 (+.f64 y x) 2)) (*.f64 (+.f64 y x) 2)))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 y x) 2) (*.f64 z (*.f64 (+.f64 y x) 2))))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 y x) 1/2) (+.f64 z (+.f64 z 2)))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 y x) 1/2) (+.f64 (+.f64 z z) 2))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 y x) 1/2) (+.f64 2 (+.f64 z z)))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 y x) (*.f64 (+.f64 z 1) 1/2)) 2)
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 2 (*.f64 (+.f64 y x) 8)) (*.f64 1/16 (+.f64 z 1)))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 z 1) 4) (*.f64 (+.f64 y x) 1/4))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 1/4 (*.f64 (+.f64 y x) (*.f64 (+.f64 z 1) 4)))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 z 1) 1/2) (*.f64 (+.f64 y x) 2))
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(*.f64 (*.f64 (+.f64 y x) (/.f64 (+.f64 z 1) 4)) 4)
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(/.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 1)
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(/.f64 (*.f64 (+.f64 y x) (+.f64 z (+.f64 z 2))) 2)
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(/.f64 (*.f64 (+.f64 y x) (*.f64 (+.f64 z 1) 4)) 4)
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(/.f64 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8) 8)
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8)) 16)
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8))) 32)
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8)))) 64)
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 8))))) 128)
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))
(pow.f64 (*.f64 (+.f64 y x) (+.f64 z 1)) 1)
(+.f64 y (+.f64 x (*.f64 (+.f64 y x) z)))
(+.f64 (+.f64 y x) (*.f64 (+.f64 y x) z))
(*.f64 (+.f64 y x) (+.f64 z 1))

localize3.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 y (-.f64 z -1))
Compiler

Compiled 14 to 9 computations (35.7% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite265.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
1508×rational.json-simplify-53
1422×rational.json-simplify-35
1340×exponential.json-3
1340×rational.json-1
1340×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15013
211613
321813
440213
586013
6217613
7386113
8502513
9648213
10726913
11726913
12774013
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 y (-.f64 z -1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 z 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 z 1) (*.f64 y 1/2)) (*.f64 (+.f64 z 1) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 z 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 z 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z 1) (+.f64 y y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z 1) (*.f64 y 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z 1) (*.f64 y 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (*.f64 16 (*.f64 y (+.f64 z 1)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 4 (*.f64 16 (*.f64 y (+.f64 z 1))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z 1) (*.f64 8 (*.f64 y 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 16 (*.f64 y (+.f64 z 1))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 4 (*.f64 16 (*.f64 y (+.f64 z 1)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 z 1)) 1)))))

simplify490.0ms (3.1%)

Algorithm
egg-herbie
Rules
3476×rational.json-simplify-35
2082×rational.json-simplify-2
1408×rational.json-simplify-53
1380×rational.json-simplify-49
1112×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
049470
1134470
2277470
3671470
42554470
54093470
64882470
75243470
85524470
95736470
106514470
116804470
126804470
136804470
147006470
157435470
167769470
177985470
Stop Event
node limit
Counts
38 → 19
Calls
Call 1
Inputs
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
y
(+.f64 (*.f64 y z) y)
(+.f64 (*.f64 y z) y)
(+.f64 (*.f64 y z) y)
(*.f64 y z)
(+.f64 (*.f64 y z) y)
(+.f64 (*.f64 y z) y)
(+.f64 (*.f64 y z) y)
(*.f64 y z)
(+.f64 (*.f64 y z) y)
(+.f64 (*.f64 y z) y)
(+.f64 (*.f64 y z) y)
(+.f64 (*.f64 y (+.f64 z 1)) 0)
(+.f64 0 (*.f64 y (+.f64 z 1)))
(+.f64 (*.f64 (+.f64 z 1) (*.f64 y 1/2)) (*.f64 (+.f64 z 1) (*.f64 y 1/2)))
(-.f64 (*.f64 y (+.f64 z 1)) 0)
(/.f64 (*.f64 y (+.f64 z 1)) 1)
(/.f64 (*.f64 (+.f64 z 1) (+.f64 y y)) 2)
(/.f64 (*.f64 (+.f64 z 1) (*.f64 y 4)) 4)
(/.f64 (*.f64 (+.f64 z 1) (*.f64 y 8)) 8)
(/.f64 (*.f64 4 (*.f64 16 (*.f64 y (+.f64 z 1)))) 64)
(/.f64 (*.f64 2 (*.f64 4 (*.f64 16 (*.f64 y (+.f64 z 1))))) 128)
(/.f64 (*.f64 (+.f64 z 1) (*.f64 8 (*.f64 y 4))) 32)
(/.f64 (*.f64 16 (*.f64 y (+.f64 z 1))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 4 (*.f64 16 (*.f64 y (+.f64 z 1)))))) 256)
(pow.f64 (*.f64 y (+.f64 z 1)) 1)
Outputs
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
y
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(+.f64 (*.f64 y (+.f64 z 1)) 0)
(*.f64 y (+.f64 1 z))
(+.f64 0 (*.f64 y (+.f64 z 1)))
(*.f64 y (+.f64 1 z))
(+.f64 (*.f64 (+.f64 z 1) (*.f64 y 1/2)) (*.f64 (+.f64 z 1) (*.f64 y 1/2)))
(*.f64 y (+.f64 1 z))
(-.f64 (*.f64 y (+.f64 z 1)) 0)
(*.f64 y (+.f64 1 z))
(/.f64 (*.f64 y (+.f64 z 1)) 1)
(*.f64 y (+.f64 1 z))
(/.f64 (*.f64 (+.f64 z 1) (+.f64 y y)) 2)
(*.f64 y (+.f64 1 z))
(/.f64 (*.f64 (+.f64 z 1) (*.f64 y 4)) 4)
(*.f64 y (+.f64 1 z))
(/.f64 (*.f64 (+.f64 z 1) (*.f64 y 8)) 8)
(*.f64 y (+.f64 1 z))
(/.f64 (*.f64 4 (*.f64 16 (*.f64 y (+.f64 z 1)))) 64)
(*.f64 y (+.f64 1 z))
(/.f64 (*.f64 2 (*.f64 4 (*.f64 16 (*.f64 y (+.f64 z 1))))) 128)
(*.f64 y (+.f64 1 z))
(/.f64 (*.f64 (+.f64 z 1) (*.f64 8 (*.f64 y 4))) 32)
(*.f64 y (+.f64 1 z))
(/.f64 (*.f64 16 (*.f64 y (+.f64 z 1))) 16)
(*.f64 y (+.f64 1 z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 4 (*.f64 16 (*.f64 y (+.f64 z 1)))))) 256)
(*.f64 y (+.f64 1 z))
(pow.f64 (*.f64 y (+.f64 z 1)) 1)
(*.f64 y (+.f64 1 z))

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 9 computations (35.7% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

6 calls:

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

rewrite238.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
1672×rational.json-simplify-1
1502×rational.json-simplify-35
1372×exponential.json-3
1372×rational.json-1
1372×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15813
213613
324113
444113
593813
6237913
7416013
8523313
9676013
10759513
11759513
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 (+.f64 1 z) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 z) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 1 z) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 z) (*.f64 x 1/2)) (*.f64 (+.f64 1 z) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 1 z) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 z) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 z) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 z) (*.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 1 z) (*.f64 x 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 z) (*.f64 x 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 z) (*.f64 x 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 z) (*.f64 x 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 z) (*.f64 x 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 1 z) x) 1)))))

simplify578.0ms (3.7%)

Algorithm
egg-herbie
Rules
2778×rational.json-simplify-2
2570×rational.json-simplify-35
1512×rational.json-simplify-53
1212×rational.json-simplify-1
1048×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046314
1126314
2236314
3529314
41881314
53654314
64197314
74382314
84566314
94756314
104928314
115927314
126533314
136808314
146808314
156862314
166887314
176970314
187015314
197191314
207335314
217467314
Stop Event
node limit
Counts
26 → 20
Calls
Call 1
Inputs
x
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
(*.f64 z x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
(*.f64 z x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 (+.f64 1 z) x) 0)
(+.f64 0 (*.f64 (+.f64 1 z) x))
(+.f64 (*.f64 (+.f64 1 z) (*.f64 x 1/2)) (*.f64 (+.f64 1 z) (*.f64 x 1/2)))
(-.f64 (*.f64 (+.f64 1 z) x) 0)
(/.f64 (*.f64 (+.f64 1 z) x) 1)
(/.f64 (*.f64 (+.f64 1 z) (+.f64 x x)) 2)
(/.f64 (*.f64 (+.f64 1 z) (*.f64 x 4)) 4)
(/.f64 (*.f64 (+.f64 1 z) (*.f64 x 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 1 z) (*.f64 x 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 z) (*.f64 x 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 z) (*.f64 x 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 z) (*.f64 x 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 z) (*.f64 x 8))))))) 256)
(pow.f64 (*.f64 (+.f64 1 z) x) 1)
Outputs
x
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(+.f64 (*.f64 (+.f64 1 z) x) 0)
(*.f64 x (+.f64 z 1))
(+.f64 0 (*.f64 (+.f64 1 z) x))
(*.f64 x (+.f64 z 1))
(+.f64 (*.f64 (+.f64 1 z) (*.f64 x 1/2)) (*.f64 (+.f64 1 z) (*.f64 x 1/2)))
(*.f64 x (+.f64 z 1))
(-.f64 (*.f64 (+.f64 1 z) x) 0)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 (+.f64 1 z) x) 1)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 (+.f64 1 z) (+.f64 x x)) 2)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 (+.f64 1 z) (*.f64 x 4)) 4)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 (+.f64 1 z) (*.f64 x 8)) 8)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 2 (*.f64 (+.f64 1 z) (*.f64 x 8))) 16)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 z) (*.f64 x 8)))) 32)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 z) (*.f64 x 8))))) 64)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 z) (*.f64 x 8)))))) 128)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 1 z) (*.f64 x 8))))))) 256)
(*.f64 x (+.f64 z 1))
(pow.f64 (*.f64 (+.f64 1 z) x) 1)
(*.f64 x (+.f64 z 1))

localize8.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 5 computations (64.3% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

9 calls:

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

rewrite170.0ms (1.1%)

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

Useful iterations: 0 (0.0ms)

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

simplify906.0ms (5.7%)

Algorithm
egg-herbie
Rules
3060×rational.json-simplify-2
2726×rational.json-simplify-35
2212×rational.json-simplify-53
1048×rational.json-simplify-1
1044×exponential.json-simplify-26
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
048650
1127458
2238458
3543458
41930458
53809458
64387458
74530458
84637458
94742458
104845458
115807458
126413458
136687458
146687458
156687458
166790458
176893458
187465458
197722458
Stop Event
node limit
Counts
38 → 20
Calls
Call 1
Inputs
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 (+.f64 y x) z) 0)
(+.f64 0 (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 (+.f64 y x) (*.f64 z 1/2)) (*.f64 (+.f64 y x) (*.f64 z 1/2)))
(-.f64 (*.f64 (+.f64 y x) z) 0)
(/.f64 (*.f64 (+.f64 y x) z) 1)
(/.f64 (*.f64 (+.f64 y x) (+.f64 z z)) 2)
(/.f64 (*.f64 (+.f64 y x) (*.f64 z 4)) 4)
(/.f64 (*.f64 (+.f64 y x) (*.f64 z 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 y x) (*.f64 z 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) (*.f64 z 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) (*.f64 z 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) (*.f64 z 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) (*.f64 z 8))))))) 256)
(pow.f64 (*.f64 (+.f64 y x) z) 1)
Outputs
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 (+.f64 y x) z) 0)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 0 (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 (+.f64 y x) (*.f64 z 1/2)) (*.f64 (+.f64 y x) (*.f64 z 1/2)))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(-.f64 (*.f64 (+.f64 y x) z) 0)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 (+.f64 y x) z) 1)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 (+.f64 y x) (+.f64 z z)) 2)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 (+.f64 y x) (*.f64 z 4)) 4)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 (+.f64 y x) (*.f64 z 8)) 8)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 2 (*.f64 (+.f64 y x) (*.f64 z 8))) 16)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) (*.f64 z 8)))) 32)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) (*.f64 z 8))))) 64)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) (*.f64 z 8)))))) 128)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) (*.f64 z 8))))))) 256)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(pow.f64 (*.f64 (+.f64 y x) z) 1)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))

eval125.0ms (0.8%)

Compiler

Compiled 1493 to 847 computations (43.3% saved)

prune140.0ms (0.9%)

Pruning

12 alts after pruning (7 fresh and 5 done)

PrunedKeptTotal
New1397146
Fresh101
Picked011
Done145
Total14112153
Error
0.0b
Counts
153 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
38.0b
(+.f64 (*.f64 z x) (*.f64 z y))
33.5b
(+.f64 (*.f64 z x) x)
30.4b
(+.f64 (*.f64 y z) y)
26.0b
(+.f64 y x)
38.0b
(*.f64 (+.f64 y x) z)
0.0b
(*.f64 (+.f64 x y) (+.f64 z 1))
33.5b
(*.f64 (+.f64 1 z) x)
48.9b
(*.f64 z y)
52.4b
(*.f64 z x)
30.4b
(*.f64 y (-.f64 z -1))
44.2b
y
44.5b
x
Compiler

Compiled 124 to 82 computations (33.9% saved)

localize108.0ms (0.7%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 5 computations (61.5% saved)

series2.0ms (0%)

Counts
1 → 15
Calls

6 calls:

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

rewrite404.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
1734×rational.json-simplify-1
1654×rational.json-simplify-35
1514×exponential.json-3
1514×rational.json-1
1514×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
14013
29413
320913
439713
590713
6246713
7468313
8558213
9693113
10799813
11799813
Stop Event
node limit
Counts
1 → 44
Calls
Call 1
Inputs
(+.f64 (*.f64 y z) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 y (*.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 z 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 y (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 y (*.f64 (+.f64 z 1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y y) (+.f64 z 1)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (*.f64 (+.f64 z 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (*.f64 (+.f64 z (+.f64 z 2)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (+.f64 1/2 (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z 1) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 y (/.f64 (+.f64 z 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 y 8) (+.f64 z (+.f64 z 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 (+.f64 z 1) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 4) (*.f64 (+.f64 z 1) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 4) (/.f64 (+.f64 z 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 4) (*.f64 1/8 (+.f64 z (+.f64 z 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 y 8) (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (*.f64 1/2 (*.f64 y 1/4)) (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z 1) (*.f64 y 8)) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 8) (*.f64 1/8 (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z (+.f64 z 2)) (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 y y) (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 (+.f64 z 1) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) (+.f64 z (+.f64 z 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 y 8)) (*.f64 1/16 (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z 1) 4) (*.f64 y 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 y (*.f64 (+.f64 z 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z 1) 1/2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (/.f64 (+.f64 z 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/4) (*.f64 (+.f64 z 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 z 1) (*.f64 y 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z 1) 1/4) (*.f64 y 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 z 1) 4) (*.f64 y 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 z 1/2)) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y y) (+.f64 z 1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 z 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z 1) (*.f64 y 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 y 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 y 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 y 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 y 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 y 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 y (*.f64 y z)) 1)))))

simplify140.0ms (0.9%)

Algorithm
egg-herbie
Rules
1942×rational.json-simplify-35
1292×rational.json-simplify-51
1108×rational.json-simplify-41
1044×rational.json-simplify-2
838×rational.json-simplify-45
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0105767
1247767
2481767
3881767
41619767
54491767
65771767
76420767
87050767
97541767
Stop Event
node limit
Counts
59 → 50
Calls
Call 1
Inputs
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
y
(*.f64 y z)
(*.f64 y z)
(-.f64 (+.f64 y (*.f64 y z)) 0)
(*.f64 y (+.f64 z 1))
(*.f64 (+.f64 y (*.f64 y z)) 1)
(*.f64 1 (+.f64 y (*.f64 y z)))
(*.f64 2 (*.f64 y (*.f64 (+.f64 z 1) 1/2)))
(*.f64 (*.f64 (+.f64 y y) (+.f64 z 1)) 1/2)
(*.f64 (+.f64 y y) (*.f64 (+.f64 z 1) 1/2))
(*.f64 (+.f64 y y) (*.f64 (+.f64 z (+.f64 z 2)) 1/4))
(*.f64 (+.f64 y y) (+.f64 1/2 (*.f64 z 1/2)))
(*.f64 (+.f64 z 1) y)
(*.f64 4 (*.f64 y (/.f64 (+.f64 z 1) 4)))
(*.f64 4 (*.f64 (/.f64 y 8) (+.f64 z (+.f64 z 2))))
(*.f64 (*.f64 y (*.f64 (+.f64 z 1) 4)) 1/4)
(*.f64 (*.f64 y 4) (*.f64 (+.f64 z 1) 1/4))
(*.f64 (*.f64 y 4) (/.f64 (+.f64 z 1) 4))
(*.f64 (*.f64 y 4) (*.f64 1/8 (+.f64 z (+.f64 z 2))))
(*.f64 8 (*.f64 (/.f64 y 8) (+.f64 z 1)))
(*.f64 8 (*.f64 (*.f64 1/2 (*.f64 y 1/4)) (+.f64 z 1)))
(*.f64 (*.f64 (+.f64 z 1) (*.f64 y 8)) 1/8)
(*.f64 (*.f64 y 8) (*.f64 1/8 (+.f64 z 1)))
(*.f64 (+.f64 z (+.f64 z 2)) (*.f64 y 1/2))
(*.f64 1/2 (*.f64 (+.f64 y y) (+.f64 z 1)))
(*.f64 (*.f64 y (*.f64 (+.f64 z 1) 1/2)) 2)
(*.f64 (*.f64 y 1/2) (+.f64 z (+.f64 z 2)))
(*.f64 (*.f64 2 (*.f64 y 8)) (*.f64 1/16 (+.f64 z 1)))
(*.f64 (*.f64 (+.f64 z 1) 4) (*.f64 y 1/4))
(*.f64 1/4 (*.f64 y (*.f64 (+.f64 z 1) 4)))
(*.f64 (*.f64 (+.f64 z 1) 1/2) (+.f64 y y))
(*.f64 (*.f64 y (/.f64 (+.f64 z 1) 4)) 4)
(*.f64 (*.f64 y 1/4) (*.f64 (+.f64 z 1) 4))
(*.f64 1/8 (*.f64 (+.f64 z 1) (*.f64 y 8)))
(*.f64 (*.f64 (+.f64 z 1) 1/4) (*.f64 y 4))
(*.f64 (/.f64 (+.f64 z 1) 4) (*.f64 y 4))
(*.f64 (+.f64 1/2 (*.f64 z 1/2)) (+.f64 y y))
(/.f64 (+.f64 y (*.f64 y z)) 1)
(/.f64 (*.f64 (+.f64 y y) (+.f64 z 1)) 2)
(/.f64 (*.f64 y (*.f64 (+.f64 z 1) 4)) 4)
(/.f64 (*.f64 (+.f64 z 1) (*.f64 y 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 y 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 y 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 y 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 y 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 y 8))))))) 256)
(pow.f64 (+.f64 y (*.f64 y z)) 1)
Outputs
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
y
(*.f64 y z)
(*.f64 y z)
(-.f64 (+.f64 y (*.f64 y z)) 0)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 y (+.f64 z 1))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (+.f64 y (*.f64 y z)) 1)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 1 (+.f64 y (*.f64 y z)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 2 (*.f64 y (*.f64 (+.f64 z 1) 1/2)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (*.f64 (+.f64 y y) (+.f64 z 1)) 1/2)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (+.f64 y y) (*.f64 (+.f64 z 1) 1/2))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (+.f64 y y) (*.f64 (+.f64 z (+.f64 z 2)) 1/4))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (+.f64 y y) (+.f64 1/2 (*.f64 z 1/2)))
(*.f64 (+.f64 z 1) y)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 4 (*.f64 y (/.f64 (+.f64 z 1) 4)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 4 (*.f64 (/.f64 y 8) (+.f64 z (+.f64 z 2))))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (*.f64 y (*.f64 (+.f64 z 1) 4)) 1/4)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (*.f64 y 4) (*.f64 (+.f64 z 1) 1/4))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (*.f64 y 4) (/.f64 (+.f64 z 1) 4))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (*.f64 y 4) (*.f64 1/8 (+.f64 z (+.f64 z 2))))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 8 (*.f64 (/.f64 y 8) (+.f64 z 1)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 8 (*.f64 (*.f64 1/2 (*.f64 y 1/4)) (+.f64 z 1)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (*.f64 (+.f64 z 1) (*.f64 y 8)) 1/8)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (*.f64 y 8) (*.f64 1/8 (+.f64 z 1)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (+.f64 z (+.f64 z 2)) (*.f64 y 1/2))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 1/2 (*.f64 (+.f64 y y) (+.f64 z 1)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (*.f64 y (*.f64 (+.f64 z 1) 1/2)) 2)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (*.f64 y 1/2) (+.f64 z (+.f64 z 2)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (*.f64 2 (*.f64 y 8)) (*.f64 1/16 (+.f64 z 1)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (*.f64 (+.f64 z 1) 4) (*.f64 y 1/4))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 1/4 (*.f64 y (*.f64 (+.f64 z 1) 4)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (*.f64 (+.f64 z 1) 1/2) (+.f64 y y))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (*.f64 y (/.f64 (+.f64 z 1) 4)) 4)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (*.f64 y 1/4) (*.f64 (+.f64 z 1) 4))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 1/8 (*.f64 (+.f64 z 1) (*.f64 y 8)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (*.f64 (+.f64 z 1) 1/4) (*.f64 y 4))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (/.f64 (+.f64 z 1) 4) (*.f64 y 4))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(*.f64 (+.f64 1/2 (*.f64 z 1/2)) (+.f64 y y))
(*.f64 (+.f64 y y) (+.f64 1/2 (*.f64 z 1/2)))
(/.f64 (+.f64 y (*.f64 y z)) 1)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(/.f64 (*.f64 (+.f64 y y) (+.f64 z 1)) 2)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(/.f64 (*.f64 y (*.f64 (+.f64 z 1) 4)) 4)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(/.f64 (*.f64 (+.f64 z 1) (*.f64 y 8)) 8)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 y 8))) 16)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 y 8)))) 32)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 y 8))))) 64)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 y 8)))))) 128)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 y 8))))))) 256)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))
(pow.f64 (+.f64 y (*.f64 y z)) 1)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 y (*.f64 y z))

localize4.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize3.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 5 computations (61.5% saved)

series1.0ms (0%)

Counts
1 → 15
Calls

6 calls:

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

rewrite189.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
1734×rational.json-simplify-1
1654×rational.json-simplify-35
1514×exponential.json-3
1514×rational.json-1
1514×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
14013
29413
320913
439713
590713
6246713
7468313
8558213
9693113
10799813
11799813
Stop Event
node limit
Counts
1 → 44
Calls
Call 1
Inputs
(+.f64 (*.f64 z x) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 z 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 x (*.f64 (+.f64 z 1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 2 (+.f64 z z))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (+.f64 z 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (+.f64 2 (+.f64 z z)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 x (/.f64 (+.f64 z 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 x 8) (+.f64 2 (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 (+.f64 z 1) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 (+.f64 z 1) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (/.f64 (+.f64 z 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 1/8 (+.f64 2 (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 x 8) (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (*.f64 1/2 (*.f64 x 1/4)) (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z 1) (*.f64 x 8)) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (+.f64 z z)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 8) (*.f64 1/8 (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (+.f64 2 (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 (+.f64 z 1) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 2 (+.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 x 8)) (*.f64 1/16 (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z 1) 4) (*.f64 x 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x (*.f64 (+.f64 z 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z 1) 1/2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (/.f64 (+.f64 z 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/4) (*.f64 (+.f64 z 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 z 1) (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z 1) 1/4) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 z 1) 4) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 z 1/2)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 2 (+.f64 z z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 z 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z 1) (*.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 x 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 x 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 x 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 x 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 x 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 z x)) 1)))))

simplify269.0ms (1.7%)

Algorithm
egg-herbie
Rules
1880×rational.json-simplify-35
1270×rational.json-simplify-51
1184×rational.json-simplify-41
1036×rational.json-simplify-2
770×rational.json-simplify-42
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0105767
1250767
2485767
3885767
41621767
54535767
65752767
76384767
86964767
97408767
Stop Event
node limit
Counts
59 → 49
Calls
Call 1
Inputs
x
(*.f64 z x)
(*.f64 z x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(-.f64 (+.f64 x (*.f64 z x)) 0)
(*.f64 x (+.f64 z 1))
(*.f64 (+.f64 x (*.f64 z x)) 1)
(*.f64 1 (+.f64 x (*.f64 z x)))
(*.f64 2 (*.f64 x (*.f64 (+.f64 z 1) 1/2)))
(*.f64 (*.f64 x (+.f64 2 (+.f64 z z))) 1/2)
(*.f64 (+.f64 x x) (*.f64 (+.f64 z 1) 1/2))
(*.f64 (+.f64 x x) (*.f64 (+.f64 2 (+.f64 z z)) 1/4))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 z 1/2)))
(*.f64 (+.f64 z 1) x)
(*.f64 4 (*.f64 x (/.f64 (+.f64 z 1) 4)))
(*.f64 4 (*.f64 (/.f64 x 8) (+.f64 2 (+.f64 z z))))
(*.f64 (*.f64 x (*.f64 (+.f64 z 1) 4)) 1/4)
(*.f64 (*.f64 x 4) (*.f64 (+.f64 z 1) 1/4))
(*.f64 (*.f64 x 4) (/.f64 (+.f64 z 1) 4))
(*.f64 (*.f64 x 4) (*.f64 1/8 (+.f64 2 (+.f64 z z))))
(*.f64 8 (*.f64 (/.f64 x 8) (+.f64 z 1)))
(*.f64 8 (*.f64 (*.f64 1/2 (*.f64 x 1/4)) (+.f64 z 1)))
(*.f64 (*.f64 (+.f64 z 1) (*.f64 x 8)) 1/8)
(*.f64 (+.f64 2 (+.f64 z z)) (*.f64 x 1/2))
(*.f64 (*.f64 x 8) (*.f64 1/8 (+.f64 z 1)))
(*.f64 1/2 (*.f64 x (+.f64 2 (+.f64 z z))))
(*.f64 (*.f64 x (*.f64 (+.f64 z 1) 1/2)) 2)
(*.f64 (*.f64 x 1/2) (+.f64 2 (+.f64 z z)))
(*.f64 (*.f64 2 (*.f64 x 8)) (*.f64 1/16 (+.f64 z 1)))
(*.f64 (*.f64 (+.f64 z 1) 4) (*.f64 x 1/4))
(*.f64 1/4 (*.f64 x (*.f64 (+.f64 z 1) 4)))
(*.f64 (*.f64 (+.f64 z 1) 1/2) (+.f64 x x))
(*.f64 (*.f64 x (/.f64 (+.f64 z 1) 4)) 4)
(*.f64 (*.f64 x 1/4) (*.f64 (+.f64 z 1) 4))
(*.f64 1/8 (*.f64 (+.f64 z 1) (*.f64 x 8)))
(*.f64 (*.f64 (+.f64 z 1) 1/4) (*.f64 x 4))
(*.f64 (/.f64 (+.f64 z 1) 4) (*.f64 x 4))
(*.f64 (+.f64 1/2 (*.f64 z 1/2)) (+.f64 x x))
(/.f64 (+.f64 x (*.f64 z x)) 1)
(/.f64 (*.f64 x (+.f64 2 (+.f64 z z))) 2)
(/.f64 (*.f64 x (*.f64 (+.f64 z 1) 4)) 4)
(/.f64 (*.f64 (+.f64 z 1) (*.f64 x 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 x 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 x 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 x 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 x 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 x 8))))))) 256)
(pow.f64 (+.f64 x (*.f64 z x)) 1)
Outputs
x
(*.f64 z x)
(*.f64 x z)
(*.f64 z x)
(*.f64 x z)
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(*.f64 x (+.f64 z 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(*.f64 x (+.f64 z 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(*.f64 x (+.f64 z 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 z) 1) x))
(*.f64 x (+.f64 z 1))
(-.f64 (+.f64 x (*.f64 z x)) 0)
(*.f64 x (+.f64 z 1))
(*.f64 x (+.f64 z 1))
(*.f64 (+.f64 x (*.f64 z x)) 1)
(*.f64 x (+.f64 z 1))
(*.f64 1 (+.f64 x (*.f64 z x)))
(*.f64 x (+.f64 z 1))
(*.f64 2 (*.f64 x (*.f64 (+.f64 z 1) 1/2)))
(*.f64 x (+.f64 z 1))
(*.f64 (*.f64 x (+.f64 2 (+.f64 z z))) 1/2)
(*.f64 x (+.f64 z 1))
(*.f64 (+.f64 x x) (*.f64 (+.f64 z 1) 1/2))
(*.f64 x (+.f64 z 1))
(*.f64 (+.f64 x x) (*.f64 (+.f64 2 (+.f64 z z)) 1/4))
(*.f64 x (+.f64 z 1))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 z 1/2)))
(*.f64 (+.f64 z 1) x)
(*.f64 x (+.f64 z 1))
(*.f64 4 (*.f64 x (/.f64 (+.f64 z 1) 4)))
(*.f64 x (+.f64 z 1))
(*.f64 4 (*.f64 (/.f64 x 8) (+.f64 2 (+.f64 z z))))
(*.f64 x (+.f64 z 1))
(*.f64 (*.f64 x (*.f64 (+.f64 z 1) 4)) 1/4)
(*.f64 x (+.f64 z 1))
(*.f64 (*.f64 x 4) (*.f64 (+.f64 z 1) 1/4))
(*.f64 x (+.f64 z 1))
(*.f64 (*.f64 x 4) (/.f64 (+.f64 z 1) 4))
(*.f64 x (+.f64 z 1))
(*.f64 (*.f64 x 4) (*.f64 1/8 (+.f64 2 (+.f64 z z))))
(*.f64 x (+.f64 z 1))
(*.f64 8 (*.f64 (/.f64 x 8) (+.f64 z 1)))
(*.f64 x (+.f64 z 1))
(*.f64 8 (*.f64 (*.f64 1/2 (*.f64 x 1/4)) (+.f64 z 1)))
(*.f64 x (+.f64 z 1))
(*.f64 (*.f64 (+.f64 z 1) (*.f64 x 8)) 1/8)
(*.f64 x (+.f64 z 1))
(*.f64 (+.f64 2 (+.f64 z z)) (*.f64 x 1/2))
(*.f64 x (+.f64 z 1))
(*.f64 (*.f64 x 8) (*.f64 1/8 (+.f64 z 1)))
(*.f64 x (+.f64 z 1))
(*.f64 1/2 (*.f64 x (+.f64 2 (+.f64 z z))))
(*.f64 x (+.f64 z 1))
(*.f64 (*.f64 x (*.f64 (+.f64 z 1) 1/2)) 2)
(*.f64 x (+.f64 z 1))
(*.f64 (*.f64 x 1/2) (+.f64 2 (+.f64 z z)))
(*.f64 x (+.f64 z 1))
(*.f64 (*.f64 2 (*.f64 x 8)) (*.f64 1/16 (+.f64 z 1)))
(*.f64 x (+.f64 z 1))
(*.f64 (*.f64 (+.f64 z 1) 4) (*.f64 x 1/4))
(*.f64 x (+.f64 z 1))
(*.f64 1/4 (*.f64 x (*.f64 (+.f64 z 1) 4)))
(*.f64 x (+.f64 z 1))
(*.f64 (*.f64 (+.f64 z 1) 1/2) (+.f64 x x))
(*.f64 x (+.f64 z 1))
(*.f64 (*.f64 x (/.f64 (+.f64 z 1) 4)) 4)
(*.f64 x (+.f64 z 1))
(*.f64 (*.f64 x 1/4) (*.f64 (+.f64 z 1) 4))
(*.f64 x (+.f64 z 1))
(*.f64 1/8 (*.f64 (+.f64 z 1) (*.f64 x 8)))
(*.f64 x (+.f64 z 1))
(*.f64 (*.f64 (+.f64 z 1) 1/4) (*.f64 x 4))
(*.f64 x (+.f64 z 1))
(*.f64 (/.f64 (+.f64 z 1) 4) (*.f64 x 4))
(*.f64 x (+.f64 z 1))
(*.f64 (+.f64 1/2 (*.f64 z 1/2)) (+.f64 x x))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 z 1/2)))
(/.f64 (+.f64 x (*.f64 z x)) 1)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 x (+.f64 2 (+.f64 z z))) 2)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 x (*.f64 (+.f64 z 1) 4)) 4)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 (+.f64 z 1) (*.f64 x 8)) 8)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 x 8))) 16)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 x 8)))) 32)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 x 8))))) 64)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 x 8)))))) 128)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 z 1) (*.f64 x 8))))))) 256)
(*.f64 x (+.f64 z 1))
(pow.f64 (+.f64 x (*.f64 z x)) 1)
(*.f64 x (+.f64 z 1))

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 19 to 6 computations (68.4% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite161.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
2754×rational.json-simplify-2
1304×rational.json-1
1304×rational.json-2
1304×rational.json-3
1284×exponential.json-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0819
15313
211713
325513
447413
5110713
6276413
7489913
8616313
9702213
10702213
Stop Event
node limit
Counts
1 → 48
Calls
Call 1
Inputs
(+.f64 (*.f64 z x) (*.f64 z y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 z (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 z (*.f64 (+.f64 x y) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z z) (*.f64 (+.f64 x y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z z) (*.f64 (*.f64 2 (+.f64 x y)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 z (/.f64 (+.f64 x y) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (*.f64 2 (+.f64 x y)) (/.f64 z 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) (*.f64 z 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 4) (/.f64 (+.f64 x y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 4) (*.f64 (+.f64 x y) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 4) (*.f64 (*.f64 2 (+.f64 x y)) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (+.f64 x y) (/.f64 z 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 8) (*.f64 (+.f64 x y) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 x y)) (*.f64 z 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 z (*.f64 2 (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 1/2) (*.f64 2 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 1/2) (+.f64 (+.f64 y y) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (*.f64 (+.f64 x y) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 z 8)) (*.f64 (+.f64 x y) 1/16))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 4) (*.f64 z 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x y) (*.f64 z 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 1/2) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (/.f64 (+.f64 x y) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 1/4) (*.f64 (+.f64 x y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (*.f64 z (+.f64 x y)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) 4) (*.f64 z 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 y y) (+.f64 x x)) (*.f64 z 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 1/4) (*.f64 z 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) (/.f64 z 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 1/8) (*.f64 z 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 1/16) (*.f64 2 (*.f64 z 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 2 (+.f64 x y)) 1/4) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 2 (+.f64 x y)) (/.f64 z 8)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 2 (+.f64 x y)) 1/8) (*.f64 z 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (+.f64 x y)) 1)))))

simplify238.0ms (1.5%)

Algorithm
egg-herbie
Rules
2056×rational.json-simplify-2
1588×rational.json-simplify-35
1518×rational.json-simplify-1
1470×rational.json-simplify-53
1310×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01081056
12451056
25661056
314701056
437211056
555181056
659741056
760941056
862201056
963441056
1064921056
Stop Event
node limit
Counts
84 → 55
Calls
Call 1
Inputs
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(-.f64 (*.f64 z (+.f64 x y)) 0)
(*.f64 z (+.f64 x y))
(*.f64 (*.f64 z (+.f64 x y)) 1)
(*.f64 1 (*.f64 z (+.f64 x y)))
(*.f64 2 (*.f64 z (*.f64 (+.f64 x y) 1/2)))
(*.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 1/2)
(*.f64 (+.f64 z z) (*.f64 (+.f64 x y) 1/2))
(*.f64 (+.f64 z z) (*.f64 (*.f64 2 (+.f64 x y)) 1/4))
(*.f64 (+.f64 x y) z)
(*.f64 4 (*.f64 z (/.f64 (+.f64 x y) 4)))
(*.f64 4 (*.f64 (*.f64 2 (+.f64 x y)) (/.f64 z 8)))
(*.f64 (*.f64 (+.f64 x y) (*.f64 z 4)) 1/4)
(*.f64 (*.f64 z 4) (/.f64 (+.f64 x y) 4))
(*.f64 (*.f64 z 4) (*.f64 (+.f64 x y) 1/4))
(*.f64 (*.f64 z 4) (*.f64 (*.f64 2 (+.f64 x y)) 1/8))
(*.f64 8 (*.f64 (+.f64 x y) (/.f64 z 8)))
(*.f64 (*.f64 z 8) (*.f64 (+.f64 x y) 1/8))
(*.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 1/8)
(*.f64 (*.f64 2 (+.f64 x y)) (*.f64 z 1/2))
(*.f64 1/2 (*.f64 z (*.f64 2 (+.f64 x y))))
(*.f64 (*.f64 z 1/2) (*.f64 2 (+.f64 x y)))
(*.f64 (*.f64 z 1/2) (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 (*.f64 z (*.f64 (+.f64 x y) 1/2)) 2)
(*.f64 (*.f64 2 (*.f64 z 8)) (*.f64 (+.f64 x y) 1/16))
(*.f64 (*.f64 (+.f64 x y) 4) (*.f64 z 1/4))
(*.f64 1/4 (*.f64 (+.f64 x y) (*.f64 z 4)))
(*.f64 (*.f64 (+.f64 x y) 1/2) (+.f64 z z))
(*.f64 (*.f64 z (/.f64 (+.f64 x y) 4)) 4)
(*.f64 (*.f64 z 1/4) (*.f64 (+.f64 x y) 4))
(*.f64 1/8 (*.f64 (*.f64 z (+.f64 x y)) 8))
(*.f64 (/.f64 (+.f64 x y) 4) (*.f64 z 4))
(*.f64 (+.f64 (+.f64 y y) (+.f64 x x)) (*.f64 z 1/2))
(*.f64 (*.f64 (+.f64 x y) 1/4) (*.f64 z 4))
(*.f64 (*.f64 (+.f64 x y) (/.f64 z 8)) 8)
(*.f64 (*.f64 (+.f64 x y) 1/8) (*.f64 z 8))
(*.f64 (*.f64 (+.f64 x y) 1/16) (*.f64 2 (*.f64 z 8)))
(*.f64 (*.f64 (*.f64 2 (+.f64 x y)) 1/4) (+.f64 z z))
(*.f64 (*.f64 (*.f64 2 (+.f64 x y)) (/.f64 z 8)) 4)
(*.f64 (*.f64 (*.f64 2 (+.f64 x y)) 1/8) (*.f64 z 4))
(/.f64 (*.f64 z (+.f64 x y)) 1)
(/.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 2)
(/.f64 (*.f64 (+.f64 x y) (*.f64 z 4)) 4)
(/.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))))) 128)
(pow.f64 (*.f64 z (+.f64 x y)) 1)
Outputs
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 z (+.f64 y x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 z (+.f64 y x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 z (+.f64 y x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 z (+.f64 y x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(-.f64 (*.f64 z (+.f64 x y)) 0)
(*.f64 z (+.f64 y x))
(*.f64 z (+.f64 x y))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z (+.f64 x y)) 1)
(*.f64 z (+.f64 y x))
(*.f64 1 (*.f64 z (+.f64 x y)))
(*.f64 z (+.f64 y x))
(*.f64 2 (*.f64 z (*.f64 (+.f64 x y) 1/2)))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 1/2)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 z z) (*.f64 (+.f64 x y) 1/2))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 z z) (*.f64 (*.f64 2 (+.f64 x y)) 1/4))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 x y) z)
(*.f64 z (+.f64 y x))
(*.f64 4 (*.f64 z (/.f64 (+.f64 x y) 4)))
(*.f64 z (+.f64 y x))
(*.f64 4 (*.f64 (*.f64 2 (+.f64 x y)) (/.f64 z 8)))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 (+.f64 x y) (*.f64 z 4)) 1/4)
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z 4) (/.f64 (+.f64 x y) 4))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z 4) (*.f64 (+.f64 x y) 1/4))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z 4) (*.f64 (*.f64 2 (+.f64 x y)) 1/8))
(*.f64 z (+.f64 y x))
(*.f64 8 (*.f64 (+.f64 x y) (/.f64 z 8)))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z 8) (*.f64 (+.f64 x y) 1/8))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 1/8)
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 2 (+.f64 x y)) (*.f64 z 1/2))
(*.f64 z (+.f64 y x))
(*.f64 1/2 (*.f64 z (*.f64 2 (+.f64 x y))))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z 1/2) (*.f64 2 (+.f64 x y)))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z 1/2) (+.f64 (+.f64 y y) (+.f64 x x)))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z (*.f64 (+.f64 x y) 1/2)) 2)
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 2 (*.f64 z 8)) (*.f64 (+.f64 x y) 1/16))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 (+.f64 x y) 4) (*.f64 z 1/4))
(*.f64 z (+.f64 y x))
(*.f64 1/4 (*.f64 (+.f64 x y) (*.f64 z 4)))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 (+.f64 x y) 1/2) (+.f64 z z))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z (/.f64 (+.f64 x y) 4)) 4)
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z 1/4) (*.f64 (+.f64 x y) 4))
(*.f64 z (+.f64 y x))
(*.f64 1/8 (*.f64 (*.f64 z (+.f64 x y)) 8))
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 (+.f64 x y) 4) (*.f64 z 4))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 (+.f64 y y) (+.f64 x x)) (*.f64 z 1/2))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 (+.f64 x y) 1/4) (*.f64 z 4))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 (+.f64 x y) (/.f64 z 8)) 8)
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 (+.f64 x y) 1/8) (*.f64 z 8))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 (+.f64 x y) 1/16) (*.f64 2 (*.f64 z 8)))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 (*.f64 2 (+.f64 x y)) 1/4) (+.f64 z z))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 (*.f64 2 (+.f64 x y)) (/.f64 z 8)) 4)
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 (*.f64 2 (+.f64 x y)) 1/8) (*.f64 z 4))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 z (+.f64 x y)) 1)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 z (*.f64 2 (+.f64 x y))) 2)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 (+.f64 x y) (*.f64 z 4)) 4)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 (*.f64 z (+.f64 x y)) 8) 8)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)) 16)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))) 32)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8)))) 64)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 x y)) 8))))) 128)
(*.f64 z (+.f64 y x))
(pow.f64 (*.f64 z (+.f64 x y)) 1)
(*.f64 z (+.f64 y x))

eval172.0ms (1.1%)

Compiler

Compiled 1379 to 865 computations (37.3% saved)

prune26.0ms (0.2%)

Pruning

12 alts after pruning (2 fresh and 10 done)

PrunedKeptTotal
New1540154
Fresh022
Picked011
Done099
Total15412166
Error
0.0b
Counts
166 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
38.0b
(+.f64 (*.f64 z x) (*.f64 z y))
33.5b
(+.f64 (*.f64 z x) x)
30.4b
(+.f64 (*.f64 y z) y)
26.0b
(+.f64 y x)
38.0b
(*.f64 (+.f64 y x) z)
0.0b
(*.f64 (+.f64 x y) (+.f64 z 1))
33.5b
(*.f64 (+.f64 1 z) x)
48.9b
(*.f64 z y)
52.4b
(*.f64 z x)
30.4b
(*.f64 y (-.f64 z -1))
44.2b
y
44.5b
x
Compiler

Compiled 86 to 58 computations (32.6% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune4.0ms (0%)

Pruning

12 alts after pruning (2 fresh and 10 done)

PrunedKeptTotal
New000
Fresh022
Picked000
Done01010
Total01212
Error
0.0b
Counts
12 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
38.0b
(+.f64 (*.f64 z x) (*.f64 z y))
33.5b
(+.f64 (*.f64 z x) x)
30.4b
(+.f64 (*.f64 y z) y)
26.0b
(+.f64 y x)
38.0b
(*.f64 (+.f64 y x) z)
0.0b
(*.f64 (+.f64 x y) (+.f64 z 1))
33.5b
(*.f64 (+.f64 1 z) x)
48.9b
(*.f64 z y)
52.4b
(*.f64 z x)
30.4b
(*.f64 y (-.f64 z -1))
44.2b
y
44.5b
x
Compiler

Compiled 86 to 58 computations (32.6% saved)

regimes50.0ms (0.3%)

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

6 calls:

9.0ms
(*.f64 (+.f64 x y) (+.f64 z 1))
9.0ms
z
8.0ms
x
8.0ms
y
8.0ms
(+.f64 x y)
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1(*.f64 (+.f64 x y) (+.f64 z 1))
0.0b1(+.f64 x y)
0.0b1(+.f64 z 1)
Compiler

Compiled 107 to 55 computations (48.6% saved)

regimes280.0ms (1.8%)

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

6 calls:

159.0ms
y
89.0ms
(+.f64 x y)
8.0ms
z
7.0ms
x
7.0ms
(*.f64 (+.f64 x y) (+.f64 z 1))
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1(*.f64 (+.f64 x y) (+.f64 z 1))
0.0b1(+.f64 x y)
0.0b1(+.f64 z 1)
Compiler

Compiled 87 to 46 computations (47.1% saved)

regimes914.0ms (5.8%)

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

3 calls:

754.0ms
x
135.0ms
y
24.0ms
z
Results
ErrorSegmentsBranch
10.8b4x
10.2b4y
1.6b4z
Compiler

Compiled 51 to 25 computations (51% saved)

bsearch40.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
471043463.3897815
28302761967447.19
13.0ms
1.5117303998156407e-9
4.429733102887844e-6
13.0ms
-264.80145733477934
-0.16009858096135451
Results
33.0ms384×body256valid
1.0ms13×body256infinite
Compiler

Compiled 416 to 284 computations (31.7% saved)

regimes71.0ms (0.4%)

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

3 calls:

24.0ms
y
23.0ms
z
22.0ms
x
Results
ErrorSegmentsBranch
10.8b4x
10.2b4y
1.6b4z
Compiler

Compiled 46 to 24 computations (47.8% saved)

bsearch100.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
471043463.3897815
28302761967447.19
74.0ms
1.5117303998156407e-9
4.429733102887844e-6
12.0ms
-264.80145733477934
-0.16009858096135451
Results
95.0ms384×body256valid
1.0msbody256infinite
Compiler

Compiled 416 to 300 computations (27.9% saved)

regimes99.0ms (0.6%)

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

3 calls:

63.0ms
z
19.0ms
x
15.0ms
y
Results
ErrorSegmentsBranch
10.8b4x
11.9b2y
11.0b4z
Compiler

Compiled 36 to 21 computations (41.7% saved)

bsearch32.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
7.0ms
-1.3757708800984978e-161
-8.55168488226309e-162
10.0ms
-2.5534874435107143e-52
-5.975206451927292e-53
14.0ms
-1.4454906206803524e-6
-8.98992364726463e-16
Results
28.0ms304×body256valid
Compiler

Compiled 358 to 278 computations (22.3% saved)

regimes295.0ms (1.9%)

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

3 calls:

202.0ms
y
82.0ms
z
10.0ms
x
Results
ErrorSegmentsBranch
16.4b2x
17.4b4y
12.7b3z
Compiler

Compiled 31 to 18 computations (41.9% saved)

bsearch26.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
0.00011604857013508527
0.0551851328887225
13.0ms
-0.0842528819229593
-1.7397164580587092e-6
Results
23.0ms256×body256valid
Compiler

Compiled 272 to 204 computations (25% saved)

regimes280.0ms (1.8%)

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

3 calls:

154.0ms
x
111.0ms
y
13.0ms
z
Results
ErrorSegmentsBranch
22.7b5x
23.6b5y
13.2b3z
Compiler

Compiled 26 to 15 computations (42.3% saved)

bsearch27.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
471043463.3897815
28302761967447.19
14.0ms
-264.80145733477934
-0.16009858096135451
Results
22.0ms256×body256valid
0.0msbody256infinite
Compiler

Compiled 240 to 172 computations (28.3% saved)

regimes255.0ms (1.6%)

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

3 calls:

152.0ms
y
77.0ms
z
25.0ms
x
Results
ErrorSegmentsBranch
27.8b7x
27.4b5y
28.8b6z
Compiler

Compiled 23 to 14 computations (39.1% saved)

bsearch47.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
4.436497489731747e+77
2.2119088758574294e+79
11.0ms
5.043565248422824e-110
9.0024316606091e-109
11.0ms
9.415113508603527e-188
8.177088532434589e-187
11.0ms
7.266832374325378e-223
4.8995625256794645e-222
Results
42.0ms416×body256valid
1.0ms15×body256infinite
Compiler

Compiled 328 to 246 computations (25% saved)

regimes60.0ms (0.4%)

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

3 calls:

35.0ms
z
16.0ms
x
8.0ms
y
Results
ErrorSegmentsBranch
31.2b4x
31.2b2y
29.7b10z
Compiler

Compiled 20 to 13 computations (35% saved)

bsearch113.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
1.5117303998156407e-9
4.429733102887844e-6
15.0ms
2.848442460627184e-125
5.42192965028369e-116
15.0ms
5.626399600443491e-165
4.500396298085958e-156
15.0ms
4.145939194689602e-225
7.522684626302259e-219
18.0ms
6.068355019062496e-248
1.7358670839442134e-233
12.0ms
-4.919737514357817e-277
-2.8808189266295467e-279
8.0ms
-5.056630713657074e-259
-3.245575195879116e-259
5.0ms
-1.3361698060257817e-193
-1.0087962383437285e-193
11.0ms
-43045687984942290.0
-8752629613071792.0
Results
102.0ms1040×body256valid
1.0msbody256infinite
Compiler

Compiled 694 to 546 computations (21.3% saved)

regimes36.0ms (0.2%)

Accuracy

Total -30.8b remaining (-98.6%)

Threshold costs -30.8b (-98.6%)

Counts
2 → 2
Calls
Call 1
Inputs
x
y
Outputs
x
y
Calls

3 calls:

23.0ms
z
6.0ms
x
6.0ms
y
Results
ErrorSegmentsBranch
32.4b2x
31.2b2y
39.1b8z
Compiler

Compiled 17 to 12 computations (29.4% saved)

bsearch9.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
9.0ms
1.6600083049042212e-105
5.4694314069554385e-105
Results
8.0ms80×body256valid
Compiler

Compiled 66 to 52 computations (21.2% saved)

simplify10.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
098527
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(*.f64 (+.f64 x y) (+.f64 z 1))
(if (<=.f64 z -1) (*.f64 (+.f64 y x) z) (if (<=.f64 z 4533471823554859/4722366482869645213696) (+.f64 y x) (if (<=.f64 z 480000000) (+.f64 (*.f64 z x) x) (*.f64 (+.f64 y x) z))))
(if (<=.f64 z -1) (*.f64 (+.f64 y x) z) (if (<=.f64 z 8028023020878397/9444732965739290427392) (+.f64 y x) (if (<=.f64 z 950000000) (*.f64 (+.f64 1 z) x) (*.f64 (+.f64 y x) z))))
(if (<=.f64 x -3172221350668787/77371252455336267181195264) (*.f64 (+.f64 1 z) x) (if (<=.f64 x -4583190933415609/53919893334301279589334030174039261347274288845081144962207220498432) (*.f64 y (-.f64 z -1)) (if (<=.f64 x -3419095469964197/253266331108459042877954581524118722595974501479640924072000569439126758509088631982403994686712878069348015540240526683495797795130113239006767262824338603946605334680267915264) (*.f64 (+.f64 1 z) x) (*.f64 y (-.f64 z -1)))))
(if (<=.f64 z -7378697629483821/18446744073709551616) (*.f64 y (-.f64 z -1)) (if (<=.f64 z 4796153459164483/36893488147419103232) (+.f64 y x) (*.f64 y (-.f64 z -1))))
(if (<=.f64 z -1) (*.f64 z y) (if (<=.f64 z 480000000) (+.f64 y x) (*.f64 z y)))
(if (<=.f64 y 7814079413531079/1627933211152308172382776316094057079381044512284157265721742629825204403764070329961287158415906809263410622703474912218234570716337735615323084973713581554222450580936038710562274972146438970881094974642550439936936217782587026682413056) x (if (<=.f64 y 7446302632199161/78382132970517478991165606422426233672355708521949855379734648809861125861064803929830588940942115354940041435601982738271645192059633193360683542052684438972998018132574030730004068581526319939960438784) (*.f64 z y) (if (<=.f64 y 8884592220540941/10576895500643977583230644928524336637254474927428499508554380724390492659780981533203027367035444557561459392400373732868096) x (if (<=.f64 y 520000000000000037326774291942766390696796011938365619920116846077051658043392) (*.f64 z y) y))))
(if (<=.f64 z -8800000000000000) (*.f64 z x) (if (<=.f64 z -5342325525010067/41094811730846668025320233460001005199612029709556045777330319555224469955445943922763019814668659775210804444188892325882964314454560967680686052895717819140275184930690973423372373108471271228681978529185792) x (if (<=.f64 z -1860949183597249/4327788799063369698118367518036104040602397294887907509272254128346512609744690048814426160231687683233172643784762398137404191207445999921156415311568401014033503715319849649510248592805285405106374515984066055406780647774220793764564147394699562815402300054714269682368512) y (if (<=.f64 z -6546356215273881/319334449525555169865019634085894170570792201669673206640407558789953902699034250525593274478821712174294791495070799239035590078142974985718267487725573027251200907672173708242806035431098077949224537079127027838932929672819339262222216842951687065201139345100120966662777359236855041588461568) x (if (<=.f64 z 4182107294586631/123003155723136208567847447683223664415731869180715065944930703618254955521953492303010368693540149343822709050322214299552689203876695953600699775494388206142090885899729347827083318884583758435450548517566916626912548274908112766882031433928533568160966639616) y (if (<=.f64 z 755361009974671/26046931378436930758124421057504913270096712196546516251547882077203270460225125279380594534654508948214569963255598595491753131461403769845169359579417304867559209294976619368996399554343023534097519594280807038990979484521392426918608896) x (if (<=.f64 z 1874170850202597/1013065324433836171511818326096474890383898005918563696288002277756507034036354527929615978746851512277392062160962106733983191180520452956027069051297354415786421338721071661056) y (if (<=.f64 z 5582121402590261/744282853678701455922507579277316643178128753343813693728245963960974631028119473486019635930893891134220822124816566203939432067701407744) x (if (<=.f64 z 2597301565578305/590295810358705651712) y (*.f64 z x))))))))))
(if (<=.f64 y 6972074670834653/1291124939043454294827959586001505937164852896414611756415329678270323811008420597314822676640068915717951585986373746688) x y)
x
Outputs
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(*.f64 (+.f64 x y) (+.f64 z 1))
(if (<=.f64 z -1) (*.f64 (+.f64 y x) z) (if (<=.f64 z 4533471823554859/4722366482869645213696) (+.f64 y x) (if (<=.f64 z 480000000) (+.f64 (*.f64 z x) x) (*.f64 (+.f64 y x) z))))
(if (<=.f64 z -1) (*.f64 (+.f64 y x) z) (if (<=.f64 z 8028023020878397/9444732965739290427392) (+.f64 y x) (if (<=.f64 z 950000000) (*.f64 (+.f64 1 z) x) (*.f64 (+.f64 y x) z))))
(if (<=.f64 x -3172221350668787/77371252455336267181195264) (*.f64 (+.f64 1 z) x) (if (<=.f64 x -4583190933415609/53919893334301279589334030174039261347274288845081144962207220498432) (*.f64 y (-.f64 z -1)) (if (<=.f64 x -3419095469964197/253266331108459042877954581524118722595974501479640924072000569439126758509088631982403994686712878069348015540240526683495797795130113239006767262824338603946605334680267915264) (*.f64 (+.f64 1 z) x) (*.f64 y (-.f64 z -1)))))
(if (<=.f64 z -7378697629483821/18446744073709551616) (*.f64 y (-.f64 z -1)) (if (<=.f64 z 4796153459164483/36893488147419103232) (+.f64 y x) (*.f64 y (-.f64 z -1))))
(if (<=.f64 z -1) (*.f64 z y) (if (<=.f64 z 480000000) (+.f64 y x) (*.f64 z y)))
(if (<=.f64 y 7814079413531079/1627933211152308172382776316094057079381044512284157265721742629825204403764070329961287158415906809263410622703474912218234570716337735615323084973713581554222450580936038710562274972146438970881094974642550439936936217782587026682413056) x (if (<=.f64 y 7446302632199161/78382132970517478991165606422426233672355708521949855379734648809861125861064803929830588940942115354940041435601982738271645192059633193360683542052684438972998018132574030730004068581526319939960438784) (*.f64 z y) (if (<=.f64 y 8884592220540941/10576895500643977583230644928524336637254474927428499508554380724390492659780981533203027367035444557561459392400373732868096) x (if (<=.f64 y 520000000000000037326774291942766390696796011938365619920116846077051658043392) (*.f64 z y) y))))
(if (<=.f64 z -8800000000000000) (*.f64 z x) (if (<=.f64 z -5342325525010067/41094811730846668025320233460001005199612029709556045777330319555224469955445943922763019814668659775210804444188892325882964314454560967680686052895717819140275184930690973423372373108471271228681978529185792) x (if (<=.f64 z -1860949183597249/4327788799063369698118367518036104040602397294887907509272254128346512609744690048814426160231687683233172643784762398137404191207445999921156415311568401014033503715319849649510248592805285405106374515984066055406780647774220793764564147394699562815402300054714269682368512) y (if (<=.f64 z -6546356215273881/319334449525555169865019634085894170570792201669673206640407558789953902699034250525593274478821712174294791495070799239035590078142974985718267487725573027251200907672173708242806035431098077949224537079127027838932929672819339262222216842951687065201139345100120966662777359236855041588461568) x (if (<=.f64 z 4182107294586631/123003155723136208567847447683223664415731869180715065944930703618254955521953492303010368693540149343822709050322214299552689203876695953600699775494388206142090885899729347827083318884583758435450548517566916626912548274908112766882031433928533568160966639616) y (if (<=.f64 z 755361009974671/26046931378436930758124421057504913270096712196546516251547882077203270460225125279380594534654508948214569963255598595491753131461403769845169359579417304867559209294976619368996399554343023534097519594280807038990979484521392426918608896) x (if (<=.f64 z 1874170850202597/1013065324433836171511818326096474890383898005918563696288002277756507034036354527929615978746851512277392062160962106733983191180520452956027069051297354415786421338721071661056) y (if (<=.f64 z 5582121402590261/744282853678701455922507579277316643178128753343813693728245963960974631028119473486019635930893891134220822124816566203939432067701407744) x (if (<=.f64 z 2597301565578305/590295810358705651712) y (*.f64 z x))))))))))
(if (<=.f64 y 6972074670834653/1291124939043454294827959586001505937164852896414611756415329678270323811008420597314822676640068915717951585986373746688) x y)
x
Compiler

Compiled 261 to 153 computations (41.4% saved)

soundness248.0ms (1.6%)

Algorithm
egg-herbie
Rules
2370×rational.json-simplify-41
2356×rational.json-simplify-2
1746×rational.json-simplify-35
1496×rational.json-simplify-53
860×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
058963
1150963
2285963
3596963
42053963
53623963
64412963
74630963
84784963
94932963
106815963
117681963
Stop Event
node limit
Compiler

Compiled 57 to 16 computations (71.9% saved)

end92.0ms (0.6%)

Remove

(sort x y)

Compiler

Compiled 255 to 128 computations (49.8% saved)

Profiling

Loading profile data...