genpoly

Create a polynomial using b-adic expansion

Use only in the MuPAD Notebook Interface.

This functionality does not run in MATLAB.

Syntax

```genpoly(`n`, `b`, `x`)
```

Description

`genpoly(n, b, x)` creates a polynomial `p` in the variable `x` from the `b`-adic expansion of `n`, such that p(b) = n. The integer coefficients of the resulting polynomial are greater than and less than or equal to .

The b-adic expansion of an integer n is defined by , such that the ci are symmetric remainders modulo b, i.e., for all i (see `mods`). From this expansion the polynomial is created. The polynomial is defined over the coefficient ring `Expr`.

If the first argument of `genpoly` is a (multivariate) polynomial, then it must be defined over the coefficient ring `Expr` and must have only integer coefficients. The third argument `x` must not be a variable of the polynomial. In this case each integer coefficient is converted into a polynomial in `x` as described above. The result is a polynomial in the variable `x`, followed by the variables of the given polynomial. (`x` is the main variable of the returned polynomial.)

The first argument `n` may also be a polynomial expression. In this case, it is converted into a polynomial using `poly`, then `genpoly` is applied as described above, and the result is again converted into a polynomial expression.

If the first argument is an integer or a polynomial, then the result is a polynomial of domain type `DOM_POLY`; otherwise it is a polynomial expression.

Examples

Example 1

We create a polynomial `p` in the indeterminate `x` such that `p(7) = 15`. The coefficients of `p` are between `-3` and `3`:

`p := genpoly(15, 7, x)`

`p(7)`

Here is an example with a polynomial expression as input:

`p := genpoly(15*y^2 - 6*y + 3*z, 7, x)`

The return value has the same type as the first argument:

`p := genpoly(poly(15*y^2 + 8*z, [y, z]), 7, x)`

We check the result:

`p(7, y, z)`

Parameters

 `n` An integer, a polynomial of type `DOM_POLY`, or a polynomial expression `b` An integer greater than 1 `x` The indeterminate: an identifier

Return Values

polynomial if the first argument is a polynomial or an integer. Otherwise, a polynomial expression.