[sage-devel] Re: I need advice on my paper and Sage code on "Classifying bent functions by their Cayley graphs"

2018-01-26 Thread Paul Leopardi
On Wednesday, 10 May 2017 22:25:13 UTC+10, Paul Leopardi wrote:
>
> I have just completed the first draft of a paper, "Classifying bent 
> functions by their Cayley graphs". 
> 
>  
> The computational results of the paper are fully reproducible via worksheets 
> in a SageMathCloud public folder 
> 
>  
> and Sage code in a GitHub repository 
> .
>

Thanks all. I have now completed the fifth draft of "Classifying bent 
functions by their Cayley graphs" , have 
uploaded it to arXiv as https://arxiv.org/abs/1705.04507 and have submitted 
it to INTEGERS: The Electronic Journal of Combinatorial Number Theory 
.
As well as the worksheets in a SageMathCloud public folder 

 
and Sage code in a GitHub repository 
, I have also uploaded a 
draft of the Python documentation to SourceForge 
. The code now includes 
Python functions that populate and query SQL databases of classifications, 
using either PostgreSQL 

 
or SQLite 
.
 


As stated in the paper, I have used the code with MPI4Py on NCI Raijin 
 to classify the 
256 bent functions from the S-boxes of CAST-128 
, and the 5442 partial spread (+) bent 
functions in 8 dimensions 
. These results are 
too large to upload to CoCalc (2.1 TB in the case of the partial spread 
functions), but I am currently planning to use the Nectar cloud 
 to host a prototype database server, at least for 
the CAST-128 results.

I am now looking for:
1. Someone to review the code and suggest which parts should be pushed 
upstream into Sage.
2. Someone to try to replicate my results, along the lines of ReScience 
.
3. Someone to help and advise on how to build a database hosting platform. 
I was thinking of starting with the CoCalc Docker image 
 and using PostgreSQL, then 
adding front end functionality based on LMFDB .


-- 
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.


[sage-devel] Re: I need advice on my paper and Sage code on "Classifying bent functions by their Cayley graphs"

2017-05-17 Thread Dima Pasechnik


On Wednesday, May 17, 2017 at 1:12:15 PM UTC+1, Paul Leopardi wrote:
>
> Thanks for the suggestion. I have taken a look at the web site. It looks 
> to be more concerned with the replication of research that has already been 
> published, rather than the publication of new research 
> 
> .
>

this is right, however, the idea is that you may publish a paper sans code 
in a traditional journal
and publish code (with relevant discussion) there.
 

>
> On Friday, 12 May 2017 03:25:44 UTC+10, Dima Pasechnik wrote:
>>
>> You might think about publishing this, with code, in 
>> http://rescience.github.io/ 
>> 
>>
>
>
>
>

-- 
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.


[sage-devel] Re: I need advice on my paper and Sage code on "Classifying bent functions by their Cayley graphs"

2017-05-17 Thread Paul Leopardi
Hi Travis, Thanks for your advice. For now, I will keep the code where it 
is on GitHub and SageMathCloud, and concentrate on adding documentation, 
examples and doctests for all the functions and methods. After that, I will 
revisit the problem of incorporating all r some of it into Sage proper. 

As for a database of classifications of bent functions by their Cayley 
graphs, I think that I will first need to discuss this with the people who 
might use it. Topics of discussion would include the value of such a 
database, what should be in the database, how its contents could be 
generated, and where the database should be hosted.

On Thursday, 11 May 2017 00:13:56 UTC+10, Travis Scrimshaw wrote:
>
> Hey Paul,
>
>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. 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.
>

-- 
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.


[sage-devel] Re: I need advice on my paper and Sage code on "Classifying bent functions by their Cayley graphs"

2017-05-17 Thread Paul Leopardi
Thanks for the suggestion. I have taken a look at the web site. It looks to 
be more concerned with the replication of research that has already been 
published, rather than the publication of new research 

.

On Friday, 12 May 2017 03:25:44 UTC+10, Dima Pasechnik wrote:
>
> You might think about publishing this, with code, in 
> http://rescience.github.io/ 
> 
>



-- 
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.


[sage-devel] Re: I need advice on my paper and Sage code on "Classifying bent functions by their Cayley graphs"

2017-05-14 Thread Paul Leopardi
Thanks for all of your replies, and sorry that I haven't responded up until 
now. I have been suffering from a cold this weekend and found it hard to 
concentrate. My more detailed reply to each of you will follow soon.


-- 
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.


[sage-devel] Re: I need advice on my paper and Sage code on "Classifying bent functions by their Cayley graphs"

2017-05-11 Thread Dima Pasechnik
You might think about publishing this, with code, 
in http://rescience.github.io/

On Wednesday, May 10, 2017 at 1:25:13 PM UTC+1, Paul Leopardi wrote:
>
> Hello all,
>
> I have just completed the first draft of a paper, "Classifying bent 
> functions by their Cayley graphs". 
> 
>  
> The computational results of the paper are fully reproducible via worksheets 
> in a SageMathCloud public folder 
> 
>  
> and Sage code in a GitHub repository 
> .
> When I developed the code I tried to follow the Sage coding conventions 
> , 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) +  + 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) +  + 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)?
>2. 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?
>3. 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.
>4. Is there any interest in my further developing this code to include 
>a database (e.g. SQL) of Cayley graph classifications?
>
> Thanks!
>
>
> Paul Leopardi  
>
>
> PS. I have presented this work in stages at the University of Queensland 
> ,
>  
> the University of Newcastle 
> ,
>  
> and RMIT University 
> ,
>  
> and will also present it at 2MCGTC in Malta next month 
> .
>

-- 
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.


[sage-devel] Re: I need advice on my paper and Sage code on "Classifying bent functions by their Cayley graphs"

2017-05-10 Thread Travis Scrimshaw
Hey Paul,

I have just completed the first draft of a paper, "Classifying bent 
> functions by their Cayley graphs". 
> 
>  
> The computational results of the paper are fully reproducible via worksheets 
> in a SageMathCloud public folder 
> 
>  
> and Sage code in a GitHub repository 
> .
> When I developed the code I tried to follow the Sage coding conventions 
> , 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) +  + 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) +  + 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  (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"