Re: [sage-devel] Re: Rationale behind HasseDiagram class

2016-01-23 Thread Travis Scrimshaw
They are fair questions, and it is worth (re)evaluating these things every once in awhile. Let me know if you have any more. Best, Travis On Saturday, January 23, 2016 at 12:47:40 PM UTC-6, Nathann Cohen wrote: > > Thank you Travis. By talking with you I do not have any more doubt on > how/why

Re: [sage-devel] Re: Rationale behind HasseDiagram class

2016-01-23 Thread Nathann Cohen
Thank you Travis. By talking with you I do not have any more doubt on how/why this class was built as it is. Nathann On 23 January 2016 at 19:39, Travis Scrimshaw wrote: > >> >> class Poset: >> >> def A(): >> for i in ZZ: >> self._B() >> >> def _B(): >> # wor

Re: [sage-devel] Re: Rationale behind HasseDiagram class

2016-01-23 Thread Travis Scrimshaw
> > class Poset: > > def A(): > for i in ZZ: > self._B() > > def _B(): > # works on the digraph self._hasse_diagram, taking advantage > of its labelling > > I do not see where the problem is. It requires a helper function _B a > in the current design (

Re: [sage-devel] Re: Rationale behind HasseDiagram class

2016-01-22 Thread Nathann Cohen
>Suppose you have function A that calls function B a lot over a loop, and > both of them can take advantage of the canonical labeling of the DiGraph. If > you do not have a HasseDiagram class, then A would have to convert the > canonical labeling, then convert back every time it called B, which

Re: [sage-devel] Re: Rationale behind HasseDiagram class

2016-01-22 Thread Travis Scrimshaw
On Friday, January 22, 2016 at 1:03:59 AM UTC-6, Nathann Cohen wrote: > > >Do you want DiGraph to have methods like rank or is_chain? > > Of course not. The idea was to have Poset carry a DiGraph > _hasse_diagram instead of a HasseDiagram object, and to [move/merge] > the methods from Hass

Re: [sage-devel] Re: Rationale behind HasseDiagram class

2016-01-21 Thread Nathann Cohen
>Do you want DiGraph to have methods like rank or is_chain? Of course not. The idea was to have Poset carry a DiGraph _hasse_diagram instead of a HasseDiagram object, and to [move/merge] the methods from HasseDiagram with their Poset counterparts. > Also, by > implementing them directly into

Re: [sage-devel] Re: Rationale behind HasseDiagram class

2016-01-21 Thread Travis Scrimshaw
> > So, as Jori asked, what would be wrong in *not* having a HasseDiagram > class at all? A Poset object could carry a _hasse_diagram digraph, and > all methods would be poset methods. > > Right now, there are two classes where a Poset method can be > implemented: Poset, and HasseDiagram. And

Re: [sage-devel] Re: Rationale behind HasseDiagram class

2016-01-21 Thread Nathann Cohen
Hello, I understand the wisdom of not having Poset inherit from DiGraph, as you don't want to be bothered with the DiGraph methods and their different terminology. I also understand that you need to keep a digraph around, possibly integer-labelled. So, as Jori asked, what would be wrong in *not*

Re: [sage-devel] Re: Rationale behind HasseDiagram class

2016-01-21 Thread Travis Scrimshaw
> > Right now the development is designed in what I think is a really > > senseless way: every features requires two new functions: > > - One on HasseDiagram which does the job > > - One on Poset which calls it > > We may have a situation where implementation needs functions f, g and h, > an

Re: [sage-devel] Re: Rationale behind HasseDiagram class

2016-01-21 Thread Travis Scrimshaw
Hey Nathann and Jori, On Thursday, January 21, 2016 at 3:14:09 AM UTC-6, Nathann Cohen wrote: > > > The former is when the Poset is acting as an adapter class, and the > latter > > is something where there either is no analog currently on the backend > (there > > might be no gain because there

Re: [sage-devel] Re: Rationale behind HasseDiagram class

2016-01-21 Thread Jori Mäntysalo
On Thu, 21 Jan 2016, Nathann Cohen wrote: Right now the development is designed in what I think is a really senseless way: every features requires two new functions: - One on HasseDiagram which does the job - One on Poset which calls it We may have a situation where implementation needs functi

Re: [sage-devel] Re: Rationale behind HasseDiagram class

2016-01-21 Thread Nathann Cohen
> The former is when the Poset is acting as an adapter class, and the latter > is something where there either is no analog currently on the backend (there > might be no gain because there is no analog (di)graph function or > translation cost). It depends on the situation and is just trying to be >

Re: [sage-devel] Re: Rationale behind HasseDiagram class

2016-01-20 Thread Travis Scrimshaw
> > > The idea is that HasseDiagram is suppose to be a subclass of DiGraph > > labelled by 1, 2, ..., n (so there is an implicit fixed linear > extension) > > and that Poset works by being the slight abstraction where we have a set > > with a partial order. > > I know that. But now there exi

Re: [sage-devel] Re: Rationale behind HasseDiagram class

2016-01-20 Thread Jori Mäntysalo
On Wed, 20 Jan 2016, Travis Scrimshaw wrote: The idea is that HasseDiagram is suppose to be a subclass of DiGraph labelled by 1, 2, ..., n (so there is an implicit fixed linear extension) and that Poset works by being the slight abstraction where we have a set with a partial order. I know that

[sage-devel] Re: Rationale behind HasseDiagram class

2016-01-20 Thread Travis Scrimshaw
Hey Jori, The idea is that HasseDiagram is suppose to be a subclass of DiGraph labelled by 1, 2, ..., n (so there is an implicit fixed linear extension) and that Poset works by being the slight abstraction where we have a set with a partial order. Best, Travis On Wednesday, January 20, 201