Z:=X union Y: if nopsZ=5 then
K:={Z} intersect C: if K={} 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:=C union {Z}: if nopsC=c then
F:=[i,[opC]]: save F, D:\\coding new\\Coding
Theory\\DataOutD7Xt\\DatTemp5.m; return[opC];
end if: end if:
end if: end if:
end if: end if:
end if: end do:
end do: F:=[opC]:
save F, D:\\coding new\\Coding Theory\\DataOutD7Xt\\DatTemp5.m;
returnF: end proc:
1.3.20 KolekXVekM menentukan himpunan semua X vektor yang bisa
ditambahkan ke M berdasarkan teorema Gilbert-Vashamov. Prosedur ini menggunakan UjiAddXVekM.
KolekXVekM:=procx::posint,d::posint,H::list,L::list,c::posint local X,Y,Z,U,V,S,A,B,R,N,K,W,Q::set, h,i,j,k,l::integer,
T,T1::symbol, C::list: h:=nopsH: C:=[]:
for i from 1 to h-1 do X:=H[i]:
for j from i+1 to h do Y:=H[j]:
Z:=X union Y: if nopsZ=x then
S:=X intersect Y: V:=Z minus S:
A:=AddVop1,V,op2,V: T:=UjiAdd2VekMd,A,L:
if T=true then for k from 1 to x-3 do
N:=combinat[choose]S,k; T1:=true:
for R in N while T1=true do B:=A:
for K in R do B:=AddVB,K:
end do: T1:=UjiAddXVekM2+k,d,B,L:
end do: if T1=false then
break; end if:
end do: if T1=true then
W:=opS minus R: Q:=AddVB,W:
T:=UjiAddXVekMx,d,Q,L: if T=true then
C:=[opC,{opZ}]: if nopsC=c then
C:=[op{opC}]: returnC:
end if: end if:
end if: end if:
end if: end do:
end do: C:=[op{opC}]:
returnC: end proc:
1.3.21 KolekXVekMDt menentukan himpunan semua pasang X,Y,Z,U,W
menggunakan data hasil sebelumnya.
KolekXVekMDt:=procx::posint,d::posint,H::list,L::list,c::posi nt,Dat::list
local X,Y,Z,U,V,S,A,B,R,N,K,W,Q::set, h,i,j,k,l,t::integer, T,T1::symbol, C,F::list:
C:=Dat[2]: t:=Dat[1]: h:=nopsH:
for i from t to h-1 do X:=H[i]:
for j from i+1 to h do Y:=H[j]:
Z:=X union Y: if nopsZ=x then
S:=X intersect Y: V:=Z minus S:
A:=AddVop1,V,op2,V: T:=UjiAdd2VekMd,A,L:
if T=true then for k from 1 to x-3 do
N:=combinat[choose]S,k; T1:=true:
for R in N while T1=true do B:=A:
for K in R do B:=AddVB,K:
end do: T1:=UjiAddXVekM2+k,d,B,L:
end do: if T1=false then
break; end if:
end do: if T1=true then
W:=opS minus R: Q:=AddVB,W:
T:=UjiAddXVekMx,d,Q,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\\DatTemp6.m;
returnC: end if:
end if: end if:
end if: end if:
end do: end do:
F:=[op{opC}]: save F, D:\\coding new\\Coding
Theory\\DataOutD7x\\DatTemp6.m; returnF:
end proc:
1.3.22 Kolek5VM menentukan himpunan semua pasang X,Y,Z dalam yang bisa
ditambahkan ke M berdasarkan teorema Gilbert-Vashamov. Prosedur ini menggunakan UjiAdd3VekM.
KolekXVM:=procd::posint,N::list,H::list,L::list,m::integer local A,B,R,Y,Z,V,M,S::set, i,n,y1,y2,k,j::integer,
X,K::list, T1,T::symbol: n:=nopsN: K:=[]:
for i from 1 to n do X:=N[i]: A:=X[1]: B:=X[2]:
R:=combinat[choose]B,2: for Y in R do
y1:=op1,Y: y2:=op2,Y: V:=AddVH[y1],H[y2]: