Details

Time bar (total: 2.4s)

analyze57.0ms (2.4%)

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
25%25%74.9%0.1%0%0%0%5
37.5%37.5%62.4%0.1%0%0%0%6
50.8%50%48.4%0.1%1.6%0%0%7
60.8%59.3%38.2%0.1%2.3%0%0%8
70.8%67.1%27.7%0.1%5.1%0%0%9
77.3%72.6%21.3%0.1%6%0%0%10
83.9%76.9%14.7%0.1%8.3%0%0%11
87.7%79.8%11.2%0.1%8.9%0%0%12
Compiler

Compiled 10 to 6 computations (40% saved)

sample699.0ms (28.7%)

Results
660.0ms8255×body256valid
28.0ms343×body256infinite
0.0msbody512valid
Bogosity

preprocess12.0ms (0.5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01038
11638
22038
32138
022
122
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
0
Call 2
Inputs
(+.f64 (+.f64 (*.f64 x y) x) y)
(+.f64 (+.f64 (*.f64 y x) y) x)
Outputs
(+.f64 (+.f64 (*.f64 x y) x) y)
(+.f64 y (+.f64 x (*.f64 x y)))
(+.f64 x (+.f64 y (*.f64 x y)))
(+.f64 (+.f64 (*.f64 y x) y) x)
(+.f64 y (+.f64 x (*.f64 x y)))
(+.f64 x (+.f64 y (*.f64 x y)))
Symmetry

(sort x y)

Compiler

Compiled 11 to 7 computations (36.4% saved)

simplify9.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
11019
21419
31819
Stop Event
saturated
Counts
1 → 4
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 x y) x) y)
Outputs
(+.f64 (+.f64 (*.f64 x y) x) y)
(+.f64 y (+.f64 x (*.f64 x y)))
(+.f64 x (+.f64 (*.f64 x y) y))
(+.f64 x (+.f64 y (*.f64 x y)))

eval1.0ms (0%)

Compiler

Compiled 30 to 11 computations (63.3% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 9 to 5 computations (44.4% saved)

localize6.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 19 to 5 computations (73.7% saved)

series3.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite115.0ms (4.7%)

Algorithm
batch-egg-rewrite
Rules
1696×rational.json-1
1696×rational.json-2
1696×rational.json-3
1690×exponential.json-3
1690×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0732
14732
210932
326032
456232
5148132
6345432
7548932
8713932
Stop Event
node limit
Counts
2 → 67
Calls
Call 1
Inputs
(+.f64 (*.f64 x y) x)
(+.f64 (+.f64 (*.f64 x y) x) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 y 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 1/2 (+.f64 y (+.f64 y 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 x 1/4) (+.f64 y (+.f64 y 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 y (+.f64 y 2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 (+.f64 y 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 (*.f64 y 1/2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) (*.f64 1/4 (+.f64 y (+.f64 y 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 y 1) (*.f64 x 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 x 8) (+.f64 y (+.f64 y 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 4 (+.f64 y 1))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (/.f64 (+.f64 y 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 1/4 (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) (*.f64 1/8 (+.f64 y (+.f64 y 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 x 8) (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 x y)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 8) (*.f64 1/8 (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (+.f64 y 2)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x (+.f64 y (+.f64 y 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 y (+.f64 x x)) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 x x) (*.f64 y (+.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (*.f64 (+.f64 y 1) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 y (+.f64 y 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 (+.f64 y y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) (+.f64 2 (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 x 8)) (*.f64 1/16 (+.f64 y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y 1) 4) (*.f64 x 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x (*.f64 4 (+.f64 y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y 1) 1/2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y 1) (*.f64 x 1/4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 y (+.f64 y 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 4 (+.f64 y 1))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 x y)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 x y)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 x y)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 x y)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 x y)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 x y)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 x y)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 y (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 x (+.f64 y (+.f64 y 2))) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 y y) (*.f64 x (+.f64 y (+.f64 y 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1)))))

simplify230.0ms (9.5%)

Algorithm
egg-herbie
Rules
2004×rational.json-simplify-35
1790×rational.json-simplify-2
1080×rational.json-simplify-53
852×rational.json-simplify-51
832×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01601753
13401753
27731753
318351753
434481753
541281753
645331753
748321753
851701753
956351753
1069921753
1175821753
Stop Event
node limit
Counts
115 → 88
Calls
Call 1
Inputs
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
x
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
y
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 (+.f64 1 y) x))
(*.f64 (+.f64 1 y) x)
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 (+.f64 1 y) x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(+.f64 y (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x)))
(+.f64 y (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x)))
(+.f64 y (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x)))
x
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 (*.f64 (+.f64 1 x) y) x)
(*.f64 (+.f64 1 x) y)
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 (*.f64 (+.f64 1 x) y) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(+.f64 x (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y)))
(+.f64 x (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y)))
(+.f64 x (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y)))
(-.f64 (+.f64 x (*.f64 x y)) 0)
(*.f64 x (+.f64 y 1))
(*.f64 x (*.f64 1/2 (+.f64 y (+.f64 y 2))))
(*.f64 (+.f64 x (*.f64 x y)) 1)
(*.f64 1 (+.f64 x (*.f64 x y)))
(*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 1/2)))
(*.f64 2 (*.f64 (*.f64 x 1/4) (+.f64 y (+.f64 y 2))))
(*.f64 (*.f64 x (+.f64 y (+.f64 y 2))) 1/2)
(*.f64 (+.f64 x x) (*.f64 (+.f64 y 1) 1/2))
(*.f64 (+.f64 x x) (+.f64 (*.f64 y 1/2) 1/2))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y 1/2)))
(*.f64 (+.f64 x x) (*.f64 1/4 (+.f64 y (+.f64 y 2))))
(*.f64 (+.f64 y 1) x)
(*.f64 4 (*.f64 (+.f64 y 1) (*.f64 x 1/4)))
(*.f64 4 (*.f64 (/.f64 x 8) (+.f64 y (+.f64 y 2))))
(*.f64 (*.f64 x (*.f64 4 (+.f64 y 1))) 1/4)
(*.f64 (*.f64 x 4) (/.f64 (+.f64 y 1) 4))
(*.f64 (*.f64 x 4) (*.f64 1/4 (+.f64 y 1)))
(*.f64 (*.f64 x 4) (*.f64 1/8 (+.f64 y (+.f64 y 2))))
(*.f64 8 (*.f64 (/.f64 x 8) (+.f64 y 1)))
(*.f64 (*.f64 (+.f64 x (*.f64 x y)) 8) 1/8)
(*.f64 (*.f64 x 8) (*.f64 1/8 (+.f64 y 1)))
(*.f64 (+.f64 y (+.f64 y 2)) (*.f64 x 1/2))
(*.f64 1/2 (*.f64 x (+.f64 y (+.f64 y 2))))
(*.f64 1/2 (+.f64 (*.f64 y (+.f64 x x)) (+.f64 x x)))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 y (+.f64 x x))))
(*.f64 (*.f64 x (*.f64 (+.f64 y 1) 1/2)) 2)
(*.f64 (*.f64 x 1/2) (+.f64 y (+.f64 y 2)))
(*.f64 (*.f64 x 1/2) (+.f64 (+.f64 y y) 2))
(*.f64 (*.f64 x 1/2) (+.f64 2 (+.f64 y y)))
(*.f64 (*.f64 2 (*.f64 x 8)) (*.f64 1/16 (+.f64 y 1)))
(*.f64 (*.f64 (+.f64 y 1) 4) (*.f64 x 1/4))
(*.f64 1/4 (*.f64 x (*.f64 4 (+.f64 y 1))))
(*.f64 (*.f64 (+.f64 y 1) 1/2) (+.f64 x x))
(*.f64 (*.f64 (+.f64 y 1) (*.f64 x 1/4)) 4)
(/.f64 (+.f64 x (*.f64 x y)) 1)
(/.f64 (*.f64 x (+.f64 y (+.f64 y 2))) 2)
(/.f64 (*.f64 x (*.f64 4 (+.f64 y 1))) 4)
(/.f64 (*.f64 (+.f64 x (*.f64 x y)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 x y)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 x y)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 x y)) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 x y)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 x y)) 8))))) 128)
(pow.f64 (+.f64 x (*.f64 x y)) 1)
(-.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 0)
(*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1)
(*.f64 1 (+.f64 x (*.f64 y (+.f64 x 1))))
(*.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1/2))
(*.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 2) 1/2)
(*.f64 4 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1/4))
(*.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 4) 1/4)
(*.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8) 1/8)
(*.f64 1/2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 2))
(*.f64 1/2 (+.f64 (*.f64 x (+.f64 y (+.f64 y 2))) (+.f64 y y)))
(*.f64 1/2 (+.f64 (+.f64 y y) (*.f64 x (+.f64 y (+.f64 y 2)))))
(*.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 4))
(*.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1/4) 4)
(/.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1)
(/.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 2) 2)
(/.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 4) 4)
(/.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8))))) 128)
(pow.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1)
Outputs
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 x (+.f64 1 y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 x (+.f64 1 y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 x (+.f64 1 y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 x (+.f64 1 y))
x
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 y x))
y
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 x (+.f64 1 y)))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 x (+.f64 1 y)))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 x (+.f64 1 y)))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 1 y))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 x (+.f64 1 y)))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 x (+.f64 1 y)))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 x (+.f64 1 y)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x))
(*.f64 x (+.f64 1 y))
(+.f64 y (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x)))
(+.f64 y (*.f64 x (+.f64 1 y)))
(+.f64 y (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x)))
(+.f64 y (*.f64 x (+.f64 1 y)))
(+.f64 y (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 y) 1) x)))
(+.f64 y (*.f64 x (+.f64 1 y)))
x
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 x (*.f64 y (+.f64 1 x)))
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 x (*.f64 y (+.f64 1 x)))
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 x (*.f64 y (+.f64 1 x)))
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 1 x))
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 x (*.f64 y (+.f64 1 x)))
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 x (*.f64 y (+.f64 1 x)))
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 x (*.f64 y (+.f64 1 x)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(*.f64 y (+.f64 1 x))
(+.f64 x (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y)))
(+.f64 x (*.f64 y (+.f64 1 x)))
(+.f64 x (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y)))
(+.f64 x (*.f64 y (+.f64 1 x)))
(+.f64 x (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y)))
(+.f64 x (*.f64 y (+.f64 1 x)))
(-.f64 (+.f64 x (*.f64 x y)) 0)
(+.f64 x (*.f64 y x))
(*.f64 x (+.f64 y 1))
(*.f64 x (+.f64 1 y))
(*.f64 x (*.f64 1/2 (+.f64 y (+.f64 y 2))))
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 x (*.f64 x y)) 1)
(+.f64 x (*.f64 y x))
(*.f64 1 (+.f64 x (*.f64 x y)))
(+.f64 x (*.f64 y x))
(*.f64 2 (*.f64 x (*.f64 (+.f64 y 1) 1/2)))
(*.f64 x (+.f64 1 y))
(*.f64 2 (*.f64 (*.f64 x 1/4) (+.f64 y (+.f64 y 2))))
(*.f64 x (+.f64 1 y))
(*.f64 (*.f64 x (+.f64 y (+.f64 y 2))) 1/2)
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 x x) (*.f64 (+.f64 y 1) 1/2))
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 x x) (+.f64 (*.f64 y 1/2) 1/2))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y 1/2)))
(*.f64 (+.f64 x x) (+.f64 1/2 (*.f64 y 1/2)))
(*.f64 (+.f64 x x) (*.f64 1/4 (+.f64 y (+.f64 y 2))))
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 y 1) x)
(*.f64 x (+.f64 1 y))
(*.f64 4 (*.f64 (+.f64 y 1) (*.f64 x 1/4)))
(*.f64 x (+.f64 1 y))
(*.f64 4 (*.f64 (/.f64 x 8) (+.f64 y (+.f64 y 2))))
(*.f64 x (+.f64 1 y))
(*.f64 (*.f64 x (*.f64 4 (+.f64 y 1))) 1/4)
(*.f64 x (+.f64 1 y))
(*.f64 (*.f64 x 4) (/.f64 (+.f64 y 1) 4))
(*.f64 x (+.f64 1 y))
(*.f64 (*.f64 x 4) (*.f64 1/4 (+.f64 y 1)))
(*.f64 x (+.f64 1 y))
(*.f64 (*.f64 x 4) (*.f64 1/8 (+.f64 y (+.f64 y 2))))
(*.f64 x (+.f64 1 y))
(*.f64 8 (*.f64 (/.f64 x 8) (+.f64 y 1)))
(*.f64 x (+.f64 1 y))
(*.f64 (*.f64 (+.f64 x (*.f64 x y)) 8) 1/8)
(+.f64 x (*.f64 y x))
(*.f64 (*.f64 x 8) (*.f64 1/8 (+.f64 y 1)))
(*.f64 x (+.f64 1 y))
(*.f64 (+.f64 y (+.f64 y 2)) (*.f64 x 1/2))
(*.f64 x (+.f64 1 y))
(*.f64 1/2 (*.f64 x (+.f64 y (+.f64 y 2))))
(*.f64 x (+.f64 1 y))
(*.f64 1/2 (+.f64 (*.f64 y (+.f64 x x)) (+.f64 x x)))
(+.f64 x (*.f64 y x))
(*.f64 1/2 (+.f64 (+.f64 x x) (*.f64 y (+.f64 x x))))
(+.f64 x (*.f64 y x))
(*.f64 (*.f64 x (*.f64 (+.f64 y 1) 1/2)) 2)
(*.f64 x (+.f64 1 y))
(*.f64 (*.f64 x 1/2) (+.f64 y (+.f64 y 2)))
(*.f64 x (+.f64 1 y))
(*.f64 (*.f64 x 1/2) (+.f64 (+.f64 y y) 2))
(*.f64 x (+.f64 1 y))
(*.f64 (*.f64 x 1/2) (+.f64 2 (+.f64 y y)))
(*.f64 x (+.f64 1 y))
(*.f64 (*.f64 2 (*.f64 x 8)) (*.f64 1/16 (+.f64 y 1)))
(*.f64 x (+.f64 1 y))
(*.f64 (*.f64 (+.f64 y 1) 4) (*.f64 x 1/4))
(*.f64 x (+.f64 1 y))
(*.f64 1/4 (*.f64 x (*.f64 4 (+.f64 y 1))))
(*.f64 x (+.f64 1 y))
(*.f64 (*.f64 (+.f64 y 1) 1/2) (+.f64 x x))
(*.f64 x (+.f64 1 y))
(*.f64 (*.f64 (+.f64 y 1) (*.f64 x 1/4)) 4)
(*.f64 x (+.f64 1 y))
(/.f64 (+.f64 x (*.f64 x y)) 1)
(+.f64 x (*.f64 y x))
(/.f64 (*.f64 x (+.f64 y (+.f64 y 2))) 2)
(*.f64 x (+.f64 1 y))
(/.f64 (*.f64 x (*.f64 4 (+.f64 y 1))) 4)
(*.f64 x (+.f64 1 y))
(/.f64 (*.f64 (+.f64 x (*.f64 x y)) 8) 8)
(+.f64 x (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 x y)) 8)) 16)
(+.f64 x (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 x y)) 8))) 32)
(+.f64 x (*.f64 y x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 x y)) 8)))) 64)
(+.f64 x (*.f64 y x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 x y)) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 x y)) 8))))) 128)
(+.f64 x (*.f64 y x))
(pow.f64 (+.f64 x (*.f64 x y)) 1)
(+.f64 x (*.f64 y x))
(-.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 0)
(+.f64 x (*.f64 y (+.f64 1 x)))
(*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1)
(+.f64 x (*.f64 y (+.f64 1 x)))
(*.f64 1 (+.f64 x (*.f64 y (+.f64 x 1))))
(+.f64 x (*.f64 y (+.f64 1 x)))
(*.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1/2))
(+.f64 x (*.f64 y (+.f64 1 x)))
(*.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 2) 1/2)
(+.f64 x (*.f64 y (+.f64 1 x)))
(*.f64 4 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1/4))
(+.f64 x (*.f64 y (+.f64 1 x)))
(*.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 4) 1/4)
(+.f64 x (*.f64 y (+.f64 1 x)))
(*.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8) 1/8)
(+.f64 x (*.f64 y (+.f64 1 x)))
(*.f64 1/2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 2))
(+.f64 x (*.f64 y (+.f64 1 x)))
(*.f64 1/2 (+.f64 (*.f64 x (+.f64 y (+.f64 y 2))) (+.f64 y y)))
(*.f64 1/2 (+.f64 y (+.f64 y (*.f64 x (+.f64 y (+.f64 y 2))))))
(*.f64 1/2 (+.f64 y (+.f64 y (*.f64 (*.f64 x (+.f64 1 y)) 2))))
(*.f64 1/2 (+.f64 y (+.f64 y (*.f64 x (*.f64 (+.f64 1 y) 2)))))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 1 y) (+.f64 x x)) (+.f64 y y)))
(*.f64 1/2 (+.f64 (+.f64 y y) (*.f64 x (+.f64 y (+.f64 y 2)))))
(*.f64 1/2 (+.f64 y (+.f64 y (*.f64 x (+.f64 y (+.f64 y 2))))))
(*.f64 1/2 (+.f64 y (+.f64 y (*.f64 (*.f64 x (+.f64 1 y)) 2))))
(*.f64 1/2 (+.f64 y (+.f64 y (*.f64 x (*.f64 (+.f64 1 y) 2)))))
(*.f64 1/2 (+.f64 (*.f64 (+.f64 1 y) (+.f64 x x)) (+.f64 y y)))
(*.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1/2) 2)
(+.f64 x (*.f64 y (+.f64 1 x)))
(*.f64 1/4 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 4))
(+.f64 x (*.f64 y (+.f64 1 x)))
(*.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1/4) 4)
(+.f64 x (*.f64 y (+.f64 1 x)))
(/.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1)
(+.f64 x (*.f64 y (+.f64 1 x)))
(/.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 2) 2)
(+.f64 x (*.f64 y (+.f64 1 x)))
(/.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 4) 4)
(+.f64 x (*.f64 y (+.f64 1 x)))
(/.f64 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8) 8)
(+.f64 x (*.f64 y (+.f64 1 x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8)) 16)
(+.f64 x (*.f64 y (+.f64 1 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8))) 32)
(+.f64 x (*.f64 y (+.f64 1 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8)))) 64)
(+.f64 x (*.f64 y (+.f64 1 x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 8))))) 128)
(+.f64 x (*.f64 y (+.f64 1 x)))
(pow.f64 (+.f64 x (*.f64 y (+.f64 x 1))) 1)
(+.f64 x (*.f64 y (+.f64 1 x)))

eval18.0ms (0.7%)

Compiler

Compiled 964 to 616 computations (36.1% saved)

prune13.0ms (0.5%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New84488
Fresh000
Picked101
Done000
Total85489
Error
0.0b
Counts
89 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 (+.f64 y 1) x) y)
28.7b
(+.f64 (*.f64 y x) y)
8.3b
(+.f64 x y)
36.2b
y
Compiler

Compiled 24 to 15 computations (37.5% saved)

localize3.0ms (0.1%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

localize4.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 12 to 4 computations (66.7% saved)

series1.0ms (0%)

Counts
1 → 21
Calls

6 calls:

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

rewrite193.0ms (8%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
14013
29413
320913
439713
590713
6246713
7468313
8558213
9693113
10799813
11799813
Stop Event
node limit
Counts
1 → 44
Calls
Call 1
Inputs
(+.f64 (*.f64 y x) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 y (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 x 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 y (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 y (*.f64 (+.f64 x 1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y y) (+.f64 x 1)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (*.f64 (+.f64 x 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (*.f64 (+.f64 x (+.f64 x 2)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (+.f64 1/2 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x 1) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 y (/.f64 (+.f64 x 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (/.f64 y 8) (+.f64 x (+.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 (+.f64 x 1) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 4) (*.f64 (+.f64 x 1) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 4) (/.f64 (+.f64 x 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 4) (*.f64 1/8 (+.f64 x (+.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (/.f64 y 8) (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 8 (*.f64 (*.f64 1/2 (*.f64 y 1/4)) (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x 1) (*.f64 y 8)) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 8) (*.f64 1/8 (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x 2)) (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 y y) (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 (+.f64 x 1) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) (+.f64 x (+.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (*.f64 y 8)) (*.f64 1/16 (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x 1) 4) (*.f64 y 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 y (*.f64 (+.f64 x 1) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x 1) 1/2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (/.f64 (+.f64 x 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/4) (*.f64 (+.f64 x 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 x 1) (*.f64 y 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x 1) 1/4) (*.f64 y 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x 1) 4) (*.f64 y 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 x 1/2)) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y y) (+.f64 x 1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 x 1) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x 1) (*.f64 y 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x 1) (*.f64 y 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1) (*.f64 y 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1) (*.f64 y 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1) (*.f64 y 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1) (*.f64 y 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 y (*.f64 y x)) 1)))))

simplify141.0ms (5.8%)

Algorithm
egg-herbie
Rules
1898×rational.json-simplify-35
1324×rational.json-simplify-51
1082×rational.json-simplify-41
1044×rational.json-simplify-2
974×rational.json-simplify-42
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0105845
1247845
2481845
3881845
41616845
54515845
65747845
76374845
86970845
97458845
Stop Event
node limit
Counts
65 → 51
Calls
Call 1
Inputs
(*.f64 (+.f64 1 x) y)
(*.f64 (+.f64 1 x) y)
(*.f64 (+.f64 1 x) y)
(*.f64 (+.f64 1 x) y)
(*.f64 (+.f64 1 x) y)
(*.f64 (+.f64 1 x) y)
(*.f64 (+.f64 1 x) y)
(*.f64 (+.f64 1 x) y)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
y
(*.f64 y x)
(+.f64 y (*.f64 y x))
(+.f64 y (*.f64 y x))
(+.f64 y (*.f64 y x))
(*.f64 y x)
(+.f64 y (*.f64 y x))
(+.f64 y (*.f64 y x))
(+.f64 y (*.f64 y x))
(-.f64 (+.f64 y (*.f64 y x)) 0)
(*.f64 y (+.f64 x 1))
(*.f64 (+.f64 y (*.f64 y x)) 1)
(*.f64 1 (+.f64 y (*.f64 y x)))
(*.f64 2 (*.f64 y (*.f64 (+.f64 x 1) 1/2)))
(*.f64 (*.f64 (+.f64 y y) (+.f64 x 1)) 1/2)
(*.f64 (+.f64 y y) (*.f64 (+.f64 x 1) 1/2))
(*.f64 (+.f64 y y) (*.f64 (+.f64 x (+.f64 x 2)) 1/4))
(*.f64 (+.f64 y y) (+.f64 1/2 (*.f64 x 1/2)))
(*.f64 (+.f64 x 1) y)
(*.f64 4 (*.f64 y (/.f64 (+.f64 x 1) 4)))
(*.f64 4 (*.f64 (/.f64 y 8) (+.f64 x (+.f64 x 2))))
(*.f64 (*.f64 y (*.f64 (+.f64 x 1) 4)) 1/4)
(*.f64 (*.f64 y 4) (*.f64 (+.f64 x 1) 1/4))
(*.f64 (*.f64 y 4) (/.f64 (+.f64 x 1) 4))
(*.f64 (*.f64 y 4) (*.f64 1/8 (+.f64 x (+.f64 x 2))))
(*.f64 8 (*.f64 (/.f64 y 8) (+.f64 x 1)))
(*.f64 8 (*.f64 (*.f64 1/2 (*.f64 y 1/4)) (+.f64 x 1)))
(*.f64 (*.f64 (+.f64 x 1) (*.f64 y 8)) 1/8)
(*.f64 (*.f64 y 8) (*.f64 1/8 (+.f64 x 1)))
(*.f64 (+.f64 x (+.f64 x 2)) (*.f64 y 1/2))
(*.f64 1/2 (*.f64 (+.f64 y y) (+.f64 x 1)))
(*.f64 (*.f64 y (*.f64 (+.f64 x 1) 1/2)) 2)
(*.f64 (*.f64 y 1/2) (+.f64 x (+.f64 x 2)))
(*.f64 (*.f64 2 (*.f64 y 8)) (*.f64 1/16 (+.f64 x 1)))
(*.f64 (*.f64 (+.f64 x 1) 4) (*.f64 y 1/4))
(*.f64 1/4 (*.f64 y (*.f64 (+.f64 x 1) 4)))
(*.f64 (*.f64 (+.f64 x 1) 1/2) (+.f64 y y))
(*.f64 (*.f64 y (/.f64 (+.f64 x 1) 4)) 4)
(*.f64 (*.f64 y 1/4) (*.f64 (+.f64 x 1) 4))
(*.f64 1/8 (*.f64 (+.f64 x 1) (*.f64 y 8)))
(*.f64 (*.f64 (+.f64 x 1) 1/4) (*.f64 y 4))
(*.f64 (/.f64 (+.f64 x 1) 4) (*.f64 y 4))
(*.f64 (+.f64 1/2 (*.f64 x 1/2)) (+.f64 y y))
(/.f64 (+.f64 y (*.f64 y x)) 1)
(/.f64 (*.f64 (+.f64 y y) (+.f64 x 1)) 2)
(/.f64 (*.f64 y (*.f64 (+.f64 x 1) 4)) 4)
(/.f64 (*.f64 (+.f64 x 1) (*.f64 y 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x 1) (*.f64 y 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1) (*.f64 y 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1) (*.f64 y 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1) (*.f64 y 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1) (*.f64 y 8))))))) 256)
(pow.f64 (+.f64 y (*.f64 y x)) 1)
Outputs
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 1 x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(*.f64 y (+.f64 1 x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(*.f64 y (+.f64 1 x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(*.f64 y (+.f64 1 x))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(*.f64 y (+.f64 1 x))
y
(*.f64 y x)
(*.f64 x y)
(+.f64 y (*.f64 y x))
(*.f64 y (+.f64 1 x))
(+.f64 y (*.f64 y x))
(*.f64 y (+.f64 1 x))
(+.f64 y (*.f64 y x))
(*.f64 y (+.f64 1 x))
(*.f64 y x)
(*.f64 x y)
(+.f64 y (*.f64 y x))
(*.f64 y (+.f64 1 x))
(+.f64 y (*.f64 y x))
(*.f64 y (+.f64 1 x))
(+.f64 y (*.f64 y x))
(*.f64 y (+.f64 1 x))
(-.f64 (+.f64 y (*.f64 y x)) 0)
(*.f64 y (+.f64 1 x))
(*.f64 y (+.f64 x 1))
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 y (*.f64 y x)) 1)
(*.f64 y (+.f64 1 x))
(*.f64 1 (+.f64 y (*.f64 y x)))
(*.f64 y (+.f64 1 x))
(*.f64 2 (*.f64 y (*.f64 (+.f64 x 1) 1/2)))
(*.f64 y (+.f64 1 x))
(*.f64 (*.f64 (+.f64 y y) (+.f64 x 1)) 1/2)
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 y y) (*.f64 (+.f64 x 1) 1/2))
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 y y) (*.f64 (+.f64 x (+.f64 x 2)) 1/4))
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 y y) (+.f64 1/2 (*.f64 x 1/2)))
(*.f64 (+.f64 x 1) y)
(*.f64 y (+.f64 1 x))
(*.f64 4 (*.f64 y (/.f64 (+.f64 x 1) 4)))
(*.f64 y (+.f64 1 x))
(*.f64 4 (*.f64 (/.f64 y 8) (+.f64 x (+.f64 x 2))))
(*.f64 y (+.f64 1 x))
(*.f64 (*.f64 y (*.f64 (+.f64 x 1) 4)) 1/4)
(*.f64 y (+.f64 1 x))
(*.f64 (*.f64 y 4) (*.f64 (+.f64 x 1) 1/4))
(*.f64 y (+.f64 1 x))
(*.f64 (*.f64 y 4) (/.f64 (+.f64 x 1) 4))
(*.f64 y (+.f64 1 x))
(*.f64 (*.f64 y 4) (*.f64 1/8 (+.f64 x (+.f64 x 2))))
(*.f64 y (+.f64 1 x))
(*.f64 8 (*.f64 (/.f64 y 8) (+.f64 x 1)))
(*.f64 y (+.f64 1 x))
(*.f64 8 (*.f64 (*.f64 1/2 (*.f64 y 1/4)) (+.f64 x 1)))
(*.f64 y (+.f64 1 x))
(*.f64 (*.f64 (+.f64 x 1) (*.f64 y 8)) 1/8)
(*.f64 y (+.f64 1 x))
(*.f64 (*.f64 y 8) (*.f64 1/8 (+.f64 x 1)))
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 x (+.f64 x 2)) (*.f64 y 1/2))
(*.f64 y (+.f64 1 x))
(*.f64 1/2 (*.f64 (+.f64 y y) (+.f64 x 1)))
(*.f64 y (+.f64 1 x))
(*.f64 (*.f64 y (*.f64 (+.f64 x 1) 1/2)) 2)
(*.f64 y (+.f64 1 x))
(*.f64 (*.f64 y 1/2) (+.f64 x (+.f64 x 2)))
(*.f64 y (+.f64 1 x))
(*.f64 (*.f64 2 (*.f64 y 8)) (*.f64 1/16 (+.f64 x 1)))
(*.f64 y (+.f64 1 x))
(*.f64 (*.f64 (+.f64 x 1) 4) (*.f64 y 1/4))
(*.f64 y (+.f64 1 x))
(*.f64 1/4 (*.f64 y (*.f64 (+.f64 x 1) 4)))
(*.f64 y (+.f64 1 x))
(*.f64 (*.f64 (+.f64 x 1) 1/2) (+.f64 y y))
(*.f64 y (+.f64 1 x))
(*.f64 (*.f64 y (/.f64 (+.f64 x 1) 4)) 4)
(*.f64 y (+.f64 1 x))
(*.f64 (*.f64 y 1/4) (*.f64 (+.f64 x 1) 4))
(*.f64 y (+.f64 1 x))
(*.f64 1/8 (*.f64 (+.f64 x 1) (*.f64 y 8)))
(*.f64 y (+.f64 1 x))
(*.f64 (*.f64 (+.f64 x 1) 1/4) (*.f64 y 4))
(*.f64 y (+.f64 1 x))
(*.f64 (/.f64 (+.f64 x 1) 4) (*.f64 y 4))
(*.f64 y (+.f64 1 x))
(*.f64 (+.f64 1/2 (*.f64 x 1/2)) (+.f64 y y))
(*.f64 (+.f64 y y) (+.f64 1/2 (*.f64 x 1/2)))
(/.f64 (+.f64 y (*.f64 y x)) 1)
(*.f64 y (+.f64 1 x))
(/.f64 (*.f64 (+.f64 y y) (+.f64 x 1)) 2)
(*.f64 y (+.f64 1 x))
(/.f64 (*.f64 y (*.f64 (+.f64 x 1) 4)) 4)
(*.f64 y (+.f64 1 x))
(/.f64 (*.f64 (+.f64 x 1) (*.f64 y 8)) 8)
(*.f64 y (+.f64 1 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 x 1) (*.f64 y 8))) 16)
(*.f64 y (+.f64 1 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1) (*.f64 y 8)))) 32)
(*.f64 y (+.f64 1 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1) (*.f64 y 8))))) 64)
(*.f64 y (+.f64 1 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1) (*.f64 y 8)))))) 128)
(*.f64 y (+.f64 1 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x 1) (*.f64 y 8))))))) 256)
(*.f64 y (+.f64 1 x))
(pow.f64 (+.f64 y (*.f64 y x)) 1)
(*.f64 y (+.f64 1 x))

localize9.0ms (0.4%)

Local error

Found 2 expressions with local error:

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

Compiled 20 to 12 computations (40% saved)

series3.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite220.0ms (9%)

Algorithm
batch-egg-rewrite
Rules
2688×rational.json-simplify-35
1396×rational.json-simplify-1
1234×exponential.json-3
1234×rational.json-1
1234×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0832
16332
214132
326632
450532
5111132
6255432
7406232
8532632
9660532
10719432
11719432
12719432
Stop Event
node limit
Counts
2 → 41
Calls
Call 1
Inputs
(*.f64 (+.f64 y 1) x)
(+.f64 (*.f64 (+.f64 y 1) x) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y 1) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 y 1) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 y 1) (*.f64 x 1/2)) (*.f64 (+.f64 y 1) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 y 1) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y 1) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 y (+.f64 y 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y 1) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y 1) (*.f64 x 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 y 1) x) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 y (*.f64 (+.f64 y 1) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 y y) (*.f64 x (+.f64 y (+.f64 y 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 y y) (*.f64 x (+.f64 y (+.f64 y 2)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1)))))

simplify469.0ms (19.3%)

Algorithm
egg-herbie
Rules
4526×rational.json-simplify-41
2530×rational.json-simplify-35
2064×rational.json-simplify-2
806×rational.json-simplify-51
732×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01041373
12451373
26731373
317321373
432661373
540651373
644291373
747581373
849891373
951471373
1052811373
1156351373
1256671373
1357101373
1457561373
1558441373
1659071373
1760721373
1861941373
1963161373
Stop Event
node limit
Counts
89 → 59
Calls
Call 1
Inputs
x
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(*.f64 y x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(+.f64 (*.f64 y x) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
(*.f64 (+.f64 1 y) x)
x
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 (*.f64 (+.f64 1 x) y) x)
(*.f64 (+.f64 1 x) y)
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 (*.f64 (+.f64 1 x) y) x)
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(+.f64 x (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y)))
(+.f64 x (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y)))
(+.f64 x (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y)))
y
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 (+.f64 1 y) x))
(*.f64 (+.f64 1 y) x)
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 (+.f64 1 y) x))
(*.f64 (+.f64 1 y) x)
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 (*.f64 (+.f64 y 1) x) 0)
(+.f64 0 (*.f64 (+.f64 y 1) x))
(+.f64 (*.f64 (+.f64 y 1) (*.f64 x 1/2)) (*.f64 (+.f64 y 1) (*.f64 x 1/2)))
(-.f64 (*.f64 (+.f64 y 1) x) 0)
(/.f64 (*.f64 (+.f64 y 1) x) 1)
(/.f64 (*.f64 x (+.f64 y (+.f64 y 2))) 2)
(/.f64 (*.f64 (+.f64 y 1) (*.f64 x 4)) 4)
(/.f64 (*.f64 (+.f64 y 1) (*.f64 x 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8)))))))) 512)
(pow.f64 (*.f64 (+.f64 y 1) x) 1)
(-.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 0)
(*.f64 1 (+.f64 y (*.f64 (+.f64 y 1) x)))
(*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1)
(*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1/2))
(*.f64 4 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1/4))
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 2) 1/2)
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 2))
(*.f64 1/2 (+.f64 (+.f64 y y) (*.f64 x (+.f64 y (+.f64 y 2)))))
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8) 1/8)
(*.f64 1/4 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 4))
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1/2) 2)
(*.f64 1/8 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8))
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1/4) 4)
(*.f64 (+.f64 (+.f64 y y) (*.f64 x (+.f64 y (+.f64 y 2)))) 1/2)
(/.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1)
(/.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 2) 2)
(/.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 4) 4)
(/.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8))))))) 512)
(pow.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1)
Outputs
x
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 x y))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 x y))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 x y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 x y))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 x y))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 x y))
(*.f64 y x)
(*.f64 x y)
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 x y))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 x y))
(+.f64 (*.f64 y x) x)
(+.f64 x (*.f64 x y))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
x
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 x (*.f64 y (+.f64 x 1)))
(+.f64 x (*.f64 y (-.f64 x -1)))
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 x (*.f64 y (+.f64 x 1)))
(+.f64 x (*.f64 y (-.f64 x -1)))
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 x (*.f64 y (+.f64 x 1)))
(+.f64 x (*.f64 y (-.f64 x -1)))
(*.f64 (+.f64 1 x) y)
(*.f64 y (+.f64 x 1))
(*.f64 y (-.f64 x -1))
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 x (*.f64 y (+.f64 x 1)))
(+.f64 x (*.f64 y (-.f64 x -1)))
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 x (*.f64 y (+.f64 x 1)))
(+.f64 x (*.f64 y (-.f64 x -1)))
(+.f64 (*.f64 (+.f64 1 x) y) x)
(+.f64 x (*.f64 y (+.f64 x 1)))
(+.f64 x (*.f64 y (-.f64 x -1)))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y))
(*.f64 y (+.f64 x 1))
(*.f64 y (-.f64 x -1))
(+.f64 x (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y)))
(+.f64 x (*.f64 y (+.f64 x 1)))
(+.f64 x (*.f64 y (-.f64 x -1)))
(+.f64 x (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y)))
(+.f64 x (*.f64 y (+.f64 x 1)))
(+.f64 x (*.f64 y (-.f64 x -1)))
(+.f64 x (*.f64 -1 (*.f64 (-.f64 (*.f64 -1 x) 1) y)))
(+.f64 x (*.f64 y (+.f64 x 1)))
(+.f64 x (*.f64 y (-.f64 x -1)))
y
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 x (+.f64 y 1)))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 x (+.f64 y 1)))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 x (+.f64 y 1)))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 x (+.f64 y 1)))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 x (+.f64 y 1)))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 x (+.f64 y 1)))
(*.f64 (+.f64 1 y) x)
(*.f64 x (+.f64 y 1))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 x (+.f64 y 1)))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 x (+.f64 y 1)))
(+.f64 y (*.f64 (+.f64 1 y) x))
(+.f64 y (*.f64 x (+.f64 y 1)))
(+.f64 (*.f64 (+.f64 y 1) x) 0)
(*.f64 x (+.f64 y 1))
(+.f64 0 (*.f64 (+.f64 y 1) x))
(*.f64 x (+.f64 y 1))
(+.f64 (*.f64 (+.f64 y 1) (*.f64 x 1/2)) (*.f64 (+.f64 y 1) (*.f64 x 1/2)))
(*.f64 x (+.f64 y 1))
(-.f64 (*.f64 (+.f64 y 1) x) 0)
(*.f64 x (+.f64 y 1))
(/.f64 (*.f64 (+.f64 y 1) x) 1)
(*.f64 x (+.f64 y 1))
(/.f64 (*.f64 x (+.f64 y (+.f64 y 2))) 2)
(*.f64 x (+.f64 y 1))
(/.f64 (*.f64 (+.f64 y 1) (*.f64 x 4)) 4)
(*.f64 x (+.f64 y 1))
(/.f64 (*.f64 (+.f64 y 1) (*.f64 x 8)) 8)
(*.f64 x (+.f64 y 1))
(/.f64 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))) 16)
(*.f64 x (+.f64 y 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8)))) 32)
(*.f64 x (+.f64 y 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))))) 64)
(*.f64 x (+.f64 y 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8)))))) 128)
(*.f64 x (+.f64 y 1))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))))))) 256)
(*.f64 x (+.f64 y 1))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y 1) (*.f64 x 8)))))))) 512)
(*.f64 x (+.f64 y 1))
(pow.f64 (*.f64 (+.f64 y 1) x) 1)
(*.f64 x (+.f64 y 1))
(-.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 0)
(+.f64 y (*.f64 x (+.f64 y 1)))
(*.f64 1 (+.f64 y (*.f64 (+.f64 y 1) x)))
(+.f64 y (*.f64 x (+.f64 y 1)))
(*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1)
(+.f64 y (*.f64 x (+.f64 y 1)))
(*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1/2))
(+.f64 y (*.f64 x (+.f64 y 1)))
(*.f64 4 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1/4))
(+.f64 y (*.f64 x (+.f64 y 1)))
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 2) 1/2)
(+.f64 y (*.f64 x (+.f64 y 1)))
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 4) 1/4)
(+.f64 y (*.f64 x (+.f64 y 1)))
(*.f64 1/2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 2))
(+.f64 y (*.f64 x (+.f64 y 1)))
(*.f64 1/2 (+.f64 (+.f64 y y) (*.f64 x (+.f64 y (+.f64 y 2)))))
(+.f64 y (*.f64 x (+.f64 y 1)))
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8) 1/8)
(+.f64 y (*.f64 x (+.f64 y 1)))
(*.f64 1/4 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 4))
(+.f64 y (*.f64 x (+.f64 y 1)))
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1/2) 2)
(+.f64 y (*.f64 x (+.f64 y 1)))
(*.f64 1/8 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8))
(+.f64 y (*.f64 x (+.f64 y 1)))
(*.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1/4) 4)
(+.f64 y (*.f64 x (+.f64 y 1)))
(*.f64 (+.f64 (+.f64 y y) (*.f64 x (+.f64 y (+.f64 y 2)))) 1/2)
(+.f64 y (*.f64 x (+.f64 y 1)))
(/.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1)
(+.f64 y (*.f64 x (+.f64 y 1)))
(/.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 2) 2)
(+.f64 y (*.f64 x (+.f64 y 1)))
(/.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 4) 4)
(+.f64 y (*.f64 x (+.f64 y 1)))
(/.f64 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8) 8)
(+.f64 y (*.f64 x (+.f64 y 1)))
(/.f64 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8)) 16)
(+.f64 y (*.f64 x (+.f64 y 1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8))) 32)
(+.f64 y (*.f64 x (+.f64 y 1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8)))) 64)
(+.f64 y (*.f64 x (+.f64 y 1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8))))) 128)
(+.f64 y (*.f64 x (+.f64 y 1)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8)))))) 256)
(+.f64 y (*.f64 x (+.f64 y 1)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 8))))))) 512)
(+.f64 y (*.f64 x (+.f64 y 1)))
(pow.f64 (+.f64 y (*.f64 (+.f64 y 1) x)) 1)
(+.f64 y (*.f64 x (+.f64 y 1)))

eval23.0ms (1%)

Compiler

Compiled 1122 to 794 computations (29.2% saved)

prune15.0ms (0.6%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New1091110
Fresh011
Picked011
Done022
Total1095114
Error
0.0b
Counts
114 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 (+.f64 y 1) x) y)
28.7b
(+.f64 (*.f64 y x) y)
8.3b
(+.f64 x y)
55.0b
(*.f64 y x)
36.2b
y
Compiler

Compiled 29 to 18 computations (37.9% saved)

localize3.0ms (0.1%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked011
Done033
Total055
Error
0.0b
Counts
5 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 (+.f64 y 1) x) y)
28.7b
(+.f64 (*.f64 y x) y)
8.3b
(+.f64 x y)
55.0b
(*.f64 y x)
36.2b
y
Compiler

Compiled 29 to 18 computations (37.9% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune3.0ms (0.1%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done044
Total055
Error
0.0b
Counts
5 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 (*.f64 (+.f64 y 1) x) y)
28.7b
(+.f64 (*.f64 y x) y)
8.3b
(+.f64 x y)
55.0b
(*.f64 y x)
36.2b
y
Compiler

Compiled 29 to 18 computations (37.9% saved)

regimes16.0ms (0.7%)

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

3 calls:

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

Compiled 43 to 21 computations (51.2% saved)

regimes19.0ms (0.8%)

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

2 calls:

11.0ms
y
7.0ms
x
Results
ErrorSegmentsBranch
6.4b2x
1.1b3y
Compiler

Compiled 20 to 9 computations (55% saved)

bsearch24.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
4.594902565320494e-17
0.001078223636970992
9.0ms
-1.4748061148098157
-0.2763119447057675
Results
21.0ms256×body256valid
Compiler

Compiled 226 to 147 computations (35% saved)

regimes14.0ms (0.6%)

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

2 calls:

7.0ms
y
7.0ms
x
Results
ErrorSegmentsBranch
6.5b2x
6.7b2y
Compiler

Compiled 15 to 8 computations (46.7% saved)

bsearch17.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
5.319188293578304e-21
51405188.26971617
Results
15.0ms176×body256valid
0.0msbody256infinite
Compiler

Compiled 146 to 97 computations (33.6% saved)

regimes16.0ms (0.6%)

Accuracy

Total -33.1b remaining (-113.3%)

Threshold costs -33.1b (-113.3%)

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

2 calls:

9.0ms
x
6.0ms
y
Results
ErrorSegmentsBranch
29.2b3x
34.6b2y
Compiler

Compiled 12 to 7 computations (41.7% saved)

bsearch26.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
16.0ms
5.319188293578304e-21
51405188.26971617
10.0ms
-29342.981613124935
-1866.1526866353258
Results
23.0ms272×body256valid
0.0msbody256infinite
Compiler

Compiled 184 to 128 computations (30.4% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
028121
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 (+.f64 y 1) x) y)
(if (<=.f64 y -6530219459687219/4503599627370496) (*.f64 y x) (if (<=.f64 y 4842270319348757/4611686018427387904) (+.f64 x y) (+.f64 (*.f64 y x) y)))
(if (<=.f64 x 50000000) (+.f64 x y) (*.f64 y x))
(if (<=.f64 x -1900) (*.f64 y x) (if (<=.f64 x 1) y (*.f64 y x)))
y
Outputs
(+.f64 (*.f64 (+.f64 y 1) x) y)
(if (<=.f64 y -6530219459687219/4503599627370496) (*.f64 y x) (if (<=.f64 y 4842270319348757/4611686018427387904) (+.f64 x y) (+.f64 (*.f64 y x) y)))
(if (<=.f64 x 50000000) (+.f64 x y) (*.f64 y x))
(if (<=.f64 x -1900) (*.f64 y x) (if (<=.f64 x 1) y (*.f64 y x)))
y
Compiler

Compiled 62 to 35 computations (43.5% saved)

soundness0.0ms (0%)

end44.0ms (1.8%)

Compiler

Compiled 72 to 36 computations (50% saved)

Profiling

Loading profile data...