Details

Time bar (total: 15.2s)

analyze316.0ms (2.1%)

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

Compiled 11 to 8 computations (27.3% saved)

sample6.3s (41.2%)

Results
5.5s8255×body256valid
757.0ms1141×body256infinite
0.0msbody1024valid
Bogosity

preprocess11.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

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

(sort x y)

Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify88.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

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

eval0.0ms (0%)

Compiler

Compiled 10 to 7 computations (30% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 10 to 7 computations (30% saved)

localize7.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 20 to 10 computations (50% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite391.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
1448×rational.json-simplify-35
1348×bool.json-1
1348×bool.json-2
1310×rational.json-1
1310×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
19719
227819
355419
4112019
5246419
6513519
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 (+.f64 x y) (+.f64 z 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x y) (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 z 1) 1/2)) (*.f64 (+.f64 x y) (*.f64 (+.f64 z 1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (+.f64 2 (+.f64 z z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 z 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 x y) (+.f64 z 1))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 x y) (+.f64 z 1)) (*.f64 (+.f64 x y) (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 x y) (+.f64 z 1)) (*.f64 (+.f64 x y) (+.f64 z 1)))))))

simplify946.0ms (6.2%)

Algorithm
egg-herbie
Rules
4448×rational.json-simplify-35
2110×rational.json-simplify-2
1534×rational.json-simplify-1
1044×rational.json-simplify-41
890×rational.json-simplify-53
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
047887
1113887
2225887
3482887
41948887
53894887
64475887
74836887
85088887
95270887
105427887
116248887
126275887
136310887
146348887
156404887
166584887
176772887
186941887
197085887
207229887
217373887
227517887
237661887
247805887
257805887
267949887
Stop Event
node limit
Counts
47 → 25
Calls
Call 1
Inputs
(*.f64 y (+.f64 1 z))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 1 z) x)
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 1 z) x)
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 1 z) x)
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 y (+.f64 1 z))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 y (+.f64 1 z))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 y x)
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(*.f64 (+.f64 y x) z)
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(*.f64 (+.f64 y x) z)
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 0)
(+.f64 0 (*.f64 (+.f64 x y) (+.f64 z 1)))
(+.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 z 1) 1/2)) (*.f64 (+.f64 x y) (*.f64 (+.f64 z 1) 1/2)))
(-.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 0)
(/.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 1)
(/.f64 (*.f64 (+.f64 x y) (+.f64 2 (+.f64 z z))) 2)
(/.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 z 1) 4)) 4)
(/.f64 (*.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 8)))) 64)
Outputs
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 1 z))
(*.f64 x (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 1 z))
(*.f64 x (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 1 z))
(*.f64 x (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 y x)
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(+.f64 y (+.f64 (*.f64 (+.f64 y x) z) x))
(+.f64 y (+.f64 x (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(+.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 0)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 0 (*.f64 (+.f64 x y) (+.f64 z 1)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(+.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 z 1) 1/2)) (*.f64 (+.f64 x y) (*.f64 (+.f64 z 1) 1/2)))
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(-.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 0)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(/.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 1)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(/.f64 (*.f64 (+.f64 x y) (+.f64 2 (+.f64 z z))) 2)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(/.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 z 1) 4)) 4)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(/.f64 (*.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 8) 8)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 8)) 16)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 8))) 32)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 8)))) 64)
(*.f64 (+.f64 y x) (+.f64 1 z))
(*.f64 (+.f64 y x) (-.f64 z -1))

eval4.0ms (0%)

Compiler

Compiled 238 to 132 computations (44.5% saved)

prune6.0ms (0%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New21425
Fresh000
Picked011
Done000
Total21526
Error
0.0b
Counts
26 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
22.6b
(+.f64 y x)
40.0b
(*.f64 (+.f64 y x) z)
0.0b
(*.f64 (+.f64 x y) (+.f64 z 1))
30.1b
(*.f64 (+.f64 1 z) x)
33.3b
(*.f64 y (-.f64 z -1))
Compiler

Compiled 40 to 28 computations (30% saved)

localize6.0ms (0%)

Compiler

Compiled 14 to 9 computations (35.7% saved)

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

rewrite96.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
1626×bool.json-1
1626×bool.json-2
1586×rational.json-1
1586×rational.json-2
1184×rational.json-simplify-35
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
18013
224813
348313
494113
5202813
6410613
7651613
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 (+.f64 1 z) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 z) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 1 z) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 1 z) (*.f64 x 1/2)) (*.f64 (+.f64 1 z) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 1 z) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 z) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 z) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 1 z) x) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 1 z) x) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 1 z) x) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 1 z) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 1 z) x) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 1 z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 1 z) x) (*.f64 (+.f64 1 z) x))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 1 z) x) (*.f64 (+.f64 1 z) x))))))

simplify1.2s (7.9%)

Algorithm
egg-herbie
Rules
4920×rational.json-simplify-35
2506×rational.json-simplify-2
1114×rational.json-simplify-53
970×rational.json-simplify-1
790×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
038275
192275
2182275
3436275
41871275
53522275
64343275
74716275
84927275
95132275
105314275
115652275
125652275
135725275
145895275
156081275
166310275
176479275
186626275
196770275
206914275
217058275
227202275
237346275
247346275
257452275
267452275
277596275
287740275
297884275
Stop Event
node limit
Counts
23 → 17
Calls
Call 1
Inputs
x
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
(*.f64 z x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
(*.f64 z x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 z x) x)
(+.f64 (*.f64 (+.f64 1 z) x) 0)
(+.f64 0 (*.f64 (+.f64 1 z) x))
(+.f64 (*.f64 (+.f64 1 z) (*.f64 x 1/2)) (*.f64 (+.f64 1 z) (*.f64 x 1/2)))
(-.f64 (*.f64 (+.f64 1 z) x) 0)
(/.f64 (*.f64 (+.f64 1 z) x) 1)
(/.f64 (*.f64 (+.f64 1 z) (+.f64 x x)) 2)
(/.f64 (*.f64 (+.f64 1 z) (*.f64 x 4)) 4)
(/.f64 (*.f64 (*.f64 (+.f64 1 z) x) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 1 z) x) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 1 z) x) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 1 z) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 1 z) x) 8)))) 64)
Outputs
x
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(+.f64 (*.f64 z x) x)
(+.f64 x (*.f64 x z))
(+.f64 (*.f64 (+.f64 1 z) x) 0)
(*.f64 x (+.f64 z 1))
(+.f64 0 (*.f64 (+.f64 1 z) x))
(*.f64 x (+.f64 z 1))
(+.f64 (*.f64 (+.f64 1 z) (*.f64 x 1/2)) (*.f64 (+.f64 1 z) (*.f64 x 1/2)))
(*.f64 x (+.f64 z 1))
(-.f64 (*.f64 (+.f64 1 z) x) 0)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 (+.f64 1 z) x) 1)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 (+.f64 1 z) (+.f64 x x)) 2)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 (+.f64 1 z) (*.f64 x 4)) 4)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 (*.f64 (+.f64 1 z) x) 8) 8)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 1 z) x) 8)) 16)
(*.f64 x (+.f64 z 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 1 z) x) 8))) 32)
(*.f64 x (+.f64 z 1))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 1 z) x) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 1 z) x) 8)))) 64)
(*.f64 x (+.f64 z 1))

localize6.0ms (0%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 5 computations (64.3% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

9 calls:

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

rewrite225.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
1638×bool.json-1
1638×bool.json-2
1606×rational.json-1
1606×rational.json-2
1606×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
17013
219613
341713
486113
5188413
6389913
7640113
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 (+.f64 y x) z)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y x) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 y x) z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y x) (*.f64 z 1/2)) (*.f64 (+.f64 y x) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 y x) z) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y x) z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y x) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y x) (*.f64 z 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 y x) z) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 y x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 y x) z) (*.f64 (+.f64 y x) z))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 y x) z) (*.f64 (+.f64 y x) z))))))

simplify1.3s (8.3%)

Algorithm
egg-herbie
Rules
5174×rational.json-simplify-35
2504×rational.json-simplify-2
1114×rational.json-simplify-53
1006×rational.json-simplify-1
786×rational.json-simplify-43
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
040593
193419
2184419
3450419
41926419
53711419
64597419
74932419
85082419
95228419
105372419
115701419
125704419
135777419
145919419
155947419
166135419
176292419
186436419
196580419
206724419
216868419
227012419
237156419
247300419
257402419
267402419
277546419
287690419
297834419
307978419
Stop Event
node limit
Counts
35 → 17
Calls
Call 1
Inputs
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 (+.f64 y x) z) 0)
(+.f64 0 (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 (+.f64 y x) (*.f64 z 1/2)) (*.f64 (+.f64 y x) (*.f64 z 1/2)))
(-.f64 (*.f64 (+.f64 y x) z) 0)
(/.f64 (*.f64 (+.f64 y x) z) 1)
(/.f64 (*.f64 (+.f64 y x) (+.f64 z z)) 2)
(/.f64 (*.f64 (+.f64 y x) (*.f64 z 4)) 4)
(/.f64 (*.f64 (*.f64 (+.f64 y x) z) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)))) 64)
Outputs
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(*.f64 y z)
(*.f64 z y)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 y z) (*.f64 z x))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 (+.f64 y x) z) 0)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 0 (*.f64 (+.f64 y x) z))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(+.f64 (*.f64 (+.f64 y x) (*.f64 z 1/2)) (*.f64 (+.f64 y x) (*.f64 z 1/2)))
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(-.f64 (*.f64 (+.f64 y x) z) 0)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 (+.f64 y x) z) 1)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 (+.f64 y x) (+.f64 z z)) 2)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 (+.f64 y x) (*.f64 z 4)) 4)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 (*.f64 (+.f64 y x) z) 8) 8)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)) 16)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) 32)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 y x) z) 8)))) 64)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))

localize3.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

eval246.0ms (1.6%)

Compiler

Compiled 291 to 167 computations (42.6% saved)

prune7.0ms (0%)

Pruning

8 alts after pruning (3 fresh and 5 done)

PrunedKeptTotal
New31334
Fresh000
Picked011
Done044
Total31839
Error
0.0b
Counts
39 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
22.6b
(+.f64 y x)
40.0b
(*.f64 (+.f64 y x) z)
0.0b
(*.f64 (+.f64 x y) (+.f64 z 1))
30.1b
(*.f64 (+.f64 1 z) x)
51.1b
(*.f64 z y)
51.5b
(*.f64 z x)
33.3b
(*.f64 y (-.f64 z -1))
40.7b
x
Compiler

Compiled 56 to 39 computations (30.4% saved)

localize4.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize3.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune3.0ms (0%)

Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New000
Fresh011
Picked011
Done066
Total088
Error
0.0b
Counts
8 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
22.6b
(+.f64 y x)
40.0b
(*.f64 (+.f64 y x) z)
0.0b
(*.f64 (+.f64 x y) (+.f64 z 1))
30.1b
(*.f64 (+.f64 1 z) x)
51.1b
(*.f64 z y)
51.5b
(*.f64 z x)
33.3b
(*.f64 y (-.f64 z -1))
40.7b
x
Compiler

Compiled 56 to 39 computations (30.4% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune3.0ms (0%)

Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done077
Total088
Error
0.0b
Counts
8 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
22.6b
(+.f64 y x)
40.0b
(*.f64 (+.f64 y x) z)
0.0b
(*.f64 (+.f64 x y) (+.f64 z 1))
30.1b
(*.f64 (+.f64 1 z) x)
51.1b
(*.f64 z y)
51.5b
(*.f64 z x)
33.3b
(*.f64 y (-.f64 z -1))
40.7b
x
Compiler

Compiled 56 to 39 computations (30.4% saved)

regimes114.0ms (0.7%)

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

6 calls:

86.0ms
x
6.0ms
(*.f64 (+.f64 x y) (+.f64 z 1))
5.0ms
(+.f64 z 1)
5.0ms
(+.f64 x y)
5.0ms
z
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1(*.f64 (+.f64 x y) (+.f64 z 1))
0.0b1(+.f64 x y)
0.0b1(+.f64 z 1)
Compiler

Compiled 69 to 42 computations (39.1% saved)

regimes1.7s (11.5%)

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

3 calls:

1.7s
y
14.0ms
x
14.0ms
z
Results
ErrorSegmentsBranch
9.9b2x
9.3b2y
0.9b3z
Compiler

Compiled 40 to 22 computations (45% saved)

bsearch108.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
96.0ms
8.559547392652115e-13
756692803493886600.0
12.0ms
-68.02475691948077
-0.6183175865172088
Results
105.0ms288×body256valid
0.0msbody256infinite
Compiler

Compiled 304 to 210 computations (30.9% saved)

regimes895.0ms (5.9%)

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

3 calls:

788.0ms
x
93.0ms
z
12.0ms
y
Results
ErrorSegmentsBranch
9.9b2x
9.3b2y
10.9b3z
Compiler

Compiled 35 to 21 computations (40% saved)

bsearch11.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
11.0ms
6.004734966091774e-91
1.0538770134068343e-88
Results
9.0ms112×body256valid
Compiler

Compiled 142 to 110 computations (22.5% saved)

regimes37.0ms (0.2%)

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

3 calls:

15.0ms
x
12.0ms
z
9.0ms
y
Results
ErrorSegmentsBranch
13.7b4x
18.0b2y
10.9b3z
Compiler

Compiled 30 to 18 computations (40% saved)

bsearch106.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
96.0ms
8.559547392652115e-13
756692803493886600.0
9.0ms
-1.986348092914966e-14
-1.5714693770361697e-15
Results
103.0ms272×body256valid
Compiler

Compiled 266 to 194 computations (27.1% saved)

regimes373.0ms (2.5%)

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

3 calls:

286.0ms
y
76.0ms
z
10.0ms
x
Results
ErrorSegmentsBranch
21.2b3x
21.6b3y
11.5b3z
Compiler

Compiled 25 to 15 computations (40% saved)

bsearch283.0ms (1.9%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
8.559547392652115e-13
756692803493886600.0
265.0ms
-68.02475691948077
-0.6183175865172088
Results
279.0ms288×body256valid
0.0msbody256infinite
Compiler

Compiled 268 to 192 computations (28.4% saved)

regimes43.0ms (0.3%)

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

3 calls:

16.0ms
y
16.0ms
x
10.0ms
z
Results
ErrorSegmentsBranch
31.2b5x
34.6b4y
29.6b3z
Compiler

Compiled 22 to 14 computations (36.4% saved)

bsearch29.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
19.0ms
8.559547392652115e-13
756692803493886600.0
10.0ms
-68.02475691948077
-0.6183175865172088
Results
26.0ms288×body256valid
0.0msbody256infinite
Compiler

Compiled 232 to 174 computations (25% saved)

regimes34.0ms (0.2%)

Accuracy

Total -31.9b remaining (-105.6%)

Threshold costs -31.9b (-105.6%)

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

3 calls:

14.0ms
x
11.0ms
z
8.0ms
y
Results
ErrorSegmentsBranch
37.8b5x
39.5b3y
30.3b3z
Compiler

Compiled 19 to 13 computations (31.6% saved)

bsearch107.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
91.0ms
8.559547392652115e-13
756692803493886600.0
16.0ms
-68745682825804610.0
-109999313.50806805
Results
103.0ms320×body256valid
0.0msbody256infinite
Compiler

Compiled 256 to 192 computations (25% saved)

simplify5.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
043256
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (+.f64 x y) (+.f64 z 1))
(if (<=.f64 z -1) (*.f64 (+.f64 y x) z) (if (<=.f64 z 1) (+.f64 y x) (*.f64 (+.f64 y x) z)))
(if (<=.f64 y 3762771166858711/35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852416) (*.f64 (+.f64 1 z) x) (*.f64 y (-.f64 z -1)))
(if (<=.f64 z -3089898338056309/158456325028528675187087900672) (*.f64 y (-.f64 z -1)) (if (<=.f64 z 270) (+.f64 y x) (*.f64 z x)))
(if (<=.f64 z -1) (*.f64 z y) (if (<=.f64 z 950) (+.f64 y x) (*.f64 z x)))
(if (<=.f64 z -1) (*.f64 z y) (if (<=.f64 z 1) x (*.f64 z x)))
(if (<=.f64 z -110000000) (*.f64 z x) (if (<=.f64 z 1) x (*.f64 z x)))
x
Outputs
(*.f64 (+.f64 x y) (+.f64 z 1))
(if (<=.f64 z -1) (*.f64 (+.f64 y x) z) (if (<=.f64 z 1) (+.f64 y x) (*.f64 (+.f64 y x) z)))
(if (<=.f64 y 3762771166858711/35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852416) (*.f64 (+.f64 1 z) x) (*.f64 y (-.f64 z -1)))
(if (<=.f64 z -3089898338056309/158456325028528675187087900672) (*.f64 y (-.f64 z -1)) (if (<=.f64 z 270) (+.f64 y x) (*.f64 z x)))
(if (<=.f64 z -1) (*.f64 z y) (if (<=.f64 z 950) (+.f64 y x) (*.f64 z x)))
(if (<=.f64 z -1) (*.f64 z y) (if (<=.f64 z 1) x (*.f64 z x)))
(if (<=.f64 z -110000000) (*.f64 z x) (if (<=.f64 z 1) x (*.f64 z x)))
x
Compiler

Compiled 133 to 80 computations (39.8% saved)

soundness0.0ms (0%)

end213.0ms (1.4%)

Remove

(sort x y)

Compiler

Compiled 132 to 67 computations (49.2% saved)

Profiling

Loading profile data...