#18972: twographs and Seidel switching
-------------------------------------+-------------------------------------
       Reporter:  dimpase            |        Owner:
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.9
      Component:  graph theory       |   Resolution:
       Keywords:                     |    Merged in:
        Authors:                     |    Reviewers:  Nathann Cohen
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/dimpase/seidelsw                 |  2fae2fc7b92d306f1336b6786c67318823f812f4
   Dependencies:  #18960, #18948,    |     Stopgaps:
  #18988, #18991, #18986, #19018,    |
  #19019                             |
-------------------------------------+-------------------------------------

Comment (by dimpase):

 Replying to [comment:66 ncohen]:
 > > Well, I am using 'has_edge' there now, which you say is fast. So the
 bottleneck of creating neighbour lists is gone, no?
 >
 > No, it is not gone. There is a huge loss of time in this function
 because you want to build it from a lambda function.

 We already discussed here a similar issue and found that we talk about
 5-10% loss (which can hardly be called huge)  no?
 Perhaps making `Nv` and `NoNv` (frozen)sets will be an extra optimisation
 that I am willing to add, but other than that it's matter of taste,
 IMHO...

 >
 > > Mind you, you said in comment 1 above that I should move these things
 to graph.py.
 >
 > What I meant is that `DiGraph.twograph()` should not exist. Surely you
 agree with that?


 Look, I read what you wrote, and you wrote the following:

 {{{
 3) If your methods only apply to undirected graphs, they should be in
 graph.py
 }}}

 And I duly put the stuff into graph.py.

 >
 > > And it's not much code being added, compared to complicated algorithms
 not in Graph that you mention.
 > > Anyway, we should open another ticket to reorganise the Graph module.
 I agree that Graph has a lot of methods, and they should be better
 organised.
 >
 > Could we please keep it out for the moment? It is not for the code that
 I advocate this, it is merely for the length of the list of functions that
 appears to the user.

 No, why should we keep this out now? I hope you don't like the role of the
 code bouncer you play now... The methods need to be cathegorised better,
 that's all.
 Dumping too much stuff directly into g.TAB (for g a Graph) is bound to
 cause a problem sooner or later.

 Presently I find it absurd that we have e.g.
 `kirchhoff_symanzik_polynomial` but we cannot have `twograph_descendant`.
 Certainly there should be g.polynomial.TAB,
 g.graph.TAB, g.decomposition.TAB, g.matrix.TAB etc etc.
 >
 > I don't mind improvng the `twograph_descendant` myself if that can ease
 the deal.

 Sure, please.

--
Ticket URL: <http://trac.sagemath.org/ticket/18972#comment:67>
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 http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to