home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR22 / NR200202.ZIP / NR202BUG.TXT < prev   
Internet Message Format  |  1994-01-31  |  5KB

  1. From jbogumil@pipeline.com Mon Jan 31 19:33 EST 1994
  2. 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
  3. Date: Mon, 31 Jan 1994 19:33:42 -0500
  4. From: Jeff Bogumil <jbogumil@pipeline.com>
  5. Message-Id: <199402010033.TAA26704@pipeline.com>
  6. Subject: Bugs Known to Exist in the Current Release
  7. Apparently-To: jbogumil@pipeline.com
  8. Content-Type: text
  9. Content-Length: 4654
  10. Status: O
  11. X-Status: 
  12.  
  13. Numerical Recipes Current Bug Reports
  14.  
  15. This file lists known or suspected bugs that were reported or
  16. discovered after the deadline for the current release of Numerical
  17. Recipes.  Not all the reports listed here are fully validated, so this
  18. listing should not be relied on as definitive.  All the entries here
  19. will be further investigated before the next release.  However, users
  20. of the current release who encounter bugs may wish to see if their
  21. bugs are already in this listing and, if so, whether they have
  22. additional information that may be useful for a fix.  (If so, we
  23. encourage email reports to "bugs@nr.com".)
  24.  
  25. NOTE THAT THIS FILE DOES NOT INCLUDE BUGS ALREADY FIXED IN THE CURRENT
  26. RELEASE.  IF YOU WANT INFORMATION ON THOSE, LOOK AT THE PATCH FILES
  27. ELSEWHERE IN THIS DIRECTORY TREE.
  28.  
  29. *****
  30. bsstep.c and stifbs.c:
  31.      in both of these routines, the matrix d is allocated incorectly as
  32.           d=matrix(1,KMAXX,1,KMAXX);
  33.      Instead, this should read
  34.           d=matrix(1,nv,1,KMAXX);
  35.      Correspondingly, the deallocation statements
  36.           free_matrix(d,1,KMAXX,1,KMAXX);
  37.      should instead read
  38.           free_matrix(d,1,nv,1,KMAXX);
  39.      This bug affects only uses where more than 8 differential equations
  40.      are integrated simultaneously.  There is no similar bug in the
  41.      corresponding FORTRAN routines.
  42. *****
  43. sobseq.f and sobseq.for:
  44.      the routine does not properly re-initialize to a different value
  45.      of "n" after the first initialization.  Fix by adding lines marked +:
  46.                 do k=1,MAXDIM
  47. +                       ix(k)=0
  48. +               enddo
  49. +               in=0
  50. +               if(iv(1).ne.1)return
  51. +               fac=1./2.**MAXBIT
  52. +               do k=1,MAXDIM
  53.                         do j=1,mdeg(k)
  54. and deleting lines marked -:
  55.                 enddo
  56. -               fac=1./2.**MAXBIT
  57. -               in=0
  58.         else
  59. *****
  60. sobseq.c:
  61.      same problem as above.  (You only need to fix this if you initialize
  62.      sobseq more than once.)  Here is the relevant section of fixed code:
  63.         if (*n < 0) {
  64.                 for (k=1;k<=MAXDIM;k++) ix[k]=0;
  65.                 in=0;
  66.                 if (iv[1] != 1) return;
  67.                 fac=1.0/(1L << MAXBIT);
  68.                 for (j=1,k=0;j<=MAXBIT;j++,k+=MAXDIM) iu[j] = &iv[k];
  69.                 for (k=1;k<=MAXDIM;k++) {
  70.                         for (j=1;j<=mdeg[k];j++) iu[j][k] <<= (MAXBIT-j);
  71.                         for (j=mdeg[k]+1;j<=MAXBIT;j++) {
  72.                                 ipp=ip[k];
  73.                                 i=iu[j-mdeg[k]][k];
  74.                                 i ^= (i >> mdeg[k]);
  75.                                 for (l=mdeg[k]-1;l>=1;l--) {
  76.                                         if (ipp & 1) i ^= iu[j-l][k];
  77.                                         ipp >>= 1;
  78.                                 }
  79.                                 iu[j][k]=i;
  80.                         }
  81.                 }
  82.         } else {
  83.                 im=in++;
  84.      ALSO delete the line "in++;" near the end of the routine.
  85. *****
  86. mpmul.c:
  87.      the single line
  88.          while (b[j] >= RX) b[j] -= RX;
  89.      slows the routine down by a huge factor!  It should be replaced
  90.      by either
  91.          b[j] = fmod(t,RX);
  92.      or perhaps by the safer
  93.          cy = (int) (t/RX);
  94.          b[j] -= cy*RX;
  95.      This problem is not present in the FORTRAN version.
  96. *****
  97. mppi.c:
  98.      for some choices of "n" (the number of bytes of pi to compute),
  99.      the routine exits a loop at the wrong time and gets the wrong
  100.      answer.  The relevant fixed lines of code are:
  101.                 mm=t[2]-1;
  102.                 for (j=3;j<=n;j++) {
  103.                         if (t[j] != mm) break;
  104.                 }
  105.                 m=t[n+1]-mm;
  106.                 if (j <= n || m > 1 || m < -1) {
  107.                                 mpmul(s,pi,&t[1],n,n);
  108.                                 mpmov(pi,&s[1],n);
  109.                                 continue;
  110.                 }
  111.                 printf("pi=\n");
  112.      This problem is not present in the FORTRAN version.
  113. *****
  114. miser.c:
  115.      a purely cosmetic bug is several wrong third arguments in calls to
  116.      free_vector; they should all be "ndim".  (This is cosmetic, since
  117.      free_vector makes no use of its third argument!)
  118. *****
  119. nr.h:
  120.      the entry "int igray();" should be "unsigned long igray();".
  121. *****
  122. xvegas.c:
  123.      a purely cosmetic bug is that the line
  124.                 printf("ENTER N,NDIM,XOFF,NCALL,ITMAX,NPRN\n");
  125.      should read
  126.                 printf("ENTER NDIM,XOFF,NCALL,ITMAX,NPRN\n");
  127. *****
  128. nrtodp.dat:
  129.      the line beginning "&broyden" on the MS-DOS diskette version
  130.      of this file should be changed to begin with "&broydn".
  131. *****
  132. END OF LIST
  133.  
  134.  
  135.