Changeset 6e8b02 in git
- Timestamp:
- Dec 22, 2014, 6:07:53 PM (9 years ago)
- Branches:
- (u'spielwiese', 'd0474371d8c5d8068ab70bfb42719c97936b18a6')
- Children:
- dbe6a83090d114bef7df435a1e47e660f753e2dc
- Parents:
- 20863c905e3e6d10e3e1e6de5a625a88d4ba28b2
- Location:
- Singular/LIB
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/primdec.lib
r20863c r6e8b02 1873 1873 /////////////////////////////////////////////////////////////////////////////// 1874 1874 1875 static proc prepareQuotientring (int nnp) 1876 "USAGE: prepareQuotientring(nnp); nnp int 1877 RETURN: string = to define Kvar(nnp+1),...,var(nvars)[..rest ] 1878 NOTE: 1875 static proc prepareQuotientring (int nnp,string order) 1876 "USAGE: prepareQuotientring(nnp, order); nnp int, order string 1877 RETURN: Kvar(nnp+1),...,var(nvars)[..rest ] 1879 1878 EXAMPLE: example prepareQuotientring; shows an example 1880 1879 " … … 1883 1882 ASSUME(1, not isQuotientRing(basering) ) ; 1884 1883 ASSUME(1, hasGlobalOrdering(basering) ) ; 1885 ideal @ih,@jh; 1886 int npar=npars(basering); 1887 int @n; 1888 1889 string quotring= "ring quring = ("+charstr(basering); 1890 for(@n=nnp+1;@n<=nvars(basering);@n++) 1891 { 1892 quotring=quotring+",var("+string(@n)+")"; 1893 @ih=@ih+var(@n); 1894 } 1895 1896 quotring=quotring+"),(var(1)"; 1897 @jh=@jh+var(1); 1898 for(@n=2;@n<=nnp;@n++) 1899 { 1900 quotring=quotring+",var("+string(@n)+")"; 1901 @jh=@jh+var(@n); 1902 } 1903 quotring=quotring+"),(C,lp);"; 1904 1884 list rl=ringlist(basering); 1885 if (typeof(rl[1])=="int") 1886 { 1887 int p=rl[1]; 1888 list rl2=rl[2]; 1889 rl[1]=list(p, 1890 list(rl2[nnp+1..nvars(basering)]), 1891 list(list("lp",1:(nvars(basering)-nnp))), 1892 ideal(0)); 1893 rl[2]=list(rl2[1..nnp]); 1894 rl[3]=list(list(order,1:nnp),list("C",0)); 1895 } 1896 else 1897 { 1898 if (typeof(rl[1])=="list") 1899 list rl1=rl[1]; 1900 list rl2=rl[2]; 1901 rl1[1]=list(rl1[1][1], 1902 rl[1][2]+list(rl2[nnp+1..nvars(basering)]), 1903 list(list("lp",1:(size(rl[1][2])+nvars(basering)-nnp))), 1904 ideal(0)); 1905 rl[1]=rl1; 1906 rl[2]=list(rl2[1..nnp]); 1907 rl[3]=list(list(order,1:nnp),list("C",0)); 1908 } 1909 def quotring=ring(rl); 1905 1910 return(quotring); 1906 1907 1911 } 1908 1912 example 1909 1913 { "EXAMPLE:"; echo = 2; 1910 1914 ring s1=(0,x),(a,b,c,d,e,f,g),lp; 1911 def @Q=basering; 1912 list l= prepareQuotientring(3); 1913 l; 1914 execute(l[1]); 1915 execute(l[2]); 1916 basering; 1917 phi; 1918 setring @Q; 1915 def Q= prepareQuotientring(3,"lp"); 1916 Q; 1919 1917 } 1920 1918 … … 2581 2579 ideal j=groebner(imap(gnir,j)); 2582 2580 } 2583 string quotring=prepareQuotientring(nvars(basering)-indep[1][3]);2584 execute(quotring);2581 def quotring=prepareQuotientring(nvars(basering)-indep[1][3],"lp"); 2582 setring quotring; 2585 2583 ideal j=imap(gnir1,j); 2586 2584 kill gnir1; … … 2592 2590 } 2593 2591 setring gnir; 2594 ideal h=imap(qu ring,h);2595 kill qu ring;2592 ideal h=imap(quotring,h); 2593 kill quotring; 2596 2594 2597 2595 list l=minSat(j,h); … … 3100 3098 3101 3099 poly @gs,@gh,@p; 3102 string @va,quotring; 3100 string @va; 3101 def quotring; 3103 3102 list quprimary,htprimary,collectprimary,lsau,lnew,allindep,restindep; 3104 3103 ideal @h; … … 3228 3227 //------------------------------------------------------------------------ 3229 3228 3230 quotring=prepareQuotientring(nvars(basering)-indep[@m][3]);3229 def quotring=prepareQuotientring(nvars(basering)-indep[@m][3],"lp"); 3231 3230 3232 3231 //--------------------------------------------------------------------- … … 3235 3234 3236 3235 ideal @jj=lead(@j); //!! vorn vereinbaren 3237 execute(quotring);3236 setring quotring; 3238 3237 3239 3238 ideal @jj=imap(gnir1,@jj); … … 3249 3248 } 3250 3249 @j=simplify(@j,2); 3251 setring qu ring;3250 setring quotring; 3252 3251 // @j considered in the quotientring 3253 3252 ideal @j=imap(gnir1,@j); … … 3336 3335 setring gnir; 3337 3336 3338 collectprimary=imap(qu ring,uprimary);3339 lsau=imap(qu ring,saturn);3340 @h=imap(qu ring,@h);3341 3342 kill qu ring;3337 collectprimary=imap(quotring,uprimary); 3338 lsau=imap(quotring,saturn); 3339 @h=imap(quotring,@h); 3340 3341 kill quotring; 3343 3342 3344 3343 @n2=size(quprimary); … … 3541 3540 //------------------------------------------------------------------ 3542 3541 3543 quotring=prepareQuotientring(nvars(basering)-restindep[@m][3]);3542 def quotring=prepareQuotientring(nvars(basering)-restindep[@m][3],"lp"); 3544 3543 3545 3544 //------------------------------------------------------------------ … … 3547 3546 //------------------------------------------------------------------ 3548 3547 3549 execute(quotring);3548 setring quotring; 3550 3549 3551 3550 // @j considered in the quotientring … … 3625 3624 //------------------------------------------------------------------ 3626 3625 setring gnir; 3627 collectprimary=imap(qu ring,uprimary);3628 lsau=imap(qu ring,saturn);3629 @h=imap(qu ring,@h);3630 3631 kill qu ring;3626 collectprimary=imap(quotring,uprimary); 3627 lsau=imap(quotring,saturn); 3628 @h=imap(quotring,@h); 3629 3630 kill quotring; 3632 3631 3633 3632 @n2=size(quprimary); … … 6215 6214 ideal fac, @h, collectrad, lsau; 6216 6215 poly @q; 6217 string @va ,quotring;6216 string @va; def quotring; 6218 6217 6219 6218 def @P = basering; … … 6324 6323 // K(var(nnpr+1),..,var(nva))[..the rest..] 6325 6324 //------------------------------------------------------------------------ 6326 quotring = prepareQuotient RingDp(nvars(basering) - indep[@m][3]);6325 quotring = prepareQuotientring(nvars(basering) - indep[@m][3],"dp"); 6327 6326 //------------------------------------------------------------------------ 6328 6327 // We pass to the quotientring K(var(nnp+1),..,var(nva))[..the rest..] 6329 6328 //------------------------------------------------------------------------ 6330 6329 6331 execute(quotring);6330 setring quotring; 6332 6331 6333 6332 // @j considered in the quotientring … … 6387 6386 setring @P; 6388 6387 6389 collectrad = imap(qu ring, zero_rad);6390 lsau = simplify(imap(qu ring, hpl), 2);6391 @h = imap(qu ring, @h);6392 6393 kill qu ring;6388 collectrad = imap(quotring, zero_rad); 6389 lsau = simplify(imap(quotring, hpl), 2); 6390 @h = imap(quotring, @h); 6391 6392 kill quotring; 6394 6393 6395 6394 // Here the intersection with the polynomialring … … 6635 6634 } 6636 6635 6637 6638 ///////////////////////////////////////////////////////////////////////////////6639 // based on prepareQuotientring6640 // The order returned is now (C, dp) instead of (C, lp)6641 6642 static proc prepareQuotientRingDp (int nnp)6643 "USAGE: prepareQuotientRingDp(nnp); nnp int6644 RETURN: string = to define Kvar(nnp+1),...,var(nvars)[..rest ]6645 NOTE:6646 EXAMPLE: example prepareQuotientRingDp; shows an example6647 "6648 {6649 ASSUME(1, hasFieldCoefficient(basering) );6650 ASSUME(1, not isQuotientRing(basering) ) ;6651 ASSUME(1, hasGlobalOrdering(basering) ) ;6652 6653 ideal @ih,@jh;6654 int npar=npars(basering);6655 int @n;6656 6657 string quotring= "ring quring = ("+charstr(basering);6658 for(@n = nnp + 1; @n <= nvars(basering); @n++)6659 {6660 quotring = quotring + ", var(" + string(@n) + ")";6661 @ih = @ih + var(@n);6662 }6663 6664 quotring = quotring+"),(var(1)";6665 @jh = @jh + var(1);6666 for(@n = 2; @n <= nnp; @n++)6667 {6668 quotring = quotring + ", var(" + string(@n) + ")";6669 @jh = @jh + var(@n);6670 }6671 // SL 2006-04-21 1 The order returned is now (C, dp) instead of (C, lp)6672 quotring = quotring + "), (C, dp);";6673 // SL 2006-04-21 26674 6675 return(quotring);6676 }6677 example6678 { "EXAMPLE:"; echo = 2;6679 ring s1=(0,x),(a,b,c,d,e,f,g),lp;6680 def @Q=basering;6681 list l= prepareQuotientRingDp(3);6682 l;6683 execute(l[1]);6684 execute(l[2]);6685 basering;6686 phi;6687 setring @Q;6688 6689 }6690 6636 6691 6637 /////////////////////////////////////////////////////////////////////////////// … … 7354 7300 7355 7301 poly @gs,@gh,@p; 7356 string @va ,quotring;7302 string @va; 7357 7303 list quprimary,htprimary,collectprimary,lsau,lnew,allindep,restindep; 7358 7304 ideal @h; … … 7619 7565 //------------------------------------------------------------------ 7620 7566 7621 quotring=prepareQuotientring(nvars(basering)-restindep[@m][3] );7567 quotring=prepareQuotientring(nvars(basering)-restindep[@m][3],"lp"); 7622 7568 7623 7569 //------------------------------------------------------------------ … … 7625 7571 //------------------------------------------------------------------ 7626 7572 7627 execute(quotring);7573 setring quotring; 7628 7574 7629 7575 // @j considered in the quotientring … … 7703 7649 //------------------------------------------------------------------ 7704 7650 setring gnir; 7705 collectprimary=imap(qu ring,uprimary);7706 lsau=imap(qu ring,saturn);7707 @h=imap(qu ring,@h);7708 7709 kill qu ring;7651 collectprimary=imap(quotring,uprimary); 7652 lsau=imap(quotring,saturn); 7653 @h=imap(quotring,@h); 7654 7655 kill quotring; 7710 7656 7711 7657 … … 7874 7820 7875 7821 string @va; 7876 stringquotring;7822 def quotring; 7877 7823 intvec op; 7878 7824 intvec @vv; … … 7967 7913 //------------------------------------------------------------------------ 7968 7914 7969 quotring=prepareQuotientring(nvars(basering)-indepInfo[3] );7915 quotring=prepareQuotientring(nvars(basering)-indepInfo[3],"lp"); 7970 7916 7971 7917 //--------------------------------------------------------------------- … … 7974 7920 7975 7921 ideal @jj=lead(@j); //!! vorn vereinbaren 7976 execute(quotring);7922 setring quotring; 7977 7923 7978 7924 ideal @jj=imap(gnir1,@jj); … … 7988 7934 } 7989 7935 @j=simplify(@j,2); 7990 setring qu ring;7936 setring quotring; 7991 7937 // @j considered in the quotientring 7992 7938 ideal @j=imap(gnir1,@j); … … 8078 8024 setring gnir; 8079 8025 8080 collectprimary=imap(qu ring,uprimary);8081 lsau=imap(qu ring,saturn);8082 @h=imap(qu ring,@h);8083 8084 kill qu ring;8026 collectprimary=imap(quotring,uprimary); 8027 lsau=imap(quotring,saturn); 8028 @h=imap(quotring,@h); 8029 8030 kill quotring; 8085 8031 8086 8032 @n2=size(quprimary); -
Singular/LIB/primdecint.lib
r20863c r6e8b02 1133 1133 //=== this is our way to obtain the coefficients in Z[u] of the 1134 1134 //=== leading terms of the Groebner basis above 1135 string quotring=Primdec::prepareQuotientring(nvars(basering)-L[1][3]);1136 execute(quotring);1135 def quring=Primdec::prepareQuotientring(nvars(basering)-L[1][3],"lp"); 1136 setring quring; 1137 1137 ideal I=imap(Shelp,I); 1138 1138 list C; … … 1441 1441 //=== this is our way to obtain the coefficients in Z[u] of the 1442 1442 //=== leading terms of the Groebner basis above 1443 string quotring=Primdec::prepareQuotientring(nvars(basering)-L[1][3]);1444 execute(quotring);1443 def quring=Primdec::prepareQuotientring(nvars(basering)-L[1][3],"lp"); 1444 setring quring; 1445 1445 module I=imap(Shelp,I); 1446 1446 list C;
Note: See TracChangeset
for help on using the changeset viewer.