Changeset 53b958 in git for libpolys/polys/sbuckets.cc


Ignore:
Timestamp:
Jul 11, 2017, 3:56:14 PM (7 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'c5facdfddea2addfd91babd8b9019161dea4b695')
Children:
1db9b885833c9bc3c788222ea86a3769214a2cc9
Parents:
209f33816aa1d5cfd9ec07dc5a4859846626d3c8
Message:
add; sBucket_Add_m, sBucket_Merge_m
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libpolys/polys/sbuckets.cc

    r209f33 r53b958  
    152152//
    153153
    154 static void sBucket_Merge_m(sBucket_pt bucket, poly p)
     154void sBucket_Merge_m(sBucket_pt bucket, poly p)
    155155{
    156156  assume(p != NULL && pNext(p) == NULL);
     
    198198}
    199199
    200 void sBucket_Add_p(sBucket_pt bucket, poly p, int length)
     200void sBucket_Add_m(sBucket_pt bucket, poly p)
    201201{
    202202  assume(bucket != NULL);
    203   assume(length <= 0 || length == pLength(p));
    204 
    205   if (p == NULL) return;
    206   if (length <= 0) length = pLength(p);
    207 
    208   int i = LOG2(length);
     203  assume(1 == pLength(p));
     204
     205  int length = 1;
     206
     207  int i = 0; //LOG2(length);
    209208
    210209  while (bucket->buckets[i].p != NULL)
     
    227226}
    228227
     228void sBucket_Add_p(sBucket_pt bucket, poly p, int length)
     229{
     230  assume(bucket != NULL);
     231  assume(length <= 0 || length == pLength(p));
     232
     233  if (p == NULL) return;
     234  if (length <= 0) length = pLength(p);
     235
     236  int i = LOG2(length);
     237
     238  while (bucket->buckets[i].p != NULL)
     239  {
     240    p = p_Add_q(p, bucket->buckets[i].p, length, bucket->buckets[i].length,
     241                bucket->bucket_ring);
     242    bucket->buckets[i].p = NULL;
     243    bucket->buckets[i].length = 0;
     244    if (p==NULL)
     245    {
     246      if (i > bucket->max_bucket) bucket->max_bucket = i;
     247      return;
     248    }
     249    i = LOG2(length);
     250  }
     251
     252  bucket->buckets[i].p = p;
     253  bucket->buckets[i].length = length;
     254  if (i > bucket->max_bucket) bucket->max_bucket = i;
     255}
     256
    229257// Converts SBpoly into a poly and clears bucket
    230258// i.e., afterwards SBpoly == 0
     
    375403  {
    376404    pNext(p) = NULL;
    377     sBucket_Add_p(bucket, p, 1);
     405    sBucket_Add_m(bucket, p);
    378406    p = pn;
    379407    if (p == NULL) break;
Note: See TracChangeset for help on using the changeset viewer.