MultiSet - Maple Help

MultiSet

overview of MultiSets

 Calling Sequence MultiSet( element_spec, ... ) MultiSet['generalized']( element_spec, ... )

Parameters

 element_spec - specifies the MultiSet elements and their multiplicities generalized - literal index which indicates that a generalized MultiSet should be constructed

Description

 • A MultiSet is a data structure which stores and manipulates an unordered collection of elements which may be repeated.  It is implemented as a Maple object. The procedure exports of a MultiSet are used to create, update, query and otherwise interact with one or more MultiSet objects.
 • A MultiSet can be constructed from another MultiSet, from a set or list of elements, or from an expression sequence of elements with their multiplicities:
 – If M is a MultiSet, then MultiSet(M) produces a new MultiSet with the same elements and multiplicities.
 – If L is a Maple list or set of two-element lists, where the second element of each list is a non-negative integer (normal case) or real number (generalized case), then MultiSet(L) is a MultiSet whose elements are the first elements of each list with multiplicities given by the corresponding second elements of each list.
 – If L is any other Maple list, then MultiSet(L) is a MultiSet of the same elements, with multiplicities the same as in L.
 – If S is any other Maple set, then MultiSet(S) is a MultiSet of the same elements, each with multiplicity 1.
 – Each of the expressions M( a, b=2, c=3 ) and M( a, [b, 2], [c, 3] ) constructs a MultiSet in which the element a has multiplicity 1, b has multiplicity 2 and c has multiplicity 3.  Here a, b, and c can be any Maple expressions.
 – Multiplicities must be non-negative integers, unless the generalized index is provided on the constructor, in which case arbitrary (real) numeric multiplicities are also permitted.  An element with multiplicity 0 is removed from its MultiSet.
 • MultiSets are displayed using a set-of-lists-of-pairs notation, but MultiSets are not sets in the usual Maple sense.  The convert command can be used to realize a MultiSet in a variety of different alternate formats.
 • To test whether an expression is a MultiSet, use type(..., MultiSet).
 • To iterate over a MultiSet, see MultiSet Iteration.
 • For commands which operate on more than one MultiSet, for example intersect, at least one operand must be a MultiSet.  Other operands can be MultiSets, sets or lists; a non-MultiSet operand will be converted to a MultiSet before the operation is carried out.
 • Generalized and standard (non-generalized) MultiSets cannot be combined in commands which operate on more than one MultiSet.  Note that this means that if a generalized MultiSet appears in an operation, for example, union, with another argument which is not a MultiSet (for example, a list or set), then that other argument will be converted to a generalized MultiSet before proceeding with the operation.
 • The command IsGeneralized(M) can be used to determine if a MultiSet is generalized or not.

List of MultiSet Object Commands

 • The following is a list of the commands which work with MultiSet objects.

Examples

 > $M≔\mathrm{MultiSet}\left(a=2,\left[b,4\right],c\right)$
 ${M}{≔}\left\{\left[{a}{,}{2}\right]{,}\left[{b}{,}{4}\right]{,}\left[{c}{,}{1}\right]\right\}$ (1)
 > $N≔\mathrm{MultiSet}\left[\mathrm{generalized}\right]\left(\left[\left[x,4\right],\left[y,\frac{3}{2}\right],\left[z,-2\right]\right]\right)$
 ${N}{≔}\left\{\left[{x}{,}{4}\right]{,}\left[{y}{,}\frac{{3}}{{2}}\right]{,}\left[{z}{,}{-2}\right]\right\}$ (2)
 > $\mathrm{evalb}\left(M=\mathrm{MultiSet}\left(\mathrm{Entries}\left(M\right)\right)\right)$
 ${\mathrm{true}}$ (3)
 > $\mathrm{Entries}\left(M\right)$
 $\left\{\left[{a}{,}{2}\right]{,}\left[{b}{,}{4}\right]{,}\left[{c}{,}{1}\right]\right\}$ (4)

Compatibility

 • The MultiSet object was introduced in Maple 2016.