Changeset 52a01d in git for Singular/LIB/normal.lib
- Timestamp:
- Jan 28, 2015, 11:25:49 AM (9 years ago)
- Branches:
- (u'spielwiese', 'a719bcf0b8dbc648b128303a49777a094b57592c')
- Children:
- 6bd53ba88f906b9abf68e6983aac4cf495d7631c
- Parents:
- d8f9c942ee4bfbe1e3f486950f095b373d881a281386125efea2b96cc1b1eb9c36caa5004c0f47f6
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/normal.lib
r138612 r52a01d 2286 2286 if(size(N) < nvars(R0)) 2287 2287 { 2288 string newvar=string(N); 2289 execute("ring R=("+charstr(R0)+"),("+newvar+"),dp;"); 2288 list newvar=N[1..ncols(N)]; 2289 list @rl0=ringlist(R0); 2290 @rl0[2]=list(N[1..ncols(N)]); 2291 @rl0[3]=list(list("dp",1:ncols(N)),list("C",0)); 2292 def R=ring(@rl0); kill @rl0; 2293 setring R; 2290 2294 ideal I =imap(R0,I); 2291 if((ringlist(R0)[3][1][1]=="dp")&&(size(ringlist(R0)[3])==2)) 2295 list @rl0=ringlist(R0); 2296 if((@rl0[3][1][1]=="dp")&&(size(@rl0[3])==2)) 2292 2297 { 2293 2298 attrib(I,"isSB",1); … … 2297 2302 I=std(I); 2298 2303 } 2304 kill @rl0; 2299 2305 } 2300 2306 else … … 2307 2313 if(dim(I)==2) 2308 2314 { 2309 2315 def newR=basering; 2310 2316 } 2311 2317 else 2312 2318 { 2313 short=0; 2314 string smp = string(minpoly); 2315 if(dim(I)==0) 2316 { 2317 execute("ring Rhelp=("+charstr(R0)+"),(@s,@t),dp;"); 2318 } 2319 else 2320 { 2321 execute("ring Rhelp=("+charstr(R0)+"),(@s),dp;"); 2322 } 2323 if (smp!="0") 2324 { execute("minpoly = "+smp+";");} 2325 def newR=R+Rhelp; 2326 setring newR; 2327 ideal I=imap(R,I); 2328 I=homog(I,@s); 2329 attrib(I,"isSB",1); 2319 list @rl0=ringlist(R0); 2320 if(dim(I)==0) 2321 { 2322 @rl0[2]=list("@s","@t"); 2323 @rl0[3]=list(list("dp",1:2),list("C",0)); 2324 } 2325 else 2326 { 2327 @rl0[2]=list("@s"); 2328 @rl0[3]=list(list("dp",1),list("C",0)); 2329 } 2330 def Rhelp=ring(@rl0); 2331 kill @rl0; 2332 def newR=R+Rhelp; 2333 setring newR; 2334 ideal I=imap(R,I); 2335 I=homog(I,@s); 2336 attrib(I,"isSB",1); 2330 2337 } 2331 2338 2332 2339 if((nvars(basering)<=3)&&(size(I)>1)) 2333 2340 { 2334 2341 ERROR("This is not equidimensional"); 2335 2342 } 2336 2343 … … 2652 2659 option(redSB); 2653 2660 def R=basering; 2654 execute("ring S=("+charstr(R)+"),(x,y),lp;"); 2661 list @rl=ringlist(R); 2662 @rl[2]=list("x","y"); 2663 @rl[3]=list(list("lp",1:2),list("C",0)); 2664 def S=ring(@rl); setring S; 2655 2665 map phi=R,x,y; 2656 2666 ideal singL=phi(singL); … … 2665 2675 map alpha=S,var(1)-singL[2][2],var(2)-singL[1][2]; 2666 2676 f=alpha(f); 2667 execute("ring C=("+charstr(S)+"),("+varstr(S)+"),ds;");2677 def C=changeordTo(S,"ds"); setring C; 2668 2678 poly f=imap(S,f); 2669 2679 ideal singL=imap(S,singL); … … 2712 2722 poly p=beta(p); 2713 2723 2714 execute("ring C=("+charstr(S)+",a),( "+varstr(S)+"),ds;");2724 execute("ring C=("+charstr(S)+",a),(x,y),ds;"); 2715 2725 number p=number(imap(B,p)); 2716 2726
Note: See TracChangeset
for help on using the changeset viewer.