Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Views: 19204
1
# -*- coding: utf-8 -*-
2
3
r"""
4
Reference generation
5
====================
6
7
The ``references`` module defines
8
functions that generate and organize the bibliographic references for this project.
9
10
AUTHORS:
11
12
- Paul Leopardi (2017-05-20): initial version
13
14
"""
15
#*****************************************************************************
16
# Copyright (C) 2017 Paul Leopardi [email protected]
17
#
18
# Distributed under the terms of the GNU General Public License (GPL)
19
# as published by the Free Software Foundation; either version 2 of
20
# the License, or (at your option) any later version.
21
# http://www.gnu.org/licenses/
22
#*****************************************************************************
23
24
25
from collections import OrderedDict
26
from string import ascii_uppercase
27
from sys import stdout
28
29
30
bibitem = OrderedDict()
31
32
bibitem["RFC2144"] = ("""C. M. Adams.
33
*The cast-128 encryption algorithm.*
34
RFC 2144, RFC Editor, May 1997.
35
""")
36
37
bibitem["Ada1997"] = ("""C. M. Adams.
38
Constructing symmetric ciphers using the cast design procedure.
39
In E. Kranakis and P. Van Oorschot, editors, *Selected Areas in
40
Cryptography*, 71--104, Boston, MA, (1997). Springer US.
41
""")
42
43
bibitem["BC1999"] = ("""A. Bernasconi and B. Codenotti.
44
"Spectral analysis of Boolean functions as a graph eigenvalue problem".
45
IEEE Transactions on Computers, 48(3):345--351, (1999).
46
""")
47
48
bibitem["BCV2001"] = ("""A. Bernasconi, B. Codenotti, and J. M. VanderKam.
49
"A characterization of bent functions in terms of strongly regular graphs".
50
IEEE Transactions on Computers, 50(9):984--985, (2001).
51
""")
52
53
bibitem["Bos1963"] = ("""R. C. Bose.
54
"Strongly regular graphs, partial geometries and partially balanced designs".
55
Pacific J. Math, 13(2):389--419, (1963).
56
""")
57
58
bibitem["BFFWW2006"] = ("""I. Bouyukliev, V. Fack, W. Willems, and J. Winne.
59
"Projective two-weight codes with small parameters and their corresponding graphs".
60
Designs, Codes and Cryptography, 41(1):59--78, (2006).
61
""")
62
63
"""
64
Notes:
65
7.3 1, p 74. SDP designs. [35,6,16]_2 PTW codes and 2-(64,28,12) SDP designs,
66
ref [23] is [Ton1996]_.
67
68
pp. 74-75 *two* constructions of SRGs, from [Del1972]_ and
69
from [9] Calderbank and Kantor.
70
"""
71
72
bibitem["Bra2006"] = ("""A. Braeken.
73
*Cryptographic Properties of Boolean Functions and S-Boxes*.
74
Phd thesis, Katholieke Universiteit Leuven, Leuven-Heverlee, Belgium,
75
(2006).
76
""")
77
78
bibitem["BCN1989"] = ("""A. E. Brouwer, A. Cohen, and A. Neumaier.
79
*Distance-Regular Graphs*.
80
Ergebnisse der Mathematik und Ihrer Grenzgebiete, 3 Folge / A Series of
81
Modern Surveys in Mathematics. Springer London, (2011).
82
""")
83
84
bibitem["BV1992"] = ("""A. E. Brouwer and C. A. Van Eijl.
85
"On the p-rank of the adjacency matrices of strongly regular graphs".
86
Journal of Algebraic Combinatorics, 1(4):329--346, (1992).
87
""")
88
89
bibitem["CalK1986"] = ("""R. Calderbank and W. M. Kantor.
90
"The geometry of two-weight codes".
91
Bulletin of the London Mathematical Society, 18(2):97--122, (1986).
92
""")
93
94
bibitem["Car2010"] = ("""C. Carlet.
95
Boolean functions for cryptography and error correcting codes.
96
In *Boolean Models and Methods in Mathematics, Computer Science,
97
and Engineering*, volume 2, 257--397. Cambridge University Press, (2010).
98
""")
99
100
bibitem["CDPS2010"] = ("""C. Carlet, L. E. Danielsen, M. G. Parker, and P. Solé.
101
"Self-dual bent functions".
102
International Journal of Information and Coding Theory,
103
1(4):384--399, (2010).
104
""")
105
106
bibitem["CTZ2011"] = ("""Y. M. Chee, Y. Tan, and X. D. Zhang.
107
"Strongly regular graphs constructed from p-ary bent functions".
108
Journal of Algebraic Combinatorics, 34(2):251--266, (2011).
109
""")
110
111
bibitem["Del1972"] = ("""P. Delsarte.
112
"Weights of linear codes and strongly regular normed spaces".
113
Discrete Mathematics, 3(1-3):47--64, (1972).
114
""")
115
116
bibitem["Dil1974"] = ("""J. F. Dillon.
117
*Elementary Hadamard Difference Sets*.
118
PhD thesis, University of Maryland College Park, Ann Arbor, USA, (1974).
119
""")
120
121
bibitem["DS1987"] = ("""J. F. Dillon and J. R. Schatz.
122
"Block designs with the symmetric difference property".
123
In Proceedings of the NSA Mathematical Sciences Meetings,
124
159--164. US Govt. Printing Office Washington, DC, (1987).
125
""")
126
127
bibitem["Din2015"] = ("""C. Ding.
128
"Linear codes from some 2-designs".
129
IEEE Transactions on information theory, 61(6):3265--3275, (2015).
130
""")
131
132
bibitem["DD2015"] = ("""K. Ding and C. Ding.
133
"A class of two-weight and three-weight codes and their applications
134
in secret sharing".
135
IEEE Transactions on Information Theory, 61(11):5835--5842, (2015).
136
""")
137
138
bibitem["FSSW2013"] = ("""T. Feulner, L. Sok, P. Solé, and A. Wassermann.
139
"Towards the classification of self-dual bent functions in eight variables".
140
Designs, Codes and Cryptography, 68(1):395--406, (2013).
141
""")
142
143
bibitem["HL1994"] = ("""C. Hoede and X. Li.
144
"Clique polynomials and independent set polynomials of graphs".
145
Discrete Mathematics, 125(1):219 -- 228, (1994).
146
""")
147
148
bibitem["HY2004"] = ("""T. Huang and K.-H. You.
149
"Strongly regular graphs associated with bent functions".
150
In *7th International Symposium on Parallel Architectures,
151
Algorithms and Networks, 2004. Proceedings*, 380--383, May 2004.
152
""")
153
154
bibitem["JGTMMBJP2013"] = ("""D. Joyner, O. Geil, C. Thomsen, C. Munuera, I. Márquez-Corbella,
155
E. Martínez-Moro, M. Bras-Amorós, R. Jurrius, and R. Pellikaan.
156
"Sage: A basic overview for coding theory and cryptography."
157
In *Algebraic Geometry Modeling in Information Theory*, volume 8
158
of *Series on Coding Theory and Cryptology*, 1--45. World Scientific
159
Publishing Company, (2013).
160
""")
161
162
bibitem["JK2007"] = ("""T. Junttila and P. Kaski.
163
"Engineering an efficient canonical labeling tool for large and sparse graphs".
164
In D. Applegate, G. S. Brodal, D. Panario, and R. Sedgewick, editors,
165
*Proceedings of the Ninth Workshop on Algorithm Engineering and
166
Experiments and the Fourth Workshop on Analytic Algorithms and
167
Combinatorics*, 135--149, New Orleans, LA, (2007). Society for Industrial
168
and Applied Mathematics.
169
""")
170
171
bibitem["JK2011"] = ("""T. Junttila and P. Kaski.
172
"Conflict propagation and component recursion for canonical labeling".
173
In *Theory and Practice of Algorithms in (Computer) Systems*,
174
151--162. Springer, (2011).
175
""")
176
177
bibitem["Kan1975"] = ("""W. M. Kantor.
178
"Symplectic groups, symmetric designs, and line ovals".
179
*Journal of Algebra*, 33(1):43--58, (1975).
180
""")
181
182
bibitem["Kan1983"] = ("""W. M. Kantor.
183
"Exponential numbers of two-weight codes, difference sets and
184
symmetric designs".
185
Discrete Mathematics, 46(1):95--98, (1983).
186
""")
187
188
bibitem["Lan2010"] = ("""P. Langevin.
189
"Classification of partial spread functions in eight variables", (2010).
190
http://langevin.univ-tln.fr/project/spread/psp.html
191
Last accessed 9 May 2017.
192
""")
193
194
bibitem["LH2011"] = ("""P. Langevin and X.-D. Hou.
195
"Counting partial spread functions in eight variables".
196
IEEE Transactions on Information Theory, 57(4):2263--2269, (2011).
197
""")
198
199
bibitem["LL2011"] = ("""P. Langevin and G. Leander.
200
"Counting all bent functions in dimension eight 99270589265934370305785861242880."
201
*Designs, Codes and Cryptography*, 59(1-3):193--205, (2011).
202
""")
203
204
bibitem["LLM2008"] = ("""P. Langevin, G. Leander, and G. McGuire.
205
Kasami bent functions are not equivalent to their duals.
206
In G. Mullen, D. Panario, and I. Shparlinski, editors, *Finite
207
Fields and Applications: Eighth International Conference on Finite Fields and
208
Applications, July 9-13, 2007, Melbourne, Australia*, Contemporary
209
mathematics, 187--198. American Mathematical Society, (2008).
210
""")
211
212
bibitem["Leo2016GitHub"] = ("""P. Leopardi.
213
*Boolean-cayley-graphs*, (2016).
214
https://github.com/penguian/Boolean-Cayley-graphs
215
GitHub repository. Last accessed 9 May 2017.
216
""")
217
218
bibitem["Leo2016SMC"] = ("""P. Leopardi.
219
*Boolean-cayley-graphs*, (2016).
220
http://tinyurl.com/Boolean-Cayley-graphs
221
SageMathCloud public folder. Last accessed 9 May 2017.
222
""")
223
224
bibitem["Leo2017Hurwitz"] = ("""P. Leopardi.
225
"Twin bent functions, strongly regular Cayley graphs, and Hurwitz-Radon theory".
226
Submitted October 2016 to Journal of Algebra Combinatorics Discrete
227
Structures and Applications, accepted April 2017.
228
Preprint: arXiv:1504.02827 [math.CO].
229
""")
230
231
bibitem["Leo2017"] = ("""P. Leopardi.
232
"Classifying bent functions by their Cayley graphs".
233
2017, 2018.
234
Preprint: arXiv:1705.04507 [math.CO].
235
""")
236
237
bibitem["MP2013"] = ("""B. D. McKay and A. Piperno.
238
*Nauty and Traces user's guide (Version 2.5)*.
239
Computer Science Department, Australian National University,
240
Canberra, Australia, (2013).
241
""")
242
243
bibitem["MP2014"] = ("""B. D. McKay and A. Piperno.
244
"Practical graph isomorphism, II".
245
*Journal of Symbolic Computation*, 60:94--112, (2014).
246
""")
247
248
bibitem["MS1990"] = ("""W. Meier and O. Staffelbach.
249
"Nonlinearity criteria for cryptographic functions".
250
In J.-J. Quisquater and J. Vandewalle, editors, *Advances in
251
Cryptology --- EUROCRYPT '89: Workshop on the Theory and Application of
252
Cryptographic Techniques*, volume 434 of *Lecture Notes in Computer
253
Science*, 549--562, Berlin, Heidelberg, (1990). Springer.
254
""")
255
256
bibitem["Neu2006"] = ("""T. Neumann.
257
*Bent functions*.
258
PhD thesis, University of Kaiserslautern, (2006).
259
""")
260
261
bibitem["Rot1976"] = ("""O. S. Rothaus.
262
"On 'bent' functions".
263
Journal of Combinatorial Theory, Series A, 20(3):300--305, (1976).
264
""")
265
266
bibitem["Roy2008"] = ("""G. F. Royle.
267
"A normal non-cayley-invariant graph for the elementary abelian group of order 64".
268
*Journal of the Australian Mathematical Society*, 85(03):347--351, (2008).
269
""")
270
271
bibitem["SageMathCloud"] = ("""SageMath, Inc.
272
*SageMathCloud Online Computational Mathematics*, (2016).
273
https://cloud.sagemath.com
274
""")
275
276
bibitem["Sei1979"] = ("""J. J. Seidel.
277
"Strongly regular graphs".
278
In *Surveys in combinatorics (Proc. Seventh British
279
Combinatorial Conf., Cambridge, 1979)*, volume 38 of *London
280
Mathematical Society Lecture Note Series*, 157--180, Cambridge-New York,
281
(1979). Cambridge Univ. Press.
282
""")
283
284
bibitem["Sta2007"] = ("""P. Stanica.
285
"Graph eigenvalues and Walsh spectrum of Boolean functions".
286
Integers: Electronic Journal Of Combinatorial Number Theory,
287
7(2):A32, (2007).
288
""")
289
290
bibitem["Sti2007"] = ("""D. R. Stinson.
291
*Combinatorial designs: constructions and analysis*.
292
Springer Science \\& Business Media, (2007).
293
""")
294
295
bibitem["SageMath7517"] = ("""The Sage Developers.
296
*SageMath, the Sage Mathematics Software System (Version 7.5)*, (2017).
297
http://www.sagemath.org
298
""")
299
300
bibitem["Tok2015"] = ("""N. Tokareva.
301
*Bent functions: results and applications to cryptography*.
302
Academic Press, (2015).
303
""")
304
305
bibitem["Ton1996"] = ("""V. D. Tonchev.
306
"The uniformly packed binary [27, 21, 3] and [35, 29, 3] codes".
307
Discrete Mathematics, 149(1-3):283--288, (1996).
308
""")
309
310
bibitem["Ton2007"] = ("""V. D. Tonchev.
311
"Codes". In C. Colbourne and J. Dinitz, editors, *Handbook of
312
combinatorial designs*, chapter VII.1, 677--701. CRC press, second edition,
313
(2007).
314
""")
315
316
317
def cite(citation):
318
r"""
319
Look up and retrieve reference details from the `bibitem` dictionary.
320
321
INPUT:
322
323
- ``citation`` -- string: A citation, generally but not always
324
in the form "AbcYYYY", where "Abc" is the first 3 characters of
325
the author's surname, and "YYYY" is the 4 digit year.
326
327
OUTPUT:
328
329
The reference details as a string.
330
331
EXAMPLES:
332
333
::
334
335
sage: from boolean_cayley_graphs.references import cite
336
sage: print(cite("Leo2017"))
337
P. Leopardi.
338
"Classifying bent functions by their Cayley graphs".
339
2017, 2018.
340
Preprint: arXiv:1705.04507 [math.CO].
341
"""
342
return bibitem[citation]
343
344
345
def sage_reference(citation):
346
r"""
347
Retrieve reference details from the `bibitem` dictionary in a format
348
similar to the way that Sage formats it own references.
349
350
INPUT:
351
352
- ``citation`` -- string: A citation, generally but not always
353
in the form "AbcYYYY", where "Abc" is the first 3 characters of
354
the author's surname, and "YYYY" is the 4 digit year.
355
356
OUTPUT:
357
358
The reference details as a Sage-formatted string.
359
360
EXAMPLES:
361
362
::
363
364
sage: from boolean_cayley_graphs.references import sage_reference
365
sage: print(sage_reference("Leo2017"))
366
.. [Leo2017] \P. Leopardi.
367
"Classifying bent functions by their Cayley graphs".
368
2017, 2018.
369
Preprint: arXiv:1705.04507 [math.CO].
370
"""
371
bibitem_lines = bibitem[citation].splitlines()
372
sage_bibitem_lines = (
373
[bibitem_lines[0]] +
374
[" " + line for line in bibitem_lines[1:]])
375
return (
376
".. [" + citation + "] \\" + '\n'.join(sage_bibitem_lines))
377
378
379
def print_sage_references():
380
r"""
381
Retrieve all reference details from the `bibitem` dictionary and print them
382
in a format similar to the way that Sage formats it own references.
383
384
INPUT:
385
386
None.
387
388
OUTPUT:
389
390
All reference details in `bibitem` as a Sage-formatted string.
391
392
EXAMPLES:
393
394
::
395
396
sage: from boolean_cayley_graphs.references import print_sage_references
397
sage: print_sage_references()
398
.. [RFC2144] \C. M. Adams.
399
*The cast-128 encryption algorithm.*
400
RFC 2144, RFC Editor, May 1997.
401
...
402
.. [Ton2007] \V. D. Tonchev.
403
"Codes". In C. Colbourne and J. Dinitz, editors, *Handbook of
404
combinatorial designs*, chapter VII.1, 677--701. CRC press, second edition,
405
(2007).
406
"""
407
for citation in bibitem.keys():
408
print(sage_reference(citation))
409
print()
410
411
412
def print_sage_references_index_rst(file=stdout):
413
r"""
414
Retrieve all reference details from the `bibitem` dictionary and print them
415
in the format expected by Sphinx for the file `index.rst`.
416
417
INPUT:
418
419
- ``file`` -- file, optional. The file to which the reference details are
420
to be printed. Default is stdout.
421
422
OUTPUT:
423
424
All reference details in `bibitem` as a Sage-formatted string.
425
426
EXAMPLES:
427
428
::
429
430
sage: from boolean_cayley_graphs.references import print_sage_references_index_rst
431
sage: print_sage_references_index_rst()
432
References
433
==========
434
<BLANKLINE>
435
References, sorted alphabetically by first author.
436
<BLANKLINE>
437
:ref:`A <ref-A>`
438
...
439
:ref:`T <ref-T>`
440
<BLANKLINE>
441
.. _ref-A:
442
<BLANKLINE>
443
**A**
444
<BLANKLINE>
445
.. [Ada1997] \C. M. Adams.
446
Constructing symmetric ciphers using the cast design procedure.
447
In E. Kranakis and P. Van Oorschot, editors, *Selected Areas in
448
Cryptography*, 71--104, Boston, MA, (1997). Springer US.
449
...
450
.. [Ton2007] \V. D. Tonchev.
451
"Codes". In C. Colbourne and J. Dinitz, editors, *Handbook of
452
combinatorial designs*, chapter VII.1, 677--701. CRC press, second edition,
453
(2007).
454
"""
455
print("References", file=file)
456
print("==========", file=file)
457
print("", file=file)
458
print("References, sorted alphabetically by first author.", file=file)
459
print("", file=file)
460
citations_starting_with = dict()
461
for letter in ascii_uppercase:
462
citations_starting_with[letter] = [
463
cite for cite in bibitem.keys() if cite[0] == letter]
464
if len(citations_starting_with[letter]) > 0:
465
print(":ref:`"+letter+" <ref-"+letter+">`", file=file)
466
print("", file=file)
467
for letter in ascii_uppercase:
468
if len(citations_starting_with[letter]) > 0:
469
print(".. _ref-"+letter+":", file=file)
470
print("", file=file)
471
print("**"+letter+"**", file=file)
472
print("", file=file)
473
for citation in citations_starting_with[letter]:
474
print(sage_reference(citation), file=file)
475
print("", file=file)
476
477