Documentation

# `solvelib`::`pdioe`

Solve polynomial Diophantine equations

MuPAD® notebooks will be removed in a future release. Use MATLAB® live scripts instead.

MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.

## Syntax

```solvelib::pdioe(`a`, `b`, `c`)
solvelib::pdioe(`aexpr`, `bexpr`, `cexpr`, `x`)
```

## Description

`solvelib::pdioe(a, b, c)` returns polynomials `u` and v that satisfy the equation `au + bv = c`.

`solvelib::pdioe(aexpr, bexpr, cexpr, x)` does the same after converting the arguments into univariate polynomials ```a, b, c``` in the variable `x`.

The coefficient ring of the polynomials `a`, `b`, and `c` must be either `Expr`, or `IntMod(p)` for some prime p, or a domain belonging to the category `Cat::Field`.

## Examples

### Example 1

If expressions are passed as arguments, a fourth argument must be provided:

```solvelib::pdioe(x, 13*x + 22*x^2 + 18*x^3 + 7*x^4 + x^5 + 3, x^2 + 1, x)```
` `

### Example 2

x is not a multiple of the gcd of x + 1 and x2 - 1. Hence the equation u(x + 1) + v(x2 - 1) = x has no solution for u and v:

`solvelib::pdioe(x + 1, x^2 - 1, x, x)`
` `

### Example 3

If the arguments are polynomials, the fourth argument may be omitted:

```solvelib::pdioe(poly(a + 1, [a]), poly(a^2 + 1, [a]), poly(a - 1, [a]))```
` `

## Parameters

 `x` Identifier or indexed identifier `a`, `b`, `c` Univariate polynomials `aexpr`, `bexpr`, `cexpr` Polynomial expressions

## Return Values

If the equation is solvable, `solvelib::pdioe` returns an expression sequence consisting of two operands of the same type as the input (expressions or polynomials). If the equation has no solution, `solvelib::pdioe` returns `FAIL`.