I would greatly appreciate comments on 
https://github.com/sympy/sympy/pull/1848

This provides efficient implementations for enumerating and counting
multiset partitions.

Rationale for including in Sympy:

    This provides a faster implemenation of existing user-visible
    functionality.  Multiset partitions are used in meijerint.py,
    although meijerint only uses the 2-partition case.  Enumerating
    multiset partitions is also a good way to enumerate all the
    factorings of an integer.

Desired feedback (in roughly this order):

    Basic design issues: Is there functionality which should be
    trimmed/added?   Function naming, code location etc.

    Is the programmer-facing (docstring + comments) sufficient?  The
    basic enumeration algorithm is described in Knuth and other
    places, but the algorithms for the range-restricted enumeration
    and counting versions are (so far as I know) original.  Hence, the
    bar for internal documentation is a bit higher.  (I know the
    user-facing documentation still has lots of issues.  I'll fix that
    once I am confident about these first two points.)

    Then, the regular review for style, test coverage, etc.

There is no advanced math required to review this.  The algorithm is,
at its heart, an inorder tree traversal, but that simple core is
hidden inside some fairly intricate data structures and order
constraints.  I would recommend at least glancing at the Yorgey Monad
Reader article (referenced in the code) to get an idea of the
bijection between mulitset partitions and integer vectors, and how the
ordering constraints are set up.

Many thanks.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy?hl=en-US.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to