home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume7 / minit.p1 < prev    next >
Text File  |  1989-08-05  |  3KB  |  120 lines

  1. Newsgroups: comp.sources.misc
  2. subject: v07i118: minit linear programming package, Patch 1
  3. From: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
  4. Reply-To: badri@ee.rochester.edu (Badri Lokanathan )
  5.  
  6. Posting-number: Volume 7, Issue 118
  7. Submitted-by: badri@ee.rochester.edu (Badri Lokanathan )
  8. Archive-name: minit.p1
  9.  
  10. A few bugs were reported in the distribution version of minit.
  11. On checking my archives, I found that the version used in my application
  12. had these fixes, but not the standalone version that I had archived
  13. separately. My apologies, the bug report follows.
  14. ----------------------------------------------------------------------------
  15. Date: Fri, 4 Aug 89 22:43:03 EDT
  16. From: elsie!ado@ncifcrf.gov (Arthur David Olson)
  17. Message-Id: <8908050243.AA18767@elsie>
  18. To: badri@ee.rochester.edu
  19. Subject: minit
  20. Status: ORS
  21.  
  22. Thanks for contributing the linear programming code to comp.sources.misc--
  23. it came along the very day I realized that a particular problem of mine
  24. was amenable to linear programming!
  25.  
  26. In using the code I discovered a few problems; differences are attached.
  27. Three problems:
  28.     1.  When reallocating the "e" array because of an increase in
  29.         "MS", the code failed to remember the old size of the array
  30.         so it would know where to begin when allocating new elements.
  31.     2.  When reallocating the "e" array because of an increase in
  32.         ""S", the code would set
  33.         *tmp = realloc(tmp, ... 
  34.         rather than (correctly) setting
  35.         *tmp = realloc(*tmp, ...
  36.     3.  In code that was supposed to zero out the "x" and "w"
  37.         result arrays, a typo resulted in zeroing out the "x"
  38.         array twice.
  39.  
  40.                 --ado
  41.  
  42. *** 1.1/minit.c    Fri Aug  4 22:36:30 1989
  43. --- 1/minit.c    Fri Aug  4 22:36:31 1989
  44. ***************
  45. *** 155,162 ****
  46. --- 155,163 ----
  47.   
  48.       if(M + 1 > MS)
  49.       {
  50.           /* Need to reallocate space. */
  51. +         i = MS;
  52.           MS = M + 1;
  53.           if(!(jmax = (int *) realloc((char *)jmax,
  54.                   (unsigned)(MS*sizeof(int)))))
  55.               return(0);
  56. ***************
  57. *** 176,184 ****
  58.           if(!(e=(float **) realloc((char *) e,
  59.                   (unsigned)(MS*sizeof(float *)))))
  60.               return(0);
  61.   
  62. !         for(tmp = e + m, i = 0; i < MS; i++)
  63.               if(!(*(tmp++)=(float *)
  64.                       malloc((unsigned)(LS*sizeof(float)))))
  65.                   return(0);
  66.       }
  67. --- 177,185 ----
  68.           if(!(e=(float **) realloc((char *) e,
  69.                   (unsigned)(MS*sizeof(float *)))))
  70.               return(0);
  71.   
  72. !         for(tmp = e + i; i < MS; i++)
  73.               if(!(*(tmp++)=(float *)
  74.                       malloc((unsigned)(LS*sizeof(float)))))
  75.                   return(0);
  76.       }
  77. ***************
  78. *** 198,206 ****
  79.                   (unsigned)(LS*sizeof(float)))))
  80.               return(0);
  81.   
  82.           for(tmp = e, i = 0; i < MS; tmp++, i++)
  83. !             if(!(*tmp=(float *) realloc((char *) tmp,
  84.                       (unsigned)(LS*sizeof(float)))))
  85.                   return(0);
  86.       }
  87.   
  88. --- 199,207 ----
  89.                   (unsigned)(LS*sizeof(float)))))
  90.               return(0);
  91.   
  92.           for(tmp = e, i = 0; i < MS; tmp++, i++)
  93. !             if(!(*tmp=(float *) realloc((char *) *tmp,
  94.                       (unsigned)(LS*sizeof(float)))))
  95.                   return(0);
  96.       }
  97.   
  98. ***************
  99. *** 384,392 ****
  100.       for(i = 0; i < n; i++)
  101.           x[i] = 0.0;
  102.   
  103.       for(j = 0; j < m; j++)
  104. !         x[j] = 0.0;
  105.   
  106.       for(i = 1; i < m + 1; i++)
  107.       {
  108.           if(chk[i] >= n)
  109. --- 385,393 ----
  110.       for(i = 0; i < n; i++)
  111.           x[i] = 0.0;
  112.   
  113.       for(j = 0; j < m; j++)
  114. !         w[j] = 0.0;
  115.   
  116.       for(i = 1; i < m + 1; i++)
  117.       {
  118.           if(chk[i] >= n)
  119.  
  120.