Well, I'm stumped (not too surprising), but here's what I think after
a little reading:

 * It seems that there is no comparison implemented for graphs,
anywhere in sage:  Graph inherits from GenericGraph, which inherits
from GenericGraph_pyx, which inherits from SageObject.  Functions like
__cmp__ or _cmp_ or _rich_cmp_ or whatever don't appear anywhere in
any of this code -- that's not too surprising because something like
g1._<tab> doesn't show any kind of comparison function either.

 * So the only other possibility I can imagine is that comparison of
graphs is falling back to whatever Python does by default to compare
things.  Or maybe it's falling back on some other default not in
SageObject; in any case, a ticket should probably be filed to
implement comparison for graphs.

 * Here's a detail about the default Python implementation of
comparison, which might explain why you get erratic behavior [1]:

> CPython implementation detail: Objects of different types except numbers are 
> ordered by their type names; objects of the same types that don’t support 
> proper comparison are ordered by their address.


best,
Niles

[1] : http://docs.python.org/library/stdtypes.html


On Mar 17, 11:34 pm, Ryan Hinton <iob...@email.com> wrote:
> Where are the comparison operators for graphs implemented?  I can find
> ``__eq__`` in graphs/generic_graph.py, but I can't find any others.
>
> I haven't opened a ticket yet for the following behavior because I am
> not sure where the problem is.
>
> The current status is some new math!  At the moment, I see the
> following.  (The following sometimes works, sometimes needs fiddling
> with order of creation or which graphs get a vertex.)
>
> sage: g1 = Graph()
> sage: g1.add_vertex(0)
> sage: g2 = Graph()
> sage: g3 = Graph()
> sage: g3.add_vertex(0)
> sage: g1 == g3
> True
> sage: g1 == g2
> False
> sage: g1 < g2
> False
> sage: g3 < g2
> True
>
> So we have two equal graphs that compare on either side of a third
> graph!
>
> Thanks!
>
> - Ryan

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