Prof Kahan's Floating Point Test Program - the original from his and his students in his computer arithmetic seminar wrote during my days at UCB: https://www.netlib.org/paranoia/ Kahan was always miffed at how bad the different floating point units were - (Seymour was notorious for being fast but not very precise on most of his FP units). Here is an updated FORTRAN 90 version: https://people.math.sc.edu/Burkardt/f_src/paranoia/paranoia.html ᐧ On Wed, Mar 13, 2024 at 4:25 PM Rob Pike wrote: > Norm Schryer wrote a (nearly?) exhaustive floating-point tester that he > ran when a new CPU arrived, always with wrong results. Doug McIlroy > probably knows more about it than I do, who only observed it from afar. > > -rob > > > On Thu, Mar 14, 2024 at 4:18 AM ron minnich wrote: > >> Got the name wrong: Computer Engineering: A DEC View of Hardware Systems >> Design >> >> On Wed, Mar 13, 2024 at 9:41 AM ron minnich wrote: >> >>> by the way, I realize that random number urban legend sounds ridiculous, >>> in light of how hardware design is done today, but those of you who did >>> hardware design in those days (guilty!), and had access to -11 >>> schematics and boards, might wonder if it's not possible. There was a >>> habit, in those days, for performance reasons, of subbing transparent >>> latches for flip-flops to gain a little time. An engineer I knew at Amdahl >>> said that was a pretty hot topic there. Certainly, the technique of design >>> for testability was not really in wide use in the -11 days. Gordon Bell's >>> book "Computer Design" is particularly instructive. >>> >>> E.g., how did you verify the floating point on your new machine? Put an >>> older machine next to a new machine, do lots of computation, see if there >>> is disagreement, you've found a bug in the new machine, right? Maybe. >>> Sometimes, you discover the older machine had a bug the newer one did not >>> ... happened more than once, including on the 360 to 370 transition. >>> >>> On Tue, Mar 12, 2024 at 6:09 PM ron minnich wrote: >>> >>>> There used to be an urban legend about multiply overflow and the PDP 11. >>>> >>>> This would’ve been circa 1976. Someone from DEC told us that on a >>>> multiply overflow, the contents of the destination register would be “kind >>>> of” random. I was never able to verify that claim. But that might explain >>>> this code. >>>> >>>> On Tue, Mar 12, 2024 at 16:05 Jonathan Gray wrote: >>>> >>>>> On Tue, Mar 12, 2024 at 08:55:02AM -0400, Russ Cox wrote: >>>>> > Hi all (and TUHS), >>>>> > >>>>> > The Third Edition rand(III) page [1] ends with >>>>> > >>>>> > WARNING The author of this routine has been writing >>>>> > random-number generators for many years and has >>>>> > never been known to write one that worked. >>>>> > >>>>> > My understanding is that Ken wrote the rand implementation. >>>>> > But I'm curious about the origin of this warning. >>>>> > I had assumed that Ken wrote it as a combination warning+joke, >>>>> > but Rob suggested that to him it didn't sound like Ken and >>>>> > perhaps Doug or Dennis had written it. Does anyone remember? >>>>> > >>>>> > Separately, I am trying to find out what the very first >>>>> > Unix rand implementation was. In the TUHS archives, >>>>> > the incomplete V2 sources contain a reference to srand >>>>> > in cmd/bas0.s [2], but there is no definition in the tree. >>>>> > The V3 man pages list it, but as far as I can tell full >>>>> > library sources do not appear in the TUHS archives >>>>> > until the V6 snapshot. The V6 rand [3] is: >>>>> > >>>>> > rand: >>>>> > mov r1,-(sp) >>>>> > mov ranx,r1 >>>>> > mpy $13077.,r1 >>>>> > add $6925.,r1 >>>>> > mov r1,r0 >>>>> > mov r0,ranx >>>>> > bic $100000,r0 >>>>> > mov (sp)+,r1 >>>>> > rts pc >>>>> >>>>> matches V5: >>>>> https://www.tuhs.org/cgi-bin/utree.pl?file=V5/usr/source/s3/rand.s >>>>> Distributions/Research/Dennis_v5/v5root.tar.gz >>>>> >>>>> >>>>> > >>>>> > Perhaps this is the original rand as well? It is hard to imagine >>>>> > a much simpler one, other than perhaps removing the addition, >>>>> > but doing so would create a sequence of only odd numbers. >>>>> > >From the man page description it sounds like this has to be the >>>>> > original generator, perhaps with different constants. >>>>> > >>>>> > Thanks! >>>>> > >>>>> > Best, >>>>> > Russ >>>>> > >>>>> > [1] >>>>> > >>>>> https://github.com/dspinellis/unix-history-repo/blob/Research-V3/man/man3/rand.3 >>>>> > [2] >>>>> > >>>>> https://github.com/dspinellis/unix-history-repo/blob/Research-V2/cmd/bas0.s >>>>> > [3] >>>>> > >>>>> https://github.com/dspinellis/unix-history-repo/blob/Research-V6/usr/source/s3/rand.s >>>>> >>>>