Changeset a3432c in git for Singular/LIB/primdec.lib


Ignore:
Timestamp:
Sep 24, 1998, 2:09:26 PM (25 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
Children:
2386d98357886538fbc1e8f5e3e458fcb811ff1f
Parents:
56c52a7879fbc6de62cefba1da86b2edf2aadd4c
Message:
minor optimizations


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

Legend:

Unmodified
Added
Removed
  • Singular/LIB/primdec.lib

    r56c52a7 ra3432c  
    1 // $Id: primdec.lib,v 1.26 1998-09-24 09:59:51 Singular Exp $
     1// $Id: primdec.lib,v 1.27 1998-09-24 12:09:26 Singular Exp $
    22////////////////////////////////////////////////////////////////////////////////
    33// primdec.lib                                                                //
     
    1111////////////////////////////////////////////////////////////////////////////////
    1212
    13 version="$Id: primdec.lib,v 1.26 1998-09-24 09:59:51 Singular Exp $";
     13version="$Id: primdec.lib,v 1.27 1998-09-24 12:09:26 Singular Exp $";
    1414info="
    1515LIBRARY: primdec.lib: PROCEDURE FOR PRIMARY DECOMPOSITION
     
    383383   if(size(k1)==size(k2))
    384384   {
    385       for(j=size(k1);j>0;j--)
     385      for(j=ncols(k1);j>0;j--)
    386386      {
    387387         if(leadexp(k1[j])!=leadexp(k2[j]))
     
    401401   if(size(k1)==size(k2))
    402402   {
    403       for(j=size(k1);j>0;j--)
     403      for(j=ncols(k1);j>0;j--)
    404404      {
    405405         if(leadexp(k1[j])!=leadexp(k2[j]))
     
    431431
    432432  ideal i=maxideal(1);
    433   int k=size(i);
     433  int k=ncols(i);
    434434  i[k]=0;
    435   i=randomid(i,size(i),b);
     435  i=randomid(i,ncols(i),b);
    436436  ideal ires=maxideal(1);
    437437  ires[k]=i[1]+var(k);
     
    472472      else
    473473      {
    474          while (lead(i[m])/var(n-1)==0)
    475         {
    476             m=m+1;
    477          }
    478          m=m-1;
     474        while (lead(i[m])/var(n-1)==0)
     475        {
     476          m=m+1;
     477        }
     478        m=m-1;
    479479      }
    480480      //check whether i[m] =(c*var(n)+h)^e modulo prm for some
     
    482482      //if not (0) is returned, else var(n)+h is added to prm
    483483
    484          e=deg(lead(i[m]));
    485          t=leadcoef(i[m])*e*var(n)+(i[m]-lead(i[m]))/var(n)^(e-1);
    486 
    487          i[m]=poly(e)^e*leadcoef(i[m])^(e-1)*i[m];
    488 
    489          if (reduce(i[m]-t^e,prm,1) !=0)
    490          {
    491            return(ideal(0));
    492          }
    493          h=interred(t);
    494          t=h[1];
     484      e=deg(lead(i[m]));
     485      t=leadcoef(i[m])*e*var(n)+(i[m]-lead(i[m]))/var(n)^(e-1);
     486
     487      i[m]=poly(e)^e*leadcoef(i[m])^(e-1)*i[m];
     488
     489      if (reduce(i[m]-t^e,prm,1) !=0)
     490      {
     491        return(ideal(0));
     492      }
     493      h=interred(t);
     494      t=h[1];
    495495
    496496      prm = prm,t;
     
    530530         continue;
    531531      }
    532 
    533532
    534533      if(size(l[2*i])==0)
Note: See TracChangeset for help on using the changeset viewer.