Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site turtlevax.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!decvax!decwrl!turtlevax!ken From: ken@turtlevax.UUCP (Ken Turkowski) Newsgroups: net.arch,net.micro.68k Subject: Re: Integer Multiplier Question Message-ID: <975@turtlevax.UUCP> Date: Sun, 1-Dec-85 23:51:08 EST Article-I.D.: turtleva.975 Posted: Sun Dec 1 23:51:08 1985 Date-Received: Thu, 5-Dec-85 04:43:51 EST References: <5456@allegra.UUCP> <291@l5.uucp> Organization: CIMLINC, Inc. @ Menlo Park, CA Lines: 21 Xref: watmath net.arch:2209 net.micro.68k:1377 Summary: I agree: don't just return the least significant part of the product. The most significant part is required to implement digital filters. In article <291@l5.uucp>, gnu@l5.uucp (John Gilmore) writes: > In article <5456@allegra.UUCP>, geno@allegra.UUCP (E.Rice) writes: > > In many languages, the result of a integer multiply has the same length > > as the operands. Therefore it makes sense when building a parallel > > multiplier to only generate the low order half of the product. > > I proposed that the 68020 do this, and Motorola implemented it, but > in the process several people pointed out that if the arguments are > considered as fractions (eg as in rational arithmetic, or in computing > floating point) then the relevant bits are the *high order* bits of the > double-length product. As long as you just want to compute addresses for arrays, the least significant part of the product is all that is needed. However, for any kind of digital signal processing, the most significant part is needed for digital filters, if you don't want to have to deal with overflow. -- Ken Turkowski @ CIMLINC (formerly CADLINC), Menlo Park, CA UUCP: {amd,decwrl,hplabs,seismo,spar}!turtlevax!ken ARPA: turtlevax!ken@DECWRL.DEC.COM