Changeset 8912ce in git
- Timestamp:
- Aug 11, 2004, 6:11:40 PM (19 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- 9c561b94547cc2ee1873efed62ed03f1413f500a
- Parents:
- e65fe97407c42bd793157749a8b4dc89f2599006
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/hnoether.lib
re65fe9 r8912ce 1 version="$Id: hnoether.lib,v 1. 39 2004-08-05 15:59:21Singular Exp $";1 version="$Id: hnoether.lib,v 1.40 2004-08-11 16:11:40 Singular Exp $"; 2 2 category="Singularities"; 3 3 info=" … … 2115 2115 display an ideal HNE of the following form: 2116 2116 @example 2117 HNE[1]=-y+[]*z(0)^1+[]*z(0)^2+...+z(0)^<>*z(1)2118 HNE[2]=-x+[]*z(1)^2+...+z(1)^<>*z(2)2119 HNE[3]=[]*z(2)^2+...+z(2)^<>*z(3)2120 ....... ..........................2121 HNE[r+1]=[]*z(r)^2+[]*z(r)^3+......2117 y = []*x^1+[]*x^2 +...+x^<>*z(1) 2118 x = []*z(1)^2+...+z(1)^<>*z(2) 2119 z(1) = []*z(2)^2+...+z(2)^<>*z(3) 2120 ....... .......................... 2121 z(r-1) = []*z(r)^2+[]*z(r)^3+...... 2122 2122 @end example 2123 2123 where @code{x},@code{y} are the first 2 variables of the basering. … … 2181 2181 map holematrix=altring,0; // mappt nur die Monome vom Grad Null 2182 2182 matrix m=holematrix(m); 2183 int i,j; 2184 2185 // lossen: check the last row for finiteness (06/2004) 2186 int rowM=nrows(m); 2187 int colM=ncols(m); 2188 int undef_bd=v[size(v)]; 2189 if ( undef_bd<-1 ){ 2190 for (j=-undef_bd; j<=colM; j++) { m[rowM,j]=0; } 2191 } 2192 2183 2193 //--------------------- Erzeuge Matrix n mit n[i,j]=z(j-1)^i ----------------- 2184 int i; 2185 matrix n[ncols(m)][nrows(m)]; 2186 for (int j=1; j<=nrows(m); j++) { 2187 for (i=1; i<=ncols(m); i++) { n[i,j]=z(j-1)^i; } 2194 matrix n[colM][rowM]; 2195 for (j=1; j<=rowM; j++) { 2196 for (i=1; i<=colM; i++) { n[i,j]=z(j-1)^i; } 2188 2197 } 2189 2198 matrix displaymat=m*n; 2190 2199 ideal HNE; 2191 for (i=1; i<nrows(m); i++) { HNE[i]=displaymat[i,i]+z(i)*z(i-1)^v[i]; } 2192 HNE[nrows(m)]=displaymat[nrows(m),nrows(m)]; 2193 if (nrows(m)<2) { HNE[2]=z(0); } 2200 for (i=1; i<rowM; i++) { HNE[i]=displaymat[i,i]+z(i)*z(i-1)^v[i]; } 2201 HNE[rowM]=displaymat[rowM,rowM]; 2202 2203 // lossen: output modified (06/2004) 2204 if (size(#) == 0) 2205 { 2206 if (switch==0) { 2207 HNE=subst(HNE,z(0),var(size(v)+1)); 2208 } 2209 else { 2210 HNE=subst(HNE,z(0),var(size(v)+2)); 2211 } 2212 2213 for (j=1; j<=ncols(HNE); j++){ 2214 string stHNE(j)=string(HNE[j]); 2215 } 2216 if (undef_bd<-1) 2217 { 2218 stHNE(size(v))=stHNE(size(v))+" + ..... (terms of degree >=" 2219 +string(-undef_bd)+")"; 2220 } 2221 if (undef_bd==-1) 2222 { 2223 stHNE(size(v))=stHNE(size(v))+" + ..... (terms of degree >=" 2224 +string(colM+1)+")"; 2225 } 2226 2227 if (switch==0) { 2228 stHNE(1) = " "+string(var(size(v)+2))+" = "+stHNE(1); 2229 } 2230 else { 2231 stHNE(1) = " "+string(var(size(v)+1))+" = "+stHNE(1); 2232 } 2233 stHNE(1); 2234 if (ncols(HNE)==1) {return();} 2235 2236 if (switch==0) { 2237 stHNE(2) = " "+string(var(size(v)+1))+" = "+stHNE(2); 2238 } 2239 else { 2240 stHNE(2) = " "+string(var(size(v)+2))+" = "+stHNE(2); 2241 } 2242 stHNE(2); 2243 2244 for (j=3; j<=ncols(HNE); j++){ 2245 stHNE(j)= " "+"z(" +string(j-2)+ ") = "+stHNE(j); 2246 stHNE(j); 2247 } 2248 return(); 2249 } 2250 2251 if (rowM<2) { HNE[2]=z(0); } 2252 2194 2253 if (switch==0) { 2195 2254 HNE[1] = HNE[1]-var(size(v)+2); … … 2617 2676 { 2618 2677 if(system("with","Namespaces")) { kill Top::extdguenstig; } 2619 if (defined(extdguenstig)) {kill extdguenstig; }2678 kill extdguenstig; 2620 2679 } 2621 2680 … … 2843 2902 //--- Falls Ring (0,a),... + minpoly : solange factorize nicht in Singular --- 2844 2903 //------- implementiert ist, develop aufrufen (kann spaeter entfallen) ------- 2845 if ((char(basering)==0) && (npars(basering)==1)) { 2846 if (string(minpoly)<>"0") { irred=1; } 2847 } 2904 // 2905 // **** lossen: gestrichen 08/05 **** 2906 // if ((char(basering)==0) && (npars(basering)==1)) { 2907 // if (string(minpoly)<>"0") { irred=1; } 2908 // } 2909 // 2848 2910 //------------------ Aufruf der geeigneten Prozedur -------------------------- 2849 2911 if (irred==0) { … … 3881 3943 } 3882 3944 keepring basering; 3883 if (system("with","Namespaces")) 3884 { 3885 if (defined(transfproc)) { return(list(HNEs,transfproc)); } 3886 else { return(list(HNEs,poly(-1))); } 3887 } 3888 else 3889 { 3890 if (defined(transfproc)) { return(list(HNEs,transfproc)); } 3891 else { return(list(HNEs,poly(-1))); } 3892 } 3945 if (defined(transfproc)) { return(list(HNEs,transfproc)); } 3946 else { return(list(HNEs,poly(-1))); } 3893 3947 // -1 als 2. Rueckgabewert zeigt an, dass kein Ringwechsel stattgefunden hat - 3894 3948 }
Note: See TracChangeset
for help on using the changeset viewer.