split an ordinal by exponent
Split(a, degree=d, output=o)
Split(t, degree=d, output=o)
ordinal, nonnegative integer, or polynomial with positive integer coefficients
list of pairs of the form [e,c], where e is either an ordinal data structure or a nonnegative integer and c is either a nonnegative integer or a polynomial with positive integer coefficients, and all exponents are strictly decreasing with respect to the ordering ≻ of ordinals
(optional) ordinal, nonnegative integer, or polynomial with positive integer coefficients; the default value is 1
(optional) literal keyword; one of lists, mixed or index
The Split command returns an expression sequence l, r.
By default, l and r are either ordinal data structures, nonnegative integers, or polynomials with positive integer coefficients.
If output=lists is specified, then l and r are both lists of pairs of the same form as described for t above.
The return values for output=mixed and output=lists are identical, except if l=, r=, or l or r or both are of the form [[0,c]]. In these cases, the return value for output=mixed is c instead or r, where c=0 if r=, and similarly for l.
If output=index is specified, then the return value is a nonnegative integer i such that l is the sum of the first (and largest) i terms of a in the Cantor normal form, with i=0 if and only if l=0.
The Split(a, degree=d) calling sequence splits the ordinal number a into two parts a=l+r according to the specified degree d, namely, such that degree⁡r≺d and either l=0 (if degree⁡a≺d) or tdegree⁡l≽d.
In particular, for the default value of degree=1, r is the constant coefficient of a, which is equal to the trailing coefficient if tdegree⁡a=0, or 0 otherwise.
This is related to a left division with remainder of a by ωd, as follows: Div⁡a,ωd=q,r, where l=q⋅ωd.
The Split(t, degree=d) calling sequence performs the same split on the ordered set of terms t. It is equivalent to Split(Ordinal(t), degree=d).
The form of the return values is determined by the output option. If this option is not given (the default), then the result is returned as an expression sequence of two ordinal numbers (even if the input t is a list of pairs). Otherwise, the result is returned in the form as described in the Returns section.
a ≔ Ordinal⁡ω,1,3,2,2,4,1,5
The output=index option returns only the number of terms in l:
If t is a list of terms, then the calling sequences for t and a=Ordinal⁡t are equivalent:
t ≔ op⁡a
Parametric ordinals are supported:
b ≔ Ordinal⁡3,2,1,1,0,x
The Ordinals[Split] command was introduced in Maple 2015.
For more information on Maple 2015 changes, see Updates in Maple 2015.
Download Help Document