Changeset 56ff8ef in git
- Timestamp:
- May 13, 2019, 4:15:31 PM (4 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- d906dc5d406b00b056fb825f5c5c8988ebcaceb3
- Parents:
- d0ca0b8ae05c9cfcf2578b78e43825144b88299c7ea5de9643c52c85381a5d31f1c56130fc656ff9
- Files:
-
- 6 added
- 24 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/GND.lib
r7ea5de r56ff8ef 1292 1292 "And this is the map:"; 1293 1293 } 1294 //execute("ideal themap = vidjet[nrx+1..size(vidjet)],"+t+",invssp;");1295 1294 invssp = 1/invssp; 1296 1295 if(debug) … … 1300 1299 string zz = "Z"; 1301 1300 def newvar2 = findnewvar(zz); 1302 //execute("ring Efinalbase = (0,"+parstr(E)+"),("+varstr(E)+","+newvar2+"),dp;");1303 1301 def q = imap(E,e2); 1304 1302 poly teta = var(nvars(Efinalbase)) * imap(E,ss)*imap(E,ssp) - 1; -
Singular/LIB/ainvar.lib
r7ea5de r56ff8ef 215 215 //------------- changes the basering bsr to bsr[@(0),...,@(z)] ---------- 216 216 execute("ring s="+charstr(basering)+",("+varstr(basering)+",@(0..z)),dp;"); 217 // Ev hier die Reihenfolge der Vars aendern. Dazu muss unten aber entsprechend218 // geaendert werden:219 // execute("ring s="+charstr(basering)+",(@(0..z),"+varstr(basering)+"),dp;");220 217 221 218 //constructs the leading ideal of dom=(p-@(0),dom[1]-@(1),...,dom[z]-@(z)) -
Singular/LIB/brnoeth.lib
r7ea5de r56ff8ef 916 916 execute("string sdatum=string("+datum+");"); 917 917 ring auxring=char(basering),(a,b,x,y,t),lp; 918 // execute("poly pdatum="+datum+";");919 918 execute("poly pdatum="+sdatum+";"); 920 919 execute("poly prel=b-("+rel+");"); -
Singular/LIB/deform.lib
r7ea5de r56ff8ef 845 845 for (l=1;l<=t1;l=l+1) 846 846 { 847 // old: execute("l1= "+columnes[2*l-1]+";");848 847 l1=vvvv[l]; 849 848 B[l] = A[l1]; -
Singular/LIB/dmod.lib
r7ea5de r56ff8ef 526 526 } 527 527 528 // JM+VL: output ring restructured into "normal" 529 530 // proc Sannfslog (poly F, list #) 531 // "USAGE: Sannfslog(f [,eng]); f a poly, eng an optional int 532 // RETURN: ring 533 // PURPOSE: compute the D-module structure of basering[1/f]*f^s 534 // NOTE: activate the output ring with the @code{setring} command. 535 // @* In the output ring D[s], the ideal LD1 is generated by the elements 536 // @* in Ann F^s in D[s], coming from logarithmic derivations. 537 // @* If eng <>0, @code{std} is used for Groebner basis computations, 538 // @* otherwise, and by default @code{slimgb} is used. 539 // DISPLAY: If @code{printlevel}=1, progress debug messages will be printed, 540 // @* if @code{printlevel}>=2, all the debug messages will be printed. 541 // EXAMPLE: example Sannfslog; shows examples 542 // " 543 // { 544 // int eng = 0; 545 // if ( size(#)>0 ) 546 // { 547 // if ( typeof(#[1]) == "int" ) 548 // { 549 // eng = int(#[1]); 550 // } 551 // } 552 // int ppl = printlevel-voice+2; 553 // def save = basering; 554 // int N = nvars(basering); 555 // int Nnew = 2*N+1; 556 // int i; 557 // string s; 558 // list RL = ringlist(basering); 559 // list L, Lord; 560 // list tmp; 561 // intvec iv; 562 // L[1] = RL[1]; // char 563 // L[4] = RL[4]; // char, minpoly 564 // // check whether vars have admissible names 565 // list Name = RL[2]; 566 // for (i=1; i<=N; i++) 567 // { 568 // if (Name[i] == "s") 569 // { 570 // ERROR("Variable names should not include s"); 571 // } 572 // } 573 // // the ideal I 574 // ideal I = -F, jacob(F); 575 // dbprint(ppl,"// -1-1- starting the computation of syz(-F,_Dx(F))"); 576 // dbprint(ppl-1, I); 577 // matrix M = syz(I); 578 // M = transpose(M); // it is more usefull working with columns 579 // dbprint(ppl,"// -1-2- the module syz(-F,_Dx(F)) has been computed"); 580 // dbprint(ppl-1, M); 581 // // ------------ the ring @R ------------ 582 // // _x, _Dx, s; elim.ord for _x,_Dx. 583 // // now, create the names for new vars 584 // list DName; 585 // for (i=1; i<=N; i++) 586 // { 587 // DName[i] = "D"+Name[i]; // concat 588 // } 589 // tmp[1] = "s"; 590 // list NName; 591 // for (i=1; i<=N; i++) 592 // { 593 // NName[2*i-1] = Name[i]; 594 // NName[2*i] = DName[i]; 595 // //NName[2*i-1] = DName[i]; 596 // //NName[2*i] = Name[i]; 597 // } 598 // NName[Nnew] = tmp[1]; 599 // L[2] = NName; 600 // tmp = 0; 601 // // block ord (a(1,1),a(0,0,1,1),...,dp); 602 // //list("a",intvec(1,1)), list("a",intvec(0,0,1,1)), ... 603 // tmp[1] = "a"; // string 604 // for (i=1; i<=N; i++) 605 // { 606 // iv[2*i-1] = 1; 607 // iv[2*i] = 1; 608 // tmp[2] = iv; iv = 0; // intvec 609 // Lord[i] = tmp; 610 // } 611 // //list("dp",intvec(1,1,1,1,1,...)) 612 // s = "iv="; 613 // for (i=1; i<=Nnew; i++) 614 // { 615 // s = s+"1,"; 616 // } 617 // s[size(s)]=";"; 618 // execute(s); 619 // kill s; 620 // tmp[1] = "dp"; // string 621 // tmp[2] = iv; // intvec 622 // Lord[N+1] = tmp; 623 // //list("C",intvec(0)) 624 // tmp[1] = "C"; // string 625 // iv = 0; 626 // tmp[2] = iv; // intvec 627 // Lord[N+2] = tmp; 628 // tmp = 0; 629 // L[3] = Lord; 630 // // we are done with the list. Now add a Plural part 631 // def @R@ = ring(L); 632 // setring @R@; 633 // matrix @D[Nnew][Nnew]; 634 // for (i=1; i<=N; i++) 635 // { 636 // @D[2*i-1,2*i]=1; 637 // //@D[2*i-1,2*i]=-1; 638 // } 639 // def @R = nc_algebra(1,@D); 640 // setring @R; 641 // kill @R@; 642 // dbprint(ppl,"// -2-1- the ring @R(_x,_Dx,s) is ready"); 643 // dbprint(ppl-1, @R); 644 // matrix M = imap(save,M); 645 // // now, create the vector [-s,_Dx] 646 // vector v = [-s]; // now s is a variable 647 // for (i=1; i<=N; i++) 648 // { 649 // v = v + var(2*i)*gen(i+1); 650 // //v = v + var(2*i-1)*gen(i+1); 651 // } 652 // ideal J = ideal(M*v); 653 // // make leadcoeffs positive 654 // for (i=1; i<= ncols(J); i++) 655 // { 656 // if ( leadcoef(J[i])<0 ) 657 // { 658 // J[i] = -J[i]; 659 // } 660 // } 661 // ideal LD1 = J; 662 // kill J; 663 // export LD1; 664 // return(@R); 665 // } 666 // example 667 // { 668 // "EXAMPLE:"; echo = 2; 669 // ring r = 0,(x,y),Dp; 670 // poly F = x^4+y^5+x*y^4; 671 // printlevel = 0; 672 // def A = Sannfslog(F); 673 // setring A; 674 // LD1; 675 // } 528 676 529 677 530 … … 3047 2900 tmp[2] = iv; 3048 2901 Lord[2] = tmp; 3049 // extra block for s3050 // tmp[1] = "dp"; iv = 1;3051 // s[size(s)]= ","; s = s + "1,1,1;"; execute(s); tmp[2] = iv;3052 // Lord[3] = tmp;3053 2902 kill s; 3054 2903 tmp[1] = "C"; iv = 0; tmp[2] = iv; … … 3429 3278 tmp[2] = iv; 3430 3279 Lord[2] = tmp; 3431 // extra block for s3432 // tmp[1] = "dp"; iv = 1;3433 // s[size(s)]= ","; s = s + "1,1,1;"; execute(s); tmp[2] = iv;3434 // Lord[3] = tmp;3435 3280 kill s; 3436 3281 tmp[1] = "C"; iv = 0; tmp[2] = iv; … … 4944 4789 } 4945 4790 4946 // proc annfsgms(poly F, list #) 4947 // "USAGE: annfsgms(f [,eng]); f a poly, eng an optional int 4948 // ASSUME: f has an isolated critical point at 0 4949 // RETURN: ring 4950 // PURPOSE: compute the D-module structure of basering[1/f]*f^s 4951 // NOTE: activate the output ring with the @code{setring} command. In this ring, 4952 // @* - the ideal LD is the needed D-mod structure, 4953 // @* - the ideal BS is the list of roots of a Bernstein polynomial of f. 4954 // @* If eng <>0, @code{std} is used for Groebner basis computations, 4955 // @* otherwise (and by default) @code{slimgb} is used. 4956 // @* If printlevel=1, progress debug messages will be printed, 4957 // @* if printlevel>=2, all the debug messages will be printed. 4958 // EXAMPLE: example annfsgms; shows examples 4959 // " 4960 // { 4961 // LIB "gmssing.lib"; 4962 // int eng = 0; 4963 // if ( size(#)>0 ) 4964 // { 4965 // if ( typeof(#[1]) == "int" ) 4966 // { 4967 // eng = int(#[1]); 4968 // } 4969 // } 4970 // int ppl = printlevel-voice+2; 4971 // // returns a ring with the ideal LD in it 4972 // def save = basering; 4973 // // compute the Bernstein polynomial from gmssing.lib 4974 // list RL = ringlist(basering); 4975 // // in the descr. of the ordering, replace "p" by "s" 4976 // list NL = convloc(RL); 4977 // // create a ring with the ordering, converted to local 4978 // def @LR = ring(NL); 4979 // setring @LR; 4980 // poly F = imap(save, F); 4981 // ideal B = bernstein(F)[1]; 4982 // // since B may not contain (s+1) [following gmssing.lib] 4983 // // add it! 4984 // B = B,-1; 4985 // B = simplify(B,2+4); // erase zero and repeated entries 4986 // // find the minimal integer value 4987 // int S = minIntRoot(B,0); 4988 // dbprint(ppl,"// -0- minimal integer root found"); 4989 // dbprint(ppl-1,S); 4990 // setring save; 4991 // int N = nvars(basering); 4992 // int Nnew = 2*(N+2); 4993 // int i,j; 4994 // string s; 4995 // // list RL = ringlist(basering); 4996 // list L, Lord; 4997 // list tmp; 4998 // intvec iv; 4999 // L[1] = RL[1]; // char 5000 // L[4] = RL[4]; // char, minpoly 5001 // // check whether vars have admissible names 5002 // list Name = RL[2]; 5003 // list RName; 5004 // RName[1] = "u"; 5005 // RName[2] = "v"; 5006 // RName[3] = "t"; 5007 // RName[4] = "Dt"; 5008 // for(i=1;i<=N;i++) 5009 // { 5010 // for(j=1; j<=size(RName);j++) 5011 // { 5012 // if (Name[i] == RName[j]) 5013 // { 5014 // ERROR("Variable names should not include u,v,t,Dt"); 5015 // } 5016 // } 5017 // } 5018 // // now, create the names for new vars 5019 // // tmp[1] = "u"; tmp[2] = "v"; tmp[3] = "t"; tmp[4] = "Dt"; 5020 // list UName = RName; 5021 // list DName; 5022 // for(i=1;i<=N;i++) 5023 // { 5024 // DName[i] = "D"+Name[i]; // concat 5025 // } 5026 // list NName = UName + Name + DName; 5027 // L[2] = NName; 5028 // tmp = 0; 5029 // // Name, Dname will be used further 5030 // kill UName; 5031 // kill NName; 5032 // // block ord (a(1,1),dp); 5033 // tmp[1] = "a"; // string 5034 // iv = 1,1; 5035 // tmp[2] = iv; //intvec 5036 // Lord[1] = tmp; 5037 // // continue with dp 1,1,1,1... 5038 // tmp[1] = "dp"; // string 5039 // s = "iv="; 5040 // for(i=1; i<=Nnew; i++) // need really all vars! 5041 // { 5042 // s = s+"1,"; 5043 // } 5044 // s[size(s)]= ";"; 5045 // execute(s); 5046 // tmp[2] = iv; 5047 // Lord[2] = tmp; 5048 // tmp[1] = "C"; 5049 // iv = 0; 5050 // tmp[2] = iv; 5051 // Lord[3] = tmp; 5052 // tmp = 0; 5053 // L[3] = Lord; 5054 // // we are done with the list 5055 // def @R = ring(L); 5056 // setring @R; 5057 // matrix @D[Nnew][Nnew]; 5058 // @D[3,4] = 1; // t,Dt 5059 // for(i=1; i<=N; i++) 5060 // { 5061 // @D[4+i,4+N+i]=1; 5062 // } 5063 // // L[5] = matrix(UpOneMatrix(Nnew)); 5064 // // L[6] = @D; 5065 // nc_algebra(1,@D); 5066 // dbprint(ppl,"// -1-1- the ring @R is ready"); 5067 // dbprint(ppl-1,@R); 5068 // // create the ideal 5069 // poly F = imap(save,F); 5070 // ideal I = u*F-t,u*v-1; 5071 // poly p; 5072 // for(i=1; i<=N; i++) 5073 // { 5074 // p = u*Dt; // u*Dt 5075 // p = diff(F,var(4+i))*p; 5076 // I = I, var(N+4+i) + p; // Dx, Dy 5077 // } 5078 // // add the relations between t,Dt and s 5079 // // I = I, t*Dt+1+S; 5080 // // -------- the ideal I is ready ---------- 5081 // dbprint(ppl,"// -1-2- starting the elimination of u,v in @R"); 5082 // ideal J = engine(I,eng); 5083 // ideal K = nselect(J,1..2); 5084 // dbprint(ppl,"// -1-3- u,v are eliminated in @R"); 5085 // dbprint(ppl-1,K); // without u,v: not yet our answer 5086 // //----- create a ring with elim.ord for t,Dt ------- 5087 // setring save; 5088 // // ------------ new ring @R2 ------------------ 5089 // // without u,v and with the elim.ord for t,Dt 5090 // // keep: N, i,j,s, tmp, RL 5091 // Nnew = 2*N+2; 5092 // // list RL = ringlist(save); // is defined earlier 5093 // kill Lord,tmp,iv, RName; 5094 // L = 0; 5095 // list Lord, tmp; 5096 // intvec iv; 5097 // L[1] = RL[1]; // char 5098 // L[4] = RL[4]; // char, minpoly 5099 // // check whether vars have admissible names -> done earlier 5100 // // list Name = RL[2]; 5101 // list RName; 5102 // RName[1] = "t"; 5103 // RName[2] = "Dt"; 5104 // // DName is defined earlier 5105 // list NName = RName + Name + DName; 5106 // L[2] = NName; 5107 // tmp = 0; 5108 // // block ord (a(1,1),dp); 5109 // tmp[1] = "a"; // string 5110 // iv = 1,1; 5111 // tmp[2] = iv; //intvec 5112 // Lord[1] = tmp; 5113 // // continue with dp 1,1,1,1... 5114 // tmp[1] = "dp"; // string 5115 // s = "iv="; 5116 // for(i=1;i<=Nnew;i++) 5117 // { 5118 // s = s+"1,"; 5119 // } 5120 // s[size(s)]= ";"; 5121 // execute(s); 5122 // kill s; 5123 // kill NName; 5124 // tmp[2] = iv; 5125 // Lord[2] = tmp; 5126 // tmp[1] = "C"; 5127 // iv = 0; 5128 // tmp[2] = iv; 5129 // Lord[3] = tmp; 5130 // tmp = 0; 5131 // L[3] = Lord; 5132 // // we are done with the list 5133 // // Add: Plural part 5134 // def @R2 = ring(L); 5135 // setring @R2; 5136 // matrix @D[Nnew][Nnew]; 5137 // @D[1,2]=1; 5138 // for(i=1; i<=N; i++) 5139 // { 5140 // @D[2+i,2+N+i]=1; 5141 // } 5142 // nc_algebra(1,@D); 5143 // dbprint(ppl,"// -2-1- the ring @R2 is ready"); 5144 // dbprint(ppl-1,@R2); 5145 // ideal MM = maxideal(1); 5146 // MM = 0,0,MM; 5147 // map R01 = @R, MM; 5148 // ideal K2 = R01(K); 5149 // // add the relations between t,Dt and s 5150 // // K2 = K2, t*Dt+1+S; 5151 // poly G = t*Dt+S+1; 5152 // K2 = NF(K2,std(G)),G; 5153 // dbprint(ppl,"// -2-2- starting elimination for t,Dt in @R2"); 5154 // ideal J = engine(K2,eng); 5155 // ideal K = nselect(J,1..2); 5156 // dbprint(ppl,"// -2-3- t,Dt are eliminated"); 5157 // dbprint(ppl-1,K); 5158 // // "------- produce a final result --------"; 5159 // // ----- create the ordinary Weyl algebra and put 5160 // // ----- the result into it 5161 // // ------ create the ring @R5 5162 // // keep: N, i,j,s, tmp, RL 5163 // setring save; 5164 // Nnew = 2*N; 5165 // // list RL = ringlist(save); // is defined earlier 5166 // kill Lord, tmp, iv; 5167 // // kill L; 5168 // L = 0; 5169 // list Lord, tmp; 5170 // intvec iv; 5171 // L[1] = RL[1]; // char 5172 // L[4] = RL[4]; // char, minpoly 5173 // // check whether vars have admissible names -> done earlier 5174 // // list Name = RL[2]; 5175 // // DName is defined earlier 5176 // list NName = Name + DName; 5177 // L[2] = NName; 5178 // // dp ordering; 5179 // string s = "iv="; 5180 // for(i=1;i<=2*N;i++) 5181 // { 5182 // s = s+"1,"; 5183 // } 5184 // s[size(s)]= ";"; 5185 // execute(s); 5186 // tmp = 0; 5187 // tmp[1] = "dp"; // string 5188 // tmp[2] = iv; //intvec 5189 // Lord[1] = tmp; 5190 // kill s; 5191 // tmp[1] = "C"; 5192 // iv = 0; 5193 // tmp[2] = iv; 5194 // Lord[2] = tmp; 5195 // tmp = 0; 5196 // L[3] = Lord; 5197 // // we are done with the list 5198 // // Add: Plural part 5199 // def @R5 = ring(L); 5200 // setring @R5; 5201 // matrix @D[Nnew][Nnew]; 5202 // for(i=1; i<=N; i++) 5203 // { 5204 // @D[i,N+i]=1; 5205 // } 5206 // nc_algebra(1,@D); 5207 // dbprint(ppl,"// -3-1- the ring @R5 is ready"); 5208 // dbprint(ppl-1,@R5); 5209 // ideal K5 = imap(@R2,K); 5210 // option(redSB); 5211 // dbprint(ppl,"// -3-2- the final cosmetic std"); 5212 // K5 = engine(K5,eng); // std does the job too 5213 // // total cleanup 5214 // kill @R; 5215 // kill @R2; 5216 // ideal LD = K5; 5217 // ideal BS = imap(@LR,B); 5218 // kill @LR; 5219 // export BS; 5220 // export LD; 5221 // return(@R5); 5222 // } 5223 // example 5224 // { 5225 // "EXAMPLE:"; echo = 2; 5226 // ring r = 0,(x,y,z),Dp; 5227 // poly F = x^2+y^3+z^5; 5228 // def A = annfsgms(F); 5229 // setring A; 5230 // LD; 5231 // print(matrix(BS)); 5232 // } 4791 5233 4792 5234 4793 -
Singular/LIB/finvar.lib
r7ea5de r56ff8ef 1517 1517 def T = br+tmpR; 1518 1518 setring T; 1519 // execute("ring T=("+charstr(br)+"),("+varstr(br)+",p(1..m)),lp;");1520 // p(1..m) are the general coefficients of the general polynomial of degree g1521 1519 ideal vars = fetch(br,vars); 1522 1520 map f; -
Singular/LIB/fpaprops.lib
rd0ca0b r56ff8ef 877 877 } 878 878 879 proc lpGkDim (ideal G)879 proc lpGkDim_lib(ideal G) 880 880 "USAGE: lpGkDim(G); G an ideal in a letterplace ring 881 881 RETURN: int -
Singular/LIB/freegb.lib
r7ea5de r56ff8ef 3481 3481 int i, j, k, sm, sv; 3482 3482 vector v; 3483 // execute("setring "+lpring);3484 3483 setring lpring; 3485 3484 poly @@p; -
Singular/LIB/involut.lib
r7ea5de r56ff8ef 821 821 execute("ring @@KK=(0,"+Par+"),("+@ss+"), dp;"); 822 822 } 823 // execute("setring @@KK;");824 823 // basering; 825 824 ideal J = imap(@@K,J); // ideal, considered in @@KK now -
Singular/LIB/maxlike.lib
r7ea5de r56ff8ef 300 300 } 301 301 302 //execute("ring outR =(complex,"+string(prec)+"),(x(1.."+string(n)+")),dp;");303 302 ring outR=(complex,prec),x(1..n),dp; 304 303 list MPOINTS = imap(R,L2); … … 497 496 } 498 497 499 //execute("ring outR =(complex,"+string(prec)+"),(x(1.."+string(n)+")),dp;");500 498 ring outR=(complex,prec),x(1..n),dp; 501 499 list MPOINTS = imap(R,L2); -
Singular/LIB/normal.lib
r7ea5de r56ff8ef 2986 2986 } 2987 2987 ker=simplify(interred(ker),15); 2988 //execute ("ring R0="+charstr(R)+",("+varstr(R)+"),("+ordstr(R)+");");2989 2988 // Rlist may be not defined in this new ring, so we define it again. 2990 2989 list Rlist2 = ringlist(R); … … 3302 3301 setring S(k); 3303 3302 3304 //execute ("ring S(k) = "+charstr(R(k))+",("+varstr(R(k))+",3305 // Z(1.."+string(ncols(phi))+")),(dp("+string(nvars(R(k)))3306 // +"),dp("+string(ncols(phi))+"));");3307 3308 3303 ideal phi = imap(R(k),phi); 3309 3304 ideal J = imap (R(k),ker); … … 3337 3332 // mapstr=mapstr+"0,"; 3338 3333 //} 3339 //execute (mapstr+"maxideal(1);");3340 3334 poly p; 3341 3335 } … … 3490 3484 setring S(k); 3491 3485 3492 // execute ("ring S(k) = "+charstr(R(k))+",("+varstr(R(k))+",3493 // Z(1.."+string(ncols(phi))+")),(dp("+string(nvars(R(k)))3494 // +"),dp("+string(ncols(phi))+"));");3495 3496 3486 ideal phi = imap(R(k),phi); 3497 3487 ideal J = imap (R(k),ker); … … 3523 3513 // mapstr=mapstr+"0,"; 3524 3514 //} 3525 //execute (mapstr+"maxideal(1);");3526 3515 3527 3516 poly p; -
Singular/LIB/primdec.lib
r7ea5de r56ff8ef 1135 1135 else { @qh=groebner(@qh); } 1136 1136 1137 //=============================================================1138 // if(npars(@P)>0)1139 // {1140 // @ri= "ring @Phelp ="1141 // +string(char(@P))+",1142 // ("+varstr(@P)+","+parstr(@P)+",@t),(C,dp);";1143 // }1144 // else1145 // {1146 // @ri= "ring @Phelp ="1147 // +string(char(@P))+",("+varstr(@P)+",@t),(C,dp);";1148 // }1149 // execute(@ri);1150 // ideal @qh=homog(imap(@P,@qht),@t);1151 //1152 // ideal @qh1=std(@qh);1153 // @hilb=hilb(@qh1,1);1154 // @ri= "ring @Phelp1 ="1155 // +string(char(@P))+",("+varstr(@Phelp)+"),(C,lp);";1156 // execute(@ri);1157 // ideal @qh=homog(imap(@P,@qh),@t);1158 // kill @Phelp;1159 // @qh=std(@qh,@hilb);1160 // @qh=subst(@qh,@t,1);1161 // setring @P;1162 // @qh=imap(@Phelp1,@qh);1163 // kill @Phelp1;1164 // @qh=clearSB(@qh);1165 // attrib(@qh,"isSB",1);1166 //=============================================================1167 1168 1137 ser1=phi1(ser); 1169 1138 @lh=zero_decomp (@qh,phi(ser1),@wr); … … 1209 1178 primary=primary+lres0; 1210 1179 1211 //============================================================= 1212 // if(npars(@P)>0) 1213 // { 1214 // @ri= "ring @Phelp =" 1215 // +string(char(@P))+", 1216 // ("+varstr(@P)+","+parstr(@P)+",@t),(C,dp);"; 1217 // } 1218 // else 1219 // { 1220 // @ri= "ring @Phelp =" 1221 // +string(char(@P))+",("+varstr(@P)+",@t),(C,dp);"; 1222 // } 1223 // execute(@ri); 1224 // list @lvec; 1225 // list @lr=imap(@P,lres0); 1226 // ideal @lr1; 1227 // 1228 // if(size(@lr)==2) 1229 // { 1230 // @lr[2]=homog(@lr[2],@t); 1231 // @lr1=std(@lr[2]); 1232 // @lvec[2]=hilb(@lr1,1); 1233 // } 1234 // else 1235 // { 1236 // for(@n=1;@n<=size(@lr) div 2;@n++) 1237 // { 1238 // if(specialIdealsEqual(@lr[2*@n-1],@lr[2*@n])==1) 1239 // { 1240 // @lr[2*@n-1]=homog(@lr[2*@n-1],@t); 1241 // @lr1=std(@lr[2*@n-1]); 1242 // @lvec[2*@n-1]=hilb(@lr1,1); 1243 // @lvec[2*@n]=@lvec[2*@n-1]; 1244 // } 1245 // else 1246 // { 1247 // @lr[2*@n-1]=homog(@lr[2*@n-1],@t); 1248 // @lr1=std(@lr[2*@n-1]); 1249 // @lvec[2*@n-1]=hilb(@lr1,1); 1250 // @lr[2*@n]=homog(@lr[2*@n],@t); 1251 // @lr1=std(@lr[2*@n]); 1252 // @lvec[2*@n]=hilb(@lr1,1); 1253 // 1254 // } 1255 // } 1256 // } 1257 // @ri= "ring @Phelp1 =" 1258 // +string(char(@P))+",("+varstr(@Phelp)+"),(C,lp);"; 1259 // execute(@ri); 1260 // list @lr=imap(@Phelp,@lr); 1261 // 1262 // kill @Phelp; 1263 // if(size(@lr)==2) 1264 // { 1265 // @lr[2]=std(@lr[2],@lvec[2]); 1266 // @lr[2]=subst(@lr[2],@t,1); 1267 // } 1268 // else 1269 // { 1270 // for(@n=1;@n<=size(@lr) div 2;@n++) 1271 // { 1272 // if(specialIdealsEqual(@lr[2*@n-1],@lr[2*@n])==1) 1273 // { 1274 // @lr[2*@n-1]=std(@lr[2*@n-1],@lvec[2*@n-1]); 1275 // @lr[2*@n-1]=subst(@lr[2*@n-1],@t,1); 1276 // @lr[2*@n]=@lr[2*@n-1]; 1277 // attrib(@lr[2*@n],"isSB",1); 1278 // } 1279 // else 1280 // { 1281 // @lr[2*@n-1]=std(@lr[2*@n-1],@lvec[2*@n-1]); 1282 // @lr[2*@n-1]=subst(@lr[2*@n-1],@t,1); 1283 // @lr[2*@n]=std(@lr[2*@n],@lvec[2*@n]); 1284 // @lr[2*@n]=subst(@lr[2*@n],@t,1); 1285 // } 1286 // } 1287 // } 1288 // kill @lvec; 1289 // setring @P; 1290 // lres0=imap(@Phelp1,@lr); 1291 // kill @Phelp1; 1292 // for(@n=1;@n<=size(lres0);@n++) 1293 // { 1294 // lres0[@n]=clearSB(lres0[@n]); 1295 // attrib(lres0[@n],"isSB",1); 1296 // } 1297 // 1298 // primary[2*@k-1]=lres0[1]; 1299 // primary[2*@k]=lres0[2]; 1300 // @s=size(primary) div 2; 1301 // for(@n=1;@n<=size(lres0) div 2-1;@n++) 1302 // { 1303 // primary[2*@s+2*@n-1]=lres0[2*@n+1]; 1304 // primary[2*@s+2*@n]=lres0[2*@n+2]; 1305 // } 1306 // @k--; 1307 //============================================================= 1308 } 1180 } 1309 1181 } 1310 1182 return(primary); … … 2044 1916 option( redSB ); 2045 1917 list @pr=facstd(i); 2046 //if(size(@pr)==1) 2047 // { 2048 // attrib(@pr[1],"isSB",1); 2049 // if((dim(@pr[1])==0)&&(homog(@pr[1])==1)) 2050 // { 2051 // setring @P; 2052 // list @res=maxideal(1); 2053 // return(phi(@res)); 2054 // } 2055 // if(dim(@pr[1])>1) 2056 // { 2057 // setring @P; 2058 // // kill gnir; 2059 // execute ("ring gnir1 = ("+charstr(basering)+"), 2060 // ("+varstr(basering)+"),(C,lp);"); 2061 // ideal i=fetch(@P,i); 2062 // list @pr=facstd(i); 2063 // // ideal ser; 2064 // setring gnir; 2065 // @pr=fetch(gnir1,@pr); 2066 // kill gnir1; 2067 // } 2068 // } 1918 2069 1919 // option( noredSB ); 2070 1920 option( set, op ); … … 9285 9135 else { @qh=groebner(@qh); } 9286 9136 9287 //=============================================================9288 // if(npars(@P)>0)9289 // {9290 // @ri= "ring @Phelp ="9291 // +string(char(@P))+",9292 // ("+varstr(@P)+","+parstr(@P)+",@t),(C,dp);";9293 // }9294 // else9295 // {9296 // @ri= "ring @Phelp ="9297 // +string(char(@P))+",("+varstr(@P)+",@t),(C,dp);";9298 // }9299 // execute(@ri);9300 // ideal @qh=homog(imap(@P,@qht),@t);9301 //9302 // ideal @qh1=std(@qh);9303 // @hilb=hilb(@qh1,1);9304 // @ri= "ring @Phelp1 ="9305 // +string(char(@P))+",("+varstr(@Phelp)+"),(C,lp);";9306 // execute(@ri);9307 // ideal @qh=homog(imap(@P,@qh),@t);9308 // kill @Phelp;9309 // @qh=std(@qh,@hilb);9310 // @qh=subst(@qh,@t,1);9311 // setring @P;9312 // @qh=imap(@Phelp1,@qh);9313 // kill @Phelp1;9314 // @qh=clearSB(@qh);9315 // attrib(@qh,"isSB",1);9316 //=============================================================9317 9318 9137 ser1=phi1(ser); 9319 9138 @lh=newZero_decomp (@qh,phi(ser1),@wr, list("nest", nestLevel + 1)); … … 9369 9188 primary=primary+lres0; 9370 9189 9371 //=============================================================9372 // if(npars(@P)>0)9373 // {9374 // @ri= "ring @Phelp ="9375 // +string(char(@P))+",9376 // ("+varstr(@P)+","+parstr(@P)+",@t),(C,dp);";9377 // }9378 // else9379 // {9380 // @ri= "ring @Phelp ="9381 // +string(char(@P))+",("+varstr(@P)+",@t),(C,dp);";9382 // }9383 // execute(@ri);9384 // list @lvec;9385 // list @lr=imap(@P,lres0);9386 // ideal @lr1;9387 //9388 // if(size(@lr)==2)9389 // {9390 // @lr[2]=homog(@lr[2],@t);9391 // @lr1=std(@lr[2]);9392 // @lvec[2]=hilb(@lr1,1);9393 // }9394 // else9395 // {9396 // for(@n=1;@n<=size(@lr) div 2;@n++)9397 // {9398 // if(specialIdealsEqual(@lr[2*@n-1],@lr[2*@n])==1)9399 // {9400 // @lr[2*@n-1]=homog(@lr[2*@n-1],@t);9401 // @lr1=std(@lr[2*@n-1]);9402 // @lvec[2*@n-1]=hilb(@lr1,1);9403 // @lvec[2*@n]=@lvec[2*@n-1];9404 // }9405 // else9406 // {9407 // @lr[2*@n-1]=homog(@lr[2*@n-1],@t);9408 // @lr1=std(@lr[2*@n-1]);9409 // @lvec[2*@n-1]=hilb(@lr1,1);9410 // @lr[2*@n]=homog(@lr[2*@n],@t);9411 // @lr1=std(@lr[2*@n]);9412 // @lvec[2*@n]=hilb(@lr1,1);9413 //9414 // }9415 // }9416 // }9417 // @ri= "ring @Phelp1 ="9418 // +string(char(@P))+",("+varstr(@Phelp)+"),(C,lp);";9419 // execute(@ri);9420 // list @lr=imap(@Phelp,@lr);9421 //9422 // kill @Phelp;9423 // if(size(@lr)==2)9424 // {9425 // @lr[2]=std(@lr[2],@lvec[2]);9426 // @lr[2]=subst(@lr[2],@t,1);9427 //9428 // }9429 // else9430 // {9431 // for(@n=1;@n<=size(@lr) div 2;@n++)9432 // {9433 // if(specialIdealsEqual(@lr[2*@n-1],@lr[2*@n])==1)9434 // {9435 // @lr[2*@n-1]=std(@lr[2*@n-1],@lvec[2*@n-1]);9436 // @lr[2*@n-1]=subst(@lr[2*@n-1],@t,1);9437 // @lr[2*@n]=@lr[2*@n-1];9438 // attrib(@lr[2*@n],"isSB",1);9439 // }9440 // else9441 // {9442 // @lr[2*@n-1]=std(@lr[2*@n-1],@lvec[2*@n-1]);9443 // @lr[2*@n-1]=subst(@lr[2*@n-1],@t,1);9444 // @lr[2*@n]=std(@lr[2*@n],@lvec[2*@n]);9445 // @lr[2*@n]=subst(@lr[2*@n],@t,1);9446 // }9447 // }9448 // }9449 // kill @lvec;9450 // setring @P;9451 // lres0=imap(@Phelp1,@lr);9452 // kill @Phelp1;9453 // for(@n=1;@n<=size(lres0);@n++)9454 // {9455 // lres0[@n]=clearSB(lres0[@n]);9456 // attrib(lres0[@n],"isSB",1);9457 // }9458 //9459 // primary[2*@k-1]=lres0[1];9460 // primary[2*@k]=lres0[2];9461 // @s=size(primary) div 2;9462 // for(@n=1;@n<=size(lres0) div 2-1;@n++)9463 // {9464 // primary[2*@s+2*@n-1]=lres0[2*@n+1];9465 // primary[2*@s+2*@n]=lres0[2*@n+2];9466 // }9467 // @k--;9468 //=============================================================9469 9190 } 9470 9191 } -
Singular/LIB/sagbi.lib
r7ea5de r56ff8ef 1112 1112 //------------- change the basering bsr to bsr[@(0),...,@(z)] ---------- 1113 1113 def s=addNvarsTo(basering,z+1,,"@",0); setring s; 1114 // Ev hier die Reihenfolge der Vars aendern. Dazu muss unten aber entsprechend1115 // geaendert werden:1116 // execute("ring s="+charstr(basering)+",(@(0..z),"+varstr(basering)+"),dp;");1117 1114 1118 1115 //constructs the leading ideal of dom=(p-@(0),dom[1]-@(1),...,dom[z]-@(z)) -
Singular/LIB/tropicalNewton.lib
r7ea5de r56ff8ef 1100 1100 // disabled routines to check characteristic-freeness of tropical points 1101 1101 1102 // proc saturateWithRespectToVariable(ideal I, int k) 1103 // { 1104 // ASSUME(1,k>=1); 1105 // ASSUME(1,k<=nvars(basering)); 1106 1107 // def origin = basering; 1108 // int n = nvars(basering); 1109 // intvec weightVector = ringlist(origin)[3][1][2]; 1110 1111 // string newVars; 1112 // for (int i=1; i<k; i++) 1113 // { 1114 // newVars = newVars+string(var(i))+","; 1115 // } 1116 // for (i=k+1; i<=n; i++) 1117 // { 1118 // newVars = newVars+string(var(i))+","; 1119 // } 1120 // newVars = newVars+string(var(k)); 1121 // execute("ring ringForSaturation = ("+charstr(origin)+"),("+newVars+"),dp;"); 1122 1123 // ideal I = satstd(imap(origin,I)); 1124 // if (I==-1) 1125 // { 1126 // return (-1); 1127 // } 1128 // I = simplify(I,2+4+32); 1129 1130 // setring origin; 1131 // I = imap(ringForSaturation,I); 1132 // return (I); 1133 // } 1102 1134 1103 1135 1104 // proc stepwiseSaturation(ideal I) … … 1158 1127 1159 1128 1160 // proc checkForContainmentInTropicalVariety(ideal I, intvec w, int charInt)1161 // {1162 // def origin = basering;1163 // intvec wOne = oneVector(nvars(origin));1164 // execute("ring rInitialIdeal = ("+string(charInt)+"),("+varstr(origin)+"),(a(wOne),wp(w));");1165 1166 // ideal I = imap(origin,I);1167 // int tinI = timer;1168 // option(redSB);1169 // ideal stdI = satstd(I);1170 // attrib(stdI,"isSB",1);1171 // ideal inI = initial(stdI,w);1172 // tinI = timer-tinI;1173 // dbprint("time used computing initial ideal: "+string(tinI));1174 1175 // int tsat = timer;1176 // ideal satinI = stepwiseSaturation(inI);1177 // tsat = timer-tsat;1178 // dbprint("time used computing saturation: "+string(tsat));1179 1180 1181 // export(I);1182 // export(stdI);1183 // export(inI);1184 // export(satinI);1185 // return (rInitialIdeal);1186 // } -
Singular/dyn_modules/freealgebra/freealgebra.cc
rd0ca0b r56ff8ef 1 1 #include "Singular/libsingular.h" 2 #include <vector> 2 3 3 4 #ifdef HAVE_SHIFTBBA … … 80 81 } 81 82 83 static BOOLEAN p_LPDivisibleBy(ideal I, poly p, ring r) 84 { 85 for(int i = 0; i < IDELEMS(I); i++) 86 { 87 if (p_LPDivisibleBy(I->m[i], p, r)) 88 { 89 return TRUE; 90 } 91 } 92 return FALSE; 93 } 94 82 95 static BOOLEAN lpLmDivides(leftv res, leftv h) 83 96 { … … 97 110 poly q=(poly)h->next->Data(); 98 111 res->rtyp = INT_CMD; 99 for(int i=0;i<IDELEMS(I);i++) 100 { 101 if (p_LPDivisibleBy(I->m[i],q, currRing)) 102 { 103 res->data=(void*)(long)1; 104 return FALSE; 105 } 106 } 107 res->data=(void*)(long)0; 112 res->data=(void*)(long) p_LPDivisibleBy(I, q, currRing); 108 113 return FALSE; 109 114 } … … 124 129 else return TRUE; 125 130 } 131 132 static void _computeStandardWords(ideal words, int n, ideal M, int& last) 133 { 134 if (n <= 0){ 135 words->m[0] = pOne(); 136 last = 0; 137 return; 138 } 139 140 _computeStandardWords(words, n - 1, M, last); 141 142 int nVars = currRing->isLPring; 143 144 for (int j = nVars - 1; j >= 0; j--) 145 { 146 for (int i = last; i >= 0; i--) 147 { 148 int index = (j * (last + 1)) + i; 149 150 if (words->m[i] != NULL) 151 { 152 if (j > 0) { 153 words->m[index] = pCopy(words->m[i]); 154 } 155 156 int varOffset = ((n - 1) * nVars) + 1; 157 pSetExp(words->m[index], varOffset + j, 1); 158 pSetm(words->m[index]); 159 pTest(words->m[index]); 160 161 if (p_LPDivisibleBy(M, words->m[index], currRing)) 162 { 163 pDelete(&words->m[index]); 164 words->m[index] = NULL; 165 } 166 } 167 } 168 } 169 170 last = nVars * last + nVars - 1; 171 } 172 173 static ideal computeStandardWords(int n, ideal M) 174 { 175 int nVars = currRing->isLPring; 176 177 int maxElems = 1; 178 for (int i = 0; i < n; i++) // maxElems = nVars^n 179 maxElems *= nVars; 180 ideal words = idInit(maxElems); 181 int last; 182 _computeStandardWords(words, n, M, last); 183 idSkipZeroes(words); 184 return words; 185 } 186 187 // NULL if graph is undefined 188 static intvec* ufnarovskiGraph(ideal G) 189 { 190 long l = 0; 191 for (int i = 0; i < IDELEMS(G); i++) 192 l = si_max(pTotaldegree(G->m[i]), l); 193 l--; 194 if (l <= 0) 195 { 196 WerrorS("Ufnarovski graph not implemented for l <= 0"); 197 return NULL; 198 } 199 int lV = currRing->isLPring; 200 201 ideal standardWords = computeStandardWords(l, G); 202 203 int n = IDELEMS(standardWords); 204 intvec* UG = new intvec(n, n, 0); 205 for (int i = 0; i < n; i++) 206 { 207 for (int j = 0; j < n; j++) 208 { 209 poly v = standardWords->m[i]; 210 poly w = standardWords->m[j]; 211 212 // check whether v*x1 = x2*w (overlap) 213 bool overlap = true; 214 for (int k = 1; k <= (l - 1) * lV; k++) 215 { 216 if (pGetExp(v, k + lV) != pGetExp(w, k)) { 217 overlap = false; 218 break; 219 } 220 } 221 222 if (overlap) 223 { 224 // create the overlap 225 poly p = pMult(pCopy(v), p_LPVarAt(w, l, currRing)); 226 227 // check whether the overlap is normal 228 bool normal = true; 229 for (int k = 0; k < IDELEMS(G); k++) 230 { 231 if (p_LPDivisibleBy(G->m[k], p, currRing)) 232 { 233 normal = false; 234 break; 235 } 236 } 237 238 if (normal) 239 { 240 IMATELEM(*UG, i + 1, j + 1) = 1; 241 } 242 } 243 } 244 } 245 return UG; 246 } 247 248 static std::vector<int> countCycles(const intvec* _G, int v, std::vector<int> path, std::vector<BOOLEAN> visited, std::vector<BOOLEAN> cyclic, std::vector<int> cache) 249 { 250 intvec* G = ivCopy(_G); // modifications must be local 251 252 if (cache[v] != -2) return cache; // value is already cached 253 254 visited[v] = TRUE; 255 path.push_back(v); 256 257 int cycles = 0; 258 for (int w = 0; w < G->cols(); w++) 259 { 260 if (IMATELEM(*G, v + 1, w + 1)) // edge v -> w exists in G 261 { 262 if (!visited[w]) 263 { // continue with w 264 cache = countCycles(G, w, path, visited, cyclic, cache); 265 if (cache[w] == -1) 266 { 267 cache[v] = -1; 268 return cache; 269 } 270 cycles = si_max(cycles, cache[w]); 271 } 272 else 273 { // found new cycle 274 int pathIndexOfW = -1; 275 for (int i = path.size() - 1; i >= 0; i--) { 276 if (cyclic[path[i]] == 1) { // found an already cyclic vertex 277 cache[v] = -1; 278 return cache; 279 } 280 cyclic[path[i]] = TRUE; 281 282 if (path[i] == w) { // end of the cycle 283 assume(IMATELEM(*G, v + 1, w + 1) != 0); 284 IMATELEM(*G, v + 1, w + 1) = 0; // remove edge v -> w 285 pathIndexOfW = i; 286 break; 287 } else { 288 assume(IMATELEM(*G, path[i - 1] + 1, path[i] + 1) != 0); 289 IMATELEM(*G, path[i - 1] + 1, path[i] + 1) = 0; // remove edge vi-1 -> vi 290 } 291 } 292 assume(pathIndexOfW != -1); // should never happen 293 for (int i = path.size() - 1; i >= pathIndexOfW; i--) { 294 cache = countCycles(G, path[i], path, visited, cyclic, cache); 295 if (cache[path[i]] == -1) 296 { 297 cache[v] = -1; 298 return cache; 299 } 300 cycles = si_max(cycles, cache[path[i]] + 1); 301 } 302 } 303 } 304 } 305 cache[v] = cycles; 306 307 delete G; 308 return cache; 309 } 310 311 // -1 is infinity 312 static int graphGrowth(const intvec* G) 313 { 314 // init 315 int n = G->cols(); 316 std::vector<int> path; 317 std::vector<BOOLEAN> visited; 318 std::vector<BOOLEAN> cyclic; 319 std::vector<int> cache; 320 visited.resize(n, FALSE); 321 cyclic.resize(n, FALSE); 322 cache.resize(n, -2); 323 324 // get max number of cycles 325 int cycles = 0; 326 for (int v = 0; v < n; v++) 327 { 328 cache = countCycles(G, v, path, visited, cyclic, cache); 329 if (cache[v] == -1) 330 return -1; 331 cycles = si_max(cycles, cache[v]); 332 } 333 return cycles; 334 } 335 336 // -1 is infinity, -2 is error 337 static int gkDim(const ideal _G) 338 { 339 if (rField_is_Ring(currRing)) { 340 WerrorS("GK-Dim not implemented for rings"); 341 return -2; 342 } 343 344 for (int i=IDELEMS(_G)-1;i>=0; i--) 345 { 346 if (pGetComp(_G->m[i]) != 0) 347 { 348 WerrorS("GK-Dim not implemented for modules"); 349 return -2; 350 } 351 } 352 353 ideal G = id_Head(_G, currRing); // G = LM(G) (and copy) 354 idSkipZeroes(G); // remove zeros 355 id_DelLmEquals(G, currRing); // remove duplicates 356 357 // get the max deg 358 long maxDeg = 0; 359 for (int i = 0; i < IDELEMS(G); i++) 360 { 361 maxDeg = si_max(maxDeg, pTotaldegree(G->m[i])); 362 363 // also check whether G = <1> 364 if (pIsConstantComp(G->m[i])) 365 { 366 WerrorS("GK-Dim not defined for 0-ring"); 367 return -2; 368 } 369 } 370 371 // early termination if G \subset X 372 if (maxDeg <= 1) 373 { 374 int lV = currRing->isLPring; 375 if (IDELEMS(G) == lV) // V = {1} no edges 376 return 0; 377 if (IDELEMS(G) == lV - 1) // V = {1} with loop 378 return 1; 379 if (IDELEMS(G) <= lV - 2) // V = {1} with more than one loop 380 return -1; 381 } 382 383 intvec* UG = ufnarovskiGraph(G); 384 if (errorreported || UG == NULL) return -2; 385 return graphGrowth(UG); 386 } 387 388 389 static BOOLEAN lpGkDim(leftv res, leftv h) 390 { 391 const short t[]={1,IDEAL_CMD}; 392 if (iiCheckTypes(h,t,1)) 393 { 394 assumeStdFlag(h); 395 ideal G = (ideal) h->Data(); 396 res->rtyp = INT_CMD; 397 res->data = (void*)(long) gkDim(G); 398 if (errorreported) return TRUE; 399 return FALSE; 400 } 401 else return TRUE; 402 } 126 403 #endif 127 404 … … 134 411 p->iiAddCproc("freealgebra.so","lpLmDivides",FALSE,lpLmDivides); 135 412 p->iiAddCproc("freealgebra.so","lpVarAt",FALSE,lpVarAt); 413 p->iiAddCproc("freealgebra.so","lpGkDim",FALSE,lpGkDim); 414 136 415 p->iiAddCproc("freealgebra.so","stest",TRUE,stest); 137 416 p->iiAddCproc("freealgebra.so","btest",TRUE,btest); -
Singular/dyn_modules/systhreads/thread.h
r7ea5de r56ff8ef 5 5 #include <pthread.h> 6 6 #include <stdint.h> 7 #include < alloca.h>7 #include <stdlib.h> 8 8 #include <cstddef> 9 9 #include <exception> -
Singular/iplib.cc
r7ea5de r56ff8ef 644 644 return NULL; 645 645 } 646 /// args: NULL terminated arry of arguments 646 647 // return NULL on failure 648 ideal ii_CallProcId2Id(const char *lib,const char *proc, ideal arg, const ring R) 649 { 650 char *plib = iiConvName(lib); 651 idhdl h=ggetid(plib); 652 omFree(plib); 653 if (h==NULL) 654 { 655 BOOLEAN bo=iiLibCmd(omStrDup(lib),TRUE,TRUE,FALSE); 656 if (bo) return NULL; 657 } 658 ring oldR=currRing; 659 rChangeCurrRing(R); 660 BOOLEAN err; 661 ideal I=(ideal)iiCallLibProc1(proc,idCopy(arg),IDEAL_CMD,err); 662 rChangeCurrRing(oldR); 663 if (err) return NULL; 664 return I; 665 } 666 667 int ii_CallProcId2Int(const char *lib,const char *proc, ideal arg, const ring R) 668 { 669 char *plib = iiConvName(lib); 670 idhdl h=ggetid(plib); 671 omFree(plib); 672 if (h==NULL) 673 { 674 BOOLEAN bo=iiLibCmd(omStrDup(lib),TRUE,TRUE,FALSE); 675 if (bo) return 0; 676 } 677 BOOLEAN err; 678 ring oldR=currRing; 679 rChangeCurrRing(R); 680 int I=(int)(long)iiCallLibProc1(proc,idCopy(arg),IDEAL_CMD,err); 681 rChangeCurrRing(oldR); 682 if (err) return 0; 683 return I; 684 } 685 686 /// args: NULL terminated array of arguments 647 687 /// arg_types: 0 terminated array of corresponding types 648 688 void* iiCallLibProcM(const char*n, void **args, int* arg_types, BOOLEAN &err) -
Singular/ipshell.h
r7ea5de r56ff8ef 195 195 BOOLEAN isring = FALSE, BOOLEAN init_b=TRUE); 196 196 BOOLEAN iiMake_proc(idhdl pn, package pack, leftv sl); 197 void* iiCallLibProc1(const char*n, void *arg, int arg_type, BOOLEAN &err); 198 void* iiCallLibProcM(const char*n, void **args, int *arg_types, BOOLEAN &err); 197 void* iiCallLibProc1(const char* n, void *arg, int arg_type, BOOLEAN &err); 198 void* iiCallLibProcM(const char* n, void **args, int *arg_types, BOOLEAN &err); 199 ideal ii_CallProcId2Id(const char* lib,const char* proc, ideal arg,const ring R); 200 int ii_CallProcId2Int(const char* lib,const char* proc, ideal arg,const ring R); 199 201 // from misc.cc: 200 202 char * showOption(); -
Tst/Letterplace.lst
rd0ca0b r56ff8ef 9 9 Manual/makeLetterplaceRing.tst 10 10 Manual/serreRelations.tst 11 Manual/lpGkDim.tst 11 12 Manual/lpKDim.tst 12 13 Manual/lpMonomialPrinting.tst … … 18 19 Manual/lpSickleDim.tst 19 20 Manual/lpHilbert.tst 21 Manual/lpLmDivisible.tst -
Tst/Manual/letterplace_std.res.gz.uu
rd0ca0b r56ff8ef 1 begin 640 letterplace_std.res.gz 2 M'XL(",KG3EP"`VQE='1E<G!L86-E7W-T9"YR97,`39%=:X,P%(;O_16'L@N- 3 M6HS6?B`&-GIC&;MH=S>DZ$Q%$%<T97&_?B?1-KT0S7N>]SD$3Y_[[`,`*(/W 4 M[`T68A#+MBD7">#7N>D:83N)I=[`&+1<"-Y?V^*;GP=1+3O^NQQ$(:S3K`EG 5 MS:7GO"XGTV,8,>B;KH8>4@@\6WJC]^=X^ZLA5@R:3D#%:^R?RY];5R$;&R!F 6 M.+S`$5.UXK6M>=D7=N_%CH'6#`8N]*JC23?HKGC10H9E7Y+1WY"1C&Y$))$> 7 M8$"DCP\936=[[QRP@Q>VLZ<U.P:'Q#I\T3S5#N/$,,S3,%0RS"*BM7Y(U9%( 8 M5T,:BZ:N6GW'W3OF&VRE;-L@F@(TT%T4S&,-Q'F*T327RK&)J8'7]`E=Y^GX 9 :.,YWH0'3_UO]R]M@4R=YL?X!*I4F?1H"```` 1 begin 644 letterplace_std.res.gz 2 M'XL("(6:P5P"`VQE='1E<G!L86-E7W-T9"YR97,`?9M)CQQ7=H7W^A6)AA=4 3 M)9/]Y@$""=CHC0##"[4!+PR"D%IL@3`A-ZAJN.A?[^][.41&RG:SR:J,C'C# 4 M'<XY][[0G__U3]__R^%PB.\.__S]/QW^\/S;\YO/GW[ZPW<'?OOPZ==/SZ^^ 5 M_>X;?Q[>O3M\_OC\_/'+WS[_^)>/'WY[_OG-KQ__Z\UOSS\^?_/GRS#I,LQ? 6 MOWS\^,M/YY%N7^9WA]OOY<WACW\\Q-OG^N;PY=.OOQR^'-X>PNM7+Z^_OO[O 7 M;U__Z6_;T^W=X=.OSX>?/_["V!]^^L^___HS]];MAOZ.+_]Z^(&K3O^/GW_Y 8 M^-.7'U]]>5V_W6X:[PZ_?7Q>4_VP79V,_?/''S\?ON?AT\O3UU-_^OKT]9B? 9 M7IY>7A^X\/1RXN_3U]LS,3#2\\^OOF?P#_\>W[]=]V[/<C&]?YN2#W$M/ZW' 10 M3RGZ\>GEN&Y:M^7SLTYQO?UXO>VTW58<;81\OL`(<>9P^7K=4-^_Y=+Y^Q?' 11 MZ#5N-[=X=VM[__;K[>-U0W%S3TQO#O_QZ?/GPY=MOWAO7=K,%LO=$W4Y-!U> 12 M_>5#^1`_]`__]NWMN_;@W/+Z);]^2:]?XL[%\?_TX*%O+HR;"U_]<'=YY\.7 13 M\O123JD^^4LZO40_MB=_YM-</]/1?^/KZP`IO%F/Y6/,Y\>.,:U?HD]X[5C6 14 MSW0L<?T2<<]YZ#7@-E1DJ'R9:CV0SO<]3HF98[^LD;4F?SJV]VYW949;7[DP 15 M1SJ5\TXNPY[W=S=L.3\0C^7R?5X_X\U8J3X$[_]Z^SF$+ZNZS%BO]Y1PNXD` 16 M_G]V>P[=VS:OVSNE<-U$#Y<Q4]@&K;=GN".4BR-BS1=7M'&9K,U^=@9>*9>) 17 M4[L,?LHU]8N[N;@-WV[#EU,,Y;+B4POILJI69[]N=8[-(OW]VXLM7$\[_[Z> 18 M8)C;IW3JN5X_^-@@>Z^/I>,XW^0":VG;$#WTN`U1T\5&ES$F0!':>8BUQ+,) 19 MUL)C#+%=/[*6,OKV.:VOT^US/(YXGG49M<7;TC3&V%9WS#&GZQ(*^1#JO"TI 20 MGV*/:6SK-V'R''&W\1@PV"PUS5+JN"[>!3/43".%=K>+%FLI+2^C7/>29BJY 21 MQQI&O]L1M@FAII%3'MN^8LRM])##V+:71J^ISG&YMJ*'SS-D]Q.NFR4B9RZU 22 MS%KNKA)!O0V6V6>K=Y9H?;("K%QJV&(`>*^ML8;&WMKF/2Q39PTAY=IRBR7O 23 M+$3^I8EY&/*\E?.R0XJ)*(KE9C2V5]H8/5RNK:440IRU5+DC7Q&NQL"(;=GA 24 M8C&"*T2R(:;M3I!DY-GQQ643:^8Z6IACYK;9*^:<:HYSC+39"V\';FR]I;2% 25 M3,R#_Y41YYV]VFRY,U>;H]P%T)AQAC"P52WWUB+YR+DY8\._<6<L$(D8"?F< 26 MO&L/!&&]>F=M@$?CN/,VL[04Q[;R08"5?-GS\G+K>*;,;<6X%K*=,6_I>6I` 27 MR`C8<4L*N``KP\1Q/G@55#1!KWA9XVW!QRL&^GM.=_8`P>ZL0++O4TD)D*^D 28 MM,)MS&U4MASG-G#JZ3Z*<]L2^93;V&8]$I5AF]:L?IA7+(ZCW.82?6>,F]-/ 29 M/?;1YMT$^+GWDK9)B$ARIN>[B7+'Q"6T'<A%D/EE[W(@EU`C&\CK-$:.;<9: 30 M6Z@DPIP]D"*D[(B%9,Q`36XY\Q5I"T;DVMEZ!YQS:9&'"K?WF+N.G#,!?J&G 31 M`D3-.@K)`*!Q>V2241%8D5L8O>78Y^9@EP_Q1+)_Q#1[6T;C]R98Y9);SZ.) 32 M9	#(/L9)S0B/Y!6(]&?O)P9@*P35T7@9G.K;!A"8XVB4A`@[LZN2@DECJE 33 MJE!J9<*"OF.8IP=C#8W501/7`W;-+-*QTQGB2(5,`.58@_B5&""Q3]AAEIXG 34 MN.=T3,@"@"H`(X*R';0DU3/VJ0#Q&(VX8W23E^6'EA/_!Y=PP[Q;#P1!G`'P 35 MV"E6`!1W]3'88\/>G9]I1%"X59W+2C)3L^8$6'`#:^BES0*MUL9204?2D;\% 36 MS,^%=8VN=1TKUH&I6FM:-F'D#.#?>VM1$RA4E_')C5HR[I9$V";C8%C,R@\P 37 M5EH`P0AAAAQR2A\U@.O\PW:ADXRQ(+H\(K[!:Z7@8)<6ZL)WJ`ZD;C@]CHX[ 38 M'KT$E1.-F+LG8P,[81<,/J8AD(UQ.$1S`XS$WB1(6V%K$UMW8")%PWU@UTF: 39 MM0XY5L)5VFFAL[`4!3@@`<O"Z2'=+0&=HYWG\@CXB^NF&8(WV>FH8",6Q_O, 40 MBI_X-;$9K`W]L"-0O/!L-1%U!+\V/)M8C\MJ5;$!-Z?6.DO#V&7320L,)K@^ 41 M_5+@GZ0!ZU4*P"9E5)['_CD!*?H:N!\XC]C(F1!FSY.O8&"BA"S6WVR0_&Q5 42 M_612:\FA9]BW:19B?TC=R0I-102$8W0-#&T3F4F?+&P@R4A`HQ<;X!?N`E.R 43 MWC'N!EDHSQ("U03E<7U*Z!)_"(DDV^,V2"3D\1`!"5DTPA()'1R46!DQ,0FI 44 M9!2!4PF^QL*U,P:K&$4'D7GZ&C1)4Y0B>DD%MDD*8XD63.1$FL*_P,#<@'ZQ 45 M,Z,:[`1$(+0#""6DX",`E#P#N=AMJ@0^:&-DLV?"04$@@I*5$'X3,[0\L:[8 46 M@=>)=9`<__`K2[P/MJ-I6;KN-FF;F8_Q"!C2!(@FW)L0`L6,N0PPD!N4LI,0 47 M;2*ANBSP''#)\DFS5*,X&8TPC(>7^'(78<U<CGU],;4AT$\D:$CF"\0O.U#5 48 M%%P'@$<A.)%C9#>X1'*;'F"*#(&A15RB3$!FV7UYCLAM;1=7)$,?XAAX0)BP 49 M6>*)U;-R2&C9:.`<S15<#R.X(3"B+G@-?!X(59`_*6V5S6"`/H>(,!(H60G0 50 M1SQ)43P!`,'.:.P4,8`T9$`21H'"MX._6%#EHSYCL5"`6%Z!#O:#";#41*CB 51 M=@`N+\1LFP*Z:%"(Q`2%T/$`[F%F8D/,DD.'XV,9890L5<G581)/0TNC,!$A 52 M0(@"=9`XM<K00R-L$F7%*C?#F=*G4@SH(=:7*@8S`3R(12)GFR#Q9)!!OFM$ 53 MK,YFY)(B72:V$PB3X'T!;#B71G=H2,DA36$$H%4&Z`(FR!.0&18OH.B:*:KM 54 M)6T`D5QIV(TM:?61F#EI0LR][*(I"-^Q"\O5LY'*HP*W5A=G:B!/9>FBFP@J 55 MJ6GEA'PH$V(:HH(1V340RPB$%?LWA%451755PBX8EX29ZE)2J6DEXM[L@6Z) 56 M<ZXT,1A=SV"=:RB7Q?.$J%A#L0`^=F-:<,-NKI[AB-9X5^1=0G`)<T8%++$T 57 M*V07C$9.F;":7;*"V]FGJ*&"P+RZ-G>1&D2>IB!&A%"[J-W&S7SGXK2[?5P) 58 M`I,_I#ZDO7@WFG,@(-L$*8%R-#J!719[2JOJ4Q:FR[+B40D!WHZXBVYJ_6J8 59 M9=2`'*-\3*"JA@`-V`H,I;)JJYX3^P!*XHD_X$%<0"5U)05=5=[TL(_JZ<#D 60 M#,8DMC*A,M43A!N7*=I0%UB7[['A5'Z1/<:,FY$QUK:C;%BL3Z#].'9PR_=# 61 MDJ+<<H6)VX/@Q542!D0J:J71634$!2@AUJO[!=]A60:>HI[215%2DSO<$_B) 62 MU;)FY3<Y9LFO"I0XAGEMH%"5`M8D(J;+`!HN9R.&5-3VXCE[[^JC0A@NG173 63 M7K)!YZ23#,ENDH\"D^#,7(^:'/(*!L1:Q<B49YS"!4P9.!!P,+P)*V`@[$?X 64 M'7A2J<FZ-PM:/>&37>21JCLF+93ZQ,#>M]1C(%W8>0,!1:"4O?E,/7-XAT-4 65 MZ*0SYJGY<87EVG2Z5.Y'TFDW,9FR(UV*.B[U/3L1SB7]+F_KM3.5K@VUL),, 66 MIYWK*>WJR&$W%?`)(>R)D!3(Z7$J2CO<0L"1@.U^0UB3E"%]VV:1<Q,D+[8U 67 MQK<R\=S!@6@(55@1Y']@J(!T4RFKRLO>02@'Z'ZIY#9W^Q*NSYH.L5/B;H?P 68 M-Y[M%!GZ+.W"U`X>J3:L8@I_XN.N*5\)2`M452<%ZC+`Q!6DG::@T!">JGAC 69 MX0;[5B43Z$-Z6OU1Z5B2P3)AZV*L/AYU#)@'0`U[5UUZ+-(!P('X@7:[VF/` 70 M*@H<N%T%"7\.R9OTQTO@L6*P[)$V.**CH;#6H^I^S$/&HMRFM)Y,:TJ-*3P. 71 M>-$R/%N:!.OHN9)615UVB6-O`#XN2TC8HF*9"R)@EFH:(TG(<Z#0\CJ[(7-? 72 M!0Q9<'M73"W*(.4W\#OW.9@2MK0;H![%S(IKUJBEE`=P3+;,0.=9NJ('B`5K 73 M3<S!DK*J&G6H`,ICKV.M8?F#D[(=2="9C014ET6ZX`*1*_PLNN4NV$$>LT@M 74 MX!"4D(T[0!#^PO-C[#$5C2<ARCOL&&X05_DX5//$,W^3YL;=[#XJS6$/=DJ= 75 M3*A,:^!0UK0I+PVSAU/L/&U,8#0L;$_4VHNB@=#&/%6%!6:`KG9;F:$9<NS) 76 M-:L4+#&E-,.8*=OOD-3F`R2/69@"QR%^W;Z*4,ECX3T7!C,-,I4$M=XR@PF3 77 MJ3C0N)`WL]UZE.<^.RED`2'C*`497GD(`K/`G@4.C6Z?UT*""\D,(G/D/$J! 78 M060B/^ZSYZ3JGM3G2E>7C:.P*CIH29YH!XNOIZUCPE5/(*I!,)-J=:XQ49;I 79 M=BKEN`K_9J\\:R\$,J)O552&"RJ(@"$(<>O4Q,/^$W)`_"`(L2XXT"Q)RXYQ 80 MCGQM/5<M0]0'D-LB'"MO##[TZKI0;"(4R\-ASXC?[%OR$.,C[IN1N],D3&I) 81 M$VV.V8<8]JG($(3):I4`\(5457@!%DMGD?#3F@63&^!(2RQDVN]`=2`SFMZU 82 MH]/-OZY$D[J#+5_W7RQPK95'7(+6=+1,*VJN;&;*^4BX/>O$U4QB3>1L,1-9 83 M)EQAL4IY;$.(/+=D!SN()]/.LH`%HP6ROPT['$/9!6*4':8/ZY]IK82P#+8< 84 MA)!L/X3`L@"F9,R6L/C2>@;!OJI8U,>P[]A+,IR&9QR_Y]Q)GJ@LF_V49M$" 85 M('@Z`/:8R>A_0955)&LFH@PG0DTM61!X[%+LU)2['$DGE)#-$C*[NEI[&>AY 86 M_)Y5KU9X^B"N8JO9=XJB6%!!>7F6M)T6K(8R<TNOEBK]7'_WU2JP4*"2M@T" 87 MN!JZ:LJN23PU(*V3[#9'V66;!SX=]&``#6^P%GLL"+.V0H.PP&CV.P1P:DA, 88 MD>6)8FM^/E8#1PJS8D=`65C2@G%K&78)>]J$`A%;//<);4TFZ<CZ&;EIJ470 89 MC+WXMY-"=@X?E"BC(I],CK9+U1I6RM4U,M$P0;D-@;=*:3M/81UGW646Q*L4 90 MM1PN%D3^0]2**-PN/(##:?41VUD*H#^:#:YY[BR9+3L64CQ;6;95./*\>HRL 91 MA#'4$X`)&=.:-9O\:)K!;-VZ`>"DH*;LLJ&UYQY+)@*DK>82HEQXI<PS/(07 92 MA!%Q9)-V!35,!+DB!5;Y296-.A-;'@2\ZD$*MB'7XU(9=OQM/Q0S5?FF7X/I 93 MVUBY=9\B0^LF0ZK9H\W](7]R0$BNWANJ`9=*]+)KM0\*S`Y(RC86O]O]P]'6 94 M,LF:<+:[$/?`!5JV4B)S$>6V(FQJF2[=0Z4RUZ$!WY?UM1TATK#V^V&2ASCV 95 MC(!BS6B!BPA)(CO`G^6GU4C5`,Y#<25/*ZQV+&>_)Q(+V`O):T:N)"OV$.<Z 96 M5$1\>E06Z[GC1P3./:<=53?$;;1)G"WF;`1FR1HW$M/=DPCD!`A"/LJ,P5)] 97 M7^W@Y>$)!F%FL`7//Z.%%[N$(:.)K@9824S!F^P-CC!VZ815A'1@4>YP%7V= 98 M2`ZC:X%T#PLVH&RN-`NB9NH_%,S8TA!6`MB#MS`%.>QS1J-&38L:I`2)-A'# 99 MRDD(K>ZJE'+JUF%RL(<7LK?M9'&,8AS&M518.E&("^N\>G4^[-L]\,ZJH2TI 100 M04)E.:1),G@VQ?KF.CM)'L?7:4_8O)+^U['HGF3(QVZ%HTH%$J+-3//$+N-< 101 MR[,Q2;9:*`\)@F3!ACD^5HAY-0"MZ:T@SPT5NWVV04$F]!S;UCC5>C\JU>\B 102 MKQR'66^OT1,#6*\D-:1GH"TLQ>LF]'5,\DXKNRP2:E7^"#P"=O35(E7HV21C 103 M+=D/4_6^FD^YQ7WZV+!H]M64'JS6(R(!TJ[I-#FG:AZ,QV!$8M]E7SS9L4EJ 104 M@&J,*Z`!GF0G14PEXFQAJV;K.HYX**"4SW-U1DP9/![M$())=L3SVC"?F@HF 105 MIO!0)/5U@"'"P5R>`F'V2*+*@MU.$(R.S\[UR%U/8>6'HJ18M\65`U-.)S7! 106 M=)Z-UD8L;`JUR2.$NV;S6;0M5K3!UST'P?C8S?K:E5"KJK7Q0]=V5GEU7\=' 107 MJPQ<7-8)F!W5J`?-C&K&>MCFN=HZ?JMN-;:'7J8G)AY46#^LW@II*K$&+6`A 108 ME06]8JWKBCR.W#<DLHT?,M>QLZAG7QZ@-G"QNXW"8E_2YC?!%ZS<'R/?ON.0 109 M6O4<&(+-TC)CL7_JV52XO0.QNA7$6;:YM1I"VA6`)[B0':7>!]9Z30"+-OO& 110 MJPG!DC"(Y,W6QI(C^?[]'VR%I"!NL`Q.46MT6\68T$.H%'9ZC80G2CWHZ[8T 111 M@5,%E<?"\/:2^3LU!OYU3[]E%O+`3BY%`F+0MO4>OX^^*^-K"D5)7%=7&4'? 112 M[=81"WE7CQ^[M=.TUP=T*M@]EF$J]FHEW/=A=TJV(8I:E7$]&$I*Y2DNXT"D 113 MSKZMXIF@*;].[:VK;0_F:M_?&CF8S[NPP@]](0%TX'FF;F?E'M58M]K>;?L& 114 MC"?[1$J,ZY"^VAHD*0PJ#<93+<7R&#;Y_=MDZ6@_&HI.ZYV.?-?>0TUE6_2K 115 MB-U>M5HV(!IL+TA[1-C802D)'X0`0-]@F#N.!RM-`_4E1(-8&_M*ERJ=`GJ] 116 MI:"<\HR^A'T8-"6^0$CP]O;0'[?[RG:M>E=K?=^R!%ILI)`2+L%CMOWA()K# 117 M5R;.YZQJWX?^A_6D?9YI+G3Q]J&%`8(4@<1""'JW/9_;PSD\P(H_@F=3MH`, 118 MI_Y8(&7?&/2]C(`-2EGD9^MJLU6^+&AFNS*6@G;@+=,7RN9[^>#!B3TZSQ*# 119 M?09[AKM$]]!%\*VK11I\=6.%9]@E>%N]KFH_76S'2YX!SM5GN<OKXALDI:PF 120 M%^'AV6%:DGG'6D<T</)PRY<P1"R+R+EO<I[6D9HZT$;\ZH#AG=+W[<X,UGM0 121 MC?.(>JM\*'L=D.Y;Q$L\V;2P%S4\(O>4I(Z]3$)R$AH`RRCKZ-?"CRR=H<;] 122 M&7[R#).5@8V>QK3S09Q=\=SW^;GTFKTEK>$A>5WHC._K^)V0\5TC]8:"M?K6 123 M&+!5[G7[N98<RKF\R@3/VV"6<BXX\SU2K;,<9X8]H(5U4K;/5IPH>J));3MV 124 M:\75JMDGK?U(6[(.(JEY,&^IM]-!Z6B1%ZR75EFL\BG3PY2=V(I'SSN'[1.% 125 M.`+)/*^E['M(>-,W7SP78\;I>S1S[@^KCE!=]_P(`0*5K^X^(I'@VY]*+#%? 126 M/9+R;1!%DIH_UOTK(=E>D3RU#NK7^Y&RU_"ECWV[?V3?5%CUJ:]LV,FK=E9' 127 M?1"X^-M^H\=;S5/7ZBM0OGB!-?>.O[Z7W+8WRE-_L_X;!/_[@K__]BI^^]T_ 128 +?/,_T)H[0:XP```` 10 129 ` 11 130 end -
Tst/Manual/letterplace_std.stat
rd0ca0b r56ff8ef 1 1 >> tst_memory_0 :: 15 48675018:4114, 64 bit:4.1.1:x86_64-Linux:nepomuck:3318562 1 >> tst_memory_1 :: 15 48675018:4114, 64 bit:4.1.1:x86_64-Linux:nepomuck:21501603 1 >> tst_memory_2 :: 15 48675018:4114, 64 bit:4.1.1:x86_64-Linux:nepomuck:21912644 1 >> tst_timer_1 :: 15 48675018:4114, 64 bit:4.1.1:x86_64-Linux:nepomuck:61 1 >> tst_memory_0 :: 1556191877:4120, 64 bit:4.1.2:x86_64-Darwin:Karims-MBP.localdomain:20013576 2 1 >> tst_memory_1 :: 1556191877:4120, 64 bit:4.1.2:x86_64-Darwin:Karims-MBP.localdomain:21011760 3 1 >> tst_memory_2 :: 1556191877:4120, 64 bit:4.1.2:x86_64-Darwin:Karims-MBP.localdomain:21068800 4 1 >> tst_timer_1 :: 1556191877:4120, 64 bit:4.1.2:x86_64-Darwin:Karims-MBP.localdomain:22 -
Tst/Manual/letterplace_std.tst
rd0ca0b r56ff8ef 1 1 LIB "tst.lib"; tst_init(); 2 2 LIB "freegb.lib"; 3 4 // 1 3 5 ring r = 0,(x,y,z),Dp; 4 6 int degree_bound = 5; … … 6 8 setring R; 7 9 ideal I = -x*y-7*y*y+3*x*x, x*y*x-y*x*y; 8 ideal J = std(I); 9 J; 10 std(I); 11 12 kill r; 13 kill R; 14 15 // 2 (c_4_1_7_W) 16 ring r = 0,(x4,x3,x2,x1),Dp; 17 def R = freeAlgebra(r, 7); 18 setring(R); 19 ideal I = x4*x4-25*x4*x2-x1*x4-6*x1*x3-9*x1*x2+x1*x1, 20 x4*x3+13*x4*x2+12*x4*x1-9*x3*x4+4*x3*x2+41*x3*x1-7*x1*x4-x1*x2, 21 x3*x3-9*x3*x2+2*x1*x4+x1*x1, 22 17*x4*x2-5*x2*x2-41*x1*x4, 23 x2*x2-13*x2*x1-4*x1*x3+2*x1*x2-x1*x1, 24 x2*x1+4*x1*x2-3*x1*x1; 25 std(I); 26 10 27 tst_status(1);$ -
libpolys/polys/shiftop.cc
rd0ca0b r56ff8ef 13 13 * -> wait until the new interface is released 14 14 */ 15 #define SHIFT_MULT_COMPAT_MODE 15 /* #define SHIFT_MULT_COMPAT_MODE */ 16 16 17 17 #ifdef SHIFT_MULT_DEBUG … … 718 718 BOOLEAN _p_LPLmDivisibleByNoComp(poly a, poly b, const ring r) 719 719 { 720 if(p_LmIsConstantComp(a, r))721 return TRUE;722 720 #ifdef SHIFT_MULT_COMPAT_MODE 723 721 a = p_Head(a, r); … … 726 724 p_mLPunshift(b, r); 727 725 #endif 728 int i = (r->N / r->isLPring) - p_LastVblock(a, r); 729 do { 730 int j = r->N - (i * r->isLPring); 726 for (int i = (r->N / r->isLPring) - p_LastVblock(a, r); i >= 0; i--) 727 { 731 728 bool divisible = true; 732 do729 for (int j = r->N - (i * r->isLPring); j >= 0; j--) 733 730 { 734 731 if (p_GetExp(a, j, r) > p_GetExp(b, j + (i * r->isLPring), r)) … … 737 734 break; 738 735 } 739 j--; 740 } 741 while (j); 736 } 742 737 if (divisible) return TRUE; 743 i--; 744 } 745 while (i > -1); 738 } 746 739 #ifdef SHIFT_MULT_COMPAT_MODE 747 740 p_Delete(&a, r); -
ppcc/autosetup/cc-lib.tcl
r7ea5de r56ff8ef 167 167 proc cc-check-alloca {} { 168 168 cc-check-some-feature alloca { 169 cctest -includes alloca.h -code { alloca (2 * sizeof (int)); }169 cctest -includes stdlib.h -code { alloca (2 * sizeof (int)); } 170 170 } 171 171 }
Note: See TracChangeset
for help on using the changeset viewer.