Changeset d116de5 in git


Ignore:
Timestamp:
Sep 17, 2022, 5:05:30 PM (19 months ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
Children:
64af4704e7419dc5bf9280adb417f0d34f0b6ca2
Parents:
f7c2b38c7fee4700691783a2d80bee341805ebc5
Message:
add id_DelDiv_Sorted0
Location:
libpolys/polys
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • libpolys/polys/simpleideals.cc

    rf7c2b3 rd116de5  
    385385}
    386386
     387/// delete id[j], if LT(j) == coeff*mon*LT(i) (j>i)
     388/// assume LC(j)==NULL or n_Delete==ndDelete
     389static void id_DelDiv_SEV0(ideal id, int k,const ring r)
     390{
     391  int kk = k+1;
     392  long *sev=(long*)omAlloc0(kk*sizeof(long));
     393  while(id->m[k]==NULL) k--;
     394  for (int i=k; i>=0; i--)
     395  {
     396    if(id->m[i]!=NULL)
     397      sev[i]=p_GetShortExpVector(id->m[i],r);
     398  }
     399  for (int i=0; i<k; i++)
     400  {
     401    if (id->m[i] != NULL)
     402    {
     403      poly m_i=id->m[i];
     404      for (int j=i+1; j<=k; j++)
     405      {
     406        if (id->m[j]!=NULL)
     407        {
     408          if (p_LmShortDivisibleBy(m_i, sev[i],r, id->m[j],~sev[j],r))
     409          {
     410            p_LmFree(&id->m[j],r);
     411          }
     412          else if (p_LmShortDivisibleBy(id->m[j],sev[j],r, m_i,~sev[i],r))
     413          {
     414            p_LmFree(&id->m[i],r);
     415            break;
     416          }
     417        }
     418      }
     419    }
     420  }
     421  omFreeSize(sev,kk*sizeof(long));
     422}
     423
     424
    387425/// delete id[j], if LT(j) == coeff*mon*LT(i) and vice versa, i.e.,
    388426/// delete id[i], if LT(i) == coeff*mon*LT(j)
     
    456494  int k = IDELEMS(id)-1;
    457495  id_DelDiv_SEV(id,k,r);
     496}
     497void id_DelDiv_Sorted0(ideal id, const ring r)
     498{
     499  int k = IDELEMS(id)-1;
     500  id_DelDiv_SEV0(id,k,r);
    458501}
    459502
  • libpolys/polys/simpleideals.h

    rf7c2b3 rd116de5  
    111111void id_DelDiv(ideal id, const ring r);
    112112void id_DelDiv_Sorted(ideal id, const ring r);
     113void id_DelDiv_Sorted0(ideal id, const ring r);
    113114BOOLEAN id_IsConstant(ideal id, const ring r);
    114115
Note: See TracChangeset for help on using the changeset viewer.