Details

Time bar (total: 7.9s)

analyze164.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 9 to 6 computations (33.3% saved)

sample3.4s (42.7%)

Results
3.1s8256×body256valid
246.0ms1141×body256infinite
Bogosity

preprocess631.0ms (7.9%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01352
11852
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) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 z y) x)
(*.f64 (+.f64 x z) y)
Outputs
(*.f64 (+.f64 x y) z)
(*.f64 z (+.f64 x y))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 x y))
(*.f64 (+.f64 z y) x)
(*.f64 x (+.f64 y z))
(*.f64 (+.f64 x z) y)
(*.f64 y (+.f64 x z))
Symmetry

(sort x y)

Compiler

Compiled 11 to 8 computations (27.3% saved)

simplify7.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

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

eval0.0ms (0%)

Compiler

Compiled 8 to 5 computations (37.5% 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) z)
Compiler

Compiled 8 to 5 computations (37.5% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 5 computations (64.3% saved)

series5.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite101.0ms (1.3%)

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

simplify1.4s (17.3%)

Algorithm
egg-herbie
Rules
5168×rational.json-simplify-35
2514×rational.json-simplify-2
1114×rational.json-simplify-53
1000×rational.json-simplify-1
782×rational.json-simplify-43
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
042821
194575
2185575
3450575
41908575
53687575
64570575
74905575
85055575
95201575
105345575
115680575
125683575
135756575
145898575
155926575
166114575
176271575
186415575
196559575
206703575
216847575
226991575
237135575
247279575
257383575
267383575
277527575
287671575
297815575
307959575
Stop Event
node limit
Counts
47 → 16
Calls
Call 1
Inputs
(*.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 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 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 (+.f64 x y) z) 0)
(+.f64 0 (*.f64 (+.f64 x y) z))
(+.f64 (*.f64 (+.f64 x y) (*.f64 z 1/2)) (*.f64 (+.f64 x y) (*.f64 z 1/2)))
(-.f64 (*.f64 (+.f64 x y) z) 0)
(/.f64 (*.f64 (+.f64 x y) z) 1)
(/.f64 (*.f64 (+.f64 x y) (+.f64 z z)) 2)
(/.f64 (*.f64 (+.f64 x y) (*.f64 z 4)) 4)
(/.f64 (*.f64 (*.f64 (+.f64 x y) z) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) z) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) z) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) z) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) z) 8)))) 64)
Outputs
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 z x)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 (+.f64 x y) z) 0)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 0 (*.f64 (+.f64 x y) z))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 (+.f64 x y) (*.f64 z 1/2)) (*.f64 (+.f64 x y) (*.f64 z 1/2)))
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(-.f64 (*.f64 (+.f64 x y) z) 0)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 (+.f64 x y) z) 1)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 (+.f64 x y) (+.f64 z z)) 2)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 (+.f64 x y) (*.f64 z 4)) 4)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 (*.f64 (+.f64 x y) z) 8) 8)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) z) 8)) 16)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) z) 8))) 32)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) z) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x y) z) 8)))) 64)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 z (+.f64 y x))

eval2.0ms (0%)

Compiler

Compiled 145 to 68 computations (53.1% saved)

prune3.0ms (0%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New13316
Fresh000
Picked011
Done000
Total13417
Error
0.0b
Counts
17 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 y z) (*.f64 z x))
0.0b
(*.f64 (+.f64 x y) z)
29.4b
(*.f64 z x)
30.6b
(*.f64 y z)
Compiler

Compiled 30 to 19 computations (36.7% saved)

localize3.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize3.0ms (0%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 19 to 6 computations (68.4% saved)

series3.0ms (0%)

Counts
1 → 18
Calls

9 calls:

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

rewrite1.2s (15.7%)

Algorithm
batch-egg-rewrite
Rules
1306×bool.json-1
1306×bool.json-2
1290×rational.json-simplify-35
1276×rational.json-1
1276×rational.json-2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0819
18013
222013
348013
499113
5220813
6471613
Stop Event
node limit
Counts
1 → 33
Calls
Call 1
Inputs
(+.f64 (*.f64 y z) (*.f64 z x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (+.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (+.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (+.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 z (+.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (+.f64 (+.f64 x x) (+.f64 y y)) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 z (+.f64 y x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 z (*.f64 x 1/2)) (*.f64 y (*.f64 z 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 y x) 1/2) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (*.f64 2 (+.f64 y x))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z z) (*.f64 (+.f64 y x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z z) (/.f64 (+.f64 y x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z z) (+.f64 (*.f64 x 1/2) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y x) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 z (+.f64 y x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 x 1/2) (*.f64 y 1/2)) (*.f64 z 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (*.f64 (+.f64 y x) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 y x)) (*.f64 z 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 z (*.f64 2 (+.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 z (+.f64 y y)) (*.f64 z (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 1/2) (*.f64 2 (+.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z 1/2) (+.f64 (+.f64 x x) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 z (+.f64 y x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) 1/2) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 z (*.f64 (+.f64 y x) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 y x) 2) (+.f64 z z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 z (+.f64 y x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 2 (+.f64 y x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 y x) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 z (+.f64 y x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 y x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 y x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 y x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 y x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 z (+.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 z (+.f64 y x)) (*.f64 z (+.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 z (+.f64 y x)) (*.f64 z (+.f64 y x)))))))

simplify248.0ms (3.1%)

Algorithm
egg-herbie
Rules
2198×rational.json-simplify-2
1912×rational.json-simplify-1
1738×rational.json-simplify-35
1352×rational.json-simplify-41
860×rational.json-simplify-52
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
086627
1195627
2434627
31333627
42653627
54197627
64606627
74825627
84931627
95044627
105208627
116215627
126998627
137585627
Stop Event
node limit
Counts
51 → 38
Calls
Call 1
Inputs
(*.f64 z x)
(*.f64 y z)
(*.f64 y z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 (+.f64 y x) z)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 y z)
(*.f64 z x)
(*.f64 z x)
(-.f64 (*.f64 z (+.f64 y x)) 0)
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z (+.f64 y x)) 1)
(*.f64 1 (*.f64 z (+.f64 y x)))
(*.f64 1 (*.f64 (+.f64 (+.f64 x x) (+.f64 y y)) (*.f64 z 1/2)))
(*.f64 2 (*.f64 (*.f64 z (+.f64 y x)) 1/2))
(*.f64 2 (+.f64 (*.f64 z (*.f64 x 1/2)) (*.f64 y (*.f64 z 1/2))))
(*.f64 2 (*.f64 (*.f64 (+.f64 y x) 1/2) z))
(*.f64 (*.f64 z (*.f64 2 (+.f64 y x))) 1/2)
(*.f64 (+.f64 z z) (*.f64 (+.f64 y x) 1/2))
(*.f64 (+.f64 z z) (/.f64 (+.f64 y x) 2))
(*.f64 (+.f64 z z) (+.f64 (*.f64 x 1/2) (*.f64 y 1/2)))
(*.f64 (+.f64 y x) z)
(*.f64 4 (/.f64 (*.f64 z (+.f64 y x)) 4))
(*.f64 4 (*.f64 (+.f64 (*.f64 x 1/2) (*.f64 y 1/2)) (*.f64 z 1/2)))
(*.f64 (*.f64 z (*.f64 (+.f64 y x) 4)) 1/4)
(*.f64 (*.f64 2 (+.f64 y x)) (*.f64 z 1/2))
(*.f64 1/2 (*.f64 z (*.f64 2 (+.f64 y x))))
(*.f64 1/2 (+.f64 (*.f64 z (+.f64 y y)) (*.f64 z (+.f64 x x))))
(*.f64 (*.f64 z 1/2) (*.f64 2 (+.f64 y x)))
(*.f64 (*.f64 z 1/2) (+.f64 (+.f64 x x) (+.f64 y y)))
(*.f64 (*.f64 (*.f64 z (+.f64 y x)) 1/2) 2)
(*.f64 (*.f64 (+.f64 y x) 1/2) (+.f64 z z))
(*.f64 1/4 (*.f64 z (*.f64 (+.f64 y x) 4)))
(*.f64 (/.f64 (+.f64 y x) 2) (+.f64 z z))
(*.f64 (/.f64 (*.f64 z (+.f64 y x)) 4) 4)
(/.f64 (*.f64 z (+.f64 y x)) 1)
(/.f64 (*.f64 z (*.f64 2 (+.f64 y x))) 2)
(/.f64 (*.f64 z (*.f64 (+.f64 y x) 4)) 4)
(/.f64 (*.f64 (*.f64 z (+.f64 y x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 y x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 y x)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 y x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 y x)) 8)))) 64)
Outputs
(*.f64 z x)
(*.f64 y z)
(*.f64 z y)
(*.f64 y z)
(*.f64 z y)
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 x y))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 x y))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 x y))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 x y))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 x y))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 x y))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 x y))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 x y))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 z (+.f64 x y))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 z (+.f64 x y))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 z (+.f64 x y))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 z (+.f64 x y))
(*.f64 y z)
(*.f64 z y)
(*.f64 z x)
(*.f64 z x)
(-.f64 (*.f64 z (+.f64 y x)) 0)
(*.f64 z (+.f64 x y))
(*.f64 z (+.f64 y x))
(*.f64 z (+.f64 x y))
(*.f64 (*.f64 z (+.f64 y x)) 1)
(*.f64 z (+.f64 x y))
(*.f64 1 (*.f64 z (+.f64 y x)))
(*.f64 z (+.f64 x y))
(*.f64 1 (*.f64 (+.f64 (+.f64 x x) (+.f64 y y)) (*.f64 z 1/2)))
(*.f64 z (+.f64 x y))
(*.f64 2 (*.f64 (*.f64 z (+.f64 y x)) 1/2))
(*.f64 z (+.f64 x y))
(*.f64 2 (+.f64 (*.f64 z (*.f64 x 1/2)) (*.f64 y (*.f64 z 1/2))))
(*.f64 z (+.f64 x y))
(*.f64 2 (*.f64 (*.f64 (+.f64 y x) 1/2) z))
(*.f64 z (+.f64 x y))
(*.f64 (*.f64 z (*.f64 2 (+.f64 y x))) 1/2)
(*.f64 z (+.f64 x y))
(*.f64 (+.f64 z z) (*.f64 (+.f64 y x) 1/2))
(*.f64 z (+.f64 x y))
(*.f64 (+.f64 z z) (/.f64 (+.f64 y x) 2))
(*.f64 z (+.f64 x y))
(*.f64 (+.f64 z z) (+.f64 (*.f64 x 1/2) (*.f64 y 1/2)))
(*.f64 z (+.f64 x y))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 x y))
(*.f64 4 (/.f64 (*.f64 z (+.f64 y x)) 4))
(*.f64 z (+.f64 x y))
(*.f64 4 (*.f64 (+.f64 (*.f64 x 1/2) (*.f64 y 1/2)) (*.f64 z 1/2)))
(*.f64 z (+.f64 x y))
(*.f64 (*.f64 z (*.f64 (+.f64 y x) 4)) 1/4)
(*.f64 z (+.f64 x y))
(*.f64 (*.f64 2 (+.f64 y x)) (*.f64 z 1/2))
(*.f64 z (+.f64 x y))
(*.f64 1/2 (*.f64 z (*.f64 2 (+.f64 y x))))
(*.f64 z (+.f64 x y))
(*.f64 1/2 (+.f64 (*.f64 z (+.f64 y y)) (*.f64 z (+.f64 x x))))
(*.f64 z (+.f64 x y))
(*.f64 (*.f64 z 1/2) (*.f64 2 (+.f64 y x)))
(*.f64 z (+.f64 x y))
(*.f64 (*.f64 z 1/2) (+.f64 (+.f64 x x) (+.f64 y y)))
(*.f64 z (+.f64 x y))
(*.f64 (*.f64 (*.f64 z (+.f64 y x)) 1/2) 2)
(*.f64 z (+.f64 x y))
(*.f64 (*.f64 (+.f64 y x) 1/2) (+.f64 z z))
(*.f64 z (+.f64 x y))
(*.f64 1/4 (*.f64 z (*.f64 (+.f64 y x) 4)))
(*.f64 z (+.f64 x y))
(*.f64 (/.f64 (+.f64 y x) 2) (+.f64 z z))
(*.f64 z (+.f64 x y))
(*.f64 (/.f64 (*.f64 z (+.f64 y x)) 4) 4)
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 z (+.f64 y x)) 1)
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 z (*.f64 2 (+.f64 y x))) 2)
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 z (*.f64 (+.f64 y x) 4)) 4)
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 (*.f64 z (+.f64 y x)) 8) 8)
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 2 (*.f64 (*.f64 z (+.f64 y x)) 8)) 16)
(*.f64 z (+.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 y x)) 8))) 32)
(*.f64 z (+.f64 x y))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 y x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 z (+.f64 y x)) 8)))) 64)
(*.f64 z (+.f64 x y))

eval636.0ms (8%)

Compiler

Compiled 351 to 175 computations (50.1% saved)

prune6.0ms (0.1%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New38038
Fresh000
Picked011
Done033
Total38442
Error
0.0b
Counts
42 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 y z) (*.f64 z x))
0.0b
(*.f64 (+.f64 x y) z)
29.4b
(*.f64 z x)
30.6b
(*.f64 y z)
Compiler

Compiled 30 to 19 computations (36.7% saved)

regimes21.0ms (0.3%)

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

5 calls:

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

Compiled 47 to 26 computations (44.7% saved)

regimes19.0ms (0.2%)

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

5 calls:

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

Compiled 40 to 25 computations (37.5% saved)

regimes34.0ms (0.4%)

Accuracy

Total -50.6b remaining (-633.5%)

Threshold costs -50.6b (-633.5%)

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

3 calls:

19.0ms
z
9.0ms
y
6.0ms
x
Results
ErrorSegmentsBranch
8.0b2x
8.7b2y
22.8b7z
Compiler

Compiled 21 to 14 computations (33.3% saved)

bsearch12.0ms (0.1%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
-3.3088772601939043e-93
-1.9208178602117571e-97
Results
10.0ms128×body256valid
Compiler

Compiled 126 to 90 computations (28.6% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01662
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 x y) z)
(if (<=.f64 x -2348542582773833/1174271291386916613944740298394668513687841274454159935353645485766104512557304221731849499192384351515967488) (*.f64 z x) (*.f64 y z))
(*.f64 y z)
Outputs
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 x y) z)
(if (<=.f64 x -2348542582773833/1174271291386916613944740298394668513687841274454159935353645485766104512557304221731849499192384351515967488) (*.f64 z x) (*.f64 y z))
(*.f64 y z)
Compiler

Compiled 37 to 23 computations (37.8% saved)

soundness0.0ms (0%)

end22.0ms (0.3%)

Remove

(sort x y)

Compiler

Compiled 48 to 23 computations (52.1% saved)

Profiling

Loading profile data...