Changeset 39e957 in git for kernel/kbuckets.cc


Ignore:
Timestamp:
Dec 19, 2005, 1:11:15 PM (18 years ago)
Author:
Michael Brickenstein <bricken@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
718935a4ec10cf39c554d39d260b570546b0906f
Parents:
bde566f8e3ab304ae39514dbd39106d953e58031
Message:
*bricken: coef buckets improved: kBucketSetLm helper


git-svn-id: file:///usr/local/Singular/svn/trunk@8862 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/kbuckets.cc

    rbde566 r39e957  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: kbuckets.cc,v 1.8 2005-12-16 08:29:15 bricken Exp $ */
     4/* $Id: kbuckets.cc,v 1.9 2005-12-19 12:11:15 bricken Exp $ */
    55
    66#include "mod2.h"
     
    107107        && p_LmCmp(lm, bucket->buckets[i], bucket->bucket_ring) != 1)
    108108    {
    109       dReportError("Bucket %d larger than lm", i);
     109      dReportError("Bucket %d larger or equal than lm", i);
     110      if (p_LmCmp(lm, bucket->buckets[i], bucket->bucket_ring) ==0)
     111      dReportError("Bucket %d equal to lm", i);
    110112      return FALSE;
    111113    }
     
    10481050    number coef=n_Init(0,r);
    10491051    //ATTENTION: will not work correct for GB over ring
    1050     PrintS("CCCCCCCCCCCCC");
     1052    if (TEST_OPT_PROT)
     1053        PrintS("CCCCCCCCCCCCC");
    10511054    for (i=0;i<=MAX_BUCKET;i++){
    10521055        if (i==0)
     
    10701073         }
    10711074    }
    1072     PrintS("SSSSSSSSSSSSS");
     1075    if (TEST_OPT_PROT)
     1076        PrintS("SSSSSSSSSSSSS");
    10731077    for(i=0;i<=MAX_BUCKET;i++){
    10741078        if (bucket->buckets[i]!=NULL)
     
    10831087
    10841088
     1089poly kBucketExtractLmOfBucket(kBucket_pt bucket, int i){
     1090    assume(bucket->buckets[i]!=NULL);
     1091   
     1092    ring r=bucket->bucket_ring;
     1093    poly p=bucket->buckets[i];
     1094    bucket->buckets_length[i]--;
     1095    if (bucket->coef[i]!=NULL){
     1096        poly next=pNext(p);
     1097        if (next==NULL){
     1098            MULTIPLY_BUCKET(bucket,i);
     1099            p=bucket->buckets[i];
     1100            bucket->buckets[i]=NULL;
     1101            return p;
     1102        } else {
     1103            bucket->buckets[i]=next;
     1104            number c=p_GetCoeff(bucket->coef[i],r);
     1105            pNext(p)=NULL;
     1106            p=p_Mult_nn(p,c,r);
     1107            assume(p!=NULL);
     1108            return p;
     1109        }
     1110       
     1111    } else {
     1112       
     1113        bucket->buckets[i]=pNext(bucket->buckets[i]);
     1114        pNext(p)=NULL;
     1115        assume(p!=NULL);
     1116        return p;
     1117    }
     1118   
     1119}
Note: See TracChangeset for help on using the changeset viewer.