Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
""" Series Order
This file provides some utility classes which are useful when working with unknown, known, and infinite series orders for univariate power series.
This code is based on the work of Ralf Hemmecke and Martin Rubey's Aldor-Combinat, which can be found at http://www.risc.uni-linz.ac.at/people/hemmecke/aldor/combinat/index.html. In particular, the relevant section for this file can be found at http://www.risc.uni-linz.ac.at/people/hemmecke/AldorCombinat/combinatsu30.html. """ from sage.rings.all import Integer
class SeriesOrderElement: pass
class InfiniteSeriesOrder(SeriesOrderElement): def __repr__(self): """ EXAMPLES::
sage: from sage.combinat.species.series_order import * sage: o = InfiniteSeriesOrder(); o Infinite series order """
def __add__(self, x): """ EXAMPLES::
sage: from sage.combinat.species.series_order import * sage: o = InfiniteSeriesOrder() sage: o + 2 Infinite series order sage: o + o Infinite series order
::
sage: u = UnknownSeriesOrder() sage: o + u Unknown series order
TESTS::
sage: o + -1 Traceback (most recent call last): ... ValueError: x must be a positive integer """
raise TypeError("x must be a positive integer or a SeriesOrderElement")
__radd__ = __add__
def __mul__(self, x): """ EXAMPLES::
sage: from sage.combinat.species.series_order import * sage: o = InfiniteSeriesOrder() sage: o * 2 Infinite series order sage: o * o Infinite series order
::
sage: u = UnknownSeriesOrder() sage: o * u Unknown series order
TESTS::
sage: o * -1 Traceback (most recent call last): ... ValueError: x must be a positive integer """ return x
raise TypeError("x must be a positive integer or a SeriesOrderElement")
__rmul__ = __mul__
def __lt__(self, x): """ EXAMPLES::
sage: from sage.combinat.species.series_order import * sage: o = InfiniteSeriesOrder() sage: o < 2 False sage: o < o False
::
sage: u = UnknownSeriesOrder() sage: o < u False sage: 2 < o # TODO: Not Implemented True """ raise ValueError("x must be a positive integer")
raise TypeError("x must be a positive integer or a SeriesOrderElement")
def __gt__(self, x): """ EXAMPLES::
sage: from sage.combinat.species.series_order import * sage: o = InfiniteSeriesOrder() sage: o > 2 True """
class UnknownSeriesOrder(SeriesOrderElement): def __repr__(self): """ EXAMPLES::
sage: from sage.combinat.species.series_order import * sage: u = UnknownSeriesOrder(); u Unknown series order """
def __add__(self, x): """ EXAMPLES::
sage: from sage.combinat.species.series_order import * sage: u = UnknownSeriesOrder() sage: u + 2 Unknown series order sage: u + u Unknown series order """
raise ValueError("x must be a positive integer")
raise TypeError("x must be a positive integer or a SeriesOrderElement")
__radd__ = __add__
def __mul__(self, x): """ EXAMPLES::
sage: from sage.combinat.species.series_order import * sage: u = UnknownSeriesOrder() sage: u * 2 Unknown series order sage: u * u Unknown series order """ raise ValueError("x must be a positive integer")
raise TypeError("x must be a positive integer or a SeriesOrderElement")
__rmul__ = __mul__
def __lt__(self, x): """ EXAMPLES::
sage: from sage.combinat.species.series_order import * sage: u = UnknownSeriesOrder() sage: u < 2 True sage: o = InfiniteSeriesOrder() sage: u < o True """ raise ValueError("x must be a positive integer")
raise TypeError("x must be a positive integer or a SeriesOrderElement")
def __gt__(self, x): """ EXAMPLES::
sage: from sage.combinat.species.series_order import * sage: u = UnknownSeriesOrder() sage: u > 2 False """
def bounded_decrement(x): """ EXAMPLES::
sage: from sage.combinat.species.series_order import * sage: u = UnknownSeriesOrder() sage: bounded_decrement(u) Unknown series order sage: bounded_decrement(4) 3 sage: bounded_decrement(0) 0 """
raise ValueError("x must be a positive integer")
raise TypeError("x must be a positive integer or a SeriesOrderElement")
def increment(x): """ EXAMPLES::
sage: from sage.combinat.species.series_order import * sage: u = UnknownSeriesOrder() sage: increment(u) Unknown series order sage: increment(2) 3 """
raise ValueError("x must be a positive integer")
raise TypeError("x must be a positive integer or a SeriesOrderElement")
inf = InfiniteSeriesOrder() unk = UnknownSeriesOrder() |