Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Change language to: Français - Português - 日本語 - Русский

See the recommended documentation of this function

# gcd

Greatest Common Divisor

### Syntax

`[pgcd, U] = gcd(p)`

### Arguments

p

a polynomial row vector `p = [p1, ..., pn]` (type equal to 2) or an integer row vector (type equal to 1 or 8).

pgcd

vector of the same type as `p`

U

matrix of the same type as `p`

### Description

`[pgcd, U] = gcd(p)` computes the gcd of components of `p` (`pgcd`) and a unimodular matrix (with polynomial inverse) `U`, with minimal degree such that

`p*U = [0 ... 0 pgcd]`.

In mathematics, a unimodular matrix `U` is a square integer matrix having determinant `+1` or `-1`.

The greatest common divisor of an array `p` of real numbersof real numbers can be obtained by converting it to a polynomial before calling `gcd`, through `p = inv_coeff(p, 0)`.

If `p` is given as an integer double (type 1), then it is treated as an `int32`.

### Examples

```// Polynomial case
s = %s;
p = [s  s*(s+1)^2 2*s^2+s^3];
[pgcd,u] = gcd(p);
p*u

// Integer case
V = int32([2^2*3^5 2^3*3^2 2^2*3^4*5]);
[thegcd,U] = gcd(V)
V*U

// Double case
V = [2^2*3^5 2^3*3^2 2^2*3^4*5];
[thegcd,U] = gcd(V)
V*U

gcd(uint8([15 20]))

gcd([iconvert(15, 4) iconvert(20, 4)])

gcd(iconvert([15 20], 4))```

• bezout — Bezout equation for polynomials or integers
• lcm — least common multiple
• hermit — Hermite form