Hey Paul,

I have just completed the first draft of a paper, "Classifying bent 
> functions by their Cayley graphs". 
> <https://sites.google.com/site/paulleopardi/Leopardi-Bent-functions-Cayley-graphs.pdf?attredirects=0&d=1>
>  
> The computational results of the paper are fully reproducible via worksheets 
> in a SageMathCloud public folder 
> <https://cloud.sagemath.com/projects/80f4c9e7-8a37-4f59-82e7-aa179ec0b652/files/Boolean-Cayley-graphs/>
>  
> and Sage code in a GitHub repository 
> <https://github.com/penguian/Boolean-Cayley-graphs>.
> When I developed the code I tried to follow the Sage coding conventions 
> <http://doc.sagemath.org/html/en/developer/coding_basics.html>, but my 
> primary goal up until now has been to obtain results and finish the paper 
> while keeping the code as clear and readable as I could. 
>

> The purpose of the code is to calculate the Cayley graph classifications 
> of the extended translation classes of bent functions, and their duals. All 
> of these terms are defined in the paper, but briefly,
>
>    - A* bent function* is a Boolean function on an even number of bits 
>    that is as far as possible (in Hamming weight distance) from any affine 
>    Boolean function; equivalently a Boolean function whose Walsh-Hadamard 
>    transform has constant absolute value.
>    - The dual of a bent function *f* is obtained from the Walsh-Hadamard 
>    transform of *f*, and is also a bent function.
>    - The *Cayley graph* of a Boolean function* f*, with *f(0)=0*, is a 
>    graph whose vertices are all the bit vectors of a given dimension, with an 
>    edge between vectors x and y if and only if *f(x+y)=1*. This Cayley 
>    graph is *strongly regular* if *f* is bent.
>    - The *extended translation class* of a bent function *f* on boolean 
>    vector space* V* is the set of all functions of the form *g(x) = 
>    f(x+b) + <c,x> + d*, where *b, c* are in *V* and d is 0 or 1.
>    - The *Cayley graph classification* of the extended translation class 
>    of a bent function* f* is the set of all isomorphism classes of Cayley 
>    graphs of the functions *f(x+b) + <c,x> + f(b)*.
>
> The output of the code is displayed in the paper, and in the SageMathCloud 
> worksheets, and (with some exceptions) is also saved as objects of class 
> *BentFunctionCayleyGraphClassification* in both the public folder and the 
> GitHub repository.
>
>
> Questions:
>
>    1. Is there a process to ask for a code review of this type of code 
>    (i.e. code primarily written to support a paper)?
>
> It depends on what you want to do. If you want to include this code into 
Sage, which is something I would recommend, then you should open a trac 
ticket and upload the code as a git branch there. You will likely need to 
change a few things to start the integration into Sage, but we will be 
happy to help by answering questions. Another option would be to keep it as 
a separate package of code (say, as a pip installable package), but then 
you might not get as much exposure and need some more arm twisting to get 
it reviewed. However, considering you are utilizing Sage's infrastructure, 
I think the former approach is better.

I had a very quick look through your code. It also seems like you have a 
lot of things scattered across a number of files that should be groups 
together into fewer files and probably into methods of a (already existing) 
class. You will also want to remove your custom pickling with your Savable 
class in order to not add an additional layer. The biggest thing you will 
have to do is add documentation and tests to all of your functions/methods.

>
>    1. Do you have any suggestions as to how and where I could publish a 
>    fully peer reviewed version of such a long (52 page draft) paper with so 
>    many examples, tables and figures?
>    
> Are you asking for journal recommendations? If so, I don't have any 
knowledge of this field to help. However, a great place to put a draft is 
the arXiv <http://arxiv.org> (which could be the extended version of the 
actual published paper if the referee(s) ask for a shorter version). You 
can also upload supplementary documents, like your Sage worksheets.

>
>    1. Is there a process to promote this code, or a part of this code to 
>    Sage itself? 
>    Note: if this requires a complete rewrite then this could take me some 
>    time, as it is a one-person project conducted in my spare time as an 
>    Honorary Fellow of the University of Melbourne.
>
> You are basically doing it, but it can have further reach by being 
included in Sage's codebase.

>
>    1. Is there any interest in my further developing this code to include 
>    a database (e.g. SQL) of Cayley graph classifications?
>    
> We have a number of database spkgs in Sage (see the optional spkgs), so 
this could be a good option as part of including your code.

Best,
Travis

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to