
Calling Sequence


MultivariatePowerSeries[command](arguments)
command(arguments)


Description


•

The MultivariatePowerSeries package is a collection of commands for manipulating multivariate power series and univariate polynomials over multivariate power series.

•

The main algebraic functionalities of this package deal with arithmetic operations (addition, multiplication, inversion, evaluation), for both multivariate power series and univariate polynomials over multivariate power series, as well as factorization of such polynomials.

•

Every power series q is encoded by an object storing the following information. First, a procedure, called the power series generator, which, given a nonnegative integer d returns all nonzero terms of q with total degree d. Second, a nonnegative integer, called the precision of q, which ensures that all nonzero terms of q of degree less or equal to that precision have been computed and are stored. Third, an Array, called the data array of q such that, if all nonzero terms of q of degree i have been computed then they are stored at position i of that array, for all nonnegative integers i.

•

The implementation of every arithmetic operation, such as addition, multiplication, inversion builds the resulting power series (sum, product or inverse) by creating its generator from the generators of the operands, which are called ancestors of the resulting power series. The coefficients of that resulting power series are computed only when truly needed. Once computed, they are stored in the data array of that power series, where they can be retrieved next time needed. When more terms (than those already stored in the data array) are needed, then the generator is invoked which, in turn, may invoke the generators of the ancestors.

•

The implementation of the factorization commands WeierstrassPreparation and HenselFactorize is also based on lazy evaluation (also known as callsbyneed). Each factorization command returns the factors as soon as enough information is discovered for initializing the data structures of the factors. The precision of each returned factor, that is, the common precision of its coefficients (which are power series) is zero. However the generator of each coefficient is known and, thus, the computation of more coefficients can be resumed when a higher precision is requested.

•

The commands UpdatePrecision and Copy manipulate data of multivariate power series and univariate polynomials over multivariate power series.

•

The commands Add, Negate, Multiply, Exponentiate, Inverse, Divide, EvaluateAtOrigin perform arithmetic operations on multivariate power series and univariate polynomials over multivariate power series. The functionality of the first six commands can also be accessed using the standard arithmetic operators when the arguments are power series.

•

When using the MultivariatePowerSeries package, do not assign anything to the variables occurring in the power series and univariate polynomials over power series. If you do, you may see invalid results.



References



Alexander Brandt, Mahsa Kazemi, Marc Moreno Maza "Power Series Arithmetic with the BPAS Library." Computer Algebra in Scientific Computing (CASC), Lecture Notes in Computer Science  12291, (2020): 108128.


Mohammadali Asadi, Alexander Brandt, Mahsa Kazemi, Marc Moreno Maza, and Erik Postma: " Multivariate Power Series in Maple." Maple Conference 2020, Waterloo, Ontario, Canada, November 26, 2020, Communications in Computer and Information Science (CCIS) series  Springer 2020 (submitted).



Compatibility


•

The MultivariatePowerSeries package was introduced in Maple 2021.



