while c < n:
    a, b = b, a + b
c = a + b
_pairs[c] = [a, b]
yield n,
if n == 1:
    yield 1, 0
else:
    right, left = _pairs[n]
for vl in fibs(left, _pairs):
    for vr in fibs(right, _pairs):
        yield vl + vr
Partions of values in a fibonacci call graph (call graph is a binary tree)