From dmg Thu Aug 7 08:30 EDT 1986 Corrections to [ds]para.f, paranoia.[pc] (producing versions dated 31 July 1986): all: some printing corrections. [ds]para.f: R4 initialized arg SEROUS added to SQRERR() paranoia.c: "One + Radix + E9" changed to "One + Radix * E9" near line 1650 "...Q, Y);" changed to "...Q, Y2);" near line 1407 added "RSqrt = Other;" near line 1084 "while (I < 10)" changed to "while (I < NoTrials)" near line 1001 logic for test of -0.0 corrected paranoia.p: changed "Radix + E9" to "Radix * E9" near line 2018 changed "if (I = 1)" to "if (I = 0)" near line 1981 corrected logic around lines 1938-1950 so on friendly machines one can simply enter a large value of N changed "' Y = ', Y, " to "'Y = ', Y2, " near line 1717 omitted "if Radix = - 100 then begin" near lines 1475-1476 omitted balancing end near line 1543 added "RSqrt := Other;" hear line 1339 "10" changed to "NoTrials" in "while (I < 10) and Continue do" near line 1238 logic for test of -0.0 corrected added logic to pow() so (neg)^(int) works new logic for LargeTrunc (from dgh; necessity unclear) From dmg Thu Feb 25 13:53:45 EST 1988 [sd]para.f: bug [reported by Jim Kirkpatrick] in FORMAT labelled 4815 fixed; A2 changed to A8 in a few related FORMATs. paranoia.p: test distinguishing between FLAW and DEFECT for unbalanced exponent range corrected; (FLAW and DEFECT were interchanged). Time stamp stepped. From dmg Tue Feb 15 14:24:00 EST 1989 paranoia.[pc]: bug repaired in computation of overflow threshold on machines that trap on overflow. This computation is now analogous to that in the Fortran versions. Comments added to paranoia.p making it easily split into the "units" needed by newer versions of TURBO Pascal. From dmg Sun Jan 19 23:23:02 EST 1992 paranoia.c: adjusted to have Standard (ANSI/ISO) C and C++ headers; use -DKR_headers or insert #define KR_headers at the top if you have an old-style C compiler. From dmg Wed Nov 25 16:22:10 EST 1992 paranoia.c: pass the correct final argument (Y2 rather than Y) in printf("should afflict the expression.... and guard against SIGFPE in the following POW invocation. Omit a superfluous "PrintIfNPositive(); N = 0;" after Milestone 90. Wed Mar 1 08:41:44 EST 1995 paranoia.c: change line 447 from "U1 = 0.001;" to "U2 = 0.001;". Wed Jun 3 15:25:57 EDT 1998 paranoia.c: in line 1088, change "(I > 0) || (Radix == Q * Q)" to "!(I > 0 || Radix == Q * Q)". paranoia.p: in line 1361, change "(I > 0) or (Radix = Q * Q)" to "not ((I > 0) or (Radix = Q * Q))". Thanks to David Chandler for pointing out these departures from paranoia.b (the BASIC version).