Changeset 0b7fb8 in git
- Timestamp:
- Oct 27, 2014, 9:25:39 PM (9 years ago)
- Branches:
- (u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
- Children:
- 90fa9df2be3b1096c1cca744ca7a710000600938
- Parents:
- 5bcb3f89f4bab03bd5ec200621f88531ed29cd0b
- git-author:
- Oleksandr Motsak <motsak@mathematik.uni-kl.de>2014-10-27 21:25:39+01:00
- git-committer:
- Oleksandr Motsak <motsak@mathematik.uni-kl.de>2014-10-31 17:55:06+01:00
- Location:
- libpolys/polys
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
libpolys/polys/sbuckets.cc
r5bcb3f r0b7fb8 57 57 { return bucket->bucket_ring; } 58 58 59 60 bool sIsEmpty(const sBucket_pt bucket) 61 { 62 for(int i = 0; i < (BIT_SIZEOF_LONG - 3); i++) 63 { 64 assume( i < (BIT_SIZEOF_LONG - 3) ); 65 assume( pLength(bucket->buckets[i].p) == bucket->buckets[i].length ); 66 67 if( bucket->buckets[i].p != NULL ) 68 return false; 69 70 if( bucket->buckets[i].length != 0 ) 71 return false; 72 } 73 74 return( bucket->max_bucket == 0 ); 75 76 } 77 78 59 79 /// Copy sBucket non-intrusive!!! 60 80 sBucket_pt sBucketCopy(const sBucket_pt bucket) … … 64 84 sBucket_pt newbucket = sBucketCreate(r); 65 85 66 for(int i = 0; bucket->buckets[i].p != NULL; i++) 67 { 86 newbucket->max_bucket = bucket->max_bucket; 87 88 for(int i = 0; i <= bucket->max_bucket; i++) 89 { 68 90 assume( i < (BIT_SIZEOF_LONG - 3) ); 69 91 assume( pLength(bucket->buckets[i].p) == bucket->buckets[i].length ); … … 259 281 while (bucket->buckets[i].p == NULL) 260 282 { 283 assume( bucket->buckets[i].length == 0 ); 261 284 i++; 262 285 if (i > bucket->max_bucket) goto done; … … 265 288 pr = bucket->buckets[i].p; 266 289 lr = bucket->buckets[i].length; 290 291 assume( pr != NULL && (lr > 0) ); 292 267 293 bucket->buckets[i].p = NULL; 268 294 bucket->buckets[i].length = 0; … … 273 299 if (bucket->buckets[i].p != NULL) 274 300 { 301 assume( bucket->buckets[i].length == pLength(bucket->buckets[i].p) ); 302 275 303 pr = p_Add_q(pr, bucket->buckets[i].p, lr, bucket->buckets[i].length, 276 304 bucket->bucket_ring); 305 277 306 bucket->buckets[i].p = NULL; 278 307 bucket->buckets[i].length = 0; 279 308 } 280 i++; 281 } 282 283 done: 309 310 assume( bucket->buckets[i].p == NULL ); 311 assume( bucket->buckets[i].length == 0 ); 312 i++; 313 } 314 315 done: 316 284 317 *p = pr; 285 318 *length = lr; 319 286 320 bucket->max_bucket = 0; 287 } 321 322 assume( sIsEmpty(bucket) ); 323 } 324 325 326 288 327 289 328 ///////////////////////////////////////////////////////////////////////////// -
libpolys/polys/sbuckets.h
r5bcb3f r0b7fb8 19 19 20 20 21 21 22 ////////////////////////////////////////////////////////////////////////// 22 23 // Creation/Destruction of buckets … … 24 25 sBucket_pt sBucketCreate(ring r); 25 26 void sBucketDestroy(sBucket_pt *bucket); 26 27 27 28 28 ////////////////////////////////////////////////////////////////////////// … … 35 35 /// Returns bucket ring 36 36 ring sBucketGetRing(const sBucket_pt bucket); 37 38 /// Test whether bucket is empty!? 39 bool sIsEmpty(const sBucket_pt bucket); 40 41 37 42 38 43 /////////////////////////////////////////////////////////////////////////////
Note: See TracChangeset
for help on using the changeset viewer.