From: Squeak <squeak_at_xirr.com>

Date: Tue, 1 Jun 1999 21:05:32 -0400 (EDT)

Date: Tue, 1 Jun 1999 21:05:32 -0400 (EDT)

Just a silly thing, but gcd is defined on lots of things, for example

floats and rationals. It is also incredibly easy to implement for them,

the answer always being 1.

It exists for complexes as well. The algorithm is the same, but there are

4 answers instead of just two: gcd(3,5i) = 1,i,-1,-i. Just take the answer

and multiply it by i (a unit).

You'd need to add rational support support to your complex code, or just a

mod operator. The algorithm is simply:

gcd(a,b) = ( if(a%b == 0) return b; return(gcd(b,a%b)) );

with sanity checks for a*b != 0, in which case answer is merely the

non-zero arg. (or 0 if they both are 0).

If it turns out to be incredibly easy to add, I'll send a patch.

Received on Tue Jun 01 1999 - 17:38:29 CDT

*
This archive was generated by hypermail 2.2.0
: Sun Apr 17 2011 - 21:00:02 CDT
*