I'd start by checking that the parameters of these strongly regular graphs 
are the same, i.e. comparing

G2.is_strongly_regular(parameters=True)
G1.is_strongly_regular(parameters=True)

it could be that you'd need to take the complement, or, even worse, a graph 
coming from the dual (in the S-ring, etc sense)
association scheme.

In particular, I recall stumbling upon this while working on these graphs, 
and finding out that the formulae here:
http://moodle.tec.hkr.se/~chen/research/2-weight-codes/index.htm
are not always correct.

Dima


On Monday, October 24, 2016 at 11:22:55 AM UTC, Paul Leopardi wrote:
>
> On Monday, 24 October 2016 01:45:10 UTC+11, David Joyner wrote:
>>
>>
>> I haven't looked at your code but are you comparing the SRG associated 
>> to the Boolean bent function and the graph associated to the incidence 
>> matrix of that graph? 
>>
>>
> I don't understand your precise meaning here, so I will spell out exactly 
> what I have done.
>
> Briefly, if f is a Boolean bent function f: Z_2^{dim} -> Z_2, with f(0)=0, 
> then, if Z_2^{dim} is given lexicographical ordering from 0 to 2^{dim}-1, 
> define the matrix M[i,j]=f(i \xor j).
> The matrix M is the *adjacency* matrix of the Cayley graph of f, and is 
> simple because f(0) != 1. The following function takes the equivalent f : Z 
> -> Z_2 and produces the Cayley graph for a given dim.
>
> def boolean_cayley_graph(dim, f):
>     v = 2 ** dim
>     result = Graph(v)
>     result.add_edges([(i,j) for i in xsrange(v) for j in xsrange(i) if f(i 
> ^ j)])
>     return result
>
> This is the graph that I am using for G1 in test_isomorphism.sage
>
> A Boolean bent function can also generate a projective, two-weight linear 
> code. Again, we take lexicographic ordering of Z_2^{dim} and produce a 
> matrix M, but here the number of columns is the weight of f, i.e. the size 
> of the support of f,
> the number of rows is 2^{dim}, and each entry M[x,j] = <x, {support}_j> 
> where support is a list corresponding to the support of f. This matrix M 
> generates the linear code. In fact, the elements of the code are the rows 
> of M.
>
>     def linear_code(self):
>         dim = self.nvariables()
>         v = 2 ** dim
>         f = self.extended_translate()
>         support = [y
>                    for y in xsrange(n)
>                    if f(y)==1]
>         M = matrix(GF(2), [[inner(x, y)
>                             for y in support]
>                             for x in xsrange(v)])
>         return LinearCode(M)
>
> There is Sage function strongly_regular_from_two_
> weight_code(), described at 
> http://doc.sagemath.org/html/en/reference/graphs/sage/graphs/strongly_regular_db.html
> "A strongly regular graph can be built from a two-weight projective code 
> with weights w1,w2 (assuming w1 < w2) by adding an edge between any two 
> codewords whose difference has weight w1."
>
> The graph G2 that I am using in test_isomorphism.sage is thus 
> strongly_regular_from_two_weight_code(f.linear_code()).
>
> The bent function f can have one of two weights. If m=dim/2, the weight of 
> f is either 2^{2m-1} - 2^{m-1} (weight class 0) or 2^{2m-1}+2^{m-1} (weight 
> class 1).
> In all cases where m<4, it turns out that if f has weight class 0 then 
> f.cayley_graph() is isomorphic to f.strongly_regular_graph(), and if f has 
> weight class 0 then f.cayley_graph() is isomorphic to 
> f.strongly_regular_graph().complement().
> For m=4, these isomorphisms are true for the bent functions in the 
> extended affine equivalence class of the bent function corresponding to 
> each of the first 8 polynomials listed below. For polynomials 9 and 10, 
> there are exceptions,
> according to the canonical label algorithms as implemented in Sage.
>
> def bent_function_extended_affine_representative_polynomials_dimension_8():
>     r"""
>     The Boolean polynomials p8[i] for from 1 to 10 are the representatives 
> of
>     the extended affine equivalence classes of bent functions in 8 
> variables,
>     with degree up to 3, as listed at 7.3 of Tokareva 2015,
>     with citation [167] to Hou 1998.
>     """
>     R8.<x1,x2,x3,x4,x5,x6,x7,x8> = BooleanPolynomialRing(8)
>     p8 = [None]*11
>     p8[1] = x1*x2 + x3*x4 + x5*x6 + x7*x8
>     p8[2] = x1*x2*x3 + x1*x4 + x2*x5 + x3*x6 + x7*x8
>     p8[3] = x1*x2*x3 + x2*x4*x5 + x3*x4 + x2*x6 + x1*x7 + x5*x8
>     p8[4] = x1*x2*x3 + x2*x4*x5 + x1*x3 + x1*x5 + x2*x6 + x3*x4 + x7*x8
>     p8[5] = x1*x2*x3 + x2*x4*x5 + x3*x4*x6 + x3*x5 + x2*x6 + x2*x5 + x1*x7 
> + x4*x8
>     p8[6] = x1*x2*x3 + x2*x4*x5 + x3*x4*x6 + x3*x5 + x1*x3 + x1*x4 + x2*x7 
> + x6*x8
>     p8[7] = x1*x2*x3 + x2*x4*x5 + x3*x4*x6 + x3*x5 + x2*x6 + x2*x5 + x1*x2 
> + x1*x3 + x1*x4 + x7*x8
>     p8[8] = x1*x2*x3 + x2*x4*x5 + x3*x4*x6 + x3*x5 + x1*x6 + x2*x7 + x4*x8
>     p8[9] = x1*x2*x7 + x3*x4*x7 + x5*x6*x7 + x1*x4 + x3*x6 + x2*x5 + x4*x5 
> + x7*x8
>     p8[10] = x1*x2*x3 + x2*x4*x5 + x3*x4*x6 + x1*x4*x7 + x3*x5 + x2*x7 + 
> x1*x5 + x1*x6 + x4*x8
>     return p8
>
>  
>

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

Reply via email to