Details

Time bar (total: 13.7s)

analyze376.0ms (2.7%)

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)

sample4.2s (31%)

Results
3.9s8253×body256valid
366.0ms1095×body256infinite
1.0msbody1024valid
Bogosity

preprocess11.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)

simplify211.0ms (1.5%)

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)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite216.0ms (1.6%)

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)))))

simplify428.0ms (3.1%)

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)

prune57.0ms (0.4%)

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))
21.0b
(+.f64 y x)
43.4b
(*.f64 (+.f64 y x) z)
0.0b
(*.f64 (+.f64 x y) (+.f64 z 1))
31.7b
(*.f64 (+.f64 1 z) x)
32.2b
(*.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 z (+.f64 y x))
0.0b
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
Compiler

Compiled 23 to 6 computations (73.9% saved)

series4.0ms (0%)

Counts
2 → 72
Calls

18 calls:

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

rewrite159.0ms (1.2%)

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 (*.f64 z (+.f64 y x)) (+.f64 y x))
(*.f64 z (+.f64 y x))
Outputs
((#(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)))))
((#(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)))))

simplify276.0ms (2%)

Algorithm
egg-herbie
Rules
2192×rational.json-simplify-2
2132×rational.json-simplify-35
1160×rational.json-simplify-51
1046×rational.json-simplify-1
838×rational.json-simplify-43
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01552638
13632638
27372638
321222320
448872320
556072320
659802320
762102320
865322320
970122320
Stop Event
node limit
Counts
130 → 89
Calls
Call 1
Inputs
(+.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 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 (*.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)
(+.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)
Outputs
(+.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 x (+.f64 z 1)) (*.f64 y z)))
(+.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 x (+.f64 z 1)) (*.f64 y z)))
(+.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 x (+.f64 z 1)) (*.f64 y z)))
(+.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 x (+.f64 z 1)) (*.f64 y z)))
(+.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 x (+.f64 z 1)) (*.f64 y z)))
(+.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 x (+.f64 z 1)) (*.f64 y z)))
(+.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 x (+.f64 z 1)) (*.f64 y z)))
(+.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 x (+.f64 z 1)) (*.f64 y z)))
(+.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 x (+.f64 z 1)) (*.f64 y z)))
(+.f64 y (+.f64 (*.f64 y z) (*.f64 x (+.f64 z 1))))
(*.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 (*.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 y (+.f64 y (*.f64 2 (+.f64 x (*.f64 (+.f64 y x) z))))))
(*.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))
(+.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)

localize3.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize167.0ms (1.2%)

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))

rewrite757.0ms (5.5%)

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)))))

simplify485.0ms (3.5%)

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)

rewrite182.0ms (1.3%)

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)))))

simplify576.0ms (4.2%)

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))

localize375.0ms (2.7%)

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
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)
0.0ms
x
@inf
(*.f64 (+.f64 y x) z)

rewrite168.0ms (1.2%)

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)))))

simplify676.0ms (4.9%)

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))

eval27.0ms (0.2%)

Compiler

Compiled 1515 to 857 computations (43.4% saved)

prune318.0ms (2.3%)

Pruning

12 alts after pruning (7 fresh and 5 done)

PrunedKeptTotal
New1417148
Fresh101
Picked011
Done145
Total14312155
Error
0.0b
Counts
155 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
43.3b
(+.f64 (*.f64 z x) (*.f64 z y))
31.7b
(+.f64 (*.f64 z x) x)
32.2b
(+.f64 (*.f64 y z) y)
21.0b
(+.f64 y x)
43.4b
(*.f64 (+.f64 y x) z)
0.0b
(*.f64 (+.f64 x y) (+.f64 z 1))
31.7b
(*.f64 (+.f64 1 z) x)
52.3b
(*.f64 z y)
54.1b
(*.f64 z x)
32.2b
(*.f64 y (-.f64 z -1))
43.3b
y
40.6b
x
Compiler

Compiled 124 to 82 computations (33.9% 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
@-inf
(+.f64 (*.f64 z x) x)
0.0ms
x
@0
(+.f64 (*.f64 z x) x)
0.0ms
z
@0
(+.f64 (*.f64 z x) x)
0.0ms
z
@-inf
(+.f64 (*.f64 z x) x)

rewrite326.0ms (2.4%)

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)))))

simplify223.0ms (1.6%)

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))

localize3.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 y z) y)
Compiler

Compiled 13 to 5 computations (61.5% saved)

series3.0ms (0%)

Counts
1 → 15
Calls

6 calls:

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

rewrite193.0ms (1.4%)

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)))))

simplify417.0ms (3%)

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))

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))

rewrite169.0ms (1.2%)

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)))))

simplify173.0ms (1.3%)

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))

eval27.0ms (0.2%)

Compiler

Compiled 1379 to 865 computations (37.3% saved)

prune120.0ms (0.9%)

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
43.3b
(+.f64 (*.f64 z x) (*.f64 z y))
31.7b
(+.f64 (*.f64 z x) x)
32.2b
(+.f64 (*.f64 y z) y)
21.0b
(+.f64 y x)
43.4b
(*.f64 (+.f64 y x) z)
0.0b
(*.f64 (+.f64 x y) (+.f64 z 1))
31.7b
(*.f64 (+.f64 1 z) x)
52.3b
(*.f64 z y)
54.1b
(*.f64 z x)
32.2b
(*.f64 y (-.f64 z -1))
43.3b
y
40.6b
x
Compiler

Compiled 86 to 58 computations (32.6% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune5.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
43.3b
(+.f64 (*.f64 z x) (*.f64 z y))
31.7b
(+.f64 (*.f64 z x) x)
32.2b
(+.f64 (*.f64 y z) y)
21.0b
(+.f64 y x)
43.4b
(*.f64 (+.f64 y x) z)
0.0b
(*.f64 (+.f64 x y) (+.f64 z 1))
31.7b
(*.f64 (+.f64 1 z) x)
52.3b
(*.f64 z y)
54.1b
(*.f64 z x)
32.2b
(*.f64 y (-.f64 z -1))
43.3b
y
40.6b
x
Compiler

Compiled 86 to 58 computations (32.6% saved)

regimes148.0ms (1.1%)

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:

110.0ms
(*.f64 (+.f64 x y) (+.f64 z 1))
8.0ms
x
8.0ms
(+.f64 x y)
8.0ms
y
7.0ms
z
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)

regimes42.0ms (0.3%)

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:

7.0ms
(+.f64 x y)
7.0ms
(*.f64 (+.f64 x y) (+.f64 z 1))
7.0ms
y
7.0ms
x
7.0ms
z
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)

regimes126.0ms (0.9%)

Counts
10 → 3
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 y x) z)
Calls

3 calls:

97.0ms
x
16.0ms
z
11.0ms
y
Results
ErrorSegmentsBranch
11.3b3x
8.7b2y
2.8b3z
Compiler

Compiled 51 to 25 computations (51% saved)

bsearch138.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
125.0ms
0.10416220376281853
3.3909476150799054
13.0ms
-29.210694115848895
-0.06554520646485185
Results
135.0ms240×body256valid
Compiler

Compiled 256 to 177 computations (30.9% saved)

regimes170.0ms (1.2%)

Counts
7 → 2
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))
Calls

3 calls:

133.0ms
y
22.0ms
z
13.0ms
x
Results
ErrorSegmentsBranch
11.3b3x
8.7b2y
9.1b5z
Compiler

Compiled 36 to 21 computations (41.7% saved)

bsearch11.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
11.0ms
3.8795883991240715e-115
5.854925360248778e-114
Results
9.0ms96×body256valid
Compiler

Compiled 124 to 96 computations (22.6% saved)

regimes45.0ms (0.3%)

Counts
6 → 5
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))
(*.f64 z x)
(*.f64 z y)
Calls

3 calls:

22.0ms
z
13.0ms
y
8.0ms
x
Results
ErrorSegmentsBranch
14.7b2x
15.0b2y
9.1b5z
Compiler

Compiled 31 to 18 computations (41.9% saved)

bsearch304.0ms (2.2%)

Algorithm
binary-search
Steps
TimeLeftRight
192.0ms
1.4834374421955185e+280
6.193837866839313e+297
83.0ms
8.057906179909887e+136
1.1883374896278803e+139
13.0ms
1.1671558353098941e-7
0.0004185553938990931
12.0ms
-1.4531823484742569e-12
-1.8960333001925944e-15
Results
249.0ms278×body256infinite
46.0ms528×body256valid
Compiler

Compiled 524 to 388 computations (26% saved)

regimes31.0ms (0.2%)

Counts
5 → 5
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)
(*.f64 z x)
(*.f64 z y)
Calls

3 calls:

21.0ms
z
5.0ms
x
4.0ms
y
Results
ErrorSegmentsBranch
21.0b1x
21.0b1y
10.6b5z
Compiler

Compiled 26 to 15 computations (42.3% saved)

bsearch351.0ms (2.6%)

Algorithm
binary-search
Steps
TimeLeftRight
225.0ms
1.4834374421955185e+280
6.193837866839313e+297
17.0ms
8.057906179909887e+136
1.1883374896278803e+139
97.0ms
4938.945058355583
6131218.551842888
12.0ms
-29.210694115848895
-0.06554520646485185
Results
215.0ms299×body256infinite
129.0ms528×body256valid
Compiler

Compiled 478 to 342 computations (28.5% saved)

regimes383.0ms (2.8%)

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

3 calls:

256.0ms
x
116.0ms
z
10.0ms
y
Results
ErrorSegmentsBranch
27.5b4x
26.5b2y
23.8b10z
Compiler

Compiled 23 to 14 computations (39.1% saved)

bsearch140.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
39.0ms
1.4834374421955185e+280
6.193837866839313e+297
19.0ms
8.057906179909887e+136
1.1883374896278803e+139
12.0ms
0.10416220376281853
3.3909476150799054
15.0ms
1.7333320714049719e-124
2.3198928063833192e-116
9.0ms
1.9537031686402953e-253
1.9849966272418505e-252
15.0ms
-5.986968020482493e-265
-6.431436341587119e-268
11.0ms
-5.900522900235361e-180
-1.8484975130868807e-181
7.0ms
-2.1534412057770637e-80
-1.4917887204205615e-80
13.0ms
-29.210694115848895
-0.06554520646485185
Results
101.0ms1056×body256valid
26.0ms297×body256infinite
Compiler

Compiled 774 to 589 computations (23.9% saved)

regimes53.0ms (0.4%)

Accuracy

Total -36.1b remaining (-136%)

Threshold costs -36.1b (-136%)

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

3 calls:

26.0ms
z
19.0ms
x
7.0ms
y
Results
ErrorSegmentsBranch
27.5b4x
26.5b2y
26.5b8z
Compiler

Compiled 20 to 13 computations (35% saved)

bsearch11.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
11.0ms
3.8795883991240715e-115
5.854925360248778e-114
Results
10.0ms96×body256valid
Compiler

Compiled 76 to 60 computations (21.1% saved)

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
078411
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 1) (+.f64 y x) (*.f64 (+.f64 y x) z)))
(if (<=.f64 y 8040742112950363/1386334847060407429789207092071541851718218537687908287585239790307310653902812811519987203052069789048695605480701785914487078912) (*.f64 (+.f64 1 z) x) (*.f64 y (-.f64 z -1)))
(if (<=.f64 z -3590026113927603/2475880078570760549798248448) (*.f64 y (-.f64 z -1)) (if (<=.f64 z 2095550126773405/295147905179352825856) (+.f64 y x) (if (<=.f64 z 2600000000000000085388062471932807805366232672534990408332014908272742217936848788414403420632091272978268712439238332504486075648949878784) (*.f64 y (-.f64 z -1)) (if (<=.f64 z 214999999999999999696427936429384560434066933642236699428360473041666243355951006023233321655457942234650941277831521040171116441947827236676351912058014976201807478951002678462285465484264927498912701601075666778228230645069551033265377406564783592919638327320711005952407869732159488) (*.f64 z x) (*.f64 z y)))))
(if (<=.f64 z -1) (*.f64 z y) (if (<=.f64 z 180000) (+.f64 y x) (if (<=.f64 z 2900000000000000095240531218694285629062336442442873916985708936150366320006485187077603815320409496783453563874535063178080622839213326336) (*.f64 z y) (if (<=.f64 z 9199999999999999745616196634337600717858396833999935861997000196254656302436693956433964521197966854846685773733059789752380033155068321693119131839022840007272928196046700494758690448339431926761918875338430536328367818753361491546693826327825971308728191983613385136883173089032959688704) (*.f64 z x) (*.f64 z y)))))
(if (<=.f64 z -1) (*.f64 z y) (if (<=.f64 z -5606965969292389/266998379490113760299377713271194014325338065294581596243380200977777465722580068752870260867072) x (if (<=.f64 z -6540714869423179/9343878384890255807777119448474196633381331982845050737826186276657715542443371287564109437577976626746659450006721346172290467269376897020421450382791094657540085093089822617769726345721044533248) y (if (<=.f64 z -4991817014543339/9076030935533343889148330677184451660957398691768765008885326289770145612551296225251271450782204288267814476258502032778653474399077793626653018683486295323382390383590453332169716856898789897889643528945016096228440849041002686084943230837088977557446564364344140092918489677824) x (if (<=.f64 z 593299522271499/515912628062173092140956821207535748553561841832149923953086629908861232965551620580485601452790222553392963860602664725471042538576841344971229471155214430574596371092778402508526872730885196340843977449424988675925808879640197010584371971452184059071815020407947264) y (if (<=.f64 z 6847402253844053/2977131414714805823690030317109266572712515013375254774912983855843898524112477893944078543723575564536883288499266264815757728270805630976) x (if (<=.f64 z 1) y (if (<=.f64 z 800000000000000026273249991363940863189610053087689356409850741006997605519030396435201052502181930147159603827457948462918792507369193472) (*.f64 z y) (if (<=.f64 z 62000000000000003480902574802694151144181681836818374767031493142373828603679306386716419818981613489893155605457443542587634784188060975485355855331852088011127418382208285832723243455376555288089611870929859483386843401166731346563096875089093104020390405439782783890191145193960638345379840) (*.f64 z x) (*.f64 z y))))))))))
(if (<=.f64 y 8318009082362445/5545339388241629719156828368286167406872874150751633150340959161229242615611251246079948812208279156194782421922807143657948315648) 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 1) (+.f64 y x) (*.f64 (+.f64 y x) z)))
(if (<=.f64 y 8040742112950363/1386334847060407429789207092071541851718218537687908287585239790307310653902812811519987203052069789048695605480701785914487078912) (*.f64 (+.f64 1 z) x) (*.f64 y (-.f64 z -1)))
(if (<=.f64 z -3590026113927603/2475880078570760549798248448) (*.f64 y (-.f64 z -1)) (if (<=.f64 z 2095550126773405/295147905179352825856) (+.f64 y x) (if (<=.f64 z 2600000000000000085388062471932807805366232672534990408332014908272742217936848788414403420632091272978268712439238332504486075648949878784) (*.f64 y (-.f64 z -1)) (if (<=.f64 z 214999999999999999696427936429384560434066933642236699428360473041666243355951006023233321655457942234650941277831521040171116441947827236676351912058014976201807478951002678462285465484264927498912701601075666778228230645069551033265377406564783592919638327320711005952407869732159488) (*.f64 z x) (*.f64 z y)))))
(if (<=.f64 z -1) (*.f64 z y) (if (<=.f64 z 180000) (+.f64 y x) (if (<=.f64 z 2900000000000000095240531218694285629062336442442873916985708936150366320006485187077603815320409496783453563874535063178080622839213326336) (*.f64 z y) (if (<=.f64 z 9199999999999999745616196634337600717858396833999935861997000196254656302436693956433964521197966854846685773733059789752380033155068321693119131839022840007272928196046700494758690448339431926761918875338430536328367818753361491546693826327825971308728191983613385136883173089032959688704) (*.f64 z x) (*.f64 z y)))))
(if (<=.f64 z -1) (*.f64 z y) (if (<=.f64 z -5606965969292389/266998379490113760299377713271194014325338065294581596243380200977777465722580068752870260867072) x (if (<=.f64 z -6540714869423179/9343878384890255807777119448474196633381331982845050737826186276657715542443371287564109437577976626746659450006721346172290467269376897020421450382791094657540085093089822617769726345721044533248) y (if (<=.f64 z -4991817014543339/9076030935533343889148330677184451660957398691768765008885326289770145612551296225251271450782204288267814476258502032778653474399077793626653018683486295323382390383590453332169716856898789897889643528945016096228440849041002686084943230837088977557446564364344140092918489677824) x (if (<=.f64 z 593299522271499/515912628062173092140956821207535748553561841832149923953086629908861232965551620580485601452790222553392963860602664725471042538576841344971229471155214430574596371092778402508526872730885196340843977449424988675925808879640197010584371971452184059071815020407947264) y (if (<=.f64 z 6847402253844053/2977131414714805823690030317109266572712515013375254774912983855843898524112477893944078543723575564536883288499266264815757728270805630976) x (if (<=.f64 z 1) y (if (<=.f64 z 800000000000000026273249991363940863189610053087689356409850741006997605519030396435201052502181930147159603827457948462918792507369193472) (*.f64 z y) (if (<=.f64 z 62000000000000003480902574802694151144181681836818374767031493142373828603679306386716419818981613489893155605457443542587634784188060975485355855331852088011127418382208285832723243455376555288089611870929859483386843401166731346563096875089093104020390405439782783890191145193960638345379840) (*.f64 z x) (*.f64 z y))))))))))
(if (<=.f64 y 8318009082362445/5545339388241629719156828368286167406872874150751633150340959161229242615611251246079948812208279156194782421922807143657948315648) x y)
x
Compiler

Compiled 205 to 119 computations (42% saved)

soundness248.0ms (1.8%)

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)

end73.0ms (0.5%)

Remove

(sort x y)

Compiler

Compiled 205 to 100 computations (51.2% saved)

Profiling

Loading profile data...