Details

Time bar (total: 7.2s)

analyze785.0ms (10.9%)

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)

sample2.7s (37.1%)

Results
2.5s8255×body256valid
176.0ms1168×body256infinite
0.0msbody1024valid
Bogosity

preprocess6.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01776
12976
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 x z) (+.f64 y 1))
Symmetry

(sort x y)

Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify16.0ms (0.2%)

Algorithm
egg-herbie
Rules
rational_best.json-simplify-1
rational_best.json-simplify-2
rational_best.json-simplify-16
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
11419
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.1%)

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

rewrite90.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
884×rational_best.json-simplify-82
868×rational_best.json-simplify-57
672×rational_best.json-simplify-80
652×rational_best.json-simplify-43
590×rational_best.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
17619
224419
399819
4433819
Stop Event
node limit
Counts
1 → 10
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 z 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 (+.f64 x y) (+.f64 z 1))))))) (#(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 z 1)) (/.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) (*.f64 (+.f64 x y) (+.f64 z 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 2))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 (+.f64 x y) (+.f64 z 1))))))))

simplify158.0ms (2.2%)

Algorithm
egg-herbie
Rules
1574×rational_best.json-simplify-132
1358×rational_best.json-simplify-80
1224×rational_best.json-simplify-78
1018×rational_best.json-simplify-82
916×rational_best.json-simplify-47
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0361204
168868
2120868
3283868
41167868
53324868
66029868
Stop Event
node limit
Counts
46 → 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 z 1)) 0)
(-.f64 0 (neg.f64 (*.f64 (+.f64 x y) (+.f64 z 1))))
(/.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 1)
(/.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) (/.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) (*.f64 (+.f64 x y) (+.f64 z 1))))
(/.f64 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 2)) 2)
(/.f64 (neg.f64 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 2))) -2)
(pow.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 1)
(neg.f64 (neg.f64 (*.f64 (+.f64 x y) (+.f64 z 1))))
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 (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(*.f64 (+.f64 1 z) x)
(*.f64 (-.f64 z -1) x)
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(*.f64 (+.f64 1 z) x)
(*.f64 (-.f64 z -1) x)
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(*.f64 (+.f64 1 z) x)
(*.f64 (-.f64 z -1) x)
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.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 x (+.f64 y (*.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 x (+.f64 y (*.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 x (+.f64 y (*.f64 z (+.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 x (+.f64 y (*.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 x (+.f64 y (*.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 x (+.f64 y (*.f64 z (+.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 x (+.f64 y (*.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 x (+.f64 y (*.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 x (+.f64 y (*.f64 z (+.f64 y x))))
(+.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 0)
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(+.f64 0 (*.f64 (+.f64 x y) (+.f64 z 1)))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(-.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 0)
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(-.f64 0 (neg.f64 (*.f64 (+.f64 x y) (+.f64 z 1))))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(/.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 1)
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(/.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) (/.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) (*.f64 (+.f64 x y) (+.f64 z 1))))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(/.f64 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 2)) 2)
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(/.f64 (neg.f64 (*.f64 (+.f64 z 1) (*.f64 (+.f64 x y) 2))) -2)
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(pow.f64 (*.f64 (+.f64 x y) (+.f64 z 1)) 1)
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))
(neg.f64 (neg.f64 (*.f64 (+.f64 x y) (+.f64 z 1))))
(+.f64 (*.f64 y (+.f64 1 z)) (*.f64 (+.f64 1 z) x))
(*.f64 (+.f64 1 z) (+.f64 y x))
(*.f64 (-.f64 z -1) (+.f64 y x))

eval4.0ms (0.1%)

Compiler

Compiled 218 to 108 computations (50.5% saved)

prune9.0ms (0.1%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New19625
Fresh000
Picked011
Done000
Total19726
Error
0.0b
Counts
26 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 (+.f64 1 z) x) (*.f64 y (+.f64 1 z)))
0.0b
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
21.1b
(+.f64 y x)
31.0b
(*.f64 (-.f64 z -1) x)
42.2b
(*.f64 (+.f64 y x) z)
0.0b
(*.f64 (+.f64 x y) (+.f64 z 1))
32.9b
(*.f64 y (-.f64 z -1))
Compiler

Compiled 122 to 81 computations (33.6% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 23 to 6 computations (73.9% saved)

series2.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite74.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1872×rational_best.json-5
1870×rational_best.json-2
1870×rational_best.json-3
1870×rational_best.json-1
1870×exponential.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
16013
220613
385913
4377713
Stop Event
node limit
Counts
1 → 7
Calls
Call 1
Inputs
(*.f64 z (+.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (+.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (+.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (+.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 y x)) (/.f64 (*.f64 z (+.f64 y x)) (*.f64 z (+.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y x) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (+.f64 y x)) 1)))))

simplify172.0ms (2.4%)

Algorithm
egg-herbie
Rules
1754×rational_best.json-simplify-80
1354×rational_best.json-simplify-78
1086×rational_best.json-simplify-44
1040×rational_best.json-simplify-132
880×rational_best.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024523
136523
270523
3199523
4841523
52636523
64668523
76904523
Stop Event
node limit
Counts
43 → 12
Calls
Call 1
Inputs
(*.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 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 z (+.f64 y x)) 0)
(+.f64 0 (*.f64 z (+.f64 y x)))
(-.f64 (*.f64 z (+.f64 y x)) 0)
(/.f64 (*.f64 z (+.f64 y x)) 1)
(/.f64 (*.f64 z (+.f64 y x)) (/.f64 (*.f64 z (+.f64 y x)) (*.f64 z (+.f64 y x))))
(/.f64 (*.f64 (+.f64 y x) (+.f64 z z)) 2)
(pow.f64 (*.f64 z (+.f64 y x)) 1)
Outputs
(*.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 z x)
(*.f64 x z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(*.f64 y z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(*.f64 z x)
(*.f64 x z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 y z) (*.f64 z x))
(*.f64 (+.f64 y x) z)
(+.f64 (*.f64 z (+.f64 y x)) 0)
(*.f64 (+.f64 y x) z)
(+.f64 0 (*.f64 z (+.f64 y x)))
(*.f64 (+.f64 y x) z)
(-.f64 (*.f64 z (+.f64 y x)) 0)
(*.f64 (+.f64 y x) z)
(/.f64 (*.f64 z (+.f64 y x)) 1)
(*.f64 (+.f64 y x) z)
(/.f64 (*.f64 z (+.f64 y x)) (/.f64 (*.f64 z (+.f64 y x)) (*.f64 z (+.f64 y x))))
(*.f64 (+.f64 y x) z)
(/.f64 (*.f64 (+.f64 y x) (+.f64 z z)) 2)
(*.f64 (+.f64 y x) z)
(pow.f64 (*.f64 z (+.f64 y x)) 1)
(*.f64 (+.f64 y x) z)

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 y (-.f64 z -1))
Compiler

Compiled 14 to 9 computations (35.7% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite69.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1630×rational_best.json-5
1628×rational_best.json-2
1628×rational_best.json-3
1628×rational_best.json-1
1628×exponential.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15913
218913
376113
4329513
Stop Event
node limit
Counts
1 → 7
Calls
Call 1
Inputs
(*.f64 y (-.f64 z -1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 z 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 z 1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 z 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 z 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 z 1)) (/.f64 (*.f64 y (+.f64 z 1)) (*.f64 y (+.f64 z 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 z (+.f64 z 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 z 1)) 1)))))

simplify165.0ms (2.3%)

Algorithm
egg-herbie
Rules
1910×rational_best.json-simplify-82
1768×rational_best.json-simplify-80
1354×rational_best.json-simplify-78
1064×rational_best.json-simplify-44
1040×rational_best.json-simplify-132
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024379
141379
278379
3197379
4806379
52550379
64409379
76542379
Stop Event
node limit
Counts
31 → 12
Calls
Call 1
Inputs
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
y
(+.f64 (*.f64 y z) y)
(+.f64 (*.f64 y z) y)
(+.f64 (*.f64 y z) y)
(*.f64 y z)
(+.f64 (*.f64 y z) y)
(+.f64 (*.f64 y z) y)
(+.f64 (*.f64 y z) y)
(*.f64 y z)
(+.f64 (*.f64 y z) y)
(+.f64 (*.f64 y z) y)
(+.f64 (*.f64 y z) y)
(+.f64 (*.f64 y (+.f64 z 1)) 0)
(+.f64 0 (*.f64 y (+.f64 z 1)))
(-.f64 (*.f64 y (+.f64 z 1)) 0)
(/.f64 (*.f64 y (+.f64 z 1)) 1)
(/.f64 (*.f64 y (+.f64 z 1)) (/.f64 (*.f64 y (+.f64 z 1)) (*.f64 y (+.f64 z 1))))
(/.f64 (*.f64 y (+.f64 z (+.f64 z 2))) 2)
(pow.f64 (*.f64 y (+.f64 z 1)) 1)
Outputs
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
y
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(*.f64 y z)
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(+.f64 (*.f64 y z) y)
(+.f64 y (*.f64 y z))
(+.f64 (*.f64 y (+.f64 z 1)) 0)
(*.f64 y (+.f64 1 z))
(+.f64 0 (*.f64 y (+.f64 z 1)))
(*.f64 y (+.f64 1 z))
(-.f64 (*.f64 y (+.f64 z 1)) 0)
(*.f64 y (+.f64 1 z))
(/.f64 (*.f64 y (+.f64 z 1)) 1)
(*.f64 y (+.f64 1 z))
(/.f64 (*.f64 y (+.f64 z 1)) (/.f64 (*.f64 y (+.f64 z 1)) (*.f64 y (+.f64 z 1))))
(*.f64 y (+.f64 1 z))
(/.f64 (*.f64 y (+.f64 z (+.f64 z 2))) 2)
(*.f64 y (+.f64 1 z))
(pow.f64 (*.f64 y (+.f64 z 1)) 1)
(*.f64 y (+.f64 1 z))

localize5.0ms (0.1%)

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)

series1.0ms (0%)

Counts
1 → 24
Calls

9 calls:

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

rewrite73.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1872×rational_best.json-5
1870×rational_best.json-2
1870×rational_best.json-3
1870×rational_best.json-1
1870×exponential.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
16013
220613
385913
4377713
Stop Event
node limit
Counts
1 → 7
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) 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) z) (/.f64 (*.f64 (+.f64 y x) z) (*.f64 (+.f64 y x) z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y x) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 y x) z) 1)))))

simplify169.0ms (2.3%)

Algorithm
egg-herbie
Rules
1750×rational_best.json-simplify-80
1350×rational_best.json-simplify-78
1082×rational_best.json-simplify-44
1036×rational_best.json-simplify-132
878×rational_best.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
023517
136367
270367
3199367
4842367
52658367
64699367
76935367
Stop Event
node limit
Counts
31 → 13
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) z) 0)
(/.f64 (*.f64 (+.f64 y x) z) 1)
(/.f64 (*.f64 (+.f64 y x) z) (/.f64 (*.f64 (+.f64 y x) z) (*.f64 (+.f64 y x) z)))
(/.f64 (*.f64 (+.f64 y x) (+.f64 z z)) 2)
(pow.f64 (*.f64 (+.f64 y x) z) 1)
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) 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) z) (/.f64 (*.f64 (+.f64 y x) z) (*.f64 (+.f64 y x) z)))
(+.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))
(pow.f64 (*.f64 (+.f64 y x) z) 1)
(+.f64 (*.f64 z x) (*.f64 z y))
(*.f64 z (+.f64 x y))

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 9 computations (35.7% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite67.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
1630×rational_best.json-5
1628×rational_best.json-2
1628×rational_best.json-3
1628×rational_best.json-1
1628×exponential.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15913
218913
376213
4330113
Stop Event
node limit
Counts
1 → 7
Calls
Call 1
Inputs
(*.f64 (-.f64 z -1) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 z 1) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 z 1) x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 z 1) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z 1) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z 1) x) (/.f64 (*.f64 (+.f64 z 1) x) (*.f64 (+.f64 z 1) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z 1) (+.f64 x x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 z 1) x) 1)))))

simplify165.0ms (2.3%)

Algorithm
egg-herbie
Rules
1882×rational_best.json-simplify-82
1750×rational_best.json-simplify-80
1350×rational_best.json-simplify-78
1080×rational_best.json-simplify-44
1036×rational_best.json-simplify-132
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
023379
136379
270379
3191379
4810379
52571379
64392379
76509379
Stop Event
node limit
Counts
31 → 15
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 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(*.f64 (+.f64 1 z) x)
(+.f64 (*.f64 (+.f64 z 1) x) 0)
(+.f64 0 (*.f64 (+.f64 z 1) x))
(-.f64 (*.f64 (+.f64 z 1) x) 0)
(/.f64 (*.f64 (+.f64 z 1) x) 1)
(/.f64 (*.f64 (+.f64 z 1) x) (/.f64 (*.f64 (+.f64 z 1) x) (*.f64 (+.f64 z 1) x)))
(/.f64 (*.f64 (+.f64 z 1) (+.f64 x x)) 2)
(pow.f64 (*.f64 (+.f64 z 1) x) 1)
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 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(*.f64 (+.f64 1 z) x)
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(+.f64 (*.f64 (+.f64 z 1) x) 0)
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(+.f64 0 (*.f64 (+.f64 z 1) x))
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(-.f64 (*.f64 (+.f64 z 1) x) 0)
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(/.f64 (*.f64 (+.f64 z 1) x) 1)
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(/.f64 (*.f64 (+.f64 z 1) x) (/.f64 (*.f64 (+.f64 z 1) x) (*.f64 (+.f64 z 1) x)))
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(/.f64 (*.f64 (+.f64 z 1) (+.f64 x x)) 2)
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))
(pow.f64 (*.f64 (+.f64 z 1) x) 1)
(*.f64 x (+.f64 z 1))
(*.f64 x (-.f64 z -1))

eval7.0ms (0.1%)

Compiler

Compiled 395 to 156 computations (60.5% saved)

prune11.0ms (0.1%)

Pruning

10 alts after pruning (6 fresh and 4 done)

PrunedKeptTotal
New46652
Fresh101
Picked011
Done235
Total491059
Error
0.0b
Counts
59 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
42.2b
(+.f64 (*.f64 z x) (*.f64 z y))
32.9b
(+.f64 (*.f64 y z) y)
21.1b
(+.f64 y x)
31.0b
(*.f64 (-.f64 z -1) x)
42.2b
(*.f64 (+.f64 y x) z)
0.0b
(*.f64 (+.f64 x y) (+.f64 z 1))
52.8b
(*.f64 z y)
52.0b
(*.f64 z x)
43.0b
y
41.6b
x
Compiler

Compiled 70 to 47 computations (32.9% saved)

localize4.0ms (0.1%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize3.0ms (0%)

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

Compiled 13 to 5 computations (61.5% saved)

series2.0ms (0%)

Counts
1 → 15
Calls

6 calls:

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

rewrite70.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1704×rational_best.json-5
1702×rational_best.json-2
1702×rational_best.json-3
1702×rational_best.json-1
1702×exponential.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
15213
218313
377413
4341413
Stop Event
node limit
Counts
1 → 28
Calls
Call 1
Inputs
(+.f64 (*.f64 y z) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 y (*.f64 y z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 z 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (+.f64 z 1) (/.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (+.f64 z 1) (*.f64 y (/.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y z))) (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 z (/.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 z (*.f64 y (/.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 y z)) (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 y z)) (*.f64 (+.f64 y (*.f64 y z)) (/.f64 1 (+.f64 y (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 y z)) (/.f64 1 (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 y (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))) (+.f64 y (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 z 1) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 y (*.f64 y z))) (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))) (/.f64 1 (+.f64 y (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 y) (*.f64 (+.f64 z 1) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 y) (+.f64 (*.f64 y y) (*.f64 y (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y y) (*.f64 (+.f64 z 1) (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 y z)) (/.f64 1 (+.f64 y (*.f64 y z)))) (+.f64 y (*.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z)))) (*.f64 (+.f64 y (*.f64 y z)) (*.f64 (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))) (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 y (*.f64 y z))) (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1)))) (*.f64 y (*.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))) (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))) (+.f64 y (*.f64 y z))) (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (+.f64 y (*.f64 y z)) (/.f64 1 (+.f64 y (*.f64 y z)))) (+.f64 y (*.f64 y z))) (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y (*.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y (*.f64 y z)) (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 z 1) (+.f64 y y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 y (*.f64 y z)) 1)))))

simplify200.0ms (2.8%)

Algorithm
egg-herbie
Rules
1160×rational_best.json-simplify-132
1106×rational_best.json-simplify-2
796×rational_best.json-simplify-54
704×rational_best.json-simplify-80
676×rational_best.json-simplify-44
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
073955
1155903
2355897
31223897
43206897
56459881
Stop Event
node limit
Counts
43 → 54
Calls
Call 1
Inputs
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 y (+.f64 1 z))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
y
(*.f64 y z)
(*.f64 y z)
(-.f64 (+.f64 y (*.f64 y z)) 0)
(*.f64 y (+.f64 z 1))
(*.f64 y (*.f64 (+.f64 z 1) (/.f64 y y)))
(*.f64 y (*.f64 (+.f64 z 1) (*.f64 y (/.f64 1 y))))
(*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y z))) (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))))
(*.f64 y (+.f64 z (/.f64 y y)))
(*.f64 y (+.f64 z (*.f64 y (/.f64 1 y))))
(*.f64 (+.f64 y (*.f64 y z)) 1)
(*.f64 (+.f64 y (*.f64 y z)) (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))))
(*.f64 (+.f64 y (*.f64 y z)) (*.f64 (+.f64 y (*.f64 y z)) (/.f64 1 (+.f64 y (*.f64 y z)))))
(*.f64 (+.f64 y (*.f64 y z)) (/.f64 1 (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z)))))
(*.f64 1 (+.f64 y (*.f64 y z)))
(*.f64 (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))) (+.f64 y (*.f64 y z)))
(*.f64 (+.f64 z 1) y)
(*.f64 (/.f64 1 (+.f64 y (*.f64 y z))) (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))))
(*.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))) (/.f64 1 (+.f64 y (*.f64 y z))))
(*.f64 (/.f64 1 y) (*.f64 (+.f64 z 1) (*.f64 y y)))
(*.f64 (/.f64 1 y) (+.f64 (*.f64 y y) (*.f64 y (*.f64 y z))))
(*.f64 (*.f64 y y) (*.f64 (+.f64 z 1) (/.f64 1 y)))
(*.f64 (*.f64 (+.f64 y (*.f64 y z)) (/.f64 1 (+.f64 y (*.f64 y z)))) (+.f64 y (*.f64 y z)))
(*.f64 (/.f64 1 (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z)))) (*.f64 (+.f64 y (*.f64 y z)) (*.f64 (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))) (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))))))
(*.f64 (/.f64 (/.f64 1 (+.f64 y (*.f64 y z))) (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1)))) (*.f64 y (*.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))) (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1)))))
(*.f64 (/.f64 (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))) (+.f64 y (*.f64 y z))) (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))))
(*.f64 (/.f64 (*.f64 (+.f64 y (*.f64 y z)) (/.f64 1 (+.f64 y (*.f64 y z)))) (+.f64 y (*.f64 y z))) (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))))
(/.f64 (+.f64 y (*.f64 y z)) 1)
(/.f64 (+.f64 y (*.f64 y z)) (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))))
(/.f64 (*.f64 (+.f64 z 1) (+.f64 y y)) 2)
(pow.f64 (+.f64 y (*.f64 y z)) 1)
Outputs
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 z -1) -1)))
(neg.f64 (*.f64 y (+.f64 -1 (neg.f64 z))))
(*.f64 (+.f64 -1 (neg.f64 z)) (neg.f64 y))
(*.f64 y (neg.f64 (+.f64 -1 (neg.f64 z))))
(*.f64 y (-.f64 1 (neg.f64 z)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 z -1) -1)))
(neg.f64 (*.f64 y (+.f64 -1 (neg.f64 z))))
(*.f64 (+.f64 -1 (neg.f64 z)) (neg.f64 y))
(*.f64 y (neg.f64 (+.f64 -1 (neg.f64 z))))
(*.f64 y (-.f64 1 (neg.f64 z)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 z -1) -1)))
(neg.f64 (*.f64 y (+.f64 -1 (neg.f64 z))))
(*.f64 (+.f64 -1 (neg.f64 z)) (neg.f64 y))
(*.f64 y (neg.f64 (+.f64 -1 (neg.f64 z))))
(*.f64 y (-.f64 1 (neg.f64 z)))
(*.f64 -1 (*.f64 y (-.f64 (*.f64 -1 z) 1)))
(*.f64 -1 (*.f64 y (+.f64 (*.f64 z -1) -1)))
(neg.f64 (*.f64 y (+.f64 -1 (neg.f64 z))))
(*.f64 (+.f64 -1 (neg.f64 z)) (neg.f64 y))
(*.f64 y (neg.f64 (+.f64 -1 (neg.f64 z))))
(*.f64 y (-.f64 1 (neg.f64 z)))
y
(*.f64 y z)
(*.f64 y z)
(-.f64 (+.f64 y (*.f64 y z)) 0)
(+.f64 y (*.f64 y z))
(*.f64 y (+.f64 z 1))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(*.f64 y (*.f64 (+.f64 z 1) (/.f64 y y)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(*.f64 y (*.f64 (+.f64 z 1) (*.f64 y (/.f64 1 y))))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y z))) (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))))
(*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y z))) (*.f64 (+.f64 y (*.f64 y z)) (+.f64 1 z))))
(*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (/.f64 (+.f64 1 z) (+.f64 y (*.f64 y z)))))
(*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (/.f64 (-.f64 z -1) (+.f64 y (*.f64 y z)))))
(*.f64 (+.f64 1 z) (*.f64 (+.f64 y (*.f64 y z)) (/.f64 y (+.f64 y (*.f64 y z)))))
(*.f64 (*.f64 (+.f64 y (*.f64 y z)) (+.f64 1 z)) (/.f64 y (+.f64 y (*.f64 y z))))
(*.f64 y (+.f64 z (/.f64 y y)))
(*.f64 y (+.f64 z (*.f64 y (/.f64 1 y))))
(*.f64 (+.f64 y (*.f64 y z)) 1)
(+.f64 y (*.f64 y z))
(*.f64 (+.f64 y (*.f64 y z)) (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))))
(+.f64 y (*.f64 y z))
(*.f64 (+.f64 y (*.f64 y z)) (*.f64 (+.f64 y (*.f64 y z)) (/.f64 1 (+.f64 y (*.f64 y z)))))
(+.f64 y (*.f64 y z))
(*.f64 (+.f64 y (*.f64 y z)) (/.f64 1 (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z)))))
(+.f64 y (*.f64 y z))
(*.f64 1 (+.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y z))
(*.f64 (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))) (+.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y z))
(*.f64 (+.f64 z 1) y)
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(*.f64 (/.f64 1 (+.f64 y (*.f64 y z))) (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))))
(*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y z))) (*.f64 (+.f64 y (*.f64 y z)) (+.f64 1 z))))
(*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (/.f64 (+.f64 1 z) (+.f64 y (*.f64 y z)))))
(*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (/.f64 (-.f64 z -1) (+.f64 y (*.f64 y z)))))
(*.f64 (+.f64 1 z) (*.f64 (+.f64 y (*.f64 y z)) (/.f64 y (+.f64 y (*.f64 y z)))))
(*.f64 (*.f64 (+.f64 y (*.f64 y z)) (+.f64 1 z)) (/.f64 y (+.f64 y (*.f64 y z))))
(*.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))) (/.f64 1 (+.f64 y (*.f64 y z))))
(*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y z))) (*.f64 (+.f64 y (*.f64 y z)) (+.f64 1 z))))
(*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (/.f64 (+.f64 1 z) (+.f64 y (*.f64 y z)))))
(*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (/.f64 (-.f64 z -1) (+.f64 y (*.f64 y z)))))
(*.f64 (+.f64 1 z) (*.f64 (+.f64 y (*.f64 y z)) (/.f64 y (+.f64 y (*.f64 y z)))))
(*.f64 (*.f64 (+.f64 y (*.f64 y z)) (+.f64 1 z)) (/.f64 y (+.f64 y (*.f64 y z))))
(*.f64 (/.f64 1 y) (*.f64 (+.f64 z 1) (*.f64 y y)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(*.f64 (/.f64 1 y) (+.f64 (*.f64 y y) (*.f64 y (*.f64 y z))))
(*.f64 (/.f64 1 y) (*.f64 y (+.f64 y (*.f64 y z))))
(*.f64 y (*.f64 (/.f64 1 y) (+.f64 y (*.f64 y z))))
(*.f64 y (/.f64 (+.f64 y (*.f64 y z)) y))
(*.f64 (*.f64 y y) (*.f64 (+.f64 z 1) (/.f64 1 y)))
(*.f64 y (+.f64 1 z))
(*.f64 y (-.f64 z -1))
(*.f64 (*.f64 (+.f64 y (*.f64 y z)) (/.f64 1 (+.f64 y (*.f64 y z)))) (+.f64 y (*.f64 y z)))
(+.f64 y (*.f64 y z))
(*.f64 (/.f64 1 (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z)))) (*.f64 (+.f64 y (*.f64 y z)) (*.f64 (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))) (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))))))
(+.f64 y (*.f64 y z))
(*.f64 (/.f64 (/.f64 1 (+.f64 y (*.f64 y z))) (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1)))) (*.f64 y (*.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))) (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1)))))
(*.f64 y (*.f64 (/.f64 (/.f64 1 (+.f64 y (*.f64 y z))) (*.f64 (+.f64 y (*.f64 y z)) (*.f64 y (+.f64 1 z)))) (*.f64 (+.f64 y (*.f64 y z)) (*.f64 (*.f64 (+.f64 y (*.f64 y z)) (*.f64 y (+.f64 1 z))) (+.f64 1 z)))))
(*.f64 y (*.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (/.f64 (+.f64 1 z) (+.f64 y (*.f64 y z))))) (/.f64 (*.f64 (+.f64 y (*.f64 y z)) (+.f64 1 z)) (*.f64 (+.f64 y (*.f64 y z)) (*.f64 y (+.f64 1 z))))))
(*.f64 y (*.f64 (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (/.f64 (-.f64 z -1) (+.f64 y (*.f64 y z))))) (/.f64 (*.f64 (+.f64 y (*.f64 y z)) (-.f64 z -1)) (*.f64 (+.f64 y (*.f64 y z)) (*.f64 y (-.f64 z -1))))))
(*.f64 (+.f64 y (*.f64 y z)) (*.f64 (*.f64 (+.f64 1 z) (*.f64 (+.f64 y (*.f64 y z)) (/.f64 y (+.f64 y (*.f64 y z))))) (/.f64 (*.f64 y (+.f64 1 z)) (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 1 z))))))
(*.f64 (+.f64 y (*.f64 y z)) (*.f64 (*.f64 (*.f64 (+.f64 y (*.f64 y z)) (+.f64 1 z)) (/.f64 y (+.f64 y (*.f64 y z)))) (/.f64 (*.f64 y (+.f64 1 z)) (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 1 z))))))
(*.f64 (/.f64 (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))) (+.f64 y (*.f64 y z))) (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))))
(*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y z))) (*.f64 (+.f64 y (*.f64 y z)) (+.f64 1 z))))
(*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (/.f64 (+.f64 1 z) (+.f64 y (*.f64 y z)))))
(*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (/.f64 (-.f64 z -1) (+.f64 y (*.f64 y z)))))
(*.f64 (+.f64 1 z) (*.f64 (+.f64 y (*.f64 y z)) (/.f64 y (+.f64 y (*.f64 y z)))))
(*.f64 (*.f64 (+.f64 y (*.f64 y z)) (+.f64 1 z)) (/.f64 y (+.f64 y (*.f64 y z))))
(*.f64 (/.f64 (*.f64 (+.f64 y (*.f64 y z)) (/.f64 1 (+.f64 y (*.f64 y z)))) (+.f64 y (*.f64 y z))) (*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (+.f64 z 1))))
(*.f64 y (*.f64 (/.f64 1 (+.f64 y (*.f64 y z))) (*.f64 (+.f64 y (*.f64 y z)) (+.f64 1 z))))
(*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (/.f64 (+.f64 1 z) (+.f64 y (*.f64 y z)))))
(*.f64 y (*.f64 (+.f64 y (*.f64 y z)) (/.f64 (-.f64 z -1) (+.f64 y (*.f64 y z)))))
(*.f64 (+.f64 1 z) (*.f64 (+.f64 y (*.f64 y z)) (/.f64 y (+.f64 y (*.f64 y z)))))
(*.f64 (*.f64 (+.f64 y (*.f64 y z)) (+.f64 1 z)) (/.f64 y (+.f64 y (*.f64 y z))))
(/.f64 (+.f64 y (*.f64 y z)) 1)
(+.f64 y (*.f64 y z))
(/.f64 (+.f64 y (*.f64 y z)) (/.f64 (+.f64 y (*.f64 y z)) (+.f64 y (*.f64 y z))))
(+.f64 y (*.f64 y z))
(/.f64 (*.f64 (+.f64 z 1) (+.f64 y y)) 2)
(/.f64 (*.f64 (+.f64 1 z) (+.f64 y y)) 2)
(/.f64 (*.f64 (-.f64 z -1) (+.f64 y y)) 2)
(pow.f64 (+.f64 y (*.f64 y z)) 1)
(+.f64 y (*.f64 y z))

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 19 to 6 computations (68.4% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite93.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
896×rational_best.json-simplify-57
680×rational_best.json-simplify-80
628×rational_best.json-simplify-44
622×rational_best.json-simplify-43
484×rational_best.json-5
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0813
17113
224613
3102513
4466813
Stop Event
node limit
Counts
1 → 38
Calls
Call 1
Inputs
(+.f64 (*.f64 z x) (*.f64 z y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (*.f64 (+.f64 x y) (/.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (*.f64 (+.f64 x y) (*.f64 z (/.f64 1 z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (*.f64 (*.f64 z (+.f64 x y)) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (+.f64 x y)) (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (+.f64 x y)) (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (+.f64 x y)) (/.f64 1 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 z (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))) (*.f64 z (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 z) (*.f64 (+.f64 x y) (*.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 z) (+.f64 (*.f64 x (*.f64 z z)) (*.f64 z (*.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z z) (*.f64 (+.f64 x y) (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (/.f64 1 (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) (*.f64 z z)) (/.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (+.f64 x y))) (*.f64 z (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))) (*.f64 z (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))) (*.f64 (*.f64 z (+.f64 x y)) (*.f64 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))) (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 x y)) (*.f64 z (*.f64 (+.f64 x y) (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))) (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (+.f64 x y))) (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))) (*.f64 (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))) (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (+.f64 x y))) (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 z (+.f64 x y)) z) z)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))) (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 x y)) (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (+.f64 z z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (+.f64 x y) (+.f64 z z))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 z (+.f64 x y))))))))

simplify247.0ms (3.4%)

Algorithm
egg-herbie
Rules
1000×rational_best.json-simplify-2
894×rational_best.json-simplify-80
826×rational_best.json-simplify-49
810×rational_best.json-simplify-78
776×rational_best.json-simplify-129
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0100926
1230926
2538926
31770926
43353926
57032926
Stop Event
node limit
Counts
74 → 45
Calls
Call 1
Inputs
(*.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 (*.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 z (+.f64 x y)) 0)
(-.f64 0 (neg.f64 (*.f64 z (+.f64 x y))))
(*.f64 z (+.f64 x y))
(*.f64 z (*.f64 (+.f64 x y) (/.f64 z z)))
(*.f64 z (*.f64 (+.f64 x y) (*.f64 z (/.f64 1 z))))
(*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (*.f64 (*.f64 z (+.f64 x y)) (+.f64 x y))))
(*.f64 (*.f64 z (+.f64 x y)) 1)
(*.f64 (*.f64 z (+.f64 x y)) (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))))
(*.f64 (*.f64 z (+.f64 x y)) (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (+.f64 x y))))
(*.f64 (*.f64 z (+.f64 x y)) (/.f64 1 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))))
(*.f64 1 (*.f64 z (+.f64 x y)))
(*.f64 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))) (*.f64 z (+.f64 x y)))
(*.f64 (+.f64 x y) z)
(*.f64 (+.f64 x y) (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 z z))))
(*.f64 (/.f64 1 z) (*.f64 (+.f64 x y) (*.f64 z z)))
(*.f64 (/.f64 1 z) (+.f64 (*.f64 x (*.f64 z z)) (*.f64 z (*.f64 z y))))
(*.f64 (*.f64 z z) (*.f64 (+.f64 x y) (/.f64 1 z)))
(*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))
(*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (/.f64 1 (*.f64 z (+.f64 x y))))
(*.f64 (*.f64 (+.f64 x y) (*.f64 z z)) (/.f64 1 z))
(*.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (+.f64 x y))) (*.f64 z (+.f64 x y)))
(*.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))) (*.f64 z (+.f64 x y)))
(*.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))) (*.f64 (*.f64 z (+.f64 x y)) (*.f64 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))) (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))))))
(*.f64 (/.f64 1 (+.f64 x y)) (*.f64 z (*.f64 (+.f64 x y) (+.f64 x y))))
(*.f64 (/.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))))
(*.f64 (/.f64 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))) (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))
(*.f64 (/.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (+.f64 x y))) (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))
(*.f64 (/.f64 (/.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))) (*.f64 (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))))
(*.f64 (/.f64 (/.f64 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))) (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))))
(*.f64 (/.f64 (/.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (+.f64 x y))) (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))))
(*.f64 (/.f64 (*.f64 z (+.f64 x y)) z) z)
(*.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))) (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))
(/.f64 (*.f64 z (+.f64 x y)) 1)
(/.f64 (*.f64 z (+.f64 x y)) (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))))
(/.f64 (*.f64 (+.f64 x y) (+.f64 z z)) 2)
(/.f64 (neg.f64 (*.f64 (+.f64 x y) (+.f64 z z))) -2)
(pow.f64 (*.f64 z (+.f64 x y)) 1)
(neg.f64 (neg.f64 (*.f64 z (+.f64 x y))))
Outputs
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 z (+.f64 y x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 z (+.f64 y x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.f64 z (+.f64 y x))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 x) (*.f64 -1 y)) z))
(*.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 z x)
(*.f64 x 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 x 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 x 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 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 z (+.f64 x y)) 0)
(*.f64 z (+.f64 y x))
(-.f64 0 (neg.f64 (*.f64 z (+.f64 x y))))
(*.f64 z (+.f64 y x))
(*.f64 z (+.f64 x y))
(*.f64 z (+.f64 y x))
(*.f64 z (*.f64 (+.f64 x y) (/.f64 z z)))
(*.f64 z (+.f64 y x))
(*.f64 z (*.f64 (+.f64 x y) (*.f64 z (/.f64 1 z))))
(*.f64 z (+.f64 y x))
(*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (*.f64 (*.f64 z (+.f64 x y)) (+.f64 x y))))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z (+.f64 x y)) 1)
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z (+.f64 x y)) (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z (+.f64 x y)) (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (+.f64 x y))))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z (+.f64 x y)) (/.f64 1 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))))
(*.f64 z (+.f64 y x))
(*.f64 1 (*.f64 z (+.f64 x y)))
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))) (*.f64 z (+.f64 x y)))
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 x y) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 x y) (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 z z))))
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 1 z) (*.f64 (+.f64 x y) (*.f64 z z)))
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 1 z) (+.f64 (*.f64 x (*.f64 z z)) (*.f64 z (*.f64 z y))))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z z) (*.f64 (+.f64 x y) (/.f64 1 z)))
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (/.f64 1 (*.f64 z (+.f64 x y))))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 (+.f64 x y) (*.f64 z z)) (/.f64 1 z))
(*.f64 z (+.f64 y x))
(*.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (+.f64 x y))) (*.f64 z (+.f64 x y)))
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))) (*.f64 z (+.f64 x y)))
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))) (*.f64 (*.f64 z (+.f64 x y)) (*.f64 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))) (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))))))
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 1 (+.f64 x y)) (*.f64 z (*.f64 (+.f64 x y) (+.f64 x y))))
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))))
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))) (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (+.f64 x y))) (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 (/.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))) (*.f64 (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))))
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 (/.f64 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))) (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))))
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 (/.f64 (*.f64 z (*.f64 (/.f64 1 (*.f64 z (+.f64 x y))) (+.f64 x y))) (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))) (*.f64 (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z)))))
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 (*.f64 z (+.f64 x y)) z) z)
(*.f64 z (+.f64 y x))
(*.f64 (/.f64 (/.f64 1 (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y)))) (*.f64 z (+.f64 x y))) (*.f64 (+.f64 x y) (*.f64 (+.f64 x y) (*.f64 z z))))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 z (+.f64 x y)) 1)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 z (+.f64 x y)) (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 (+.f64 x y) (+.f64 z z)) 2)
(*.f64 z (+.f64 y x))
(/.f64 (neg.f64 (*.f64 (+.f64 x y) (+.f64 z z))) -2)
(*.f64 z (+.f64 y x))
(pow.f64 (*.f64 z (+.f64 x y)) 1)
(*.f64 z (+.f64 y x))
(neg.f64 (neg.f64 (*.f64 z (+.f64 x y))))
(*.f64 z (+.f64 y x))

eval16.0ms (0.2%)

Compiler

Compiled 1633 to 438 computations (73.2% saved)

prune18.0ms (0.2%)

Pruning

11 alts after pruning (3 fresh and 8 done)

PrunedKeptTotal
New98199
Fresh022
Picked011
Done077
Total9811109
Error
0.0b
Counts
109 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
42.2b
(+.f64 (*.f64 z x) (*.f64 z y))
32.9b
(+.f64 (*.f64 y z) y)
21.1b
(+.f64 y x)
53.4b
(*.f64 (/.f64 1 z) (*.f64 (+.f64 x y) (*.f64 z z)))
31.0b
(*.f64 (-.f64 z -1) x)
42.2b
(*.f64 (+.f64 y x) z)
0.0b
(*.f64 (+.f64 x y) (+.f64 z 1))
52.8b
(*.f64 z y)
52.0b
(*.f64 z x)
43.0b
y
41.6b
x
Compiler

Compiled 84 to 56 computations (33.3% saved)

localize12.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
10.7b
(*.f64 (+.f64 x y) (*.f64 z z))
19.9b
(*.f64 (/.f64 1 z) (*.f64 (+.f64 x y) (*.f64 z z)))
Compiler

Compiled 34 to 12 computations (64.7% saved)

series3.0ms (0%)

Counts
2 → 72
Calls

18 calls:

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

rewrite133.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
1040×rational_best.json-simplify-54
850×rational_best.json-simplify-47
730×rational_best.json-5
728×rational_best.json-2
728×rational_best.json-3
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01150
19632
233132
3144232
4788932
Stop Event
node limit
Counts
2 → 14
Calls
Call 1
Inputs
(*.f64 (/.f64 1 z) (*.f64 (+.f64 x y) (*.f64 z z)))
(*.f64 (+.f64 x y) (*.f64 z z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 z (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 z (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 z (+.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (+.f64 x y)) (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 (+.f64 x y) 2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (+.f64 x y)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x y) (*.f64 z z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x y) (*.f64 z z)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x y) (*.f64 z z)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (*.f64 z z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) (*.f64 z z)) (/.f64 (*.f64 (+.f64 x y) (*.f64 z z)) (*.f64 (+.f64 x y) (*.f64 z z))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z (*.f64 z (*.f64 (+.f64 x y) 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 x y) (*.f64 z z)) 1)))))

simplify188.0ms (2.6%)

Algorithm
egg-herbie
Rules
1498×rational_best.json-simplify-80
1382×rational_best.json-simplify-2
1132×rational_best.json-simplify-78
816×rational_best.json-simplify-47
782×rational_best.json-simplify-82
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0421664
1711304
21481304
34191304
421681304
551791304
676601304
Stop Event
node limit
Counts
86 → 29
Calls
Call 1
Inputs
(*.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 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 y (pow.f64 z 2))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) x)
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(*.f64 (pow.f64 z 2) x)
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(*.f64 (pow.f64 z 2) x)
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(*.f64 y (pow.f64 z 2))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(*.f64 y (pow.f64 z 2))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(+.f64 (*.f64 z (+.f64 x y)) 0)
(+.f64 0 (*.f64 z (+.f64 x y)))
(-.f64 (*.f64 z (+.f64 x y)) 0)
(/.f64 (*.f64 z (+.f64 x y)) 1)
(/.f64 (*.f64 z (+.f64 x y)) (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))))
(/.f64 (*.f64 z (*.f64 (+.f64 x y) 2)) 2)
(pow.f64 (*.f64 z (+.f64 x y)) 1)
(+.f64 (*.f64 (+.f64 x y) (*.f64 z z)) 0)
(+.f64 0 (*.f64 (+.f64 x y) (*.f64 z z)))
(-.f64 (*.f64 (+.f64 x y) (*.f64 z z)) 0)
(/.f64 (*.f64 (+.f64 x y) (*.f64 z z)) 1)
(/.f64 (*.f64 (+.f64 x y) (*.f64 z z)) (/.f64 (*.f64 (+.f64 x y) (*.f64 z z)) (*.f64 (+.f64 x y) (*.f64 z z))))
(/.f64 (*.f64 z (*.f64 z (*.f64 (+.f64 x y) 2))) 2)
(pow.f64 (*.f64 (+.f64 x y) (*.f64 z z)) 1)
Outputs
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.f64 z (+.f64 y x))
(*.f64 (+.f64 y x) z)
(*.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 z x)
(*.f64 x 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 x 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 x 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 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 (pow.f64 z 2))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(*.f64 (pow.f64 z 2) x)
(*.f64 x (pow.f64 z 2))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(*.f64 (pow.f64 z 2) x)
(*.f64 x (pow.f64 z 2))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(*.f64 (pow.f64 z 2) x)
(*.f64 x (pow.f64 z 2))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 (pow.f64 z 2) x))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(*.f64 y (pow.f64 z 2))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(*.f64 y (pow.f64 z 2))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(+.f64 (*.f64 (pow.f64 z 2) x) (*.f64 y (pow.f64 z 2)))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(*.f64 (+.f64 y x) (pow.f64 z 2))
(+.f64 (*.f64 y (pow.f64 z 2)) (*.f64 x (pow.f64 z 2)))
(*.f64 (pow.f64 z 2) (+.f64 y x))
(+.f64 (*.f64 z (+.f64 x y)) 0)
(*.f64 z (+.f64 y x))
(+.f64 0 (*.f64 z (+.f64 x y)))
(*.f64 z (+.f64 y x))
(-.f64 (*.f64 z (+.f64 x y)) 0)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 z (+.f64 x y)) 1)
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 z (+.f64 x y)) (/.f64 (*.f64 z (+.f64 x y)) (*.f64 z (+.f64 x y))))
(*.f64 z (+.f64 y x))
(/.f64 (*.f64 z (*.f64 (+.f64 x y) 2)) 2)
(*.f64 z (+.f64 y x))
(pow.f64 (*.f64 z (+.f64 x y)) 1)
(*.f64 z (+.f64 y x))
(+.f64 (*.f64 (+.f64 x y) (*.f64 z z)) 0)
(*.f64 z (*.f64 z (+.f64 y x)))
(+.f64 0 (*.f64 (+.f64 x y) (*.f64 z z)))
(*.f64 z (*.f64 z (+.f64 y x)))
(-.f64 (*.f64 (+.f64 x y) (*.f64 z z)) 0)
(*.f64 z (*.f64 z (+.f64 y x)))
(/.f64 (*.f64 (+.f64 x y) (*.f64 z z)) 1)
(*.f64 z (*.f64 z (+.f64 y x)))
(/.f64 (*.f64 (+.f64 x y) (*.f64 z z)) (/.f64 (*.f64 (+.f64 x y) (*.f64 z z)) (*.f64 (+.f64 x y) (*.f64 z z))))
(*.f64 z (*.f64 z (+.f64 y x)))
(/.f64 (*.f64 z (*.f64 z (*.f64 (+.f64 x y) 2))) 2)
(*.f64 z (*.f64 z (+.f64 y x)))
(pow.f64 (*.f64 (+.f64 x y) (*.f64 z z)) 1)
(*.f64 z (*.f64 z (+.f64 y x)))

eval5.0ms (0.1%)

Compiler

Compiled 302 to 134 computations (55.6% saved)

prune8.0ms (0.1%)

Pruning

11 alts after pruning (2 fresh and 9 done)

PrunedKeptTotal
New29029
Fresh022
Picked011
Done088
Total291140
Error
0.0b
Counts
40 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
42.2b
(+.f64 (*.f64 z x) (*.f64 z y))
32.9b
(+.f64 (*.f64 y z) y)
21.1b
(+.f64 y x)
53.4b
(*.f64 (/.f64 1 z) (*.f64 (+.f64 x y) (*.f64 z z)))
31.0b
(*.f64 (-.f64 z -1) x)
42.2b
(*.f64 (+.f64 y x) z)
0.0b
(*.f64 (+.f64 x y) (+.f64 z 1))
52.8b
(*.f64 z y)
52.0b
(*.f64 z x)
43.0b
y
41.6b
x
Compiler

Compiled 84 to 56 computations (33.3% saved)

regimes238.0ms (3.3%)

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

6 calls:

127.0ms
(+.f64 x y)
79.0ms
(*.f64 (+.f64 x y) (+.f64 z 1))
8.0ms
x
8.0ms
y
8.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 113 to 59 computations (47.8% saved)

regimes42.0ms (0.6%)

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

6 calls:

7.0ms
y
7.0ms
z
7.0ms
(*.f64 (+.f64 x y) (+.f64 z 1))
7.0ms
x
6.0ms
(+.f64 x y)
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 82 to 45 computations (45.1% saved)

regimes59.0ms (0.8%)

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

3 calls:

23.0ms
y
17.0ms
x
17.0ms
z
Results
ErrorSegmentsBranch
9.1b3x
9.7b4y
1.5b3z
Compiler

Compiled 46 to 24 computations (47.8% saved)

bsearch29.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
0.04264105286489797
1.3587021049083592
17.0ms
-692376806358751.5
-0.01549363969787983
Results
26.0ms272×body256valid
Compiler

Compiled 288 to 199 computations (30.9% saved)

regimes68.0ms (0.9%)

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

3 calls:

26.0ms
y
22.0ms
z
19.0ms
x
Results
ErrorSegmentsBranch
13.0b4x
15.0b6y
8.3b5z
Compiler

Compiled 31 to 18 computations (41.9% saved)

bsearch70.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
20.0ms
1.3997928233618372e+102
2.636503365506756e+111
16.0ms
6.027782035405536e-12
0.0018854588728099764
8.0ms
-0.007538660342988396
-0.0032181994944015945
26.0ms
-7.515280499563758e+176
-4.9647464769622007e+169
Results
47.0ms512×body256valid
15.0ms164×body256infinite
Compiler

Compiled 528 to 396 computations (25% saved)

regimes66.0ms (0.9%)

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

3 calls:

25.0ms
z
21.0ms
y
19.0ms
x
Results
ErrorSegmentsBranch
18.1b5x
18.7b5y
8.6b6z
Compiler

Compiled 26 to 15 computations (42.3% saved)

bsearch93.0ms (1.3%)

Algorithm
binary-search
Steps
TimeLeftRight
19.0ms
1.3997928233618372e+102
2.636503365506756e+111
12.0ms
0.04264105286489797
1.3587021049083592
19.0ms
-692376806358751.5
-0.01549363969787983
15.0ms
-5.392388843622471e+40
-7.903446287910657e+37
27.0ms
-7.515280499563758e+176
-4.9647464769622007e+169
Results
66.0ms688×body256valid
16.0ms165×body256infinite
Compiler

Compiled 618 to 442 computations (28.5% saved)

regimes83.0ms (1.1%)

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

3 calls:

39.0ms
z
22.0ms
x
21.0ms
y
Results
ErrorSegmentsBranch
24.4b6x
24.8b6y
24.3b11z
Compiler

Compiled 23 to 14 computations (39.1% saved)

bsearch150.0ms (2.1%)

Algorithm
10×binary-search
Steps
TimeLeftRight
20.0ms
1.3997928233618372e+102
2.636503365506756e+111
14.0ms
2.122462852980621e-23
2.949026275743781e-16
7.0ms
1.0506099336830023e-168
1.9244314734157954e-168
16.0ms
9.238221182154765e-227
4.081784981155726e-217
10.0ms
-2.804345687728932e-178
-1.95727456141995e-179
15.0ms
-1.8641206299553188e-90
-9.206445675319773e-97
12.0ms
-1.1332408247277971e-68
-3.159744508104656e-70
19.0ms
-692376806358751.5
-0.01549363969787983
15.0ms
-5.392388843622471e+40
-7.903446287910657e+37
23.0ms
-7.515280499563758e+176
-4.9647464769622007e+169
Results
121.0ms1296×body256valid
16.0ms148×body256infinite
Compiler

Compiled 968 to 731 computations (24.5% saved)

regimes58.0ms (0.8%)

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

3 calls:

27.0ms
z
18.0ms
y
12.0ms
x
Results
ErrorSegmentsBranch
26.1b4x
25.9b6y
25.8b9z
Compiler

Compiled 20 to 13 computations (35% saved)

bsearch106.0ms (1.5%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
354141.17384026566
3428371251.715163
17.0ms
6.121679995539244e-71
1.9290528265858602e-46
6.0ms
1.0506099336830023e-168
1.9244314734157954e-168
16.0ms
9.238221182154765e-227
4.081784981155726e-217
10.0ms
-2.804345687728932e-178
-1.95727456141995e-179
15.0ms
-1.8641206299553188e-90
-9.206445675319773e-97
12.0ms
-1.1332408247277971e-68
-3.159744508104656e-70
17.0ms
-692376806358751.5
-0.01549363969787983
Results
95.0ms1040×body256valid
0.0msbody256infinite
Compiler

Compiled 702 to 550 computations (21.7% saved)

regimes37.0ms (0.5%)

Accuracy

Total -35.1b remaining (-129.5%)

Threshold costs -35.1b (-129.5%)

Counts
2 → 4
Calls
Call 1
Inputs
x
y
Outputs
x
y
x
y
Calls

3 calls:

19.0ms
z
11.0ms
y
6.0ms
x
Results
ErrorSegmentsBranch
28.2b2x
27.1b4y
35.8b7z
Compiler

Compiled 17 to 12 computations (29.4% saved)

bsearch33.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
11.0ms
52606886635.398476
5216501912479.687
6.0ms
0.0012979745300382062
0.001892247061844601
15.0ms
3.462082495391319e-87
3.075114066965554e-81
Results
29.0ms319×body256valid
0.0msbody1024valid
Compiler

Compiled 216 to 172 computations (20.4% saved)

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0109521
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(*.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 z -259999999999999979451776674547524111323200806720424662969198678651903823711006587452239024956533202063969209654195758661132274464874138612814188508418326953940127848595456) (*.f64 z x) (if (<=.f64 z -7493989779944505/2305843009213693952) (*.f64 y (-.f64 z -1)) (if (<=.f64 z 519460313115661/4722366482869645213696) (+.f64 y x) (if (<=.f64 z 54000000000000001249279191317820535281662276602595584193702361225455624489844395583746232952718634698932224) (*.f64 y (-.f64 z -1)) (*.f64 z x)))))
(if (<=.f64 z -3900000000000000013564040436835192059624612057746677004042759873995998421030573461105922096113125474204521300818618644477748713448777299682306015112992583023509493874950144) (*.f64 z x) (if (<=.f64 z -920000000000000047291127729118404149248) (*.f64 z y) (if (<=.f64 z -1) (*.f64 z x) (if (<=.f64 z 3039929748475085/2251799813685248) (+.f64 y x) (if (<=.f64 z 56000000000000001698712161312458704125316681196677440946016679369077937964908096391939614566164899823616) (*.f64 z y) (*.f64 z x))))))
(if (<=.f64 z -115000000000000003287800849073802218076669585931738103217329403796705193770848092500887904183279202576178041039574364967837913570066069789902167512828016872489194092494848) (*.f64 z x) (if (<=.f64 z -159999999999999992620202531233938276352) (*.f64 z y) (if (<=.f64 z -1) (*.f64 z x) (if (<=.f64 z -2816869893727307/971334446112864535459730953411759453321203419526069760625906204869452142602604249088) y (if (<=.f64 z -6575919231766733/4697085165547666455778961193578674054751365097816639741414581943064418050229216886927397996769537406063869952) x (if (<=.f64 z -6204919239966185/36499524940977561749129372845602330599145828057988479444633540143194201337669419092047302490538971198229138476588755258485509637771003503986021290557777713506015957394882119600662993537972830208) y (if (<=.f64 z 229212996130245/52093862756873861516248842115009826540193424393093032503095764154406540920450250558761189069309017896429139926511197190983506262922807539690338719158834609735118418589953238737992799108686047068195039188561614077981958969042784853837217792) x (if (<=.f64 z 371796594971737/265568996408383549344794103276234313664796558863515961599722069100201779930426121369581251132614642834444664743123250507673289668826353619704759989383293675971915635417696609515864064) y (if (<=.f64 z 735237348132373/2535301200456458802993406410752) x (if (<=.f64 z 7000000000000000498733546961833991206968871154390690948581969393104966983488383350409997684372232512924024832) (*.f64 z y) (*.f64 z x)))))))))))
(if (<=.f64 z -1) (*.f64 z x) (if (<=.f64 z -7149021523390683/7770675568902916283677847627294075626569627356208558085007249638955617140820833992704) y (if (<=.f64 z -8366682951131781/146783911423364576743092537299333564210980159306769991919205685720763064069663027716481187399048043939495936) x (if (<=.f64 z -5109933491736859/36499524940977561749129372845602330599145828057988479444633540143194201337669419092047302490538971198229138476588755258485509637771003503986021290557777713506015957394882119600662993537972830208) y (if (<=.f64 z 8953632661337695/406983302788077043095694079023514269845261128071039316430435657456301100941017582490321789603976702315852655675868728054558642679084433903830771243428395388555612645234009677640568743036609742720273743660637609984234054445646756670603264) x (if (<=.f64 z 7223476702308033/4249103942534136789516705652419749018636744941816255385595553105603228478886817941913300018121834285351114635889972008122772634701221657915276159830132698815550650166683145752253825024) y (if (<=.f64 z 533569947205553/237142198758023568227473377297792835283496928595231875152809132048206089502588928) x (if (<=.f64 z 360000) y (*.f64 z x)))))))))
(if (<=.f64 y 640796110776273/266998379490113760299377713271194014325338065294581596243380200977777465722580068752870260867072) x (if (<=.f64 y 7148113328562451/4611686018427387904) y (if (<=.f64 y 960000000000) x y)))
x
Outputs
(+.f64 (*.f64 z (+.f64 y x)) (+.f64 y x))
(*.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 z -259999999999999979451776674547524111323200806720424662969198678651903823711006587452239024956533202063969209654195758661132274464874138612814188508418326953940127848595456) (*.f64 z x) (if (<=.f64 z -7493989779944505/2305843009213693952) (*.f64 y (-.f64 z -1)) (if (<=.f64 z 519460313115661/4722366482869645213696) (+.f64 y x) (if (<=.f64 z 54000000000000001249279191317820535281662276602595584193702361225455624489844395583746232952718634698932224) (*.f64 y (-.f64 z -1)) (*.f64 z x)))))
(if (<=.f64 z -3900000000000000013564040436835192059624612057746677004042759873995998421030573461105922096113125474204521300818618644477748713448777299682306015112992583023509493874950144) (*.f64 z x) (if (<=.f64 z -920000000000000047291127729118404149248) (*.f64 z y) (if (<=.f64 z -1) (*.f64 z x) (if (<=.f64 z 3039929748475085/2251799813685248) (+.f64 y x) (if (<=.f64 z 56000000000000001698712161312458704125316681196677440946016679369077937964908096391939614566164899823616) (*.f64 z y) (*.f64 z x))))))
(if (<=.f64 z -115000000000000003287800849073802218076669585931738103217329403796705193770848092500887904183279202576178041039574364967837913570066069789902167512828016872489194092494848) (*.f64 z x) (if (<=.f64 z -159999999999999992620202531233938276352) (*.f64 z y) (if (<=.f64 z -1) (*.f64 z x) (if (<=.f64 z -2816869893727307/971334446112864535459730953411759453321203419526069760625906204869452142602604249088) y (if (<=.f64 z -6575919231766733/4697085165547666455778961193578674054751365097816639741414581943064418050229216886927397996769537406063869952) x (if (<=.f64 z -6204919239966185/36499524940977561749129372845602330599145828057988479444633540143194201337669419092047302490538971198229138476588755258485509637771003503986021290557777713506015957394882119600662993537972830208) y (if (<=.f64 z 229212996130245/52093862756873861516248842115009826540193424393093032503095764154406540920450250558761189069309017896429139926511197190983506262922807539690338719158834609735118418589953238737992799108686047068195039188561614077981958969042784853837217792) x (if (<=.f64 z 371796594971737/265568996408383549344794103276234313664796558863515961599722069100201779930426121369581251132614642834444664743123250507673289668826353619704759989383293675971915635417696609515864064) y (if (<=.f64 z 735237348132373/2535301200456458802993406410752) x (if (<=.f64 z 7000000000000000498733546961833991206968871154390690948581969393104966983488383350409997684372232512924024832) (*.f64 z y) (*.f64 z x)))))))))))
(if (<=.f64 z -1) (*.f64 z x) (if (<=.f64 z -7149021523390683/7770675568902916283677847627294075626569627356208558085007249638955617140820833992704) y (if (<=.f64 z -8366682951131781/146783911423364576743092537299333564210980159306769991919205685720763064069663027716481187399048043939495936) x (if (<=.f64 z -5109933491736859/36499524940977561749129372845602330599145828057988479444633540143194201337669419092047302490538971198229138476588755258485509637771003503986021290557777713506015957394882119600662993537972830208) y (if (<=.f64 z 8953632661337695/406983302788077043095694079023514269845261128071039316430435657456301100941017582490321789603976702315852655675868728054558642679084433903830771243428395388555612645234009677640568743036609742720273743660637609984234054445646756670603264) x (if (<=.f64 z 7223476702308033/4249103942534136789516705652419749018636744941816255385595553105603228478886817941913300018121834285351114635889972008122772634701221657915276159830132698815550650166683145752253825024) y (if (<=.f64 z 533569947205553/237142198758023568227473377297792835283496928595231875152809132048206089502588928) x (if (<=.f64 z 360000) y (*.f64 z x)))))))))
(if (<=.f64 y 640796110776273/266998379490113760299377713271194014325338065294581596243380200977777465722580068752870260867072) x (if (<=.f64 y 7148113328562451/4611686018427387904) y (if (<=.f64 y 960000000000) x y)))
x
Compiler

Compiled 260 to 146 computations (43.8% saved)

soundness216.0ms (3%)

Algorithm
egg-herbie
Rules
1574×rational_best.json-simplify-132
1358×rational_best.json-simplify-80
1224×rational_best.json-simplify-78
1018×rational_best.json-simplify-82
916×rational_best.json-simplify-47
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0361204
168868
2120868
3283868
41167868
53324868
66029868
Stop Event
node limit
Compiler

Compiled 66 to 18 computations (72.7% saved)

end83.0ms (1.2%)

Remove

(sort x y)

Compiler

Compiled 260 to 127 computations (51.2% saved)

Profiling

Loading profile data...