Changeset 15d7992 in git for Singular/kstdfac.cc


Ignore:
Timestamp:
Nov 2, 1999, 6:15:31 PM (24 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
Children:
eedab2da10a67a652d6ceaec8f3eda75972de883
Parents:
09d74fe32549b29b79a4914b54c31135c0ec128a
Message:
*hannes: bug fixes related to facstd


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

Legend:

Unmodified
Added
Removed
  • Singular/kstdfac.cc

    r09d74fe r15d7992  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: kstdfac.cc,v 1.28 1999-11-02 15:19:08 Singular Exp $ */
     4/* $Id: kstdfac.cc,v 1.29 1999-11-02 17:15:31 Singular Exp $ */
    55/*
    66*  ABSTRACT -  Kernel: factorizing alg. of Buchberger
     
    251251    int facdeg=pFDeg(strat->S[si]);
    252252
    253     kTest_S(strat);
     253    kTest(strat);
    254254    ideal fac=singclap_factorize(strat->S[si],NULL,1);
     255    kTest(strat);
    255256#ifndef HAVE_LIBFAC_P
    256257    if (fac==NULL)
     
    371372              }
    372373              while (n->Ll >= 0) deleteInL(n->L,&n->Ll,n->Ll,n);
    373               while (n->tl >= 0) { pDelete(&n->T[n->tl].p); n->tl--; }
     374              while (n->tl >= 0)
     375              {
     376                int i=n->sl;
     377                while (i>=0)
     378                {
     379                  if (n->S[i]==n->T[n->tl].p)
     380                  {
     381                    n->T[n->tl].p=NULL; n->S[i]=NULL;
     382                    break;
     383                  }
     384                  i--;
     385                }
     386                pDelete(&n->T[n->tl].p);
     387                n->tl--;
     388              }
    374389              memset(n->Shdl->m,0,IDELEMS(n->Shdl)*sizeof(poly));
    375390              n->sl=-1;
     
    400415              }
    401416              while (n->Ll >= 0) deleteInL(n->L,&n->Ll,n->Ll,n);
    402               while (n->tl >= 0) { pDelete(&n->T[n->tl].p); n->tl--; }
     417              while (n->tl >= 0)
     418              {
     419                int i=n->sl;
     420                while (i>=0)
     421                {
     422                  if (n->S[i]==n->T[n->tl].p)
     423                  {
     424                    n->T[n->tl].p=NULL; n->S[i]=NULL;
     425                    break;
     426                  }
     427                  i--;
     428                }
     429                pDelete(&n->T[n->tl].p);
     430                n->tl--;
     431              }
    403432              memset(n->Shdl->m,0,IDELEMS(n->Shdl)*sizeof(poly));
    404433              n->sl=-1;
     
    440469    if (strat->Ll== 0) strat->interpt=TRUE;
    441470    if (TEST_OPT_DEGBOUND
    442     && ((strat->honey 
     471    && ((strat->honey
    443472        && (strat->L[strat->Ll].ecart+pFDeg(strat->L[strat->Ll].p)>Kstd1_deg))
    444473      || ((!strat->honey) && (pFDeg(strat->L[strat->Ll].p)>Kstd1_deg))))
     
    643672                while (n->Ll >= 0) deleteInL(n->L,&n->Ll,n->Ll,n);
    644673                //if (n->tl >=0) Print("tl:%d|",n->tl);
    645                 while (n->tl >= 0) { pDelete(&n->T[n->tl].p); n->tl--; }
     674                while (n->tl >= 0)
     675                {
     676                  int i=n->sl;
     677                  while (i>=0)
     678                  {
     679                    if (n->S[i]==n->T[n->tl].p)
     680                    {
     681                      n->T[n->tl].p=NULL; n->S[i]=NULL;
     682                      break;
     683                    }
     684                    i--;
     685                  }
     686                  pDelete(&n->T[n->tl].p);
     687                  n->tl--;
     688                }
    646689                memset(n->Shdl->m,0,IDELEMS(n->Shdl)*sizeof(poly));
    647690                n->sl=-1;
     
    672715                }
    673716                while (n->Ll >= 0) deleteInL(n->L,&n->Ll,n->Ll,n);
    674                 while (n->tl >= 0) { pDelete(&n->T[n->tl].p); n->tl--; }
     717                while (n->tl >= 0)
     718                {
     719                  int i=n->sl;
     720                  while (i>=0)
     721                  {
     722                    if (n->S[i]==n->T[n->tl].p)
     723                    {
     724                      n->T[n->tl].p=NULL; n->S[i]=NULL;
     725                      break;
     726                    }
     727                    i--;
     728                  }
     729                  pDelete(&n->T[n->tl].p);
     730                  n->tl--;
     731                }
    675732                memset(n->Shdl->m,0,IDELEMS(n->Shdl)*sizeof(poly));
    676733                n->sl=-1;
     
    684741        }
    685742      } /* for */
     743    kTest(strat);
    686744      for(i=0;i<IDELEMS(fac);i++) fac->m[i]=NULL;
    687745      idDelete(&fac);
Note: See TracChangeset for help on using the changeset viewer.