Changeset e8bfdb9 in git


Ignore:
Timestamp:
Dec 15, 2005, 11:55:51 AM (18 years ago)
Author:
Michael Brickenstein <bricken@…>
Branches:
(u'spielwiese', '5b153614cbc72bfa198d75b1e9e33dab2645d9fe')
Children:
ab716ede84e750ae0b3d8da7f70a9705c259e864
Parents:
4774ab77fcf927d3f53d5f78e7402f921ec0e4b7
Message:
*bricken: further use of bucket->coef


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

Legend:

Unmodified
Added
Removed
  • kernel/kbuckets.cc

    r4774ab re8bfdb9  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: kbuckets.cc,v 1.6 2005-12-15 08:02:26 bricken Exp $ */
     4/* $Id: kbuckets.cc,v 1.7 2005-12-15 10:55:51 bricken Exp $ */
    55
    66#include "mod2.h"
     
    701701  number n=n_Init(1,r);
    702702  if (i <= bucket->buckets_used && bucket->buckets[i] != NULL)
    703   {
     703  {
     704    //if (FALSE){
     705    if ((bucket->coef[i]!=NULL) &&(i>=coef_start)){
     706        number orig_coef=p_GetCoeff(bucket->coef[i],r);
     707        //we take ownership:
     708        p_SetCoeff0(bucket->coef[i],n_Init(0,r),r);
     709        number add_coef=n_Copy(p_GetCoeff(m,r),r);
     710        number gcd=n_Gcd(add_coef, orig_coef,r);
     711       
     712        if (!(n_IsOne(gcd,r))) {
     713            number orig_coef2=n_IntDiv(orig_coef,gcd,r);
     714            number add_coef2=n_IntDiv(add_coef, gcd,r);
     715            n_Delete(&orig_coef,r);
     716            n_Delete(&add_coef,r);
     717            orig_coef=orig_coef2;
     718            add_coef=add_coef2;
     719         
     720            //p_Mult_nn(bucket->buckets[i], orig_coef,r);
     721            n_Delete(&n,r);
     722            n=gcd;
     723           
     724        }
     725       
     726        //assume(n_IsOne(n,r));
     727        number backup=p_GetCoeff(m,r);
     728       
     729        p_SetCoeff0(m,add_coef,r);
     730        bucket->buckets[i]=p_Mult_nn(bucket->buckets[i],orig_coef,r);
     731       
     732        n_Delete(&orig_coef,r);
     733        p_Delete(&bucket->coef[i],r);
     734       
     735
     736        p1 = p_Plus_mm_Mult_qq(bucket->buckets[i], m, p1,
     737                           bucket->buckets_length[i], l1, r);
     738        bucket->buckets[i]=NULL;
     739        l1=bucket->buckets_length[i];
     740        assume(l1==pLength(p1));
     741       
     742        p_SetCoeff(m,backup,r); //deletes add_coef
     743       
     744       
     745    }
     746    else {
     747   
    704748    MULTIPLY_BUCKET(bucket,i);
    705749    p1 = p_Plus_mm_Mult_qq(bucket->buckets[i], m, p1,
     
    709753    bucket->buckets_length[i] = 0;
    710754    i = pLogLength(l1);
    711   }
    712   else
    713   {
     755    }
     756  }
     757  else
     758  {
     759   
    714760    number swap_n=p_GetCoeff(m,r);
    715761   
Note: See TracChangeset for help on using the changeset viewer.