Details

Time bar (total: 7.3s)

analyze453.0ms (6.2%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
0%0%99.9%0.1%0%0%0%5
0%0%99.9%0.1%0%0%0%6
12.5%12.5%87.4%0.1%0%0%0%7
18.8%18.7%81.1%0.1%0%0%0%8
26%25%71%0.1%3.9%0%0%9
36.7%34.3%59.3%0.1%6.2%0%0%10
44.3%41.3%52%0.1%6.5%0%0%11
51.6%46.8%43.8%0.1%9.2%0%0%12
Compiler

Compiled 13 to 9 computations (30.8% saved)

sample1.0s (13.8%)

Results
839.0ms7996×body256valid
107.0ms1237×body256infinite
35.0ms169×body1024valid
14.0ms91×body512valid
Bogosity

preprocess4.0ms (0.1%)

Algorithm
egg-herbie
Rules
14×rational.json-simplify-1
12×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 15 to 11 computations (26.7% saved)

simplify10.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

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

eval0.0ms (0%)

Compiler

Compiled 12 to 8 computations (33.3% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 12 to 8 computations (33.3% saved)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 11 computations (59.3% saved)

series5.0ms (0.1%)

Counts
2 → 72
Calls

18 calls:

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

rewrite224.0ms (3.1%)

Algorithm
batch-egg-rewrite
Rules
2882×rational.json-simplify-35
1422×rational.json-simplify-1
1282×rational.json-1
1282×rational.json-2
1282×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01038
16638
213138
327138
452438
5121338
6265638
7393638
8525438
9648238
10709138
11709138
12709138
Stop Event
node limit
Counts
2 → 39
Calls
Call 1
Inputs
(*.f64 x (+.f64 y z))
(+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5))
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 (+.f64 y z) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 y z) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y z) (*.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 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 y z) (*.f64 x 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 y z)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 x (*.f64 (+.f64 y z) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 z 10) (*.f64 (+.f64 y z) (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 z 5/2) (*.f64 x (*.f64 (+.f64 y z) 1/2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1)))))

simplify959.0ms (13.2%)

Algorithm
egg-herbie
Rules
5700×rational.json-simplify-49
3948×rational.json-simplify-35
2090×rational.json-simplify-2
994×rational.json-simplify-1
838×rational.json-simplify-51
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01112067
12552051
25782051
316572035
433582019
539722019
643332019
746082019
848102019
949552019
1055062019
1157102019
1259302019
1359852019
1460952019
1561772019
1662872019
1762872019
1864092019
1965312019
2066532019
2167752019
2268972019
2370192019
2471412019
2572632019
2673852019
2775092019
2875092019
Stop Event
node limit
Counts
111 → 66
Calls
Call 1
Inputs
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 5 z)
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 z x) (*.f64 5 z))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(*.f64 y x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(*.f64 y x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(*.f64 z (+.f64 5 x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 x) 5)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 x) 5))) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 x) 5))) (*.f64 y x))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 x) 5))) (*.f64 y 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 (+.f64 y z) (+.f64 x x)) 2)
(/.f64 (*.f64 x (*.f64 (+.f64 y z) 4)) 4)
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))))))) 512)
(pow.f64 (*.f64 x (+.f64 y z)) 1)
(-.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 0)
(*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1)
(*.f64 1 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)))
(*.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 x (*.f64 (+.f64 y z) 1/2))))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2) 1/2)
(*.f64 4 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1/4))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8) 1/8)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2))
(*.f64 1/2 (+.f64 (*.f64 z 10) (*.f64 (+.f64 y z) (+.f64 x x))))
(*.f64 (+.f64 (*.f64 z 5/2) (*.f64 x (*.f64 (+.f64 y z) 1/2))) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1/4) 4)
(/.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))))))) 512)
(pow.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1)
Outputs
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(*.f64 5 z)
(*.f64 z 5)
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 z x) (*.f64 5 z))
(*.f64 z (+.f64 x 5))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(*.f64 y x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(*.f64 y x)
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 z x) (+.f64 (*.f64 y x) (*.f64 5 z)))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 x 5))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 x) 5)))
(*.f64 z (*.f64 (-.f64 (*.f64 x -1) 5) -1))
(*.f64 z (neg.f64 (-.f64 (neg.f64 x) 5)))
(*.f64 z (neg.f64 (-.f64 -5 x)))
(*.f64 z (-.f64 x -5))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 x) 5))) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 z (*.f64 (-.f64 (*.f64 x -1) 5) -1)))
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 (-.f64 (neg.f64 x) 5))))
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 (-.f64 -5 x))))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 x -5)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 x) 5))) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 z (*.f64 (-.f64 (*.f64 x -1) 5) -1)))
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 (-.f64 (neg.f64 x) 5))))
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 (-.f64 -5 x))))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 x -5)))
(+.f64 (*.f64 -1 (*.f64 z (-.f64 (*.f64 -1 x) 5))) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 z (*.f64 (-.f64 (*.f64 x -1) 5) -1)))
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 (-.f64 (neg.f64 x) 5))))
(+.f64 (*.f64 y x) (*.f64 z (neg.f64 (-.f64 -5 x))))
(+.f64 (*.f64 y x) (*.f64 z (-.f64 x -5)))
(+.f64 (*.f64 x (+.f64 y z)) 0)
(*.f64 (+.f64 y z) x)
(+.f64 0 (*.f64 x (+.f64 y z)))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 x (*.f64 (+.f64 y z) 1/2)) (*.f64 x (*.f64 (+.f64 y z) 1/2)))
(*.f64 (+.f64 y z) x)
(-.f64 (*.f64 x (+.f64 y z)) 0)
(*.f64 (+.f64 y z) x)
(/.f64 (*.f64 x (+.f64 y z)) 1)
(*.f64 (+.f64 y z) x)
(/.f64 (*.f64 (+.f64 y z) (+.f64 x x)) 2)
(*.f64 (+.f64 y z) x)
(/.f64 (*.f64 x (*.f64 (+.f64 y z) 4)) 4)
(*.f64 (+.f64 y z) x)
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 8)) 8)
(*.f64 (+.f64 y z) x)
(/.f64 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))) 16)
(*.f64 (+.f64 y z) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))) 32)
(*.f64 (+.f64 y z) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))) 64)
(*.f64 (+.f64 y z) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))))) 128)
(*.f64 (+.f64 y z) x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))))) 256)
(*.f64 (+.f64 y z) x)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))))))) 512)
(*.f64 (+.f64 y z) x)
(pow.f64 (*.f64 x (+.f64 y z)) 1)
(*.f64 (+.f64 y z) x)
(-.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 0)
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1)
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(*.f64 1 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(*.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 x (*.f64 (+.f64 y z) 1/2))))
(*.f64 2 (+.f64 (*.f64 (+.f64 y z) (*.f64 1/2 x)) (*.f64 z 5/2)))
(*.f64 2 (+.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) (*.f64 z 5/2)))
(*.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 (+.f64 y z) (*.f64 x 1/2))))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2) 1/2)
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(*.f64 4 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1/4))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4) 1/4)
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8) 1/8)
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(*.f64 1/2 (+.f64 (*.f64 z 10) (*.f64 (+.f64 y z) (+.f64 x x))))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(*.f64 (+.f64 (*.f64 z 5/2) (*.f64 x (*.f64 (+.f64 y z) 1/2))) 2)
(*.f64 2 (+.f64 (*.f64 (+.f64 y z) (*.f64 1/2 x)) (*.f64 z 5/2)))
(*.f64 2 (+.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) (*.f64 z 5/2)))
(*.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 (+.f64 y z) (*.f64 x 1/2))))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4))
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(*.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1/4) 4)
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(/.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1)
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 2) 2)
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 4) 4)
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(/.f64 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8) 8)
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)) 16)
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))) 32)
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))) 64)
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))))) 128)
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))))) 256)
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 8))))))) 512)
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))
(pow.f64 (+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5)) 1)
(+.f64 (*.f64 z 5) (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5)))

eval14.0ms (0.2%)

Compiler

Compiled 851 to 506 computations (40.5% saved)

prune11.0ms (0.1%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New62466
Fresh000
Picked011
Done000
Total62567
Error
0.0b
Counts
67 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(+.f64 (*.f64 y x) (*.f64 z (-.f64 x -5)))
11.5b
(+.f64 (*.f64 y x) (*.f64 z 5))
0.1b
(+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5))
24.2b
(*.f64 z (-.f64 x -5))
35.1b
(*.f64 z 5)
Compiler

Compiled 48 to 34 computations (29.2% saved)

localize3.0ms (0%)

Compiler

Compiled 8 to 6 computations (25% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 9 computations (35.7% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite259.0ms (3.6%)

Algorithm
batch-egg-rewrite
Rules
2620×rational.json-simplify-2
2090×rational.json-simplify-35
1396×rational.json-1
1192×rational.json-simplify-1
1078×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14513
29713
319813
435013
576213
6183013
7321213
8422213
9551413
10614413
11614413
12705613
13705613
14790513
Stop Event
node limit
Counts
1 → 15
Calls
Call 1
Inputs
(*.f64 z (-.f64 x -5))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (+.f64 x 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (+.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (*.f64 (+.f64 x 5) 1/2)) (*.f64 z (*.f64 (+.f64 x 5) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (+.f64 x 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 x 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x 5) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 x 5) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 x 5) 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (+.f64 x 5)) 1)))))

simplify508.0ms (7%)

Algorithm
egg-herbie
Rules
2868×rational.json-simplify-2
2268×rational.json-simplify-35
1560×rational.json-simplify-53
1514×rational.json-simplify-1
1122×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
053489
1132489
2256489
3580489
42113489
54372489
64607489
74741489
84851489
94970489
105082489
116592489
127244489
137419489
147420489
157420489
167525489
177630489
187735489
Stop Event
node limit
Counts
39 → 20
Calls
Call 1
Inputs
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 5 z)
(+.f64 (*.f64 z x) (*.f64 5 z))
(+.f64 (*.f64 z x) (*.f64 5 z))
(+.f64 (*.f64 z x) (*.f64 5 z))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 5 z))
(+.f64 (*.f64 z x) (*.f64 5 z))
(+.f64 (*.f64 z x) (*.f64 5 z))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 5 z))
(+.f64 (*.f64 z x) (*.f64 5 z))
(+.f64 (*.f64 z x) (*.f64 5 z))
(+.f64 (*.f64 z (+.f64 x 5)) 0)
(+.f64 0 (*.f64 z (+.f64 x 5)))
(+.f64 (*.f64 z (*.f64 (+.f64 x 5) 1/2)) (*.f64 z (*.f64 (+.f64 x 5) 1/2)))
(-.f64 (*.f64 z (+.f64 x 5)) 0)
(/.f64 (*.f64 z (+.f64 x 5)) 1)
(/.f64 (*.f64 (+.f64 x 5) (+.f64 z z)) 2)
(/.f64 (*.f64 z (*.f64 (+.f64 x 5) 4)) 4)
(/.f64 (*.f64 z (*.f64 (+.f64 x 5) 8)) 8)
(/.f64 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))))))) 512)
(pow.f64 (*.f64 z (+.f64 x 5)) 1)
Outputs
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 z (+.f64 5 x))
(*.f64 5 z)
(*.f64 z 5)
(+.f64 (*.f64 z x) (*.f64 5 z))
(*.f64 z (+.f64 5 x))
(+.f64 (*.f64 z x) (*.f64 5 z))
(*.f64 z (+.f64 5 x))
(+.f64 (*.f64 z x) (*.f64 5 z))
(*.f64 z (+.f64 5 x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 5 z))
(*.f64 z (+.f64 5 x))
(+.f64 (*.f64 z x) (*.f64 5 z))
(*.f64 z (+.f64 5 x))
(+.f64 (*.f64 z x) (*.f64 5 z))
(*.f64 z (+.f64 5 x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 5 z))
(*.f64 z (+.f64 5 x))
(+.f64 (*.f64 z x) (*.f64 5 z))
(*.f64 z (+.f64 5 x))
(+.f64 (*.f64 z x) (*.f64 5 z))
(*.f64 z (+.f64 5 x))
(+.f64 (*.f64 z (+.f64 x 5)) 0)
(*.f64 z (+.f64 5 x))
(+.f64 0 (*.f64 z (+.f64 x 5)))
(*.f64 z (+.f64 5 x))
(+.f64 (*.f64 z (*.f64 (+.f64 x 5) 1/2)) (*.f64 z (*.f64 (+.f64 x 5) 1/2)))
(*.f64 z (+.f64 5 x))
(-.f64 (*.f64 z (+.f64 x 5)) 0)
(*.f64 z (+.f64 5 x))
(/.f64 (*.f64 z (+.f64 x 5)) 1)
(*.f64 z (+.f64 5 x))
(/.f64 (*.f64 (+.f64 x 5) (+.f64 z z)) 2)
(*.f64 z (+.f64 5 x))
(/.f64 (*.f64 z (*.f64 (+.f64 x 5) 4)) 4)
(*.f64 z (+.f64 5 x))
(/.f64 (*.f64 z (*.f64 (+.f64 x 5) 8)) 8)
(*.f64 z (+.f64 5 x))
(/.f64 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))) 16)
(*.f64 z (+.f64 5 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))) 32)
(*.f64 z (+.f64 5 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))) 64)
(*.f64 z (+.f64 5 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))))) 128)
(*.f64 z (+.f64 5 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))))) 256)
(*.f64 z (+.f64 5 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 z (*.f64 (+.f64 x 5) 8)))))))) 512)
(*.f64 z (+.f64 5 x))
(pow.f64 (*.f64 z (+.f64 x 5)) 1)
(*.f64 z (+.f64 5 x))

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 20 to 10 computations (50% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite197.0ms (2.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
15919
212019
324619
446019
5104119
6250019
7437119
8540519
9686419
10762719
11762719
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(+.f64 (*.f64 y x) (*.f64 z 5))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y x) (*.f64 z 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 y (*.f64 x 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 z 5/2) (*.f64 y (*.f64 x 1/2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1)))))

simplify488.0ms (6.7%)

Algorithm
egg-herbie
Rules
3346×rational.json-simplify-51
2776×rational.json-simplify-2
1750×rational.json-simplify-35
1314×rational.json-simplify-49
1234×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0651037
11381037
23441037
311241037
419461037
530181037
634971037
735671037
836171037
936541037
1036911037
1137281037
1237651037
1338021037
1438391037
1538761037
1639131037
1739501037
1839871037
1948761037
2073281037
2173901037
2274231037
2374561037
2474871037
Stop Event
node limit
Counts
59 → 27
Calls
Call 1
Inputs
(*.f64 5 z)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(*.f64 5 z)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(*.f64 5 z)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(*.f64 5 z)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 y x) (*.f64 5 z))
(-.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 0)
(*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1)
(*.f64 1 (+.f64 (*.f64 y x) (*.f64 z 5)))
(*.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 y (*.f64 x 1/2))))
(*.f64 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x))) 1/2)
(*.f64 4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1/4))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8) 1/8)
(*.f64 1/2 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x))))
(*.f64 (+.f64 (*.f64 z 5/2) (*.f64 y (*.f64 x 1/2))) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8))
(/.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1)
(/.f64 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x))) 2)
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)))))) 256)
(pow.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1)
Outputs
(*.f64 5 z)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 5 z)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 5 z)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 5 z)
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 5 z))
(+.f64 (*.f64 5 z) (*.f64 y x))
(-.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 0)
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1)
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 1 (+.f64 (*.f64 y x) (*.f64 z 5)))
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 y (*.f64 x 1/2))))
(*.f64 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x))) 1/2)
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1/4))
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4) 1/4)
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8) 1/8)
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 1/2 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x))))
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 (+.f64 (*.f64 z 5/2) (*.f64 y (*.f64 x 1/2))) 2)
(*.f64 2 (+.f64 (*.f64 z 5/2) (*.f64 y (*.f64 x 1/2))))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4))
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1/4) 4)
(+.f64 (*.f64 5 z) (*.f64 y x))
(*.f64 1/8 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8))
(+.f64 (*.f64 5 z) (*.f64 y x))
(/.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1)
(+.f64 (*.f64 5 z) (*.f64 y x))
(/.f64 (+.f64 (*.f64 z 10) (*.f64 y (+.f64 x x))) 2)
(+.f64 (*.f64 5 z) (*.f64 y x))
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 4) 4)
(+.f64 (*.f64 5 z) (*.f64 y x))
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8) 8)
(+.f64 (*.f64 5 z) (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)) 16)
(+.f64 (*.f64 5 z) (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8))) 32)
(+.f64 (*.f64 5 z) (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)))) 64)
(+.f64 (*.f64 5 z) (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8))))) 128)
(+.f64 (*.f64 5 z) (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 8)))))) 256)
(+.f64 (*.f64 5 z) (*.f64 y x))
(pow.f64 (+.f64 (*.f64 y x) (*.f64 z 5)) 1)
(+.f64 (*.f64 5 z) (*.f64 y x))

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 14 computations (48.1% saved)

series1.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite203.0ms (2.8%)

Algorithm
batch-egg-rewrite
Rules
2164×rational.json-simplify-35
1532×rational.json-simplify-1
1414×rational.json-simplify-53
1144×exponential.json-3
1144×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
16525
212925
326625
449525
5113625
6277225
7494625
8596025
9674725
10674725
11674725
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(+.f64 (*.f64 y x) (*.f64 z (-.f64 x -5)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1)))))

simplify568.0ms (7.8%)

Algorithm
egg-herbie
Rules
2312×rational.json-simplify-35
1880×rational.json-simplify-1
1288×rational.json-simplify-49
1220×rational.json-simplify-2
1064×rational.json-simplify-45
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0701343
11461343
24581343
311741343
418601343
528261343
633991343
734971343
835731343
936411343
1037381343
1139011343
1241261343
1345681343
1450021343
1551991343
1654551343
1755851343
1856931343
1966171343
2072711343
2173001343
2273741343
2373761343
2473761343
2577691343
Stop Event
node limit
Counts
59 → 36
Calls
Call 1
Inputs
(*.f64 z (+.f64 5 x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(*.f64 5 z)
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) (*.f64 5 z))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) (*.f64 5 z))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) (*.f64 5 z))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(*.f64 z (+.f64 5 x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(*.f64 z (+.f64 5 x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(-.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 0)
(*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1)
(*.f64 1 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))))
(*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/2))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2) 1/2)
(*.f64 4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/4))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8) 1/8)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))
(/.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1)
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2) 2)
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)))))) 256)
(pow.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1)
Outputs
(*.f64 z (+.f64 5 x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(*.f64 5 z)
(*.f64 z 5)
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y)))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y)))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y)))
(*.f64 (+.f64 y z) x)
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y)))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y)))
(+.f64 (*.f64 (+.f64 y z) x) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x)) (*.f64 5 z))
(+.f64 (*.f64 z 5) (*.f64 x (+.f64 z y)))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(*.f64 z (+.f64 5 x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(*.f64 z (+.f64 5 x))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 y x) (*.f64 z (+.f64 5 x)))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(-.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 0)
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1)
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(*.f64 1 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/2))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2) 1/2)
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(*.f64 4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/4))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4) 1/4)
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8) 1/8)
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/2) 2)
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(*.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1/4) 4)
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(*.f64 1/8 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(/.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1)
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 2) 2)
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 4) 4)
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(/.f64 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8) 8)
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)) 16)
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))) 32)
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)))) 64)
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))))) 128)
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 8)))))) 256)
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))
(pow.f64 (+.f64 (*.f64 y x) (*.f64 z (+.f64 x 5))) 1)
(+.f64 (*.f64 x y) (*.f64 z (+.f64 5 x)))

eval21.0ms (0.3%)

Compiler

Compiled 1222 to 801 computations (34.5% saved)

prune16.0ms (0.2%)

Pruning

8 alts after pruning (4 fresh and 4 done)

PrunedKeptTotal
New994103
Fresh000
Picked101
Done044
Total1008108
Error
0.0b
Counts
108 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
27.9b
(+.f64 (*.f64 y x) (*.f64 z x))
11.5b
(+.f64 (*.f64 y x) (*.f64 z 5))
0.1b
(+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5))
27.9b
(*.f64 (+.f64 y z) x)
24.2b
(*.f64 z (-.f64 x -5))
51.5b
(*.f64 z x)
35.1b
(*.f64 z 5)
38.9b
(*.f64 y x)
Compiler

Compiled 66 to 45 computations (31.8% saved)

localize3.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize4.0ms (0.1%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 5 computations (64.3% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

9 calls:

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

rewrite179.0ms (2.5%)

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

Useful iterations: 0 (0.0ms)

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

simplify565.0ms (7.8%)

Algorithm
egg-herbie
Rules
3048×rational.json-simplify-2
2748×rational.json-simplify-35
2224×rational.json-simplify-53
1042×exponential.json-simplify-26
1042×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
048650
1127458
2238458
3543458
41939458
53812458
64406458
74549458
84656458
94761458
104864458
115827458
126438458
136712458
146712458
156712458
166815458
176918458
187487458
197745458
Stop Event
node limit
Counts
38 → 20
Calls
Call 1
Inputs
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 (+.f64 y z) x) 0)
(+.f64 0 (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) (*.f64 (+.f64 y z) (*.f64 x 1/2)))
(-.f64 (*.f64 (+.f64 y z) x) 0)
(/.f64 (*.f64 (+.f64 y z) x) 1)
(/.f64 (*.f64 (+.f64 y z) (+.f64 x x)) 2)
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 4)
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))))) 256)
(pow.f64 (*.f64 (+.f64 y z) x) 1)
Outputs
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 (+.f64 y z) x) 0)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 0 (*.f64 (+.f64 y z) x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) (*.f64 (+.f64 y z) (*.f64 x 1/2)))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(-.f64 (*.f64 (+.f64 y z) x) 0)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 (+.f64 y z) x) 1)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 (+.f64 y z) (+.f64 x x)) 2)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 4)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 8)) 8)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))) 16)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))) 32)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))) 64)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8)))))) 128)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 8))))))) 256)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(pow.f64 (*.f64 (+.f64 y z) x) 1)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 19 to 6 computations (68.4% saved)

series2.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite168.0ms (2.3%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0819
15313
211713
325513
447413
5110713
6276613
7490413
8616813
9702713
10702713
Stop Event
node limit
Counts
1 → 48
Calls
Call 1
Inputs
(+.f64 (*.f64 y x) (*.f64 z x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 y z) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 2 (+.f64 y z))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (+.f64 y z) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (*.f64 2 (+.f64 y z)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y z) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 x (/.f64 (+.f64 y z) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (*.f64 2 (+.f64 y z)) (/.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (/.f64 (+.f64 y z) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 (+.f64 y z) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 (*.f64 2 (+.f64 y z)) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (+.f64 y z) (/.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (+.f64 y z)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 y z)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 8) (*.f64 (+.f64 y z) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (*.f64 2 (+.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 (+.f64 z z) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 x 8)) (*.f64 (+.f64 y z) 1/16))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y z) 4) (*.f64 x 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 y z) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y z) 1/2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (/.f64 (+.f64 y z) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/4) (*.f64 (+.f64 y z) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (*.f64 x (+.f64 y z)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 y z) 4) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 z z) (+.f64 y y)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y z) 1/4) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y z) (/.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y z) 1/8) (*.f64 x 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y z) 1/16) (*.f64 2 (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 2 (+.f64 y z)) 1/4) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 2 (+.f64 y z)) (/.f64 x 8)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 2 (+.f64 y z)) 1/8) (*.f64 x 4))))) (#(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 2 (+.f64 y z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 y z)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.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 y z)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 y z)) 1)))))

simplify184.0ms (2.5%)

Algorithm
egg-herbie
Rules
2074×rational.json-simplify-2
1592×rational.json-simplify-35
1522×rational.json-simplify-1
1498×rational.json-simplify-53
1326×rational.json-simplify-51
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01061524
12441056
25541056
314601056
437451056
555511056
660091056
761291056
862551056
963791056
1065271056
Stop Event
node limit
Counts
84 → 55
Calls
Call 1
Inputs
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 (+.f64 y z) x)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))
(*.f64 y x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 y x))
(-.f64 (*.f64 x (+.f64 y z)) 0)
(*.f64 x (+.f64 y z))
(*.f64 (*.f64 x (+.f64 y z)) 1)
(*.f64 1 (*.f64 x (+.f64 y z)))
(*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 1/2)))
(*.f64 (*.f64 x (*.f64 2 (+.f64 y z))) 1/2)
(*.f64 (+.f64 x x) (*.f64 (+.f64 y z) 1/2))
(*.f64 (+.f64 x x) (*.f64 (*.f64 2 (+.f64 y z)) 1/4))
(*.f64 (+.f64 y z) x)
(*.f64 4 (*.f64 x (/.f64 (+.f64 y z) 4)))
(*.f64 4 (*.f64 (*.f64 2 (+.f64 y z)) (/.f64 x 8)))
(*.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 1/4)
(*.f64 (*.f64 x 4) (/.f64 (+.f64 y z) 4))
(*.f64 (*.f64 x 4) (*.f64 (+.f64 y z) 1/4))
(*.f64 (*.f64 x 4) (*.f64 (*.f64 2 (+.f64 y z)) 1/8))
(*.f64 8 (*.f64 (+.f64 y z) (/.f64 x 8)))
(*.f64 (*.f64 (*.f64 x (+.f64 y z)) 8) 1/8)
(*.f64 (*.f64 2 (+.f64 y z)) (*.f64 x 1/2))
(*.f64 (*.f64 x 8) (*.f64 (+.f64 y z) 1/8))
(*.f64 1/2 (*.f64 x (*.f64 2 (+.f64 y z))))
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 y z)))
(*.f64 (*.f64 x 1/2) (+.f64 (+.f64 z z) (+.f64 y y)))
(*.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) 2)
(*.f64 (*.f64 2 (*.f64 x 8)) (*.f64 (+.f64 y z) 1/16))
(*.f64 (*.f64 (+.f64 y z) 4) (*.f64 x 1/4))
(*.f64 1/4 (*.f64 (+.f64 y z) (*.f64 x 4)))
(*.f64 (*.f64 (+.f64 y z) 1/2) (+.f64 x x))
(*.f64 (*.f64 x (/.f64 (+.f64 y z) 4)) 4)
(*.f64 (*.f64 x 1/4) (*.f64 (+.f64 y z) 4))
(*.f64 1/8 (*.f64 (*.f64 x (+.f64 y z)) 8))
(*.f64 (/.f64 (+.f64 y z) 4) (*.f64 x 4))
(*.f64 (+.f64 (+.f64 z z) (+.f64 y y)) (*.f64 x 1/2))
(*.f64 (*.f64 (+.f64 y z) 1/4) (*.f64 x 4))
(*.f64 (*.f64 (+.f64 y z) (/.f64 x 8)) 8)
(*.f64 (*.f64 (+.f64 y z) 1/8) (*.f64 x 8))
(*.f64 (*.f64 (+.f64 y z) 1/16) (*.f64 2 (*.f64 x 8)))
(*.f64 (*.f64 (*.f64 2 (+.f64 y z)) 1/4) (+.f64 x x))
(*.f64 (*.f64 (*.f64 2 (+.f64 y z)) (/.f64 x 8)) 4)
(*.f64 (*.f64 (*.f64 2 (+.f64 y z)) 1/8) (*.f64 x 4))
(/.f64 (*.f64 x (+.f64 y z)) 1)
(/.f64 (*.f64 x (*.f64 2 (+.f64 y z))) 2)
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 4)
(/.f64 (*.f64 (*.f64 x (+.f64 y z)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8))))) 128)
(pow.f64 (*.f64 x (+.f64 y z)) 1)
Outputs
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 z) (*.f64 -1 y)) x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 z x)
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(+.f64 (*.f64 z x) (*.f64 y x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(-.f64 (*.f64 x (+.f64 y z)) 0)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 x (+.f64 y z))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 x (+.f64 y z)) 1)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 1 (*.f64 x (+.f64 y z)))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 2 (*.f64 (+.f64 y z) (*.f64 x 1/2)))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 x (*.f64 2 (+.f64 y z))) 1/2)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (+.f64 x x) (*.f64 (+.f64 y z) 1/2))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (+.f64 x x) (*.f64 (*.f64 2 (+.f64 y z)) 1/4))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (+.f64 y z) x)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 4 (*.f64 x (/.f64 (+.f64 y z) 4)))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 4 (*.f64 (*.f64 2 (+.f64 y z)) (/.f64 x 8)))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 1/4)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 x 4) (/.f64 (+.f64 y z) 4))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 x 4) (*.f64 (+.f64 y z) 1/4))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 x 4) (*.f64 (*.f64 2 (+.f64 y z)) 1/8))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 8 (*.f64 (+.f64 y z) (/.f64 x 8)))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 (*.f64 x (+.f64 y z)) 8) 1/8)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 2 (+.f64 y z)) (*.f64 x 1/2))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 x 8) (*.f64 (+.f64 y z) 1/8))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 1/2 (*.f64 x (*.f64 2 (+.f64 y z))))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 x 1/2) (*.f64 2 (+.f64 y z)))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 x 1/2) (+.f64 (+.f64 z z) (+.f64 y y)))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 (+.f64 y z) (*.f64 x 1/2)) 2)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 2 (*.f64 x 8)) (*.f64 (+.f64 y z) 1/16))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 (+.f64 y z) 4) (*.f64 x 1/4))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 1/4 (*.f64 (+.f64 y z) (*.f64 x 4)))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 (+.f64 y z) 1/2) (+.f64 x x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 x (/.f64 (+.f64 y z) 4)) 4)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 x 1/4) (*.f64 (+.f64 y z) 4))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 1/8 (*.f64 (*.f64 x (+.f64 y z)) 8))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (/.f64 (+.f64 y z) 4) (*.f64 x 4))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (+.f64 (+.f64 z z) (+.f64 y y)) (*.f64 x 1/2))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 (+.f64 y z) 1/4) (*.f64 x 4))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 (+.f64 y z) (/.f64 x 8)) 8)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 (+.f64 y z) 1/8) (*.f64 x 8))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 (+.f64 y z) 1/16) (*.f64 2 (*.f64 x 8)))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 (*.f64 2 (+.f64 y z)) 1/4) (+.f64 x x))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 (*.f64 2 (+.f64 y z)) (/.f64 x 8)) 4)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(*.f64 (*.f64 (*.f64 2 (+.f64 y z)) 1/8) (*.f64 x 4))
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 x (+.f64 y z)) 1)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 x (*.f64 2 (+.f64 y z))) 2)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 (+.f64 y z) (*.f64 x 4)) 4)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 (*.f64 x (+.f64 y z)) 8) 8)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8)) 16)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8))) 32)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8)))) 64)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 y z)) 8))))) 128)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))
(pow.f64 (*.f64 x (+.f64 y z)) 1)
(+.f64 (*.f64 z x) (*.f64 x y))
(*.f64 x (+.f64 z y))

eval12.0ms (0.2%)

Compiler

Compiled 676 to 342 computations (49.4% saved)

prune11.0ms (0.2%)

Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New75075
Fresh000
Picked011
Done077
Total75883
Error
0.0b
Counts
83 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
27.9b
(+.f64 (*.f64 y x) (*.f64 z x))
11.5b
(+.f64 (*.f64 y x) (*.f64 z 5))
0.1b
(+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5))
27.9b
(*.f64 (+.f64 y z) x)
24.2b
(*.f64 z (-.f64 x -5))
51.5b
(*.f64 z x)
35.1b
(*.f64 z 5)
38.9b
(*.f64 y x)
Compiler

Compiled 66 to 45 computations (31.8% saved)

regimes26.0ms (0.4%)

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

4 calls:

6.0ms
z
6.0ms
x
6.0ms
(+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5))
6.0ms
y
Results
ErrorSegmentsBranch
0.1b1x
0.1b1y
0.1b1z
0.1b1(+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5))
Compiler

Compiled 78 to 41 computations (47.4% saved)

regimes44.0ms (0.6%)

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

3 calls:

14.0ms
y
14.0ms
z
14.0ms
x
Results
ErrorSegmentsBranch
0.8b3x
7.6b3y
6.0b3z
Compiler

Compiled 48 to 25 computations (47.9% saved)

bsearch21.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
3.4592508225042433e-10
0.26674776029868247
7.0ms
-393950.8824775174
-242379.28061955154
Results
18.0ms208×body256valid
Compiler

Compiled 296 to 204 computations (31.1% saved)

regimes43.0ms (0.6%)

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

3 calls:

14.0ms
z
13.0ms
y
13.0ms
x
Results
ErrorSegmentsBranch
0.8b3x
7.6b3y
6.0b3z
Compiler

Compiled 41 to 24 computations (41.5% saved)

bsearch22.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
3.4592508225042433e-10
0.26674776029868247
7.0ms
-393950.8824775174
-242379.28061955154
Results
19.0ms208×body256valid
Compiler

Compiled 278 to 195 computations (29.9% saved)

regimes64.0ms (0.9%)

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

3 calls:

27.0ms
z
19.0ms
x
16.0ms
y
Results
ErrorSegmentsBranch
10.1b5x
15.5b3y
10.8b7z
Compiler

Compiled 34 to 21 computations (38.2% saved)

bsearch152.0ms (2.1%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
8.729411848522688e-57
9.801851849305911e-51
15.0ms
-1.2118585333985279e-120
-8.861185167507665e-127
108.0ms
-4.770255963605967e-81
-1.618992396580103e-83
15.0ms
-4.260849081416492e-12
-2.083503980684127e-19
Results
143.0ms543×body256valid
3.0ms17×body512valid
Compiler

Compiled 544 to 416 computations (23.5% saved)

regimes207.0ms (2.8%)

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

3 calls:

108.0ms
z
72.0ms
x
26.0ms
y
Results
ErrorSegmentsBranch
19.0b6x
15.4b5y
15.1b5z
Compiler

Compiled 29 to 19 computations (34.5% saved)

bsearch235.0ms (3.2%)

Algorithm
binary-search
Steps
TimeLeftRight
11.0ms
2.2141695903783026e-92
8.569599511479443e-91
105.0ms
-3.420968789030062e-217
-2.8777631600077443e-221
16.0ms
-4.19111279775114e-116
-5.960955500526149e-127
102.0ms
-9.624815027736249e-69
-1.1071399074237863e-75
Results
133.0ms523×body256valid
2.0ms14×body512valid
1.0msbody1024valid
Compiler

Compiled 562 to 421 computations (25.1% saved)

regimes64.0ms (0.9%)

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

3 calls:

23.0ms
z
21.0ms
x
19.0ms
y
Results
ErrorSegmentsBranch
19.8b7x
25.4b5y
22.0b7z
Compiler

Compiled 24 to 16 computations (33.3% saved)

bsearch93.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
8.729411848522688e-57
9.801851849305911e-51
18.0ms
-1.2118585333985279e-120
-8.861185167507665e-127
15.0ms
-4.770255963605967e-81
-1.618992396580103e-83
15.0ms
-4.260849081416492e-12
-2.083503980684127e-19
16.0ms
-9.899213346760613e+36
-6.690557247165059e+30
14.0ms
-7.881213927063903e+71
-2.118916786275179e+67
Results
78.0ms813×body256valid
3.0ms19×body512valid
2.0ms22×body256infinite
Compiler

Compiled 746 to 568 computations (23.9% saved)

regimes47.0ms (0.6%)

Accuracy

Total -41.0b remaining (-195%)

Threshold costs -41.0b (-195%)

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

3 calls:

19.0ms
z
14.0ms
x
13.0ms
y
Results
ErrorSegmentsBranch
21.0b5x
26.5b3y
22.0b7z
Compiler

Compiled 21 to 15 computations (28.6% saved)

bsearch59.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
8.729411848522688e-57
9.801851849305911e-51
16.0ms
-1.2118585333985279e-120
-8.861185167507665e-127
14.0ms
-4.770255963605967e-81
-1.618992396580103e-83
14.0ms
-4.260849081416492e-12
-2.083503980684127e-19
Results
50.0ms540×body256valid
3.0ms20×body512valid
Compiler

Compiled 508 to 398 computations (21.7% saved)

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
083510
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5))
(if (<=.f64 x -245000) (*.f64 (+.f64 y z) x) (if (<=.f64 x 1170935903116329/4503599627370496) (+.f64 (*.f64 y x) (*.f64 z 5)) (+.f64 (*.f64 y x) (*.f64 z x))))
(if (<=.f64 x -245000) (*.f64 (+.f64 y z) x) (if (<=.f64 x 1170935903116329/4503599627370496) (+.f64 (*.f64 y x) (*.f64 z 5)) (*.f64 (+.f64 y z) x)))
(if (<=.f64 x -6591783121186793/10141204801825835211973625643008) (*.f64 (+.f64 y z) x) (if (<=.f64 x -5058017301060715/273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881728) (*.f64 z 5) (if (<=.f64 x -3488825876618913/2907354897182427562197295231552018137414565442749272241125960796722557152453591693304764202855054262243050086425064711734138406514458624) (*.f64 y x) (if (<=.f64 x 2948744166719601/1684996666696914987166688442938726917102321526408785780068975640576) (*.f64 z 5) (*.f64 (+.f64 y z) x)))))
(if (<=.f64 z -7708510164351693/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 z (-.f64 x -5)) (if (<=.f64 z -2743724311801165/762145642166990290864647761179972242614403843424065222377723867096038022172794340849684107193235344521442121855812163792833978437326241529856) (*.f64 y x) (if (<=.f64 z -8445698422115857/24840289476811342962383671815400040884110176273867145778224832608416815242982030181294054541258343647207803691154097171298745280705837030263108596400658898227271279616333598488804244570105575117204207987099463500014285549661056925696) (*.f64 z (-.f64 x -5)) (if (<=.f64 z 7339195571168229/293567822846729153486185074598667128421960318613539983838411371441526128139326055432962374798096087878991872) (*.f64 y x) (*.f64 z (-.f64 x -5))))))
(if (<=.f64 x -99999999999999995280522225138166806691251291352861698530421623488512) (*.f64 y x) (if (<=.f64 x -9499999999999999738913268399626780672) (*.f64 z x) (if (<=.f64 x -1298074214633707/649037107316853453566312041152512) (*.f64 y x) (if (<=.f64 x -4429182717685599/273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881728) (*.f64 z 5) (if (<=.f64 x -105391615022863/90854840536950861318665475986000566794205170085914757535186274897579911014174740415773881339220445695095315200783272241691825203576832) (*.f64 y x) (if (<=.f64 x 3706992666733213/421249166674228746791672110734681729275580381602196445017243910144) (*.f64 z 5) (*.f64 y x)))))))
(if (<=.f64 x -4436777100798803/2535301200456458802993406410752) (*.f64 y x) (if (<=.f64 x -4784610960462839/17087896287367280659160173649356416916821636178853222159576332862577757806245124400183696695492608) (*.f64 z 5) (if (<=.f64 x -1380993576161653/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (*.f64 y x) (if (<=.f64 x 4001867083405173/421249166674228746791672110734681729275580381602196445017243910144) (*.f64 z 5) (*.f64 y x)))))
(*.f64 y x)
Outputs
(+.f64 (*.f64 x (+.f64 y z)) (*.f64 z 5))
(if (<=.f64 x -245000) (*.f64 (+.f64 y z) x) (if (<=.f64 x 1170935903116329/4503599627370496) (+.f64 (*.f64 y x) (*.f64 z 5)) (+.f64 (*.f64 y x) (*.f64 z x))))
(if (<=.f64 x -245000) (*.f64 (+.f64 y z) x) (if (<=.f64 x 1170935903116329/4503599627370496) (+.f64 (*.f64 y x) (*.f64 z 5)) (*.f64 (+.f64 y z) x)))
(if (<=.f64 x -6591783121186793/10141204801825835211973625643008) (*.f64 (+.f64 y z) x) (if (<=.f64 x -5058017301060715/273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881728) (*.f64 z 5) (if (<=.f64 x -3488825876618913/2907354897182427562197295231552018137414565442749272241125960796722557152453591693304764202855054262243050086425064711734138406514458624) (*.f64 y x) (if (<=.f64 x 2948744166719601/1684996666696914987166688442938726917102321526408785780068975640576) (*.f64 z 5) (*.f64 (+.f64 y z) x)))))
(if (<=.f64 z -7708510164351693/497323236409786642155382248146820840100456150797347717440463976893159497012533375533056) (*.f64 z (-.f64 x -5)) (if (<=.f64 z -2743724311801165/762145642166990290864647761179972242614403843424065222377723867096038022172794340849684107193235344521442121855812163792833978437326241529856) (*.f64 y x) (if (<=.f64 z -8445698422115857/24840289476811342962383671815400040884110176273867145778224832608416815242982030181294054541258343647207803691154097171298745280705837030263108596400658898227271279616333598488804244570105575117204207987099463500014285549661056925696) (*.f64 z (-.f64 x -5)) (if (<=.f64 z 7339195571168229/293567822846729153486185074598667128421960318613539983838411371441526128139326055432962374798096087878991872) (*.f64 y x) (*.f64 z (-.f64 x -5))))))
(if (<=.f64 x -99999999999999995280522225138166806691251291352861698530421623488512) (*.f64 y x) (if (<=.f64 x -9499999999999999738913268399626780672) (*.f64 z x) (if (<=.f64 x -1298074214633707/649037107316853453566312041152512) (*.f64 y x) (if (<=.f64 x -4429182717685599/273406340597876490546562778389702670669146178861651554553221325801244124899921990402939147127881728) (*.f64 z 5) (if (<=.f64 x -105391615022863/90854840536950861318665475986000566794205170085914757535186274897579911014174740415773881339220445695095315200783272241691825203576832) (*.f64 y x) (if (<=.f64 x 3706992666733213/421249166674228746791672110734681729275580381602196445017243910144) (*.f64 z 5) (*.f64 y x)))))))
(if (<=.f64 x -4436777100798803/2535301200456458802993406410752) (*.f64 y x) (if (<=.f64 x -4784610960462839/17087896287367280659160173649356416916821636178853222159576332862577757806245124400183696695492608) (*.f64 z 5) (if (<=.f64 x -1380993576161653/1453677448591213781098647615776009068707282721374636120562980398361278576226795846652382101427527131121525043212532355867069203257229312) (*.f64 y x) (if (<=.f64 x 4001867083405173/421249166674228746791672110734681729275580381602196445017243910144) (*.f64 z 5) (*.f64 y x)))))
(*.f64 y x)
Compiler

Compiled 236 to 138 computations (41.5% saved)

soundness0.0ms (0%)

end74.0ms (1%)

Compiler

Compiled 215 to 105 computations (51.2% saved)

Profiling

Loading profile data...