Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Views: 19204
1
r"""
2
Some binary projective two-weight codes
3
=======================================
4
5
The ``binary_projective_two_weight_codes`` module defines
6
functions that construct two types of binary projective two-weight codes
7
as published by Tonchev [Ton1996]_ [Ton2007]_.
8
9
AUTHORS:
10
11
- Paul Leopardi (2016-09-15): initial version
12
13
EXAMPLES:
14
15
::
16
17
sage: from boolean_cayley_graphs.binary_projective_two_weight_codes import binary_projective_two_weight_27_6_12
18
sage: c27=binary_projective_two_weight_27_6_12()
19
sage: c27[1]
20
('000000000000000111111111111',
21
'000000000111111000000111111',
22
'000111111000011000011000011',
23
'001000111011101000101000101',
24
'010001011101110011101011101',
25
'100010101000101001111101000')
26
27
REFERENCES:
28
29
Tonchev [Ton1996]_, [Ton2007]_.
30
"""
31
#*****************************************************************************
32
# Copyright (C) 2016-2017 Paul Leopardi [email protected]
33
#
34
# Distributed under the terms of the GNU General Public License (GPL)
35
# as published by the Free Software Foundation; either version 2 of
36
# the License, or (at your option) any later version.
37
# http://www.gnu.org/licenses/
38
#*****************************************************************************
39
40
41
def binary_projective_two_weight_27_6_12():
42
r"""
43
Return the binary projective two-weight [27,6,12] codes as published by Tonchev.
44
45
Return a tuple that encodes the generator matrices
46
of the binary projective two-weight [27,6,12] codes,
47
listed as codes 1, 2, 3a, 3b and 4 in Table 1 of Tonchev [Ton1996]_,
48
and repeated as codes 1 to 5 in Table 1.155 of Tonchev [Ton2007]_.
49
50
INPUT:
51
52
- None.
53
54
OUTPUT:
55
56
A tuple of tuples of strings. Each tuple of strings encodes a generator matrix
57
of a binary projective two-weight code.
58
59
EXAMPLES:
60
61
::
62
63
sage: from boolean_cayley_graphs.binary_projective_two_weight_codes import binary_projective_two_weight_27_6_12
64
sage: c27=binary_projective_two_weight_27_6_12()
65
sage: c27[0]
66
('000000000001111111111111111',
67
'000000011110000000011111111',
68
'000001100110000111100001111',
69
'000111111110011001100110011',
70
'011010101010111011101110100',
71
'101010101100001110111011101')
72
73
REFERENCES:
74
75
Tonchev [Ton1996]_ [Ton2007]_.
76
"""
77
c1=("000000000001111111111111111",
78
"000000011110000000011111111",
79
"000001100110000111100001111",
80
"000111111110011001100110011",
81
"011010101010111011101110100",
82
"101010101100001110111011101")
83
c2=("000000000000000111111111111",
84
"000000000111111000000111111",
85
"000111111000011000011000011",
86
"001000111011101000101000101",
87
"010001011101110011101011101",
88
"100010101000101001111101000")
89
c3=("000000000000000111111111111",
90
"000000011111111000011111111",
91
"000001100001111001100001111",
92
"001110100010001010101110001",
93
"010110101110111110000110110",
94
"100011100110011111110010011")
95
c4=("000000000000000111111111111",
96
"000000011111111000000001111",
97
"000001100001111000011110011",
98
"001110100010111011101110101",
99
"010110101110001100100110000",
100
"111010010100011001101010000")
101
c5=("000000000000000111111111111",
102
"000000000111111000000111111",
103
"000000111000111000111000111",
104
"000111001001001011011000011",
105
"011001011010110001101001000",
106
"101010110011010000010010101")
107
108
return (c1, c2, c3, c4, c5)
109
110
111
def binary_projective_two_weight_35_6_16():
112
r"""
113
Return the binary projective two-weight [35,6,16] codes as published by Tonchev.
114
115
Return a tuple that encodes the generator matrices
116
of the binary projective two-weight [35,6,16] codes, listed
117
as codes 1, 2a, 2b, 3a, 3b, 4a and 4b in Table 2 of Tonchev [Ton1996]_,
118
and repeated as codes 1 to 7 in Table 1.156 of Tonchev [Ton2007]_.
119
120
121
INPUT:
122
123
- None.
124
125
OUTPUT:
126
127
A tuple of tuples of strings. Each tuple of strings encodes a generator matrix
128
of a binary projective two-weight code.
129
130
EXAMPLES:
131
132
::
133
134
sage: from boolean_cayley_graphs.binary_projective_two_weight_codes import binary_projective_two_weight_35_6_16
135
sage: c35=binary_projective_two_weight_35_6_16()
136
sage: c35[2]
137
('00000000000000011111111111111111111',
138
'00000000011111100000000001111111111',
139
'00011111100001100001111110000111111',
140
'00100011101110101110001110111000111',
141
'01000101110111000010110010001011001',
142
'10001010100010110100010100011101011')
143
144
REFERENCES:
145
146
Tonchev [Ton1996]_ [Ton2007]_.
147
"""
148
c1=("00000000000000000001111111111111111",
149
"00000000000111111110000000011111111",
150
"00000111111000000110000111100001111",
151
"00011000011000011110011001100110011",
152
"01101001101001101010111010001000100",
153
"10101010110010110100001000100011101")
154
c2=("00000000000000000001111111111111111",
155
"00000000011111111110000001111111111",
156
"00011111100001111110000110000111111",
157
"00100011100010001110001010111000111",
158
"01000101100100010110111010001011001",
159
"10001010101110110010011110011101011")
160
c3=("00000000000000011111111111111111111",
161
"00000000011111100000000001111111111",
162
"00011111100001100001111110000111111",
163
"00100011101110101110001110111000111",
164
"01000101110111000010110010001011001",
165
"10001010100010110100010100011101011")
166
c4=("00000000000000000001111111111111111",
167
"00000000000111111110000000011111111",
168
"00000111111000011110000001100001111",
169
"00111000111000101110001110100010001",
170
"01011011001011100010010010001100110",
171
"10001001010001110100100101100110011")
172
c5=("00000000000000000001111111111111111",
173
"00000000000111111110000000011111111",
174
"00000111111000011110000111100000011",
175
"00111000111011101110111000100011101",
176
"01011011001000100011001011001101100",
177
"11101101011001100110011101010110100")
178
c6=("00000000000000000001111111111111111",
179
"00000000000111111110000000011111111",
180
"00000011111000111110000011100000111",
181
"00011100111001001110001101101111011",
182
"01100101001010000110110110110011000",
183
"10101000011011011011011101010101101")
184
c7=("00000000000000000001111111111111111",
185
"00000000000111111110000000011111111",
186
"00000011111000111110001111100011111",
187
"00011100111001001110110001100000011",
188
"01100101001010000110010010100101111",
189
"10101000011011011010000110101000101")
190
191
return (c1, c2, c3, c4, c5, c6, c7)
192
193