Misalkan himpunan H adalah output Kolek3VekM, setiap 4 vektor SplitHX menentukan himpunan semua pasang X,Y dalam yang bisa

B:=subsop1=NULL,B: X:=H[s]: U:={}: for i in B do Y:=H[i]: Z:=AddVX,Y: T:=UjiAdd2VekMd,Z,L: if T=true then for j from 1 to a do M:=combinat[choose]A,j: T1:=true: for R in M while T1=true do S:=Z: for k in R do S:=AddVS,H[k]: end do: T1:=UjiAddXVekM2+j,d,S,L: end do: if T1=false then break; end if: end do: if T1=true then U:={opU,i}: end if: end if: end do: return[[{opA,s},U],[A,B]]: end if: end proc: MoveRNX:=procR::list,N::list,c::integer,y::integer local X,L,M::list, A::set, i,x1,x2::integer: M:=N: A:={}: for i from 1 to nopsR do X:=R[i]: x1:=nopsX[1]: x2:=nopsX[2]: if x1=y and x2c then M:=[opM,X]: A:={opA,i}: elif x1+x2y+c or x2=0 then A:={opA,i}: end if: end do: L:=subsopopmapx-x=NULL,A,R: return[L,M]: end proc: IdxAddXV:=procd::posint,P::list,H::list,L::list,c::integer,y: :integer local R,N,T::list, i,s::integer: R:=SplitHXd,P,H,L: N:=[]: T:=MoveRNXR,N,c,y: R:=T[1]: N:=T[2]: for i while R[] do R:=mapx-opSplitHXd,x,H,L,R: T:=MoveRNXR,N,c,y: R:=T[1]: N:=T[2]: end do: returnN: end proc:

1.3.17 Misalkan himpunan H adalah output KolekX-1VekM, setiap X vektor

anggota H akan mehasilkan jumlah. Agar X vektor ini bisa ditambahkan langsung ke matriks M, maka diuji dengan prosedur UjiAddXVekM berdasarkan output ListKombM. UjiAddXVekM:=procx::posint,d::posint,U::set,L::list local H,G::list, i,j,g,b,k,n,t::integer: if nopsUd-x then returnfalse end if; H:=L: k:=nopsL[1]: n:=mind-x-1,k: for i from 1 to n do G:=H[i]: g:=nopsG: b:=d-x-i: for j from 1 to g do t:=HmDistU,G[j]: if tb then returnfalse; end if: end do: end do: returntrue; end proc:

1.3.18 Misalkan himpunan H adalah output Kolek4VekM, setiap 5 vektor

X,Y,Z,V,W anggota H akan mehasilkan vektor U = W+V + X + Y + Z. Agar dua vektor X, Y,Z,V dan W bisa ditambahkan langsung ke matriks M, maka U diuji dengan prosedur UjiAdd5VekM berdasarkan output ListKombM . UjiAdd5VekM:=procd::posint,U::set,L::list local H,G::list, i,j,g,b,k,n,t::integer: if nopsUd-5 then returnfalse end if; H:=L: k:=nopsL[1]: n:=mind-6,k: for i from 1 to n do G:=H[i]: g:=nopsG: b:=d-5-i: for j from 1 to g do t:=HmDistU,G[j]: if tb then returnfalse; end if: end do: end do: returntrue; end proc:

1.3.19 Kolek5VekMDt menentukan himpunan semua pasang X,Y,Z,U,W

menggunakan data hasil sebelumnya. Kolek5VekMDt:=procd::posint,H::list,L::list,c::posint,Dat:: list local X,Y,Z,U,U1,U2,U3,V,W1,W2,W3,R,S,A::set, h,i,j,k::integer, T,T1,T2,T3::symbol, C,F::list: C:=Dat[2]: k:=Dat[1]: h:=nopsH: for i from k to h-1 do X:=H[i]: for j from i+1 to h do Y:=H[j]: Z:=X union Y: if nopsZ=5 then S:=X intersect Y: V:=Z minus S: A:=AddVop1,V,op2,V: T:=UjiAdd2VekMd,A,L: if T=true then U1:=AddVop1,S,A: U2:=AddVop2,S,A: U3:=AddVop3,S,A: T1:=UjiAdd3VekMd,U1,L: T2:=UjiAdd3VekMd,U2,L: T3:=UjiAdd3VekMd,U3,L: if T1=true and T2=true and T3=true then W1:=AddVop2,S,U1: W2:=AddVop3,S,U1: W3:=AddVop3,S,U2: T1:=UjiAdd4VekMd,W1,L: T2:=UjiAdd4VekMd,W2,L: T3:=UjiAdd4VekMd,W3,L: if T1=true and T2=true and T3=true then R:=AddVop3,S,W1: T:=UjiAdd5VekMd,R,L: if T=true then C:=[opC,{opZ}]: if nopsC=c then C:=[op{opC}]: F:=[i,C]: save F, D:\\coding new\\Coding Theory\\DataOutD7Xt\\DatTemp5.m; returnC; end if: end if: end if: end if: end if: end if: end do: end do: F:=[op{opC}]: save F, :\\coding new\\Coding Theory\\DataOutD7Xt\\DatTemp5.m; returnF: end proc: Kolek5VekMDtX:=procd::posint,H::list,L::list,c::posint,Dat::l ist local X,Y,Z,U,U1,U2,U3,V,W1,W2,W3,R,S,A,C,K::set, h,i,j,k::integer, T,T1,T2,T3::symbol, F::list: C:={opDat[2]}: k:=Dat[1]: h:=nopsH: for i from k to h-1 do X:=H[i]: for j from i+1 to h do Y:=H[j]: