ore_algebra.generalized_series¶
Generalized series found in expansions at singularities
Classes
ContinuousGeneralizedSeries (parent, tail[, …]) 
Objects of this class represent generalized series objects. 
DiscreteGeneralizedSeries (parent, data[, …]) 
Objects of this class represent generalized series objects. 
GeneralizedSeriesFunctor (x, type) 

GeneralizedSeriesMonoid (base, x, type) 
Objects of this class represent parents of generalized series objects. 

class
ore_algebra.generalized_series.
ContinuousGeneralizedSeries
(parent, tail, exp=0, ramification=1, make_monic=False)¶ Objects of this class represent generalized series objects.
See the docstring of
GeneralizedSeriesMonoid
for further information.
base
()¶ Returns the parent’s coefficient domain.

base_extend
(ext, name='a')¶ Lifts
self
to a domain with an enlarged coefficient domain.INPUT:
ext
– either a univariate irreducible polynomial overself.base()
or an algebraic extension field ofself.base()
name
(optional) – ifext
is a polynomial, this is used as a name for the generator of the algebraic extension.
EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: s = G(1+x+x^2, exp=3*x^2, ramification=3) sage: s.parent() Monoid of continuous generalized series in x over Rational Field sage: x = ZZ['x'].gen() sage: s.base_extend(x^2 + 2, 'a') exp(9/2*x^(2/3))*(1 + x^(1/3) + x^(2/3)) sage: _.parent() Monoid of continuous generalized series in x over Number Field in a with defining polynomial x^2 + 2 sage: s == s.base_extend(x^2 + 2, 'a') True sage: s is s.base_extend(x^2 + 2, 'a') False

derivative
()¶ Returns the derivative of
self
EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: G(1+x+x^2, exp=1+x+x^2, ramification=2) exp(x^(2/2)  2*x^(1/2))*x*(1 + x^(1/2) + x^(2/2)) sage: _.derivative() exp(x^(2/2)  2*x^(1/2))*x^(1)*(1 + 2*x^(1/2) + 3*x^(2/2) + 5/2*x^(3/2) + 2*x^(4/2)) sage: G([0,0,0,1]) log(x)^3 sage: _.derivative() x^(1)*3*log(x)^2

exponential_part
()¶ Returns the exponential part of this series.
This is the series obtained from
self
by discarding the tail.EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: G(1+x+x^2, exp=2*x+x^2) exp(1/2*x^(2)  2*x^(1))*(1 + x + x^2) sage: _.exponential_part() exp(1/2*x^(2)  2*x^(1)) sage: G(x^3+x^4+x^5) x^3*(1 + x + x^2) sage: _.exponential_part() x^3

has_exponential_part
()¶ True if
self
has a nontrivial exponential part.Note that the exponential part may not show up in form of an “exp” term in the printout, but may also simply consist of some power x^lpha with nonzero lpha.
EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: G(1+x+x^2).has_exponential_part() False sage: G(1+x+x^2, exp=2*x+x^2).has_exponential_part() True sage: G(x+x^2).has_exponential_part() True sage: G(x+x^2) == G(1+x, exp=1) True

has_logarithms
()¶ True if
self
contains logarithmic terms.

is_one
()¶ True if
self
is the monoid’s one element.

is_zero
()¶ True if
self
is the monoid’s zero element.

order
()¶ Returns the order of this series.
The order is defined as the maximal coefficient ring element alpha such that for all terms x^ilog(x)^j appearing in this series we have i  alpha is a nonnegative rational number whose denominator divides the ramification. Note that alpha itself may be a complex number.
The order is also the constant coefficient of the polynomial used to represent the exponential part.
The order of the zero series is infinity.
EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: G(1+x+x^2,exp=17/24+5*x+7*x^2, ramification=9) exp(63/2*x^(2/9)  45*x^(1/9))*x^(17/24)*(1 + x^(1/9) + x^(2/9)) sage: _.order() 17/24 sage: G(x^5+x^6, exp=3) x^2*(1 + x) sage: _.order() 2

prec
()¶ The precision of
self
is the minimum of the precisions of all the power series objects contained in it.

ramification
()¶ Returns the ramification of this series object.
This is the smallest positive integer r such that replacing x by x^r in the series clears the denominators of all exponents.
EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: G(1+x+x^2, ramification=2) 1 + x^(1/2) + x^(2/2) sage: _.ramification() 2 sage: G(1+x^2+x^4, ramification=2) 1 + x + x^2 sage: _.ramification() 1

similar
(other, reference=Integer Ring)¶ Checks whether
self
andother
are similar.Similarity is defined as follows. Let A and B be two generalized series objects with exponential part exp(int_0^x a(t^{1/r})/t dt) and exp(int_0^x b(t^{1/r})/t dt) respectively. Then A and B are called similar if r*(ab) is an integer.
An alternative reference set can be specified as optional argument.
EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: A = G(1+x+x^2, exp=1+x+x^2, ramification=2) sage: B = G(1+x+x^2, exp=3/2+x+x^2, ramification=2) sage: A.similar(B) True sage: B.similar(A) True sage: C = G(1+x+x^2, exp=2/3+x+x^2, ramification=2) sage: A.similar(C) False sage: A.similar(C, reference=QQ) True sage: D = G(1+x+x^2, exp=1+x^2+x^4, ramification=4) sage: A.similar(D) True

substitute
(e)¶ Returns the series object obtained from
self
by replacing x by x^e, where e is a positive rational number.EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: G(1+x+x^2, ramification=2) 1 + x^(1/2) + x^(2/2) sage: _.substitute(3/5) 1 + x^(3/10) + x^(6/10) sage: _.substitute(10/3) 1 + x + x^2 sage: _.ramification() 1 sage: G(1, exp=1+x+x^2, ramification=2) exp(x^(2/2)  2*x^(1/2))*x sage: _.substitute(3/5) exp(x^(6/10)  2*x^(3/10))*x^(3/5) sage: G([1,x,x^2], ramification=2) x^(2/2)*log(x)^2 + x^(1/2)*log(x) + 1 sage: _.substitute(3/5) 9/25*x^(6/10)*log(x)^2 + 3/5*x^(3/10)*log(x) + 1

tail
()¶ Returns the tail of this series.
This is the series object which is obtained from
self
by dropping the exponential part.EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: G(1+x+x^2, exp=2*x+x^2) exp(1/2*x^(2)  2*x^(1))*(1 + x + x^2) sage: _.tail() 1 + x + x^2 sage: G(x+x^2) x*(1 + x) sage: _.tail() 1 + x


class
ore_algebra.generalized_series.
DiscreteGeneralizedSeries
(parent, data, make_monic=False)¶ Objects of this class represent generalized series objects.
See the docstring of
GeneralizedSeriesMonoid
for further information.
base_extend
(ext, name='a')¶ Lifts
self
to a domain with an enlarged coefficient domain.INPUT:
ext
– either a univariate irreducible polynomial overself.base()
or an algebraic extension field ofself.base()
name
(optional) – ifext
is a polynomial, this is used as a name for the generator of the algebraic extension.
EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x') sage: s = G(1+x+x^2, exp=3*x^2, ramification=3) sage: s.parent() Monoid of continuous generalized series in x over Rational Field sage: x = ZZ['x'].gen() sage: s.base_extend(x^2 + 2, 'a') exp(9/2*x^(2/3))*(1 + x^(1/3) + x^(2/3)) sage: _.parent() Monoid of continuous generalized series in x over Number Field in a with defining polynomial x^2 + 2 sage: s == s.base_extend(x^2 + 2, 'a') True sage: s is s.base_extend(x^2 + 2, 'a') False

prec
()¶ The precision of
self
is the minimum of the precisions of all the power series objects contained in it.


class
ore_algebra.generalized_series.
GeneralizedSeriesMonoid
(base, x, type)¶ Objects of this class represent parents of generalized series objects. They depend on a coefficient ring, which must be either QQ or a number field, and a variable name. The type must be “continuous” or “discrete”

base_extend
(ext, name='a')¶ Returns a monoid with an extended coefficient domain.
INPUT:
ext
– either a univariate irreducible polynomial overself.base()
or an algebraic extension field ofself.base()
name
(optional) – ifext
is a polynomial, this is used as a name for the generator of the algebraic extension.
EXAMPLES:
sage: from ore_algebra.generalized_series import GeneralizedSeriesMonoid sage: G = GeneralizedSeriesMonoid(QQ, 'x', 'continuous') sage: G Monoid of continuous generalized series in x over Rational Field sage: x = ZZ['x'].gen() sage: G1 = G.base_extend(x^2 + 2, 'a') sage: G1 Monoid of continuous generalized series in x over Number Field in a with defining polynomial x^2 + 2 sage: G2 = G1.base_extend(x^3 + 5, 'b') sage: G2 Monoid of continuous generalized series in x over Number Field in b with defining polynomial x^3 + 5 over its base field sage: G2(G1.random_element()).parent() is G2 True sage: G1.random_element().parent() is G2 False

exp_ring
()¶ Returns the ring which is used to store the exponential part of a generalized series. It is the univariate polynomial ring in over
self.base()
in the variableself.var()
.A polynomial p represents the exponential part exp(int_0^x p(t^{1/r})/t dt), where r is the object’s ramification.
In particular, a constant polynomial alpha represents exp(alphalog(x))=x^alpha`.

gen
()¶ Returns the generator of this monoid

is_commutative
()¶ Returns
True
.

is_exact
()¶ Returns
False
, because series objects are inherently approximate.

random_element
()¶ Returns a random element of this monoid.

tail_ring
()¶ Returns the ring which is used to store the nonexponential part (the tail) of a generalized series. It is the univariate polynomial ring in the variable “LOG” over the power series ring in
self.var()
overself.base()
.A polynomial p(x,y) represents the tail p(x^{1/r}, log(x)).

var
()¶ Returns the variable name associated to this monoid.
