cache = Map(Mat([0,1])) a(n) = { my (v); if (!mapisdefined(cache, n, &v), my (b = binary(n), s = Set(vector(#b, k, fromdigits(concat(b[1..k-1], b[k+1..#b]), 2)))); v = vecsum(apply(a, s)); mapput(cache, n, v); ); return (v); } for (n = 0, 2^13, print (n " " a(n))) quit