MAX_N = 11; global p global newCount global n p = cell(1, MAX_N); p{1} = cell(1); p{1}{1} = int8(1); n = 2; while n <= MAX_N prevCount = length(p{n - 1}); p{n} = cell(1, 4*prevCount); newCount = 0; i = 1; while i <= prevCount oldPiece = p{n - 1}{i}; [l, w] = size(oldPiece); doBorders(oldPiece, l, w); if l > 1 && w > 1 doCorners(oldPiece, l, w); doEdges(oldPiece, l, w); if l > 2 && w > 2 doMiddle(oldPiece, l, w); end end i = i + 1; end p{n} = p{n}(1:newCount); [n newCount] n = n + 1; end save polys p FullyAutomatedEqRel clear load polys p t = zeros(MAX_N, MAX_N); t(1, 1) = 1; t(2, 2) = 1; for n = 3:10 t(n, 1) = 0; pieces = p{n}; l = length(pieces); t(n, 2) = l; for j = 3:(n - 1) [n j] load eq1to10 eqRels eqRels = eqRels{n, j}; total = 0; i = 0; while i < l i = i + 1; total = total + count_colorings(n, pieces{i}, eqRels); end t(n, j) = total; end t(n, n) = l; end %Workaround because I don't have enough memory to hold all the equiv. rels. %on 11 elements. clear eqRels pieces = p{11}; clear p l = length(pieces); t(11, 1) = 0; t(11, 2) = l; for j = 3:10 [11 j] load(['eq11_' num2str(j)], 'eq11'); total = 0; i = 0; while i < l i = i + 1; total = total + count_colorings(11, pieces{i}, eq11); end end t(11, 11) = l; A = t(1, 1); for i = 2:11 A = [A t(i, 1:i)]; end save results t A