Changeset a9cf54 in git
- Timestamp:
- May 10, 2000, 2:56:13 PM (23 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- b15ad03af9e72370358f8fc319adab20d9bb7b3f
- Parents:
- 84d6c3acfb225a96db6c41d288dc83808f18b486
- 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:10pfister Exp $1 // $Id: primdec.lib,v 1.60 2000-05-10 12:56:13 pfister Exp $ 2 2 /////////////////////////////////////////////////////////////////////////////// 3 3 // primdec.lib // … … 11 11 /////////////////////////////////////////////////////////////////////////////// 12 12 13 version="$Id: primdec.lib,v 1. 59 2000-05-09 13:26:10pfister Exp $";13 version="$Id: primdec.lib,v 1.60 2000-05-10 12:56:13 pfister Exp $"; 14 14 info=" 15 15 LIBRARY: primdec.lib PROCEDURES FOR PRIMARY DECOMPOSITION … … 1774 1774 list eq; 1775 1775 intvec w; 1776 int n ;1776 int n,ra; 1777 1777 ideal te=1; 1778 1778 int a=attrib(i,"isSB"); 1779 1779 int homo=homog(i); 1780 if( typeof(attrib(i,"isRadical"))=="int" ) 1781 { 1782 if(attrib(i,"isRadical")==1) 1783 { 1784 ra=1; 1785 } 1786 } 1780 1787 if(size(#)!=0) 1781 1788 { … … 1808 1815 list equ,equi,indep; 1809 1816 int b; 1817 if((size(reduce(te,j))==0)&&(deg(te[1])>0)) 1818 { 1819 setring P; 1820 return(eq); 1821 } 1810 1822 if(homo==1) 1811 1823 { … … 1818 1830 if ((dim(j)==-1)||(size(j)==0)||(nvars(basering)==1)||(dim(j)==0)) 1819 1831 { 1820 if((size(reduce(te,j))==0)&&(deg(te[1])>0))1821 {1822 setring P;1823 return(eq);1824 }1825 1832 setring P; 1826 1833 i=imap(gnir,j); … … 1861 1868 kill quring; 1862 1869 list l=minSat(j,h); 1863 1864 j=std(j,l[2]);1865 1870 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 } 1866 1884 if(size(reduce(te,l[1]))!=0) 1867 1885 { 1868 1886 te=intersect(te,l[1]); 1869 1887 equi=equidim(j,te); 1870 if( dim(l[1])==dim(j))1888 if((dim(l[1])==dim(j))&&(size(equi)>0)) 1871 1889 { 1872 1890 equi[size(equi)]=intersect(l[1],equi[size(equi)]); … … 1946 1964 { 1947 1965 setring P; 1948 eq=i; 1949 return(eq); 1966 return(i); 1950 1967 } 1951 1968 1952 1969 indep=maxIndependSet(j); 1953 string va=string(maxideal(1)); 1970 1954 1971 execute "ring gnir1 = ("+charstr(basering)+"),("+indep[1][1]+"),(" 1955 1972 +indep[1][2]+");"; 1956 execute "map phi=gnir,"+va+";";1957 1973 if(homo==1) 1958 1974 { 1959 ideal j=std( phi(i),hil,w);1975 ideal j=std(imap(gnir,i),hil,w); 1960 1976 } 1961 1977 else 1962 1978 { 1963 ideal j=groebner( phi(i));1979 ideal j=groebner(imap(gnir,i)); 1964 1980 } 1965 1981 string quotring=prepareQuotientring(nvars(basering)-indep[1][3]); … … 1973 1989 h[n]=leadcoef(j[n]); 1974 1990 } 1975 1976 1991 setring gnir; 1977 1992 ideal h=imap(quring,h); 1978 1993 kill quring; 1979 1980 1994 list l=minSat(j,h); 1981 1995 equ=l[1]; 1982 1996 attrib(equ,"isSB",1); 1983 1997 1984 1998 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); 1991 2002 equ=intersect(equ,equi); 1992 2003 }
Note: See TracChangeset
for help on using the changeset viewer.