1function
MMAP = mmap_max(MMAPa, MMAPb, k)
2% k
is the length of the synchronisation queue
4D0a = MMAPa{1}; D0b = MMAPb{1};
5D1a = MMAPa{2}; D1b = MMAPb{2};
7na = length(D0a); nb = length(D0b);
9Ia = eye(na); Ib = eye(nb);
11Za = zeros(na); Zb = zeros(nb); Z = kron(Za,Zb);
13A0B0 = krons(D0a,D0b); %
22M0 = zeros(size(A0B0)*(1+k*2));
25[iRows,iCols] = size(A0B0);
27M0(1:iRows, 1:iCols*3) = [A0B0 A1IB IAB1];
32 M0(r+1:r+iRows, c+1:c+iCols) = A0B0;
37M0(r+1:r+iRows, c+1:c+iCols) = IAB0;
40M0(r+1:r+iRows, c+1:c+iCols) = A0IB;
44 r = iRows*(1+2*(i-2));
45 c = iCols*(3+2*(i-2));
46 M0(r+1:r+iRows, c+1:c+iCols) = A1IB;
47 M0(r+1+iRows:r+iRows*2, c+1+iCols:c+iCols*2) = IAB1;
50M1(iRows+1:iRows*3, 1:iCols) = [IAB1; A1IB];
53 r = iRows*(1+2*(i-1));
54 c = iCols*(1+2*(i-2));
55 M1(r+1:r+iRows, c+1:c+iCols) = IAB1;
56 M1(r+1+iRows:r+iRows*2, c+1+iCols:c+iCols*2) = A1IB;
59MMAP=cell(1,size(MMAPa,2));
64for cls = 3:size(MMAPa,2)
74 Mc(iRows+1:iRows*3, 1:iCols) = [IAB1; A1IB];
77 r = iRows*(1+2*(i-1));
78 c = iCols*(1+2*(i-2));
79 Mc(r+1:r+iRows, c+1:c+iCols) = IAB1;
80 Mc(r+1+iRows:r+iRows*2, c+1+iCols:c+iCols*2) = A1IB;