help-octave
[Top][All Lists]

## Definition of gcd(A,B)

 From: John W. Eaton Subject: Definition of gcd(A,B) Date: Sat, 19 Jun 1999 12:41:23 -0500 (CDT)

```On 18-Jun-1999, address@hidden <address@hidden> wrote:

| I have a need for a term-by-term GCD, i.e.
|
| gcd([6 10;12 15],[9 12; 16 20]) == [3 2;4 5]
|
| The current Octave gcd.m seems to interpret the notation as
|
| gcd([6 10;12 15],[9 12; 16 20]) == gcd([6 10 12 15 9 12 16 20])
|
| and therefore returns 1.
|
| I find this inconvenient and less general, as in the case of the
| term-by-term gcd one could easily get the current behaviour
| by the using the colon operator.
|
| The "intuitive" definition should to my mind be:
|
| GCD(X) should be the GCD of the elements in vector X
| GCD(A) should be a vector of GCD's of columns of matrix A
| GCD(A,B,C,...) should be a matrix of GCD's of corresponding
|   elements in matrices A,B,C,... which are all scalar or of the
|   same shape
|
| I have written such a GCD, which I give a different name to
| avoid confusion.
|
| But is the present behaviour of GCD an intentional one, intended
| to preserve compatibility with whatever, or just the result of
| not having thought out what GCD should mean for non-scalar
| arguments?

You would have to ask Kurt Hornik, who wrote it.

I don't know what Matlab did for gcd or lcm when he wrote them.  Now,
both gcd and lcm are incompatible, I think.  If you can provide
compatible versions, I think that would be good.

Thanks,

jwe

---------------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.  To ensure