Changeset f4b74e2 in git
- Timestamp:
- Feb 1, 2007, 6:24:03 PM (16 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- ec69aa9f2368fd5481b412fc4b4a37844f40d997
- Parents:
- c903a38865fcce626ced071280b6bf975d3d60f8
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/gring.cc
rc903a3 rf4b74e2 7 7 * Author: levandov (Viktor Levandovsky) 8 8 * Created: 8/00 - 11/00 9 * Version: $Id: gring.cc,v 1. 39 2007-01-31 23:51:23 motsak Exp $9 * Version: $Id: gring.cc,v 1.40 2007-02-01 17:24:03 motsak Exp $ 10 10 *******************************************************************/ 11 11 #include "mod2.h" … … 1947 1947 int j; 1948 1948 int s; 1949 intflag;1949 bool flag; 1950 1950 poly p=NULL; 1951 1951 poly q=NULL; … … 1958 1958 int rN=currRing->N; 1959 1959 int iSize=0; 1960 1960 1961 loop 1961 1962 { 1962 flag=0; 1963 K=NULL; 1964 s=idElem(J); 1963 flag = true; // nothing new! 1964 K = NULL; 1965 s = idElem(J); 1966 1965 1967 for (i=0;i<=s-1;i++) 1966 1968 { 1967 1969 p=J->m[i]; 1968 for (j=1;j<=rN;j++) 1970 1971 #ifdef PDEBUG 1972 p_Test(p, currRing); 1973 #if 0 1974 Print("p: "); // ! 1975 p_Write(p, currRing); 1976 #endif 1977 #endif 1978 1979 for (j=1;j<=rN;j++) // for all j = 1..N 1969 1980 { 1970 1981 varj = pOne(); 1971 1982 pSetExp(varj,j,1); 1972 1983 pSetm(varj); 1973 q = pp_Mult_mm(p,varj,currRing); 1984 q = pp_Mult_mm(p,varj,currRing); // q = J[i] * var(j), 1974 1985 pDelete(&varj); 1986 1987 #ifdef PDEBUG 1988 p_Test(p, currRing); 1989 p_Test(q, currRing); 1990 #if 0 1991 Print("Reducing p: "); // ! 1992 p_Write(p, currRing); 1993 1994 Print("With q: "); // ! 1995 p_Write(q, currRing); 1996 #endif 1997 #endif 1998 1975 1999 q = nc_ReduceSPoly(p,q,currRing); 2000 2001 #ifdef PDEBUG 2002 p_Test(q, currRing); 2003 #if 0 2004 Print("Reducing q: "); // ! 2005 p_Write(q, currRing); 2006 2007 Print("With J!\n"); 2008 #endif 2009 #endif 2010 1976 2011 q = kNF(J,currQuotient,q,0,0); 2012 2013 #ifdef PDEBUG 2014 p_Test(q, currRing); 2015 #if 0 2016 Print("=> q: "); // ! 2017 p_Write(q, currRing); 2018 #endif 2019 #endif 2020 1977 2021 if (q!=NULL) 1978 2022 { 1979 if (pIsConstant(q)) 2023 if (pIsConstant(q)) // => return (1)! 1980 2024 { 1981 2025 Q=idInit(1,1); … … 1986 2030 return(Q); 1987 2031 } 1988 flag=1; 2032 2033 flag=false; 1989 2034 Q=idInit(1,1); 1990 2035 Q->m[0]=q; … … 1996 2041 } 1997 2042 } 1998 if (flag ==0)2043 if (flag) // nothing new! 1999 2044 /* i.e. all elements are two-sided */ 2000 2045 { 2001 idDelete(&K);2046 // idDelete(&K); 2002 2047 return(J); 2003 2048 } 2004 2049 /* now we update GrBasis J with K */ 2005 2050 // iSize=IDELEMS(J); 2051 #ifdef PDEBUG 2052 idTest(J); 2053 #if 0 2054 Print("J:"); 2055 idPrint(J); 2056 PrintLn(); 2057 #endif // debug 2058 #endif 2059 2060 2061 2062 #ifdef PDEBUG 2063 idTest(K); 2064 #if 0 2065 Print("+K:"); 2066 idPrint(K); 2067 PrintLn(); 2068 #endif // debug 2069 #endif 2070 2071 2006 2072 iSize=idElem(J); 2007 2073 id_tmp=idSimpleAdd(J,K); 2008 2074 idDelete(&K); 2009 2075 idDelete(&J); 2076 2010 2077 BITSET save_test=test; 2011 test|=Sy_bit(OPT_SB_1); 2012 J=kStd(id_tmp, currQuotient, testHomog,NULL,NULL,0,iSize); 2013 test=save_test; 2078 2079 #if 1 2080 test|=Sy_bit(OPT_SB_1); 2081 J = kStd(id_tmp, currQuotient, testHomog, NULL, NULL, 0, iSize); // J = J + K, J - std 2082 #else 2083 J=kStd(id_tmp, currQuotient,testHomog,NULL,NULL,0,0,NULL); 2084 #endif 2085 test = save_test; 2086 2087 idDelete(&id_tmp); // !!! 2088 2014 2089 idSkipZeroes(J); 2090 2091 #ifdef PDEBUG 2092 idTest(J); 2093 #if 0 2094 Print("J:"); 2095 idPrint(J); 2096 PrintLn(); 2097 #endif // debug 2098 #endif 2099 2100 // bug: 2101 2102 //J:Module of rank 1,real rank 0 and 4 generators. 2103 //generator 0: f 2104 //generator 1: h2+h 2105 //generator 2: eh+e 2106 //generator 3: e2 2107 2108 //+K:Module of rank 1,real rank 0 and 2 generators. 2109 //generator 0: h 2110 //generator 1: e 2111 2112 // =>>>> 2113 2114 //J:Module of rank 1,real rank 0 and 6 generators. 2115 //generator 0: h 2116 //generator 1: f 2117 //generator 2: e 2118 //generator 3: h2+h 2119 //generator 4: eh+e 2120 //generator 5: e2 2121 2122 2123 2124 2015 2125 } 2016 2126 }
Note: See TracChangeset
for help on using the changeset viewer.