Ignore:
Timestamp:
2004-11-29T15:04:28+13:00 (20 years ago)
Author:
kjdon
Message:

Added the changes from Emanuel Dejanu (Simple Words) - mostly efficiency changes. For example, changing i++ to ++i, delete xxx to delete []xxx, some stuff to do with UCArrays...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/src/mgpp/text/mgpp_compression_dict.cpp

    r3015 r8691  
    233233  NTOHD(csh.num_bytes);
    234234
    235   for (i = 0; i < 2; i++)
     235  for (i = 0; i < 2; ++i)
    236236    {
    237237      frags_stats_header fsh;
     
    253253      wd = Words[i] = (DictWordData *) Xmalloc (sizeof (DictWordData) * Num[i]);
    254254      unsigned int j;
    255       for (j = 0; j < Num[i]; j++, wd++)
     255      for (j = 0; j < Num[i]; ++j, ++wd)
    256256    {
    257257      int len;
     
    306306  dd->chars = 0;
    307307  wd = dd->wd;
    308   for (i = 0; i < dd->num_wds; i++, wd++)
     308  for (i = 0; i < dd->num_wds; ++i, ++wd)
    309309    dd->chars += (*wd)->word[0];
    310310}
     
    317317  Alloc_keep_discard ();
    318318  keep[0].num_wds = Num[0];
    319   for (i = 0; i < Num[0]; i++)
     319  for (i = 0; i < Num[0]; ++i)
    320320    keep[0].wd[i] = Words[0] + i;
    321321  keep[1].num_wds = Num[1];
    322   for (i = 0; i < Num[1]; i++)
     322  for (i = 0; i < Num[1]; ++i)
    323323    keep[1].wd[i] = Words[1] + i;
    324324  SortAndCount_DictData (&keep[0]);
     
    367367  num = Num[0] + Num[1];
    368368  wd = (DictWordData **) Xmalloc (num * sizeof (DictWordData *));
    369   for (i = 0; (unsigned int)i < Num[0]; i++)
     369  for (i = 0; (unsigned int)i < Num[0]; ++i)
    370370    wd[i] = Words[0] + i;
    371   for (i = 0; (unsigned int)i < Num[1]; i++)
     371  for (i = 0; (unsigned int)i < Num[1]; ++i)
    372372    wd[i + Num[0]] = Words[1] + i;
    373373
     
    390390    }
    391391
    392   for (i = 0; i < num; i++)
     392  for (i = 0; i < num; ++i)
    393393    {
    394394      DictWordData *word = wd[i];
     
    438438  memset (char_freqs, '\0', sizeof (char_freqs));
    439439  memset (len_freqs, '\0', sizeof (len_freqs));
    440   for (i = 0; i < num; i++, wd++)
     440  for (i = 0; i < num; ++i, ++wd)
    441441    {
    442442      u_long freq = (*wd)->documents();
     
    446446      len_freqs[idx][len] += freq;
    447447      escape[idx] += freq;
    448       for (; len; len--, buf++)
     448      for (; len; --len, ++buf)
    449449    char_freqs[idx][(u_long) (*buf)] += freq;
    450450    }
     
    471471  int j;
    472472
    473   for (j = 0; j < num; j++, word++)
     473  for (j = 0; j < num; ++j, ++word)
    474474    {
    475475      float   cbc, wbc;
     
    480480
    481481      cbc = len_lens[idx][len];
    482       for (; len; len--, buf++)
     482      for (; len; --len, ++buf)
    483483    cbc += char_lens[idx][(u_long) (*buf)];
    484484
     
    585585
    586586
    587   for (i = 0; (unsigned int)i < Num[0]; i++)
     587  for (i = 0; (unsigned int)i < Num[0]; ++i)
    588588    discard_heap[i] = Words[0] + i;
    589   for (i = 0; (unsigned int)i < Num[1]; i++)
     589  for (i = 0; (unsigned int)i < Num[1]; ++i)
    590590    discard_heap[i + Num[0]] = Words[1] + i;
    591591
     
    600600      keep_heap[keep_num++] = word;
    601601      freqs_trans[KIND (word)] += word->documents();
    602       num_trans++;
     602      ++num_trans;
    603603    }
    604604
     
    663663      heap_build (keep_heap, sizeof (keep_heap), keep_num, SmallSaving);
    664664      recalc_reqd = 0;
    665       recalcs++;
     665      ++recalcs;
    666666    }
    667667    }
     
    669669  Alloc_keep_discard ();
    670670
    671   for (i = 0; i < discard_num; i++)
     671  for (i = 0; i < discard_num; ++i)
    672672    {
    673673      DictWordData *word = discard_heap[i];
     
    676676      discard[idx].wd[discard[idx].num_wds++] = word;
    677677    }
    678   for (i = 0; i < keep_num; i++)
     678  for (i = 0; i < keep_num; ++i)
    679679    {
    680680      DictWordData *word = keep_heap[i];
     
    724724  HTONUL(tmp.dict_type);
    725725  HTONUL(tmp.novel_method);
    726   for (i = 0; i < TEXT_PARAMS; i++)
     726  for (i = 0; i < TEXT_PARAMS; ++i)
    727727    HTONUL(tmp.params[i]);
    728728  HTONUL(tmp.num_words[0]);
     
    741741  unsigned int i;
    742742  u_char *curr, *prev = NULL;
    743   for (i = 0; i < dd->num_wds; i++)
     743  for (i = 0; i < dd->num_wds; ++i)
    744744    {
    745745      int len;
     
    762762{
    763763  unsigned int i, us;
    764   for (us = i = 0; i < dd->num_wds; i++)
     764  for (us = i = 0; i < dd->num_wds; ++i)
    765765    us += dd->wd[i]->word[0];
    766766  return us;
     
    783783    FatalError (1, "Unable to allocate memory for freqs");
    784784
    785   for (i = 0; (unsigned)i < dd->num_wds; i++)
     785  for (i = 0; (unsigned)i < dd->num_wds; ++i)
    786786    {
    787787      freqs[i] = dd->wd[i]->documents();
     
    792792    FatalError (1, "Unable to allocate memory for huffman data");
    793793
    794   delete (freqs);
     794  delete []freqs;
    795795  freqs = NULL;
    796796
     
    813813  mem_reqd = 0;
    814814
    815   for (i = 0; (unsigned)i < dd->num_wds; i++)
     815  for (i = 0; (unsigned)i < dd->num_wds; ++i)
    816816    {
    817817      int codelen = hd->clens[i];
     
    841841      lastword[codelen] = word;
    842842#endif
    843       lencounts[codelen]++;
     843      ++lencounts[codelen];
    844844    }
    845845
    846846  /* [RPAP - Jan 97: Endian Ordering] */
    847   for (i = hd->mincodelen; i < hd->maxcodelen + 1; i++)
     847  for (i = hd->mincodelen; i < hd->maxcodelen + 1; ++i)
    848848    HTONUL(huff_words_size[i]);
    849849
     
    852852
    853853  /* [RPAP - Jan 97: Endian Ordering] */
    854   for (i = hd->mincodelen; i < hd->maxcodelen + 1; i++)
     854  for (i = hd->mincodelen; i < hd->maxcodelen + 1; ++i)
    855855    NTOHUL(huff_words_size[i]);
    856856
    857857  Write_words (f, dd);
    858858
    859   delete hd->clens;
     859  delete []hd->clens;
    860860  delete hd;
    861861
     
    876876  memset (freqs, '\0', sizeof (freqs));
    877877
    878   for (j = 0; j < dd->num_wds; j++, wd++)
     878  for (j = 0; j < dd->num_wds; ++j, ++wd)
    879879    {
    880880      u_char *buf = (*wd)->word;
    881881      int len = *buf++;
    882       for (; len; len--, buf++)
     882      for (; len; --len, ++buf)
    883883    freqs[(u_long) (*buf)] += (*wd)->documents();
    884884    }
    885885
    886886  if (!zero_freq_permitted)
    887     for (j = 0; j < 256; j++)
     887    for (j = 0; j < 256; ++j)
    888888      if (!freqs[j] && PESINAWORD (j) == words)
    889889    freqs[j] = 1;
     
    895895    FatalError (1, "Unable to write huffman data");
    896896
    897   delete hd->clens;
     897  delete []hd->clens;
    898898  delete hd;
    899899}
     
    912912  memset (freqs, '\0', sizeof (freqs));
    913913
    914   for (j = 0; j < dd->num_wds; j++, wd++)
     914  for (j = 0; j < dd->num_wds; ++j, ++wd)
    915915    freqs[(*wd)->word[0]] += (*wd)->documents();
    916916
    917917  if (!zero_freq_permitted)
    918     for (j = 0; j < 16; j++)
     918    for (j = 0; j < 16; ++j)
    919919      if (!freqs[j])
    920920    freqs[j] = 1;
     
    927927
    928928
    929   delete hd->clens;
     929  delete []hd->clens;
    930930  delete hd;
    931931}
     
    958958  Write_cdh (f, &cdh);
    959959
    960   for (i = 0; i < 2; i++)
     960  for (i = 0; i < 2; ++i)
    961961    switch (type)
    962962      {
     
    975975          esc.word = (u_char *) "";
    976976          keep[i].wd[keep[i].num_wds++] = &esc;
    977           for (j = 0; (unsigned)j < discard[i].num_wds; j++)
     977          for (j = 0; (unsigned)j < discard[i].num_wds; ++j)
    978978        esc.docCount += discard[i].wd[j]->documents();
    979979          if (!esc.docCount)
    980         esc.docCount++;
     980        ++esc.docCount;
    981981          mem_reqd += Write_data (f, &keep[i], lookback);
    982982        }
     
    994994          esc.word = (u_char *) "";
    995995          keep[i].wd[keep[i].num_wds++] = &esc;
    996           for (j = 0; (unsigned)j < all[i].num_wds; j++)
     996          for (j = 0; (unsigned)j < all[i].num_wds; ++j)
    997997        if (all[i].wd[j]->documents() == 1)
    998           esc.docCount++;
     998          ++esc.docCount;
    999999          if (!esc.docCount)
    1000         esc.docCount++;
     1000        ++esc.docCount;
    10011001          mem_reqd += Write_data (f, &keep[i], lookback);
    10021002        }
Note: See TracChangeset for help on using the changeset viewer.