BlockwiseDirectSumCode( c_1, l_1, c_2, l_2 )
BlockwiseDirectSumCode
returns a subcode of the direct sum of
c_1 and c_2.
The fields of c_1 and c_2 should be same.
l_1 and l_2 are two equally long lists with elements from
the spaces where c_1 and c_2 are in, respectively,
em or l_1 and l_2 are two equally long lists containing
codes. The union of the codes in l_1 and l_2 must be c_1 and
c_2, respectively.
In the first case, the blockwise direct sum code is defined as bds = bigcup_1 leq i leq l ( c_1 + (l_1)_i ) oplus ( c_2 + (l_2)_i ), where l is the length of l_1 and l_2, and oplus is the direct sum.
In the second case, it is defined as bds = bigcup_1 leq i leq l ( (l_1)_i oplus (l_2)_i ).
The length of the new code is n = n_1 + n_2 .
gap> c := HammingCode( 3, GF(2) );; gap> d := EvenWeightSubcode( WholeSpaceCode( 6, GF(2) ) );; gap> BlockwiseDirectSumCode( c, [[ 0,0,0,0,0,0,0 ],[ 1,0,1,0,1,0,0 ]], > d, [[ 0,0,0,0,0,0 ],[ 1,0,1,0,1,0 ]] ); a (13,1024,1..13)1..2 blockwise direct sum code
GAP 3.4.4