home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
High Voltage Shareware
/
high1.zip
/
high1
/
DIR22
/
NR200202.ZIP
/
NR202BUG.TXT
< prev
Wrap
Internet Message Format
|
1994-01-31
|
5KB
From jbogumil@pipeline.com Mon Jan 31 19:33 EST 1994
Received: from localhost (jbogumil@localhost) by pipeline.com (8.6.5/8.6.5) id TAA26704 for jbogumil@pipeline.com; Mon, 31 Jan 1994 19:33:42 -0500
Date: Mon, 31 Jan 1994 19:33:42 -0500
From: Jeff Bogumil <jbogumil@pipeline.com>
Message-Id: <199402010033.TAA26704@pipeline.com>
Subject: Bugs Known to Exist in the Current Release
Apparently-To: jbogumil@pipeline.com
Content-Type: text
Content-Length: 4654
Status: O
X-Status:
Numerical Recipes Current Bug Reports
This file lists known or suspected bugs that were reported or
discovered after the deadline for the current release of Numerical
Recipes. Not all the reports listed here are fully validated, so this
listing should not be relied on as definitive. All the entries here
will be further investigated before the next release. However, users
of the current release who encounter bugs may wish to see if their
bugs are already in this listing and, if so, whether they have
additional information that may be useful for a fix. (If so, we
encourage email reports to "bugs@nr.com".)
NOTE THAT THIS FILE DOES NOT INCLUDE BUGS ALREADY FIXED IN THE CURRENT
RELEASE. IF YOU WANT INFORMATION ON THOSE, LOOK AT THE PATCH FILES
ELSEWHERE IN THIS DIRECTORY TREE.
*****
bsstep.c and stifbs.c:
in both of these routines, the matrix d is allocated incorectly as
d=matrix(1,KMAXX,1,KMAXX);
Instead, this should read
d=matrix(1,nv,1,KMAXX);
Correspondingly, the deallocation statements
free_matrix(d,1,KMAXX,1,KMAXX);
should instead read
free_matrix(d,1,nv,1,KMAXX);
This bug affects only uses where more than 8 differential equations
are integrated simultaneously. There is no similar bug in the
corresponding FORTRAN routines.
*****
sobseq.f and sobseq.for:
the routine does not properly re-initialize to a different value
of "n" after the first initialization. Fix by adding lines marked +:
do k=1,MAXDIM
+ ix(k)=0
+ enddo
+ in=0
+ if(iv(1).ne.1)return
+ fac=1./2.**MAXBIT
+ do k=1,MAXDIM
do j=1,mdeg(k)
and deleting lines marked -:
enddo
- fac=1./2.**MAXBIT
- in=0
else
*****
sobseq.c:
same problem as above. (You only need to fix this if you initialize
sobseq more than once.) Here is the relevant section of fixed code:
if (*n < 0) {
for (k=1;k<=MAXDIM;k++) ix[k]=0;
in=0;
if (iv[1] != 1) return;
fac=1.0/(1L << MAXBIT);
for (j=1,k=0;j<=MAXBIT;j++,k+=MAXDIM) iu[j] = &iv[k];
for (k=1;k<=MAXDIM;k++) {
for (j=1;j<=mdeg[k];j++) iu[j][k] <<= (MAXBIT-j);
for (j=mdeg[k]+1;j<=MAXBIT;j++) {
ipp=ip[k];
i=iu[j-mdeg[k]][k];
i ^= (i >> mdeg[k]);
for (l=mdeg[k]-1;l>=1;l--) {
if (ipp & 1) i ^= iu[j-l][k];
ipp >>= 1;
}
iu[j][k]=i;
}
}
} else {
im=in++;
ALSO delete the line "in++;" near the end of the routine.
*****
mpmul.c:
the single line
while (b[j] >= RX) b[j] -= RX;
slows the routine down by a huge factor! It should be replaced
by either
b[j] = fmod(t,RX);
or perhaps by the safer
cy = (int) (t/RX);
b[j] -= cy*RX;
This problem is not present in the FORTRAN version.
*****
mppi.c:
for some choices of "n" (the number of bytes of pi to compute),
the routine exits a loop at the wrong time and gets the wrong
answer. The relevant fixed lines of code are:
mm=t[2]-1;
for (j=3;j<=n;j++) {
if (t[j] != mm) break;
}
m=t[n+1]-mm;
if (j <= n || m > 1 || m < -1) {
mpmul(s,pi,&t[1],n,n);
mpmov(pi,&s[1],n);
continue;
}
printf("pi=\n");
This problem is not present in the FORTRAN version.
*****
miser.c:
a purely cosmetic bug is several wrong third arguments in calls to
free_vector; they should all be "ndim". (This is cosmetic, since
free_vector makes no use of its third argument!)
*****
nr.h:
the entry "int igray();" should be "unsigned long igray();".
*****
xvegas.c:
a purely cosmetic bug is that the line
printf("ENTER N,NDIM,XOFF,NCALL,ITMAX,NPRN\n");
should read
printf("ENTER NDIM,XOFF,NCALL,ITMAX,NPRN\n");
*****
nrtodp.dat:
the line beginning "&broyden" on the MS-DOS diskette version
of this file should be changed to begin with "&broydn".
*****
END OF LIST