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:
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:
ᐧ
On Wed, Mar 13, 2024 at 4:25 PM Rob Pike <robpike(a)gmail.com> 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 <rminnich(a)gmail.com> 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 <rminnich(a)gmail.com> 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 <rminnich(a)gmail.com> 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 <jsg(a)jsg.id.au> 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
>>>>
<https://www.tuhs.org/cgi-bin/utree.pl?file=V5/usr/source/s3/rand.sDistributions/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/r…
>>>> > [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…
>>>>
>>>