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


Ignore:
Timestamp:
May 10, 2000, 2:56:13 PM (24 years ago)
Author:
Gerhard Pfister <pfister@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
b15ad03af9e72370358f8fc319adab20d9bb7b3f
Parents:
84d6c3acfb225a96db6c41d288dc83808f18b486
Message:
bug in equidim gefixed


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

Legend:

Unmodified
Added
Removed
  • Singular/LIB/primdec.lib

    r84d6c3 ra9cf54  
    1 // $Id: primdec.lib,v 1.59 2000-05-09 13:26:10 pfister Exp $
     1// $Id: primdec.lib,v 1.60 2000-05-10 12:56:13 pfister Exp $
    22///////////////////////////////////////////////////////////////////////////////
    33// primdec.lib                                                               //
     
    1111///////////////////////////////////////////////////////////////////////////////
    1212
    13 version="$Id: primdec.lib,v 1.59 2000-05-09 13:26:10 pfister Exp $";
     13version="$Id: primdec.lib,v 1.60 2000-05-10 12:56:13 pfister Exp $";
    1414info="
    1515LIBRARY: primdec.lib   PROCEDURES FOR PRIMARY DECOMPOSITION
     
    17741774  list eq;
    17751775  intvec w;
    1776   int n;
     1776  int n,ra;
    17771777  ideal te=1;
    17781778  int a=attrib(i,"isSB");
    17791779  int homo=homog(i);
     1780  if( typeof(attrib(i,"isRadical"))=="int" )
     1781  {
     1782     if(attrib(i,"isRadical")==1)
     1783     {
     1784        ra=1;
     1785     }
     1786  }
    17801787  if(size(#)!=0)
    17811788  {
     
    18081815  list equ,equi,indep;
    18091816  int b;
     1817  if((size(reduce(te,j))==0)&&(deg(te[1])>0))
     1818  {
     1819    setring P;
     1820    return(eq);
     1821  }
    18101822  if(homo==1)
    18111823  {
     
    18181830  if ((dim(j)==-1)||(size(j)==0)||(nvars(basering)==1)||(dim(j)==0))
    18191831  {
    1820     if((size(reduce(te,j))==0)&&(deg(te[1])>0))
    1821     {
    1822       setring P;
    1823       return(eq);
    1824     }
    18251832    setring P;
    18261833    i=imap(gnir,j);
     
    18611868  kill quring;
    18621869  list l=minSat(j,h);
    1863 
    1864   j=std(j,l[2]);
    18651870  attrib(l[1],"isSB",1);
     1871 
     1872  if(ra==1)
     1873  {
     1874     option(returnSB); 
     1875     j=quotient(j,l[1]);
     1876     option(noreturnSB);
     1877     attrib(j,"isSB",1);
     1878     attrib(j,"isRadical",1);
     1879  }
     1880  else
     1881  {
     1882     j=std(sat(j,l[1])[1]); 
     1883  }
    18661884  if(size(reduce(te,l[1]))!=0)
    18671885  {
    18681886    te=intersect(te,l[1]);
    18691887    equi=equidim(j,te); 
    1870     if(dim(l[1])==dim(j))
     1888    if((dim(l[1])==dim(j))&&(size(equi)>0))
    18711889    {
    18721890      equi[size(equi)]=intersect(l[1],equi[size(equi)]);
     
    19461964  {
    19471965    setring P;
    1948     eq=i;
    1949     return(eq);
     1966    return(i);
    19501967  }
    19511968
    19521969  indep=maxIndependSet(j);
    1953   string va=string(maxideal(1));
     1970
    19541971  execute "ring gnir1 = ("+charstr(basering)+"),("+indep[1][1]+"),("
    19551972                              +indep[1][2]+");";
    1956   execute "map phi=gnir,"+va+";";
    19571973  if(homo==1)
    19581974  {
    1959      ideal j=std(phi(i),hil,w);
     1975     ideal j=std(imap(gnir,i),hil,w);
    19601976  }
    19611977  else
    19621978  {
    1963      ideal j=groebner(phi(i));
     1979     ideal j=groebner(imap(gnir,i));
    19641980  }
    19651981  string quotring=prepareQuotientring(nvars(basering)-indep[1][3]);
     
    19731989     h[n]=leadcoef(j[n]);
    19741990  }
    1975 
    19761991  setring gnir;
    19771992  ideal h=imap(quring,h);
    19781993  kill quring;
    1979 
    19801994  list l=minSat(j,h);
    19811995  equ=l[1];
    19821996  attrib(equ,"isSB",1);
    1983   
     1997 
    19841998  j=std(j,l[2]);
    1985 
    1986   equi=equidimMax(j);
    1987   attrib(equi,"isSB",1);
    1988 
    1989   if(dim(equ)==dim(equi))
    1990   {
     1999  if(dim(equ)==dim(j))
     2000  {
     2001    equi=equidimMax(j);
    19912002    equ=intersect(equ,equi);
    19922003  }
Note: See TracChangeset for help on using the changeset viewer.