#20968: more Hadamard matrices with constant diagonal
-------------------------------------+-------------------------------------
       Reporter:  dimpase            |        Owner:
           Type:  enhancement        |       Status:  needs_work
       Priority:  major              |    Milestone:  sage-7.3
      Component:  graph theory       |   Resolution:
       Keywords:                     |    Merged in:
        Authors:  Dima Pasechnik     |    Reviewers:  Vincent Delecroix
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/dimpase/hadaconst                |  324fb166fe9f21872b25c08e8dd8c3d740efd616
   Dependencies:                     |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by dimpase):

 Replying to [comment:4 vdelecroix]:
 > To get the squares in a finite field, there is better than
 > {{{
 > Q = filter(lambda a: a.is_square() and a.is_unit(), F)
 > }}}
 > Since you are using containment test later on I would even do
 > {{{
 > Q = set(a**2 for a in F)
 > Q.remove(F.zero())
 > }}}
 >
 > For `szekeres_difference_set_pair`, it would be better to have the same
 variable name in the documentation description and in the function
 (currently `G` and `Q`).
 >
 > Could you remove the trailing whitespaces in the whole file?

 yes, I'll do all of the above. I can do even better, as I know a generator
 for the multiplicative group of the field, thus I can list the squares
 explicitly
 without repetition...

 >
 > For the ` szekeres_difference_set_pair` and
 `typeI_matrix_difference_set`, why not put it somewhere in
 `sage.combinat.designs.difference_family`?

 `szekeres_difference_set_pair` does not return a group, it merely returns
 a list of group elements; in this form I don't think it should go there.
 In fact I do not know how to create, in Sage, a subgroup of the
 multiplicative group of a field in a natural way. Indeed:
 {{{
 sage: F=GF(27)
 sage: t=F.multiplicative_generator()
 sage: G=GL(1,F)
 sage: t in G
 True
 sage: G.subgroup([t^2])
 ---------------------------------------------------------------------------
 AttributeError                            Traceback (most recent call
 last)
 <ipython-input-58-d1ce805e8ed8> in <module>()
 ----> 1 G.subgroup([t**Integer(2)])
 ...
 AttributeError:
 'sage.rings.finite_rings.element_givaro.FiniteField_givaroElement' object
 has no attribute 'gap'
 }}}
 The problem here is that matrix groups in Sage are done via (lib)GAP, but
 this is not compatible with the default way of creating GF in Sage.
 I don't see how to overcome this easily - would you mind if I keep it the
 way it is?

 >
 > You should add an example in
 `regular_symmetric_hadamard_matrix_with_constant_diagonal` where your new
 construction is actually used.

 right.

--
Ticket URL: <https://trac.sagemath.org/ticket/20968#comment:9>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" 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-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to