Dear all, I've posted on trac the current version of my posets code. There is still much to be done, some algorithms need to be improved and others need to be implemented. (There are no NotImplementedErrors.)
http://trac.sagemath.org/sage_trac/ticket/2519 But before I continue working, I'd like some feedback. I've made some decisions, and I don't know if they are the best decisions. So please offer suggestions. I've defined a HasseDiagram class that inherits from DiGraph. A Hasse diagram are transitively-reduced, directed, acyclic graph without loops or multiple edges. NOTE: We assume that range(n) is a linear extension of the Hasse diagram. This decision was taken in the hopes that it increases the efficiency of algorithms. There is a FinitePoset class that stores the list of elements of the poset (_elements), the HasseDiagram (_hasse_diagram, or hasse_diagram()), and maps _element_to_vertex and _vertex_to_element. So FinitePoset is just a vertex labelling of the HasseDiagram. There is a constructor called Poset that takes various forms of data describing a finite poset and returns a FinitePoset object. There are also Lattice, MeetSemilattice, JoinSemilattice..., and PosetElement, LatticeElement, .... So one create poset elements and compare them with <, >, etc. And lattice elements can by multiplied and added (for meet and join). There are a few toy posets included (eventually there should be a poset database): BooleanLattice, Chain, Antichain, Pentagon, Diamond, PosetOfIntegerCompositions, RandomPoset, SymmetricGroupBruhatOrder, SymmetricGroupWeakOrder. So what do you think? Franco -- --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---