Details

Time bar (total: 15.4s)

analyze180.0ms (1.2%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
0%0%99.9%0.1%0%0%0%5
0%0%99.9%0.1%0%0%0%6
12.5%12.5%87.4%0.1%0%0%0%7
18.8%18.7%81.1%0.1%0%0%0%8
25.8%25%71.8%0.1%3.1%0%0%9
37.3%34.3%57.7%0.1%7.8%0%0%10
45.1%41.3%50.3%0.1%8.2%0%0%11
52.5%46.8%42.3%0.1%10.7%0%0%12
Compiler

Compiled 13 to 10 computations (23.1% saved)

sample2.6s (17.1%)

Results
2.4s8256×body256valid
227.0ms1079×body256infinite
Bogosity

preprocess4.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
021100
129100
033
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
(*.f64 y (-.f64 1 (*.f64 (-.f64 1 x) z)))
(*.f64 z (-.f64 1 (*.f64 (-.f64 1 y) x)))
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 z) y)))
Outputs
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
(*.f64 y (-.f64 1 (*.f64 (-.f64 1 x) z)))
(*.f64 y (-.f64 1 (*.f64 z (-.f64 1 x))))
(*.f64 z (-.f64 1 (*.f64 (-.f64 1 y) x)))
(*.f64 z (-.f64 1 (*.f64 x (-.f64 1 y))))
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 z) y)))
(*.f64 x (-.f64 1 (*.f64 y (-.f64 1 z))))
Compiler

Compiled 15 to 12 computations (20% saved)

simplify8.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
11225
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
Outputs
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))

eval0.0ms (0%)

Compiler

Compiled 12 to 9 computations (25% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 12 to 9 computations (25% saved)

localize47.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 31 to 20 computations (35.5% saved)

series5.0ms (0%)

Counts
2 → 60
Calls

15 calls:

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

rewrite233.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
1880×rational.json-simplify-1
1380×exponential.json-3
1380×rational.json-1
1380×rational.json-2
1380×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01038
17438
216138
331138
456438
5125538
6274038
7469138
8600938
9711938
10727938
11746338
12764138
Stop Event
node limit
Counts
2 → 26
Calls
Call 1
Inputs
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
(*.f64 (-.f64 1 y) z)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 1/2)) (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 1 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 y) (*.f64 z 1/2)) (*.f64 (-.f64 1 y) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 1 y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 y) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 y) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (-.f64 1 y) z) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1 y) z) 1)))))

simplify544.0ms (3.5%)

Algorithm
egg-herbie
Rules
2880×rational.json-simplify-35
2390×rational.json-simplify-2
1316×rational.json-simplify-1
1264×rational.json-simplify-49
1012×exponential.json-simplify-26
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0881730
12281708
24681654
310731654
429911654
550301654
658351654
760901654
862801654
964601654
1072551654
1174961654
1275051654
1375071654
1475071654
1576781654
1678491654
Stop Event
node limit
Counts
86 → 54
Calls
Call 1
Inputs
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
x
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 z (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x)))
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x)
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x)
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x)
z
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(+.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 0)
(+.f64 0 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))
(+.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 1/2)) (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 1/2)))
(-.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 0)
(/.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1)
(/.f64 (*.f64 x (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 2)) 2)
(/.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 4)) 4)
(/.f64 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x))))) 128)
(pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1)
(+.f64 (*.f64 (-.f64 1 y) z) 0)
(+.f64 0 (*.f64 (-.f64 1 y) z))
(+.f64 (*.f64 (-.f64 1 y) (*.f64 z 1/2)) (*.f64 (-.f64 1 y) (*.f64 z 1/2)))
(-.f64 (*.f64 (-.f64 1 y) z) 0)
(/.f64 (*.f64 (-.f64 1 y) z) 1)
(/.f64 (*.f64 (-.f64 1 y) (+.f64 z z)) 2)
(/.f64 (*.f64 (-.f64 1 y) (*.f64 z 4)) 4)
(/.f64 (*.f64 (*.f64 (-.f64 1 y) z) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8))))) 128)
(pow.f64 (*.f64 (-.f64 1 y) z) 1)
Outputs
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (-.f64 1 (*.f64 z (-.f64 1 y))) x)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (-.f64 1 z) x)
(*.f64 x (-.f64 1 z))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y)))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x)))
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y)))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x)))
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y)))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x)))
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y)))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x)))
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y)))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x)))
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y)))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x)))
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y)))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x)))
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y)))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x)))
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 x y)))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 z (*.f64 y x)))
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 z y)))
x
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x)
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x)
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x)
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
z
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 z (*.f64 y (*.f64 z -1)))
(+.f64 z (*.f64 y (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 z (*.f64 y (*.f64 z -1)))
(+.f64 z (*.f64 y (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 z (*.f64 y (*.f64 z -1)))
(+.f64 z (*.f64 y (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y z))
(*.f64 y (*.f64 z -1))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 z (*.f64 y (*.f64 z -1)))
(+.f64 z (*.f64 y (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 z (*.f64 y (*.f64 z -1)))
(+.f64 z (*.f64 y (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 z (*.f64 y (*.f64 z -1)))
(+.f64 z (*.f64 y (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 y)))
(*.f64 -1 (*.f64 y z))
(*.f64 y (*.f64 z -1))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 z (*.f64 y (*.f64 z -1)))
(+.f64 z (*.f64 y (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 z (*.f64 y (*.f64 z -1)))
(+.f64 z (*.f64 y (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 y)))
(+.f64 (*.f64 -1 (*.f64 y z)) z)
(+.f64 z (*.f64 y (*.f64 z -1)))
(+.f64 z (*.f64 y (neg.f64 z)))
(+.f64 z (*.f64 z (neg.f64 y)))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(*.f64 z (-.f64 1 y))
(+.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 0)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(+.f64 0 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(+.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 1/2)) (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 1/2)))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(-.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 0)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(/.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(/.f64 (*.f64 x (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 2)) 2)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(/.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) (*.f64 x 4)) 4)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(/.f64 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x) 8)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x)) 16)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x))) 32)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x)))) 64)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 (*.f64 (-.f64 1 y) z)) 8) x))))) 128)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(pow.f64 (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) 1)
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(+.f64 (*.f64 (-.f64 1 y) z) 0)
(*.f64 z (-.f64 1 y))
(+.f64 0 (*.f64 (-.f64 1 y) z))
(*.f64 z (-.f64 1 y))
(+.f64 (*.f64 (-.f64 1 y) (*.f64 z 1/2)) (*.f64 (-.f64 1 y) (*.f64 z 1/2)))
(*.f64 z (-.f64 1 y))
(-.f64 (*.f64 (-.f64 1 y) z) 0)
(*.f64 z (-.f64 1 y))
(/.f64 (*.f64 (-.f64 1 y) z) 1)
(*.f64 z (-.f64 1 y))
(/.f64 (*.f64 (-.f64 1 y) (+.f64 z z)) 2)
(*.f64 z (-.f64 1 y))
(/.f64 (*.f64 (-.f64 1 y) (*.f64 z 4)) 4)
(*.f64 z (-.f64 1 y))
(/.f64 (*.f64 (*.f64 (-.f64 1 y) z) 8) 8)
(*.f64 z (-.f64 1 y))
(/.f64 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8)) 16)
(*.f64 z (-.f64 1 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8))) 32)
(*.f64 z (-.f64 1 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8)))) 64)
(*.f64 z (-.f64 1 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (-.f64 1 y) z) 8))))) 128)
(*.f64 z (-.f64 1 y))
(pow.f64 (*.f64 (-.f64 1 y) z) 1)
(*.f64 z (-.f64 1 y))

eval11.0ms (0.1%)

Compiler

Compiled 605 to 417 computations (31.1% saved)

prune25.0ms (0.2%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New46854
Fresh000
Picked101
Done000
Total47855
Error
0.0b
Counts
55 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
3.1b
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
2.1b
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
20.1b
(*.f64 (-.f64 1 z) x)
29.5b
(*.f64 z (*.f64 (-.f64 y 1) x))
44.3b
(*.f64 z (*.f64 y x))
45.0b
(*.f64 y (*.f64 z x))
18.4b
(*.f64 x (-.f64 1 (*.f64 z (neg.f64 y))))
34.5b
x
Compiler

Compiled 146 to 99 computations (32.2% saved)

localize12.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 34 to 15 computations (55.9% saved)

series8.0ms (0%)

Counts
3 → 39
Calls

24 calls:

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

rewrite198.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
2798×rational.json-simplify-2
1564×rational.json-simplify-35
1264×exponential.json-3
1264×rational.json-1
1264×rational.json-2
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01157
18457
218651
336951
470551
5167551
6347651
7485551
8590851
9683551
10688751
11693251
Stop Event
node limit
Counts
3 → 60
Calls
Call 1
Inputs
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(*.f64 (-.f64 1 z) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (*.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 x (*.f64 y 1/2))) (*.f64 z (*.f64 x (*.f64 y 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (*.f64 z x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y (+.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 z (*.f64 x 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (*.f64 z x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 z x)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (-.f64 1 z) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 1/2 (+.f64 (-.f64 1 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 (*.f64 (-.f64 1 z) 1/2) (*.f64 (*.f64 y z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) (*.f64 z (*.f64 y (+.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z))) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 (*.f64 (-.f64 1 z) 2) (*.f64 2 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 (-.f64 1 z) (*.f64 y z))) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) 2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (-.f64 1 z) 1/2) (*.f64 (*.f64 y z) 1/2)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) (*.f64 z (*.f64 y (+.f64 x x)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (-.f64 1 z) 2) (*.f64 2 (*.f64 y z))) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (-.f64 1 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (-.f64 1 z) 1/2)) (*.f64 x (*.f64 (-.f64 1 z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (-.f64 1 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (-.f64 1 z) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (-.f64 1 z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 z)) 1)))))

simplify363.0ms (2.3%)

Algorithm
egg-herbie
Rules
2498×rational.json-simplify-2
1896×rational.json-simplify-35
1408×rational.json-simplify-51
924×rational.json-simplify-49
786×rational.json-simplify-48
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01472025
13631963
29441963
322541963
449771947
560891947
665601947
766811947
868151947
969781947
Stop Event
node limit
Counts
99 → 91
Calls
Call 1
Inputs
(*.f64 (-.f64 1 z) x)
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
x
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x)))
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x)
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x))
x
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) 0)
(+.f64 0 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 z (*.f64 x (*.f64 y 1/2))) (*.f64 z (*.f64 x (*.f64 y 1/2))))
(-.f64 (*.f64 y (*.f64 z x)) 0)
(/.f64 (*.f64 y (*.f64 z x)) 1)
(/.f64 (*.f64 z (*.f64 y (+.f64 x x))) 2)
(/.f64 (*.f64 y (*.f64 z (*.f64 x 4))) 4)
(/.f64 (*.f64 (*.f64 y (*.f64 z x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))))) 128)
(pow.f64 (*.f64 y (*.f64 z x)) 1)
(-.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 0)
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z)))
(*.f64 1 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))))
(*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1)
(*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1/2))
(*.f64 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))) 1/2)
(*.f64 (+.f64 x x) (*.f64 1/2 (+.f64 (-.f64 1 z) (*.f64 y z))))
(*.f64 (+.f64 x x) (/.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) 2))
(*.f64 (+.f64 x x) (+.f64 (*.f64 (-.f64 1 z) 1/2) (*.f64 (*.f64 y z) 1/2)))
(*.f64 4 (/.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4))
(*.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 1/4)
(*.f64 1/2 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))))
(*.f64 1/2 (+.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) (*.f64 z (*.f64 y (+.f64 x x)))))
(*.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) x)
(*.f64 (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z))) (*.f64 x 1/2))
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z))))
(*.f64 (*.f64 x 1/2) (+.f64 (*.f64 (-.f64 1 z) 2) (*.f64 2 (*.f64 y z))))
(*.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1/2) 2)
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4))
(*.f64 (*.f64 1/2 (+.f64 (-.f64 1 z) (*.f64 y z))) (+.f64 x x))
(*.f64 (/.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 4)
(*.f64 (/.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) 2) (+.f64 x x))
(*.f64 (+.f64 (*.f64 (-.f64 1 z) 1/2) (*.f64 (*.f64 y z) 1/2)) (+.f64 x x))
(*.f64 (+.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) (*.f64 z (*.f64 y (+.f64 x x)))) 1/2)
(*.f64 (+.f64 (*.f64 (-.f64 1 z) 2) (*.f64 2 (*.f64 y z))) (*.f64 x 1/2))
(/.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1)
(/.f64 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))) 2)
(/.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 4)
(/.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8))))) 128)
(pow.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1)
(+.f64 (*.f64 x (-.f64 1 z)) 0)
(+.f64 0 (*.f64 x (-.f64 1 z)))
(+.f64 (*.f64 x (*.f64 (-.f64 1 z) 1/2)) (*.f64 x (*.f64 (-.f64 1 z) 1/2)))
(-.f64 (*.f64 x (-.f64 1 z)) 0)
(/.f64 (*.f64 x (-.f64 1 z)) 1)
(/.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) 2)
(/.f64 (*.f64 x (*.f64 (-.f64 1 z) 4)) 4)
(/.f64 (*.f64 (*.f64 x (-.f64 1 z)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))))) 128)
(pow.f64 (*.f64 x (-.f64 1 z)) 1)
Outputs
(*.f64 (-.f64 1 z) x)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
x
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(+.f64 x (*.f64 z (+.f64 (*.f64 x y) (*.f64 x -1))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(+.f64 x (*.f64 z (+.f64 (*.f64 x y) (*.f64 x -1))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(+.f64 x (*.f64 z (+.f64 (*.f64 x y) (*.f64 x -1))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x)))
(*.f64 z (+.f64 (*.f64 x y) (*.f64 x -1)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(+.f64 x (*.f64 z (+.f64 (*.f64 x y) (*.f64 x -1))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(+.f64 x (*.f64 z (+.f64 (*.f64 x y) (*.f64 x -1))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 (*.f64 z (+.f64 (*.f64 y x) (*.f64 -1 x))) x)
(+.f64 x (*.f64 z (+.f64 (*.f64 x y) (*.f64 x -1))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z))
(*.f64 (+.f64 x (*.f64 y (*.f64 x -1))) (*.f64 z -1))
(*.f64 (+.f64 x (*.f64 y (neg.f64 x))) (neg.f64 z))
(*.f64 (+.f64 x (*.f64 x (neg.f64 y))) (neg.f64 z))
(*.f64 (*.f64 x (-.f64 1 y)) (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x)
(+.f64 x (*.f64 (+.f64 x (*.f64 y (*.f64 x -1))) (*.f64 z -1)))
(+.f64 x (*.f64 (+.f64 x (*.f64 y (neg.f64 x))) (neg.f64 z)))
(+.f64 x (*.f64 (+.f64 x (*.f64 x (neg.f64 y))) (neg.f64 z)))
(+.f64 x (*.f64 (*.f64 x (-.f64 1 y)) (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x)
(+.f64 x (*.f64 (+.f64 x (*.f64 y (*.f64 x -1))) (*.f64 z -1)))
(+.f64 x (*.f64 (+.f64 x (*.f64 y (neg.f64 x))) (neg.f64 z)))
(+.f64 x (*.f64 (+.f64 x (*.f64 x (neg.f64 y))) (neg.f64 z)))
(+.f64 x (*.f64 (*.f64 x (-.f64 1 y)) (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y x)) x) z)) x)
(+.f64 x (*.f64 (+.f64 x (*.f64 y (*.f64 x -1))) (*.f64 z -1)))
(+.f64 x (*.f64 (+.f64 x (*.f64 y (neg.f64 x))) (neg.f64 z)))
(+.f64 x (*.f64 (+.f64 x (*.f64 x (neg.f64 y))) (neg.f64 z)))
(+.f64 x (*.f64 (*.f64 x (-.f64 1 y)) (neg.f64 z)))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (-.f64 (+.f64 (*.f64 y z) 1) z) x)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 -1 (-.f64 1 z))) x))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
x
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(*.f64 -1 (*.f64 z x))
(*.f64 z (*.f64 x -1))
(*.f64 z (neg.f64 x))
(neg.f64 (*.f64 z x))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(*.f64 -1 (*.f64 z x))
(*.f64 z (*.f64 x -1))
(*.f64 z (neg.f64 x))
(neg.f64 (*.f64 z x))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 y (*.f64 z x)) 0)
(*.f64 z (*.f64 x y))
(+.f64 0 (*.f64 y (*.f64 z x)))
(*.f64 z (*.f64 x y))
(+.f64 (*.f64 z (*.f64 x (*.f64 y 1/2))) (*.f64 z (*.f64 x (*.f64 y 1/2))))
(*.f64 z (*.f64 x y))
(-.f64 (*.f64 y (*.f64 z x)) 0)
(*.f64 z (*.f64 x y))
(/.f64 (*.f64 y (*.f64 z x)) 1)
(*.f64 z (*.f64 x y))
(/.f64 (*.f64 z (*.f64 y (+.f64 x x))) 2)
(*.f64 z (*.f64 x y))
(/.f64 (*.f64 y (*.f64 z (*.f64 x 4))) 4)
(*.f64 z (*.f64 x y))
(/.f64 (*.f64 (*.f64 y (*.f64 z x)) 8) 8)
(*.f64 z (*.f64 x y))
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)) 16)
(*.f64 z (*.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))) 32)
(*.f64 z (*.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8)))) 64)
(*.f64 z (*.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 z x)) 8))))) 128)
(*.f64 z (*.f64 x y))
(pow.f64 (*.f64 y (*.f64 z x)) 1)
(*.f64 z (*.f64 x y))
(-.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 0)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z)))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 1 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1/2))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))) 1/2)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (+.f64 x x) (*.f64 1/2 (+.f64 (-.f64 1 z) (*.f64 y z))))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (+.f64 x x) (/.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) 2))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (+.f64 x x) (+.f64 (*.f64 (-.f64 1 z) 1/2) (*.f64 (*.f64 y z) 1/2)))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 4 (/.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 1/4)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 1/2 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 1/2 (+.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) (*.f64 z (*.f64 y (+.f64 x x)))))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) x)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z))) (*.f64 x 1/2))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z))))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (*.f64 x 1/2) (+.f64 (*.f64 (-.f64 1 z) 2) (*.f64 2 (*.f64 y z))))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1/2) 2)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (*.f64 1/2 (+.f64 (-.f64 1 z) (*.f64 y z))) (+.f64 x x))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (/.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 4)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (/.f64 (+.f64 (-.f64 1 z) (*.f64 y z)) 2) (+.f64 x x))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (+.f64 (*.f64 (-.f64 1 z) 1/2) (*.f64 (*.f64 y z) 1/2)) (+.f64 x x))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (+.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) (*.f64 z (*.f64 y (+.f64 x x)))) 1/2)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(*.f64 (+.f64 (*.f64 (-.f64 1 z) 2) (*.f64 2 (*.f64 y z))) (*.f64 x 1/2))
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(/.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(/.f64 (*.f64 x (*.f64 2 (+.f64 (-.f64 1 z) (*.f64 y z)))) 2)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(/.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 4) 4)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(/.f64 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8) 8)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8)) 16)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8))) 32)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8)))) 64)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 8))))) 128)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(pow.f64 (*.f64 x (+.f64 (-.f64 1 z) (*.f64 y z))) 1)
(*.f64 x (+.f64 1 (-.f64 (*.f64 z y) z)))
(+.f64 (*.f64 x (-.f64 1 z)) 0)
(*.f64 (-.f64 1 z) x)
(+.f64 0 (*.f64 x (-.f64 1 z)))
(*.f64 (-.f64 1 z) x)
(+.f64 (*.f64 x (*.f64 (-.f64 1 z) 1/2)) (*.f64 x (*.f64 (-.f64 1 z) 1/2)))
(*.f64 (-.f64 1 z) x)
(-.f64 (*.f64 x (-.f64 1 z)) 0)
(*.f64 (-.f64 1 z) x)
(/.f64 (*.f64 x (-.f64 1 z)) 1)
(*.f64 (-.f64 1 z) x)
(/.f64 (*.f64 x (*.f64 (-.f64 1 z) 2)) 2)
(*.f64 (-.f64 1 z) x)
(/.f64 (*.f64 x (*.f64 (-.f64 1 z) 4)) 4)
(*.f64 (-.f64 1 z) x)
(/.f64 (*.f64 (*.f64 x (-.f64 1 z)) 8) 8)
(*.f64 (-.f64 1 z) x)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)) 16)
(*.f64 (-.f64 1 z) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))) 32)
(*.f64 (-.f64 1 z) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)))) 64)
(*.f64 (-.f64 1 z) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))))) 128)
(*.f64 (-.f64 1 z) x)
(pow.f64 (*.f64 x (-.f64 1 z)) 1)
(*.f64 (-.f64 1 z) x)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
2.9b
(*.f64 y (*.f64 z x))
Compiler

Compiled 14 to 5 computations (64.3% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.2b
(*.f64 z (*.f64 y x))
Compiler

Compiled 14 to 5 computations (64.3% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite352.0ms (2.3%)

Algorithm
batch-egg-rewrite
Rules
2168×rational.json-simplify-2
1512×rational.json-simplify-1
1370×exponential.json-3
1370×rational.json-1
1370×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14813
211713
325013
445213
5105813
6217013
7336113
8399313
9494913
10554213
11554213
12689613
13798613
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 z (*.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 (*.f64 y x) 1/2)) (*.f64 z (*.f64 (*.f64 y x) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y (+.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 z (*.f64 x 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y (*.f64 x 8))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (*.f64 y x)) 1)))))

simplify448.0ms (2.9%)

Algorithm
egg-herbie
Rules
4310×rational.json-simplify-53
3568×rational.json-simplify-35
2436×rational.json-simplify-2
1568×exponential.json-simplify-26
698×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
050650
1137650
2291650
3729650
41987650
53628650
64116650
74453650
84651650
94843650
105737650
116486650
126486650
136486650
146677650
156868650
167059650
177250650
187441650
Stop Event
node limit
Counts
50 → 16
Calls
Call 1
Inputs
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 z (*.f64 y x)) 0)
(+.f64 0 (*.f64 z (*.f64 y x)))
(+.f64 (*.f64 z (*.f64 (*.f64 y x) 1/2)) (*.f64 z (*.f64 (*.f64 y x) 1/2)))
(-.f64 (*.f64 z (*.f64 y x)) 0)
(/.f64 (*.f64 z (*.f64 y x)) 1)
(/.f64 (*.f64 z (*.f64 y (+.f64 x x))) 2)
(/.f64 (*.f64 y (*.f64 z (*.f64 x 4))) 4)
(/.f64 (*.f64 z (*.f64 y (*.f64 x 8))) 8)
(/.f64 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8))))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))))))) 256)
(pow.f64 (*.f64 z (*.f64 y x)) 1)
Outputs
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 z (*.f64 y x)) 0)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(+.f64 0 (*.f64 z (*.f64 y x)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 z (*.f64 (*.f64 y x) 1/2)) (*.f64 z (*.f64 (*.f64 y x) 1/2)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(-.f64 (*.f64 z (*.f64 y x)) 0)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 z (*.f64 y x)) 1)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 z (*.f64 y (+.f64 x x))) 2)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 y (*.f64 z (*.f64 x 4))) 4)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 z (*.f64 y (*.f64 x 8))) 8)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))) 16)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8))))) 32)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))))) 64)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8))))))) 128)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 y (*.f64 x 8)))))))) 256)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(pow.f64 (*.f64 z (*.f64 y x)) 1)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))

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)

localize73.0ms (0.5%)

Local error

Found 2 expressions with local error:

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

Compiled 22 to 13 computations (40.9% saved)

series4.0ms (0%)

Counts
2 → 24
Calls

15 calls:

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

rewrite197.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
1872×rational.json-simplify-35
1764×rational.json-simplify-1
1412×exponential.json-3
1412×rational.json-1
1412×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0932
17232
217132
332232
459632
5136132
6298232
7475632
8556532
9695932
10788232
11788232
Stop Event
node limit
Counts
2 → 28
Calls
Call 1
Inputs
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 (-.f64 y 1) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (*.f64 (+.f64 y -1) x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y -1) (*.f64 x (*.f64 z 1/2))) (*.f64 (+.f64 y -1) (*.f64 x (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 y -1) (+.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y -1) (*.f64 z (*.f64 x 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y -1) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 y -1) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 (+.f64 y -1) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 y -1) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y -1) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y -1) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y -1) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 y -1) x) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 y -1) x) 1)))))

simplify607.0ms (3.9%)

Algorithm
egg-herbie
Rules
3602×rational.json-simplify-35
1664×exponential.json-simplify-26
1622×rational.json-simplify-2
1462×rational.json-simplify-53
1052×exponential.json-simplify-11
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0791210
1217792
2482792
31178792
43046792
53993792
64276792
74479792
84659792
94832792
106221792
117006792
127008792
137011792
147014792
157182792
167349792
177513792
187677792
197841792
Stop Event
node limit
Counts
52 → 44
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 -1 x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 0)
(+.f64 0 (*.f64 z (*.f64 (+.f64 y -1) x)))
(+.f64 (*.f64 (+.f64 y -1) (*.f64 x (*.f64 z 1/2))) (*.f64 (+.f64 y -1) (*.f64 x (*.f64 z 1/2))))
(-.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 0)
(/.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 1)
(/.f64 (*.f64 z (*.f64 (+.f64 y -1) (+.f64 x x))) 2)
(/.f64 (*.f64 (+.f64 y -1) (*.f64 z (*.f64 x 4))) 4)
(/.f64 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)))))) 256)
(pow.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 1)
(+.f64 (*.f64 (+.f64 y -1) x) 0)
(+.f64 0 (*.f64 (+.f64 y -1) x))
(+.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 (+.f64 y -1) (*.f64 x 1/2)))
(-.f64 (*.f64 (+.f64 y -1) x) 0)
(/.f64 (*.f64 (+.f64 y -1) x) 1)
(/.f64 (*.f64 (+.f64 y -1) (+.f64 x x)) 2)
(/.f64 (*.f64 (+.f64 y -1) (*.f64 x 4)) 4)
(/.f64 (*.f64 (*.f64 (+.f64 y -1) x) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)))))) 256)
(pow.f64 (*.f64 (+.f64 y -1) x) 1)
Outputs
(*.f64 -1 (*.f64 z x))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 0)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(+.f64 0 (*.f64 z (*.f64 (+.f64 y -1) x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(+.f64 (*.f64 (+.f64 y -1) (*.f64 x (*.f64 z 1/2))) (*.f64 (+.f64 y -1) (*.f64 x (*.f64 z 1/2))))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(-.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 0)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(/.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 1)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(/.f64 (*.f64 z (*.f64 (+.f64 y -1) (+.f64 x x))) 2)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(/.f64 (*.f64 (+.f64 y -1) (*.f64 z (*.f64 x 4))) 4)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(/.f64 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8) 8)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(/.f64 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)) 16)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8))) 32)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)))) 64)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8))))) 128)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8)))))) 256)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(pow.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 1)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 (*.f64 z x) (+.f64 -1 y))
(+.f64 (*.f64 (+.f64 y -1) x) 0)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 0 (*.f64 (+.f64 y -1) x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(+.f64 (*.f64 (+.f64 y -1) (*.f64 x 1/2)) (*.f64 (+.f64 y -1) (*.f64 x 1/2)))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(-.f64 (*.f64 (+.f64 y -1) x) 0)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(/.f64 (*.f64 (+.f64 y -1) x) 1)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(/.f64 (*.f64 (+.f64 y -1) (+.f64 x x)) 2)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(/.f64 (*.f64 (+.f64 y -1) (*.f64 x 4)) 4)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(/.f64 (*.f64 (*.f64 (+.f64 y -1) x) 8) 8)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)) 16)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))) 32)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)))) 64)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8))))) 128)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)))))) 256)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(pow.f64 (*.f64 (+.f64 y -1) x) 1)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))

eval35.0ms (0.2%)

Compiler

Compiled 2102 to 1217 computations (42.1% saved)

prune115.0ms (0.7%)

Pruning

10 alts after pruning (6 fresh and 4 done)

PrunedKeptTotal
New1803183
Fresh033
Picked101
Done044
Total18110191
Error
0.0b
Counts
191 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
3.1b
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
2.1b
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
20.1b
(+.f64 (*.f64 -1 (*.f64 z x)) x)
20.1b
(*.f64 (-.f64 1 z) x)
44.3b
(*.f64 z (*.f64 y x))
47.7b
(*.f64 z (neg.f64 x))
45.0b
(*.f64 y (*.f64 z x))
18.4b
(*.f64 x (-.f64 1 (*.f64 z (neg.f64 y))))
31.6b
(*.f64 x (*.f64 (+.f64 -1 y) z))
34.5b
x
Compiler

Compiled 142 to 98 computations (31% saved)

localize13.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 31 to 18 computations (41.9% saved)

series1.0ms (0%)

Counts
1 → 27
Calls

9 calls:

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

rewrite191.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
2462×rational.json-simplify-2
1538×rational.json-1
1538×rational.json-2
1394×rational.json-simplify-35
1144×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
17925
218225
334925
467525
5158825
6326925
7455925
8548225
9626125
10626125
11777225
Stop Event
node limit
Counts
1 → 37
Calls
Call 1
Inputs
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (+.f64 y -1) (*.f64 x (+.f64 z z))) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (*.f64 z (+.f64 y -1))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 1 (*.f64 z (+.f64 y -1)))) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 1 (*.f64 z (+.f64 y -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 z (+.f64 y (+.f64 y -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (+.f64 y -1) (*.f64 x (+.f64 z z))) (+.f64 x x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (*.f64 z (+.f64 y (+.f64 y -2)))) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1)))))

simplify290.0ms (1.9%)

Algorithm
egg-herbie
Rules
2178×rational.json-simplify-2
1844×rational.json-simplify-1
1622×rational.json-simplify-35
1170×rational.json-simplify-41
976×rational.json-simplify-42
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01061942
12431884
25001604
312711604
422671604
535381604
637791604
740091604
842261604
945341604
1050481604
1160051604
1262361604
1365701604
1468361604
1571891604
Stop Event
node limit
Counts
64 → 64
Calls
Call 1
Inputs
x
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x))
(-.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 0)
(*.f64 1 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1)
(*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1/2))
(*.f64 2 (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))) x))
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) x))
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2)) x))
(*.f64 4 (/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 4))
(*.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2) 1/2)
(*.f64 (+.f64 x x) (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2)))
(*.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))) 1/4)
(*.f64 1/2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 y -1) (*.f64 x (+.f64 z z))) (+.f64 x x)))
(*.f64 (+.f64 1 (*.f64 z (+.f64 y -1))) x)
(*.f64 (*.f64 2 (+.f64 1 (*.f64 z (+.f64 y -1)))) (*.f64 x 1/2))
(*.f64 1/4 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))))
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 1 (*.f64 z (+.f64 y -1)))))
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 z (+.f64 y (+.f64 y -2)))))
(*.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1/2) 2)
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))) (+.f64 x x))
(*.f64 (/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 4) 4)
(*.f64 (+.f64 (*.f64 (+.f64 y -1) (*.f64 x (+.f64 z z))) (+.f64 x x)) 1/2)
(*.f64 (+.f64 2 (*.f64 z (+.f64 y (+.f64 y -2)))) (*.f64 x 1/2))
(*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) (+.f64 x x))
(*.f64 (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2)) (+.f64 x x))
(/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1)
(/.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2) 2)
(/.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))) 4)
(/.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8))))) 128)
(pow.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1)
Outputs
x
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 (+.f64 y -1) (*.f64 x z))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 x z) (+.f64 y -1))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 (+.f64 y -1) (*.f64 x z))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 x z) (+.f64 y -1))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x -1)))
(+.f64 x (*.f64 z (neg.f64 x)))
(+.f64 x (*.f64 x (neg.f64 z)))
(+.f64 x (neg.f64 (*.f64 x z)))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(*.f64 x (*.f64 y z))
(*.f64 x (*.f64 z y))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(*.f64 x (*.f64 y z))
(*.f64 x (*.f64 z y))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(-.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 0)
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(*.f64 1 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))))
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1)
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1/2))
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(*.f64 2 (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))) x))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) x))
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 1/2 z))) (*.f64 x 2))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 z 1/2)))))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2)))))
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2)) x))
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 1/2 z))) (*.f64 x 2))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 z 1/2)))))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2)))))
(*.f64 4 (/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 4))
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(*.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2) 1/2)
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(*.f64 (+.f64 x x) (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))))
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 1/2 z))) (+.f64 x x))
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 z 1/2))) (+.f64 x x))
(*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) (+.f64 x x))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2)))
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 1/2 z))) (+.f64 x x))
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 z 1/2))) (+.f64 x x))
(*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) (+.f64 x x))
(*.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))) 1/4)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 1/2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2))
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 y -1) (*.f64 x (+.f64 z z))) (+.f64 x x)))
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(*.f64 (+.f64 1 (*.f64 z (+.f64 y -1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (*.f64 2 (+.f64 1 (*.f64 z (+.f64 y -1)))) (*.f64 x 1/2))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 1/4 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 1 (*.f64 z (+.f64 y -1)))))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 z (+.f64 y (+.f64 y -2)))))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1/2) 2)
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))) (+.f64 x x))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 4) 4)
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(*.f64 (+.f64 (*.f64 (+.f64 y -1) (*.f64 x (+.f64 z z))) (+.f64 x x)) 1/2)
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(*.f64 (+.f64 2 (*.f64 z (+.f64 y (+.f64 y -2)))) (*.f64 x 1/2))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) (+.f64 x x))
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 1/2 z))) (+.f64 x x))
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 z 1/2))) (+.f64 x x))
(*.f64 (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2)) (+.f64 x x))
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 1/2 z))) (+.f64 x x))
(*.f64 (+.f64 1/2 (*.f64 (+.f64 y -1) (*.f64 z 1/2))) (+.f64 x x))
(*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) (+.f64 x x))
(/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1)
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(/.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2) 2)
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(/.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))) 4)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (-.f64 1 (*.f64 z (-.f64 1 y))))
(/.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8) 8)
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8)) 16)
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8))) 32)
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8)))) 64)
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8))))) 128)
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))
(pow.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1)
(+.f64 (*.f64 z (*.f64 x -1)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (+.f64 (*.f64 z (neg.f64 x)) (*.f64 x (*.f64 y z))))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 x (*.f64 (*.f64 x z) (+.f64 y -1)))

localize5.0ms (0%)

Compiler

Compiled 11 to 5 computations (54.5% saved)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 22 to 13 computations (40.9% saved)

series2.0ms (0%)

Counts
2 → 60
Calls

15 calls:

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

rewrite196.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
1798×rational.json-simplify-35
1674×rational.json-simplify-1
1346×exponential.json-3
1346×rational.json-1
1346×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0932
16532
215232
330032
455932
5128532
6280032
7449332
8527532
9660732
10748832
11748832
Stop Event
node limit
Counts
2 → 28
Calls
Call 1
Inputs
(*.f64 x (*.f64 (+.f64 -1 y) z))
(*.f64 (+.f64 -1 y) z)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 (+.f64 -1 y) z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 -1 y) (*.f64 z (*.f64 x 1/2))) (*.f64 (+.f64 -1 y) (*.f64 z (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -1 y) (*.f64 x (+.f64 z z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 -1 y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 -1 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 -1 y) (*.f64 z 1/2)) (*.f64 (+.f64 -1 y) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 -1 y) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -1 y) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -1 y) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -1 y) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -1 y) (*.f64 z 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 -1 y) z) 1)))))

simplify261.0ms (1.7%)

Algorithm
egg-herbie
Rules
2746×rational.json-simplify-41
2204×rational.json-simplify-2
2056×rational.json-simplify-35
1124×rational.json-simplify-49
710×rational.json-simplify-51
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0851618
12321404
24841404
311631404
432201404
539841404
643951404
746881404
847111404
947321404
1076201404
1178181404
1278771404
Stop Event
node limit
Counts
88 → 45
Calls
Call 1
Inputs
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 -1 z)
(+.f64 (*.f64 y z) (*.f64 -1 z))
(+.f64 (*.f64 y z) (*.f64 -1 z))
(+.f64 (*.f64 y z) (*.f64 -1 z))
(*.f64 y z)
(+.f64 (*.f64 -1 z) (*.f64 y z))
(+.f64 (*.f64 -1 z) (*.f64 y z))
(+.f64 (*.f64 -1 z) (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 -1 z) (*.f64 y z))
(+.f64 (*.f64 -1 z) (*.f64 y z))
(+.f64 (*.f64 -1 z) (*.f64 y z))
(*.f64 z (-.f64 y 1))
(*.f64 z (-.f64 y 1))
(*.f64 z (-.f64 y 1))
(*.f64 z (-.f64 y 1))
(*.f64 z (-.f64 y 1))
(*.f64 z (-.f64 y 1))
(*.f64 z (-.f64 y 1))
(*.f64 z (-.f64 y 1))
(*.f64 z (-.f64 y 1))
(*.f64 z (-.f64 y 1))
(*.f64 z (-.f64 y 1))
(*.f64 z (-.f64 y 1))
(+.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 0)
(+.f64 0 (*.f64 x (*.f64 (+.f64 -1 y) z)))
(+.f64 (*.f64 (+.f64 -1 y) (*.f64 z (*.f64 x 1/2))) (*.f64 (+.f64 -1 y) (*.f64 z (*.f64 x 1/2))))
(-.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 0)
(/.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 1)
(/.f64 (*.f64 (+.f64 -1 y) (*.f64 x (+.f64 z z))) 2)
(/.f64 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 4))) 4)
(/.f64 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))) 8)
(/.f64 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))))))) 256)
(pow.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 1)
(+.f64 (*.f64 (+.f64 -1 y) z) 0)
(+.f64 0 (*.f64 (+.f64 -1 y) z))
(+.f64 (*.f64 (+.f64 -1 y) (*.f64 z 1/2)) (*.f64 (+.f64 -1 y) (*.f64 z 1/2)))
(-.f64 (*.f64 (+.f64 -1 y) z) 0)
(/.f64 (*.f64 (+.f64 -1 y) z) 1)
(/.f64 (*.f64 (+.f64 -1 y) (+.f64 z z)) 2)
(/.f64 (*.f64 (+.f64 -1 y) (*.f64 z 4)) 4)
(/.f64 (*.f64 (+.f64 -1 y) (*.f64 z 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))))))) 256)
(pow.f64 (*.f64 (+.f64 -1 y) z) 1)
Outputs
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 -1 (*.f64 z x))
(*.f64 z (*.f64 x -1))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 -1 z)
(*.f64 z -1)
(neg.f64 z)
(+.f64 (*.f64 y z) (*.f64 -1 z))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(+.f64 (*.f64 y z) (*.f64 -1 z))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(+.f64 (*.f64 y z) (*.f64 -1 z))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 -1 z) (*.f64 y z))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(+.f64 (*.f64 -1 z) (*.f64 y z))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(+.f64 (*.f64 -1 z) (*.f64 y z))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 -1 z) (*.f64 y z))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(+.f64 (*.f64 -1 z) (*.f64 y z))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(+.f64 (*.f64 -1 z) (*.f64 y z))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(*.f64 z (-.f64 y 1))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(*.f64 z (-.f64 y 1))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(*.f64 z (-.f64 y 1))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(*.f64 z (-.f64 y 1))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(*.f64 z (-.f64 y 1))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(*.f64 z (-.f64 y 1))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(*.f64 z (-.f64 y 1))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(*.f64 z (-.f64 y 1))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(*.f64 z (-.f64 y 1))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(*.f64 z (-.f64 y 1))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(*.f64 z (-.f64 y 1))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(*.f64 z (-.f64 y 1))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(+.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 0)
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 0 (*.f64 x (*.f64 (+.f64 -1 y) z)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 (+.f64 -1 y) (*.f64 z (*.f64 x 1/2))) (*.f64 (+.f64 -1 y) (*.f64 z (*.f64 x 1/2))))
(*.f64 z (*.f64 x (+.f64 y -1)))
(-.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 0)
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 1)
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 (+.f64 -1 y) (*.f64 x (+.f64 z z))) 2)
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 4))) 4)
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))) 8)
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))) 16)
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))))) 32)
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))))) 64)
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8))))))) 128)
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (+.f64 -1 y) (*.f64 z 8)))))))) 256)
(*.f64 z (*.f64 x (+.f64 y -1)))
(pow.f64 (*.f64 x (*.f64 (+.f64 -1 y) z)) 1)
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 (+.f64 -1 y) z) 0)
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(+.f64 0 (*.f64 (+.f64 -1 y) z))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(+.f64 (*.f64 (+.f64 -1 y) (*.f64 z 1/2)) (*.f64 (+.f64 -1 y) (*.f64 z 1/2)))
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(-.f64 (*.f64 (+.f64 -1 y) z) 0)
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(/.f64 (*.f64 (+.f64 -1 y) z) 1)
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(/.f64 (*.f64 (+.f64 -1 y) (+.f64 z z)) 2)
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(/.f64 (*.f64 (+.f64 -1 y) (*.f64 z 4)) 4)
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(/.f64 (*.f64 (+.f64 -1 y) (*.f64 z 8)) 8)
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(/.f64 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))) 16)
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8)))) 32)
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))))) 64)
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8)))))) 128)
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -1 y) (*.f64 z 8))))))) 256)
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))
(pow.f64 (*.f64 (+.f64 -1 y) z) 1)
(+.f64 (*.f64 z -1) (*.f64 z y))
(*.f64 z (+.f64 y -1))

localize7.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 21 to 10 computations (52.4% saved)

series4.0ms (0%)

Counts
1 → 15
Calls

6 calls:

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

rewrite139.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
1618×rational.json-1
1618×rational.json-2
1504×rational.json-simplify-35
1402×rational.json-3
1388×exponential.json-3
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0819
15917
214317
329217
459513
5150413
6314613
7485913
8653713
9785613
Stop Event
node limit
Counts
1 → 32
Calls
Call 1
Inputs
(+.f64 (*.f64 -1 (*.f64 z x)) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (-.f64 1 z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (-.f64 1 (*.f64 z x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (-.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (-.f64 1 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 1/2 (-.f64 1 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (-.f64 (-.f64 2 z) z)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 1/2 (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (neg.f64 z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (/.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 x (-.f64 1 z)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 4 (-.f64 1 z))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (-.f64 (-.f64 2 z) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 x x) (*.f64 z (*.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 z) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (-.f64 2 z) z) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (-.f64 (-.f64 2 z) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 z -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (-.f64 1 z)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (-.f64 1 z)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x (*.f64 4 (-.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (-.f64 1 z)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 1 z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 (-.f64 2 z) z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 4 (-.f64 1 z))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (-.f64 1 z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (-.f64 1 z)) 1)))))

simplify237.0ms (1.5%)

Algorithm
egg-herbie
Rules
2030×rational.json-simplify-2
1708×rational.json-simplify-35
1416×rational.json-simplify-1
886×rational.json-simplify-48
850×exponential.json-simplify-26
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
087795
1203787
2501619
31657619
43435619
54415619
65006619
75358619
85712619
96172619
107433619
117806619
Stop Event
node limit
Counts
47 → 42
Calls
Call 1
Inputs
x
(*.f64 -1 (*.f64 z x))
(*.f64 -1 (*.f64 z x))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 -1 (*.f64 (-.f64 z 1) x))
(*.f64 -1 (*.f64 (-.f64 z 1) x))
(*.f64 -1 (*.f64 (-.f64 z 1) x))
(*.f64 -1 (*.f64 (-.f64 z 1) x))
(-.f64 (*.f64 x (-.f64 1 z)) 0)
(-.f64 (+.f64 x (-.f64 1 (*.f64 z x))) 1)
(*.f64 x (-.f64 1 z))
(*.f64 (*.f64 x (-.f64 1 z)) 1)
(*.f64 1 (*.f64 x (-.f64 1 z)))
(*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 1/2))
(*.f64 2 (*.f64 (*.f64 1/2 (-.f64 1 z)) x))
(*.f64 (*.f64 x (-.f64 (-.f64 2 z) z)) 1/2)
(*.f64 (+.f64 x x) (*.f64 1/2 (-.f64 1 z)))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (neg.f64 z) 1/2)))
(*.f64 (+.f64 x x) (+.f64 1/2 (/.f64 z -2)))
(*.f64 4 (/.f64 (*.f64 x (-.f64 1 z)) 4))
(*.f64 (*.f64 x (*.f64 4 (-.f64 1 z))) 1/4)
(*.f64 1/2 (*.f64 x (-.f64 (-.f64 2 z) z)))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 z (*.f64 x -2))))
(*.f64 (-.f64 1 z) x)
(*.f64 (-.f64 (-.f64 2 z) z) (*.f64 x 1/2))
(*.f64 (*.f64 x 1/2) (-.f64 (-.f64 2 z) z))
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 z -2)))
(*.f64 (*.f64 (*.f64 x (-.f64 1 z)) 1/2) 2)
(*.f64 (*.f64 1/2 (-.f64 1 z)) (+.f64 x x))
(*.f64 1/4 (*.f64 x (*.f64 4 (-.f64 1 z))))
(*.f64 (/.f64 (*.f64 x (-.f64 1 z)) 4) 4)
(/.f64 (*.f64 x (-.f64 1 z)) 1)
(/.f64 (*.f64 x (-.f64 (-.f64 2 z) z)) 2)
(/.f64 (*.f64 x (*.f64 4 (-.f64 1 z))) 4)
(/.f64 (*.f64 (*.f64 x (-.f64 1 z)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))))) 128)
(pow.f64 (*.f64 x (-.f64 1 z)) 1)
Outputs
x
(*.f64 -1 (*.f64 z x))
(*.f64 -1 (*.f64 x z))
(*.f64 x (neg.f64 z))
(*.f64 -1 (*.f64 z x))
(*.f64 -1 (*.f64 x z))
(*.f64 x (neg.f64 z))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 -1 (*.f64 (-.f64 z 1) x))
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 -1 (*.f64 (-.f64 z 1) x))
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 -1 (*.f64 (-.f64 z 1) x))
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 -1 (*.f64 (-.f64 z 1) x))
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(-.f64 (*.f64 x (-.f64 1 z)) 0)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(-.f64 (+.f64 x (-.f64 1 (*.f64 z x))) 1)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 x (-.f64 1 z))
(*.f64 x (+.f64 1 (neg.f64 z)))
(-.f64 x (*.f64 x z))
(*.f64 (*.f64 x (-.f64 1 z)) 1)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 1 (*.f64 x (-.f64 1 z)))
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 1/2))
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 2 (*.f64 (*.f64 1/2 (-.f64 1 z)) x))
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (*.f64 x (-.f64 (-.f64 2 z) z)) 1/2)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (+.f64 x x) (*.f64 1/2 (-.f64 1 z)))
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (neg.f64 z) 1/2)))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 1/2 (neg.f64 z))))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 z -1/2)))
(*.f64 (+.f64 x x) (+.f64 1/2 (/.f64 z -2)))
(*.f64 4 (/.f64 (*.f64 x (-.f64 1 z)) 4))
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (*.f64 x (*.f64 4 (-.f64 1 z))) 1/4)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 1/2 (*.f64 x (-.f64 (-.f64 2 z) z)))
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 z (*.f64 x -2))))
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (-.f64 1 z) x)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (-.f64 (-.f64 2 z) z) (*.f64 x 1/2))
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (*.f64 x 1/2) (-.f64 (-.f64 2 z) z))
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 z -2)))
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (*.f64 (*.f64 x (-.f64 1 z)) 1/2) 2)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (*.f64 1/2 (-.f64 1 z)) (+.f64 x x))
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 1/4 (*.f64 x (*.f64 4 (-.f64 1 z))))
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(*.f64 (/.f64 (*.f64 x (-.f64 1 z)) 4) 4)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(/.f64 (*.f64 x (-.f64 1 z)) 1)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(/.f64 (*.f64 x (-.f64 (-.f64 2 z) z)) 2)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(/.f64 (*.f64 x (*.f64 4 (-.f64 1 z))) 4)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(/.f64 (*.f64 (*.f64 x (-.f64 1 z)) 8) 8)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)) 16)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))) 32)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8)))) 64)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 1 z)) 8))))) 128)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))
(pow.f64 (*.f64 x (-.f64 1 z)) 1)
(*.f64 x (+.f64 1 (neg.f64 z)))
(*.f64 x (-.f64 1 z))
(-.f64 x (*.f64 x z))

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
3.1b
(*.f64 x (-.f64 1 (*.f64 z (neg.f64 y))))
Compiler

Compiled 27 to 11 computations (59.3% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite122.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1744×rational.json-1
1716×rational.json-simplify-35
1278×rational.json-2
1278×rational.json-3
1270×exponential.json-3
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
01123
18323
218323
336723
470723
5165923
6361519
7602319
8796819
Stop Event
node limit
Counts
1 → 13
Calls
Call 1
Inputs
(*.f64 x (-.f64 1 (*.f64 z (neg.f64 y))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 1 (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 (*.f64 z y)) (*.f64 x 1/2)) (*.f64 (+.f64 1 (*.f64 z y)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (*.f64 z y)) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 1 (*.f64 z y)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 1)))))

simplify770.0ms (5%)

Algorithm
egg-herbie
Rules
3006×rational.json-simplify-35
2366×rational.json-simplify-2
1400×rational.json-simplify-53
1322×rational.json-simplify-1
1034×rational.json-simplify-48
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0511021
1123971
2233971
3502871
41659871
53322871
64474871
74722871
84922871
95098871
105268871
115864871
126292871
136452871
146581871
156606871
166686871
176734871
186930871
197126871
207311871
217493871
227668871
237988871
Stop Event
node limit
Counts
49 → 25
Calls
Call 1
Inputs
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 0)
(+.f64 0 (*.f64 x (+.f64 1 (*.f64 z y))))
(+.f64 (*.f64 (+.f64 1 (*.f64 z y)) (*.f64 x 1/2)) (*.f64 (+.f64 1 (*.f64 z y)) (*.f64 x 1/2)))
(-.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 0)
(/.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 1)
(/.f64 (*.f64 (+.f64 1 (*.f64 z y)) (+.f64 x x)) 2)
(/.f64 (*.f64 x (*.f64 (+.f64 1 (*.f64 z y)) 4)) 4)
(/.f64 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))))))) 128)
(pow.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 1)
Outputs
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 0)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(+.f64 0 (*.f64 x (+.f64 1 (*.f64 z y))))
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(+.f64 (*.f64 (+.f64 1 (*.f64 z y)) (*.f64 x 1/2)) (*.f64 (+.f64 1 (*.f64 z y)) (*.f64 x 1/2)))
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(-.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 0)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(/.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 1)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(/.f64 (*.f64 (+.f64 1 (*.f64 z y)) (+.f64 x x)) 2)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(/.f64 (*.f64 x (*.f64 (+.f64 1 (*.f64 z y)) 4)) 4)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(/.f64 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))) 8)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(/.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))) 16)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))))) 32)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))))) 64)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 z y))))))) 128)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))
(pow.f64 (*.f64 x (+.f64 1 (*.f64 z y))) 1)
(*.f64 (-.f64 1 (*.f64 -1 (*.f64 y z))) x)
(*.f64 (-.f64 1 (*.f64 y (neg.f64 z))) x)
(*.f64 (-.f64 1 (*.f64 z (neg.f64 y))) x)
(*.f64 x (+.f64 1 (*.f64 y z)))

eval133.0ms (0.9%)

Compiler

Compiled 2353 to 1492 computations (36.6% saved)

prune80.0ms (0.5%)

Pruning

10 alts after pruning (5 fresh and 5 done)

PrunedKeptTotal
New2164220
Fresh011
Picked101
Done358
Total22010230
Error
0.0b
Counts
230 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
20.1b
(-.f64 x (*.f64 x z))
17.2b
(+.f64 (*.f64 y (*.f64 z x)) x)
20.1b
(*.f64 (-.f64 1 z) x)
44.3b
(*.f64 z (*.f64 y x))
47.7b
(*.f64 z (neg.f64 x))
45.0b
(*.f64 y (*.f64 z x))
18.4b
(*.f64 x (+.f64 1 (*.f64 y z)))
31.6b
(*.f64 x (*.f64 (+.f64 -1 y) z))
46.3b
(*.f64 x (*.f64 z y))
34.5b
x
Compiler

Compiled 81 to 54 computations (33.3% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
6.4b
(*.f64 x (*.f64 z y))
Compiler

Compiled 14 to 5 computations (64.3% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite277.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
2168×rational.json-simplify-2
1512×rational.json-simplify-1
1370×exponential.json-3
1370×rational.json-1
1370×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14813
211713
325013
445213
5105813
6217013
7336113
8399313
9494913
10554213
11554213
12689613
13798613
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 x (*.f64 z y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 z y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (*.f64 z y) 1/2)) (*.f64 x (*.f64 (*.f64 z y) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 z y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 z y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 z (+.f64 y y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 x (*.f64 y 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 z (*.f64 y 8))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 z y)) 1)))))

simplify488.0ms (3.2%)

Algorithm
egg-herbie
Rules
4276×rational.json-simplify-53
3790×rational.json-simplify-35
2412×rational.json-simplify-2
1566×exponential.json-simplify-26
696×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
050650
1141650
2284650
3716650
41991650
53638650
64128650
74487650
84703650
94913650
105794650
116545650
126545650
136545650
146754650
156963650
167172650
177381650
187590650
Stop Event
node limit
Counts
50 → 16
Calls
Call 1
Inputs
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 x (*.f64 z y)) 0)
(+.f64 0 (*.f64 x (*.f64 z y)))
(+.f64 (*.f64 x (*.f64 (*.f64 z y) 1/2)) (*.f64 x (*.f64 (*.f64 z y) 1/2)))
(-.f64 (*.f64 x (*.f64 z y)) 0)
(/.f64 (*.f64 x (*.f64 z y)) 1)
(/.f64 (*.f64 x (*.f64 z (+.f64 y y))) 2)
(/.f64 (*.f64 z (*.f64 x (*.f64 y 4))) 4)
(/.f64 (*.f64 x (*.f64 z (*.f64 y 8))) 8)
(/.f64 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8))))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))))))) 256)
(pow.f64 (*.f64 x (*.f64 z y)) 1)
Outputs
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 x (*.f64 z y)) 0)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(+.f64 0 (*.f64 x (*.f64 z y)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 x (*.f64 (*.f64 z y) 1/2)) (*.f64 x (*.f64 (*.f64 z y) 1/2)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(-.f64 (*.f64 x (*.f64 z y)) 0)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 x (*.f64 z y)) 1)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 x (*.f64 z (+.f64 y y))) 2)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 z (*.f64 x (*.f64 y 4))) 4)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 x (*.f64 z (*.f64 y 8))) 8)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))) 16)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8))))) 32)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))))) 64)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8))))))) 128)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 z (*.f64 y 8)))))))) 256)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))
(pow.f64 (*.f64 x (*.f64 z y)) 1)
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 y x))

localize7.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 22 to 10 computations (54.5% saved)

series11.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite193.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
1802×rational.json-simplify-35
1722×rational.json-simplify-1
1368×exponential.json-3
1368×rational.json-1
1368×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
17119
215719
328419
452219
5113919
6271719
7470919
8567019
9688119
10784619
11784619
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 x (+.f64 1 (*.f64 y z)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 1 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 (*.f64 y z)) (*.f64 x 1/2)) (*.f64 (+.f64 1 (*.f64 y z)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 2 (*.f64 y (+.f64 z z)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 1 (*.f64 y z)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)))))

simplify876.0ms (5.7%)

Algorithm
egg-herbie
Rules
3770×rational.json-simplify-35
2684×rational.json-simplify-2
1630×rational.json-simplify-53
924×rational.json-simplify-1
922×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
053902
1136902
2251902
3516902
41709902
53373902
64505902
74726902
84899902
95062902
105219902
115833902
126189902
136356902
146446902
156457902
166482902
176611902
186745902
196870902
206993902
217115902
227237902
237621902
247743902
257923902
Stop Event
node limit
Counts
50 → 27
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0)
(+.f64 0 (*.f64 x (+.f64 1 (*.f64 y z))))
(+.f64 (*.f64 (+.f64 1 (*.f64 y z)) (*.f64 x 1/2)) (*.f64 (+.f64 1 (*.f64 y z)) (*.f64 x 1/2)))
(-.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0)
(/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)
(/.f64 (*.f64 x (+.f64 2 (*.f64 y (+.f64 z z)))) 2)
(/.f64 (*.f64 x (*.f64 (+.f64 1 (*.f64 y z)) 4)) 4)
(/.f64 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))))))) 256)
(pow.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)
Outputs
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 z (*.f64 x y)))
(+.f64 x (*.f64 z (*.f64 y x)))
(+.f64 x (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0)
(*.f64 x (+.f64 (*.f64 y z) 1))
(+.f64 0 (*.f64 x (+.f64 1 (*.f64 y z))))
(*.f64 x (+.f64 (*.f64 y z) 1))
(+.f64 (*.f64 (+.f64 1 (*.f64 y z)) (*.f64 x 1/2)) (*.f64 (+.f64 1 (*.f64 y z)) (*.f64 x 1/2)))
(*.f64 x (+.f64 (*.f64 y z) 1))
(-.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 x (+.f64 2 (*.f64 y (+.f64 z z)))) 2)
(*.f64 (+.f64 2 (*.f64 y (+.f64 z z))) (/.f64 x 2))
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 y (+.f64 z z))))
(*.f64 x (/.f64 (+.f64 2 (*.f64 y (+.f64 z z))) 2))
(/.f64 (*.f64 x (*.f64 (+.f64 1 (*.f64 y z)) 4)) 4)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))) 8)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))) 16)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))))) 32)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))))) 64)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z))))))) 128)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 1 (*.f64 y z)))))))) 256)
(*.f64 x (+.f64 (*.f64 y z) 1))
(pow.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)
(*.f64 x (+.f64 (*.f64 y z) 1))

localize6.0ms (0%)

Local error

Found 2 expressions with local error:

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

Compiled 21 to 6 computations (71.4% saved)

series1.0ms (0%)

Counts
1 → 18
Calls

9 calls:

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

rewrite185.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
2442×rational.json-simplify-2
1598×rational.json-1
1240×rational.json-simplify-35
1210×exponential.json-3
1210×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
15519
212819
327719
453219
5129619
6294419
7456119
8540519
9642419
10642419
11796119
Stop Event
node limit
Counts
1 → 35
Calls
Call 1
Inputs
(+.f64 (*.f64 y (*.f64 z x)) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 1 (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 1 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 1 (*.f64 y z)) 1/2) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (+.f64 1 (*.f64 y z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z)))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (*.f64 y z)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 1 (*.f64 y z))) (/.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x 2) (*.f64 2 (+.f64 1 (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x 2) (+.f64 2 (*.f64 y (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1 (*.f64 y z)) 1/2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 2 (*.f64 y (+.f64 z z))) (/.f64 x 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)))))

simplify196.0ms (1.3%)

Algorithm
egg-herbie
Rules
2032×rational.json-simplify-2
1642×rational.json-simplify-35
946×rational.json-simplify-1
884×rational.json-simplify-48
810×rational.json-simplify-51
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0871019
11971019
24461019
314501019
431291019
543271019
649901019
753881019
857801019
962771019
1073281019
Stop Event
node limit
Counts
53 → 44
Calls
Call 1
Inputs
x
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
x
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 z x))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(-.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0)
(*.f64 x (+.f64 1 (*.f64 y z)))
(*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)
(*.f64 1 (*.f64 x (+.f64 1 (*.f64 y z))))
(*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1/2))
(*.f64 2 (*.f64 (*.f64 (+.f64 1 (*.f64 y z)) 1/2) x))
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)) x))
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))) x))
(*.f64 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z))) 1/2)
(*.f64 (+.f64 x x) (*.f64 (+.f64 1 (*.f64 y z)) 1/2))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y (*.f64 z 1/2))))
(*.f64 4 (/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 4))
(*.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z)))) 1/4)
(*.f64 (+.f64 1 (*.f64 y z)) x)
(*.f64 (*.f64 2 (+.f64 1 (*.f64 y z))) (/.f64 x 2))
(*.f64 1/2 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z))))
(*.f64 (/.f64 x 2) (*.f64 2 (+.f64 1 (*.f64 y z))))
(*.f64 (/.f64 x 2) (+.f64 2 (*.f64 y (+.f64 z z))))
(*.f64 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1/2) 2)
(*.f64 (*.f64 (+.f64 1 (*.f64 y z)) 1/2) (+.f64 x x))
(*.f64 1/4 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z)))))
(*.f64 (/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 4) 4)
(*.f64 (+.f64 2 (*.f64 y (+.f64 z z))) (/.f64 x 2))
(*.f64 (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)) (+.f64 x x))
(*.f64 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))) (+.f64 x x))
(/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)
(/.f64 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z))) 2)
(/.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z)))) 4)
(/.f64 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8))))) 128)
(pow.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)
Outputs
x
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 x z))
(*.f64 x (*.f64 y z))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 x z))
(*.f64 x (*.f64 y z))
x
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 x z))
(*.f64 x (*.f64 y z))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 x z))
(*.f64 x (*.f64 y z))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 (*.f64 y z) 1) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 y z)) 1) x))
(*.f64 x (+.f64 (*.f64 y z) 1))
(-.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 0)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 x (+.f64 1 (*.f64 y z)))
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 1 (*.f64 x (+.f64 1 (*.f64 y z))))
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1/2))
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 2 (*.f64 (*.f64 (+.f64 1 (*.f64 y z)) 1/2) x))
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)) x))
(*.f64 2 (*.f64 x (+.f64 1/2 (*.f64 (*.f64 y z) 1/2))))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 y (*.f64 z 1/2)))))
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))) x))
(*.f64 2 (*.f64 x (+.f64 1/2 (*.f64 (*.f64 y z) 1/2))))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 y (*.f64 z 1/2)))))
(*.f64 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z))) 1/2)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 x x) (*.f64 (+.f64 1 (*.f64 y z)) 1/2))
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)))
(*.f64 2 (*.f64 x (+.f64 1/2 (*.f64 (*.f64 y z) 1/2))))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 y (*.f64 z 1/2)))))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y (*.f64 z 1/2))))
(*.f64 2 (*.f64 x (+.f64 1/2 (*.f64 (*.f64 y z) 1/2))))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 y (*.f64 z 1/2)))))
(*.f64 4 (/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 4))
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z)))) 1/4)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 1 (*.f64 y z)) x)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (*.f64 2 (+.f64 1 (*.f64 y z))) (/.f64 x 2))
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 1/2 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z))))
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (/.f64 x 2) (*.f64 2 (+.f64 1 (*.f64 y z))))
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (/.f64 x 2) (+.f64 2 (*.f64 y (+.f64 z z))))
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1/2) 2)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (*.f64 (+.f64 1 (*.f64 y z)) 1/2) (+.f64 x x))
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 1/4 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z)))))
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 4) 4)
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 2 (*.f64 y (+.f64 z z))) (/.f64 x 2))
(*.f64 x (+.f64 (*.f64 y z) 1))
(*.f64 (+.f64 1/2 (*.f64 (*.f64 y z) 1/2)) (+.f64 x x))
(*.f64 2 (*.f64 x (+.f64 1/2 (*.f64 (*.f64 y z) 1/2))))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 y (*.f64 z 1/2)))))
(*.f64 (+.f64 1/2 (*.f64 y (*.f64 z 1/2))) (+.f64 x x))
(*.f64 2 (*.f64 x (+.f64 1/2 (*.f64 (*.f64 y z) 1/2))))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 y (*.f64 z 1/2)))))
(/.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 (+.f64 x x) (+.f64 1 (*.f64 y z))) 2)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 y z)))) 4)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8) 8)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8)) 16)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8))) 32)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8)))) 64)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 8))))) 128)
(*.f64 x (+.f64 (*.f64 y z) 1))
(pow.f64 (*.f64 x (+.f64 1 (*.f64 y z))) 1)
(*.f64 x (+.f64 (*.f64 y z) 1))

localize76.0ms (0.5%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 5 computations (61.5% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite105.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1536×rational.json-1
1536×rational.json-2
1536×rational.json-3
1534×exponential.json-3
1534×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
13913
29313
320713
439913
592413
6258513
7511513
8689613
Stop Event
node limit
Counts
1 → 83
Calls
Call 1
Inputs
(-.f64 x (*.f64 x z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 z (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 x z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 x (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (-.f64 -1 (*.f64 x (+.f64 z -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (neg.f64 x)) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 x (-.f64 1 (*.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (-.f64 1 (*.f64 x z))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (/.f64 (+.f64 z -1) -2)) (*.f64 x (/.f64 (+.f64 z -1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 1/2) (*.f64 x (-.f64 1/2 z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 1 (*.f64 x z)) (+.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 2 (*.f64 x (+.f64 z -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x 1) (-.f64 -1 (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 2 (*.f64 x (+.f64 z -1))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (-.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (*.f64 2 (-.f64 1 z)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 2 (*.f64 (-.f64 1 z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (*.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 x (*.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 x (/.f64 (+.f64 z -1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 2 (-.f64 1 z))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (-.f64 1 z) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (neg.f64 (*.f64 (+.f64 z -1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (/.f64 (+.f64 z -1) -2))))) (#(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 x (+.f64 z -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 x (-.f64 1/4 (*.f64 z 1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 z -1)) -4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 (-.f64 1 z) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (-.f64 1/4 (*.f64 z 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (+.f64 z -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 z) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z -1) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (*.f64 x (+.f64 z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 x 8) (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (*.f64 1/2 (*.f64 x 1/4)) (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 x (*.f64 x z)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 8) (*.f64 1/8 (-.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 x (+.f64 z -1))) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (-.f64 1 z)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (/.f64 (+.f64 z -1) -2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 2 (-.f64 1 z)))))) (#(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 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -2 (*.f64 x (+.f64 (*.f64 z 1/2) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 z -1)) (/.f64 x -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 z -1)) (*.f64 -1 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 2 (-.f64 1 z))) (*.f64 x 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 z) 1/2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 z -1) 1/2) (neg.f64 (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (*.f64 z 1/2) -1/2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (*.f64 x (+.f64 z -1)) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/4) (*.f64 2 (*.f64 2 (-.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/4) (-.f64 4 (*.f64 z 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (-.f64 1/4 (*.f64 z 1/4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (-.f64 x (*.f64 x z)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (-.f64 (*.f64 x 8) (*.f64 z (*.f64 x 8))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1/2 (*.f64 2 (*.f64 x (+.f64 z -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 2 (-.f64 1 z)) 1/2) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 z) 1/4) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 (+.f64 z -1) 1/2)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 x x)) (*.f64 (+.f64 z -1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x -2) (*.f64 2 (+.f64 z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 z -1) -2) (+.f64 x x))))) (#(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 2 (+.f64 z z)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 (-.f64 1 z) 1/2)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 (+.f64 z -1) 1/2)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x (*.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 2 (-.f64 1 z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 z -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 z -1)) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x (*.f64 x z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (+.f64 z -1))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 (*.f64 z 4) 4)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (-.f64 (*.f64 z 4) 4))) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x (-.f64 (*.f64 z 4) 4)))) -16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 x (*.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x (+.f64 z -1)))))))

simplify340.0ms (2.2%)

Algorithm
egg-herbie
Rules
2454×rational.json-simplify-2
1790×rational.json-simplify-1
1286×rational.json-simplify-35
1002×rational.json-simplify-41
926×rational.json-simplify-53
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01811555
13861549
27891549
315921549
431301549
548501549
653601549
756001549
858991549
964621549
1079201549
Stop Event
node limit
Counts
107 → 102
Calls
Call 1
Inputs
(*.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 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
x
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 -1 (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 x (*.f64 z (neg.f64 x)))
(+.f64 (-.f64 x (*.f64 x z)) 0)
(+.f64 0 (-.f64 x (*.f64 x z)))
(+.f64 1 (-.f64 -1 (*.f64 x (+.f64 z -1))))
(+.f64 (*.f64 z (neg.f64 x)) x)
(+.f64 -1 (+.f64 x (-.f64 1 (*.f64 x z))))
(+.f64 (+.f64 x (-.f64 1 (*.f64 x z))) -1)
(+.f64 (*.f64 x (/.f64 (+.f64 z -1) -2)) (*.f64 x (/.f64 (+.f64 z -1) -2)))
(+.f64 (*.f64 x 1/2) (*.f64 x (-.f64 1/2 z)))
(+.f64 (-.f64 1 (*.f64 x z)) (+.f64 x -1))
(+.f64 -2 (-.f64 2 (*.f64 x (+.f64 z -1))))
(+.f64 (+.f64 x 1) (-.f64 -1 (*.f64 x z)))
(+.f64 (-.f64 2 (*.f64 x (+.f64 z -1))) -2)
(*.f64 x (-.f64 1 z))
(*.f64 x (*.f64 (*.f64 2 (-.f64 1 z)) 1/2))
(*.f64 x (*.f64 2 (*.f64 (-.f64 1 z) 1/2)))
(*.f64 (-.f64 x (*.f64 x z)) 1)
(*.f64 1 (-.f64 x (*.f64 x z)))
(*.f64 2 (*.f64 x (/.f64 (+.f64 z -1) -2)))
(*.f64 (*.f64 x (*.f64 2 (-.f64 1 z))) 1/2)
(*.f64 (+.f64 x x) (*.f64 (-.f64 1 z) 1/2))
(*.f64 (+.f64 x x) (neg.f64 (*.f64 (+.f64 z -1) 1/2)))
(*.f64 (+.f64 x x) (/.f64 (+.f64 z -1) -2))
(*.f64 (+.f64 x x) (-.f64 1/2 (*.f64 z 1/2)))
(*.f64 (*.f64 x (+.f64 z -1)) -1)
(*.f64 4 (*.f64 x (-.f64 1/4 (*.f64 z 1/4))))
(*.f64 (*.f64 (*.f64 x (+.f64 z -1)) -4) 1/4)
(*.f64 (*.f64 x 4) (*.f64 (-.f64 1 z) 1/4))
(*.f64 (*.f64 x 4) (-.f64 1/4 (*.f64 z 1/4)))
(*.f64 (neg.f64 x) (+.f64 z -1))
(*.f64 (-.f64 1 z) x)
(*.f64 (+.f64 z -1) (neg.f64 x))
(*.f64 -1 (*.f64 x (+.f64 z -1)))
(*.f64 8 (*.f64 (/.f64 x 8) (-.f64 1 z)))
(*.f64 8 (*.f64 (*.f64 1/2 (*.f64 x 1/4)) (-.f64 1 z)))
(*.f64 (*.f64 (-.f64 x (*.f64 x z)) 8) 1/8)
(*.f64 (*.f64 x 8) (*.f64 1/8 (-.f64 1 z)))
(*.f64 (*.f64 2 (*.f64 x (+.f64 z -1))) -1/2)
(*.f64 (*.f64 2 (-.f64 1 z)) (*.f64 x 1/2))
(*.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 z))))
(*.f64 (*.f64 x (/.f64 (+.f64 z -1) -2)) 2)
(*.f64 (*.f64 x 1/2) (*.f64 2 (-.f64 1 z)))
(*.f64 (*.f64 x 1/2) (-.f64 2 (+.f64 z z)))
(*.f64 (*.f64 2 (*.f64 x 8)) (*.f64 1/16 (-.f64 1 z)))
(*.f64 -2 (*.f64 x (+.f64 (*.f64 z 1/2) -1/2)))
(*.f64 (*.f64 2 (+.f64 z -1)) (/.f64 x -2))
(*.f64 (*.f64 2 (+.f64 z -1)) (*.f64 -1 (*.f64 x 1/2)))
(*.f64 (*.f64 2 (*.f64 2 (-.f64 1 z))) (*.f64 x 1/4))
(*.f64 (*.f64 (-.f64 1 z) 1/2) (+.f64 x x))
(*.f64 (*.f64 (+.f64 z -1) 1/2) (neg.f64 (+.f64 x x)))
(*.f64 (*.f64 x (+.f64 (*.f64 z 1/2) -1/2)) -2)
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 z -1)) -4))
(*.f64 (*.f64 x 1/4) (*.f64 2 (*.f64 2 (-.f64 1 z))))
(*.f64 (*.f64 x 1/4) (-.f64 4 (*.f64 z 4)))
(*.f64 (*.f64 x (-.f64 1/4 (*.f64 z 1/4))) 4)
(*.f64 1/8 (*.f64 (-.f64 x (*.f64 x z)) 8))
(*.f64 1/8 (-.f64 (*.f64 x 8) (*.f64 z (*.f64 x 8))))
(*.f64 -1/2 (*.f64 2 (*.f64 x (+.f64 z -1))))
(*.f64 (*.f64 (*.f64 2 (-.f64 1 z)) 1/2) x)
(*.f64 (*.f64 (-.f64 1 z) 1/4) (*.f64 x 4))
(*.f64 (neg.f64 (*.f64 (+.f64 z -1) 1/2)) (+.f64 x x))
(*.f64 (neg.f64 (+.f64 x x)) (*.f64 (+.f64 z -1) 1/2))
(*.f64 (/.f64 x -2) (*.f64 2 (+.f64 z -1)))
(*.f64 (/.f64 (+.f64 z -1) -2) (+.f64 x x))
(*.f64 (-.f64 1/2 (*.f64 z 1/2)) (+.f64 x x))
(*.f64 (-.f64 2 (+.f64 z z)) (*.f64 x 1/2))
(*.f64 (*.f64 2 (*.f64 (-.f64 1 z) 1/2)) x)
(*.f64 (*.f64 2 (*.f64 (+.f64 z -1) 1/2)) (neg.f64 x))
(/.f64 (-.f64 x (*.f64 x z)) 1)
(/.f64 (*.f64 x (*.f64 2 (-.f64 1 z))) 2)
(/.f64 (*.f64 x (+.f64 z -1)) -1)
(/.f64 (*.f64 (*.f64 x (+.f64 z -1)) -4) 4)
(/.f64 (*.f64 (-.f64 x (*.f64 x z)) 8) 8)
(/.f64 (*.f64 2 (*.f64 x (+.f64 z -1))) -2)
(/.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)) 16)
(/.f64 (*.f64 x (-.f64 (*.f64 z 4) 4)) -4)
(/.f64 (*.f64 2 (*.f64 x (-.f64 (*.f64 z 4) 4))) -8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (-.f64 (*.f64 z 4) 4)))) -16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8))))) 128)
(pow.f64 (-.f64 x (*.f64 x z)) 1)
(neg.f64 (*.f64 x (+.f64 z -1)))
Outputs
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (+.f64 (*.f64 -1 z) 1) x)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
x
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 -1 (*.f64 z x))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 -1 (*.f64 z x))
(*.f64 z (neg.f64 x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 x (*.f64 z (neg.f64 x)))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 (-.f64 x (*.f64 x z)) 0)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 0 (-.f64 x (*.f64 x z)))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 1 (-.f64 -1 (*.f64 x (+.f64 z -1))))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 z (neg.f64 x)) x)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 -1 (+.f64 x (-.f64 1 (*.f64 x z))))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 (+.f64 x (-.f64 1 (*.f64 x z))) -1)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 x (/.f64 (+.f64 z -1) -2)) (*.f64 x (/.f64 (+.f64 z -1) -2)))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 (*.f64 x 1/2) (*.f64 x (-.f64 1/2 z)))
(*.f64 x (+.f64 (-.f64 1/2 z) 1/2))
(*.f64 x (+.f64 1/2 (-.f64 1/2 z)))
(+.f64 (-.f64 1 (*.f64 x z)) (+.f64 x -1))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 -2 (-.f64 2 (*.f64 x (+.f64 z -1))))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 (+.f64 x 1) (-.f64 -1 (*.f64 x z)))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(+.f64 (-.f64 2 (*.f64 x (+.f64 z -1))) -2)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 x (-.f64 1 z))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 x (*.f64 (*.f64 2 (-.f64 1 z)) 1/2))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 x (*.f64 2 (*.f64 (-.f64 1 z) 1/2)))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (-.f64 x (*.f64 x z)) 1)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 1 (-.f64 x (*.f64 x z)))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 2 (*.f64 x (/.f64 (+.f64 z -1) -2)))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 x (*.f64 2 (-.f64 1 z))) 1/2)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (+.f64 x x) (*.f64 (-.f64 1 z) 1/2))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (+.f64 x x) (neg.f64 (*.f64 (+.f64 z -1) 1/2)))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (+.f64 x x) (/.f64 (+.f64 z -1) -2))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (+.f64 x x) (-.f64 1/2 (*.f64 z 1/2)))
(*.f64 (*.f64 x (+.f64 z -1)) -1)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 4 (*.f64 x (-.f64 1/4 (*.f64 z 1/4))))
(*.f64 x (*.f64 (-.f64 1/4 (*.f64 z 1/4)) 4))
(*.f64 (*.f64 (*.f64 x (+.f64 z -1)) -4) 1/4)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 x 4) (*.f64 (-.f64 1 z) 1/4))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 x 4) (-.f64 1/4 (*.f64 z 1/4)))
(*.f64 x (*.f64 (-.f64 1/4 (*.f64 z 1/4)) 4))
(*.f64 4 (*.f64 x (-.f64 1/4 (*.f64 z 1/4))))
(*.f64 (neg.f64 x) (+.f64 z -1))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (+.f64 z -1) (neg.f64 x))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 -1 (*.f64 x (+.f64 z -1)))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 8 (*.f64 (/.f64 x 8) (-.f64 1 z)))
(*.f64 (/.f64 x 8) (*.f64 (-.f64 1 z) 8))
(*.f64 (-.f64 1 z) (*.f64 (/.f64 x 8) 8))
(*.f64 8 (*.f64 (-.f64 1 z) (/.f64 x 8)))
(*.f64 (-.f64 1 z) (*.f64 8 (/.f64 x 8)))
(*.f64 8 (*.f64 (*.f64 1/2 (*.f64 x 1/4)) (-.f64 1 z)))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 (-.f64 x (*.f64 x z)) 8) 1/8)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 x 8) (*.f64 1/8 (-.f64 1 z)))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 2 (*.f64 x (+.f64 z -1))) -1/2)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 2 (-.f64 1 z)) (*.f64 x 1/2))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 1/2 (*.f64 x (*.f64 2 (-.f64 1 z))))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 x (/.f64 (+.f64 z -1) -2)) 2)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 x 1/2) (*.f64 2 (-.f64 1 z)))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 x 1/2) (-.f64 2 (+.f64 z z)))
(*.f64 x (*.f64 1/2 (-.f64 2 (+.f64 z z))))
(*.f64 (*.f64 2 (*.f64 x 8)) (*.f64 1/16 (-.f64 1 z)))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 -2 (*.f64 x (+.f64 (*.f64 z 1/2) -1/2)))
(*.f64 x (*.f64 (+.f64 (*.f64 z 1/2) -1/2) -2))
(*.f64 x (*.f64 -2 (+.f64 (*.f64 z 1/2) -1/2)))
(*.f64 (+.f64 (*.f64 z 1/2) -1/2) (*.f64 x -2))
(*.f64 (*.f64 2 (+.f64 z -1)) (/.f64 x -2))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 2 (+.f64 z -1)) (*.f64 -1 (*.f64 x 1/2)))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 2 (*.f64 2 (-.f64 1 z))) (*.f64 x 1/4))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 (-.f64 1 z) 1/2) (+.f64 x x))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 (+.f64 z -1) 1/2) (neg.f64 (+.f64 x x)))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 x (+.f64 (*.f64 z 1/2) -1/2)) -2)
(*.f64 x (*.f64 (+.f64 (*.f64 z 1/2) -1/2) -2))
(*.f64 x (*.f64 -2 (+.f64 (*.f64 z 1/2) -1/2)))
(*.f64 (+.f64 (*.f64 z 1/2) -1/2) (*.f64 x -2))
(*.f64 1/4 (*.f64 (*.f64 x (+.f64 z -1)) -4))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 x 1/4) (*.f64 2 (*.f64 2 (-.f64 1 z))))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 x 1/4) (-.f64 4 (*.f64 z 4)))
(*.f64 x (*.f64 1/4 (-.f64 4 (*.f64 z 4))))
(*.f64 (*.f64 x (-.f64 1/4 (*.f64 z 1/4))) 4)
(*.f64 x (*.f64 (-.f64 1/4 (*.f64 z 1/4)) 4))
(*.f64 4 (*.f64 x (-.f64 1/4 (*.f64 z 1/4))))
(*.f64 1/8 (*.f64 (-.f64 x (*.f64 x z)) 8))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 1/8 (-.f64 (*.f64 x 8) (*.f64 z (*.f64 x 8))))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 -1/2 (*.f64 2 (*.f64 x (+.f64 z -1))))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 (*.f64 2 (-.f64 1 z)) 1/2) x)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 (-.f64 1 z) 1/4) (*.f64 x 4))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (neg.f64 (*.f64 (+.f64 z -1) 1/2)) (+.f64 x x))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (neg.f64 (+.f64 x x)) (*.f64 (+.f64 z -1) 1/2))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (/.f64 x -2) (*.f64 2 (+.f64 z -1)))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (/.f64 (+.f64 z -1) -2) (+.f64 x x))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (-.f64 1/2 (*.f64 z 1/2)) (+.f64 x x))
(*.f64 (+.f64 x x) (-.f64 1/2 (*.f64 z 1/2)))
(*.f64 (-.f64 2 (+.f64 z z)) (*.f64 x 1/2))
(*.f64 x (*.f64 1/2 (-.f64 2 (+.f64 z z))))
(*.f64 (*.f64 x 1/2) (-.f64 2 (+.f64 z z)))
(*.f64 (*.f64 2 (*.f64 (-.f64 1 z) 1/2)) x)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(*.f64 (*.f64 2 (*.f64 (+.f64 z -1) 1/2)) (neg.f64 x))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(/.f64 (-.f64 x (*.f64 x z)) 1)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(/.f64 (*.f64 x (*.f64 2 (-.f64 1 z))) 2)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(/.f64 (*.f64 x (+.f64 z -1)) -1)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(/.f64 (*.f64 (*.f64 x (+.f64 z -1)) -4) 4)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(/.f64 (*.f64 (-.f64 x (*.f64 x z)) 8) 8)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(/.f64 (*.f64 2 (*.f64 x (+.f64 z -1))) -2)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(/.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)) 16)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(/.f64 (*.f64 x (-.f64 (*.f64 z 4) 4)) -4)
(*.f64 (-.f64 (*.f64 z 4) 4) (/.f64 x -4))
(/.f64 (*.f64 2 (*.f64 x (-.f64 (*.f64 z 4) 4))) -8)
(*.f64 (-.f64 (*.f64 z 4) 4) (/.f64 x -4))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8))) 32)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (-.f64 (*.f64 z 4) 4)))) -16)
(*.f64 (-.f64 (*.f64 z 4) 4) (/.f64 x -4))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)))) 64)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 x z)) 8))))) 128)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(pow.f64 (-.f64 x (*.f64 x z)) 1)
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))
(neg.f64 (*.f64 x (+.f64 z -1)))
(*.f64 (-.f64 1 z) x)
(-.f64 x (*.f64 z x))

eval36.0ms (0.2%)

Compiler

Compiled 1956 to 1205 computations (38.4% saved)

prune179.0ms (1.2%)

Pruning

10 alts after pruning (1 fresh and 9 done)

PrunedKeptTotal
New2020202
Fresh011
Picked011
Done088
Total20210212
Error
0.0b
Counts
212 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
20.1b
(-.f64 x (*.f64 x z))
17.2b
(+.f64 (*.f64 y (*.f64 z x)) x)
20.1b
(*.f64 (-.f64 1 z) x)
44.3b
(*.f64 z (*.f64 y x))
47.7b
(*.f64 z (neg.f64 x))
45.0b
(*.f64 y (*.f64 z x))
18.4b
(*.f64 x (+.f64 1 (*.f64 y z)))
31.6b
(*.f64 x (*.f64 (+.f64 -1 y) z))
46.3b
(*.f64 x (*.f64 z y))
34.5b
x
Compiler

Compiled 81 to 54 computations (33.3% saved)

regimes275.0ms (1.8%)

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

7 calls:

129.0ms
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
67.0ms
(-.f64 1 (*.f64 (-.f64 1 y) z))
23.0ms
z
21.0ms
(*.f64 (-.f64 1 y) z)
16.0ms
x
Results
ErrorSegmentsBranch
0.8b2x
2.1b1y
0.1b3z
0.1b3(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
0.1b3(-.f64 1 (*.f64 (-.f64 1 y) z))
0.1b3(*.f64 (-.f64 1 y) z)
2.1b1(-.f64 1 y)
Compiler

Compiled 153 to 89 computations (41.8% saved)

bsearch86.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
73.0ms
1.1873082923867991e-108
4.862454979098907e-104
13.0ms
-50619528470430.56
-2071825338351.0168
Results
82.0ms176×body256valid
2.0ms12×body256infinite
Compiler

Compiled 312 to 227 computations (27.2% saved)

regimes215.0ms (1.4%)

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

7 calls:

104.0ms
(*.f64 (-.f64 1 y) z)
25.0ms
z
23.0ms
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
22.0ms
y
15.0ms
x
Results
ErrorSegmentsBranch
0.8b2x
2.0b2y
0.1b3z
0.1b3(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
0.1b3(-.f64 1 (*.f64 (-.f64 1 y) z))
0.1b3(*.f64 (-.f64 1 y) z)
2.0b2(-.f64 1 y)
Compiler

Compiled 142 to 85 computations (40.1% saved)

bsearch13.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
10.0ms
34468461118.05716
1230261785242.728
3.0ms
-50619528470430.56
-2071825338351.0168
Results
11.0ms96×body256valid
0.0msbody256infinite
Compiler

Compiled 174 to 128 computations (26.4% saved)

regimes114.0ms (0.7%)

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

7 calls:

24.0ms
z
21.0ms
(*.f64 (-.f64 1 y) z)
20.0ms
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
14.0ms
(-.f64 1 (*.f64 (-.f64 1 y) z))
14.0ms
y
Results
ErrorSegmentsBranch
3.3b1x
2.0b2y
0.1b3z
0.1b3(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
0.1b3(-.f64 1 (*.f64 (-.f64 1 y) z))
0.1b3(*.f64 (-.f64 1 y) z)
2.0b2(-.f64 1 y)
Compiler

Compiled 133 to 80 computations (39.8% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2.153749436805581e+175
6.283644616529482e+176
0.0ms
-3.2618382331675552e+184
-1.6602875148485615e+177
Compiler

Compiled 18 to 14 computations (22.2% saved)

regimes260.0ms (1.7%)

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

3 calls:

217.0ms
x
20.0ms
z
20.0ms
y
Results
ErrorSegmentsBranch
12.1b7x
2.9b3y
0.6b3z
Compiler

Compiled 88 to 46 computations (47.7% saved)

bsearch17.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
9.0ms
4.527834778103447
15.671708698010798
7.0ms
-608096453439.5013
-335437385973.98334
Results
13.0ms144×body256valid
2.0ms13×body256infinite
Compiler

Compiled 216 to 158 computations (26.9% saved)

regimes269.0ms (1.7%)

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

3 calls:

123.0ms
x
76.0ms
y
68.0ms
z
Results
ErrorSegmentsBranch
13.7b10x
2.9b4y
3.9b3z
Compiler

Compiled 59 to 33 computations (44.1% saved)

bsearch137.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
8.69850675065622e-13
4.16286802311535
104.0ms
-36736.07074728173
-0.2794585548801859
16.0ms
-3.506154405580211e+220
-4.2475711582578004e+217
Results
128.0ms432×body256valid
3.0ms22×body256infinite
Compiler

Compiled 558 to 411 computations (26.3% saved)

regimes132.0ms (0.9%)

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

3 calls:

101.0ms
x
16.0ms
z
14.0ms
y
Results
ErrorSegmentsBranch
14.8b9x
8.6b3y
11.8b3z
Compiler

Compiled 52 to 29 computations (44.2% saved)

bsearch279.0ms (1.8%)

Algorithm
binary-search
Steps
TimeLeftRight
264.0ms
9.652901634771426e+158
6.889067560955935e+163
15.0ms
-1.5217809484915855e+48
-4.35289031739712e+45
Results
272.0ms272×body256valid
2.0ms17×body256infinite
Compiler

Compiled 324 to 235 computations (27.5% saved)

regimes912.0ms (5.9%)

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

3 calls:

334.0ms
x
189.0ms
y
150.0ms
z
Results
ErrorSegmentsBranch
26.6b11x
20.8b5y
15.2b9z
Compiler

Compiled 35 to 20 computations (42.9% saved)

bsearch623.0ms (4%)

Algorithm
binary-search
Steps
TimeLeftRight
20.0ms
2.328995091596568e+214
1.2199571016973619e+219
125.0ms
3.1717386546295576e+68
1.2984363819613273e+75
39.0ms
28302761967447.19
229434532139388.5
12.0ms
7.025471972764272e-11
1.5117303998156407e-9
272.0ms
-3.5293679593545234e-53
-2.428897923619469e-60
12.0ms
-8752629613071792.0
-180597814295834.75
132.0ms
-1.314483613454274e+47
-1.1529975253996054e+34
11.0ms
-2.7967408209444707e+94
-3.6986816410298138e+93
Results
569.0ms992×body256valid
42.0ms147×body256infinite
Compiler

Compiled 1024 to 726 computations (29.1% saved)

regimes97.0ms (0.6%)

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

3 calls:

48.0ms
x
31.0ms
z
17.0ms
y
Results
ErrorSegmentsBranch
26.8b13x
21.5b5y
15.2b9z
Compiler

Compiled 30 to 18 computations (40% saved)

bsearch114.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
19.0ms
2.328995091596568e+214
1.2199571016973619e+219
11.0ms
1.172201033638626e+80
1.5617892537097183e+81
11.0ms
28302761967447.19
229434532139388.5
12.0ms
7.025471972764272e-11
1.5117303998156407e-9
16.0ms
-3.5293679593545234e-53
-2.428897923619469e-60
14.0ms
-8752629613071792.0
-180597814295834.75
19.0ms
-1.314483613454274e+47
-1.1529975253996054e+34
12.0ms
-2.7967408209444707e+94
-3.6986816410298138e+93
Results
90.0ms944×body256valid
13.0ms135×body256infinite
Compiler

Compiled 973 to 690 computations (29.1% saved)

regimes63.0ms (0.4%)

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

3 calls:

27.0ms
x
19.0ms
z
16.0ms
y
Results
ErrorSegmentsBranch
29.2b9x
22.9b5y
17.6b5z
Compiler

Compiled 25 to 16 computations (36% saved)

bsearch53.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
11.0ms
28302761967447.19
229434532139388.5
13.0ms
7.025471972764272e-11
1.5117303998156407e-9
16.0ms
-3.5293679593545234e-53
-2.428897923619469e-60
13.0ms
-8752629613071792.0
-180597814295834.75
Results
46.0ms464×body256valid
2.0ms22×body256infinite
Compiler

Compiled 463 to 330 computations (28.7% saved)

regimes32.0ms (0.2%)

Accuracy

Total -41.0b remaining (-198.7%)

Threshold costs -41.0b (-198.7%)

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

3 calls:

14.0ms
x
9.0ms
z
8.0ms
y
Results
ErrorSegmentsBranch
32.0b5x
32.4b3y
20.6b3z
Compiler

Compiled 20 to 14 computations (30% saved)

bsearch33.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
0.00011604857013508527
4.527834778103447
19.0ms
-415060956.18400306
-6.458084417320803e-17
Results
29.0ms304×body256valid
1.0msbody256infinite
Compiler

Compiled 265 to 204 computations (23% saved)

simplify14.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0132985
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 z -9500000000000) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) (if (<=.f64 z 5164499756173817/5164499756173817179311838344006023748659411585658447025661318713081295244033682389259290706560275662871806343945494986752) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))))
(if (<=.f64 z -50000000000000) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) (if (<=.f64 z 600000000000) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)))
(if (<=.f64 (*.f64 (-.f64 1 y) z) -20000000000000000347133368339382573870453505234990611224736886462437054770952482249848261400637690118797395263364344950671345201327496585184494821583360107684373027385378753248237715456) (*.f64 z (*.f64 (-.f64 y 1) x)) (if (<=.f64 (*.f64 (-.f64 1 y) z) 39999999999999997486138098493475056401093230239587493100825002713807698410740413528150307135276363386938195289179600132648448207361831475318456484960712247853539567853690159104) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (*.f64 z (*.f64 (-.f64 y 1) x))))
(if (<=.f64 z -350000000000) (*.f64 z (*.f64 (-.f64 y 1) x)) (if (<=.f64 z 2589569785738035/562949953421312) (*.f64 x (+.f64 1 (*.f64 y z))) (*.f64 z (*.f64 (-.f64 y 1) x))))
(if (<=.f64 y -1220000000000000042055658048447550999922138195584166853592838389838660297520263590176996046332283787079646259397230918623007236190874074685773346698082278091019612015841303712615348567761990388933512729449134291532382208) (*.f64 z (*.f64 y x)) (if (<=.f64 y -1) (*.f64 x (+.f64 1 (*.f64 y z))) (if (<=.f64 y 1) (*.f64 (-.f64 1 z) x) (*.f64 x (+.f64 1 (*.f64 y z))))))
(if (<=.f64 y -9999999999999999931398190359470212947659194368) (*.f64 z (*.f64 y x)) (if (<=.f64 y 17599999999999999365680324237362651868900355031679916748806412160523024522797528500728976700836657154163298012291356303582536737923847118519370642595582901747712) (*.f64 (-.f64 1 z) x) (*.f64 z (*.f64 y x))))
(if (<=.f64 z -6499999999999999760888028767101830070317474073092020186931598635302221106223799185509521031168) (*.f64 z (neg.f64 x)) (if (<=.f64 z -84000000000000000437865279202133309957699796992) (*.f64 z (*.f64 y x)) (if (<=.f64 z -185000000000000) (*.f64 z (neg.f64 x)) (if (<=.f64 z -7597442378547053/883423532389192164791648750371459257913741948437809479060803100646309888) (*.f64 x (*.f64 z y)) (if (<=.f64 z 332454600394023/302231454903657293676544) x (if (<=.f64 z 55000000000000) (*.f64 y (*.f64 z x)) (if (<=.f64 z 1199999999999999992194639624726952485308668475297491590825325392876076531712) (*.f64 z (neg.f64 x)) (if (<=.f64 z 24000000000000000820297333909090880929075884009481258342880504702081624351088400779237167599115449147611712754195080475414431669313123713491884531042993683328398299973917154582046481469702856330582057791536706355200) (*.f64 z (*.f64 y x)) (*.f64 z (neg.f64 x))))))))))
(if (<=.f64 z -5199999999999999993977765793387376733967555272374268714777254373266679348111173761068624248832) (*.f64 z (neg.f64 x)) (if (<=.f64 z -880000000000000025524244681961693511680) (*.f64 y (*.f64 z x)) (if (<=.f64 z -185000000000000) (*.f64 z (neg.f64 x)) (if (<=.f64 z -6686066773453359/215679573337205118357336120696157045389097155380324579848828881993728) (*.f64 x (*.f64 z y)) (if (<=.f64 z 3191564163782621/19342813113834066795298816) x (if (<=.f64 z 50000000000000) (*.f64 y (*.f64 z x)) (if (<=.f64 z 1549999999999999993830434673694868617709860488079210521090102187994771809808416768) (*.f64 z (neg.f64 x)) (if (<=.f64 z 5400000000000000299384477723076911575007317684984211358137920963168348945403067142898371295345122439800412138652069896431198447278044737300779281290776889335828399797868330932813023954570883001535360339315954154471424) (*.f64 y (*.f64 z x)) (*.f64 z (neg.f64 x))))))))))
(if (<=.f64 z -310000000000000) (*.f64 z (neg.f64 x)) (if (<=.f64 z -1015937062247571/110427941548649020598956093796432407239217743554726184882600387580788736) (*.f64 x (*.f64 z y)) (if (<=.f64 z 7737125245533627/77371252455336267181195264) x (if (<=.f64 z 95000000000000) (*.f64 x (*.f64 z y)) (*.f64 z (neg.f64 x))))))
(if (<=.f64 z -1) (*.f64 z (neg.f64 x)) (if (<=.f64 z 1) x (*.f64 z (neg.f64 x))))
x
Outputs
(if (<=.f64 z -9500000000000) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) (if (<=.f64 z 5164499756173817/5164499756173817179311838344006023748659411585658447025661318713081295244033682389259290706560275662871806343945494986752) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))))
(if (<=.f64 z -50000000000000) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) (if (<=.f64 z 600000000000) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)))
(if (<=.f64 (*.f64 (-.f64 1 y) z) -20000000000000000347133368339382573870453505234990611224736886462437054770952482249848261400637690118797395263364344950671345201327496585184494821583360107684373027385378753248237715456) (*.f64 z (*.f64 (-.f64 y 1) x)) (if (<=.f64 (*.f64 (-.f64 1 y) z) 39999999999999997486138098493475056401093230239587493100825002713807698410740413528150307135276363386938195289179600132648448207361831475318456484960712247853539567853690159104) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (*.f64 z (*.f64 (-.f64 y 1) x))))
(if (<=.f64 z -350000000000) (*.f64 z (*.f64 (-.f64 y 1) x)) (if (<=.f64 z 2589569785738035/562949953421312) (*.f64 x (+.f64 1 (*.f64 y z))) (*.f64 z (*.f64 (-.f64 y 1) x))))
(if (<=.f64 y -1220000000000000042055658048447550999922138195584166853592838389838660297520263590176996046332283787079646259397230918623007236190874074685773346698082278091019612015841303712615348567761990388933512729449134291532382208) (*.f64 z (*.f64 y x)) (if (<=.f64 y -1) (*.f64 x (+.f64 1 (*.f64 y z))) (if (<=.f64 y 1) (*.f64 (-.f64 1 z) x) (*.f64 x (+.f64 1 (*.f64 y z))))))
(if (<=.f64 y -9999999999999999931398190359470212947659194368) (*.f64 z (*.f64 y x)) (if (<=.f64 y 17599999999999999365680324237362651868900355031679916748806412160523024522797528500728976700836657154163298012291356303582536737923847118519370642595582901747712) (*.f64 (-.f64 1 z) x) (*.f64 z (*.f64 y x))))
(if (<=.f64 z -6499999999999999760888028767101830070317474073092020186931598635302221106223799185509521031168) (*.f64 z (neg.f64 x)) (if (<=.f64 z -84000000000000000437865279202133309957699796992) (*.f64 z (*.f64 y x)) (if (<=.f64 z -185000000000000) (*.f64 z (neg.f64 x)) (if (<=.f64 z -7597442378547053/883423532389192164791648750371459257913741948437809479060803100646309888) (*.f64 x (*.f64 z y)) (if (<=.f64 z 332454600394023/302231454903657293676544) x (if (<=.f64 z 55000000000000) (*.f64 y (*.f64 z x)) (if (<=.f64 z 1199999999999999992194639624726952485308668475297491590825325392876076531712) (*.f64 z (neg.f64 x)) (if (<=.f64 z 24000000000000000820297333909090880929075884009481258342880504702081624351088400779237167599115449147611712754195080475414431669313123713491884531042993683328398299973917154582046481469702856330582057791536706355200) (*.f64 z (*.f64 y x)) (*.f64 z (neg.f64 x))))))))))
(if (<=.f64 z -5199999999999999993977765793387376733967555272374268714777254373266679348111173761068624248832) (*.f64 z (neg.f64 x)) (if (<=.f64 z -880000000000000025524244681961693511680) (*.f64 y (*.f64 z x)) (if (<=.f64 z -185000000000000) (*.f64 z (neg.f64 x)) (if (<=.f64 z -6686066773453359/215679573337205118357336120696157045389097155380324579848828881993728) (*.f64 x (*.f64 z y)) (if (<=.f64 z 3191564163782621/19342813113834066795298816) x (if (<=.f64 z 50000000000000) (*.f64 y (*.f64 z x)) (if (<=.f64 z 1549999999999999993830434673694868617709860488079210521090102187994771809808416768) (*.f64 z (neg.f64 x)) (if (<=.f64 z 5400000000000000299384477723076911575007317684984211358137920963168348945403067142898371295345122439800412138652069896431198447278044737300779281290776889335828399797868330932813023954570883001535360339315954154471424) (*.f64 y (*.f64 z x)) (*.f64 z (neg.f64 x))))))))))
(if (<=.f64 z -310000000000000) (*.f64 z (neg.f64 x)) (if (<=.f64 z -1015937062247571/110427941548649020598956093796432407239217743554726184882600387580788736) (*.f64 x (*.f64 z y)) (if (<=.f64 z 7737125245533627/77371252455336267181195264) x (if (<=.f64 z 95000000000000) (*.f64 x (*.f64 z y)) (*.f64 z (neg.f64 x))))))
(if (<=.f64 z -1) (*.f64 z (neg.f64 x)) (if (<=.f64 z 1) x (*.f64 z (neg.f64 x))))
x
Compiler

Compiled 423 to 240 computations (43.3% saved)

soundness0.0ms (0%)

end126.0ms (0.8%)

Compiler

Compiled 393 to 191 computations (51.4% saved)

Profiling

Loading profile data...