Details

Time bar (total: 4.2s)

analyze94.0ms (2.3%)

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
51.6%50%46.8%0.1%3.1%0%0%7
62.3%59.3%35.9%0.1%4.7%0%0%8
72.3%67.1%25.8%0.1%7%0%0%9
79.1%72.6%19.1%0.1%8.2%0%0%10
85.1%76.9%13.5%0.1%9.6%0%0%11
89%79.8%9.9%0.1%10.2%0%0%12
Compiler

Compiled 12 to 9 computations (25% saved)

sample1.4s (32.6%)

Results
887.0ms6729×body256valid
225.0ms730×body1024valid
184.0ms789×body512valid
29.0ms221×body256infinite
3.0msbody2048valid
Bogosity

preprocess30.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01150
11550
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
(+.f64 y (*.f64 (-.f64 1 y) (-.f64 1 x)))
Outputs
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
(+.f64 y (*.f64 (-.f64 1 y) (-.f64 1 x)))
(+.f64 y (*.f64 (-.f64 1 x) (-.f64 1 y)))
Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify25.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0925
11125
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
Outputs
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))

eval2.0ms (0.1%)

Compiler

Compiled 11 to 8 computations (27.3% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 11 to 8 computations (27.3% saved)

localize17.0ms (0.4%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 18 computations (33.3% saved)

series6.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

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

rewrite126.0ms (3%)

Algorithm
batch-egg-rewrite
Rules
1804×rational.json-5
1802×exponential.json-3
1802×rational.json-1
1802×rational.json-2
1802×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0944
17644
224344
389844
4349544
Stop Event
node limit
Counts
2 → 17
Calls
Call 1
Inputs
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
(*.f64 (-.f64 1 x) (-.f64 1 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (/.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) (/.f64 1 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) (*.f64 (/.f64 1 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))))) (/.f64 (/.f64 1 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (/.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 1 x) (-.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) (/.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) (*.f64 (-.f64 1 x) (-.f64 1 y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) 1)))))

simplify209.0ms (5%)

Algorithm
egg-herbie
Rules
1378×rational.json-simplify-47
1118×rational.json-simplify-49
974×rational.json-simplify-2
802×rational.json-simplify-1
800×rational.json-simplify-111
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0531691
11041599
23061599
314331415
455941229
Stop Event
node limit
Counts
65 → 56
Calls
Call 1
Inputs
(-.f64 1 y)
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 -1 (-.f64 1 y))) x)) y)
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 -1 (-.f64 1 y))) x)) y)
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 -1 (-.f64 1 y))) x)) y)
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 1 y))) x)
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 -1 (-.f64 1 y))) x)) y)
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 -1 (-.f64 1 y))) x)) y)
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 -1 (-.f64 1 y))) x)) y)
(*.f64 y x)
(-.f64 (+.f64 1 (*.f64 y x)) y)
(-.f64 (+.f64 1 (*.f64 y x)) y)
(-.f64 (+.f64 1 (*.f64 y x)) y)
1
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(*.f64 -1 (*.f64 y (-.f64 1 x)))
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(*.f64 -1 (*.f64 y (-.f64 1 x)))
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(-.f64 1 y)
(-.f64 (+.f64 (*.f64 -1 (*.f64 (-.f64 1 y) x)) 1) y)
(-.f64 (+.f64 (*.f64 -1 (*.f64 (-.f64 1 y) x)) 1) y)
(-.f64 (+.f64 (*.f64 -1 (*.f64 (-.f64 1 y) x)) 1) y)
(*.f64 -1 (*.f64 (-.f64 1 y) x))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(*.f64 -1 (*.f64 (-.f64 1 y) x))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 1 x)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(*.f64 -1 (*.f64 y (-.f64 1 x)))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(*.f64 -1 (*.f64 y (-.f64 1 x)))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(-.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) 0)
(*.f64 1 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))))
(*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) 1)
(*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (/.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))))
(*.f64 (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) (/.f64 1 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))))
(*.f64 (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) (*.f64 (/.f64 1 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) 1))
(*.f64 (/.f64 1 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))))
(*.f64 (*.f64 (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))))) (/.f64 (/.f64 1 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))))))
(/.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) 1)
(/.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (/.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))))
(pow.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) 1)
(+.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) 0)
(+.f64 0 (*.f64 (-.f64 1 x) (-.f64 1 y)))
(-.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) 0)
(/.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) 1)
(/.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) (/.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) (*.f64 (-.f64 1 x) (-.f64 1 y))))
(pow.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) 1)
Outputs
(-.f64 1 y)
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 -1 (-.f64 1 y))) x)) y)
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 (-.f64 1 y) -1)) x)) y)
(-.f64 (*.f64 (+.f64 1 (neg.f64 (-.f64 1 y))) x) (+.f64 -1 y))
(+.f64 1 (-.f64 (*.f64 (+.f64 1 (neg.f64 (-.f64 1 y))) x) y))
(+.f64 1 (-.f64 (*.f64 (+.f64 2 (-.f64 y 2)) x) y))
(+.f64 1 (-.f64 (*.f64 (+.f64 y 0) x) y))
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 -1 (-.f64 1 y))) x)) y)
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 (-.f64 1 y) -1)) x)) y)
(-.f64 (*.f64 (+.f64 1 (neg.f64 (-.f64 1 y))) x) (+.f64 -1 y))
(+.f64 1 (-.f64 (*.f64 (+.f64 1 (neg.f64 (-.f64 1 y))) x) y))
(+.f64 1 (-.f64 (*.f64 (+.f64 2 (-.f64 y 2)) x) y))
(+.f64 1 (-.f64 (*.f64 (+.f64 y 0) x) y))
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 -1 (-.f64 1 y))) x)) y)
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 (-.f64 1 y) -1)) x)) y)
(-.f64 (*.f64 (+.f64 1 (neg.f64 (-.f64 1 y))) x) (+.f64 -1 y))
(+.f64 1 (-.f64 (*.f64 (+.f64 1 (neg.f64 (-.f64 1 y))) x) y))
(+.f64 1 (-.f64 (*.f64 (+.f64 2 (-.f64 y 2)) x) y))
(+.f64 1 (-.f64 (*.f64 (+.f64 y 0) x) y))
(*.f64 (+.f64 1 (*.f64 -1 (-.f64 1 y))) x)
(*.f64 (+.f64 1 (*.f64 (-.f64 1 y) -1)) x)
(*.f64 (+.f64 1 (neg.f64 (-.f64 1 y))) x)
(*.f64 (+.f64 2 (-.f64 y 2)) x)
(*.f64 (+.f64 y 0) x)
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 -1 (-.f64 1 y))) x)) y)
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 (-.f64 1 y) -1)) x)) y)
(-.f64 (*.f64 (+.f64 1 (neg.f64 (-.f64 1 y))) x) (+.f64 -1 y))
(+.f64 1 (-.f64 (*.f64 (+.f64 1 (neg.f64 (-.f64 1 y))) x) y))
(+.f64 1 (-.f64 (*.f64 (+.f64 2 (-.f64 y 2)) x) y))
(+.f64 1 (-.f64 (*.f64 (+.f64 y 0) x) y))
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 -1 (-.f64 1 y))) x)) y)
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 (-.f64 1 y) -1)) x)) y)
(-.f64 (*.f64 (+.f64 1 (neg.f64 (-.f64 1 y))) x) (+.f64 -1 y))
(+.f64 1 (-.f64 (*.f64 (+.f64 1 (neg.f64 (-.f64 1 y))) x) y))
(+.f64 1 (-.f64 (*.f64 (+.f64 2 (-.f64 y 2)) x) y))
(+.f64 1 (-.f64 (*.f64 (+.f64 y 0) x) y))
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 -1 (-.f64 1 y))) x)) y)
(-.f64 (+.f64 1 (*.f64 (+.f64 1 (*.f64 (-.f64 1 y) -1)) x)) y)
(-.f64 (*.f64 (+.f64 1 (neg.f64 (-.f64 1 y))) x) (+.f64 -1 y))
(+.f64 1 (-.f64 (*.f64 (+.f64 1 (neg.f64 (-.f64 1 y))) x) y))
(+.f64 1 (-.f64 (*.f64 (+.f64 2 (-.f64 y 2)) x) y))
(+.f64 1 (-.f64 (*.f64 (+.f64 y 0) x) y))
(*.f64 y x)
(-.f64 (+.f64 1 (*.f64 y x)) y)
(-.f64 (*.f64 y x) (+.f64 -1 y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(-.f64 1 (-.f64 y (*.f64 y x)))
(-.f64 (+.f64 1 (*.f64 y x)) y)
(-.f64 (*.f64 y x) (+.f64 -1 y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(-.f64 1 (-.f64 y (*.f64 y x)))
(-.f64 (+.f64 1 (*.f64 y x)) y)
(-.f64 (*.f64 y x) (+.f64 -1 y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(-.f64 1 (-.f64 y (*.f64 y x)))
1
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(+.f64 1 (*.f64 y (*.f64 (-.f64 1 x) -1)))
(+.f64 1 (*.f64 y (neg.f64 (-.f64 1 x))))
(+.f64 1 (*.f64 y (+.f64 -1 x)))
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(+.f64 1 (*.f64 y (*.f64 (-.f64 1 x) -1)))
(+.f64 1 (*.f64 y (neg.f64 (-.f64 1 x))))
(+.f64 1 (*.f64 y (+.f64 -1 x)))
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(+.f64 1 (*.f64 y (*.f64 (-.f64 1 x) -1)))
(+.f64 1 (*.f64 y (neg.f64 (-.f64 1 x))))
(+.f64 1 (*.f64 y (+.f64 -1 x)))
(*.f64 -1 (*.f64 y (-.f64 1 x)))
(*.f64 y (*.f64 (-.f64 1 x) -1))
(*.f64 y (neg.f64 (-.f64 1 x)))
(*.f64 y (+.f64 -1 x))
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(+.f64 1 (*.f64 y (*.f64 (-.f64 1 x) -1)))
(+.f64 1 (*.f64 y (neg.f64 (-.f64 1 x))))
(+.f64 1 (*.f64 y (+.f64 -1 x)))
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(+.f64 1 (*.f64 y (*.f64 (-.f64 1 x) -1)))
(+.f64 1 (*.f64 y (neg.f64 (-.f64 1 x))))
(+.f64 1 (*.f64 y (+.f64 -1 x)))
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(+.f64 1 (*.f64 y (*.f64 (-.f64 1 x) -1)))
(+.f64 1 (*.f64 y (neg.f64 (-.f64 1 x))))
(+.f64 1 (*.f64 y (+.f64 -1 x)))
(*.f64 -1 (*.f64 y (-.f64 1 x)))
(*.f64 y (*.f64 (-.f64 1 x) -1))
(*.f64 y (neg.f64 (-.f64 1 x)))
(*.f64 y (+.f64 -1 x))
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(+.f64 1 (*.f64 y (*.f64 (-.f64 1 x) -1)))
(+.f64 1 (*.f64 y (neg.f64 (-.f64 1 x))))
(+.f64 1 (*.f64 y (+.f64 -1 x)))
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(+.f64 1 (*.f64 y (*.f64 (-.f64 1 x) -1)))
(+.f64 1 (*.f64 y (neg.f64 (-.f64 1 x))))
(+.f64 1 (*.f64 y (+.f64 -1 x)))
(+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x))))
(+.f64 1 (*.f64 y (*.f64 (-.f64 1 x) -1)))
(+.f64 1 (*.f64 y (neg.f64 (-.f64 1 x))))
(+.f64 1 (*.f64 y (+.f64 -1 x)))
(-.f64 1 y)
(-.f64 (+.f64 (*.f64 -1 (*.f64 (-.f64 1 y) x)) 1) y)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(-.f64 (+.f64 (*.f64 -1 (*.f64 (-.f64 1 y) x)) 1) y)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(-.f64 (+.f64 (*.f64 -1 (*.f64 (-.f64 1 y) x)) 1) y)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(*.f64 -1 (*.f64 (-.f64 1 y) x))
(*.f64 x (neg.f64 (-.f64 1 y)))
(*.f64 (-.f64 1 y) (neg.f64 x))
(*.f64 x (+.f64 y -1))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(*.f64 -1 (*.f64 (-.f64 1 y) x))
(*.f64 x (neg.f64 (-.f64 1 y)))
(*.f64 (-.f64 1 y) (neg.f64 x))
(*.f64 x (+.f64 y -1))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(-.f64 1 x)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(*.f64 -1 (*.f64 y (-.f64 1 x)))
(*.f64 y (*.f64 (-.f64 1 x) -1))
(*.f64 y (neg.f64 (-.f64 1 x)))
(*.f64 y (+.f64 -1 x))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(*.f64 -1 (*.f64 y (-.f64 1 x)))
(*.f64 y (*.f64 (-.f64 1 x) -1))
(*.f64 y (neg.f64 (-.f64 1 x)))
(*.f64 y (+.f64 -1 x))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 y (-.f64 1 x)))) x)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(-.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) 0)
(+.f64 x (*.f64 (-.f64 1 y) (-.f64 1 x)))
(*.f64 1 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))))
(+.f64 x (*.f64 (-.f64 1 y) (-.f64 1 x)))
(*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) 1)
(+.f64 x (*.f64 (-.f64 1 y) (-.f64 1 x)))
(*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (/.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))))
(+.f64 x (*.f64 (-.f64 1 y) (-.f64 1 x)))
(*.f64 (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) (/.f64 1 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))))
(+.f64 x (*.f64 (-.f64 1 y) (-.f64 1 x)))
(*.f64 (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) (*.f64 (/.f64 1 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) 1))
(+.f64 x (*.f64 (-.f64 1 y) (-.f64 1 x)))
(*.f64 (/.f64 1 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))))
(+.f64 x (*.f64 (-.f64 1 y) (-.f64 1 x)))
(*.f64 (*.f64 (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))))) (/.f64 (/.f64 1 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))) (*.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))))))
(+.f64 x (*.f64 (-.f64 1 y) (-.f64 1 x)))
(/.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) 1)
(+.f64 x (*.f64 (-.f64 1 y) (-.f64 1 x)))
(/.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (/.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))))
(+.f64 x (*.f64 (-.f64 1 y) (-.f64 1 x)))
(pow.f64 (+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y))) 1)
(+.f64 x (*.f64 (-.f64 1 y) (-.f64 1 x)))
(+.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) 0)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(+.f64 0 (*.f64 (-.f64 1 x) (-.f64 1 y)))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(-.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) 0)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(/.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) 1)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(/.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) (/.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) (*.f64 (-.f64 1 x) (-.f64 1 y))))
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))
(pow.f64 (*.f64 (-.f64 1 x) (-.f64 1 y)) 1)
(-.f64 (+.f64 1 (*.f64 -1 (*.f64 (-.f64 1 y) x))) y)
(-.f64 (*.f64 x (neg.f64 (-.f64 1 y))) (+.f64 -1 y))
(-.f64 (*.f64 (-.f64 1 y) (neg.f64 x)) (+.f64 y -1))
(-.f64 (*.f64 x (+.f64 y -1)) (+.f64 y -1))
(*.f64 (-.f64 1 y) (-.f64 1 x))

eval24.0ms (0.6%)

Compiler

Compiled 691 to 480 computations (30.5% saved)

prune19.0ms (0.5%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New51556
Fresh000
Picked101
Done000
Total52557
Error
0b
Counts
57 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (+.f64 1 (*.f64 y x)) y)
18.7b
(-.f64 1 y)
27.0b
(*.f64 y (+.f64 -1 x))
44.9b
(*.f64 y x)
35.9b
1
Compiler

Compiled 29 to 21 computations (27.6% saved)

localize5.0ms (0.1%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

localize13.0ms (0.3%)

Local error

Found 1 expressions with local error:

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

Compiled 13 to 8 computations (38.5% saved)

series3.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite107.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
1384×rational.json-5
1382×exponential.json-3
1382×rational.json-1
1382×rational.json-2
1382×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15913
219113
369113
4268213
Stop Event
node limit
Counts
1 → 9
Calls
Call 1
Inputs
(*.f64 y (+.f64 -1 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (-.f64 x 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (-.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (-.f64 x 1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 y (-.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 y (-.f64 x 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (-.f64 x 1)) (/.f64 (*.f64 y (-.f64 x 1)) (*.f64 y (-.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (-.f64 x 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 y (-.f64 x 1))))))))

simplify188.0ms (4.5%)

Algorithm
egg-herbie
Rules
1170×rational.json-simplify-1
926×rational.json-simplify-111
774×rational.json-simplify-2
714×rational.json-simplify-41
618×rational.json-simplify-42
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
026411
155409
2122409
3381409
41571409
54718409
67196409
Stop Event
node limit
Counts
33 → 17
Calls
Call 1
Inputs
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 -1 y)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 y))
(+.f64 (*.f64 y (-.f64 x 1)) 0)
(+.f64 0 (*.f64 y (-.f64 x 1)))
(-.f64 (*.f64 y (-.f64 x 1)) 0)
(-.f64 0 (neg.f64 (*.f64 y (-.f64 x 1))))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y (-.f64 x 1)))) 1)
(/.f64 (*.f64 y (-.f64 x 1)) 1)
(/.f64 (*.f64 y (-.f64 x 1)) (/.f64 (*.f64 y (-.f64 x 1)) (*.f64 y (-.f64 x 1))))
(pow.f64 (*.f64 y (-.f64 x 1)) 1)
(neg.f64 (neg.f64 (*.f64 y (-.f64 x 1))))
Outputs
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 -1 y)
(*.f64 y -1)
(neg.f64 y)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 (*.f64 y (-.f64 x 1)) 0)
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 0 (*.f64 y (-.f64 x 1)))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(-.f64 (*.f64 y (-.f64 x 1)) 0)
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(-.f64 0 (neg.f64 (*.f64 y (-.f64 x 1))))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 y (-.f64 x 1)))) 1)
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(/.f64 (*.f64 y (-.f64 x 1)) 1)
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(/.f64 (*.f64 y (-.f64 x 1)) (/.f64 (*.f64 y (-.f64 x 1)) (*.f64 y (-.f64 x 1))))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(pow.f64 (*.f64 y (-.f64 x 1)) 1)
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(neg.f64 (neg.f64 (*.f64 y (-.f64 x 1))))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)

localize4.0ms (0.1%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize8.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 20 to 9 computations (55% saved)

series2.0ms (0.1%)

Counts
1 → 15
Calls

6 calls:

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

rewrite180.0ms (4.3%)

Algorithm
batch-egg-rewrite
Rules
1638×rational.json-5
1636×exponential.json-3
1636×rational.json-1
1636×rational.json-2
1636×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
17019
223119
383619
4319519
Stop Event
node limit
Counts
1 → 19
Calls
Call 1
Inputs
(-.f64 (+.f64 1 (*.f64 y x)) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (-.f64 (*.f64 y x) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 1 (-.f64 (*.f64 y x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 y x) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 1 (-.f64 (*.f64 y x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (/.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))) (+.f64 1 (-.f64 (*.f64 y x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 -1 (-.f64 y (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -1 (-.f64 y (*.f64 y x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))) (/.f64 1 (+.f64 1 (-.f64 (*.f64 y x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 1 (-.f64 (*.f64 y x) y))) (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))) (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y)))) (/.f64 (/.f64 1 (+.f64 1 (-.f64 (*.f64 y x) y))) (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 1 (-.f64 (*.f64 y x) y))) (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y)))) (*.f64 (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))) (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (/.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -1 (-.f64 y (*.f64 y x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 -1 (-.f64 y (*.f64 y x))))))))

simplify205.0ms (4.9%)

Algorithm
egg-herbie
Rules
1412×rational.json-simplify-47
1274×rational.json-simplify-49
1054×rational.json-simplify-2
890×rational.json-simplify-50
830×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045580
179580
2247580
31433580
45793580
Stop Event
node limit
Counts
34 → 30
Calls
Call 1
Inputs
1
(+.f64 1 (*.f64 y (-.f64 x 1)))
(+.f64 1 (*.f64 y (-.f64 x 1)))
(+.f64 1 (*.f64 y (-.f64 x 1)))
(*.f64 y (-.f64 x 1))
(+.f64 1 (*.f64 y (-.f64 x 1)))
(+.f64 1 (*.f64 y (-.f64 x 1)))
(+.f64 1 (*.f64 y (-.f64 x 1)))
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(+.f64 1 (*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x)))))
(+.f64 1 (*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x)))))
(+.f64 1 (*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x)))))
(-.f64 1 y)
(*.f64 y x)
(*.f64 y x)
(+.f64 1 (-.f64 (*.f64 y x) y))
(+.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) 0)
(+.f64 0 (+.f64 1 (-.f64 (*.f64 y x) y)))
(+.f64 (-.f64 (*.f64 y x) y) 1)
(*.f64 1 (+.f64 1 (-.f64 (*.f64 y x) y)))
(*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) 1)
(*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (/.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))))
(*.f64 (/.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))) (+.f64 1 (-.f64 (*.f64 y x) y)))
(*.f64 -1 (+.f64 -1 (-.f64 y (*.f64 y x))))
(*.f64 (+.f64 -1 (-.f64 y (*.f64 y x))) -1)
(*.f64 (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))) (/.f64 1 (+.f64 1 (-.f64 (*.f64 y x) y))))
(*.f64 (/.f64 1 (+.f64 1 (-.f64 (*.f64 y x) y))) (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))))
(*.f64 (*.f64 (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))) (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y)))) (/.f64 (/.f64 1 (+.f64 1 (-.f64 (*.f64 y x) y))) (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y)))))
(*.f64 (/.f64 (/.f64 1 (+.f64 1 (-.f64 (*.f64 y x) y))) (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y)))) (*.f64 (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))) (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y)))))
(/.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) 1)
(/.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (/.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))))
(/.f64 (+.f64 -1 (-.f64 y (*.f64 y x))) -1)
(pow.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) 1)
(neg.f64 (+.f64 -1 (-.f64 y (*.f64 y x))))
Outputs
1
(+.f64 1 (*.f64 y (-.f64 x 1)))
(+.f64 1 (*.f64 y (+.f64 x -1)))
(-.f64 1 (*.f64 y (-.f64 1 x)))
(+.f64 1 (*.f64 y (-.f64 x 1)))
(+.f64 1 (*.f64 y (+.f64 x -1)))
(-.f64 1 (*.f64 y (-.f64 1 x)))
(+.f64 1 (*.f64 y (-.f64 x 1)))
(+.f64 1 (*.f64 y (+.f64 x -1)))
(-.f64 1 (*.f64 y (-.f64 1 x)))
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(+.f64 1 (*.f64 y (-.f64 x 1)))
(+.f64 1 (*.f64 y (+.f64 x -1)))
(-.f64 1 (*.f64 y (-.f64 1 x)))
(+.f64 1 (*.f64 y (-.f64 x 1)))
(+.f64 1 (*.f64 y (+.f64 x -1)))
(-.f64 1 (*.f64 y (-.f64 1 x)))
(+.f64 1 (*.f64 y (-.f64 x 1)))
(+.f64 1 (*.f64 y (+.f64 x -1)))
(-.f64 1 (*.f64 y (-.f64 1 x)))
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(*.f64 y (+.f64 x -1))
(+.f64 1 (*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x)))))
(+.f64 1 (*.f64 y (+.f64 x -1)))
(-.f64 1 (*.f64 y (-.f64 1 x)))
(+.f64 1 (*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x)))))
(+.f64 1 (*.f64 y (+.f64 x -1)))
(-.f64 1 (*.f64 y (-.f64 1 x)))
(+.f64 1 (*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x)))))
(+.f64 1 (*.f64 y (+.f64 x -1)))
(-.f64 1 (*.f64 y (-.f64 1 x)))
(-.f64 1 y)
(*.f64 y x)
(*.f64 y x)
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(+.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) 0)
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(+.f64 0 (+.f64 1 (-.f64 (*.f64 y x) y)))
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(+.f64 (-.f64 (*.f64 y x) y) 1)
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(*.f64 1 (+.f64 1 (-.f64 (*.f64 y x) y)))
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) 1)
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (/.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))))
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(*.f64 (/.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))) (+.f64 1 (-.f64 (*.f64 y x) y)))
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(*.f64 -1 (+.f64 -1 (-.f64 y (*.f64 y x))))
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(*.f64 (+.f64 -1 (-.f64 y (*.f64 y x))) -1)
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(*.f64 (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))) (/.f64 1 (+.f64 1 (-.f64 (*.f64 y x) y))))
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(*.f64 (/.f64 1 (+.f64 1 (-.f64 (*.f64 y x) y))) (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))))
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(*.f64 (*.f64 (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))) (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y)))) (/.f64 (/.f64 1 (+.f64 1 (-.f64 (*.f64 y x) y))) (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y)))))
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(*.f64 (/.f64 (/.f64 1 (+.f64 1 (-.f64 (*.f64 y x) y))) (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y)))) (*.f64 (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))) (*.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y)))))
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(/.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) 1)
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(/.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (/.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) (+.f64 1 (-.f64 (*.f64 y x) y))))
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(/.f64 (+.f64 -1 (-.f64 y (*.f64 y x))) -1)
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(pow.f64 (+.f64 1 (-.f64 (*.f64 y x) y)) 1)
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))
(neg.f64 (+.f64 -1 (-.f64 y (*.f64 y x))))
(+.f64 1 (-.f64 (*.f64 y x) y))
(-.f64 (*.f64 y x) (+.f64 y -1))

eval11.0ms (0.3%)

Compiler

Compiled 514 to 249 computations (51.6% saved)

prune11.0ms (0.3%)

Pruning

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New45247
Fresh011
Picked011
Done033
Total45752
Error
0b
Counts
52 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (+.f64 1 (*.f64 y x)) y)
27.0b
(-.f64 (*.f64 y x) y)
18.7b
(-.f64 1 y)
27.0b
(*.f64 y (+.f64 -1 x))
44.9b
(*.f64 y x)
45.0b
(neg.f64 y)
35.9b
1
Compiler

Compiled 40 to 28 computations (30% saved)

localize3.0ms (0.1%)

Compiler

Compiled 5 to 3 computations (40% saved)

localize5.0ms (0.1%)

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 → 24
Calls

6 calls:

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

rewrite279.0ms (6.7%)

Algorithm
batch-egg-rewrite
Rules
1408×rational.json-5
1406×exponential.json-3
1406×rational.json-1
1406×rational.json-2
1406×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
15113
218413
369113
4271213
Stop Event
node limit
Counts
1 → 32
Calls
Call 1
Inputs
(-.f64 (*.f64 y x) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 y x) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (*.f64 y x) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (-.f64 (*.f64 y x) (-.f64 y -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (*.f64 y x) (-.f64 y -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 y x) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 y x) y) (/.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (*.f64 y x) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)) (-.f64 (*.f64 y x) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 y (*.f64 y x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x -1) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x -1) (-.f64 -1 (-.f64 -1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (-.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y y) (*.f64 (+.f64 x -1) (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y y) (-.f64 (*.f64 x (/.f64 1 y)) (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)) (/.f64 1 (-.f64 (*.f64 y x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)) (/.f64 (/.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)) (-.f64 (*.f64 y x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)) (/.f64 -1 (-.f64 y (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 y (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 x) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))) (-.f64 -1 (-.f64 (*.f64 y x) (-.f64 y -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (-.f64 (*.f64 y x) y)) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))) (/.f64 (/.f64 1 (-.f64 (*.f64 y x) y)) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x -1) (/.f64 1 y)) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (-.f64 (*.f64 y x) y)) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))))) (/.f64 (/.f64 (/.f64 1 (-.f64 (*.f64 y x) y)) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 0 (-.f64 1 x)) (-.f64 -1 (-.f64 -1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 y x) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 y x) y) (/.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 y (*.f64 y x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (*.f64 y x) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 y (*.f64 y x)))))))

simplify255.0ms (6.1%)

Algorithm
egg-herbie
Rules
1452×rational.json-simplify-2
1170×rational.json-simplify-58
968×rational.json-simplify-43
950×rational.json-simplify-54
734×rational.json-simplify-1
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
076768
1142768
2362768
31771768
44354756
56893756
Stop Event
node limit
Counts
56 → 43
Calls
Call 1
Inputs
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 y (-.f64 x 1))
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(*.f64 -1 y)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 y))
(+.f64 (*.f64 y x) (*.f64 -1 y))
(+.f64 (-.f64 (*.f64 y x) y) 0)
(+.f64 0 (-.f64 (*.f64 y x) y))
(+.f64 1 (-.f64 (*.f64 y x) (-.f64 y -1)))
(+.f64 (-.f64 (*.f64 y x) (-.f64 y -1)) 1)
(*.f64 y (+.f64 x -1))
(*.f64 (-.f64 (*.f64 y x) y) 1)
(*.f64 (-.f64 (*.f64 y x) y) (/.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))
(*.f64 1 (-.f64 (*.f64 y x) y))
(*.f64 (/.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)) (-.f64 (*.f64 y x) y))
(*.f64 (-.f64 y (*.f64 y x)) -1)
(*.f64 (+.f64 x -1) y)
(*.f64 (+.f64 x -1) (-.f64 -1 (-.f64 -1 y)))
(*.f64 (neg.f64 y) (-.f64 1 x))
(*.f64 (*.f64 y y) (*.f64 (+.f64 x -1) (/.f64 1 y)))
(*.f64 (*.f64 y y) (-.f64 (*.f64 x (/.f64 1 y)) (/.f64 1 y)))
(*.f64 (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)) (/.f64 1 (-.f64 (*.f64 y x) y)))
(*.f64 (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)) (/.f64 (/.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)) (-.f64 (*.f64 y x) y)))
(*.f64 (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)) (/.f64 -1 (-.f64 y (*.f64 y x))))
(*.f64 -1 (-.f64 y (*.f64 y x)))
(*.f64 (-.f64 1 x) (neg.f64 y))
(*.f64 (neg.f64 (/.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))) (-.f64 -1 (-.f64 (*.f64 y x) (-.f64 y -1))))
(*.f64 (/.f64 1 (-.f64 (*.f64 y x) y)) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))
(*.f64 (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))) (/.f64 (/.f64 1 (-.f64 (*.f64 y x) y)) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))))
(*.f64 (*.f64 (+.f64 x -1) (/.f64 1 y)) (*.f64 y y))
(*.f64 (/.f64 (/.f64 1 (-.f64 (*.f64 y x) y)) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))))
(*.f64 (*.f64 (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))))) (/.f64 (/.f64 (/.f64 1 (-.f64 (*.f64 y x) y)) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))))))
(*.f64 (-.f64 0 (-.f64 1 x)) (-.f64 -1 (-.f64 -1 y)))
(/.f64 (-.f64 (*.f64 y x) y) 1)
(/.f64 (-.f64 (*.f64 y x) y) (/.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))
(/.f64 (-.f64 y (*.f64 y x)) -1)
(pow.f64 (-.f64 (*.f64 y x) y) 1)
(neg.f64 (-.f64 y (*.f64 y x)))
Outputs
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (-.f64 x 1))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 -1 (*.f64 y (+.f64 1 (*.f64 -1 x))))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 -1 y)
(neg.f64 y)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 (*.f64 y x) (*.f64 -1 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 (-.f64 (*.f64 y x) y) 0)
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 0 (-.f64 (*.f64 y x) y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 1 (-.f64 (*.f64 y x) (-.f64 y -1)))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(+.f64 (-.f64 (*.f64 y x) (-.f64 y -1)) 1)
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 (-.f64 (*.f64 y x) y) 1)
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 (-.f64 (*.f64 y x) y) (/.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 1 (-.f64 (*.f64 y x) y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 (/.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)) (-.f64 (*.f64 y x) y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 (-.f64 y (*.f64 y x)) -1)
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 (+.f64 x -1) y)
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 (+.f64 x -1) (-.f64 -1 (-.f64 -1 y)))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 (neg.f64 y) (-.f64 1 x))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 (*.f64 y y) (*.f64 (+.f64 x -1) (/.f64 1 y)))
(*.f64 y (*.f64 y (*.f64 (+.f64 x -1) (/.f64 1 y))))
(*.f64 (+.f64 x -1) (*.f64 (*.f64 y 1) (/.f64 y y)))
(*.f64 (+.f64 x -1) (*.f64 y (/.f64 y y)))
(*.f64 (*.f64 y y) (-.f64 (*.f64 x (/.f64 1 y)) (/.f64 1 y)))
(*.f64 y (*.f64 y (-.f64 (*.f64 x (/.f64 1 y)) (/.f64 1 y))))
(*.f64 (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)) (/.f64 1 (-.f64 (*.f64 y x) y)))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)) (/.f64 (/.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)) (-.f64 (*.f64 y x) y)))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)) (/.f64 -1 (-.f64 y (*.f64 y x))))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 -1 (-.f64 y (*.f64 y x)))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 (-.f64 1 x) (neg.f64 y))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 (neg.f64 (/.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))) (-.f64 -1 (-.f64 (*.f64 y x) (-.f64 y -1))))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 (/.f64 1 (-.f64 (*.f64 y x) y)) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))) (/.f64 (/.f64 1 (-.f64 (*.f64 y x) y)) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 (*.f64 (+.f64 x -1) (/.f64 1 y)) (*.f64 y y))
(*.f64 y (*.f64 y (*.f64 (+.f64 x -1) (/.f64 1 y))))
(*.f64 (+.f64 x -1) (*.f64 (*.f64 y 1) (/.f64 y y)))
(*.f64 (*.f64 y y) (*.f64 (+.f64 x -1) (/.f64 1 y)))
(*.f64 (+.f64 x -1) (*.f64 y (/.f64 y y)))
(*.f64 (/.f64 (/.f64 1 (-.f64 (*.f64 y x) y)) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 (*.f64 (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))))) (/.f64 (/.f64 (/.f64 1 (-.f64 (*.f64 y x) y)) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (*.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y))))))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(*.f64 (-.f64 0 (-.f64 1 x)) (-.f64 -1 (-.f64 -1 y)))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(/.f64 (-.f64 (*.f64 y x) y) 1)
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(/.f64 (-.f64 (*.f64 y x) y) (/.f64 (-.f64 (*.f64 y x) y) (-.f64 (*.f64 y x) y)))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(/.f64 (-.f64 y (*.f64 y x)) -1)
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(pow.f64 (-.f64 (*.f64 y x) y) 1)
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)
(neg.f64 (-.f64 y (*.f64 y x)))
(*.f64 y (+.f64 x -1))
(-.f64 (*.f64 y x) y)

eval7.0ms (0.2%)

Compiler

Compiled 580 to 163 computations (71.9% saved)

prune12.0ms (0.3%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New43043
Fresh011
Picked011
Done055
Total43750
Error
0b
Counts
50 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (+.f64 1 (*.f64 y x)) y)
27.0b
(-.f64 (*.f64 y x) y)
18.7b
(-.f64 1 y)
27.0b
(*.f64 y (+.f64 -1 x))
44.9b
(*.f64 y x)
45.0b
(neg.f64 y)
35.9b
1
Compiler

Compiled 40 to 28 computations (30% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune3.0ms (0.1%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done066
Total077
Error
0b
Counts
7 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(-.f64 (+.f64 1 (*.f64 y x)) y)
27.0b
(-.f64 (*.f64 y x) y)
18.7b
(-.f64 1 y)
27.0b
(*.f64 y (+.f64 -1 x))
44.9b
(*.f64 y x)
45.0b
(neg.f64 y)
35.9b
1
Compiler

Compiled 40 to 28 computations (30% saved)

regimes26.0ms (0.6%)

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

4 calls:

7.0ms
y
6.0ms
x
6.0ms
(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
4.0ms
(-.f64 1 y)
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(+.f64 x (*.f64 (-.f64 1 x) (-.f64 1 y)))
0.0b1(-.f64 1 y)
Compiler

Compiled 59 to 36 computations (39% saved)

regimes56.0ms (1.4%)

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

3 calls:

24.0ms
x
17.0ms
y
11.0ms
(-.f64 1 y)
Results
ErrorSegmentsBranch
9.2b3x
8.0b3y
8.5b3(-.f64 1 y)
Compiler

Compiled 32 to 19 computations (40.6% saved)

bsearch25.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
11.0ms
2.015832189373008e-13
1.0678439749983318e-12
14.0ms
-5.587687502142047e-35
-1.0847596362077248e-36
Results
20.0ms208×body256valid
Compiler

Compiled 198 to 149 computations (24.7% saved)

regimes52.0ms (1.2%)

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

3 calls:

22.0ms
x
16.0ms
y
12.0ms
(-.f64 1 y)
Results
ErrorSegmentsBranch
9.2b3x
8.0b3y
8.5b3(-.f64 1 y)
Compiler

Compiled 27 to 18 computations (33.3% saved)

bsearch26.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
11.0ms
2.015832189373008e-13
1.0678439749983318e-12
15.0ms
-5.587687502142047e-35
-1.0847596362077248e-36
Results
22.0ms208×body256valid
Compiler

Compiled 198 to 155 computations (21.7% saved)

regimes70.0ms (1.7%)

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

3 calls:

28.0ms
y
20.0ms
x
20.0ms
(-.f64 1 y)
Results
ErrorSegmentsBranch
9.6b3x
15.8b5y
17.0b3(-.f64 1 y)
Compiler

Compiled 22 to 15 computations (31.8% saved)

bsearch33.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
12.0ms
2.7082224061048087e+54
1.5587815760269157e+55
21.0ms
-1.7834035432837744e+65
-1.0290562675694403e+59
Results
25.0ms229×body256valid
2.0ms17×body256infinite
2.0ms11×body512valid
Compiler

Compiled 196 to 147 computations (25% saved)

regimes59.0ms (1.4%)

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

2 calls:

36.0ms
x
22.0ms
y
Results
ErrorSegmentsBranch
21.6b8x
16.1b5y
Compiler

Compiled 14 to 9 computations (35.7% saved)

bsearch59.0ms (1.4%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
1.5975867038577788e+41
7.741217235615748e+48
12.0ms
2.015832189373008e-13
1.0678439749983318e-12
15.0ms
-5.587687502142047e-35
-1.0847596362077248e-36
14.0ms
-5.163747850397989e+19
-1214465709776555300.0
Results
50.0ms464×body256valid
1.0msbody256infinite
Compiler

Compiled 322 to 244 computations (24.2% saved)

regimes133.0ms (3.2%)

Accuracy

Total -43.1b remaining (-227.6%)

Threshold costs -43.1b (-227.6%)

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

2 calls:

121.0ms
x
10.0ms
y
Results
ErrorSegmentsBranch
30.5b7x
19.0b3y
Compiler

Compiled 11 to 8 computations (27.3% saved)

bsearch207.0ms (5%)

Algorithm
binary-search
Steps
TimeLeftRight
27.0ms
2129096958409471.3
6.6723939736751975e+22
179.0ms
-3.2791084212671835e-19
-1.2254161923992966e-26
Results
46.0ms288×body256valid
Compiler

Compiled 178 to 156 computations (12.4% saved)

simplify10.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
054251
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(-.f64 (+.f64 1 (*.f64 y x)) y)
(if (<=.f64 y -3591786423904427/748288838313422294120286634350736906063837462003712) (*.f64 y (+.f64 -1 x)) (if (<=.f64 y 8120886657712095/9903520314283042199192993792) (-.f64 1 y) (-.f64 (*.f64 y x) y)))
(if (<=.f64 y -4022052505934645/93536104789177786765035829293842113257979682750464) (*.f64 y (+.f64 -1 x)) (if (<=.f64 y 4852724953998691/4951760157141521099596496896) (-.f64 1 y) (*.f64 y (+.f64 -1 x))))
(if (<=.f64 x -3500000000000000179666896716249036298944249900920719351480320) (*.f64 y x) (if (<=.f64 x 11499999999999999369082063508633718601325910005733392384) (-.f64 1 y) (*.f64 y x)))
(if (<=.f64 y -1450000000000000000) (neg.f64 y) (if (<=.f64 y -5686995171182009/748288838313422294120286634350736906063837462003712) (*.f64 y x) (if (<=.f64 y 8715097876569077/19807040628566084398385987584) 1 (if (<=.f64 y 23000000000000002425053935791798895329148928) (*.f64 y x) (neg.f64 y)))))
(if (<=.f64 y -6646139978924579/20769187434139310514121985316880384) (neg.f64 y) (if (<=.f64 y 2150000000000000) 1 (neg.f64 y)))
1
Outputs
(-.f64 (+.f64 1 (*.f64 y x)) y)
(if (<=.f64 y -3591786423904427/748288838313422294120286634350736906063837462003712) (*.f64 y (+.f64 -1 x)) (if (<=.f64 y 8120886657712095/9903520314283042199192993792) (-.f64 1 y) (-.f64 (*.f64 y x) y)))
(if (<=.f64 y -4022052505934645/93536104789177786765035829293842113257979682750464) (*.f64 y (+.f64 -1 x)) (if (<=.f64 y 4852724953998691/4951760157141521099596496896) (-.f64 1 y) (*.f64 y (+.f64 -1 x))))
(if (<=.f64 x -3500000000000000179666896716249036298944249900920719351480320) (*.f64 y x) (if (<=.f64 x 11499999999999999369082063508633718601325910005733392384) (-.f64 1 y) (*.f64 y x)))
(if (<=.f64 y -1450000000000000000) (neg.f64 y) (if (<=.f64 y -5686995171182009/748288838313422294120286634350736906063837462003712) (*.f64 y x) (if (<=.f64 y 8715097876569077/19807040628566084398385987584) 1 (if (<=.f64 y 23000000000000002425053935791798895329148928) (*.f64 y x) (neg.f64 y)))))
(if (<=.f64 y -6646139978924579/20769187434139310514121985316880384) (neg.f64 y) (if (<=.f64 y 2150000000000000) 1 (neg.f64 y)))
1
Compiler

Compiled 121 to 78 computations (35.5% saved)

soundness0.0ms (0%)

end189.0ms (4.5%)

Compiler

Compiled 109 to 62 computations (43.1% saved)

Profiling

Loading profile data...