> However, Robert Miller has been notably silent on this topic.  We
> should try to get him to weigh in before making any sweeping
> decisions, since he's (at the very least) the most familiar with the
> code.

I have spent months trying to make function calls just like, e.g.
G.predecessors(3), as fast as possible. There is still a lot of work
left, but things like G.neighbors().in()... or whatever sounds
alarmingly to me like extra unnecessary Python layers around a
function which you want ABSOLUTELY no Python involved in at all, other
than the initial function call. Name changes and aliases I can live
with. Extra layers of Python function calls for no reason other than
tab completion prettiness, this is really bad. Especially when it's a
function as basic as neighbors, which gets used in almost every graph
theory algorithm out there. Imagine the future "embarrassing" thread
where a 10x speedup is discovered by avoiding this exact approach...

As far as it being *possible* to split up graph.py... It's a ten
minute job, but nobody's done it. You could split it in three right
away by having generic_graph.py, graph.py and digraph.py.

-- 
Robert L. Miller
http://www.rlmiller.org/

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to