|
In Magma, algebraic power series are represented in a hybrid lazy-exact way. Eventually every power series is given by a defining polynomial and a sufficiently large initial segment. Intermediate operations are represented in a lazy way. This makes it possible to compute both quickly and to high precision if necessary.
Note, however, that decision procedures may be very time intensive. In the sequel we have indicated in each function whether it is fast or whether it has to be used with care.
Algebraic power series are of type RngPowAlgElt.
There are two types of algebraic series: Atomic and Substitution
which we sometimes refer to briefly as type A or type B. There is no difference in
the functionality available but they are structurally different. The user can
determine the type of a series, if (s)he desires, from the attribute type
which is 0 for type A and 1 for type B.
Atomic series are the basic type that are given directly as the root
of a univariate polynomial p(z) with given initial expansion. p(z) comes
from a polynomial f(z) with coefficients in a multivariate polynomial ring.
Either p = f or p is determined from f by evaluating the coefficients
of f at a given array, subs, of algebraic power series. This allows the
construction of algebraic power series as roots of polynomials over
finitely-generated fields of already-constructed series. Most of the
constructors return a series of this type.
Substitution series allow the composition of algebraic power series.
The principal defining data is an algebraic power series s in n variables
and an array of n algebraic series that are substituted into this. In fact, the
substitution is not necessarily direct, but through n given elements in
the dual lattice of the exponent lattice of s as explained in the constructor
EvaluationPowerSeries.
Both types of series have an associated exponent lattice specified by two
components: Γ, a sublattice of a standard integral lattice, and e,
a positive integer. The expansion of the series will in general have fractional
exponents and e is the LCM of the denominators of these (e may be 1).
The finite expansions that are returned are always integral-exponent
multivariate polynomials. The actual mathematical expansion is derived
from this return value by dividing all exponents by e. With this scaling up
of fractional exponents by e to get integral exponents, all exponent vectors
for monomials occurring in the expansion (up to any degree) will lie in the
lattice Γ. So the actual exponent lattice for the series is
(1/e)Γ.
The user doesn't have to worry too much about the lattice Γ. It is
automatically computed by most of the constructors for algebraic power series
and the default of the standard integral lattice can always be used (assuming
e is correct!). It's utility is that, in computing the exponent lattice for
composite constructions on series, factors of e may be cancelled out from
the resulting lattice. So an algebraic construction involving series with
non-integral exponents may produce a result with only integral exponents.
Such lattice computations are carried out automatically.
Important note: To speed up some of the basic internal polynomial operations,
it is assumed that the domain of an algebraic power series is a multivariate
polynomial ring with a degree ordering (glex or grevlex).
Attempts to create series using polynomial rings with a non-degree ordering will
result in a user error.
A verbose flag AlgSeries exists which can take values true, false,
0 or 1. Setting to true (or 1) will output information
on the progress of some of the potentially more time-consuming intrinsics.
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|