Details

Time bar (total: 7.1s)

analyze1.2s (17%)

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
39.7%37.4%56.9%0.1%5.5%0%0%10
46.5%43.7%50.3%0.1%5.9%0%0%11
55.2%51.9%42.1%0.1%5.9%0%0%12
Compiler

Compiled 11 to 8 computations (27.3% saved)

sample4.3s (60.6%)

Results
4.2s8256×body256valid
57.0ms600×body256infinite
Bogosity

preprocess68.0ms (1%)

Algorithm
egg-herbie
Rules
30×rational.json-simplify-2
14×rational.json-simplify-43
swap-y-z
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01776
12476
23476
34176
033
133
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
1
Call 2
Inputs
(-.f64 x (*.f64 (*.f64 y 4) z))
(-.f64 y (*.f64 (*.f64 x 4) z))
(-.f64 z (*.f64 (*.f64 y 4) x))
(-.f64 x (*.f64 (*.f64 z 4) y))
Outputs
(-.f64 x (*.f64 (*.f64 y 4) z))
(-.f64 x (*.f64 y (*.f64 4 z)))
(-.f64 y (*.f64 (*.f64 x 4) z))
(-.f64 y (*.f64 z (*.f64 x 4)))
(-.f64 y (*.f64 x (*.f64 4 z)))
(-.f64 z (*.f64 (*.f64 y 4) x))
(-.f64 z (*.f64 x (*.f64 y 4)))
(-.f64 x (*.f64 (*.f64 z 4) y))
(-.f64 x (*.f64 (*.f64 y 4) z))
(-.f64 x (*.f64 y (*.f64 4 z)))
Symmetry

(sort y z)

Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify8.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
11119
21519
31919
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(-.f64 x (*.f64 (*.f64 y 4) z))
Outputs
(-.f64 x (*.f64 (*.f64 y 4) z))
(-.f64 x (*.f64 y (*.f64 4 z)))

eval0.0ms (0%)

Compiler

Compiled 17 to 11 computations (35.3% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
0.0b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 x (*.f64 (*.f64 y 4) z))
Compiler

Compiled 10 to 7 computations (30% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 22 to 13 computations (40.9% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite852.0ms (12%)

Algorithm
batch-egg-rewrite
Rules
1420×rational.json-simplify-35
1312×bool.json-1
1312×bool.json-2
1258×rational.json-1
1258×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
18819
223719
351719
4107819
5235719
6495919
Stop Event
node limit
Counts
1 → 40
Calls
Call 1
Inputs
(-.f64 x (*.f64 (*.f64 y 4) z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (neg.f64 (*.f64 y (*.f64 4 z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 x (*.f64 y (*.f64 4 z))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 y (*.f64 4 z))) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 x (-.f64 1 (*.f64 y (*.f64 4 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (-.f64 1 (*.f64 y (*.f64 4 z)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1/2) (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (-.f64 -1 (-.f64 x (*.f64 y (*.f64 4 z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (-.f64 (/.f64 x 4) (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 x (*.f64 y (*.f64 4 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (-.f64 (*.f64 x 1/2) (*.f64 y (+.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (-.f64 x (*.f64 y (*.f64 4 z)))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 y (*.f64 4 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (-.f64 (+.f64 x x) (*.f64 z (*.f64 y 8))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 4 (-.f64 x (*.f64 y (*.f64 4 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (-.f64 x (*.f64 y (*.f64 4 z)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) x)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) x)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) 4)) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) x)))) (*.f64 2 (neg.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) x))))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) 4)) (neg.f64 (*.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 y (*.f64 4 z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (-.f64 x (*.f64 y (*.f64 4 z)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (-.f64 x (*.f64 y (*.f64 4 z))) (-.f64 x (*.f64 y (*.f64 4 z))))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 x (*.f64 y (*.f64 4 z))) (-.f64 x (*.f64 y (*.f64 4 z))))))))

simplify194.0ms (2.7%)

Algorithm
egg-herbie
Rules
2382×rational.json-simplify-1
1720×rational.json-simplify-35
1208×rational.json-simplify-2
1178×rational.json-simplify-52
1140×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0981360
12141360
24681360
310781360
421651360
537591360
642071360
750351360
858871360
964811360
1072511360
Stop Event
node limit
Counts
76 → 46
Calls
Call 1
Inputs
(*.f64 -4 (*.f64 y z))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
x
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
x
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
x
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(*.f64 -4 (*.f64 y z))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(*.f64 -4 (*.f64 y z))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
x
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(*.f64 -4 (*.f64 y z))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(*.f64 -4 (*.f64 y z))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (neg.f64 (*.f64 y (*.f64 4 z))))
(+.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 0)
(+.f64 0 (-.f64 x (*.f64 y (*.f64 4 z))))
(+.f64 (neg.f64 (*.f64 y (*.f64 4 z))) x)
(+.f64 -1 (+.f64 x (-.f64 1 (*.f64 y (*.f64 4 z)))))
(+.f64 (+.f64 x (-.f64 1 (*.f64 y (*.f64 4 z)))) -1)
(+.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1/2) (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1/2))
(+.f64 -2 (-.f64 1 (-.f64 -1 (-.f64 x (*.f64 y (*.f64 4 z))))))
(*.f64 4 (/.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 4))
(*.f64 4 (-.f64 (/.f64 x 4) (*.f64 y z)))
(*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1)
(*.f64 1 (-.f64 x (*.f64 y (*.f64 4 z))))
(*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1/2))
(*.f64 2 (-.f64 (*.f64 x 1/2) (*.f64 y (+.f64 z z))))
(*.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 2) 1/2)
(*.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) -1)
(*.f64 (*.f64 4 (-.f64 x (*.f64 y (*.f64 4 z)))) 1/4)
(*.f64 -1 (-.f64 (*.f64 y (*.f64 4 z)) x))
(*.f64 1/2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 2))
(*.f64 1/2 (-.f64 (+.f64 x x) (*.f64 z (*.f64 y 8))))
(*.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1/2) 2)
(*.f64 1/4 (*.f64 4 (-.f64 x (*.f64 y (*.f64 4 z)))))
(*.f64 (/.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 4) 4)
(/.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1)
(/.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 2) 2)
(/.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) -1)
(/.f64 (*.f64 4 (-.f64 x (*.f64 y (*.f64 4 z)))) 4)
(/.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 8) 8)
(/.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) x)) -2)
(/.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 8)) 16)
(/.f64 (*.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) 4) -4)
(/.f64 (neg.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) x))) 2)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 8))) 32)
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) x)))) 4)
(/.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) 4)) -8)
(/.f64 (neg.f64 (*.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) 4)) 4)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) x)))) (*.f64 2 (neg.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) x))))) 8)
(/.f64 (+.f64 (neg.f64 (*.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) 4)) (neg.f64 (*.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) 4))) 8)
(neg.f64 (-.f64 (*.f64 y (*.f64 4 z)) x))
Outputs
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
x
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
x
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
x
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
x
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(*.f64 -4 (*.f64 y z))
(*.f64 y (*.f64 -4 z))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 x (neg.f64 (*.f64 y (*.f64 4 z))))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 0)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 0 (-.f64 x (*.f64 y (*.f64 4 z))))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (neg.f64 (*.f64 y (*.f64 4 z))) x)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 -1 (+.f64 x (-.f64 1 (*.f64 y (*.f64 4 z)))))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (+.f64 x (-.f64 1 (*.f64 y (*.f64 4 z)))) -1)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1/2) (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1/2))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(+.f64 -2 (-.f64 1 (-.f64 -1 (-.f64 x (*.f64 y (*.f64 4 z))))))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(*.f64 4 (/.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 4))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(*.f64 4 (-.f64 (/.f64 x 4) (*.f64 y z)))
(*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(*.f64 1 (-.f64 x (*.f64 y (*.f64 4 z))))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1/2))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(*.f64 2 (-.f64 (*.f64 x 1/2) (*.f64 y (+.f64 z z))))
(*.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 2) 1/2)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(*.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) -1)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(*.f64 (*.f64 4 (-.f64 x (*.f64 y (*.f64 4 z)))) 1/4)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(*.f64 -1 (-.f64 (*.f64 y (*.f64 4 z)) x))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(*.f64 1/2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 2))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(*.f64 1/2 (-.f64 (+.f64 x x) (*.f64 z (*.f64 y 8))))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(*.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1/2) 2)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(*.f64 1/4 (*.f64 4 (-.f64 x (*.f64 y (*.f64 4 z)))))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(*.f64 (/.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 4) 4)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(/.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 1)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(/.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 2) 2)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(/.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) -1)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(/.f64 (*.f64 4 (-.f64 x (*.f64 y (*.f64 4 z)))) 4)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(/.f64 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 8) 8)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(/.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) x)) -2)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(/.f64 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 8)) 16)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(/.f64 (*.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) 4) -4)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(/.f64 (neg.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) x))) 2)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 8))) 32)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) x)))) 4)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(/.f64 (*.f64 2 (*.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) 4)) -8)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(/.f64 (neg.f64 (*.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) 4)) 4)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 x (*.f64 y (*.f64 4 z))) 8)))) 64)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(/.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) x)))) (*.f64 2 (neg.f64 (*.f64 2 (-.f64 (*.f64 y (*.f64 4 z)) x))))) 8)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(/.f64 (+.f64 (neg.f64 (*.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) 4)) (neg.f64 (*.f64 (-.f64 (*.f64 y (*.f64 4 z)) x) 4))) 8)
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))
(neg.f64 (-.f64 (*.f64 y (*.f64 4 z)) x))
(+.f64 (*.f64 -4 (*.f64 y z)) x)
(+.f64 x (*.f64 -4 (*.f64 y z)))
(+.f64 x (*.f64 y (*.f64 -4 z)))

eval11.0ms (0.2%)

Compiler

Compiled 517 to 366 computations (29.2% saved)

prune7.0ms (0.1%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New44246
Fresh000
Picked011
Done000
Total44347
Error
0.0b
Counts
47 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 x (*.f64 (*.f64 y 4) z))
35.4b
(*.f64 y (*.f64 -4 z))
27.3b
x
Compiler

Compiled 22 to 16 computations (27.3% saved)

localize5.0ms (0.1%)

Compiler

Compiled 14 to 9 computations (35.7% saved)

eval1.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked011
Done011
Total033
Error
0.0b
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 x (*.f64 (*.f64 y 4) z))
35.4b
(*.f64 y (*.f64 -4 z))
27.3b
x
Compiler

Compiled 22 to 16 computations (27.3% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Error
0.0b
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 x (*.f64 (*.f64 y 4) z))
35.4b
(*.f64 y (*.f64 -4 z))
27.3b
x
Compiler

Compiled 22 to 16 computations (27.3% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Error
0.0b
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 x (*.f64 (*.f64 y 4) z))
35.4b
(*.f64 y (*.f64 -4 z))
27.3b
x
Compiler

Compiled 22 to 16 computations (27.3% saved)

regimes24.0ms (0.3%)

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

6 calls:

5.0ms
(*.f64 (*.f64 y 4) z)
4.0ms
y
3.0ms
(-.f64 x (*.f64 (*.f64 y 4) z))
3.0ms
(*.f64 y 4)
3.0ms
z
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1(-.f64 x (*.f64 (*.f64 y 4) z))
0.0b1(*.f64 (*.f64 y 4) z)
0.0b1(*.f64 y 4)
Compiler

Compiled 52 to 37 computations (28.8% saved)

regimes325.0ms (4.6%)

Accuracy

Total -47.0b remaining (-315.9%)

Threshold costs -47.0b (-315.9%)

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

3 calls:

222.0ms
x
80.0ms
y
22.0ms
z
Results
ErrorSegmentsBranch
14.9b5x
17.0b3y
15.3b7z
Compiler

Compiled 21 to 15 computations (28.6% saved)

bsearch46.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
19.0ms
8.852354102860488e-64
1.484866341748834e-48
6.0ms
-2.191617451259806e-23
-1.2437386570459885e-23
12.0ms
-5.473582310907718e+48
-1.7441513098093626e+47
9.0ms
-1.5980212642970027e+66
-1.0479810544261887e+65
Results
41.0ms432×body256valid
Compiler

Compiled 394 to 309 computations (21.6% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02785
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(-.f64 x (*.f64 (*.f64 y 4) z))
(if (<=.f64 x -419999999999999982647546512014594158700201317039450923838434443264) x (if (<=.f64 x -4499999999999999953917378459022843008486199001088) (*.f64 y (*.f64 -4 z)) (if (<=.f64 x -4593811953432669/340282366920938463463374607431768211456) x (if (<=.f64 x 6183964726724345/220855883097298041197912187592864814478435487109452369765200775161577472) (*.f64 y (*.f64 -4 z)) x))))
x
Outputs
(-.f64 x (*.f64 (*.f64 y 4) z))
(if (<=.f64 x -419999999999999982647546512014594158700201317039450923838434443264) x (if (<=.f64 x -4499999999999999953917378459022843008486199001088) (*.f64 y (*.f64 -4 z)) (if (<=.f64 x -4593811953432669/340282366920938463463374607431768211456) x (if (<=.f64 x 6183964726724345/220855883097298041197912187592864814478435487109452369765200775161577472) (*.f64 y (*.f64 -4 z)) x))))
x
Compiler

Compiled 46 to 31 computations (32.6% saved)

soundness0.0ms (0%)

end26.0ms (0.4%)

Remove

(sort y z)

Compiler

Compiled 60 to 39 computations (35% saved)

Profiling

Loading profile data...