#10194: Set factories
-------------------------------------+-------------------------------------
       Reporter:  nthiery            |        Owner:  hivert
           Type:  enhancement        |       Status:  positive_review
       Priority:  major              |    Milestone:  sage-6.8
      Component:  combinatorics      |   Resolution:
       Keywords:  factories,         |    Merged in:
  days30, Cernay2012, days57         |    Reviewers:  Frédéric Chapoton
        Authors:  Florent Hivert     |  Work issues:
Report Upstream:  N/A                |       Commit:
         Branch:                     |  763f93c95ecf8e79ff48339491212a6417d2c4f8
  public/ticket/10194                |     Stopgaps:
   Dependencies:                     |
-------------------------------------+-------------------------------------
Changes (by chapoton):

 * status:  needs_review => positive_review


Old description:

> At Sage days 30, a long brainstorm seems to have finalized the design.
> Here is a exerpt from the documentation:
>
> A ''set factory'' `F` is device, whose goal is to construct parent `P`
> which models subsets of a big set `S`. Typically, the `P` s are
> constructed
> within families obtained by putting a bunch of constraints `cons` on the
> elements of the set `S`. In such a hierarchy of subsets, one needs to
> have a
> fine and easy control on the elements construction. That is, one often
> needs
> that `P` constructs elements in a subclass of its usual class for
> element. On
> the contrary, one also often needs `P` to be a facade parent, meaning
> that `P`
> construct element whose actual parent is not `P` itself.
>
> The role of a set factory is twofold:
>
> - ''manage a database'' of constructors for the different parents `P =
> F(cons)`
>   depending on the various kinds of constraints `cons`. Note: currently
> there
>   is no real support for that. We are gathering use case before fixing
> the
>   interface.
>
> - ensure that the elements `e = P(...)` created by the different parents
>   follows a consistent policy concerning their ''class and parent''.
>
> The patch implement this idea while trying to leave as much as possible
> space
> for further improvement. In particular, I tried to specify the few
> possible
> things about constraints. I'm even not completely sure about
> {{{add_constraints}}}.
> Please comment and review.
>
> Florent
>
> '''Apply :''' [attachment:trac_10194-factories_policy-fh.patch trac_10194
> -factories_policy-fh.patch]

New description:

 At Sage days 30, a long brainstorm seems to have finalized the design.
 Here is a excerpt from the documentation:

 A ''set factory'' `F` is device, whose goal is to construct parent `P`
 which models subsets of a big set `S`. Typically, the `P` s are
 constructed
 within families obtained by putting a bunch of constraints `cons` on the
 elements of the set `S`. In such a hierarchy of subsets, one needs to have
 a
 fine and easy control on the elements construction. That is, one often
 needs
 that `P` constructs elements in a subclass of its usual class for element.
 On
 the contrary, one also often needs `P` to be a facade parent, meaning that
 `P`
 construct element whose actual parent is not `P` itself.

 The role of a set factory is twofold:

 - ''manage a database'' of constructors for the different parents `P =
 F(cons)`
   depending on the various kinds of constraints `cons`. Note: currently
 there
   is no real support for that. We are gathering use case before fixing the
   interface.

 - ensure that the elements `e = P(...)` created by the different parents
   follows a consistent policy concerning their ''class and parent''.

 The patch implement this idea while trying to leave as much as possible
 space
 for further improvement. In particular, I tried to specify the few
 possible
 things about constraints. I'm even not completely sure about
 {{{add_constraints}}}.
 Please comment and review.

 Florent

 '''Apply :''' [attachment:trac_10194-factories_policy-fh.patch trac_10194
 -factories_policy-fh.patch]

--

Comment:

 ok, let this get in. There are several combinatorial tickets on top of it.

--
Ticket URL: <http://trac.sagemath.org/ticket/10194#comment:65>
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 sage-trac+unsubscr...@googlegroups.com.
To post to this group, send email to sage-trac@googlegroups.com.
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