Details

Time bar (total: 12.4s)

analyze344.0ms (2.8%)

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)

sample3.6s (28.7%)

Results
3.4s8256×body256valid
95.0ms1045×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)

simplify11.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
2.1b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
2.1b
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
Compiler

Compiled 12 to 9 computations (25% saved)

localize117.0ms (0.9%)

Local error

Found 1 expressions with local error:

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

Compiled 31 to 20 computations (35.5% saved)

series4.0ms (0%)

Counts
1 → 36
Calls

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

rewrite241.0ms (1.9%)

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
01025
17425
216125
331125
456425
5125525
6274025
7469125
8600925
9711925
10727925
11746325
12764125
Stop Event
node limit
Counts
1 → 13
Calls
Call 1
Inputs
(*.f64 x (-.f64 1 (*.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)))))

simplify639.0ms (5.1%)

Algorithm
egg-herbie
Rules
3606×rational.json-simplify-2
2926×rational.json-simplify-35
1870×rational.json-simplify-53
806×exponential.json-simplify-26
758×rational.json-simplify-43
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0611207
11491207
22851153
36141153
419201153
535501153
640251153
741911153
843021153
944131153
1045221153
1153961153
1261581153
1363001153
1463001153
1563001153
1664091153
1765181153
1866271153
1969361153
2073051153
2177761153
Stop Event
node limit
Counts
49 → 34
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)
(+.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)
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 y (*.f64 z x)))
(+.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 y (*.f64 z x)))
(+.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 y (*.f64 z x)))
(+.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 y x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 y (*.f64 z x)))
(+.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 y (*.f64 z x)))
(+.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 y (*.f64 z x)))
(+.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 y x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 (-.f64 1 z) x))
(+.f64 (*.f64 x (-.f64 1 z)) (*.f64 y (*.f64 z x)))
(+.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 y (*.f64 z x)))
(+.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 y (*.f64 z x)))
(+.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 x (*.f64 x (*.f64 (+.f64 y -1) z)))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 x (*.f64 x (*.f64 (+.f64 y -1) z)))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 x (*.f64 x (*.f64 (+.f64 y -1) z)))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 x (*.f64 (+.f64 y -1) z))
(*.f64 x (*.f64 z (+.f64 y -1)))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 x (*.f64 x (*.f64 (+.f64 y -1) z)))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 x (*.f64 x (*.f64 (+.f64 y -1) z)))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 x (*.f64 x (*.f64 (+.f64 y -1) z)))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x)))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 x (*.f64 (+.f64 y -1) z))
(*.f64 x (*.f64 z (+.f64 y -1)))
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x)
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 x (*.f64 x (*.f64 (+.f64 y -1) z)))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x)
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 x (*.f64 x (*.f64 (+.f64 y -1) z)))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.f64 (*.f64 -1 (*.f64 z (*.f64 (-.f64 1 y) x))) x)
(+.f64 x (*.f64 z (*.f64 x (+.f64 y -1))))
(+.f64 x (*.f64 x (*.f64 (+.f64 y -1) z)))
(+.f64 x (*.f64 x (*.f64 z (+.f64 y -1))))
(+.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))))

eval8.0ms (0.1%)

Compiler

Compiled 357 to 238 computations (33.3% saved)

prune62.0ms (0.5%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New28634
Fresh000
Picked011
Done000
Total28735
Error
0.0b
Counts
35 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
4.8b
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x)
20.1b
(*.f64 (-.f64 1 z) x)
44.8b
(*.f64 z (*.f64 y x))
44.7b
(*.f64 y (*.f64 z x))
2.1b
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
31.3b
(*.f64 x (*.f64 (+.f64 y -1) z))
34.1b
x
Compiler

Compiled 108 to 74 computations (31.5% saved)

localize11.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)
4.6b
(*.f64 z (*.f64 (-.f64 y 1) x))
Compiler

Compiled 31 to 18 computations (41.9% saved)

series7.0ms (0.1%)

Counts
3 → 51
Calls

24 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(*.f64 z (*.f64 (-.f64 y 1) x))
1.0ms
z
@inf
(*.f64 z (*.f64 (-.f64 y 1) x))
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))

rewrite209.0ms (1.7%)

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
01057
17957
218257
334957
467557
5158857
6326957
7455957
8548257
9626157
10626157
11777257
Stop Event
node limit
Counts
3 → 63
Calls
Call 1
Inputs
(*.f64 z (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) 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 z (*.f64 x 1/2))) (*.f64 (+.f64 y -1) (*.f64 z (*.f64 x 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 (+.f64 y -1) (*.f64 x (+.f64 z z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 y -1) x) (*.f64 z 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 pow.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 1)))))
((#(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)))))
((#(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 pow.f64 (*.f64 (+.f64 y -1) x) 1)))))

simplify283.0ms (2.3%)

Algorithm
egg-herbie
Rules
2404×rational.json-simplify-2
1602×rational.json-simplify-35
1244×rational.json-simplify-51
1172×rational.json-simplify-1
1010×exponential.json-simplify-26
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01543126
13802364
28582364
322802364
448862364
556992364
661192364
761802364
862952364
974732364
Stop Event
node limit
Counts
114 → 95
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)))
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 -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 z (*.f64 x 1/2))) (*.f64 (+.f64 y -1) (*.f64 z (*.f64 x 1/2))))
(-.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 0)
(/.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 1)
(/.f64 (*.f64 (+.f64 y -1) (*.f64 x (+.f64 z z))) 2)
(/.f64 (*.f64 (*.f64 (+.f64 y -1) x) (*.f64 z 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)
(pow.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 1)
(-.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)
(+.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)
(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 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(*.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 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(*.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 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
x
(*.f64 z (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 x (*.f64 -1 (*.f64 z x)))
(+.f64 x (*.f64 z (neg.f64 x)))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(+.f64 (*.f64 y (*.f64 z x)) (+.f64 (*.f64 -1 (*.f64 z x)) x))
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 (+.f64 1 (*.f64 z (-.f64 y 1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 (*.f64 z (-.f64 y 1))) 1) x))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.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 x (-.f64 y 1))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 x (-.f64 y 1))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 x (-.f64 y 1))
(*.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 x (-.f64 y 1))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 x (-.f64 y 1))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 x (-.f64 y 1))
(*.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 x (-.f64 y 1))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 x (-.f64 y 1))
(+.f64 (*.f64 y x) (*.f64 -1 x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 x (-.f64 y 1))
(+.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 0)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(+.f64 0 (*.f64 z (*.f64 (+.f64 y -1) x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(+.f64 (*.f64 (+.f64 y -1) (*.f64 z (*.f64 x 1/2))) (*.f64 (+.f64 y -1) (*.f64 z (*.f64 x 1/2))))
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(-.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 0)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(/.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 1)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(/.f64 (*.f64 (+.f64 y -1) (*.f64 x (+.f64 z z))) 2)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(/.f64 (*.f64 (*.f64 (+.f64 y -1) x) (*.f64 z 4)) 4)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(/.f64 (*.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 8) 8)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(/.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 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(/.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 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(/.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 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(/.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 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(pow.f64 (*.f64 z (*.f64 (+.f64 y -1) x)) 1)
(+.f64 (*.f64 -1 (*.f64 z x)) (*.f64 z (*.f64 x y)))
(*.f64 z (*.f64 x (+.f64 -1 y)))
(*.f64 z (*.f64 x (-.f64 y 1)))
(-.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 0)
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(*.f64 1 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))))
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 y -1))))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1)
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1/2))
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(*.f64 2 (*.f64 (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))) x))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) x))
(*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 -1 y) 1/2))) (*.f64 x 2))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 -1 y) 1/2)))))
(*.f64 (+.f64 1/2 (*.f64 z (*.f64 (-.f64 y 1) 1/2))) (+.f64 x x))
(*.f64 2 (*.f64 (+.f64 1/2 (*.f64 (*.f64 z (+.f64 y -1)) 1/2)) x))
(*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 -1 y) 1/2))) (*.f64 x 2))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 -1 y) 1/2)))))
(*.f64 (+.f64 1/2 (*.f64 z (*.f64 (-.f64 y 1) 1/2))) (+.f64 x x))
(*.f64 4 (/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 4))
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(*.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2) 1/2)
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(*.f64 (+.f64 x x) (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))))
(*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 -1 y) 1/2))) (*.f64 x 2))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 -1 y) 1/2)))))
(*.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 z (*.f64 (+.f64 -1 y) 1/2))) (*.f64 x 2))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 -1 y) 1/2)))))
(*.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 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 1/2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2))
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 y -1) (*.f64 x (+.f64 z z))) (+.f64 x x)))
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(*.f64 (+.f64 1 (*.f64 z (+.f64 y -1))) x)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 (*.f64 2 (+.f64 1 (*.f64 z (+.f64 y -1)))) (*.f64 x 1/2))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 1/4 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 1 (*.f64 z (+.f64 y -1)))))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 z (+.f64 y (+.f64 y -2)))))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1/2) 2)
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(*.f64 (*.f64 1/2 (+.f64 1 (*.f64 z (+.f64 y -1)))) (+.f64 x x))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 (/.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 4) 4)
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(*.f64 (+.f64 (*.f64 (+.f64 y -1) (*.f64 x (+.f64 z z))) (+.f64 x x)) 1/2)
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(*.f64 (+.f64 2 (*.f64 z (+.f64 y (+.f64 y -2)))) (*.f64 x 1/2))
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 y -1) 1/2))) (+.f64 x x))
(*.f64 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 -1 y) 1/2))) (*.f64 x 2))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 -1 y) 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 1/2 (*.f64 z (*.f64 (+.f64 -1 y) 1/2))) (*.f64 x 2))
(*.f64 x (*.f64 2 (+.f64 1/2 (*.f64 z (*.f64 (+.f64 -1 y) 1/2)))))
(*.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 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(/.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 2) 2)
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(/.f64 (*.f64 x (*.f64 4 (+.f64 1 (*.f64 z (+.f64 y -1))))) 4)
(*.f64 x (+.f64 1 (*.f64 z (+.f64 -1 y))))
(*.f64 x (+.f64 1 (*.f64 z (-.f64 y 1))))
(/.f64 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8) 8)
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8)) 16)
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8))) 32)
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 8)))) 64)
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.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 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(pow.f64 (+.f64 x (*.f64 z (*.f64 (+.f64 y -1) x))) 1)
(+.f64 (*.f64 -1 (*.f64 z x)) (+.f64 x (*.f64 z (*.f64 x y))))
(+.f64 x (*.f64 z (*.f64 x (+.f64 -1 y))))
(+.f64 x (*.f64 z (*.f64 x (-.f64 y 1))))
(+.f64 (*.f64 (+.f64 y -1) x) 0)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 x (-.f64 y 1))
(+.f64 0 (*.f64 (+.f64 y -1) x))
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 x (-.f64 y 1))
(+.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 x (-.f64 y 1))
(-.f64 (*.f64 (+.f64 y -1) x) 0)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 x (-.f64 y 1))
(/.f64 (*.f64 (+.f64 y -1) x) 1)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 x (-.f64 y 1))
(/.f64 (*.f64 (+.f64 y -1) (+.f64 x x)) 2)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 x (-.f64 y 1))
(/.f64 (*.f64 (+.f64 y -1) (*.f64 x 4)) 4)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 x (-.f64 y 1))
(/.f64 (*.f64 (*.f64 (+.f64 y -1) x) 8) 8)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 x (-.f64 y 1))
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y -1) x) 8)) 16)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 x (-.f64 y 1))
(/.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 x (-.f64 y 1))
(/.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 x (-.f64 y 1))
(/.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 x (-.f64 y 1))
(pow.f64 (*.f64 (+.f64 y -1) x) 1)
(+.f64 (*.f64 -1 x) (*.f64 x y))
(*.f64 x (+.f64 -1 y))
(*.f64 x (-.f64 y 1))

localize94.0ms (0.8%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 5 computations (64.3% saved)

series3.0ms (0%)

Counts
1 → 0
Calls

9 calls:

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

rewrite235.0ms (1.9%)

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 y (*.f64 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 y (*.f64 (*.f64 z x) 1/2)) (*.f64 y (*.f64 (*.f64 z x) 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 y (*.f64 z (+.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 y (*.f64 x 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 z (*.f64 x 8))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y (*.f64 z (*.f64 x 8)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 z (*.f64 x 8))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 z (*.f64 x 8)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 z (*.f64 x 8))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 z (*.f64 x 8)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 z x)) 1)))))

simplify440.0ms (3.5%)

Algorithm
egg-herbie
Rules
4300×rational.json-simplify-53
3572×rational.json-simplify-35
2382×rational.json-simplify-2
1568×exponential.json-simplify-26
696×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
048182
1135182
2286182
3717182
41978182
53612182
64108182
74441182
84639182
94831182
105695182
116450182
126450182
136450182
146641182
156832182
167023182
177214182
187405182
Stop Event
node limit
Counts
14 → 15
Calls
Call 1
Inputs
(+.f64 (*.f64 y (*.f64 z x)) 0)
(+.f64 0 (*.f64 y (*.f64 z x)))
(+.f64 (*.f64 y (*.f64 (*.f64 z x) 1/2)) (*.f64 y (*.f64 (*.f64 z x) 1/2)))
(-.f64 (*.f64 y (*.f64 z x)) 0)
(/.f64 (*.f64 y (*.f64 z x)) 1)
(/.f64 (*.f64 y (*.f64 z (+.f64 x x))) 2)
(/.f64 (*.f64 z (*.f64 y (*.f64 x 4))) 4)
(/.f64 (*.f64 y (*.f64 z (*.f64 x 8))) 8)
(/.f64 (*.f64 2 (*.f64 y (*.f64 z (*.f64 x 8)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 z (*.f64 x 8))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 z (*.f64 x 8)))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 z (*.f64 x 8))))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 z (*.f64 x 8)))))))) 256)
(pow.f64 (*.f64 y (*.f64 z x)) 1)
Outputs
(+.f64 (*.f64 y (*.f64 z x)) 0)
(*.f64 y (*.f64 z x))
(+.f64 0 (*.f64 y (*.f64 z x)))
(*.f64 y (*.f64 z x))
(+.f64 (*.f64 y (*.f64 (*.f64 z x) 1/2)) (*.f64 y (*.f64 (*.f64 z x) 1/2)))
(*.f64 y (*.f64 z x))
(-.f64 (*.f64 y (*.f64 z x)) 0)
(*.f64 y (*.f64 z x))
(/.f64 (*.f64 y (*.f64 z x)) 1)
(*.f64 y (*.f64 z x))
(/.f64 (*.f64 y (*.f64 z (+.f64 x x))) 2)
(*.f64 y (*.f64 z x))
(/.f64 (*.f64 z (*.f64 y (*.f64 x 4))) 4)
(*.f64 y (*.f64 z x))
(/.f64 (*.f64 y (*.f64 z (*.f64 x 8))) 8)
(*.f64 y (*.f64 z x))
(/.f64 (*.f64 2 (*.f64 y (*.f64 z (*.f64 x 8)))) 16)
(*.f64 y (*.f64 z x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 z (*.f64 x 8))))) 32)
(*.f64 y (*.f64 z x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 z (*.f64 x 8)))))) 64)
(*.f64 y (*.f64 z x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 z (*.f64 x 8))))))) 128)
(*.f64 y (*.f64 z x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 z (*.f64 x 8)))))))) 256)
(*.f64 y (*.f64 z x))
(pow.f64 (*.f64 y (*.f64 z x)) 1)
(*.f64 y (*.f64 z x))

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

rewrite236.0ms (1.9%)

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

simplify468.0ms (3.8%)

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)

series1.0ms (0%)

Counts
1 → 12
Calls

6 calls:

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

rewrite201.0ms (1.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15513
212813
323813
442813
591213
6233813
7422913
8530613
9656613
10766613
11784813
Stop Event
node limit
Counts
1 → 22
Calls
Call 1
Inputs
(*.f64 (-.f64 1 z) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 z) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 1 z) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 x (+.f64 z -1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (*.f64 (+.f64 x x) (*.f64 (+.f64 z -1) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 z) (*.f64 x 1/2)) (*.f64 (-.f64 1 z) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 1 z) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 x (+.f64 z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (+.f64 x x) (*.f64 (+.f64 z -1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 z) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 z) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 z) (*.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 1 z) (*.f64 x 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 z) (*.f64 x 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 z -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x x) (*.f64 (+.f64 z -1) 1/2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 z) (*.f64 x 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 z) (*.f64 x 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 z) (*.f64 x 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1 z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 x (+.f64 z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (+.f64 x x) (*.f64 (+.f64 z -1) 1/2)))))))

simplify467.0ms (3.8%)

Algorithm
egg-herbie
Rules
2980×rational.json-simplify-35
1934×rational.json-simplify-2
1694×rational.json-simplify-53
1000×rational.json-simplify-1
916×rational.json-simplify-43
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
063484
1166462
2329462
3715462
42346462
54047462
64669462
74908462
85097462
95304462
106040462
117109462
127195462
137263462
147284462
157466462
167637462
177804462
187969462
Stop Event
node limit
Counts
34 → 32
Calls
Call 1
Inputs
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 (-.f64 1 z) x) 0)
(+.f64 0 (*.f64 (-.f64 1 z) x))
(+.f64 -1 (-.f64 1 (*.f64 x (+.f64 z -1))))
(+.f64 -1 (-.f64 1 (*.f64 (+.f64 x x) (*.f64 (+.f64 z -1) 1/2))))
(+.f64 (*.f64 (-.f64 1 z) (*.f64 x 1/2)) (*.f64 (-.f64 1 z) (*.f64 x 1/2)))
(-.f64 (*.f64 (-.f64 1 z) x) 0)
(-.f64 0 (*.f64 x (+.f64 z -1)))
(-.f64 0 (*.f64 (+.f64 x x) (*.f64 (+.f64 z -1) 1/2)))
(/.f64 (*.f64 (-.f64 1 z) x) 1)
(/.f64 (*.f64 (-.f64 1 z) (+.f64 x x)) 2)
(/.f64 (*.f64 (-.f64 1 z) (*.f64 x 4)) 4)
(/.f64 (*.f64 (-.f64 1 z) (*.f64 x 8)) 8)
(/.f64 (*.f64 2 (*.f64 (-.f64 1 z) (*.f64 x 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 z) (*.f64 x 8)))) 32)
(/.f64 (*.f64 x (+.f64 z -1)) -1)
(/.f64 (*.f64 (+.f64 x x) (*.f64 (+.f64 z -1) 1/2)) -1)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 z) (*.f64 x 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 z) (*.f64 x 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 z) (*.f64 x 8))))))) 256)
(pow.f64 (*.f64 (-.f64 1 z) x) 1)
(neg.f64 (*.f64 x (+.f64 z -1)))
(neg.f64 (*.f64 (+.f64 x x) (*.f64 (+.f64 z -1) 1/2)))
Outputs
x
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 x (*.f64 -1 (*.f64 x z)))
(+.f64 x (*.f64 z (neg.f64 x)))
(+.f64 x (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 x (*.f64 -1 (*.f64 x z)))
(+.f64 x (*.f64 z (neg.f64 x)))
(+.f64 x (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 x (*.f64 -1 (*.f64 x z)))
(+.f64 x (*.f64 z (neg.f64 x)))
(+.f64 x (*.f64 x (neg.f64 z)))
(*.f64 -1 (*.f64 z x))
(*.f64 -1 (*.f64 x z))
(*.f64 z (neg.f64 x))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 x (*.f64 -1 (*.f64 x z)))
(+.f64 x (*.f64 z (neg.f64 x)))
(+.f64 x (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 x (*.f64 -1 (*.f64 x z)))
(+.f64 x (*.f64 z (neg.f64 x)))
(+.f64 x (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 x (*.f64 -1 (*.f64 x z)))
(+.f64 x (*.f64 z (neg.f64 x)))
(+.f64 x (*.f64 x (neg.f64 z)))
(*.f64 -1 (*.f64 z x))
(*.f64 -1 (*.f64 x z))
(*.f64 z (neg.f64 x))
(*.f64 x (neg.f64 z))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 x (*.f64 -1 (*.f64 x z)))
(+.f64 x (*.f64 z (neg.f64 x)))
(+.f64 x (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 x (*.f64 -1 (*.f64 x z)))
(+.f64 x (*.f64 z (neg.f64 x)))
(+.f64 x (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 -1 (*.f64 z x)) x)
(+.f64 x (*.f64 -1 (*.f64 x z)))
(+.f64 x (*.f64 z (neg.f64 x)))
(+.f64 x (*.f64 x (neg.f64 z)))
(+.f64 (*.f64 (-.f64 1 z) x) 0)
(*.f64 x (-.f64 1 z))
(+.f64 0 (*.f64 (-.f64 1 z) x))
(*.f64 x (-.f64 1 z))
(+.f64 -1 (-.f64 1 (*.f64 x (+.f64 z -1))))
(*.f64 x (-.f64 1 z))
(+.f64 -1 (-.f64 1 (*.f64 (+.f64 x x) (*.f64 (+.f64 z -1) 1/2))))
(*.f64 x (-.f64 1 z))
(+.f64 (*.f64 (-.f64 1 z) (*.f64 x 1/2)) (*.f64 (-.f64 1 z) (*.f64 x 1/2)))
(*.f64 x (-.f64 1 z))
(-.f64 (*.f64 (-.f64 1 z) x) 0)
(*.f64 x (-.f64 1 z))
(-.f64 0 (*.f64 x (+.f64 z -1)))
(*.f64 x (-.f64 1 z))
(-.f64 0 (*.f64 (+.f64 x x) (*.f64 (+.f64 z -1) 1/2)))
(*.f64 x (-.f64 1 z))
(/.f64 (*.f64 (-.f64 1 z) x) 1)
(*.f64 x (-.f64 1 z))
(/.f64 (*.f64 (-.f64 1 z) (+.f64 x x)) 2)
(*.f64 x (-.f64 1 z))
(/.f64 (*.f64 (-.f64 1 z) (*.f64 x 4)) 4)
(*.f64 x (-.f64 1 z))
(/.f64 (*.f64 (-.f64 1 z) (*.f64 x 8)) 8)
(*.f64 x (-.f64 1 z))
(/.f64 (*.f64 2 (*.f64 (-.f64 1 z) (*.f64 x 8))) 16)
(*.f64 x (-.f64 1 z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 z) (*.f64 x 8)))) 32)
(*.f64 x (-.f64 1 z))
(/.f64 (*.f64 x (+.f64 z -1)) -1)
(*.f64 x (-.f64 1 z))
(/.f64 (*.f64 (+.f64 x x) (*.f64 (+.f64 z -1) 1/2)) -1)
(*.f64 x (-.f64 1 z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 z) (*.f64 x 8))))) 64)
(*.f64 x (-.f64 1 z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 z) (*.f64 x 8)))))) 128)
(*.f64 x (-.f64 1 z))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 1 z) (*.f64 x 8))))))) 256)
(*.f64 x (-.f64 1 z))
(pow.f64 (*.f64 (-.f64 1 z) x) 1)
(*.f64 x (-.f64 1 z))
(neg.f64 (*.f64 x (+.f64 z -1)))
(*.f64 x (-.f64 1 z))
(neg.f64 (*.f64 (+.f64 x x) (*.f64 (+.f64 z -1) 1/2)))
(*.f64 x (-.f64 1 z))

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 22 to 13 computations (40.9% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite206.0ms (1.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
16619
215219
330019
455819
5128519
6279619
7449019
8527219
9660419
10748519
11748519
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 x (*.f64 (+.f64 y -1) z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (+.f64 y -1) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 (+.f64 y -1) z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y -1) (*.f64 z (*.f64 x 1/2))) (*.f64 (+.f64 y -1) (*.f64 z (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 (+.f64 y -1) z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 y -1) z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 y -1) z) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y -1) (*.f64 x (*.f64 z 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 (+.f64 y -1) z)) 1)))))

simplify191.0ms (1.5%)

Algorithm
egg-herbie
Rules
3158×rational.json-simplify-2
1378×rational.json-simplify-35
1134×rational.json-simplify-53
1108×rational.json-simplify-43
1050×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
057932
1154930
2332930
3848930
42742930
55632930
66637930
76867930
86897930
96953930
Stop Event
node limit
Counts
50 → 25
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 (*.f64 x (*.f64 (+.f64 y -1) z)) 0)
(+.f64 0 (*.f64 x (*.f64 (+.f64 y -1) z)))
(+.f64 (*.f64 (+.f64 y -1) (*.f64 z (*.f64 x 1/2))) (*.f64 (+.f64 y -1) (*.f64 z (*.f64 x 1/2))))
(-.f64 (*.f64 x (*.f64 (+.f64 y -1) z)) 0)
(/.f64 (*.f64 x (*.f64 (+.f64 y -1) z)) 1)
(/.f64 (*.f64 (*.f64 (+.f64 y -1) z) (+.f64 x x)) 2)
(/.f64 (*.f64 (+.f64 y -1) (*.f64 x (*.f64 z 4))) 4)
(/.f64 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1))) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1)))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1))))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1)))))))) 256)
(pow.f64 (*.f64 x (*.f64 (+.f64 y -1) z)) 1)
Outputs
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 -1 (*.f64 z x))
(*.f64 z (neg.f64 x))
(neg.f64 (*.f64 z x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 y (*.f64 z x))
(*.f64 z (*.f64 x y))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 y (*.f64 z x)) (*.f64 -1 (*.f64 z x)))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(*.f64 z (*.f64 (-.f64 y 1) x))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 x (*.f64 (+.f64 y -1) z)) 0)
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 0 (*.f64 x (*.f64 (+.f64 y -1) z)))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(+.f64 (*.f64 (+.f64 y -1) (*.f64 z (*.f64 x 1/2))) (*.f64 (+.f64 y -1) (*.f64 z (*.f64 x 1/2))))
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(-.f64 (*.f64 x (*.f64 (+.f64 y -1) z)) 0)
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 x (*.f64 (+.f64 y -1) z)) 1)
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 (*.f64 (+.f64 y -1) z) (+.f64 x x)) 2)
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 (+.f64 y -1) (*.f64 x (*.f64 z 4))) 4)
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1))) 8)
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 2 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1)))) 16)
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1))))) 32)
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1)))))) 64)
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1))))))) 128)
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z 8) (*.f64 x (+.f64 y -1)))))))) 256)
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))
(pow.f64 (*.f64 x (*.f64 (+.f64 y -1) z)) 1)
(*.f64 x (*.f64 z (+.f64 y -1)))
(*.f64 (*.f64 z x) (+.f64 y -1))
(*.f64 z (*.f64 x (+.f64 y -1)))

eval277.0ms (2.2%)

Compiler

Compiled 1995 to 1268 computations (36.4% saved)

prune28.0ms (0.2%)

Pruning

9 alts after pruning (4 fresh and 5 done)

PrunedKeptTotal
New1803183
Fresh011
Picked011
Done145
Total1819190
Error
0.0b
Counts
190 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
20.1b
(+.f64 (*.f64 z (neg.f64 x)) x)
16.3b
(+.f64 (*.f64 y (*.f64 z x)) x)
20.1b
(*.f64 (-.f64 1 z) x)
44.8b
(*.f64 z (*.f64 y x))
48.5b
(*.f64 z (neg.f64 x))
44.7b
(*.f64 y (*.f64 z x))
2.1b
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
31.3b
(*.f64 x (*.f64 (+.f64 y -1) z))
34.1b
x
Compiler

Compiled 76 to 52 computations (31.6% saved)

localize5.0ms (0%)

Compiler

Compiled 11 to 5 computations (54.5% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

rewrite257.0ms (2.1%)

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

simplify205.0ms (1.7%)

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

localize57.0ms (0.5%)

Compiler

Compiled 17 to 6 computations (64.7% saved)

eval11.0ms (0.1%)

Compiler

Compiled 640 to 376 computations (41.3% saved)

prune119.0ms (1%)

Pruning

11 alts after pruning (3 fresh and 8 done)

PrunedKeptTotal
New57259
Fresh011
Picked011
Done077
Total571168
Error
0.0b
Counts
68 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
20.1b
(+.f64 (*.f64 z (neg.f64 x)) x)
16.3b
(+.f64 (*.f64 y (*.f64 z x)) x)
20.1b
(*.f64 (-.f64 1 z) x)
16.5b
(*.f64 (+.f64 (*.f64 y z) 1) x)
44.8b
(*.f64 z (*.f64 y x))
48.5b
(*.f64 z (neg.f64 x))
44.7b
(*.f64 y (*.f64 z x))
2.1b
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
31.3b
(*.f64 x (*.f64 (+.f64 y -1) z))
44.9b
(*.f64 x (*.f64 y z))
34.1b
x
Compiler

Compiled 94 to 64 computations (31.9% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

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

rewrite240.0ms (1.9%)

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 y z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (*.f64 y z) 1/2)) (*.f64 x (*.f64 (*.f64 y z) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y (+.f64 z z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x (*.f64 z 4))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y (*.f64 z 8))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 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 y (*.f64 z 8)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 y z)) 1)))))

simplify481.0ms (3.9%)

Algorithm
egg-herbie
Rules
4324×rational.json-simplify-53
3824×rational.json-simplify-35
2442×rational.json-simplify-2
1568×exponential.json-simplify-26
682×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
050650
1139650
2292650
3736650
41988650
53653650
64149650
74512650
84729650
94940650
105829650
116577650
126577650
136577650
146787650
156997650
167207650
177417650
187627650
Stop Event
node limit
Counts
50 → 17
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 y z)) 0)
(+.f64 0 (*.f64 x (*.f64 y z)))
(+.f64 (*.f64 x (*.f64 (*.f64 y z) 1/2)) (*.f64 x (*.f64 (*.f64 y z) 1/2)))
(-.f64 (*.f64 x (*.f64 y z)) 0)
(/.f64 (*.f64 x (*.f64 y z)) 1)
(/.f64 (*.f64 x (*.f64 y (+.f64 z z))) 2)
(/.f64 (*.f64 y (*.f64 x (*.f64 z 4))) 4)
(/.f64 (*.f64 x (*.f64 y (*.f64 z 8))) 8)
(/.f64 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8)))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8))))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8)))))))) 256)
(pow.f64 (*.f64 x (*.f64 y z)) 1)
Outputs
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 x (*.f64 y z)) 0)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(+.f64 0 (*.f64 x (*.f64 y z)))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(+.f64 (*.f64 x (*.f64 (*.f64 y z) 1/2)) (*.f64 x (*.f64 (*.f64 y z) 1/2)))
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(-.f64 (*.f64 x (*.f64 y z)) 0)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 x (*.f64 y z)) 1)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 x (*.f64 y (+.f64 z z))) 2)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 y (*.f64 x (*.f64 z 4))) 4)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 x (*.f64 y (*.f64 z 8))) 8)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8)))) 16)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8))))) 32)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8)))))) 64)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8))))))) 128)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 y (*.f64 z 8)))))))) 256)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))
(pow.f64 (*.f64 x (*.f64 y z)) 1)
(*.f64 y (*.f64 z x))
(*.f64 x (*.f64 y z))
(*.f64 z (*.f64 y x))

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 22 to 10 computations (54.5% saved)

series108.0ms (0.9%)

Counts
1 → 24
Calls

9 calls:

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

rewrite204.0ms (1.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
16919
215119
328419
452219
5114119
6272319
7471719
8567819
9688919
10785419
11785419
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 y z) 1) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 y z) 1) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 (*.f64 y z) 1) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 y z) 1) (*.f64 x 1/2)) (*.f64 (+.f64 (*.f64 y z) 1) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 (*.f64 y z) 1) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y z) 1) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 2 (*.f64 z (+.f64 y y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y z) 1) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 (*.f64 y z) 1) x) 1)))))

simplify783.0ms (6.3%)

Algorithm
egg-herbie
Rules
2838×rational.json-simplify-2
2806×rational.json-simplify-35
1326×rational.json-simplify-53
1292×rational.json-simplify-1
1214×rational.json-simplify-48
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
051674
1133674
2250674
3506674
41659674
53429674
63988674
74201674
84397674
94573674
104733674
115634674
126430674
136457674
146533674
156563674
166651674
176702674
186903674
197090674
207289674
217472674
227625674
237951674
Stop Event
node limit
Counts
38 → 26
Calls
Call 1
Inputs
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 (+.f64 (*.f64 y z) 1) x) 0)
(+.f64 0 (*.f64 (+.f64 (*.f64 y z) 1) x))
(+.f64 (*.f64 (+.f64 (*.f64 y z) 1) (*.f64 x 1/2)) (*.f64 (+.f64 (*.f64 y z) 1) (*.f64 x 1/2)))
(-.f64 (*.f64 (+.f64 (*.f64 y z) 1) x) 0)
(/.f64 (*.f64 (+.f64 (*.f64 y z) 1) x) 1)
(/.f64 (*.f64 x (+.f64 2 (*.f64 z (+.f64 y y)))) 2)
(/.f64 (*.f64 (+.f64 (*.f64 y z) 1) (*.f64 x 4)) 4)
(/.f64 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1)) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1))))))) 256)
(pow.f64 (*.f64 (+.f64 (*.f64 y z) 1) x) 1)
Outputs
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 x z))
(*.f64 x (*.f64 y z))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 x z))
(*.f64 x (*.f64 y z))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
x
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 x z))
(*.f64 x (*.f64 y z))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
(*.f64 y (*.f64 z x))
(*.f64 y (*.f64 x z))
(*.f64 x (*.f64 y z))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
(+.f64 (*.f64 y (*.f64 z x)) x)
(+.f64 x (*.f64 y (*.f64 x z)))
(+.f64 x (*.f64 x (*.f64 y z)))
(+.f64 (*.f64 (+.f64 (*.f64 y z) 1) x) 0)
(*.f64 x (+.f64 (*.f64 y z) 1))
(+.f64 0 (*.f64 (+.f64 (*.f64 y z) 1) x))
(*.f64 x (+.f64 (*.f64 y z) 1))
(+.f64 (*.f64 (+.f64 (*.f64 y z) 1) (*.f64 x 1/2)) (*.f64 (+.f64 (*.f64 y z) 1) (*.f64 x 1/2)))
(*.f64 x (+.f64 (*.f64 y z) 1))
(-.f64 (*.f64 (+.f64 (*.f64 y z) 1) x) 0)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 (+.f64 (*.f64 y z) 1) x) 1)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 x (+.f64 2 (*.f64 z (+.f64 y y)))) 2)
(*.f64 (+.f64 2 (*.f64 z (+.f64 y y))) (/.f64 x 2))
(*.f64 x (/.f64 (+.f64 2 (*.f64 z (+.f64 y y))) 2))
(*.f64 (*.f64 x 1/2) (+.f64 2 (*.f64 z (+.f64 y y))))
(*.f64 1/2 (*.f64 x (+.f64 2 (*.f64 z (+.f64 y y)))))
(/.f64 (*.f64 (+.f64 (*.f64 y z) 1) (*.f64 x 4)) 4)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1)) 8)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1))) 16)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1)))) 32)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1))))) 64)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1)))))) 128)
(*.f64 x (+.f64 (*.f64 y z) 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x 8) (+.f64 (*.f64 y z) 1))))))) 256)
(*.f64 x (+.f64 (*.f64 y z) 1))
(pow.f64 (*.f64 (+.f64 (*.f64 y z) 1) x) 1)
(*.f64 x (+.f64 (*.f64 y z) 1))

eval7.0ms (0.1%)

Compiler

Compiled 440 to 253 computations (42.5% saved)

prune64.0ms (0.5%)

Pruning

12 alts after pruning (2 fresh and 10 done)

PrunedKeptTotal
New42143
Fresh011
Picked011
Done099
Total421254
Error
0.0b
Counts
54 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
20.1b
(+.f64 (*.f64 z (neg.f64 x)) x)
16.3b
(+.f64 (*.f64 y (*.f64 z x)) x)
16.5b
(+.f64 x (*.f64 x (*.f64 y z)))
20.1b
(*.f64 (-.f64 1 z) x)
16.5b
(*.f64 (+.f64 (*.f64 y z) 1) x)
44.8b
(*.f64 z (*.f64 y x))
48.5b
(*.f64 z (neg.f64 x))
44.7b
(*.f64 y (*.f64 z x))
2.1b
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
31.3b
(*.f64 x (*.f64 (+.f64 y -1) z))
44.9b
(*.f64 x (*.f64 y z))
34.1b
x
Compiler

Compiled 104 to 70 computations (32.7% saved)

regimes162.0ms (1.3%)

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

7 calls:

60.0ms
x
57.0ms
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
13.0ms
(*.f64 (-.f64 1 y) z)
9.0ms
(-.f64 1 (*.f64 (-.f64 1 y) z))
7.0ms
y
Results
ErrorSegmentsBranch
0.1b3x
2.1b1y
2.1b1z
0.6b2(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
0.3b2(-.f64 1 (*.f64 (-.f64 1 y) z))
0.3b2(*.f64 (-.f64 1 y) z)
2.1b1(-.f64 1 y)
Compiler

Compiled 128 to 72 computations (43.8% saved)

bsearch22.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
2.314422999620398e+49
1.6008617085020453e+55
8.0ms
-3.992048433816463e+53
-9.899213346760613e+36
Results
17.0ms176×body256valid
3.0ms15×body256infinite
Compiler

Compiled 304 to 223 computations (26.6% saved)

regimes67.0ms (0.5%)

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

7 calls:

14.0ms
(*.f64 (-.f64 1 y) z)
13.0ms
(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
10.0ms
(-.f64 1 (*.f64 (-.f64 1 y) z))
8.0ms
z
8.0ms
x
Results
ErrorSegmentsBranch
2.1b1x
2.1b1y
2.1b1z
0.6b2(*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))
0.3b2(-.f64 1 (*.f64 (-.f64 1 y) z))
0.3b2(*.f64 (-.f64 1 y) z)
2.1b1(-.f64 1 y)
Compiler

Compiled 119 to 67 computations (43.7% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
5.986034572536507e+279
4.417343049299619e+287
Compiler

Compiled 18 to 14 computations (22.2% saved)

regimes80.0ms (0.6%)

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

3 calls:

37.0ms
x
22.0ms
z
19.0ms
y
Results
ErrorSegmentsBranch
10.7b6x
2.4b3y
3.2b3z
Compiler

Compiled 74 to 33 computations (55.4% saved)

bsearch32.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
0.2081287376056489
53501512.03183653
17.0ms
-198.78324687173262
-5.091273205869359e-9
Results
28.0ms304×body256valid
Compiler

Compiled 417 to 280 computations (32.9% saved)

regimes69.0ms (0.6%)

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

3 calls:

33.0ms
x
17.0ms
z
17.0ms
y
Results
ErrorSegmentsBranch
12.0b6x
2.6b3y
3.2b3z
Compiler

Compiled 67 to 32 computations (52.2% saved)

bsearch69.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
0.2081287376056489
53501512.03183653
53.0ms
-198.78324687173262
-5.091273205869359e-9
Results
65.0ms304×body256valid
Compiler

Compiled 417 to 290 computations (30.5% saved)

regimes227.0ms (1.8%)

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

3 calls:

77.0ms
y
75.0ms
x
73.0ms
z
Results
ErrorSegmentsBranch
12.0b6x
2.6b3y
3.2b3z
Compiler

Compiled 60 to 31 computations (48.3% saved)

bsearch80.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
0.2081287376056489
53501512.03183653
65.0ms
-198.78324687173262
-5.091273205869359e-9
Results
76.0ms304×body256valid
Compiler

Compiled 417 to 299 computations (28.3% saved)

regimes234.0ms (1.9%)

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

3 calls:

91.0ms
z
77.0ms
x
64.0ms
y
Results
ErrorSegmentsBranch
15.9b5x
10.1b3y
10.3b7z
Compiler

Compiled 53 to 28 computations (47.2% saved)

bsearch31.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
3.63287358011289e+96
2.855313922989939e+98
18.0ms
-3.3042676572216775e+51
-2.8525228060678444e+38
Results
25.0ms272×body256valid
3.0ms14×body256infinite
Compiler

Compiled 341 to 235 computations (31.1% saved)

regimes124.0ms (1%)

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

3 calls:

91.0ms
z
18.0ms
y
14.0ms
x
Results
ErrorSegmentsBranch
18.3b3x
10.1b3y
16.7b7z
Compiler

Compiled 40 to 23 computations (42.5% saved)

bsearch32.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
3.63287358011289e+96
2.855313922989939e+98
18.0ms
-3.3042676572216775e+51
-2.8525228060678444e+38
Results
27.0ms272×body256valid
1.0ms13×body256infinite
Compiler

Compiled 324 to 235 computations (27.5% saved)

regimes71.0ms (0.6%)

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

3 calls:

36.0ms
y
20.0ms
z
13.0ms
x
Results
ErrorSegmentsBranch
29.7b3x
21.6b7y
20.1b5z
Compiler

Compiled 35 to 20 computations (42.9% saved)

bsearch49.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
10.0ms
2.477071193352281e-5
0.0001209825499612223
16.0ms
2.7821784972133323e-83
2.3402699716476477e-79
8.0ms
2.583891450846741e-160
1.0108313108831562e-159
14.0ms
-10.672818786210458
-0.0009698133203610956
Results
39.0ms432×body256valid
4.0ms24×body256infinite
Compiler

Compiled 382 to 284 computations (25.7% saved)

regimes30.0ms (0.2%)

Accuracy

Total -40.5b remaining (-191.7%)

Threshold costs -40.5b (-191.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:

13.0ms
y
8.0ms
z
8.0ms
x
Results
ErrorSegmentsBranch
33.0b3x
31.7b5y
21.1b3z
Compiler

Compiled 20 to 14 computations (30% saved)

bsearch26.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
11.0ms
2.477071193352281e-5
0.0001209825499612223
15.0ms
-10.672818786210458
-0.0009698133203610956
Results
21.0ms224×body256valid
2.0ms17×body256infinite
Compiler

Compiled 200 to 154 computations (23% saved)

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075604
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(if (<=.f64 x -200000000000000008769168609015239470926809530368) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (if (<=.f64 x 25000000000000001907442460272971750823741242736640) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))
(if (<=.f64 (*.f64 (-.f64 1 y) z) 10000000000000000327822459828620982485707052830214935642633335774409426031973743359279343786724117930538174975818241508187016346769106956959939911012930425211247788042456200658152732723551495964903285489125103006290926013924448356521309485648260046220787856768108551057012647002112) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (*.f64 y (*.f64 z x)))
(if (<=.f64 y -1) (+.f64 (*.f64 y (*.f64 z x)) x) (if (<=.f64 y 1) (+.f64 (*.f64 z (neg.f64 x)) x) (+.f64 (*.f64 y (*.f64 z x)) x)))
(if (<=.f64 y -1) (*.f64 (+.f64 (*.f64 y z) 1) x) (if (<=.f64 y 1) (+.f64 (*.f64 z (neg.f64 x)) x) (+.f64 x (*.f64 x (*.f64 y z)))))
(if (<=.f64 y -1) (*.f64 (+.f64 (*.f64 y z) 1) x) (if (<=.f64 y 1) (+.f64 (*.f64 z (neg.f64 x)) x) (*.f64 (+.f64 (*.f64 y z) 1) x)))
(if (<=.f64 y -245000000000000014798713466774002436674791931904) (*.f64 y (*.f64 z x)) (if (<=.f64 y 28999999999999998718852679468086862877353947153097796635457216142581099316574850091779282165563392) (+.f64 (*.f64 z (neg.f64 x)) x) (*.f64 z (*.f64 y x))))
(if (<=.f64 y -2850000000000000113602503300422227023296575087575040) (*.f64 y (*.f64 z x)) (if (<=.f64 y 75000000000000003621052948514155192162033447758988243726368505498283192356043370129731381400436736) (*.f64 (-.f64 1 z) x) (*.f64 z (*.f64 y x))))
(if (<=.f64 z -1) (*.f64 z (neg.f64 x)) (if (<=.f64 z 7914572847139345/7914572847139345089936080672628710081124203171238778877250017794972711203409019749450124833959777439667125485632516458859243681097816038718961476963260581373331416708758372352) x (if (<=.f64 z 3964391938669209/136703170298938245273281389194851335334573089430825777276610662900622062449960995201469573563940864) (*.f64 x (*.f64 y z)) (if (<=.f64 z 8854437155380585/73786976294838206464) x (*.f64 z (neg.f64 x))))))
(if (<=.f64 z -1) (*.f64 z (neg.f64 x)) (if (<=.f64 z 8854437155380585/73786976294838206464) x (*.f64 z (neg.f64 x))))
x
Outputs
(if (<=.f64 x -200000000000000008769168609015239470926809530368) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (if (<=.f64 x 25000000000000001907442460272971750823741242736640) (+.f64 (*.f64 z (*.f64 (-.f64 y 1) x)) x) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z)))))
(if (<=.f64 (*.f64 (-.f64 1 y) z) 10000000000000000327822459828620982485707052830214935642633335774409426031973743359279343786724117930538174975818241508187016346769106956959939911012930425211247788042456200658152732723551495964903285489125103006290926013924448356521309485648260046220787856768108551057012647002112) (*.f64 x (-.f64 1 (*.f64 (-.f64 1 y) z))) (*.f64 y (*.f64 z x)))
(if (<=.f64 y -1) (+.f64 (*.f64 y (*.f64 z x)) x) (if (<=.f64 y 1) (+.f64 (*.f64 z (neg.f64 x)) x) (+.f64 (*.f64 y (*.f64 z x)) x)))
(if (<=.f64 y -1) (*.f64 (+.f64 (*.f64 y z) 1) x) (if (<=.f64 y 1) (+.f64 (*.f64 z (neg.f64 x)) x) (+.f64 x (*.f64 x (*.f64 y z)))))
(if (<=.f64 y -1) (*.f64 (+.f64 (*.f64 y z) 1) x) (if (<=.f64 y 1) (+.f64 (*.f64 z (neg.f64 x)) x) (*.f64 (+.f64 (*.f64 y z) 1) x)))
(if (<=.f64 y -245000000000000014798713466774002436674791931904) (*.f64 y (*.f64 z x)) (if (<=.f64 y 28999999999999998718852679468086862877353947153097796635457216142581099316574850091779282165563392) (+.f64 (*.f64 z (neg.f64 x)) x) (*.f64 z (*.f64 y x))))
(if (<=.f64 y -2850000000000000113602503300422227023296575087575040) (*.f64 y (*.f64 z x)) (if (<=.f64 y 75000000000000003621052948514155192162033447758988243726368505498283192356043370129731381400436736) (*.f64 (-.f64 1 z) x) (*.f64 z (*.f64 y x))))
(if (<=.f64 z -1) (*.f64 z (neg.f64 x)) (if (<=.f64 z 7914572847139345/7914572847139345089936080672628710081124203171238778877250017794972711203409019749450124833959777439667125485632516458859243681097816038718961476963260581373331416708758372352) x (if (<=.f64 z 3964391938669209/136703170298938245273281389194851335334573089430825777276610662900622062449960995201469573563940864) (*.f64 x (*.f64 y z)) (if (<=.f64 z 8854437155380585/73786976294838206464) x (*.f64 z (neg.f64 x))))))
(if (<=.f64 z -1) (*.f64 z (neg.f64 x)) (if (<=.f64 z 8854437155380585/73786976294838206464) x (*.f64 z (neg.f64 x))))
x
Compiler

Compiled 267 to 160 computations (40.1% saved)

soundness0.0ms (0%)

end82.0ms (0.7%)

Compiler

Compiled 240 to 109 computations (54.6% saved)

Profiling

Loading profile data...