Changeset 8af63a in git
- Timestamp:
- Dec 7, 2014, 6:13:28 PM (9 years ago)
- Branches:
- (u'spielwiese', 'd0474371d8c5d8068ab70bfb42719c97936b18a6')
- Children:
- 11d9d00209c06444540d1707f2976c99061746a9
- Parents:
- 8e682d5f25a78c164969b915eab58b33631463d205e73920ce04956d9a1cfb78192a4aeafb5f5b70
- Files:
-
- 26 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/algebra.lib
r8e682d r8af63a 1 1 /////////////////////////////////////////////////////////////////////////////// 2 version="version algebra.lib 4.0. 0.0 Jun_2013"; // $Id$2 version="version algebra.lib 4.0.1.1 Dec_2014 "; // $Id$ 3 3 category="Commutative Algebra"; 4 4 info=" … … 77 77 // ---------- create new ring with extra variables -------------------- 78 78 execute ("ring R=("+charstr(br)+"),(x(1..n),y(1..m)),(dp(n),dp(m));"); 79 execute ("minpoly=number("+mp+");"); 79 if (mp!="0") 80 { execute ("minpoly=number("+mp+");"); } 80 81 ideal vars=x(1..n); 81 82 map emb=br,vars; … … 180 181 execute 181 182 ("ring R=("+charstr(br)+"),(x(1..n),y(1..m),z(1..n)),(lp(n),dp(m),lp(n));"); 182 execute ("minpoly=number("+mp+");"); 183 if (mp!="0") 184 { execute ("minpoly=number("+mp+");"); } 183 185 ideal vars = x(1..n); 184 186 map emb = br,vars; … … 267 269 // neu CL 10/05: 268 270 int is_qring; 269 if (size(ideal(gnir))>0) { 271 if (size(ideal(gnir))>0) 272 { 270 273 is_qring=1; 271 274 ideal IdQ = ideal(gnir); … … 276 279 execute ("ring r1= ("+charstr(basering)+"),(x(1..n),y(0..z)),lp;"); 277 280 // execute ("ring r1= ("+charstr(basering)+"),(y(0..z),x(1..n)),dp;"); 278 execute ("minpoly=number("+mp+");"); 281 if (mp!="0") 282 { execute ("minpoly=number("+mp+");"); } 279 283 ideal va = x(1..n); 280 284 map emb = gnir,va; … … 364 368 { 365 369 execute ("ring R1=("+charstr(br)+"),y(1..m),dp;"); 366 execute ("minpoly=number("+mp+");"); 370 if (mp!="0") 371 { execute ("minpoly=number("+mp+");"); } 367 372 setring br; 368 373 map phi = R1,A; … … 372 377 // ---------- create new ring with extra variables -------------------- 373 378 execute ("ring R2=("+charstr(br)+"),(x(1..n),y(1..m)),(dp);"); 374 execute ("minpoly=number("+mp+");"); 379 if (mp!="0") 380 { execute ("minpoly=number("+mp+");"); } 375 381 if( tt == 1 ) 376 382 { … … 397 403 // order 398 404 {execute ("ring R3=("+charstr(br)+"),(x(1..n),y(1..m)),(dp(n),dp(m));"); 399 execute ("minpoly=number("+mp+");"); 405 if (mp!="0") 406 { execute ("minpoly=number("+mp+");"); } 400 407 if ( s != 0 ) 401 408 { ideal vars = x(1..n); … … 495 502 def S = L[2]; 496 503 execute ("ring R=("+charstr(basering)+"),(@(1..n),"+varstr(pr)+"),(dp);"); 497 execute ("minpoly=number("+mp+");"); 504 if (mp!="0") 505 { execute ("minpoly=number("+mp+");"); } 498 506 ideal ker = fetch(S,ker); //in order to have variable names correct 499 507 string sker = string(ker); … … 645 653 // ------------ create new ring with extra variables --------------------- 646 654 execute ("ring R=("+charstr(br)+"),(x(1..n),y(1..m)),(dp(n),dp(m));"); 647 execute ("minpoly=number("+mp+");"); 655 if (mp!="0") 656 { execute ("minpoly=number("+mp+");"); } 648 657 ideal vars = x(1..n); 649 658 map emb = br,vars; … … 717 726 // ------------ create new ring with extra variables --------------------- 718 727 execute ("ring R=("+charstr(br)+"),(x(1..n),y(1..m)),(dp(n),dp(m));"); 719 execute ("minpoly=number("+mp+");"); 728 if (mp!="0") 729 { execute ("minpoly=number("+mp+");"); } 720 730 ideal vars = x(1..n); 721 731 map emb = br,vars; -
Singular/LIB/finvar.lib
r8e682d r8af63a 1 1 ////////////////////////////////////////////////////////////////////////////// 2 version="version finvar.lib 4.0. 0.0 Jun_2013"; // $Id$2 version="version finvar.lib 4.0.1.1 Dec_2104 "; // $Id$ 3 3 category="Invariant theory"; 4 4 info=" … … 1490 1490 string mp=string(minpoly); 1491 1491 execute("ring R=("+charstr(br)+"),("+varstr(br)+"),ds;"); 1492 execute("minpoly=number("+mp+");"); 1492 if (mp!="0") 1493 { 1494 execute("minpoly=number("+mp+");"); 1495 } 1493 1496 poly A(1)=0; // A(1) will contain the sum of n terms - 1494 1497 poly min; // min will be our smallest term - … … 7626 7629 string mp=string(minpoly); 7627 7630 execute("ring R=("+charstr(br)+"),("+varstr(br)+",y(1..m)),dp;"); 7628 execute("minpoly=number("+mp+");"); 7631 if (mp!="0") 7632 { execute("minpoly=number("+mp+");"); } 7629 7633 ideal I=ideal(imap(br,F)); 7630 7634 for (int i=1;i<=m;i++) 7631 { I[i]=I[i]-y(i); 7632 } 7635 { I[i]=I[i]-y(i); } 7633 7636 I=elim(I,1..n); 7634 7637 execute("ring "+newring+"=("+charstr(br)+"),(y(1..m)),dp(m);"); 7635 execute("minpoly=number("+mp+");"); 7638 if (mp!="0") 7639 { execute("minpoly=number("+mp+");"); } 7636 7640 ideal vars; 7637 7641 for (i=2;i<=n;i++) … … 7855 7859 string mp=string(minpoly); 7856 7860 execute("ring R=("+charstr(br)+"),("+varstr(br)+",y(1..m)),lp;"); 7857 execute("minpoly=number("+mp+");"); 7861 if (mp!="0") 7862 { execute("minpoly=number("+mp+");"); } 7858 7863 ideal J=ideal(imap(br,F)); 7859 7864 ideal I=imap(br,I); … … 7881 7886 G=compress(G); 7882 7887 execute("ring "+newring+"=("+charstr(br)+"),(y(1..m)),lp;"); 7883 execute("minpoly=number("+mp+");"); 7888 if (mp!="0") 7889 { execute("minpoly=number("+mp+");"); } 7884 7890 ideal vars; 7885 7891 for (i=2;i<=n;i++) -
Singular/LIB/grwalk.lib
r05e7392 r8af63a 255 255 } 256 256 257 proc gwalk(ideal Go, list #)258 "SYNTAX: gwalk(ideal i );259 gwalk(ideal i, int vec v, intvec w);257 proc gwalk(ideal Go, int reduction,int printout, list #) 258 "SYNTAX: gwalk(ideal i, int reduction, int printout); 259 gwalk(ideal i, int reduction, int printout, intvec v, intvec w); 260 260 TYPE: ideal 261 261 PURPOSE: compute the standard basis of the ideal, calculated via … … 284 284 //print("//** help ring = " + string(basering)); 285 285 ideal G = fetch(xR, Go); 286 G = system("Mwalk", G, curr_weight, target_weight,basering );286 G = system("Mwalk", G, curr_weight, target_weight,basering,reduction,printout); 287 287 288 288 setring xR; … … 300 300 ring r = 32003,(z,y,x), lp; 301 301 ideal I = y3+xyz+y2z+xz3, 3+xy+x2y+y2z; 302 gwalk(I );302 gwalk(I,0,1); 303 303 } 304 304 … … 346 346 } 347 347 348 proc fwalk(ideal Go, list #)349 "SYNTAX: fwalk(ideal i );350 fwalk(ideal i, int vec v, intvec w);348 proc fwalk(ideal Go, int reduction, int printout, list #) 349 "SYNTAX: fwalk(ideal i,int reductioin); 350 fwalk(ideal i, int reduction intvec v, intvec w); 351 351 TYPE: ideal 352 352 PURPOSE: compute the standard basis of the ideal w.r.t. the … … 372 372 373 373 ideal G = fetch(xR, Go); 374 G = system("Mfwalk", G, curr_weight, target_weight );374 G = system("Mfwalk", G, curr_weight, target_weight, reduction, printout); 375 375 376 376 setring xR; … … 387 387 ring r = 32003,(z,y,x), lp; 388 388 ideal I = y3+xyz+y2z+xz3, 3+xy+x2y+y2z; 389 fwalk(I); 389 int reduction = 1; 390 int printout = 1; 391 fwalk(I,reduction,printout); 390 392 } 391 393 … … 437 439 } 438 440 439 proc pwalk(ideal Go, int n1, int n2, list #)440 "SYNTAX: pwalk(int d, ideal i, int n1, int n2 );441 pwalk(int d, ideal i, int n1, int n2, int vec v, intvec w);441 proc pwalk(ideal Go, int n1, int n2, int reduction, int printout, list #) 442 "SYNTAX: pwalk(int d, ideal i, int n1, int n2, int reduction, int printout); 443 pwalk(int d, ideal i, int n1, int n2, int reduction, int printout, intvec v, intvec w); 442 444 TYPE: ideal 443 445 PURPOSE: compute the standard basis of the ideal, calculated via … … 477 479 ideal G = fetch(xR, Go); 478 480 479 G = system("Mpwalk", G, n1, n2, curr_weight, target_weight,nP);481 G = system("Mpwalk",G,n1,n2,curr_weight,target_weight,nP,reduction,printout); 480 482 481 483 setring xR; … … 492 494 ring r = 32003,(z,y,x), lp; 493 495 ideal I = y3+xyz+y2z+xz3, 3+xy+x2y+y2z; 494 //I = std(I); 495 //ring rr = 32003,(z,y,x),lp; 496 //ideal I = fetch(r,I); 497 pwalk(I,2,2); 496 int reduction = 1; 497 int printout = 2; 498 pwalk(I,2,2,reduction,printout); 498 499 } 499 500 -
Singular/LIB/modwalk.lib
-
Property
mode
changed from
100644
to100755
r05e7392 r8af63a 16 16 17 17 PROCEDURES: 18 modpWalk(ideal,int,int,int[,int,int,int,int]) standard basis conversion of I in prime characteristic 18 19 modWalk(ideal,int,int[,int,int,int,int]); standard basis conversion of I using modular methods (chinese remainder) 19 20 "; … … 29 30 //////////////////////////////////////////////////////////////////////////////// 30 31 31 static proc modpWalk(def II, int p, int variant, list #)32 proc modpWalk(def II, int p, int variant, int reduction, list #) 32 33 "USAGE: modpWalk(I,p,#); I ideal, p integer, variant integer 33 34 ASSUME: If size(#) > 0, then … … 80 81 } 81 82 } 82 83 //------------------------- make i homogeneous -----------------------------84 if(!mixedTest() && !h)85 {86 if(!((find(ordstr_R0, "M") > 0) || (find(ordstr_R0, "a") > 0) || neg))87 {88 if(!((order == "simple") || (sizerl > 4)))89 {90 list rl@r = ringlist(@r);91 nvar@r = nvars(@r);92 intvec w;93 for(k = 1; k <= nvar@r; k++)94 {95 w[k] = deg(var(k));96 }97 w[nvar@r + 1] = 1;98 rl@r[2][nvar@r + 1] = "homvar";99 rl@r[3][2][2] = w;100 def HomR = ring(rl@r);101 setring HomR;102 ideal i = imap(@r, i);103 i = homog(i, homvar);104 }105 }106 }107 108 83 //------------------------- compute a standard basis mod p ----------------------------- 109 110 84 if(variant == 1) 111 85 { 112 86 if(size(#)>0) 113 87 { 114 i = rwalk(i,radius,pert_deg,#); 115 // rwalk(i,radius,pert_deg,#); std(i); 116 } 117 else 118 { 119 i = rwalk(i,radius,pert_deg); 88 i = rwalk(i,radius,pert_deg,reduction,#); 89 } 90 else 91 { 92 i = rwalk(i,radius,pert_deg,reduction); 120 93 } 121 94 } … … 124 97 if(size(#) == 2) 125 98 { 126 i = gwalk(i, #);127 } 128 else 129 { 130 i = gwalk(i );99 i = gwalk(i,reduction,#); 100 } 101 else 102 { 103 i = gwalk(i,reduction); 131 104 } 132 105 } … … 135 108 if(size(#) == 2) 136 109 { 137 i = frandwalk(i,radius, #);138 } 139 else 140 { 141 i = frandwalk(i,radius );110 i = frandwalk(i,radius,reduction,#); 111 } 112 else 113 { 114 i = frandwalk(i,radius,reduction); 142 115 } 143 116 } … … 157 130 if(size(#) == 2) 158 131 { 159 i=prwalk(i,radius,pert_deg,pert_deg, #);160 } 161 else 162 { 163 i=prwalk(i,radius,pert_deg,pert_deg );132 i=prwalk(i,radius,pert_deg,pert_deg,reduction,#); 133 } 134 else 135 { 136 i=prwalk(i,radius,pert_deg,pert_deg,reduction); 164 137 } 165 138 } … … 168 141 if(size(#) == 2) 169 142 { 170 i=pwalk(i,pert_deg,pert_deg,#); 171 } 172 else 173 { 174 i=pwalk(i,pert_deg,pert_deg); 175 } 176 } 177 178 if(!mixedTest() && !h) 179 { 180 if(!((find(ordstr_R0, "M") > 0) || (find(ordstr_R0, "a") > 0) || neg)) 181 { 182 if(!((order == "simple") || (sizerl > 4))) 183 { 184 i = subst(i, homvar, 1); 185 i = simplify(i, 34); 186 setring @r; 187 i = imap(HomR, i); 188 i = interred(i); 189 kill HomR; 190 } 191 } 192 } 143 i=pwalk(i,pert_deg,pert_deg,reduction,#); 144 } 145 else 146 { 147 i=pwalk(i,pert_deg,pert_deg,reduction); 148 } 149 } 150 193 151 setring R0; 194 152 return(list(fetch(@r,i),p)); … … 204 162 ring ra = 0,x(1..4),(a(a),lp); 205 163 ideal I = std(cyclic(4)); 164 int reduction = 1; 206 165 ring rb = 0,x(1..4),(a(b),lp); 207 166 ideal I = imap(ra,I); 208 modpWalk(I,p,1, a,b);167 modpWalk(I,p,1,reduction,a,b); 209 168 std(I); 210 169 } … … 212 171 //////////////////////////////////////////////////////////////////////////////// 213 172 214 proc modWalk(def II, int variant, list #)173 proc modWalk(def II, int variant, int reduction, list #) 215 174 "USAGE: modWalk(II); II ideal or list(ideal,int) 216 175 ASSUME: If variant = … … 487 446 if(n2 > 4) 488 447 { 489 //L[5] = prime(random(an,en));448 L[5] = prime(random(an,en)); 490 449 } 491 450 if(printlevel >= 10) … … 504 463 for(i=1; i<=size(L); i++) 505 464 { 506 Arguments[i] = list(II,L[i],variant, list(curr_weight,target_weight));465 Arguments[i] = list(II,L[i],variant,reduction,list(curr_weight,target_weight)); 507 466 } 508 467 } … … 511 470 for(i=1; i<=size(L); i++) 512 471 { 513 Arguments[i] = list(II,L[i],variant );472 Arguments[i] = list(II,L[i],variant,reduction); 514 473 } 515 474 } … … 528 487 //------------------- Now all leading ideals are the same -------------------- 529 488 //------------------- Lift results to basering via farey --------------------- 530 531 489 tt = timer; rt = rtimer; 532 490 N = T2[1]; … … 545 503 546 504 //---------------- Test if we already have a standard basis of I -------------- 547 548 505 tt = timer; rt = rtimer; 549 pTest = pTestSB(I,J,L,variant); 550 //pTest = primeTestSB(I,J,L,variant); 506 pTest = primeTest(J, prime(random(1000000000,2134567879))); 551 507 if(printlevel >= 10) 552 508 { … … 596 552 } 597 553 //-------------- We do not already have a standard basis of I, therefore do the main computation for more primes -------------- 598 599 554 T1 = H; 600 555 T2 = N; … … 613 568 for(i=j; i<=size(L); i++) 614 569 { 615 //Arguments[i-j+1] = list(II,L[i],variant,list(curr_weight,target_weight)); 616 Arguments[size(Arguments)+1] = list(II,L[i],variant,list(curr_weight,target_weight)); 570 Arguments[size(Arguments)+1] = list(II,L[i],variant,reduction,list(curr_weight,target_weight)); 617 571 } 618 572 } … … 621 575 for(i=j; i<=size(L); i++) 622 576 { 623 //Arguments[i-j+1] = list(II,L[i],variant); 624 Arguments[size(Arguments)+1] = list(II,L[i],variant); 577 Arguments[size(Arguments)+1] = list(II,L[i],variant,reduction); 625 578 } 626 579 } … … 632 585 for(i=1; i<=size(PP); i++) 633 586 { 634 //P[size(P) + 1] = PP[i];635 587 T1[size(T1) + 1] = PP[i][1]; 636 588 T2[size(T2) + 1] = bigint(PP[i][2]); … … 649 601 echo = 2; 650 602 ring R=0,(x,y,z),lp; 651 ideal I= -x+y2z-z,xz+1,x2+y2-1;652 // I is a standard basis in dp653 ideal J = modWalk(I,1 );603 ideal I= y3+xyz+y2z+xz3, 3+xy+x2y+y2z; 604 int reduction = 0; 605 ideal J = modWalk(I,1,1); 654 606 J; 655 607 } … … 772 724 return(J); 773 725 } 774 ////////////////////////////////////////////////////////////////////////////////// 775 static proc primeTestSB(def II, ideal J, list L, int variant, list #) 776 "USAGE: primeTestSB(I,J,L,variant,#); I,J ideals, L intvec of primes, variant int 777 RETURN: 1 (resp. 0) if for a randomly chosen prime p that is not in L 778 J mod p is (resp. is not) a standard basis of I mod p 779 EXAMPLE: example primeTestSB; shows an example 780 " 781 { 782 if(typeof(II) == "ideal") 783 { 784 ideal I = II; 785 int radius = 2; 786 } 787 if(typeof(II) == "list") 788 { 789 ideal I = II[1]; 790 int radius = II[2]; 791 } 792 793 int i,j,k,p; 794 def R = basering; 795 list r = ringlist(R); 796 797 while(!j) 798 { 799 j = 1; 800 p = prime(random(1000000000,2134567879)); 801 for(i = 1; i <= size(L); i++) 802 { 803 if(p == L[i]) 804 { 805 j = 0; 806 break; 807 } 808 } 809 if(j) 810 { 811 for(i = 1; i <= ncols(I); i++) 812 { 813 for(k = 2; k <= size(I[i]); k++) 814 { 815 if((denominator(leadcoef(I[i][k])) mod p) == 0) 816 { 817 j = 0; 818 break; 819 } 820 } 821 if(!j) 822 { 823 break; 824 } 825 } 826 } 827 if(j) 828 { 829 if(!primeTest(I,p)) 830 { 831 j = 0; 832 } 833 } 834 } 835 r[1] = p; 836 def @R = ring(r); 837 setring @R; 838 ideal I = imap(R,I); 839 ideal J = imap(R,J); 840 attrib(J,"isSB",1); 841 842 int t = timer; 843 j = 1; 844 if(isIncluded(I,J) == 0) 845 { 846 j = 0; 847 } 848 if(printlevel >= 11) 849 { 850 "isIncluded(I,J) takes "+string(timer - t)+" seconds"; 851 "j = "+string(j); 852 } 853 t = timer; 854 if(j) 855 { 856 if(size(#) > 0) 857 { 858 ideal K = modpWalk(I,p,variant,#)[1]; 859 } 860 else 861 { 862 ideal K = modpWalk(I,p,variant)[1]; 863 } 864 t = timer; 865 if(isIncluded(J,K) == 0) 866 { 867 j = 0; 868 } 869 if(printlevel >= 11) 870 { 871 "isIncluded(K,J) takes "+string(timer - t)+" seconds"; 872 "j = "+string(j); 873 } 874 } 875 setring R; 876 877 return(j); 878 } 879 example 880 { "EXAMPLE:"; echo = 2; 881 intvec L = 2,3,5; 882 ring r = 0,(x,y,z),lp; 883 ideal I = x+1,x+y+1; 884 ideal J = x+1,y; 885 primeTestSB(I,I,L,1); 886 primeTestSB(I,J,L,1); 887 } 888 889 //////////////////////////////////////////////////////////////////////////////// 890 static proc pTestSB(ideal I, ideal J, list L, int variant, list #) 891 "USAGE: pTestSB(I,J,L,variant,#); I,J ideals, L intvec of primes, variant int 892 RETURN: 1 (resp. 0) if for a randomly chosen prime p that is not in L 893 J mod p is (resp. is not) a standard basis of I mod p 894 EXAMPLE: example pTestSB; shows an example 895 " 896 { 897 int i,j,k,p; 898 def R = basering; 899 list r = ringlist(R); 900 901 while(!j) 902 { 903 j = 1; 904 p = prime(random(1000000000,2134567879)); 905 for(i = 1; i <= size(L); i++) 906 { 907 if(p == L[i]) { j = 0; break; } 908 } 909 if(j) 910 { 911 for(i = 1; i <= ncols(I); i++) 912 { 913 for(k = 2; k <= size(I[i]); k++) 914 { 915 if((denominator(leadcoef(I[i][k])) mod p) == 0) { j = 0; break; } 916 } 917 if(!j){ break; } 918 } 919 } 920 if(j) 921 { 922 if(!primeTest(I,p)) { j = 0; } 923 } 924 } 925 r[1] = p; 926 def @R = ring(r); 927 setring @R; 928 ideal I = imap(R,I); 929 ideal J = imap(R,J); 930 attrib(J,"isSB",1); 931 932 int t = timer; 933 j = 1; 934 if(isIncluded(I,J) == 0) { j = 0; } 935 936 if(printlevel >= 11) 937 { 938 "isIncluded(I,J) takes "+string(timer - t)+" seconds"; 939 "j = "+string(j); 940 } 941 942 t = timer; 943 if(j) 944 { 945 if(size(#) > 0) 946 { 947 ideal K = modpStd(I,p,variant,#[1])[1]; 948 } 949 else 950 { 951 ideal K = groebner(I); 952 } 953 t = timer; 954 if(isIncluded(J,K) == 0) { j = 0; } 955 956 if(printlevel >= 11) 957 { 958 "isIncluded(J,K) takes "+string(timer - t)+" seconds"; 959 "j = "+string(j); 960 } 961 } 962 setring R; 963 return(j); 964 } 965 example 966 { "EXAMPLE:"; echo = 2; 967 intvec L = 2,3,5; 968 ring r = 0,(x,y,z),dp; 969 ideal I = x+1,x+y+1; 970 ideal J = x+1,y; 971 pTestSB(I,I,L,2); 972 pTestSB(I,J,L,2); 973 } 726 974 727 //////////////////////////////////////////////////////////////////////////////// 975 728 static proc mixedTest() -
Property
mode
changed from
-
Singular/LIB/rwalk.lib
-
Property
mode
changed from
100644
to100755
r05e7392 r8af63a 10 10 rwalk(ideal,int,int[,intvec,intvec]); standard basis of ideal via Random Walk algorithm 11 11 rwalk(ideal,int[,intvec,intvec]); standard basis of ideal via Random Perturbation Walk algorithm 12 fr walk(ideal,int[,intvec,intvec]); standard basis of ideal via Random Fractal Walk algorithm12 frandwalk(ideal,int[,intvec,intvec]); standard basis of ideal via Random Fractal Walk algorithm 13 13 "; 14 14 … … 141 141 * Random Walk * 142 142 ****************/ 143 proc rwalk(ideal Go, int radius, int pert_deg, list #)143 proc rwalk(ideal Go, int radius, int pert_deg, int reduction, int printout, list #) 144 144 "SYNTAX: rwalk(ideal i, int radius); 145 145 if size(#)>0 then rwalk(ideal i, int radius, intvec v, intvec w); 146 intermediate Groebner bases are not reduced if reduction = 0 146 147 TYPE: ideal 147 148 PURPOSE: compute the standard basis of the ideal, calculated via … … 178 179 179 180 ideal G = fetch(xR, Go); 180 G = system("Mrwalk", G, curr_weight, target_weight, radius, pert_deg, basering);181 G = system("Mrwalk", G, curr_weight, target_weight, radius, pert_deg, reduction, printout); 181 182 182 183 setring xR; … … 196 197 int radius = 1; 197 198 int perturb_deg = 2; 198 rwalk(I,radius,perturb_deg); 199 int reduction = 0; 200 int printout = 1; 201 rwalk(I,radius,perturb_deg,reduction,printout); 199 202 } 200 203 … … 202 205 * Perturbation Walk with random element * 203 206 *****************************************/ 204 proc prwalk(ideal Go, int radius, int o_pert_deg, int t_pert_deg, list #)207 proc prwalk(ideal Go, int radius, int o_pert_deg, int t_pert_deg, int reduction, int printout, list #) 205 208 "SYNTAX: rwalk(ideal i, int radius); 206 209 if size(#)>0 then rwalk(ideal i, int radius, intvec v, intvec w); … … 227 230 OSCTW= OrderStringalp_NP("al", #); 228 231 } 232 int nP = OSCTW[1]; 229 233 string ord_str = OSCTW[2]; 230 234 intvec curr_weight = OSCTW[3]; // original weight vector … … 238 242 239 243 ideal G = fetch(xR, Go); 240 G = system("Mprwalk", G, curr_weight, target_weight, radius, o_pert_deg, t_pert_deg, basering); 244 G = system("Mprwalk", G, curr_weight, target_weight, radius, o_pert_deg, t_pert_deg, 245 nP, reduction, printout); 241 246 242 247 setring xR; … … 257 262 int o_perturb_deg = 2; 258 263 int t_perturb_deg = 2; 259 prwalk(I,radius,o_perturb_deg,t_perturb_deg); 264 int reduction = 0; 265 int printout = 2; 266 prwalk(I,radius,o_perturb_deg,t_perturb_deg,reduction,printout); 260 267 } 261 268 … … 263 270 * Fractal Walk with random element * 264 271 ************************************/ 265 proc frandwalk(ideal Go, int radius, list #)266 "SYNTAX: frwalk(ideal i, int radius );267 frwalk(ideal i, int radius, int vec v, intvec w);272 proc frandwalk(ideal Go, int radius, int reduction, int printout, list #) 273 "SYNTAX: frwalk(ideal i, int radius, int reduction, int printout); 274 frwalk(ideal i, int radius, int reduction, int printout, intvec v, intvec w); 268 275 TYPE: ideal 269 276 PURPOSE: compute the standard basis of the ideal, calculated via … … 299 306 ideal G = fetch(xR, Go); 300 307 int pert_deg = 2; 301 G = system("Mfrwalk", G, curr_weight, target_weight, radius); 308 309 G = system("Mfrwalk", G, curr_weight, target_weight, radius, reduction, printout); 302 310 303 311 setring xR; … … 314 322 ring r = 0,(z,y,x), lp; 315 323 ideal I = y3+xyz+y2z+xz3, 3+xy+x2y+y2z; 316 frandwalk(I,2); 317 } 324 int reduction = 0; 325 frandwalk(I,2,0,1); 326 } -
Property
mode
changed from
-
Singular/LIB/schreyer.lib
r8e682d r8af63a 3 3 category="General purpose"; 4 4 info=" 5 LIBRARY: schreyer.lib Helpers for computing a Schreyer resolution in@code{derham.lib}5 LIBRARY: schreyer.lib Schreyer resolution computations and helpers for @code{derham.lib} 6 6 AUTHOR: Oleksandr Motsak <U@D>, where U={motsak}, D={mathematik.uni-kl.de} 7 7 KEYWORDS: Schreyer ordering; Schreyer resolution; syzygy 8 8 OVERVIEW: 9 @* The library contains helper procedures for computing a Schreyer resoltion (cf. [SFO]), 10 originally meant to be used by @code{derham.lib} (which requires resolutions over the homogenized Weyl algebra). 11 The library works both in the commutative and non-commutative setting (cf. [MO]). 12 Here, we call a free resolution a Schreyer resolution if each syzygy module is given by a Groebner basis 13 with respect to the corresponding Schreyer ordering. 14 A Schreyer resolution can be much bigger than a minimal resolution of the same module, but may be easier to construct. 15 @* The input for the resolution computations is a set of vectors @code{M} in form of a module over some basering @code{R}. 16 The ring @code{R} may be non-commutative, in which case the ring ordering should be global. 17 @* These procedures produce/work with partial Schreyer resolutions of @code{(R^rank(M))/M} in form of 18 a ring (endowed with a special ring ordering that will be extended in the course of a resolution computation) 19 containing a list of modules @code{RES} and a module @code{MRES}: 20 @* The list of modules @code{RES} contains the images of maps (also called syzygy modules) substituting the 21 computed beginning of a Schreyer resolution, that is, each syzygy module is given by a Groebner basis 22 with respect to the corresponding Schreyer ordering. 23 @* The list @code{RES} starts with a zero map given by @code{rank(M)} zero generators indicating that the image of 24 the first differential map is zero. The second map @code{RES[2]} is given by @code{M}, which indicates that 25 the resolution of @code{(R^rank(M))/M} is being computed. 26 @* The module @code{MRES} is a direct sum of modules from @code{RES} and thus comprises all computed differentials. 9 @* The library contains several procedures for computing a/part of Schreyer resoltion (cf. [SFO]), 10 and some helpers for @code{derham.lib} (which requires resolutions over the homogenized Weyl algebra) for that purpose. 11 @* The input for any resolution computation is a set of vectors @code{M} in form of a module over some basering @code{R}. 12 The helpers works both in the commutative and non-commutative setting (cf. [MO]), that is the ring @code{R} may be non-commutative, 13 in which case the ring ordering over it must be global. They produce/work with partial Schreyer resolutions of @code{(R^rank(M))/M} 14 in form of a specially constructed ring (endowed with a special ring ordering that will be extended in the 15 course of a resolution computation) containing a list of modules @code{RES} and a module @code{MRES}: 16 @* @code{RES}: the list of modules contains the images of maps (also called syzygy modules) substituting the 17 computed beginning of a Schreyer resolution, that is, each syzygy module is given by a Groebner basis 18 with respect to the corresponding Schreyer ordering. 19 @* @code{RES}: the list of modules which starts with a zero map given by @code{rank(M)} zero generators indicating that the image of 20 the first differential map is zero. The second map @code{RES[2]} is given by @code{M}, which indicates that 21 the resolution of @code{(R^rank(M))/M} is being computed. 22 @* @code{MRES}: the module is a direct sum of modules from @code{RES} and thus comprises all computed differentials. 27 23 @* Syzygies are shifted so that @code{gen(i)} is mapped to @code{MRES[i]} under the differential map. 24 NOTE: 25 @* Here, we call a free resolution a Schreyer resolution if each syzygy module is given by a Groebner basis 26 with respect to the corresponding Schreyer ordering. 27 @* A Schreyer resolution can be much bigger than a minimal resolution of the same module, but may be easier to construct. 28 28 @* The Schreyer ordering succesively extends the starting module ordering on @code{M} (defined in Singular by the basering @code{R}) 29 and is extended to higher syzygies using the following definition:29 and is extended to higher syzygies using the following definition: 30 30 @* a < b if and only if (d(a) < d(b)) OR ( (d(a) = d(b) AND (comp(a) < comp(b)) ), 31 @* where @code{d(a)} is the image of a under the differential (given by @code{MRES}), 32 and @code{comp(a)} is the module component, for any module terms @code{a} and @code{b} from the same higher syzygy module. 31 @* where @code{d(a)} is the image of an under the differential (given by @code{MRES}), 32 and @code{comp(a)} is the module component, for any module terms @code{a} and @code{b} from the same higher syzygy module. 33 NOTE: 34 @* most comutations require the dynamic or built-in module @code{syzextra}, which will be auto-leaded on demand. 35 PROCEDURES: 36 Sres(M,len) helper for computing Schreyer resolution of module M of maximal length len 37 Ssyz(M) helper for computing Schreyer resolution of module M of length 1 38 Scontinue(len) helper for extending currently active resolution by (at most) len syszygies 39 s_res(M, len) compute Schreyer resolution of module M of maximal length len via LiftTree method from [BMSS] 33 40 REFERENCES: 34 [SFO] Schreyer, F.O.: Die Berechnung von Syzygien mit dem verallgemeinerten Weierstrassschen Divisionssatz, 35 Master's thesis, Univ. Hamburg, 1980. 36 [MO] Motsak, O.: Non-commutative Computer Algebra with applications: Graded commutative algebra and related 37 structures in Singular with applications, Ph.D. thesis, TU Kaiserslautern, 2010 38 39 NOTE: requires the dynamic or built-in module @code{syzextra} 40 41 PROCEDURES: 42 Sres(M,len) compute Schreyer resolution of module M of maximal length len 43 Ssyz(M) compute Schreyer resolution of module M of length 1 44 Scontinue(len) extend currently active resolution by (at most) len syszygies 41 @* 42 [BMSS] Burcin, E., Motsak, O., Schreyer, F.-O., Steenpass, A.: NEW ALGORITHMS TO COMPUTE SYZYGIES, 2014. 43 @* 44 [SFO] Schreyer, F.O.: Die Berechnung von Syzygien mit dem verallgemeinerten Weierstrassschen Divisionssatz, 45 Master's thesis, Univ. Hamburg, 1980. 46 @* 47 [MO] Motsak, O.: Non-commutative Computer Algebra with applications: Graded commutative algebra and related 48 structures in Singular with applications, Ph.D. thesis, TU Kaiserslautern, 2010. 45 49 "; 46 50 … … 472 476 LIB "general.lib"; // for sort 473 477 474 /* static proc Tail(def M) // DONE: in C++ (dyn. module: syzextra)! 475 { 476 int i = ncols(M); def m; 477 while (i > 0) 478 { 479 m = M[i]; 480 m = m - lead(m); // m = tail(m) 481 M[i] = m; 482 i--; 483 } 484 return (M); 485 }*/ 486 487 /* static */ 488 proc MySort(def M) 489 " 490 Sorts the given ideal or module wrt >_{(c, ds)} (.<.<.<.<) 491 NOTE: inplace?? 492 " 478 static proc MySort(def M) 479 " Sorts the given ideal or module wrt >_{(c, ds)} (.<.<.<.<) " 493 480 { 494 481 if( typeof( attrib(basering, "DEBUG") ) == "int" ) … … 841 828 842 829 /// Compute L(Syz(L)) 843 proc SSComputeLeadingSyzygyTerms(def L)830 static proc SSComputeLeadingSyzygyTerms(def L) 844 831 { 845 832 if( typeof( attrib(basering, "DEBUG") ) == "int" ) … … 960 947 961 948 /// Compute Syz(L), where L is a monomial (leading) module 962 proc SSCompute2LeadingSyzygyTerms(def L)949 static proc SSCompute2LeadingSyzygyTerms(def L) 963 950 { 964 951 if( typeof( attrib(basering, "DEBUG") ) == "int" ) … … 1183 1170 1184 1171 /// TODO: save shortcut (syz: |-.->) LM(LM(m) * "t") -> syz? 1185 proc SSFindReducer(def product, def syzterm, def L, list #)1172 static proc SSFindReducer(def product, def syzterm, def L, list #) 1186 1173 { 1187 1174 if( typeof( attrib(basering, "DEBUG") ) == "int" ) … … 1314 1301 1315 1302 /// TODO: save shortcut (syz: |-.->) LM(m) * "t" -> ? 1316 proc SSReduceTerm(poly m, def t, def syzterm, def L, def T, list #)1303 static proc SSReduceTerm(poly m, def t, def syzterm, def L, def T, list #) 1317 1304 { 1318 1305 if( typeof( attrib(basering, "DEBUG") ) == "int" ) … … 1424 1411 1425 1412 // TODO: store m * @tail -.-^-.-^-.--> ? 1426 proc SSTraverseTail(poly m, def @tail, def L, def T, list #)1413 static proc SSTraverseTail(poly m, def @tail, def L, def T, list #) 1427 1414 { 1428 1415 if( typeof( attrib(basering, "DEBUG") ) == "int" ) … … 1499 1486 // -------------------------------------------------------- // 1500 1487 1501 proc SSSchreyerSyzygyNF(vector syz_lead, vector syz_2, def L, def T, list #) 1502 " 1503 Hybrid Syzygy computation: 'reduce' spoly by eliminating _any_ terms 1504 while discurding terms of lower order! 1505 1506 Return the tail syzygy (without: syz_lead, starting with: syz_2) 1507 " 1488 static proc SSSchreyerSyzygyNF(vector syz_lead, vector syz_2, def L, def T, list #) 1489 " Hybrid Syzygy computation: 'reduce' spoly by eliminating _any_ terms while discurding terms of lower order! 1490 Return the tail syzygy (without: syz_lead, starting with: syz_2)" 1508 1491 { 1509 1492 if( typeof( attrib(basering, "DEBUG") ) == "int" ) … … 1598 1581 // module (N, LL, TT) = SSComputeSyzygy(L, T); 1599 1582 // Compute Syz(L ++ T) = N = LL ++ TT 1600 proc SSComputeSyzygy(def L, def T)1583 static proc SSComputeSyzygy(def L, def T) 1601 1584 { 1602 1585 // rtimer, "***TIMESNAP0 for ComputeSyzygy(L,T): on level: [",attrib(basering,"SYZNUMBER"),"] :: t: ", timer, ", r: ", rtimer; … … 1959 1942 } 1960 1943 1961 proc SScontinue(int l)1944 static proc SScontinue(int l) 1962 1945 "USAGE: SScontinue(l) 1963 1946 RETURN: nothing, instead it changes RES and MRES variables in the current ring … … 1997 1980 } 1998 1981 1999 proc SSsyz(def M)1982 static proc SSsyz(def M) 2000 1983 "USAGE: SSsyz(M) 2001 1984 RETURN: ring, containing a list of modules RES and a module MRES … … 2054 2037 } 2055 2038 2056 proc SSres(def M, int l)2039 static proc SSres(def M, int l) 2057 2040 "USAGE: SSres(I, l) 2058 2041 RETURN: ring, containing a list of modules RES and a module MRES … … 2123 2106 RES; 2124 2107 MRES; 2125 kill S;2126 setring r; kill M;2127 2128 def A = nc_algebra(-1,0); setring A;2129 ideal Q = var(1)^2, var(2)^2, var(3)^2;2130 qring SCA = twostd(Q);2131 basering;2132 2133 module M = maxideal(1);2134 def S = SSres(M, 2); setring S; S;2135 RES;2136 MRES;2137 2108 } 2138 2109 … … 2157 2128 } 2158 2129 2130 // cannot be automatically used via overloading :( 2159 2131 proc SRES_list(SRES SR) 2132 "TODO!" 2160 2133 { 2161 2134 def save = basering; … … 2194 2167 // "om_ndebug?: ", system("with", "om_ndebug"); 2195 2168 2169 listvar(Syzextra); 2170 listvar(Schreyer); 2196 2171 listvar(Top); 2197 listvar(Schreyer); 2198 } 2199 // listvar(Syzextra); 2200 2201 if( !defined(DetailedPrint) ) 2172 } 2173 2174 if( !defined(Schreyer::DetailedPrint) ) 2202 2175 { 2203 2176 if( 1 ) … … 2219 2192 } 2220 2193 2221 exportto(Top, Syzextra::ClearContent); 2222 exportto(Top, Syzextra::ClearDenominators); 2223 2194 // exportto(Top, Syzextra::ClearContent); 2195 // exportto(Top, Syzextra::ClearDenominators); 2224 2196 exportto(Schreyer, Syzextra::m2_end); 2225 2197 … … 2263 2235 2264 2236 newstruct("SRES","ring r,resolution rsltn"); // http://www.singular.uni-kl.de/Manual/latest/sing_179.htm#SEC218 2265 newstruct("SSYZ","ring r,module szg"); // http://www.singular.uni-kl.de/Manual/latest/sing_179.htm#SEC2182266 2237 // TODO: SSres - return SRESOLUTION? 2267 2238 … … 2276 2247 2277 2248 // TODO: SSsyz? SSYZYGY? // TODO: C/C++ computation for Syzygy? 2249 // newstruct("SSYZ","ring r,module szg"); // http://www.singular.uni-kl.de/Manual/latest/sing_179.htm#SEC218 2278 2250 // system("install","SSYZYGY","string",SSYZYGY_string, 1); 2279 2251 // system("install","SSYZYGY","print",SSYZYGY_print, 1); … … 2281 2253 } 2282 2254 2283 exportto(Top, DetailedPrint);2284 exportto(Top, GetInducedData);2255 // exportto(Top, DetailedPrint); 2256 // exportto(Top, GetInducedData); 2285 2257 2286 2258 if( @DEBUG ) … … 2312 2284 2313 2285 2314 proc testallSexamples()2286 static proc testallSexamples() 2315 2287 { 2316 2288 example Ssyz; … … 2319 2291 } 2320 2292 2321 proc testallSSexamples()2293 static proc testallSSexamples() 2322 2294 { 2323 2295 example SSsyz; … … 2325 2297 example SSres; 2326 2298 } 2327 2328 2299 example 2329 2300 { "EXAMPLE:"; echo = 2; … … 2332 2303 } 2333 2304 2334 /*static*/proc StartResTesting(list #)2305 static proc StartResTesting(list #) 2335 2306 { 2336 2307 int @treeout = attrib(SSinit, "TREEOUTPUT"); … … 2354 2325 } 2355 2326 2356 /*static*/proc StopResTesting()2327 static proc StopResTesting() 2357 2328 { 2358 2329 int @treeout = attrib(SSinit, "TREEOUTPUT"); … … 2446 2417 } 2447 2418 2448 /*static*/proc StartAddResTest(string method, string desc)2419 static proc StartAddResTest(string method, string desc) 2449 2420 { 2450 2421 int @treeout = attrib(SSinit, "TREEOUTPUT"); … … 2473 2444 2474 2445 2475 /*static*/proc StopAddResTest(def RR, intmat S, int @t, int @m)2446 static proc StopAddResTest(def RR, intmat S, int @t, int @m) 2476 2447 { 2477 2448 int @treeout = attrib(SSinit, "TREEOUTPUT"); … … 2502 2473 2503 2474 2504 /*static*/proc SCheck(def S)2475 static proc SCheck(def S) 2505 2476 { 2506 2477 setring S; // for checking... … … 2553 2524 */ 2554 2525 } 2526 2555 2527 //// TODO: SSres(0) fails..!!!?? 2556 proc TestSSres(def I)2528 static proc TestSSres(def I) 2557 2529 { 2558 2530 def save = basering; … … 2583 2555 2584 2556 proc s_res(def I, int l) 2585 { 2586 int @prot = (find(option(),"prot") != 0); 2557 "USAGE: s_res(ideal/module M, int len) 2558 RETURN: SRES, a blackbox object containing a (part of) Schreyer resolution 2559 PURPOSE: compute a Schreyer resolution of M of length at most len (see [BMSS]) 2560 NOTE: If given len is zero then nvars(basering) + 1 is used instead. 2561 @* SRES can be printed, treated by betti and minres or converted to list & mapped into the current ring with @code{SRES_list} 2562 @* This functions is not related to other helpers from this library. 2563 @* One can switch on computation protocol and statistic (depending on the build) by setting the @code{prot} option. 2564 @* Further recognized switches are the following attributes of @code{Schreyer::SSinit} procedure: 2565 LEAD2SYZ, TAILREDSYZ, HYBRIDNF 2566 DEBUG, ... 2567 SEE ALSO: sres 2568 EXAMPLE: example s_res; shows an example 2569 " 2570 { 2571 int @prot = (find(option(),"prot") != 0) && (defined(NumberStatsInit)) && (defined(NumberStatsPrint)); 2587 2572 def R=SSinit(I); setring R; int @l = size(RES); 2588 2573 SRES ret; ret.r = R; … … 2592 2577 return (ret); 2593 2578 } 2594 2595 proc s_syz(def I) 2579 example 2580 { "EXAMPLE:"; echo = 2; 2581 ring R; 2582 module M = maxideal(1); M; 2583 SRES rs = s_res(M, 0); 2584 print(rs); 2585 print(betti(rs, 0)); // non-minimal betties 2586 print(SRES_list(rs)); 2587 print(betti(rs, 1)); //minimal betties 2588 print(minres(rs)); 2589 } 2590 2591 static proc s_syz(def I) 2596 2592 { 2597 2593 def R=SSinit(I); setring R; … … 2602 2598 } 2603 2599 2604 proc TestSSSres(def I)2600 static proc TestSSSres(def I) 2605 2601 { 2606 2602 def save = basering; … … 2632 2628 2633 2629 2634 proc TestSres(def I)2630 static proc TestSres(def I) 2635 2631 { 2636 2632 def save = basering; … … 2648 2644 2649 2645 2650 proc Testsres(def M)2646 static proc Testsres(def M) 2651 2647 { 2652 2648 int @t,@m; … … 2657 2653 } 2658 2654 2659 proc Testlres(def M)2655 static proc Testlres(def M) 2660 2656 { 2661 2657 int @t,@m; … … 2673 2669 2674 2670 2675 proc Testnres(def M)2671 static proc Testnres(def M) 2676 2672 { 2677 2673 int @t,@m; … … 2684 2680 } 2685 2681 2686 proc TestSSresAttribs(def M, list #) 2687 { 2682 static proc TestSSresAttribs(def M, list #) 2683 { 2684 M = groebner(M); 2685 2688 2686 StartResTesting(#); 2689 int @treeout = attrib(SSinit, "TREEOUTPUT"); 2690 // simple tests... 2691 // M = groebner(M); "groebner: "; M; ""; 2692 2693 if( !@treeout ) 2694 { 2695 // Testlres(M); 2696 // Testnres(M); 2697 // Testsres(M); 2698 // TestSres(M); // too long for the last medium test :( 2699 } 2700 2701 // attrib(SSinit, "LEAD2SYZ", 0); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 0); TestSSres(M); // TODO: FIX ERROR!!!! 2702 // attrib(SSinit, "LEAD2SYZ", 0); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 1); TestSSres(M); 2703 2704 // attrib(SSinit, "LEAD2SYZ", 1); attrib(SSinit, "TAILREDSYZ", 0); attrib(SSinit, "HYBRIDNF", 0); TestSSres(M); 2705 // attrib(SSinit, "LEAD2SYZ", 1); attrib(SSinit, "TAILREDSYZ", 0); attrib(SSinit, "HYBRIDNF", 1); TestSSres(M); 2706 2707 // attrib(SSinit, "LEAD2SYZ", 0); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 2); TestSSSres(M); 2687 2708 2688 attrib(SSinit, "LEAD2SYZ", 0); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 0); TestSSSres(M); 2709 2689 attrib(SSinit, "LEAD2SYZ", 0); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 1); TestSSSres(M); 2710 2690 2711 2712 // attrib(SSinit, "LEAD2SYZ", 1); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 0); TestSSres(M); 2713 2714 2715 // the following 2 setups are bad for AGR@101n3d002s004%1:((( 2716 // attrib(SSinit, "LEAD2SYZ", 0); attrib(SSinit, "TAILREDSYZ", 0); attrib(SSinit, "HYBRIDNF", 0); TestSSres(M); 2717 // attrib(SSinit, "LEAD2SYZ", 0); attrib(SSinit, "TAILREDSYZ", 0); attrib(SSinit, "HYBRIDNF", 1); TestSSres(M); 2718 2719 StopResTesting(); 2720 2721 } 2722 2723 2724 proc TestSSresAttribs2tr(def M, list #) 2725 { 2726 StartResTesting(#); 2727 2728 attrib(SSinit, "LEAD2SYZ", 0); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 0); TestSSSres(M); 2729 attrib(SSinit, "LEAD2SYZ", 0); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 1); TestSSSres(M); 2730 // attrib(SSinit, "LEAD2SYZ", 0); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 2); TestSSSres(M); 2731 2691 // WRONG???! LEAD2SYZ? 2732 2692 // attrib(SSinit, "LEAD2SYZ", 1); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 0); TestSSSres(M); 2733 2693 // attrib(SSinit, "LEAD2SYZ", 1); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 1); TestSSSres(M); 2734 // attrib(SSinit, "LEAD2SYZ", 1); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 2); TestSSSres(M); 2735 2736 2737 // Testlres(M); 2738 // Testnres(M); 2739 // Testsres(M);2740 // TestSres(M); // too long for the last medium test :( 2741 2694 2695 int @treeout = attrib(SSinit, "TREEOUTPUT"); 2696 if( !@treeout ) 2697 { 2698 Testlres(M); Testnres(M); 2699 // Testsres(M); // TestSres(M); // too long for the last medium test :( 2700 } 2701 2742 2702 StopResTesting(); 2743 2703 } 2744 2704 2745 2746 proc testSimple(list #) 2705 static proc TestSSresAttribs2tr(def M, list #) 2706 { 2707 M = groebner(M); 2708 2709 StartResTesting(#); 2710 2711 attrib(SSinit, "LEAD2SYZ", 0); attrib(SSinit, "TAILREDSYZ", 1); attrib(SSinit, "HYBRIDNF", 0); TestSSSres(M); 2712 Testlres(M); 2713 2714 StopResTesting(); 2715 } 2716 2717 static proc testSimple(list #) 2747 2718 { 2748 2719 mod_assure_load(); … … 2758 2729 // TODO: only for now!! 2759 2730 attrib(SSinit, "DEBUG", (DEBUG > 0) ); 2760 attrib(SSinit, "SYZCHECK", 0); 2761 attrib(SSinit, "KERCHECK", (DEBUG > 0) ); 2731 attrib(SSinit, "SYZCHECK", (DEBUG > 0) ); 2732 attrib(SSinit, "KERCHECK", (DEBUG > 0) ); 2733 2762 2734 attrib(SSinit, "TREEOUTPUT", 0); 2763 2735 attrib(SSinit, "PROFILE", 0); 2736 attrib(SSinit, "IGNORETAILS", 0); // not only frame 2764 2737 2765 2738 int @treeout = attrib(SSinit, "TREEOUTPUT"); … … 2769 2742 monitor("SimpleTests.json", "o"); 2770 2743 "{ \"SimpleTests\": ["; 2771 } 2744 } else { option(prot); } 2745 2772 2746 2773 2747 ring r; ideal M = maxideal(1); 2774 // M;2775 2748 TestSSresAttribs(M, "\\\\GENERATED{" + string(M) + "} in " + string(basering)); 2776 2749 kill r; 2777 2750 2778 2751 ring r = 0, (a, b, c, d), lp; ideal M = maxideal(1); 2779 // M;2780 2752 TestSSresAttribs(M, "\\\\GENERATED{" + string(M) + "} in " + string(basering)); 2781 2753 kill r; … … 2783 2755 ring R = 0, (w, x, y, z), dp; 2784 2756 ideal M = w^2 - x*z, w*x - y*z, x^2 - w*y, x*y - z^2, y^2 - w*z; 2785 // M;2786 2757 TestSSresAttribs(M, "\\\\GENERATED{" + string(M) + "} in " + string(basering)); 2787 2758 kill R; … … 2789 2760 2790 2761 ring r = 0, (a, b, c, d, e, f), dp; ideal M = maxideal(1); 2791 // M;2792 2762 TestSSresAttribs(M, "\\\\GENERATED{" + string(M) + "} in " + string(basering)); 2793 2763 kill r; … … 2798 2768 kill r; 2799 2769 2800 ring r = 0, (x, y, z ), lp; ideal M = xy + y2 +x + 2y -1, xz - x -y -z -2, yz +1; // TODO: seg. fault?2770 ring r = 0, (x, y, z, t), dp; ideal M = homog(xy + y2 +x + 2y -1, t), homog(xz - x -y -z -2, t), homog(yz +1, t); // TODO: seg. fault? 2801 2771 TestSSresAttribs(M, "\\\\GENERATED{" + string(M) + "} in " + string(basering)); 2802 2772 kill r; … … 2806 2776 // simple: AGR@101n3d002s004%1: 2807 2777 ideal M = c*d, b*d, a*d, c^2-d^2, b*c, a*c, b^2-d^2, a*b, a^2-d^2; 2808 // M;2809 2778 TestSSresAttribs(M, "simple: AGR@101n3d002s004%1"); 2810 2779 2811 2780 // medium: AGR@101n3d004s009%1; 2812 2781 M = a*b+7*a*c-16*b*c-27*a*d+37*b*d-2*c*d, d^3, c*d^2, b*d^2, a*d^2, c^2*d, b*c*d, a*c*d, b^2*d, a^2*d, c^3, b*c^2, a*c^2, b^2*c, a^2*c, b^3, a^3; 2813 // M;2814 2782 TestSSresAttribs(M, "medium: AGR@101n3d004s009%1"); 2815 2783 … … 2822 2790 } 2823 2791 2824 proc testAGR(list #)2792 static proc testAGR(list #) 2825 2793 { 2826 2794 def DEBUG = 0; … … 2835 2803 attrib(SSinit, "TREEOUTPUT", 0); 2836 2804 attrib(SSinit, "PROFILE", 0); 2805 attrib(SSinit, "IGNORETAILS", 0); // not only frame 2837 2806 2838 //option(prot);2807 option(prot); 2839 2808 2840 2809 ring AGR = (101), (a, b, c, d), dp; AGR; 2841 2810 // lengthy: AGR@101n3d008s058%3, kernel only! 2842 2811 ideal M = c^4*d^2+4*a^3*d^3+29*a^2*b*d^3-2*a*b^2*d^3+2*b^3*d^3-21*a^2*c*d^3+46*a*b*c*d^3+2*b^2*c*d^3-13*a*c^2*d^3+32*b*c^2*d^3+46*c^3*d^3-28*a^2*d^4+4*a*b*d^4+29*b^2*d^4-8*a*c*d^4+33*b*c*d^4-16*c^2*d^4+17*a*d^5-3*b*d^5-42*c*d^5+47*d^6,b*c^3*d^2+35*a^3*d^3+24*a^2*b*d^3+46*a*b^2*d^3-22*b^3*d^3-48*a^2*c*d^3+20*a*b*c*d^3-28*b^2*c*d^3-40*a*c^2*d^3-4*b*c^2*d^3+35*c^3*d^3-21*a^2*d^4+3*a*b*d^4+8*b^2*d^4-2*a*c*d^4-22*b*c*d^4+24*c^2*d^4+44*a*d^5+33*b*d^5+31*c*d^5+26*d^6,a*c^3*d^2-42*a^3*d^3+34*a^2*b*d^3-10*a*b^2*d^3+30*b^3*d^3-6*a^2*c*d^3-30*a*b*c*d^3-34*b^2*c*d^3+29*a*c^2*d^3+35*b*c^2*d^3+13*c^3*d^3+8*a^2*d^4+23*a*b*d^4-29*b^2*d^4+12*a*c*d^4-22*b*c*d^4-50*c^2*d^4-4*b*d^5+9*c*d^5+13*d^6,b^2*c^2*d^2+a^3*d^3-49*a^2*b*d^3+26*a*b^2*d^3+20*b^3*d^3+24*a^2*c*d^3-2*a*b*c*d^3+31*b^2*c*d^3-30*a*c^2*d^3+21*b*c^2*d^3-24*c^3*d^3-38*a^2*d^4-14*a*b*d^4-14*b^2*d^4+6*a*c*d^4+3*b*c*d^4+13*c^2*d^4-11*a*d^5-38*b*d^5+22*c*d^5+48*d^6,a*b*c^2*d^2+18*a^3*d^3-29*a^2*b*d^3-21*a*b^2*d^3-2*b^3*d^3-25*a^2*c*d^3+37*a*b*c*d^3-14*b^2*c*d^3-47*a*c^2*d^3-6*b*c^2*d^3-34*c^3*d^3+43*a^2*d^4+22*a*b*d^4-39*b^2*d^4-41*a*c*d^4-17*b*c*d^4-13*c^2*d^4-43*a*d^5+28*b*d^5-42*c*d^5-49*d^6,a^2*c^2*d^2-33*a^3*d^3+30*a^2*b*d^3-13*a*b^2*d^3+18*b^3*d^3-8*a^2*c*d^3-18*a*b*c*d^3-15*b^2*c*d^3-21*a*c^2*d^3+45*b*c^2*d^3-35*c^3*d^3-4*a^2*d^4-4*a*b*d^4+10*b^2*d^4-19*a*c*d^4-18*b*c*d^4-22*c^2*d^4-27*a*d^5+20*b*d^5-14*c*d^5+24*d^6,b^3*c*d^2-10*a^3*d^3+37*a*b^2*d^3-43*b^3*d^3-10*a^2*c*d^3-9*a*b*c*d^3+47*a*c^2*d^3-24*b*c^2*d^3+12*c^3*d^3+7*a^2*d^4+19*a*b*d^4-27*b^2*d^4-2*a*c*d^4-35*b*c*d^4+45*c^2*d^4-44*a*d^5-43*b*d^5+24*c*d^5+16*d^6,a*b^2*c*d^2+2*a^3*d^3-14*a^2*b*d^3+2*a*b^2*d^3+18*b^3*d^3-48*a^2*c*d^3+43*a*b*c*d^3-25*b^2*c*d^3+15*a*c^2*d^3-7*b*c^2*d^3+42*c^3*d^3-16*a^2*d^4+7*b^2*d^4-23*a*c*d^4+24*b*c*d^4+25*c^2*d^4-17*a*d^5-16*b*d^5-32*c*d^5-50*d^6,a^2*b*c*d^2-16*a^3*d^3+7*a^2*b*d^3-20*a*b^2*d^3+11*b^3*d^3+16*a^2*c*d^3+6*a*b*c*d^3-25*b^2*c*d^3+42*a*c^2*d^3-39*b*c^2*d^3-15*c^3*d^3-25*a^2*d^4+46*a*b*d^4-3*b^2*d^4+5*a*c*d^4+28*b*c*d^4+6*c^2*d^4-20*a*d^5-15*b*d^5-30*c*d^5+17*d^6,a^3*c*d^2+39*a^3*d^3+22*a^2*b*d^3-21*a*b^2*d^3+10*b^3*d^3+40*a^2*c*d^3-37*a*b*c*d^3+11*b^2*c*d^3+43*a*c^2*d^3+28*b*c^2*d^3-10*c^3*d^3+30*a^2*d^4+36*a*b*d^4-45*b^2*d^4-40*a*c*d^4-31*b*c*d^4+28*c^2*d^4+35*a*d^5+6*b*d^5+14*c*d^5+25*d^6,b^4*d^2+50*a^3*d^3+12*a^2*b*d^3+29*a*b^2*d^3-38*b^3*d^3-44*a^2*c*d^3+28*a*b*c*d^3+18*b^2*c*d^3-31*a*c^2*d^3+16*b*c^2*d^3-18*c^3*d^3+5*a^2*d^4-43*a*b*d^4+16*b^2*d^4+9*a*c*d^4-30*b*c*d^4+50*c^2*d^4+3*a*d^5+33*b*d^5+3*c*d^5-48*d^6,a*b^3*d^2+13*a^3*d^3-28*a^2*b*d^3-33*a*b^2*d^3-25*b^3*d^3-41*a^2*c*d^3+a*b*c*d^3+19*b^2*c*d^3+41*a*c^2*d^3-17*b*c^2*d^3+34*c^3*d^3-10*a^2*d^4+30*a*b*d^4+34*b^2*d^4+13*a*c*d^4+b*c*d^4-35*c^2*d^4-34*a*d^5+23*b*d^5-7*c*d^5+6*d^6,a^2*b^2*d^2+22*a^3*d^3-32*a^2*b*d^3+29*a*b^2*d^3+21*b^3*d^3-30*a^2*c*d^3-47*a*b*c*d^3-11*b^2*c*d^3-16*a*c^2*d^3-14*b*c^2*d^3+49*c^3*d^3+47*a^2*d^4-11*a*b*d^4+4*b^2*d^4+13*a*c*d^4+7*b*c*d^4-30*c^2*d^4+31*a*d^5+10*b*d^5-8*c*d^5-27*d^6,a^3*b*d^2-43*a^3*d^3-2*a^2*b*d^3+15*a*b^2*d^3+42*b^3*d^3+25*a^2*c*d^3+22*a*b*c*d^3-4*b^2*c*d^3-29*a*c^2*d^3-31*b*c^2*d^3-3*c^3*d^3+33*a^2*d^4+20*a*b*d^4-34*b^2*d^4+8*a*c*d^4+48*b*c*d^4-29*c^2*d^4-46*a*d^5+27*b*d^5+29*c*d^5+33*d^6,a^4*d^2+30*a^3*d^3-42*a*b^2*d^3-16*b^3*d^3-33*a^2*c*d^3+13*a*b*c*d^3+7*b^2*c*d^3-23*a*c^2*d^3+28*b*c^2*d^3-37*c^3*d^3+3*a^2*d^4-34*a*b*d^4+16*b^2*d^4-21*a*c*d^4-39*b*c*d^4+5*c^2*d^4+35*a*d^5+39*b*d^5-26*c*d^5-47*d^6,c^5*d+48*a^3*d^3-37*a^2*b*d^3+31*a*b^2*d^3-19*b^3*d^3+49*a^2*c*d^3-5*a*b*c*d^3+45*b^2*c*d^3+24*a*c^2*d^3-26*b*c^2*d^3-10*c^3*d^3-a^2*d^4+43*a*b*d^4-26*b^2*d^4+45*a*c*d^4-3*b*c*d^4+38*c^2*d^4+10*a*d^5-5*b*d^5-34*c*d^5+22*d^6,b*c^4*d+30*a^3*d^3-40*a^2*b*d^3-39*a*b^2*d^3+33*b^3*d^3+31*a^2*c*d^3-17*a*b*c*d^3-44*b^2*c*d^3+24*a*c^2*d^3+22*b*c^2*d^3-44*c^3*d^3-29*a^2*d^4+4*a*b*d^4-4*b^2*d^4+8*a*c*d^4-42*b*c*d^4+15*c^2*d^4-42*a*d^5+15*b*d^5-41*c*d^5-46*d^6,a*c^4*d-11*a^3*d^3-5*a^2*b*d^3+33*a*b^2*d^3+7*b^3*d^3-31*a^2*c*d^3-47*a*b*c*d^3-50*b^2*c*d^3-50*a*c^2*d^3-39*b*c^2*d^3+25*c^3*d^3+5*a^2*d^4+35*a*b*d^4-34*b^2*d^4+42*a*c*d^4-44*b*c*d^4-17*c^2*d^4+11*a*d^5+b*d^5+31*c*d^5+45*d^6,b^2*c^3*d+12*a^3*d^3-41*a^2*b*d^3+29*a*b^2*d^3-42*b^3*d^3-32*a^2*c*d^3+47*a*b*c*d^3-13*b^2*c*d^3-20*a*c^2*d^3+45*b*c^2*d^3-49*c^3*d^3-34*a^2*d^4+16*a*b*d^4+11*b^2*d^4-49*a*c*d^4-27*b*c*d^4-31*c^2*d^4+29*a*d^5-23*b*d^5+13*c*d^5+42*d^6,a*b*c^3*d-16*a^3*d^3-35*a^2*b*d^3+12*a*b^2*d^3-39*b^3*d^3-32*a*b*c*d^3-4*b^2*c*d^3+31*a*c^2*d^3+43*b*c^2*d^3-42*c^3*d^3+36*a^2*d^4-5*a*b*d^4-4*b^2*d^4+5*a*c*d^4+20*b*c*d^4+31*c^2*d^4+15*a*d^5+25*b*d^5-16*c*d^5-28*d^6,a^2*c^3*d-16*a^3*d^3+8*a^2*b*d^3+30*a*b^2*d^3-16*b^3*d^3+20*a^2*c*d^3-11*b^2*c*d^3-48*a*c^2*d^3+11*b*c^2*d^3-20*c^3*d^3-24*a^2*d^4-23*a*b*d^4+9*b^2*d^4+13*a*c*d^4-42*b*c*d^4+22*c^2*d^4-29*a*d^5-28*b*d^5-7*c*d^5-2*d^6,b^3*c^2*d+42*a^3*d^3-11*a^2*b*d^3+18*a*b^2*d^3-13*b^3*d^3+22*a^2*c*d^3-10*a*b*c*d^3-25*b^2*c*d^3-17*a*c^2*d^3-23*b*c^2*d^3-37*c^3*d^3-3*a^2*d^4-33*a*b*d^4+44*b^2*d^4-41*a*c*d^4+6*b*c*d^4-36*c^2*d^4-43*a*d^5+b*d^5+25*c*d^5+48*d^6,a*b^2*c^2*d+21*a^3*d^3+5*a^2*b*d^3+38*a*b^2*d^3+25*b^3*d^3-12*a^2*c*d^3+7*a*b*c*d^3+28*b^2*c*d^3+a*c^2*d^3+33*b*c^2*d^3+22*c^3*d^3+10*a^2*d^4-7*a*b*d^4-5*b^2*d^4+50*a*c*d^4-23*b*c*d^4+22*c^2*d^4-4*a*d^5+45*b*d^5-42*c*d^5+d^6,a^2*b*c^2*d-45*a^3*d^3+2*a^2*b*d^3+44*a*b^2*d^3-5*b^3*d^3-19*a^2*c*d^3-3*a*b*c*d^3+18*b^2*c*d^3-22*a*c^2*d^3+46*b*c^2*d^3+41*c^3*d^3-26*a^2*d^4-a*b*d^4-42*b^2*d^4-40*a*c*d^4+39*b*c*d^4+24*c^2*d^4-6*a*d^5-6*b*d^5+13*c*d^5-28*d^6,a^3*c^2*d+4*a^3*d^3+31*a^2*b*d^3+21*a*b^2*d^3+39*b^3*d^3-8*a^2*c*d^3+49*a*b*c*d^3-48*b^2*c*d^3-16*a*c^2*d^3-33*b*c^2*d^3+35*c^3*d^3+41*a^2*d^4+18*a*b*d^4+47*b^2*d^4-3*a*c*d^4+12*b*c*d^4+13*c^2*d^4+32*a*d^5-40*b*d^5+50*c*d^5-2*d^6,b^4*c*d+23*a^3*d^3+47*a^2*b*d^3-10*a*b^2*d^3-43*b^3*d^3+49*a^2*c*d^3+7*a*b*c*d^3+34*b^2*c*d^3-40*a*c^2*d^3-37*b*c^2*d^3-6*c^3*d^3+30*a^2*d^4-34*a*b*d^4-6*b^2*d^4+21*a*c*d^4+41*b*c*d^4-33*c^2*d^4-9*a*d^5+2*b*d^5+8*c*d^5+7*d^6,a*b^3*c*d-5*a^3*d^3-42*a^2*b*d^3+22*a*b^2*d^3-35*b^3*d^3+a^2*c*d^3+20*a*b*c*d^3-10*b^2*c*d^3+23*a*c^2*d^3-17*b*c^2*d^3+30*c^3*d^3+24*a^2*d^4+32*a*b*d^4-7*b^2*d^4-48*a*c*d^4-25*b*c*d^4-6*c^2*d^4-33*a*d^5+29*b*d^5+12*c*d^5+26*d^6,a^2*b^2*c*d+6*a^3*d^3-46*a^2*b*d^3-30*a*b^2*d^3+b^3*d^3-35*a^2*c*d^3+41*a*b*c*d^3-4*b^2*c*d^3-42*a*c^2*d^3+16*b*c^2*d^3+19*c^3*d^3-13*a^2*d^4-16*a*b*d^4+45*b^2*d^4-25*a*c*d^4-48*b*c*d^4+35*c^2*d^4+50*a*d^5+31*b*d^5-25*c*d^5+6*d^6,a^3*b*c*d+3*a^3*d^3-39*a^2*b*d^3+14*a*b^2*d^3-4*b^3*d^3-36*a^2*c*d^3+47*a*b*c*d^3+27*b^2*c*d^3+50*a*c^2*d^3-45*b*c^2*d^3+49*c^3*d^3-18*a^2*d^4+20*a*b*d^4+17*b^2*d^4+a*c*d^4+33*b*c*d^4+42*c^2*d^4+19*a*d^5+18*b*d^5+33*c*d^5+15*d^6,a^4*c*d-14*a^3*d^3-8*a^2*b*d^3-a*b^2*d^3-34*b^3*d^3-27*a^2*c*d^3-15*a*b*c*d^3-14*b^2*c*d^3+33*a*c^2*d^3-34*b*c^2*d^3-4*c^3*d^3+47*a^2*d^4+50*a*b*d^4-6*b^2*d^4+16*a*c*d^4+26*c^2*d^4-27*a*d^5+2*b*d^5-31*c*d^5+47*d^6,b^5*d+3*a^3*d^3-9*a^2*b*d^3+46*a*b^2*d^3+b^3*d^3-2*a^2*c*d^3-39*a*b*c*d^3-31*b^2*c*d^3-30*a*c^2*d^3+23*b*c^2*d^3+25*c^3*d^3+9*a^2*d^4-15*a*b*d^4-2*b^2*d^4-12*a*c*d^4+11*b*c*d^4+9*c^2*d^4+3*a*d^5+9*b*d^5+41*c*d^5-38*d^6,a*b^4*d-48*a^3*d^3+42*a^2*b*d^3+27*a*b^2*d^3+32*b^3*d^3+21*a^2*c*d^3-5*a*b*c*d^3-39*b^2*c*d^3+6*a*c^2*d^3-20*b*c^2*d^3+45*c^3*d^3-48*a^2*d^4+44*a*b*d^4+25*b^2*d^4-29*a*c*d^4+4*b*c*d^4+50*c^2*d^4-6*a*d^5-40*b*d^5-11*c*d^5-28*d^6,a^2*b^3*d-41*a^3*d^3+21*a^2*b*d^3+39*a*b^2*d^3-2*b^3*d^3+24*a*b*c*d^3-10*b^2*c*d^3+31*a*c^2*d^3-34*b*c^2*d^3-31*c^3*d^3+20*a^2*d^4+41*a*b*d^4-10*b^2*d^4-40*a*c*d^4+5*b*c*d^4+31*c^2*d^4+6*a*d^5+26*b*d^5+29*c*d^5-5*d^6,a^3*b^2*d-11*a^3*d^3-39*a^2*b*d^3+2*a*b^2*d^3-44*b^3*d^3-23*a^2*c*d^3+21*a*b*c*d^3-44*b^2*c*d^3-7*a*c^2*d^3+49*b*c^2*d^3+46*c^3*d^3+17*a^2*d^4+49*a*b*d^4-14*b^2*d^4+29*a*c*d^4-20*b*c*d^4-49*c^2*d^4-13*a*d^5-41*b*d^5-18*c*d^5+50*d^6,a^4*b*d+9*a^3*d^3+50*a^2*b*d^3+46*a*b^2*d^3-48*b^3*d^3+43*a^2*c*d^3-45*a*b*c*d^3+24*b^2*c*d^3-4*a*c^2*d^3-b*c^2*d^3-34*c^3*d^3+33*a^2*d^4+14*a*b*d^4-37*b^2*d^4-13*a*c*d^4+48*b*c*d^4-31*c^2*d^4-22*a*d^5+42*b*d^5+49*c*d^5-43*d^6,a^5*d+33*a^3*d^3-23*a^2*b*d^3+30*a*b^2*d^3+5*b^3*d^3-26*a^2*c*d^3-35*a*b*c*d^3-50*b^2*c*d^3-21*a*c^2*d^3+4*b*c^2*d^3+10*c^3*d^3+39*a^2*d^4-2*a*b*d^4+23*b^2*d^4+17*a*c*d^4-50*b*c*d^4-8*c^2*d^4-39*a*d^5+36*b*d^5-43*c*d^5-39*d^6,c^6+20*a^3*d^3-41*a*b^2*d^3+39*b^3*d^3+26*a^2*c*d^3-8*a*b*c*d^3-49*b^2*c*d^3+25*a*c^2*d^3+32*b*c^2*d^3-32*c^3*d^3-2*a^2*d^4-38*a*b*d^4-38*b^2*d^4+17*a*c*d^4+22*b*c*d^4-36*c^2*d^4-41*a*d^5+37*b*d^5-49*c*d^5-19*d^6,b*c^5-36*a^3*d^3+32*a^2*b*d^3-14*a*b^2*d^3-31*b^3*d^3-2*a^2*c*d^3-8*a*b*c*d^3-39*b^2*c*d^3-46*a*c^2*d^3+10*b*c^2*d^3+27*c^3*d^3+25*a^2*d^4-30*a*b*d^4+3*b^2*d^4-36*a*c*d^4+44*b*c*d^4+17*c^2*d^4-46*a*d^5-37*b*d^5-2*c*d^5-47*d^6,a*c^5-49*a^3*d^3+11*a^2*b*d^3-21*a*b^2*d^3-14*b^3*d^3+26*a^2*c*d^3-a*b*c*d^3+24*b^2*c*d^3-46*a*c^2*d^3+23*b*c^2*d^3+33*c^3*d^3-11*a^2*d^4-a*b*d^4+49*b^2*d^4-17*a*c*d^4+49*b*c*d^4+36*c^2*d^4+10*a*d^5-19*b*d^5+26*c*d^5-32*d^6,b^2*c^4-14*a^3*d^3+9*a^2*b*d^3-5*a*b^2*d^3+17*b^3*d^3+2*a^2*c*d^3+12*a*b*c*d^3-37*b^2*c*d^3-43*a*c^2*d^3+5*b*c^2*d^3-9*c^3*d^3-27*a^2*d^4+14*a*b*d^4-19*b^2*d^4+29*a*c*d^4+32*b*c*d^4-15*c^2*d^4-26*a*d^5-31*b*d^5+46*c*d^5-22*d^6,a*b*c^4+33*a^3*d^3-22*a^2*b*d^3-14*a*b^2*d^3-30*b^3*d^3-48*a^2*c*d^3+34*a*b*c*d^3-8*b^2*c*d^3-44*a*c^2*d^3-4*b*c^2*d^3+3*c^3*d^3+26*a^2*d^4+4*a*b*d^4+7*b^2*d^4-28*a*c*d^4-22*b*c*d^4-35*c^2*d^4-50*a*d^5-43*b*d^5+46*c*d^5-49*d^6,a^2*c^4-9*a^3*d^3+3*a^2*b*d^3+34*a*b^2*d^3+4*b^3*d^3+5*a^2*c*d^3-17*a*b*c*d^3-48*b^2*c*d^3+10*a*c^2*d^3+2*b*c^2*d^3-12*c^3*d^3-7*a^2*d^4-6*a*b*d^4+37*b^2*d^4-16*a*c*d^4+47*b*c*d^4+6*c^2*d^4-35*a*d^5-45*b*d^5-12*c*d^5-30*d^6,b^3*c^3-21*a^3*d^3-6*a^2*b*d^3-26*a*b^2*d^3-22*b^3*d^3-29*a*b*c*d^3-26*b^2*c*d^3+50*a*c^2*d^3-41*b*c^2*d^3+22*c^3*d^3-41*a^2*d^4+25*a*b*d^4+16*b^2*d^4+11*a*c*d^4+34*b*c*d^4+19*c^2*d^4-38*a*d^5-8*b*d^5-42*c*d^5-6*d^6,a*b^2*c^3+3*a^3*d^3-45*a^2*b*d^3+39*a*b^2*d^3+22*b^3*d^3+48*a^2*c*d^3-7*a*b*c*d^3-46*b^2*c*d^3-22*a*c^2*d^3-17*b*c^2*d^3-27*c^3*d^3-35*a^2*d^4+47*a*b*d^4+6*b^2*d^4-5*a*c*d^4-30*b*c*d^4+25*c^2*d^4-10*a*d^5+46*b*d^5+5*c*d^5-18*d^6,a^2*b*c^3-36*a^3*d^3+33*a^2*b*d^3+47*a*b^2*d^3-16*b^3*d^3-41*a^2*c*d^3+42*a*b*c*d^3-29*b^2*c*d^3+39*a*c^2*d^3-12*b*c^2*d^3-25*c^3*d^3-11*a^2*d^4-37*a*b*d^4+29*b^2*d^4-18*a*c*d^4+43*b*c*d^4+12*c^2*d^4-37*a*d^5+7*b*d^5+7*c*d^5-5*d^6,a^3*c^3+25*a^3*d^3+34*a^2*b*d^3+29*a*b^2*d^3-34*b^3*d^3-46*a^2*c*d^3-17*a*b*c*d^3+49*b^2*c*d^3-35*a*c^2*d^3-21*b*c^2*d^3-45*c^3*d^3+43*a^2*d^4+29*a*b*d^4+36*b^2*d^4+37*a*c*d^4+12*b*c*d^4-17*c^2*d^4+12*a*d^5+47*c*d^5-23*d^6,b^4*c^2-10*a^3*d^3+38*a^2*b*d^3+33*a*b^2*d^3+9*b^3*d^3-25*a^2*c*d^3+38*a*b*c*d^3-19*b^2*c*d^3-33*a*c^2*d^3-49*b*c^2*d^3-16*c^3*d^3-14*a^2*d^4-3*a*b*d^4-30*b^2*d^4-32*a*c*d^4+28*b*c*d^4-3*c^2*d^4-16*a*d^5+31*b*d^5-49*c*d^5-3*d^6,a*b^3*c^2+25*a^3*d^3-47*a^2*b*d^3+47*b^3*d^3+13*a^2*c*d^3-17*a*b*c*d^3+26*b^2*c*d^3-43*a*c^2*d^3+39*b*c^2*d^3-4*c^3*d^3+20*a^2*d^4+6*a*b*d^4+49*b^2*d^4+14*a*c*d^4-17*b*c*d^4+38*c^2*d^4+21*a*d^5-9*b*d^5-26*c*d^5+47*d^6,a^2*b^2*c^2+12*a^3*d^3+10*a^2*b*d^3-40*a*b^2*d^3+14*b^3*d^3+36*a^2*c*d^3-9*a*b*c*d^3+9*b^2*c*d^3+7*a*c^2*d^3+12*b*c^2*d^3-37*c^3*d^3-44*a^2*d^4-48*a*b*d^4+11*b^2*d^4-13*a*c*d^4+31*b*c*d^4+47*c^2*d^4+28*a*d^5+39*b*d^5+27*c*d^5-d^6,a^3*b*c^2-28*a^3*d^3-22*a^2*b*d^3-8*a*b^2*d^3+40*b^3*d^3-13*a^2*c*d^3+35*a*b*c*d^3-4*b^2*c*d^3+28*a*c^2*d^3+30*b*c^2*d^3-13*c^3*d^3+16*a^2*d^4+48*a*b*d^4-42*b^2*d^4+10*a*c*d^4-b*c*d^4+37*c^2*d^4-17*a*d^5-15*b*d^5+40*c*d^5+27*d^6,a^4*c^2+17*a^3*d^3+45*a^2*b*d^3+42*a*b^2*d^3-20*b^3*d^3-39*a^2*c*d^3-20*a*b*c*d^3-44*b^2*c*d^3+33*a*c^2*d^3+39*b*c^2*d^3-37*c^3*d^3+39*a^2*d^4+39*a*b*d^4-44*b^2*d^4+8*a*c*d^4-34*b*c*d^4+36*c^2*d^4-47*a*d^5+38*b*d^5-46*c*d^5+23*d^6,b^5*c+24*a^3*d^3+17*a^2*b*d^3-22*a*b^2*d^3-27*b^3*d^3+27*a^2*c*d^3+48*a*b*c*d^3+4*b^2*c*d^3+a*c^2*d^3-21*b*c^2*d^3-14*c^3*d^3+3*a^2*d^4+15*a*b*d^4+41*b^2*d^4-27*a*c*d^4+4*b*c*d^4+3*c^2*d^4-46*a*d^5+28*b*d^5+6*c*d^5+36*d^6,a*b^4*c-29*a^3*d^3+30*a^2*b*d^3+31*a*b^2*d^3+44*b^3*d^3-12*a^2*c*d^3-27*a*b*c*d^3+48*b^2*c*d^3+4*a*c^2*d^3+2*b*c^2*d^3-17*c^3*d^3-7*a^2*d^4+25*a*b*d^4-45*b^2*d^4-17*a*c*d^4-14*b*c*d^4-11*c^2*d^4-45*a*d^5-36*b*d^5-12*c*d^5-44*d^6,a^2*b^3*c-10*a^3*d^3-30*a^2*b*d^3-22*a*b^2*d^3-35*b^3*d^3+37*a^2*c*d^3-35*a*b*c*d^3-12*b^2*c*d^3-16*b*c^2*d^3+49*c^3*d^3+38*a^2*d^4-21*a*b*d^4-20*b^2*d^4-6*a*c*d^4+41*b*c*d^4+49*c^2*d^4+13*a*d^5-38*b*d^5-32*c*d^5-12*d^6,a^3*b^2*c+5*a^2*b*d^3-40*a*b^2*d^3+14*b^3*d^3-4*a^2*c*d^3-13*a*b*c*d^3+47*b^2*c*d^3+28*a*c^2*d^3+15*b*c^2*d^3+47*c^3*d^3-8*a^2*d^4-20*a*b*d^4+3*b^2*d^4+42*a*c*d^4+18*b*c*d^4-23*c^2*d^4-48*a*d^5+12*b*d^5-25*c*d^5-39*d^6,a^4*b*c+29*a^3*d^3+21*a^2*b*d^3-32*a*b^2*d^3+48*b^3*d^3-44*a^2*c*d^3-3*a*b*c*d^3-27*b^2*c*d^3+27*a*c^2*d^3+43*b*c^2*d^3-30*c^3*d^3+4*a^2*d^4+16*a*b*d^4+33*b^2*d^4+37*a*c*d^4-32*b*c*d^4+14*c^2*d^4+50*a*d^5-49*c*d^5-33*d^6,a^5*c-26*a^3*d^3-50*a^2*b*d^3+2*a*b^2*d^3+3*b^3*d^3-15*a^2*c*d^3-32*a*b*c*d^3-4*b^2*c*d^3-13*a*c^2*d^3-13*b*c^2*d^3+3*c^3*d^3+32*a^2*d^4-32*a*b*d^4-47*b^2*d^4-39*a*c*d^4-34*b*c*d^4-9*c^2*d^4-7*a*d^5-22*b*d^5+16*c*d^5+44*d^6,b^6+45*a^3*d^3-42*a^2*b*d^3-35*a*b^2*d^3+13*b^3*d^3+28*a^2*c*d^3-2*a*b*c*d^3-37*b^2*c*d^3-9*a*c^2*d^3+44*b*c^2*d^3-24*c^3*d^3+36*a^2*d^4+42*a*b*d^4-38*b^2*d^4-34*a*c*d^4-46*b*c*d^4+23*c^2*d^4-9*a*d^5-28*b*d^5+37*c*d^5+26*d^6,a*b^5-14*a^3*d^3+38*a^2*b*d^3-37*a*b^2*d^3-33*b^3*d^3-24*a^2*c*d^3+15*a*b*c*d^3+44*b^2*c*d^3-45*a*c^2*d^3+3*b*c^2*d^3-41*c^3*d^3-48*a^2*d^4-36*a*b*d^4+39*b^2*d^4+46*a*c*d^4-3*b*c*d^4+21*c^2*d^4-36*a*d^5-20*b*d^5+24*c*d^5-33*d^6,a^2*b^4-27*a^3*d^3-10*a^2*b*d^3-5*a*b^2*d^3+8*b^3*d^3+21*a^2*c*d^3+31*a*b*c*d^3-44*b^2*c*d^3+41*a*c^2*d^3+17*b*c^2*d^3-8*c^3*d^3+19*a^2*d^4+25*a*b*d^4+b^2*d^4+3*a*c*d^4+2*b*c*d^4-40*c^2*d^4+31*a*d^5-19*b*d^5+35*c*d^5-28*d^6,a^3*b^3-12*a^3*d^3-25*a^2*b*d^3+37*a*b^2*d^3-37*b^3*d^3+46*a^2*c*d^3+43*a*b*c*d^3+b^2*c*d^3-41*a*c^2*d^3-38*b*c^2*d^3-36*c^3*d^3-11*a*b*d^4+20*b^2*d^4-a*c*d^4-26*b*c*d^4+14*c^2*d^4-48*a*d^5+17*b*d^5+9*c*d^5+30*d^6,a^4*b^2+36*a^3*d^3+9*a^2*b*d^3-31*b^3*d^3+50*a^2*c*d^3+41*a*b*c*d^3+40*b^2*c*d^3+48*a*c^2*d^3-41*b*c^2*d^3-17*c^3*d^3+33*a^2*d^4+47*a*b*d^4+22*b^2*d^4+2*a*c*d^4+23*b*c*d^4-47*c^2*d^4+34*a*d^5-15*b*d^5-33*c*d^5-38*d^6,a^5*b-12*a^3*d^3-38*a^2*b*d^3+46*a*b^2*d^3-32*b^3*d^3-41*a^2*c*d^3+14*a*b*c*d^3-34*b^2*c*d^3+7*a*c^2*d^3-6*b*c^2*d^3+31*c^3*d^3+30*a^2*d^4+12*a*b*d^4-17*b^2*d^4-7*a*c*d^4-45*b*c*d^4+10*c^2*d^4+29*a*d^5-28*b*d^5+34*c*d^5-15*d^6,a^6-33*a^3*d^3-45*a^2*b*d^3+19*a*b^2*d^3+39*b^3*d^3-5*a^2*c*d^3-46*a*b*c*d^3+9*b^2*c*d^3+15*a*c^2*d^3-21*b*c^2*d^3+46*c^3*d^3-39*a^2*d^4-9*a*b*d^4+50*b^2*d^4-45*a*c*d^4-39*b*c*d^4-18*c^2*d^4-4*a*d^5-19*b*d^5+12*c*d^5+39*d^6,d^7,c*d^6,b*d^6,a*d^6,c^2*d^5,b*c*d^5,a*c*d^5,b^2*d^5,a*b*d^5,a^2*d^5,c^3*d^4,b*c^2*d^4,a*c^2*d^4,b^2*c*d^4,a*b*c*d^4,a^2*c*d^4,b^3*d^4,a*b^2*d^4,a^2*b*d^4,a^3*d^4; 2843 // M;2844 2812 TestSSresAttribs2tr(M, "AGR@101n3d008s058%3"); 2845 2813 2846 2814 // AGR@101n3d010s010%3, a bit slower... 2847 2815 M = a^2*b^5-50*a*b^6-26*a^6*c+15*a^5*b*c-42*a^4*b^2*c-2*a^3*b^3*c+40*a^2*b^4*c-20*a*b^5*c+11*b^6*c-17*a^5*c^2-4*a^4*b*c^2+13*a^3*b^2*c^2-7*a^2*b^3*c^2+13*a*b^4*c^2-46*b^5*c^2+38*a^4*c^3+32*a^3*b*c^3-49*a^2*b^2*c^3-41*a*b^3*c^3+9*b^4*c^3+17*a^3*c^4-23*a^2*b*c^4+46*a*b^2*c^4+9*b^3*c^4-20*a^2*c^5-34*a*b*c^5-46*b^2*c^5-3*a*c^6+11*b*c^6-22*a^6*d-5*a^5*b*d-21*a^4*b^2*d-43*a^3*b^3*d-29*a^2*b^4*d+43*a*b^5*d-2*b^6*d+24*a^5*c*d-9*a^4*b*c*d+3*a^3*b^2*c*d+20*a^2*b^3*c*d+47*a*b^4*c*d-41*b^5*c*d+11*a^4*c^2*d-14*a^3*b*c^2*d+13*a^2*b^2*c^2*d-19*a*b^3*c^2*d-12*b^4*c^2*d+41*a^3*c^3*d-49*a^2*b*c^3*d-10*a*b^2*c^3*d+19*b^3*c^3*d-13*a^2*c^4*d+10*a*b*c^4*d-49*b^2*c^4*d-3*a*c^5*d-10*b*c^5*d+31*c^6*d-16*a^5*d^2+24*a^4*b*d^2-43*a^3*b^2*d^2+36*a^2*b^3*d^2-36*a^4*c*d^2-36*a^3*b*c*d^2-16*a^2*b^2*c*d^2+35*a*b^3*c*d^2+29*b^4*c*d^2+40*a^3*c^2*d^2-24*a^2*b*c^2*d^2-24*a*b^2*c^2*d^2+7*b^3*c^2*d^2+28*a^2*c^3*d^2+49*a*b*c^3*d^2+49*b^2*c^3*d^2+7*a*c^4*d^2-9*b*c^4*d^2+21*c^5*d^2-28*a^4*d^3+24*a^3*b*d^3-24*a^2*b^2*d^3+23*a*b^3*d^3+24*b^4*d^3+24*a^3*c*d^3-25*a^2*b*c*d^3-9*a*b^2*c*d^3-43*b^3*c*d^3+15*a^2*c^2*d^3+49*a*b*c^2*d^3+24*b^2*c^2*d^3-20*a*c^3*d^3-30*b*c^3*d^3-20*c^4*d^3+13*a^3*d^4+34*a^2*b*d^4-45*a*b^2*d^4+9*b^3*d^4+9*a^2*c*d^4-31*a*b*c*d^4-6*b^2*c*d^4-16*a*c^2*d^4+9*b*c^2*d^4+24*c^3*d^4+38*a^2*d^5-23*a*b*d^5-35*b^2*d^5+22*a*c*d^5-22*b*c*d^5+46*c^2*d^5+12*a*d^6+21*b*d^6-23*c*d^6-2*d^7,a^3*b^4+34*a^6*c+14*a^5*b*c+34*a^4*b^2*c+43*a^3*b^3*c-26*a^2*b^4*c+13*a*b^5*c+10*b^6*c-43*a^5*c^2+50*a^4*b*c^2-23*a^3*b^2*c^2-a^2*b^3*c^2+39*a*b^4*c^2+50*b^5*c^2+16*a^4*c^3+31*a^3*b*c^3-49*a^2*b^2*c^3+26*a*b^3*c^3-b^4*c^3-5*a^3*c^4+3*a^2*b*c^4-26*a*b^2*c^4-b^3*c^4-24*a^2*c^5-39*a*b*c^5+50*b^2*c^5-13*a*c^6+10*b*c^6-39*a^6*d+35*a^5*b*d+44*a^4*b^2*d-39*a^3*b^3*d-26*a^2*b^4*d-47*a*b^5*d-42*b^6*d+34*a^5*c*d-43*a^4*b*c*d-39*a^3*b^2*c*d+41*a^2*b^3*c*d+32*a*b^4*c*d-10*b^5*c*d+43*a^4*c^2*d+12*a^3*b*c^2*d-43*a^2*b^2*c^2*d+23*a*b^3*c^2*d-46*b^4*c^2*d+12*a^3*c^3*d-10*a^2*b*c^3*d+13*a*b^2*c^3*d-15*b^3*c^3*d-a^2*c^4*d+17*a*b*c^4*d-47*b^2*c^4*d+49*a*c^5*d-31*b*c^5*d-22*c^6*d-28*a^5*d^2-39*a^4*b*d^2+33*a^3*b^2*d^2-40*a^2*b^3*d^2+31*a*b^4*d^2+5*b^5*d^2+42*a^4*c*d^2-a^3*b*c*d^2+37*a^2*b^2*c*d^2-13*a*b^3*c*d^2+b^4*c*d^2+35*a^3*c^2*d^2-9*a^2*b*c^2*d^2+46*a*b^2*c^2*d^2-2*b^3*c^2*d^2+15*a^2*c^3*d^2-48*a*b*c^3*d^2+38*b^2*c^3*d^2-37*a*c^4*d^2-40*b*c^4*d^2+25*c^5*d^2+5*a^4*d^3-4*a^3*b*d^3+30*a^2*b^2*d^3-42*a*b^3*d^3+11*b^4*d^3+10*a^3*c*d^3+34*a^2*b*c*d^3-48*a*b^2*c*d^3+17*b^3*c*d^3-33*a^2*c^2*d^3-12*a*b*c^2*d^3-44*b^2*c^2*d^3-6*a*c^3*d^3+6*b*c^3*d^3-45*c^4*d^3+6*a^3*d^4+8*a^2*b*d^4-22*a*b^2*d^4+23*b^3*d^4-22*a^2*c*d^4-38*a*b*c*d^4+44*b^2*c*d^4-13*a*c^2*d^4-50*b*c^2*d^4+30*c^3*d^4-6*a^2*d^5-46*a*b*d^5+17*b^2*d^5-23*a*c*d^5-10*b*c*d^5+32*c^2*d^5-47*a*d^6+2*b*d^6+20*c*d^6-46*d^7,a^4*b^3+30*a*b^6-49*a^6*c+18*a^5*b*c+37*a^4*b^2*c+44*a^3*b^3*c-27*a^2*b^4*c-a*b^5*c-35*b^6*c-20*a^5*c^2+32*a^4*b*c^2+28*a^3*b^2*c^2-13*a^2*b^3*c^2-32*a*b^4*c^2+27*b^5*c^2-4*a^4*c^3+25*a^3*b*c^3+22*a^2*b^2*c^3-23*a*b^3*c^3-47*b^4*c^3+41*a^3*c^4-25*a^2*b*c^4-34*a*b^2*c^4-47*b^3*c^4-33*a^2*c^5-43*a*b*c^5+27*b^2*c^5-31*a*c^6-35*b*c^6-49*a^6*d+30*a^5*b*d-4*a^4*b^2*d+11*a^3*b^3*d-12*a^2*b^4*d-38*a*b^5*d+45*b^6*d+5*a^5*c*d-45*a^4*b*c*d-42*a^3*b^2*c*d-11*a^2*b^3*c*d+21*a*b^4*c*d+18*b^5*c*d-50*a^4*c^2*d-25*a^3*b*c^2*d+35*a^2*b^2*c^2*d-a*b^3*c^2*d+30*b^4*c^2*d+28*a^3*c^3*d-46*a^2*b*c^3*d-4*a*b^2*c^3*d+32*b^3*c^3*d+21*a^2*c^4*d-34*a*b*c^4*d+27*b^2*c^4*d+11*a*c^5*d-45*b*c^5*d+4*c^6*d+2*a^5*d^2-43*a^4*b*d^2-36*a^3*b^2*d^2+14*a^2*b^3*d^2+35*a*b^4*d^2+8*b^5*d^2+34*a^4*c*d^2-12*a^3*b*c*d^2-a^2*b^2*c*d^2-5*a*b^3*c*d^2+43*b^4*c*d^2+45*a^3*c^2*d^2-34*a^2*b*c^2*d^2+26*a*b^2*c^2*d^2+10*b^3*c^2*d^2-19*a^2*c^3*d^2+5*a*b*c^3*d^2-47*b^2*c^3*d^2+40*a*c^4*d^2+8*b*c^4*d^2+30*c^5*d^2+42*a^4*d^3+27*a^3*b*d^3+31*a^2*b^2*d^3-6*a*b^3*d^3+36*b^4*d^3+37*a^2*b*c*d^3+34*a*b^2*c*d^3-13*b^3*c*d^3+a^2*c^2*d^3+29*a*b*c^2*d^3-b^2*c^2*d^3-11*a*c^3*d^3-21*b*c^3*d^3+32*c^4*d^3+9*a^3*d^4-21*a^2*b*d^4+26*a*b^2*d^4+43*b^3*d^4-42*a^2*c*d^4-2*a*b*c*d^4-34*b^2*c*d^4+10*a*c^2*d^4-26*b*c^2*d^4-50*c^3*d^4+23*a^2*d^5+49*a*b*d^5+28*b^2*d^5-48*a*c*d^5-18*b*c*d^5-2*c^2*d^5-2*a*d^6-30*b*d^6+36*c*d^6-21*d^7,a^5*b^2+9*a*b^6+6*a^6*c+34*a^5*b*c-14*a^4*b^2*c-43*a^3*b^3*c-27*a^2*b^4*c+14*a*b^5*c+9*b^6*c-28*a^5*c^2-10*a^4*b*c^2+39*a^3*b^2*c^2-49*a^2*b^3*c^2-38*a*b^4*c^2+45*b^5*c^2+4*a^4*c^3+5*a^3*b*c^3+15*a^2*b^2*c^3-11*a*b^3*c^3-11*b^4*c^3+24*a^3*c^4-32*a^2*b*c^4-2*a*b^2*c^4-11*b^3*c^4+32*a^2*c^5-38*a*b*c^5+45*b^2*c^5-4*a*c^6+9*b*c^6+23*a^6*d-13*a^5*b*d+8*a^4*b^2*d-46*a^3*b^3*d-9*a^2*b^4*d-8*a*b^5*d+17*b^6*d+a^5*c*d+5*a^4*b*c*d-50*a^3*b^2*c*d+22*a^2*b^3*c*d-34*a*b^4*c*d-49*b^5*c*d+44*a^4*c^2*d+41*a^3*b*c^2*d-44*a^2*b^2*c^2*d-49*a*b^3*c^2*d+37*b^4*c^2*d+45*a^3*c^3*d+12*a^2*b*c^3*d-23*a*b^2*c^3*d-32*b^3*c^3*d-14*a^2*c^4*d+5*a*b*c^4*d+48*b^2*c^4*d+5*a*c^5*d-20*b*c^5*d-c^6*d+5*a^5*d^2-45*a^4*b*d^2+42*a^3*b^2*d^2+50*a^2*b^3*d^2-8*a*b^4*d^2-49*b^5*d^2-35*a^4*c*d^2-25*a^3*b*c*d^2-4*a^2*b^2*c*d^2-26*a*b^3*c*d^2-28*b^4*c*d^2+46*a^3*c^2*d^2+22*a^2*b*c^2*d^2+43*a*b^2*c^2*d^2-4*b^3*c^2*d^2-25*a^2*c^3*d^2+31*a*b*c^3*d^2-31*b^2*c^3*d^2-30*a*c^4*d^2-18*b*c^4*d^2-12*c^5*d^2-33*a^4*d^3-48*a^3*b*d^3-36*a^2*b^2*d^3-6*a*b^3*d^3+8*b^4*d^3+3*a^3*c*d^3-43*a^2*b*c*d^3+34*a*b^2*c*d^3+19*b^3*c*d^3+19*a^2*c^2*d^3-49*a*b*c^2*d^3-2*b^2*c^2*d^3+12*a*c^3*d^3-29*b*c^3*d^3-16*c^4*d^3+27*a^3*d^4+22*a^2*b*d^4+22*a*b^2*d^4-12*b^3*d^4+34*a^2*c*d^4+8*a*b*c*d^4+50*b^2*c*d^4+40*a*c^2*d^4+27*b*c^2*d^4-35*c^3*d^4-30*a^2*d^5+24*a*b*d^5+7*b^2*d^5+16*a*c*d^5+17*b*c*d^5-40*c^2*d^5-47*a*d^6-12*b*d^6+16*c*d^6+6*d^7,a^6*b-45*a*b^6-30*a^6*c-5*a^5*b*c-39*a^4*b^2*c-37*a^3*b^3*c+a^2*b^4*c-14*a*b^5*c-37*b^6*c+49*a^5*c^2+28*a^4*b*c^2+7*a^3*b^2*c^2-10*a^2*b^3*c^2+10*a*b^4*c^2+17*b^5*c^2-34*a^4*c^3+24*a^3*b*c^3-36*a^2*b^2*c^3-13*a*b^3*c^3+34*b^4*c^3-20*a^3*c^4-38*a^2*b*c^4+32*a*b^2*c^4+34*b^3*c^4-13*a^2*c^5+44*a*b*c^5+17*b^2*c^5+20*a*c^6-37*b*c^6+10*a^6*d+26*a^5*b*d+15*a^4*b^2*d+23*a^3*b^3*d+16*a^2*b^4*d+48*a*b^5*d-30*b^6*d-9*a^5*c*d-20*a^4*b*c*d+49*a^3*b^2*c*d-48*a^2*b^3*c*d-36*a*b^4*c*d-21*b^5*c*d+9*a^4*c^2*d-24*a^3*b*c^2*d+42*a^2*b^2*c^2*d+26*a*b^3*c^2*d-46*b^4*c^2*d-50*a^3*c^3*d-11*a^2*b*c^3*d-34*a*b^2*c^3*d+32*b^3*c^3*d-16*a^2*c^4*d-25*a*b*c^4*d+6*b^2*c^4*d+18*a*c^5*d-40*b*c^5*d+41*c^6*d-8*a^5*d^2-27*a^4*b*d^2-48*a^3*b^2*d^2-a^2*b^3*d^2+50*a*b^4*d^2+21*b^5*d^2-48*a^4*c*d^2+4*a^3*b*c*d^2-28*a^2*b^2*c*d^2-4*a*b^3*c*d^2+16*b^4*c*d^2+50*a^3*c^2*d^2+40*a^2*b*c^2*d^2+35*a*b^2*c^2*d^2+29*b^3*c^2*d^2-34*a^2*c^3*d^2-21*a*b*c^3*d^2-b^2*c^3*d^2-9*a*c^4*d^2-29*b*c^4*d^2+6*c^5*d^2+16*a^4*d^3-34*a^3*b*d^3+3*a^2*b^2*d^3+21*a*b^3*d^3+39*b^4*d^3+21*a^3*c*d^3-44*a^2*b*c*d^3-16*a*b^2*c*d^3+b^3*c*d^3-38*a^2*c^2*d^3+18*a*b*c^2*d^3+37*b^2*c^2*d^3-46*a*c^3*d^3+25*b*c^3*d^3-50*c^4*d^3-8*a^3*d^4-24*a^2*b*d^4-2*a*b^2*d^4+6*b^3*d^4+9*a^2*c*d^4+12*a*b*c*d^4+33*b^2*c*d^4-44*a*c^2*d^4+23*b*c^2*d^4-4*c^3*d^4-9*a^2*d^5-2*a*b*d^5-14*b^2*d^5+21*a*c*d^5-16*b*c*d^5-19*c^2*d^5+17*a*d^6-20*b*d^6+11*c*d^6-41*d^7,a^7-10*a*b^6-6*a^6*c-48*a^5*b*c-14*a^4*b^2*c-16*a^3*b^3*c-4*a^2*b^4*c+24*a*b^5*c-10*b^6*c-2*a^5*c^2+23*a^3*b^2*c^2+26*a^2*b^3*c^2+22*a*b^4*c^2-50*b^5*c^2+14*a^4*c^3-7*a^3*b*c^3+a^2*b^2*c^3-49*a*b^3*c^3+b^4*c^3-46*a^3*c^4+9*a^2*b*c^4+10*a*b^2*c^4+b^3*c^4+38*a^2*c^5-26*a*b*c^5-50*b^2*c^5+28*a*c^6-10*b*c^6-7*a^6*d+24*a^5*b*d-8*a^4*b^2*d+23*a^3*b^3*d+9*a^2*b^4*d+28*a*b^5*d-23*b^6*d-42*a^4*b*c*d+24*a^3*b^2*c*d-30*a^2*b^3*c*d-42*a*b^4*c*d-43*b^5*c*d-42*a^4*c^2*d+11*a^3*b*c^2*d+9*a^2*b^2*c^2*d-8*a*b^3*c^2*d+4*b^4*c^2*d+10*a^3*c^3*d+43*a^2*b*c^3*d+3*a*b^2*c^3*d-14*b^3*c^3*d-5*a^2*c^4*d+25*a*b*c^4*d-50*b^2*c^4*d-17*a*c^5*d+35*b*c^5*d+47*c^6*d-4*a^5*d^2-43*a^4*b*d^2+35*a^3*b^2*d^2+19*a^2*b^3*d^2+48*a*b^4*d^2+45*b^5*d^2+3*a^4*c*d^2-46*a^3*b*c*d^2+8*a^2*b^2*c*d^2-35*a*b^3*c*d^2-27*b^4*c*d^2-49*a^3*c^2*d^2+37*a^2*b*c^2*d^2-43*a*b^2*c^2*d^2+32*b^3*c^2*d^2+48*a^2*c^3*d^2+9*a*b*c^3*d^2+b^2*c^3*d^2-31*a*c^4*d^2-23*b*c^4*d^2-21*c^5*d^2+34*a^4*d^3+38*a^3*b*d^3+41*a^2*b^2*d^3-24*a*b^3*d^3+28*b^4*d^3+47*a^3*c*d^3-6*a^2*b*c*d^3+27*a*b^2*c*d^3-43*b^3*c*d^3-24*a^2*c^2*d^3-19*a*b*c^2*d^3-50*b^2*c^2*d^3+31*a*c^3*d^3+40*b*c^3*d^3+19*c^4*d^3+4*a^3*d^4-36*a^2*b*d^4+43*a*b^2*d^4+27*b^3*d^4+49*a^2*c*d^4-27*a*b*c*d^4-39*b^2*c*d^4+46*a*c^2*d^4+40*b*c^2*d^4+5*c^3*d^4-12*a^2*d^5-5*a*b*d^5+16*b^2*d^5-26*a*c*d^5-31*b*c*d^5-38*c^2*d^5+17*a*d^6-11*b*d^6-7*c*d^6-39*d^7,b*c*d^6-21*c^2*d^6+36*a*d^7-34*b*d^7-40*c*d^7-11*d^8,a*c*d^6-24*c^2*d^6+5*a*d^7-7*b*d^7+21*c*d^7-43*d^8,b^2*d^6+20*c^2*d^6+6*a*d^7-30*b*d^7+25*c*d^7+4*d^8,a*b*d^6+23*c^2*d^6-43*a*d^7+47*b*d^7+42*c*d^7+29*d^8,a^2*d^6+49*c^2*d^6+6*a*d^7-35*b*d^7+19*c*d^7-11*d^8,c^3*d^5-38*c^2*d^6+47*a*d^7+35*b*d^7+46*c*d^7+21*d^8,b*c^2*d^5+41*c^2*d^6-8*a*d^7+8*b*d^7+46*c*d^7+42*d^8,a*c^2*d^5+44*c^2*d^6+10*a*d^7-36*b*d^7-21*c*d^7+28*d^8,b^2*c*d^5+9*c^2*d^6+35*a*d^7+20*b*d^7+49*c*d^7-47*d^8,a*b*c*d^5+44*c^2*d^6+24*a*d^7-12*b*d^7+24*c*d^7-5*d^8,a^2*c*d^5-9*c^2*d^6-34*a*d^7+27*b*d^7-49*c*d^7+d^8,b^3*d^5+21*c^2*d^6-37*a*d^7-13*b*d^7-48*c*d^7+25*d^8,a*b^2*d^5+4*c^2*d^6-8*a*d^7-42*b*d^7-31*c*d^7+21*d^8,a^2*b*d^5+26*c^2*d^6-47*a*d^7-37*b*d^7+24*c*d^7+6*d^8,a^3*d^5-32*c^2*d^6-31*a*d^7+26*b*d^7-35*c*d^7-39*d^8,c^4*d^4+25*c^2*d^6+35*a*d^7+24*b*d^7+32*c*d^7-46*d^8,b*c^3*d^4+10*c^2*d^6-9*a*d^7-27*b*d^7-17*c*d^7+11*d^8,a*c^3*d^4-41*c^2*d^6+5*a*d^7-18*b*d^7-43*c*d^7-25*d^8,b^2*c^2*d^4-9*c^2*d^6+15*a*d^7-7*b*d^7-27*c*d^7-40*d^8,a*b*c^2*d^4-4*c^2*d^6+25*a*d^7-9*b*d^7-41*c*d^7-11*d^8,a^2*c^2*d^4+15*c^2*d^6-5*a*d^7-34*b*d^7-11*c*d^7-29*d^8,b^3*c*d^4+49*c^2*d^6-24*a*d^7-8*b*d^7+7*c*d^7-46*d^8,a*b^2*c*d^4-20*c^2*d^6-4*a*d^7+32*b*d^7-42*c*d^7-d^8,a^2*b*c*d^4+15*c^2*d^6+31*a*d^7+16*b*d^7-25*c*d^7+29*d^8,a^3*c*d^4-48*c^2*d^6-36*a*d^7-10*b*d^7+4*c*d^7+27*d^8,b^4*d^4+26*c^2*d^6-25*a*d^7-3*b*d^7-45*c*d^7-26*d^8,a*b^3*d^4+c^2*d^6-21*a*d^7-13*b*d^7-20*c*d^7+16*d^8,a^2*b^2*d^4+22*c^2*d^6-27*a*d^7-23*b*d^7-5*c*d^7-27*d^8,a^3*b*d^4+2*c^2*d^6-29*a*d^7-6*b*d^7+26*c*d^7-46*d^8,a^4*d^4-40*c^2*d^6-9*a*d^7-24*b*d^7+2*c*d^7-37*d^8,c^5*d^3+14*c^2*d^6+40*a*d^7+21*b*d^7+50*c*d^7+31*d^8,b*c^4*d^3-21*c^2*d^6-2*a*d^7-9*b*d^7-28*c*d^7+20*d^8,a*c^4*d^3-39*c^2*d^6+38*a*d^7-24*b*d^7-42*c*d^7-30*d^8,b^2*c^3*d^3+19*c^2*d^6-50*a*d^7-33*b*d^7+16*c*d^7-45*d^8,a*b*c^3*d^3-6*c^2*d^6-38*a*d^7+35*b*d^7+32*c*d^7-12*d^8,a^2*c^3*d^3+44*c^2*d^6+35*a*d^7+42*b*d^7-10*c*d^7-48*d^8,b^3*c^2*d^3+33*c^2*d^6-7*a*d^7-41*b*d^7-3*c*d^7-33*d^8,a*b^2*c^2*d^3-21*c^2*d^6-22*a*d^7-23*b*d^7+24*c*d^7+47*d^8,a^2*b*c^2*d^3+c^2*d^6-32*a*d^7-34*b*d^7-42*c*d^7+7*d^8,a^3*c^2*d^3+6*c^2*d^6-31*a*d^7-26*b*d^7+19*c*d^7-49*d^8,b^4*c*d^3+6*c^2*d^6-24*a*d^7+10*b*d^7-18*c*d^7-4*d^8,a*b^3*c*d^3+46*c^2*d^6+41*a*d^7+7*b*d^7+8*c*d^7-28*d^8,a^2*b^2*c*d^3+33*c^2*d^6-15*a*d^7-11*b*d^7+38*c*d^7+14*d^8,a^3*b*c*d^3-29*c^2*d^6-4*a*d^7-32*b*d^7+13*c*d^7-3*d^8,a^4*c*d^3-34*c^2*d^6+5*a*d^7+29*b*d^7-15*c*d^7-48*d^8,b^5*d^3-42*c^2*d^6+33*a*d^7-49*b*d^7+33*c*d^7-43*d^8,a*b^4*d^3+25*c^2*d^6-11*a*d^7-16*b*d^7+32*c*d^7-2*d^8,a^2*b^3*d^3-36*c^2*d^6-47*a*d^7-16*b*d^7+19*c*d^7+9*d^8,a^3*b^2*d^3-30*c^2*d^6-21*a*d^7-6*b*d^7+16*c*d^7-14*d^8,a^4*b*d^3+47*c^2*d^6-16*a*d^7-13*b*d^7+21*c*d^7+30*d^8,a^5*d^3-2*c^2*d^6+40*a*d^7+34*b*d^7+14*c*d^7-50*d^8,c^6*d^2-4*c^2*d^6-41*a*d^7+46*b*d^7+17*c*d^7+19*d^8,b*c^5*d^2-49*c^2*d^6+5*a*d^7-31*b*d^7+30*c*d^7+28*d^8,a*c^5*d^2-12*c^2*d^6-23*a*d^7-39*b*d^7+6*c*d^7-27*d^8,b^2*c^4*d^2-12*c^2*d^6-30*a*d^7+13*b*d^7-42*c*d^7+38*d^8,a*b*c^4*d^2-31*c^2*d^6+5*a*d^7-41*b*d^7-24*c*d^7,a^2*c^4*d^2-c^2*d^6+4*a*d^7+21*b*d^7+19*c*d^7-34*d^8,b^3*c^3*d^2-50*c^2*d^6-11*a*d^7+24*b*d^7+24*c*d^7-44*d^8,a*b^2*c^3*d^2+2*c^2*d^6-42*a*d^7-17*b*d^7-33*c*d^7-10*d^8,a^2*b*c^3*d^2+20*c^2*d^6+29*a*d^7+35*b*d^7-31*c*d^7-35*d^8,a^3*c^3*d^2+35*c^2*d^6-13*a*d^7+20*b*d^7-15*c*d^7-45*d^8,b^4*c^2*d^2+c^2*d^6+36*a*d^7-42*b*d^7+32*c*d^7+16*d^8,a*b^3*c^2*d^2-9*c^2*d^6-43*a*d^7-5*b*d^7-17*c*d^7+50*d^8,a^2*b^2*c^2*d^2-36*c^2*d^6+31*a*d^7+4*b*d^7-26*c*d^7-11*d^8,a^3*b*c^2*d^2+15*c^2*d^6+40*a*d^7-18*b*d^7-31*c*d^7+43*d^8,a^4*c^2*d^2+41*c^2*d^6-49*a*d^7+37*b*d^7+47*c*d^7-48*d^8,b^5*c*d^2-49*c^2*d^6+15*a*d^7+48*b*d^7+22*c*d^7+38*d^8,a*b^4*c*d^2+12*c^2*d^6+16*a*d^7-22*b*d^7-c*d^7+29*d^8,a^2*b^3*c*d^2+31*c^2*d^6+19*a*d^7+45*b*d^7-6*c*d^7+42*d^8,a^3*b^2*c*d^2+29*c^2*d^6-39*a*d^7+25*b*d^7-48*c*d^7-d^8,a^4*b*c*d^2-31*c^2*d^6+24*a*d^7-2*b*d^7+36*c*d^7+37*d^8,a^5*c*d^2+33*c^2*d^6-46*a*d^7-41*b*d^7-29*c*d^7-12*d^8,b^6*d^2-39*c^2*d^6+35*a*d^7-8*b*d^7+35*c*d^7+47*d^8,a*b^5*d^2-38*c^2*d^6-11*a*d^7-37*b*d^7-7*c*d^7-5*d^8,a^2*b^4*d^2+29*c^2*d^6+36*a*d^7-29*b*d^7+20*c*d^7+39*d^8,a^3*b^3*d^2-44*c^2*d^6+43*a*d^7-50*b*d^7-24*c*d^7-16*d^8,a^4*b^2*d^2+20*c^2*d^6+33*a*d^7+6*b*d^7+47*c*d^7+40*d^8,a^5*b*d^2-10*c^2*d^6+25*a*d^7-8*b*d^7-14*c*d^7+16*d^8,a^6*d^2+48*c^2*d^6+14*a*d^7+32*b*d^7+17*c*d^7+13*d^8,c^7*d+38*c^2*d^6-39*a*d^7+22*b*d^7+15*c*d^7-d^8,b*c^6*d+9*c^2*d^6+37*a*d^7+12*b*d^7+27*c*d^7+3*d^8,a*c^6*d-5*c^2*d^6+34*a*d^7+15*b*d^7+2*c*d^7-21*d^8,b^2*c^5*d+35*c^2*d^6+27*a*d^7+13*b*d^7-39*c*d^7+8*d^8,a*b*c^5*d-34*c^2*d^6-18*a*d^7-21*b*d^7-31*c*d^7+46*d^8,a^2*c^5*d-16*c^2*d^6-6*a*d^7-18*b*d^7+3*c*d^7+47*d^8,b^3*c^4*d-46*c^2*d^6+4*a*d^7-38*b*d^7-29*c*d^7-4*d^8,a*b^2*c^4*d-35*c^2*d^6-14*a*d^7-32*b*d^7-40*c*d^7-35*d^8,a^2*b*c^4*d+23*c^2*d^6-44*a*d^7-3*b*d^7+4*c*d^7-4*d^8,a^3*c^4*d+24*c^2*d^6-7*a*d^7-44*b*d^7-16*c*d^7+10*d^8,b^4*c^3*d+43*c^2*d^6+12*a*d^7+43*b*d^7-49*c*d^7-23*d^8,a*b^3*c^3*d+22*c^2*d^6+6*a*d^7+2*b*d^7-9*c*d^7,a^2*b^2*c^3*d+4*c^2*d^6+21*a*d^7-24*b*d^7-26*c*d^7+33*d^8,a^3*b*c^3*d+13*c^2*d^6-18*a*d^7+31*b*d^7-28*c*d^7+2*d^8,a^4*c^3*d+10*c^2*d^6-14*a*d^7+30*b*d^7-40*c*d^7+33*d^8,b^5*c^2*d-35*c^2*d^6-33*a*d^7+7*b*d^7+13*c*d^7+26*d^8,a*b^4*c^2*d-49*c^2*d^6+9*a*d^7+20*b*d^7+11*c*d^7-32*d^8,a^2*b^3*c^2*d+33*c^2*d^6-43*a*d^7-27*b*d^7-31*c*d^7-41*d^8,a^3*b^2*c^2*d-6*c^2*d^6+23*a*d^7+20*b*d^7-8*c*d^7-6*d^8,a^4*b*c^2*d+10*c^2*d^6-24*a*d^7+30*b*d^7+42*c*d^7-23*d^8,a^5*c^2*d+12*c^2*d^6+20*a*d^7+24*b*d^7-9*c*d^7-9*d^8,b^6*c*d-12*c^2*d^6+36*a*d^7+4*b*d^7-12*c*d^7+26*d^8,a*b^5*c*d-19*c^2*d^6-39*a*d^7-26*b*d^7-4*c*d^7+10*d^8,a^2*b^4*c*d+38*c^2*d^6-6*a*d^7+6*b*d^7+41*c*d^7+49*d^8,a^3*b^3*c*d-34*c^2*d^6-42*a*d^7+22*b*d^7-26*c*d^7-13*d^8,a^4*b^2*c*d+14*c^2*d^6+40*a*d^7+39*b*d^7-34*d^8,a^5*b*c*d-8*c^2*d^6+45*a*d^7-35*b*d^7+48*c*d^7+47*d^8,a^6*c*d-6*c^2*d^6-24*a*d^7-2*b*d^7-9*c*d^7+7*d^8,b^7*d+34*c^2*d^6-14*a*d^7+46*b*d^7-50*c*d^7+26*d^8,a*b^6*d+6*c^2*d^6+23*a*d^7-27*b*d^7-25*c*d^7-2*d^8,c^8+43*c^2*d^6+11*b*d^7-39*c*d^7-30*d^8,b*c^7-44*c^2*d^6-4*a*d^7-10*b*d^7+31*c*d^7+42*d^8,a*c^7-6*a*d^7+31*b*d^7+37*c*d^7-41*d^8,b^2*c^6-11*c^2*d^6-35*a*d^7+32*b*d^7-25*c*d^7-21*d^8,a*b*c^6+2*c^2*d^6+43*a*d^7-48*b*d^7-49*c*d^7-19*d^8,a^2*c^6-20*c^2*d^6-11*a*d^7-35*b*d^7-33*c*d^7+28*d^8,b^3*c^5+4*c^2*d^6-7*a*d^7-21*b*d^7-14*c*d^7+48*d^8,a*b^2*c^5+17*c^2*d^6+45*a*d^7-32*b*d^7+29*c*d^7+38*d^8,a^2*b*c^5-13*c^2*d^6+46*a*d^7+4*b*d^7-18*c*d^7+19*d^8,a^3*c^5-23*c^2*d^6-a*d^7-3*b*d^7-15*c*d^7+19*d^8,b^4*c^4-50*c^2*d^6+39*a*d^7+49*b*d^7+47*c*d^7+7*d^8,a*b^3*c^4-33*c^2*d^6+10*a*d^7+32*b*d^7+21*c*d^7-39*d^8,a^2*b^2*c^4+23*c^2*d^6+27*a*d^7-17*b*d^7+29*c*d^7+9*d^8,a^3*b*c^4-47*c^2*d^6-43*a*d^7-47*b*d^7-34*c*d^7-23*d^8,a^4*c^4-6*c^2*d^6+7*a*d^7+38*b*d^7-27*c*d^7-9*d^8,b^5*c^3-47*c^2*d^6+18*a*d^7-44*b*d^7-4*c*d^7-18*d^8,a*b^4*c^3+30*c^2*d^6+36*a*d^7+25*b*d^7+42*c*d^7+d^8,a^2*b^3*c^3+10*c^2*d^6+31*a*d^7+45*b*d^7-44*c*d^7+37*d^8,a^3*b^2*c^3-41*c^2*d^6-15*a*d^7-34*b*d^7-22*c*d^7+28*d^8,a^4*b*c^3+19*c^2*d^6-23*a*d^7+18*b*d^7-13*c*d^7-48*d^8,a^5*c^3+16*c^2*d^6+22*a*d^7-31*b*d^7+33*c*d^7+15*d^8,b^6*c^2-42*c^2*d^6-10*a*d^7-16*b*d^7-46*c*d^7+42*d^8,a*b^5*c^2-23*c^2*d^6+34*a*d^7-37*b*d^7+2*c*d^7+10*d^8,a^2*b^4*c^2-45*c^2*d^6-5*a*d^7+43*b*d^7-18*c*d^7+7*d^8,a^3*b^3*c^2+36*c^2*d^6+19*a*d^7+21*b*d^7+46*c*d^7-24*d^8,a^4*b^2*c^2-17*c^2*d^6+30*a*d^7-39*b*d^7-39*c*d^7-24*d^8,a^5*b*c^2+10*c^2*d^6-24*a*d^7-36*b*d^7-14*c*d^7+26*d^8,a^6*c^2+47*c^2*d^6-41*a*d^7+32*b*d^7+6*c*d^7+42*d^8,b^7*c+44*c^2*d^6-6*a*d^7+5*b*d^7+20*c*d^7+50*d^8,a*b^6*c+29*c^2*d^6-16*a*d^7+45*b*d^7-3*c*d^7+14*d^8,b^8+48*c^2*d^6-40*a*d^7-44*b*d^7-10*c*d^7-23*d^8,a*b^7-32*c^2*d^6-41*a*d^7-11*b*d^7+50*c*d^7+13*d^8,d^9,c*d^8,b*d^8,a*d^8,c^2*d^7; 2848 // M;2849 2816 TestSSresAttribs2tr(M, "AGR@101n3d010s010%3"); 2850 2817 kill AGR; … … 2855 2822 f*h-g*h,e*h-g*h,d*h-g*h,c*h-g*h,b*h-g*h,a*h-g*h,e*g+48*f*g-49*g*h,d*g+5*f*g-6*g*h,c*g+49*f*g-50*g*h,b*g-7*f*g+6*g*h,a*g-50*f*g+49*g*h,e*f-20*f*g+19*g*h,d*f+40*f*g-41*g*h,c*f-12*f*g+11*g*h,b*f+45*f*g-46*g*h,a*f+4*f*g-5*g*h,d*e-f*g,c*e-30*f*g+29*g*h,b*e-39*f*g+38*g*h,a*e+10*f*g-11*g*h,c*d-41*f*g+40*g*h,b*d-23*f*g+22*g*h,a*d-20*f*g+19*g*h,b*c+17*f*g-18*g*h,a*c+6*f*g-7*g*h,a*b+28*f*g-29*g*h,g^2*h-g*h^2,f^2*g-8*f*g^2+7*g*h^2,g*h^4+50*h^5,g^5+41*h^5,f*g^4-18*h^5,f^5+29*h^5,e^5+6*h^5,d^5-23*h^5,c^5-32*h^5, 2856 2823 b^5+17*h^5,a^5+17*h^5,h^6; 2857 // M;2858 2824 TestSSresAttribs2tr(M, "AGR@101n7d005s010%2"); 2859 /*2860 options: 1 1 0 : Time: 3/102861 options: 1 1 1 : Time: 2/62862 lres Time: 02863 nres Time: 252864 sres Time: 02865 */2866 2825 kill AGR; 2867 2826 … … 2910 2869 b^3*d*e^2, a*b^2*d*e^2, a^2*b*d*e^2, a^3*d*e^2, c^4*e^2, b*c^3*e^2, a*c^3*e^2, 2911 2870 b^2*c^2*e^2, a*b*c^2*e^2; 2912 // M;2913 2871 TestSSresAttribs2tr(M, "AGR101n4d007s021%4"); 2914 2872 /* … … 3006 2964 ideal M = 3007 2965 b*d-13*c*d+7*a*e-32*b*e+31*c*e+3*d*e+46*a*f-13*b*f+22*c*f-19*d*f-33*e*f, a*d+2*c*d-42*a*e+46*b*e+7*c*e-38*d*e+31*a*f+9*b*f+27*c*f-19*d*f-24*e*f, b*c-35*c*d-34*a*e+4*b*e+33*c*e+23*d*e+4*a*f-43*b*f+43*c*f+17*d*f-13*e*f, a*c+49*c*d-28*a*e+18*b*e-23*c*e+3*d*e-5*a*f-23*b*f+2*c*f+46*d*f-40*e*f, a*b-38*c*d+a*e-49*b*e-20*c*e+32*d*e+13*a*f+25*b*f+37*c*f-27*d*f+25*e*f, f^4, e*f^3, d*f^3, c*f^3, b*f^3, a*f^3, e^2*f^2, d*e*f^2, c*e*f^2, b*e*f^2, a*e*f^2, d^2*f^2, c*d*f^2, c^2*f^2, b^2*f^2, a^2*f^2, e^3*f, d*e^2*f, c*e^2*f, b*e^2*f, a*e^2*f, d^2*e*f, d^3*f, c^3*f, b^3*f, a^3*f, e^4, d^4, c^4, b^4, a^4; 3008 // M;3009 3010 2966 TestSSresAttribs(M, "AGR@101n5d005s016%1"); 3011 /* 3012 * ? 3013 */ 3014 kill M; 3015 } 3016 3017 proc testAGRhard(list #) 2967 kill M; 2968 } 2969 2970 static proc testAGRhard(list #) 3018 2971 { 3019 2972 def DEBUG = 0; … … 3029 2982 attrib(SSinit, "PROFILE", 0); 3030 2983 3031 // option(prot); 2984 option(prot); 2985 // AGR@101n5d006s016%1, new, hard 3032 2986 ring AGR = (101), (a,b,c,d,e,f), dp; AGR; 3033 3034 3035 // AGR@101n5d006s016%1, new, hard!?3036 2987 ideal M = 3037 2988 b*d+47*c*d-27*a*e+37*b*e+21*c*e+31*d*e-31*a*f+23*b*f+47*c*f+42*d*f+11*e*f, a*d+7*c*d+19*a*e+28*b*e-33*c*e-28*d*e+15*a*f+28*b*f+47*c*f+3*d*f+14*e*f, b*c+29*c*d-25*a*e+12*b*e+23*c*e-50*d*e-17*a*f+30*b*f-37*c*f+35*d*f-e*f, a*c+46*c*d+12*a*e+27*b*e+39*c*e+23*d*e-45*a*f+39*b*f-35*c*f+4*d*f-10*e*f, a*b+38*c*d-18*a*e-34*b*e-30*c*e+38*d*e+22*a*f+34*b*f+39*c*f+30*d*f-19*e*f, f^5, e*f^4, d*f^4, c*f^4, b*f^4, a*f^4, e^2*f^3, d*e*f^3, c*e*f^3, b*e*f^3, a*e*f^3, d^2*f^3, c*d*f^3, c^2*f^3, b^2*f^3, a^2*f^3, e^3*f^2, d*e^2*f^2, c*e^2*f^2, b*e^2*f^2, a*e^2*f^2, d^2*e*f^2, d^3*f^2, c^3*f^2, b^3*f^2, a^3*f^2, e^4*f, e^5, d^5, c^5, b^5, a^5; 3038 TestSSresAttribs(M, "AGR@101n5d006s016%1_hard"); 3039 /* 3040 * ? 3041 */ 2989 TestSSresAttribs2tr(M, "AGR@101n5d006s016%1_hard"); 3042 2990 kill M; 3043 2991 } 3044 3045 3046 3047 /*3048 proc testAGRFrame()3049 {3050 system("--min-time", "0.01");3051 system("--ticks-per-sec", 100);3052 3053 attrib(SSinit, "DEBUG", 0);3054 attrib(SSinit, "SYZCHECK", 0); // no such tests anymore with IGNORETAILS == 1!3055 attrib(SSinit, "KERCHECK", 0);3056 attrib(SSinit, "IGNORETAILS", 1);3057 3058 // option(prot);3059 3060 ring AGR = (101), (a, b, c, d), dp; AGR;3061 "lengthy: AGR@101n3d008s058%3, kernel only!";3062 ideal M = c^4*d^2+4*a^3*d^3+29*a^2*b*d^3-2*a*b^2*d^3+2*b^3*d^3-21*a^2*c*d^3+46*a*b*c*d^3+2*b^2*c*d^3-13*a*c^2*d^3+32*b*c^2*d^3+46*c^3*d^3-28*a^2*d^4+4*a*b*d^4+29*b^2*d^4-8*a*c*d^4+33*b*c*d^4-16*c^2*d^4+17*a*d^5-3*b*d^5-42*c*d^5+47*d^6,b*c^3*d^2+35*a^3*d^3+24*a^2*b*d^3+46*a*b^2*d^3-22*b^3*d^3-48*a^2*c*d^3+20*a*b*c*d^3-28*b^2*c*d^3-40*a*c^2*d^3-4*b*c^2*d^3+35*c^3*d^3-21*a^2*d^4+3*a*b*d^4+8*b^2*d^4-2*a*c*d^4-22*b*c*d^4+24*c^2*d^4+44*a*d^5+33*b*d^5+31*c*d^5+26*d^6,a*c^3*d^2-42*a^3*d^3+34*a^2*b*d^3-10*a*b^2*d^3+30*b^3*d^3-6*a^2*c*d^3-30*a*b*c*d^3-34*b^2*c*d^3+29*a*c^2*d^3+35*b*c^2*d^3+13*c^3*d^3+8*a^2*d^4+23*a*b*d^4-29*b^2*d^4+12*a*c*d^4-22*b*c*d^4-50*c^2*d^4-4*b*d^5+9*c*d^5+13*d^6,b^2*c^2*d^2+a^3*d^3-49*a^2*b*d^3+26*a*b^2*d^3+20*b^3*d^3+24*a^2*c*d^3-2*a*b*c*d^3+31*b^2*c*d^3-30*a*c^2*d^3+21*b*c^2*d^3-24*c^3*d^3-38*a^2*d^4-14*a*b*d^4-14*b^2*d^4+6*a*c*d^4+3*b*c*d^4+13*c^2*d^4-11*a*d^5-38*b*d^5+22*c*d^5+48*d^6,a*b*c^2*d^2+18*a^3*d^3-29*a^2*b*d^3-21*a*b^2*d^3-2*b^3*d^3-25*a^2*c*d^3+37*a*b*c*d^3-14*b^2*c*d^3-47*a*c^2*d^3-6*b*c^2*d^3-34*c^3*d^3+43*a^2*d^4+22*a*b*d^4-39*b^2*d^4-41*a*c*d^4-17*b*c*d^4-13*c^2*d^4-43*a*d^5+28*b*d^5-42*c*d^5-49*d^6,a^2*c^2*d^2-33*a^3*d^3+30*a^2*b*d^3-13*a*b^2*d^3+18*b^3*d^3-8*a^2*c*d^3-18*a*b*c*d^3-15*b^2*c*d^3-21*a*c^2*d^3+45*b*c^2*d^3-35*c^3*d^3-4*a^2*d^4-4*a*b*d^4+10*b^2*d^4-19*a*c*d^4-18*b*c*d^4-22*c^2*d^4-27*a*d^5+20*b*d^5-14*c*d^5+24*d^6,b^3*c*d^2-10*a^3*d^3+37*a*b^2*d^3-43*b^3*d^3-10*a^2*c*d^3-9*a*b*c*d^3+47*a*c^2*d^3-24*b*c^2*d^3+12*c^3*d^3+7*a^2*d^4+19*a*b*d^4-27*b^2*d^4-2*a*c*d^4-35*b*c*d^4+45*c^2*d^4-44*a*d^5-43*b*d^5+24*c*d^5+16*d^6,a*b^2*c*d^2+2*a^3*d^3-14*a^2*b*d^3+2*a*b^2*d^3+18*b^3*d^3-48*a^2*c*d^3+43*a*b*c*d^3-25*b^2*c*d^3+15*a*c^2*d^3-7*b*c^2*d^3+42*c^3*d^3-16*a^2*d^4+7*b^2*d^4-23*a*c*d^4+24*b*c*d^4+25*c^2*d^4-17*a*d^5-16*b*d^5-32*c*d^5-50*d^6,a^2*b*c*d^2-16*a^3*d^3+7*a^2*b*d^3-20*a*b^2*d^3+11*b^3*d^3+16*a^2*c*d^3+6*a*b*c*d^3-25*b^2*c*d^3+42*a*c^2*d^3-39*b*c^2*d^3-15*c^3*d^3-25*a^2*d^4+46*a*b*d^4-3*b^2*d^4+5*a*c*d^4+28*b*c*d^4+6*c^2*d^4-20*a*d^5-15*b*d^5-30*c*d^5+17*d^6,a^3*c*d^2+39*a^3*d^3+22*a^2*b*d^3-21*a*b^2*d^3+10*b^3*d^3+40*a^2*c*d^3-37*a*b*c*d^3+11*b^2*c*d^3+43*a*c^2*d^3+28*b*c^2*d^3-10*c^3*d^3+30*a^2*d^4+36*a*b*d^4-45*b^2*d^4-40*a*c*d^4-31*b*c*d^4+28*c^2*d^4+35*a*d^5+6*b*d^5+14*c*d^5+25*d^6,b^4*d^2+50*a^3*d^3+12*a^2*b*d^3+29*a*b^2*d^3-38*b^3*d^3-44*a^2*c*d^3+28*a*b*c*d^3+18*b^2*c*d^3-31*a*c^2*d^3+16*b*c^2*d^3-18*c^3*d^3+5*a^2*d^4-43*a*b*d^4+16*b^2*d^4+9*a*c*d^4-30*b*c*d^4+50*c^2*d^4+3*a*d^5+33*b*d^5+3*c*d^5-48*d^6,a*b^3*d^2+13*a^3*d^3-28*a^2*b*d^3-33*a*b^2*d^3-25*b^3*d^3-41*a^2*c*d^3+a*b*c*d^3+19*b^2*c*d^3+41*a*c^2*d^3-17*b*c^2*d^3+34*c^3*d^3-10*a^2*d^4+30*a*b*d^4+34*b^2*d^4+13*a*c*d^4+b*c*d^4-35*c^2*d^4-34*a*d^5+23*b*d^5-7*c*d^5+6*d^6,a^2*b^2*d^2+22*a^3*d^3-32*a^2*b*d^3+29*a*b^2*d^3+21*b^3*d^3-30*a^2*c*d^3-47*a*b*c*d^3-11*b^2*c*d^3-16*a*c^2*d^3-14*b*c^2*d^3+49*c^3*d^3+47*a^2*d^4-11*a*b*d^4+4*b^2*d^4+13*a*c*d^4+7*b*c*d^4-30*c^2*d^4+31*a*d^5+10*b*d^5-8*c*d^5-27*d^6,a^3*b*d^2-43*a^3*d^3-2*a^2*b*d^3+15*a*b^2*d^3+42*b^3*d^3+25*a^2*c*d^3+22*a*b*c*d^3-4*b^2*c*d^3-29*a*c^2*d^3-31*b*c^2*d^3-3*c^3*d^3+33*a^2*d^4+20*a*b*d^4-34*b^2*d^4+8*a*c*d^4+48*b*c*d^4-29*c^2*d^4-46*a*d^5+27*b*d^5+29*c*d^5+33*d^6,a^4*d^2+30*a^3*d^3-42*a*b^2*d^3-16*b^3*d^3-33*a^2*c*d^3+13*a*b*c*d^3+7*b^2*c*d^3-23*a*c^2*d^3+28*b*c^2*d^3-37*c^3*d^3+3*a^2*d^4-34*a*b*d^4+16*b^2*d^4-21*a*c*d^4-39*b*c*d^4+5*c^2*d^4+35*a*d^5+39*b*d^5-26*c*d^5-47*d^6,c^5*d+48*a^3*d^3-37*a^2*b*d^3+31*a*b^2*d^3-19*b^3*d^3+49*a^2*c*d^3-5*a*b*c*d^3+45*b^2*c*d^3+24*a*c^2*d^3-26*b*c^2*d^3-10*c^3*d^3-a^2*d^4+43*a*b*d^4-26*b^2*d^4+45*a*c*d^4-3*b*c*d^4+38*c^2*d^4+10*a*d^5-5*b*d^5-34*c*d^5+22*d^6,b*c^4*d+30*a^3*d^3-40*a^2*b*d^3-39*a*b^2*d^3+33*b^3*d^3+31*a^2*c*d^3-17*a*b*c*d^3-44*b^2*c*d^3+24*a*c^2*d^3+22*b*c^2*d^3-44*c^3*d^3-29*a^2*d^4+4*a*b*d^4-4*b^2*d^4+8*a*c*d^4-42*b*c*d^4+15*c^2*d^4-42*a*d^5+15*b*d^5-41*c*d^5-46*d^6,a*c^4*d-11*a^3*d^3-5*a^2*b*d^3+33*a*b^2*d^3+7*b^3*d^3-31*a^2*c*d^3-47*a*b*c*d^3-50*b^2*c*d^3-50*a*c^2*d^3-39*b*c^2*d^3+25*c^3*d^3+5*a^2*d^4+35*a*b*d^4-34*b^2*d^4+42*a*c*d^4-44*b*c*d^4-17*c^2*d^4+11*a*d^5+b*d^5+31*c*d^5+45*d^6,b^2*c^3*d+12*a^3*d^3-41*a^2*b*d^3+29*a*b^2*d^3-42*b^3*d^3-32*a^2*c*d^3+47*a*b*c*d^3-13*b^2*c*d^3-20*a*c^2*d^3+45*b*c^2*d^3-49*c^3*d^3-34*a^2*d^4+16*a*b*d^4+11*b^2*d^4-49*a*c*d^4-27*b*c*d^4-31*c^2*d^4+29*a*d^5-23*b*d^5+13*c*d^5+42*d^6,a*b*c^3*d-16*a^3*d^3-35*a^2*b*d^3+12*a*b^2*d^3-39*b^3*d^3-32*a*b*c*d^3-4*b^2*c*d^3+31*a*c^2*d^3+43*b*c^2*d^3-42*c^3*d^3+36*a^2*d^4-5*a*b*d^4-4*b^2*d^4+5*a*c*d^4+20*b*c*d^4+31*c^2*d^4+15*a*d^5+25*b*d^5-16*c*d^5-28*d^6,a^2*c^3*d-16*a^3*d^3+8*a^2*b*d^3+30*a*b^2*d^3-16*b^3*d^3+20*a^2*c*d^3-11*b^2*c*d^3-48*a*c^2*d^3+11*b*c^2*d^3-20*c^3*d^3-24*a^2*d^4-23*a*b*d^4+9*b^2*d^4+13*a*c*d^4-42*b*c*d^4+22*c^2*d^4-29*a*d^5-28*b*d^5-7*c*d^5-2*d^6,b^3*c^2*d+42*a^3*d^3-11*a^2*b*d^3+18*a*b^2*d^3-13*b^3*d^3+22*a^2*c*d^3-10*a*b*c*d^3-25*b^2*c*d^3-17*a*c^2*d^3-23*b*c^2*d^3-37*c^3*d^3-3*a^2*d^4-33*a*b*d^4+44*b^2*d^4-41*a*c*d^4+6*b*c*d^4-36*c^2*d^4-43*a*d^5+b*d^5+25*c*d^5+48*d^6,a*b^2*c^2*d+21*a^3*d^3+5*a^2*b*d^3+38*a*b^2*d^3+25*b^3*d^3-12*a^2*c*d^3+7*a*b*c*d^3+28*b^2*c*d^3+a*c^2*d^3+33*b*c^2*d^3+22*c^3*d^3+10*a^2*d^4-7*a*b*d^4-5*b^2*d^4+50*a*c*d^4-23*b*c*d^4+22*c^2*d^4-4*a*d^5+45*b*d^5-42*c*d^5+d^6,a^2*b*c^2*d-45*a^3*d^3+2*a^2*b*d^3+44*a*b^2*d^3-5*b^3*d^3-19*a^2*c*d^3-3*a*b*c*d^3+18*b^2*c*d^3-22*a*c^2*d^3+46*b*c^2*d^3+41*c^3*d^3-26*a^2*d^4-a*b*d^4-42*b^2*d^4-40*a*c*d^4+39*b*c*d^4+24*c^2*d^4-6*a*d^5-6*b*d^5+13*c*d^5-28*d^6,a^3*c^2*d+4*a^3*d^3+31*a^2*b*d^3+21*a*b^2*d^3+39*b^3*d^3-8*a^2*c*d^3+49*a*b*c*d^3-48*b^2*c*d^3-16*a*c^2*d^3-33*b*c^2*d^3+35*c^3*d^3+41*a^2*d^4+18*a*b*d^4+47*b^2*d^4-3*a*c*d^4+12*b*c*d^4+13*c^2*d^4+32*a*d^5-40*b*d^5+50*c*d^5-2*d^6,b^4*c*d+23*a^3*d^3+47*a^2*b*d^3-10*a*b^2*d^3-43*b^3*d^3+49*a^2*c*d^3+7*a*b*c*d^3+34*b^2*c*d^3-40*a*c^2*d^3-37*b*c^2*d^3-6*c^3*d^3+30*a^2*d^4-34*a*b*d^4-6*b^2*d^4+21*a*c*d^4+41*b*c*d^4-33*c^2*d^4-9*a*d^5+2*b*d^5+8*c*d^5+7*d^6,a*b^3*c*d-5*a^3*d^3-42*a^2*b*d^3+22*a*b^2*d^3-35*b^3*d^3+a^2*c*d^3+20*a*b*c*d^3-10*b^2*c*d^3+23*a*c^2*d^3-17*b*c^2*d^3+30*c^3*d^3+24*a^2*d^4+32*a*b*d^4-7*b^2*d^4-48*a*c*d^4-25*b*c*d^4-6*c^2*d^4-33*a*d^5+29*b*d^5+12*c*d^5+26*d^6,a^2*b^2*c*d+6*a^3*d^3-46*a^2*b*d^3-30*a*b^2*d^3+b^3*d^3-35*a^2*c*d^3+41*a*b*c*d^3-4*b^2*c*d^3-42*a*c^2*d^3+16*b*c^2*d^3+19*c^3*d^3-13*a^2*d^4-16*a*b*d^4+45*b^2*d^4-25*a*c*d^4-48*b*c*d^4+35*c^2*d^4+50*a*d^5+31*b*d^5-25*c*d^5+6*d^6,a^3*b*c*d+3*a^3*d^3-39*a^2*b*d^3+14*a*b^2*d^3-4*b^3*d^3-36*a^2*c*d^3+47*a*b*c*d^3+27*b^2*c*d^3+50*a*c^2*d^3-45*b*c^2*d^3+49*c^3*d^3-18*a^2*d^4+20*a*b*d^4+17*b^2*d^4+a*c*d^4+33*b*c*d^4+42*c^2*d^4+19*a*d^5+18*b*d^5+33*c*d^5+15*d^6,a^4*c*d-14*a^3*d^3-8*a^2*b*d^3-a*b^2*d^3-34*b^3*d^3-27*a^2*c*d^3-15*a*b*c*d^3-14*b^2*c*d^3+33*a*c^2*d^3-34*b*c^2*d^3-4*c^3*d^3+47*a^2*d^4+50*a*b*d^4-6*b^2*d^4+16*a*c*d^4+26*c^2*d^4-27*a*d^5+2*b*d^5-31*c*d^5+47*d^6,b^5*d+3*a^3*d^3-9*a^2*b*d^3+46*a*b^2*d^3+b^3*d^3-2*a^2*c*d^3-39*a*b*c*d^3-31*b^2*c*d^3-30*a*c^2*d^3+23*b*c^2*d^3+25*c^3*d^3+9*a^2*d^4-15*a*b*d^4-2*b^2*d^4-12*a*c*d^4+11*b*c*d^4+9*c^2*d^4+3*a*d^5+9*b*d^5+41*c*d^5-38*d^6,a*b^4*d-48*a^3*d^3+42*a^2*b*d^3+27*a*b^2*d^3+32*b^3*d^3+21*a^2*c*d^3-5*a*b*c*d^3-39*b^2*c*d^3+6*a*c^2*d^3-20*b*c^2*d^3+45*c^3*d^3-48*a^2*d^4+44*a*b*d^4+25*b^2*d^4-29*a*c*d^4+4*b*c*d^4+50*c^2*d^4-6*a*d^5-40*b*d^5-11*c*d^5-28*d^6,a^2*b^3*d-41*a^3*d^3+21*a^2*b*d^3+39*a*b^2*d^3-2*b^3*d^3+24*a*b*c*d^3-10*b^2*c*d^3+31*a*c^2*d^3-34*b*c^2*d^3-31*c^3*d^3+20*a^2*d^4+41*a*b*d^4-10*b^2*d^4-40*a*c*d^4+5*b*c*d^4+31*c^2*d^4+6*a*d^5+26*b*d^5+29*c*d^5-5*d^6,a^3*b^2*d-11*a^3*d^3-39*a^2*b*d^3+2*a*b^2*d^3-44*b^3*d^3-23*a^2*c*d^3+21*a*b*c*d^3-44*b^2*c*d^3-7*a*c^2*d^3+49*b*c^2*d^3+46*c^3*d^3+17*a^2*d^4+49*a*b*d^4-14*b^2*d^4+29*a*c*d^4-20*b*c*d^4-49*c^2*d^4-13*a*d^5-41*b*d^5-18*c*d^5+50*d^6,a^4*b*d+9*a^3*d^3+50*a^2*b*d^3+46*a*b^2*d^3-48*b^3*d^3+43*a^2*c*d^3-45*a*b*c*d^3+24*b^2*c*d^3-4*a*c^2*d^3-b*c^2*d^3-34*c^3*d^3+33*a^2*d^4+14*a*b*d^4-37*b^2*d^4-13*a*c*d^4+48*b*c*d^4-31*c^2*d^4-22*a*d^5+42*b*d^5+49*c*d^5-43*d^6,a^5*d+33*a^3*d^3-23*a^2*b*d^3+30*a*b^2*d^3+5*b^3*d^3-26*a^2*c*d^3-35*a*b*c*d^3-50*b^2*c*d^3-21*a*c^2*d^3+4*b*c^2*d^3+10*c^3*d^3+39*a^2*d^4-2*a*b*d^4+23*b^2*d^4+17*a*c*d^4-50*b*c*d^4-8*c^2*d^4-39*a*d^5+36*b*d^5-43*c*d^5-39*d^6,c^6+20*a^3*d^3-41*a*b^2*d^3+39*b^3*d^3+26*a^2*c*d^3-8*a*b*c*d^3-49*b^2*c*d^3+25*a*c^2*d^3+32*b*c^2*d^3-32*c^3*d^3-2*a^2*d^4-38*a*b*d^4-38*b^2*d^4+17*a*c*d^4+22*b*c*d^4-36*c^2*d^4-41*a*d^5+37*b*d^5-49*c*d^5-19*d^6,b*c^5-36*a^3*d^3+32*a^2*b*d^3-14*a*b^2*d^3-31*b^3*d^3-2*a^2*c*d^3-8*a*b*c*d^3-39*b^2*c*d^3-46*a*c^2*d^3+10*b*c^2*d^3+27*c^3*d^3+25*a^2*d^4-30*a*b*d^4+3*b^2*d^4-36*a*c*d^4+44*b*c*d^4+17*c^2*d^4-46*a*d^5-37*b*d^5-2*c*d^5-47*d^6,a*c^5-49*a^3*d^3+11*a^2*b*d^3-21*a*b^2*d^3-14*b^3*d^3+26*a^2*c*d^3-a*b*c*d^3+24*b^2*c*d^3-46*a*c^2*d^3+23*b*c^2*d^3+33*c^3*d^3-11*a^2*d^4-a*b*d^4+49*b^2*d^4-17*a*c*d^4+49*b*c*d^4+36*c^2*d^4+10*a*d^5-19*b*d^5+26*c*d^5-32*d^6,b^2*c^4-14*a^3*d^3+9*a^2*b*d^3-5*a*b^2*d^3+17*b^3*d^3+2*a^2*c*d^3+12*a*b*c*d^3-37*b^2*c*d^3-43*a*c^2*d^3+5*b*c^2*d^3-9*c^3*d^3-27*a^2*d^4+14*a*b*d^4-19*b^2*d^4+29*a*c*d^4+32*b*c*d^4-15*c^2*d^4-26*a*d^5-31*b*d^5+46*c*d^5-22*d^6,a*b*c^4+33*a^3*d^3-22*a^2*b*d^3-14*a*b^2*d^3-30*b^3*d^3-48*a^2*c*d^3+34*a*b*c*d^3-8*b^2*c*d^3-44*a*c^2*d^3-4*b*c^2*d^3+3*c^3*d^3+26*a^2*d^4+4*a*b*d^4+7*b^2*d^4-28*a*c*d^4-22*b*c*d^4-35*c^2*d^4-50*a*d^5-43*b*d^5+46*c*d^5-49*d^6,a^2*c^4-9*a^3*d^3+3*a^2*b*d^3+34*a*b^2*d^3+4*b^3*d^3+5*a^2*c*d^3-17*a*b*c*d^3-48*b^2*c*d^3+10*a*c^2*d^3+2*b*c^2*d^3-12*c^3*d^3-7*a^2*d^4-6*a*b*d^4+37*b^2*d^4-16*a*c*d^4+47*b*c*d^4+6*c^2*d^4-35*a*d^5-45*b*d^5-12*c*d^5-30*d^6,b^3*c^3-21*a^3*d^3-6*a^2*b*d^3-26*a*b^2*d^3-22*b^3*d^3-29*a*b*c*d^3-26*b^2*c*d^3+50*a*c^2*d^3-41*b*c^2*d^3+22*c^3*d^3-41*a^2*d^4+25*a*b*d^4+16*b^2*d^4+11*a*c*d^4+34*b*c*d^4+19*c^2*d^4-38*a*d^5-8*b*d^5-42*c*d^5-6*d^6,a*b^2*c^3+3*a^3*d^3-45*a^2*b*d^3+39*a*b^2*d^3+22*b^3*d^3+48*a^2*c*d^3-7*a*b*c*d^3-46*b^2*c*d^3-22*a*c^2*d^3-17*b*c^2*d^3-27*c^3*d^3-35*a^2*d^4+47*a*b*d^4+6*b^2*d^4-5*a*c*d^4-30*b*c*d^4+25*c^2*d^4-10*a*d^5+46*b*d^5+5*c*d^5-18*d^6,a^2*b*c^3-36*a^3*d^3+33*a^2*b*d^3+47*a*b^2*d^3-16*b^3*d^3-41*a^2*c*d^3+42*a*b*c*d^3-29*b^2*c*d^3+39*a*c^2*d^3-12*b*c^2*d^3-25*c^3*d^3-11*a^2*d^4-37*a*b*d^4+29*b^2*d^4-18*a*c*d^4+43*b*c*d^4+12*c^2*d^4-37*a*d^5+7*b*d^5+7*c*d^5-5*d^6,a^3*c^3+25*a^3*d^3+34*a^2*b*d^3+29*a*b^2*d^3-34*b^3*d^3-46*a^2*c*d^3-17*a*b*c*d^3+49*b^2*c*d^3-35*a*c^2*d^3-21*b*c^2*d^3-45*c^3*d^3+43*a^2*d^4+29*a*b*d^4+36*b^2*d^4+37*a*c*d^4+12*b*c*d^4-17*c^2*d^4+12*a*d^5+47*c*d^5-23*d^6,b^4*c^2-10*a^3*d^3+38*a^2*b*d^3+33*a*b^2*d^3+9*b^3*d^3-25*a^2*c*d^3+38*a*b*c*d^3-19*b^2*c*d^3-33*a*c^2*d^3-49*b*c^2*d^3-16*c^3*d^3-14*a^2*d^4-3*a*b*d^4-30*b^2*d^4-32*a*c*d^4+28*b*c*d^4-3*c^2*d^4-16*a*d^5+31*b*d^5-49*c*d^5-3*d^6,a*b^3*c^2+25*a^3*d^3-47*a^2*b*d^3+47*b^3*d^3+13*a^2*c*d^3-17*a*b*c*d^3+26*b^2*c*d^3-43*a*c^2*d^3+39*b*c^2*d^3-4*c^3*d^3+20*a^2*d^4+6*a*b*d^4+49*b^2*d^4+14*a*c*d^4-17*b*c*d^4+38*c^2*d^4+21*a*d^5-9*b*d^5-26*c*d^5+47*d^6,a^2*b^2*c^2+12*a^3*d^3+10*a^2*b*d^3-40*a*b^2*d^3+14*b^3*d^3+36*a^2*c*d^3-9*a*b*c*d^3+9*b^2*c*d^3+7*a*c^2*d^3+12*b*c^2*d^3-37*c^3*d^3-44*a^2*d^4-48*a*b*d^4+11*b^2*d^4-13*a*c*d^4+31*b*c*d^4+47*c^2*d^4+28*a*d^5+39*b*d^5+27*c*d^5-d^6,a^3*b*c^2-28*a^3*d^3-22*a^2*b*d^3-8*a*b^2*d^3+40*b^3*d^3-13*a^2*c*d^3+35*a*b*c*d^3-4*b^2*c*d^3+28*a*c^2*d^3+30*b*c^2*d^3-13*c^3*d^3+16*a^2*d^4+48*a*b*d^4-42*b^2*d^4+10*a*c*d^4-b*c*d^4+37*c^2*d^4-17*a*d^5-15*b*d^5+40*c*d^5+27*d^6,a^4*c^2+17*a^3*d^3+45*a^2*b*d^3+42*a*b^2*d^3-20*b^3*d^3-39*a^2*c*d^3-20*a*b*c*d^3-44*b^2*c*d^3+33*a*c^2*d^3+39*b*c^2*d^3-37*c^3*d^3+39*a^2*d^4+39*a*b*d^4-44*b^2*d^4+8*a*c*d^4-34*b*c*d^4+36*c^2*d^4-47*a*d^5+38*b*d^5-46*c*d^5+23*d^6,b^5*c+24*a^3*d^3+17*a^2*b*d^3-22*a*b^2*d^3-27*b^3*d^3+27*a^2*c*d^3+48*a*b*c*d^3+4*b^2*c*d^3+a*c^2*d^3-21*b*c^2*d^3-14*c^3*d^3+3*a^2*d^4+15*a*b*d^4+41*b^2*d^4-27*a*c*d^4+4*b*c*d^4+3*c^2*d^4-46*a*d^5+28*b*d^5+6*c*d^5+36*d^6,a*b^4*c-29*a^3*d^3+30*a^2*b*d^3+31*a*b^2*d^3+44*b^3*d^3-12*a^2*c*d^3-27*a*b*c*d^3+48*b^2*c*d^3+4*a*c^2*d^3+2*b*c^2*d^3-17*c^3*d^3-7*a^2*d^4+25*a*b*d^4-45*b^2*d^4-17*a*c*d^4-14*b*c*d^4-11*c^2*d^4-45*a*d^5-36*b*d^5-12*c*d^5-44*d^6,a^2*b^3*c-10*a^3*d^3-30*a^2*b*d^3-22*a*b^2*d^3-35*b^3*d^3+37*a^2*c*d^3-35*a*b*c*d^3-12*b^2*c*d^3-16*b*c^2*d^3+49*c^3*d^3+38*a^2*d^4-21*a*b*d^4-20*b^2*d^4-6*a*c*d^4+41*b*c*d^4+49*c^2*d^4+13*a*d^5-38*b*d^5-32*c*d^5-12*d^6,a^3*b^2*c+5*a^2*b*d^3-40*a*b^2*d^3+14*b^3*d^3-4*a^2*c*d^3-13*a*b*c*d^3+47*b^2*c*d^3+28*a*c^2*d^3+15*b*c^2*d^3+47*c^3*d^3-8*a^2*d^4-20*a*b*d^4+3*b^2*d^4+42*a*c*d^4+18*b*c*d^4-23*c^2*d^4-48*a*d^5+12*b*d^5-25*c*d^5-39*d^6,a^4*b*c+29*a^3*d^3+21*a^2*b*d^3-32*a*b^2*d^3+48*b^3*d^3-44*a^2*c*d^3-3*a*b*c*d^3-27*b^2*c*d^3+27*a*c^2*d^3+43*b*c^2*d^3-30*c^3*d^3+4*a^2*d^4+16*a*b*d^4+33*b^2*d^4+37*a*c*d^4-32*b*c*d^4+14*c^2*d^4+50*a*d^5-49*c*d^5-33*d^6,a^5*c-26*a^3*d^3-50*a^2*b*d^3+2*a*b^2*d^3+3*b^3*d^3-15*a^2*c*d^3-32*a*b*c*d^3-4*b^2*c*d^3-13*a*c^2*d^3-13*b*c^2*d^3+3*c^3*d^3+32*a^2*d^4-32*a*b*d^4-47*b^2*d^4-39*a*c*d^4-34*b*c*d^4-9*c^2*d^4-7*a*d^5-22*b*d^5+16*c*d^5+44*d^6,b^6+45*a^3*d^3-42*a^2*b*d^3-35*a*b^2*d^3+13*b^3*d^3+28*a^2*c*d^3-2*a*b*c*d^3-37*b^2*c*d^3-9*a*c^2*d^3+44*b*c^2*d^3-24*c^3*d^3+36*a^2*d^4+42*a*b*d^4-38*b^2*d^4-34*a*c*d^4-46*b*c*d^4+23*c^2*d^4-9*a*d^5-28*b*d^5+37*c*d^5+26*d^6,a*b^5-14*a^3*d^3+38*a^2*b*d^3-37*a*b^2*d^3-33*b^3*d^3-24*a^2*c*d^3+15*a*b*c*d^3+44*b^2*c*d^3-45*a*c^2*d^3+3*b*c^2*d^3-41*c^3*d^3-48*a^2*d^4-36*a*b*d^4+39*b^2*d^4+46*a*c*d^4-3*b*c*d^4+21*c^2*d^4-36*a*d^5-20*b*d^5+24*c*d^5-33*d^6,a^2*b^4-27*a^3*d^3-10*a^2*b*d^3-5*a*b^2*d^3+8*b^3*d^3+21*a^2*c*d^3+31*a*b*c*d^3-44*b^2*c*d^3+41*a*c^2*d^3+17*b*c^2*d^3-8*c^3*d^3+19*a^2*d^4+25*a*b*d^4+b^2*d^4+3*a*c*d^4+2*b*c*d^4-40*c^2*d^4+31*a*d^5-19*b*d^5+35*c*d^5-28*d^6,a^3*b^3-12*a^3*d^3-25*a^2*b*d^3+37*a*b^2*d^3-37*b^3*d^3+46*a^2*c*d^3+43*a*b*c*d^3+b^2*c*d^3-41*a*c^2*d^3-38*b*c^2*d^3-36*c^3*d^3-11*a*b*d^4+20*b^2*d^4-a*c*d^4-26*b*c*d^4+14*c^2*d^4-48*a*d^5+17*b*d^5+9*c*d^5+30*d^6,a^4*b^2+36*a^3*d^3+9*a^2*b*d^3-31*b^3*d^3+50*a^2*c*d^3+41*a*b*c*d^3+40*b^2*c*d^3+48*a*c^2*d^3-41*b*c^2*d^3-17*c^3*d^3+33*a^2*d^4+47*a*b*d^4+22*b^2*d^4+2*a*c*d^4+23*b*c*d^4-47*c^2*d^4+34*a*d^5-15*b*d^5-33*c*d^5-38*d^6,a^5*b-12*a^3*d^3-38*a^2*b*d^3+46*a*b^2*d^3-32*b^3*d^3-41*a^2*c*d^3+14*a*b*c*d^3-34*b^2*c*d^3+7*a*c^2*d^3-6*b*c^2*d^3+31*c^3*d^3+30*a^2*d^4+12*a*b*d^4-17*b^2*d^4-7*a*c*d^4-45*b*c*d^4+10*c^2*d^4+29*a*d^5-28*b*d^5+34*c*d^5-15*d^6,a^6-33*a^3*d^3-45*a^2*b*d^3+19*a*b^2*d^3+39*b^3*d^3-5*a^2*c*d^3-46*a*b*c*d^3+9*b^2*c*d^3+15*a*c^2*d^3-21*b*c^2*d^3+46*c^3*d^3-39*a^2*d^4-9*a*b*d^4+50*b^2*d^4-45*a*c*d^4-39*b*c*d^4-18*c^2*d^4-4*a*d^5-19*b*d^5+12*c*d^5+39*d^6,d^7,c*d^6,b*d^6,a*d^6,c^2*d^5,b*c*d^5,a*c*d^5,b^2*d^5,a*b*d^5,a^2*d^5,c^3*d^4,b*c^2*d^4,a*c^2*d^4,b^2*c*d^4,a*b*c*d^4,a^2*c*d^4,b^3*d^4,a*b^2*d^4,a^2*b*d^4,a^3*d^4;3063 // M;3064 TestSSresAttribs(M);3065 3066 "AGR@101n3d010s010%3, a bit slower...";3067 M = a^2*b^5-50*a*b^6-26*a^6*c+15*a^5*b*c-42*a^4*b^2*c-2*a^3*b^3*c+40*a^2*b^4*c-20*a*b^5*c+11*b^6*c-17*a^5*c^2-4*a^4*b*c^2+13*a^3*b^2*c^2-7*a^2*b^3*c^2+13*a*b^4*c^2-46*b^5*c^2+38*a^4*c^3+32*a^3*b*c^3-49*a^2*b^2*c^3-41*a*b^3*c^3+9*b^4*c^3+17*a^3*c^4-23*a^2*b*c^4+46*a*b^2*c^4+9*b^3*c^4-20*a^2*c^5-34*a*b*c^5-46*b^2*c^5-3*a*c^6+11*b*c^6-22*a^6*d-5*a^5*b*d-21*a^4*b^2*d-43*a^3*b^3*d-29*a^2*b^4*d+43*a*b^5*d-2*b^6*d+24*a^5*c*d-9*a^4*b*c*d+3*a^3*b^2*c*d+20*a^2*b^3*c*d+47*a*b^4*c*d-41*b^5*c*d+11*a^4*c^2*d-14*a^3*b*c^2*d+13*a^2*b^2*c^2*d-19*a*b^3*c^2*d-12*b^4*c^2*d+41*a^3*c^3*d-49*a^2*b*c^3*d-10*a*b^2*c^3*d+19*b^3*c^3*d-13*a^2*c^4*d+10*a*b*c^4*d-49*b^2*c^4*d-3*a*c^5*d-10*b*c^5*d+31*c^6*d-16*a^5*d^2+24*a^4*b*d^2-43*a^3*b^2*d^2+36*a^2*b^3*d^2-36*a^4*c*d^2-36*a^3*b*c*d^2-16*a^2*b^2*c*d^2+35*a*b^3*c*d^2+29*b^4*c*d^2+40*a^3*c^2*d^2-24*a^2*b*c^2*d^2-24*a*b^2*c^2*d^2+7*b^3*c^2*d^2+28*a^2*c^3*d^2+49*a*b*c^3*d^2+49*b^2*c^3*d^2+7*a*c^4*d^2-9*b*c^4*d^2+21*c^5*d^2-28*a^4*d^3+24*a^3*b*d^3-24*a^2*b^2*d^3+23*a*b^3*d^3+24*b^4*d^3+24*a^3*c*d^3-25*a^2*b*c*d^3-9*a*b^2*c*d^3-43*b^3*c*d^3+15*a^2*c^2*d^3+49*a*b*c^2*d^3+24*b^2*c^2*d^3-20*a*c^3*d^3-30*b*c^3*d^3-20*c^4*d^3+13*a^3*d^4+34*a^2*b*d^4-45*a*b^2*d^4+9*b^3*d^4+9*a^2*c*d^4-31*a*b*c*d^4-6*b^2*c*d^4-16*a*c^2*d^4+9*b*c^2*d^4+24*c^3*d^4+38*a^2*d^5-23*a*b*d^5-35*b^2*d^5+22*a*c*d^5-22*b*c*d^5+46*c^2*d^5+12*a*d^6+21*b*d^6-23*c*d^6-2*d^7,a^3*b^4+34*a^6*c+14*a^5*b*c+34*a^4*b^2*c+43*a^3*b^3*c-26*a^2*b^4*c+13*a*b^5*c+10*b^6*c-43*a^5*c^2+50*a^4*b*c^2-23*a^3*b^2*c^2-a^2*b^3*c^2+39*a*b^4*c^2+50*b^5*c^2+16*a^4*c^3+31*a^3*b*c^3-49*a^2*b^2*c^3+26*a*b^3*c^3-b^4*c^3-5*a^3*c^4+3*a^2*b*c^4-26*a*b^2*c^4-b^3*c^4-24*a^2*c^5-39*a*b*c^5+50*b^2*c^5-13*a*c^6+10*b*c^6-39*a^6*d+35*a^5*b*d+44*a^4*b^2*d-39*a^3*b^3*d-26*a^2*b^4*d-47*a*b^5*d-42*b^6*d+34*a^5*c*d-43*a^4*b*c*d-39*a^3*b^2*c*d+41*a^2*b^3*c*d+32*a*b^4*c*d-10*b^5*c*d+43*a^4*c^2*d+12*a^3*b*c^2*d-43*a^2*b^2*c^2*d+23*a*b^3*c^2*d-46*b^4*c^2*d+12*a^3*c^3*d-10*a^2*b*c^3*d+13*a*b^2*c^3*d-15*b^3*c^3*d-a^2*c^4*d+17*a*b*c^4*d-47*b^2*c^4*d+49*a*c^5*d-31*b*c^5*d-22*c^6*d-28*a^5*d^2-39*a^4*b*d^2+33*a^3*b^2*d^2-40*a^2*b^3*d^2+31*a*b^4*d^2+5*b^5*d^2+42*a^4*c*d^2-a^3*b*c*d^2+37*a^2*b^2*c*d^2-13*a*b^3*c*d^2+b^4*c*d^2+35*a^3*c^2*d^2-9*a^2*b*c^2*d^2+46*a*b^2*c^2*d^2-2*b^3*c^2*d^2+15*a^2*c^3*d^2-48*a*b*c^3*d^2+38*b^2*c^3*d^2-37*a*c^4*d^2-40*b*c^4*d^2+25*c^5*d^2+5*a^4*d^3-4*a^3*b*d^3+30*a^2*b^2*d^3-42*a*b^3*d^3+11*b^4*d^3+10*a^3*c*d^3+34*a^2*b*c*d^3-48*a*b^2*c*d^3+17*b^3*c*d^3-33*a^2*c^2*d^3-12*a*b*c^2*d^3-44*b^2*c^2*d^3-6*a*c^3*d^3+6*b*c^3*d^3-45*c^4*d^3+6*a^3*d^4+8*a^2*b*d^4-22*a*b^2*d^4+23*b^3*d^4-22*a^2*c*d^4-38*a*b*c*d^4+44*b^2*c*d^4-13*a*c^2*d^4-50*b*c^2*d^4+30*c^3*d^4-6*a^2*d^5-46*a*b*d^5+17*b^2*d^5-23*a*c*d^5-10*b*c*d^5+32*c^2*d^5-47*a*d^6+2*b*d^6+20*c*d^6-46*d^7,a^4*b^3+30*a*b^6-49*a^6*c+18*a^5*b*c+37*a^4*b^2*c+44*a^3*b^3*c-27*a^2*b^4*c-a*b^5*c-35*b^6*c-20*a^5*c^2+32*a^4*b*c^2+28*a^3*b^2*c^2-13*a^2*b^3*c^2-32*a*b^4*c^2+27*b^5*c^2-4*a^4*c^3+25*a^3*b*c^3+22*a^2*b^2*c^3-23*a*b^3*c^3-47*b^4*c^3+41*a^3*c^4-25*a^2*b*c^4-34*a*b^2*c^4-47*b^3*c^4-33*a^2*c^5-43*a*b*c^5+27*b^2*c^5-31*a*c^6-35*b*c^6-49*a^6*d+30*a^5*b*d-4*a^4*b^2*d+11*a^3*b^3*d-12*a^2*b^4*d-38*a*b^5*d+45*b^6*d+5*a^5*c*d-45*a^4*b*c*d-42*a^3*b^2*c*d-11*a^2*b^3*c*d+21*a*b^4*c*d+18*b^5*c*d-50*a^4*c^2*d-25*a^3*b*c^2*d+35*a^2*b^2*c^2*d-a*b^3*c^2*d+30*b^4*c^2*d+28*a^3*c^3*d-46*a^2*b*c^3*d-4*a*b^2*c^3*d+32*b^3*c^3*d+21*a^2*c^4*d-34*a*b*c^4*d+27*b^2*c^4*d+11*a*c^5*d-45*b*c^5*d+4*c^6*d+2*a^5*d^2-43*a^4*b*d^2-36*a^3*b^2*d^2+14*a^2*b^3*d^2+35*a*b^4*d^2+8*b^5*d^2+34*a^4*c*d^2-12*a^3*b*c*d^2-a^2*b^2*c*d^2-5*a*b^3*c*d^2+43*b^4*c*d^2+45*a^3*c^2*d^2-34*a^2*b*c^2*d^2+26*a*b^2*c^2*d^2+10*b^3*c^2*d^2-19*a^2*c^3*d^2+5*a*b*c^3*d^2-47*b^2*c^3*d^2+40*a*c^4*d^2+8*b*c^4*d^2+30*c^5*d^2+42*a^4*d^3+27*a^3*b*d^3+31*a^2*b^2*d^3-6*a*b^3*d^3+36*b^4*d^3+37*a^2*b*c*d^3+34*a*b^2*c*d^3-13*b^3*c*d^3+a^2*c^2*d^3+29*a*b*c^2*d^3-b^2*c^2*d^3-11*a*c^3*d^3-21*b*c^3*d^3+32*c^4*d^3+9*a^3*d^4-21*a^2*b*d^4+26*a*b^2*d^4+43*b^3*d^4-42*a^2*c*d^4-2*a*b*c*d^4-34*b^2*c*d^4+10*a*c^2*d^4-26*b*c^2*d^4-50*c^3*d^4+23*a^2*d^5+49*a*b*d^5+28*b^2*d^5-48*a*c*d^5-18*b*c*d^5-2*c^2*d^5-2*a*d^6-30*b*d^6+36*c*d^6-21*d^7,a^5*b^2+9*a*b^6+6*a^6*c+34*a^5*b*c-14*a^4*b^2*c-43*a^3*b^3*c-27*a^2*b^4*c+14*a*b^5*c+9*b^6*c-28*a^5*c^2-10*a^4*b*c^2+39*a^3*b^2*c^2-49*a^2*b^3*c^2-38*a*b^4*c^2+45*b^5*c^2+4*a^4*c^3+5*a^3*b*c^3+15*a^2*b^2*c^3-11*a*b^3*c^3-11*b^4*c^3+24*a^3*c^4-32*a^2*b*c^4-2*a*b^2*c^4-11*b^3*c^4+32*a^2*c^5-38*a*b*c^5+45*b^2*c^5-4*a*c^6+9*b*c^6+23*a^6*d-13*a^5*b*d+8*a^4*b^2*d-46*a^3*b^3*d-9*a^2*b^4*d-8*a*b^5*d+17*b^6*d+a^5*c*d+5*a^4*b*c*d-50*a^3*b^2*c*d+22*a^2*b^3*c*d-34*a*b^4*c*d-49*b^5*c*d+44*a^4*c^2*d+41*a^3*b*c^2*d-44*a^2*b^2*c^2*d-49*a*b^3*c^2*d+37*b^4*c^2*d+45*a^3*c^3*d+12*a^2*b*c^3*d-23*a*b^2*c^3*d-32*b^3*c^3*d-14*a^2*c^4*d+5*a*b*c^4*d+48*b^2*c^4*d+5*a*c^5*d-20*b*c^5*d-c^6*d+5*a^5*d^2-45*a^4*b*d^2+42*a^3*b^2*d^2+50*a^2*b^3*d^2-8*a*b^4*d^2-49*b^5*d^2-35*a^4*c*d^2-25*a^3*b*c*d^2-4*a^2*b^2*c*d^2-26*a*b^3*c*d^2-28*b^4*c*d^2+46*a^3*c^2*d^2+22*a^2*b*c^2*d^2+43*a*b^2*c^2*d^2-4*b^3*c^2*d^2-25*a^2*c^3*d^2+31*a*b*c^3*d^2-31*b^2*c^3*d^2-30*a*c^4*d^2-18*b*c^4*d^2-12*c^5*d^2-33*a^4*d^3-48*a^3*b*d^3-36*a^2*b^2*d^3-6*a*b^3*d^3+8*b^4*d^3+3*a^3*c*d^3-43*a^2*b*c*d^3+34*a*b^2*c*d^3+19*b^3*c*d^3+19*a^2*c^2*d^3-49*a*b*c^2*d^3-2*b^2*c^2*d^3+12*a*c^3*d^3-29*b*c^3*d^3-16*c^4*d^3+27*a^3*d^4+22*a^2*b*d^4+22*a*b^2*d^4-12*b^3*d^4+34*a^2*c*d^4+8*a*b*c*d^4+50*b^2*c*d^4+40*a*c^2*d^4+27*b*c^2*d^4-35*c^3*d^4-30*a^2*d^5+24*a*b*d^5+7*b^2*d^5+16*a*c*d^5+17*b*c*d^5-40*c^2*d^5-47*a*d^6-12*b*d^6+16*c*d^6+6*d^7,a^6*b-45*a*b^6-30*a^6*c-5*a^5*b*c-39*a^4*b^2*c-37*a^3*b^3*c+a^2*b^4*c-14*a*b^5*c-37*b^6*c+49*a^5*c^2+28*a^4*b*c^2+7*a^3*b^2*c^2-10*a^2*b^3*c^2+10*a*b^4*c^2+17*b^5*c^2-34*a^4*c^3+24*a^3*b*c^3-36*a^2*b^2*c^3-13*a*b^3*c^3+34*b^4*c^3-20*a^3*c^4-38*a^2*b*c^4+32*a*b^2*c^4+34*b^3*c^4-13*a^2*c^5+44*a*b*c^5+17*b^2*c^5+20*a*c^6-37*b*c^6+10*a^6*d+26*a^5*b*d+15*a^4*b^2*d+23*a^3*b^3*d+16*a^2*b^4*d+48*a*b^5*d-30*b^6*d-9*a^5*c*d-20*a^4*b*c*d+49*a^3*b^2*c*d-48*a^2*b^3*c*d-36*a*b^4*c*d-21*b^5*c*d+9*a^4*c^2*d-24*a^3*b*c^2*d+42*a^2*b^2*c^2*d+26*a*b^3*c^2*d-46*b^4*c^2*d-50*a^3*c^3*d-11*a^2*b*c^3*d-34*a*b^2*c^3*d+32*b^3*c^3*d-16*a^2*c^4*d-25*a*b*c^4*d+6*b^2*c^4*d+18*a*c^5*d-40*b*c^5*d+41*c^6*d-8*a^5*d^2-27*a^4*b*d^2-48*a^3*b^2*d^2-a^2*b^3*d^2+50*a*b^4*d^2+21*b^5*d^2-48*a^4*c*d^2+4*a^3*b*c*d^2-28*a^2*b^2*c*d^2-4*a*b^3*c*d^2+16*b^4*c*d^2+50*a^3*c^2*d^2+40*a^2*b*c^2*d^2+35*a*b^2*c^2*d^2+29*b^3*c^2*d^2-34*a^2*c^3*d^2-21*a*b*c^3*d^2-b^2*c^3*d^2-9*a*c^4*d^2-29*b*c^4*d^2+6*c^5*d^2+16*a^4*d^3-34*a^3*b*d^3+3*a^2*b^2*d^3+21*a*b^3*d^3+39*b^4*d^3+21*a^3*c*d^3-44*a^2*b*c*d^3-16*a*b^2*c*d^3+b^3*c*d^3-38*a^2*c^2*d^3+18*a*b*c^2*d^3+37*b^2*c^2*d^3-46*a*c^3*d^3+25*b*c^3*d^3-50*c^4*d^3-8*a^3*d^4-24*a^2*b*d^4-2*a*b^2*d^4+6*b^3*d^4+9*a^2*c*d^4+12*a*b*c*d^4+33*b^2*c*d^4-44*a*c^2*d^4+23*b*c^2*d^4-4*c^3*d^4-9*a^2*d^5-2*a*b*d^5-14*b^2*d^5+21*a*c*d^5-16*b*c*d^5-19*c^2*d^5+17*a*d^6-20*b*d^6+11*c*d^6-41*d^7,a^7-10*a*b^6-6*a^6*c-48*a^5*b*c-14*a^4*b^2*c-16*a^3*b^3*c-4*a^2*b^4*c+24*a*b^5*c-10*b^6*c-2*a^5*c^2+23*a^3*b^2*c^2+26*a^2*b^3*c^2+22*a*b^4*c^2-50*b^5*c^2+14*a^4*c^3-7*a^3*b*c^3+a^2*b^2*c^3-49*a*b^3*c^3+b^4*c^3-46*a^3*c^4+9*a^2*b*c^4+10*a*b^2*c^4+b^3*c^4+38*a^2*c^5-26*a*b*c^5-50*b^2*c^5+28*a*c^6-10*b*c^6-7*a^6*d+24*a^5*b*d-8*a^4*b^2*d+23*a^3*b^3*d+9*a^2*b^4*d+28*a*b^5*d-23*b^6*d-42*a^4*b*c*d+24*a^3*b^2*c*d-30*a^2*b^3*c*d-42*a*b^4*c*d-43*b^5*c*d-42*a^4*c^2*d+11*a^3*b*c^2*d+9*a^2*b^2*c^2*d-8*a*b^3*c^2*d+4*b^4*c^2*d+10*a^3*c^3*d+43*a^2*b*c^3*d+3*a*b^2*c^3*d-14*b^3*c^3*d-5*a^2*c^4*d+25*a*b*c^4*d-50*b^2*c^4*d-17*a*c^5*d+35*b*c^5*d+47*c^6*d-4*a^5*d^2-43*a^4*b*d^2+35*a^3*b^2*d^2+19*a^2*b^3*d^2+48*a*b^4*d^2+45*b^5*d^2+3*a^4*c*d^2-46*a^3*b*c*d^2+8*a^2*b^2*c*d^2-35*a*b^3*c*d^2-27*b^4*c*d^2-49*a^3*c^2*d^2+37*a^2*b*c^2*d^2-43*a*b^2*c^2*d^2+32*b^3*c^2*d^2+48*a^2*c^3*d^2+9*a*b*c^3*d^2+b^2*c^3*d^2-31*a*c^4*d^2-23*b*c^4*d^2-21*c^5*d^2+34*a^4*d^3+38*a^3*b*d^3+41*a^2*b^2*d^3-24*a*b^3*d^3+28*b^4*d^3+47*a^3*c*d^3-6*a^2*b*c*d^3+27*a*b^2*c*d^3-43*b^3*c*d^3-24*a^2*c^2*d^3-19*a*b*c^2*d^3-50*b^2*c^2*d^3+31*a*c^3*d^3+40*b*c^3*d^3+19*c^4*d^3+4*a^3*d^4-36*a^2*b*d^4+43*a*b^2*d^4+27*b^3*d^4+49*a^2*c*d^4-27*a*b*c*d^4-39*b^2*c*d^4+46*a*c^2*d^4+40*b*c^2*d^4+5*c^3*d^4-12*a^2*d^5-5*a*b*d^5+16*b^2*d^5-26*a*c*d^5-31*b*c*d^5-38*c^2*d^5+17*a*d^6-11*b*d^6-7*c*d^6-39*d^7,b*c*d^6-21*c^2*d^6+36*a*d^7-34*b*d^7-40*c*d^7-11*d^8,a*c*d^6-24*c^2*d^6+5*a*d^7-7*b*d^7+21*c*d^7-43*d^8,b^2*d^6+20*c^2*d^6+6*a*d^7-30*b*d^7+25*c*d^7+4*d^8,a*b*d^6+23*c^2*d^6-43*a*d^7+47*b*d^7+42*c*d^7+29*d^8,a^2*d^6+49*c^2*d^6+6*a*d^7-35*b*d^7+19*c*d^7-11*d^8,c^3*d^5-38*c^2*d^6+47*a*d^7+35*b*d^7+46*c*d^7+21*d^8,b*c^2*d^5+41*c^2*d^6-8*a*d^7+8*b*d^7+46*c*d^7+42*d^8,a*c^2*d^5+44*c^2*d^6+10*a*d^7-36*b*d^7-21*c*d^7+28*d^8,b^2*c*d^5+9*c^2*d^6+35*a*d^7+20*b*d^7+49*c*d^7-47*d^8,a*b*c*d^5+44*c^2*d^6+24*a*d^7-12*b*d^7+24*c*d^7-5*d^8,a^2*c*d^5-9*c^2*d^6-34*a*d^7+27*b*d^7-49*c*d^7+d^8,b^3*d^5+21*c^2*d^6-37*a*d^7-13*b*d^7-48*c*d^7+25*d^8,a*b^2*d^5+4*c^2*d^6-8*a*d^7-42*b*d^7-31*c*d^7+21*d^8,a^2*b*d^5+26*c^2*d^6-47*a*d^7-37*b*d^7+24*c*d^7+6*d^8,a^3*d^5-32*c^2*d^6-31*a*d^7+26*b*d^7-35*c*d^7-39*d^8,c^4*d^4+25*c^2*d^6+35*a*d^7+24*b*d^7+32*c*d^7-46*d^8,b*c^3*d^4+10*c^2*d^6-9*a*d^7-27*b*d^7-17*c*d^7+11*d^8,a*c^3*d^4-41*c^2*d^6+5*a*d^7-18*b*d^7-43*c*d^7-25*d^8,b^2*c^2*d^4-9*c^2*d^6+15*a*d^7-7*b*d^7-27*c*d^7-40*d^8,a*b*c^2*d^4-4*c^2*d^6+25*a*d^7-9*b*d^7-41*c*d^7-11*d^8,a^2*c^2*d^4+15*c^2*d^6-5*a*d^7-34*b*d^7-11*c*d^7-29*d^8,b^3*c*d^4+49*c^2*d^6-24*a*d^7-8*b*d^7+7*c*d^7-46*d^8,a*b^2*c*d^4-20*c^2*d^6-4*a*d^7+32*b*d^7-42*c*d^7-d^8,a^2*b*c*d^4+15*c^2*d^6+31*a*d^7+16*b*d^7-25*c*d^7+29*d^8,a^3*c*d^4-48*c^2*d^6-36*a*d^7-10*b*d^7+4*c*d^7+27*d^8,b^4*d^4+26*c^2*d^6-25*a*d^7-3*b*d^7-45*c*d^7-26*d^8,a*b^3*d^4+c^2*d^6-21*a*d^7-13*b*d^7-20*c*d^7+16*d^8,a^2*b^2*d^4+22*c^2*d^6-27*a*d^7-23*b*d^7-5*c*d^7-27*d^8,a^3*b*d^4+2*c^2*d^6-29*a*d^7-6*b*d^7+26*c*d^7-46*d^8,a^4*d^4-40*c^2*d^6-9*a*d^7-24*b*d^7+2*c*d^7-37*d^8,c^5*d^3+14*c^2*d^6+40*a*d^7+21*b*d^7+50*c*d^7+31*d^8,b*c^4*d^3-21*c^2*d^6-2*a*d^7-9*b*d^7-28*c*d^7+20*d^8,a*c^4*d^3-39*c^2*d^6+38*a*d^7-24*b*d^7-42*c*d^7-30*d^8,b^2*c^3*d^3+19*c^2*d^6-50*a*d^7-33*b*d^7+16*c*d^7-45*d^8,a*b*c^3*d^3-6*c^2*d^6-38*a*d^7+35*b*d^7+32*c*d^7-12*d^8,a^2*c^3*d^3+44*c^2*d^6+35*a*d^7+42*b*d^7-10*c*d^7-48*d^8,b^3*c^2*d^3+33*c^2*d^6-7*a*d^7-41*b*d^7-3*c*d^7-33*d^8,a*b^2*c^2*d^3-21*c^2*d^6-22*a*d^7-23*b*d^7+24*c*d^7+47*d^8,a^2*b*c^2*d^3+c^2*d^6-32*a*d^7-34*b*d^7-42*c*d^7+7*d^8,a^3*c^2*d^3+6*c^2*d^6-31*a*d^7-26*b*d^7+19*c*d^7-49*d^8,b^4*c*d^3+6*c^2*d^6-24*a*d^7+10*b*d^7-18*c*d^7-4*d^8,a*b^3*c*d^3+46*c^2*d^6+41*a*d^7+7*b*d^7+8*c*d^7-28*d^8,a^2*b^2*c*d^3+33*c^2*d^6-15*a*d^7-11*b*d^7+38*c*d^7+14*d^8,a^3*b*c*d^3-29*c^2*d^6-4*a*d^7-32*b*d^7+13*c*d^7-3*d^8,a^4*c*d^3-34*c^2*d^6+5*a*d^7+29*b*d^7-15*c*d^7-48*d^8,b^5*d^3-42*c^2*d^6+33*a*d^7-49*b*d^7+33*c*d^7-43*d^8,a*b^4*d^3+25*c^2*d^6-11*a*d^7-16*b*d^7+32*c*d^7-2*d^8,a^2*b^3*d^3-36*c^2*d^6-47*a*d^7-16*b*d^7+19*c*d^7+9*d^8,a^3*b^2*d^3-30*c^2*d^6-21*a*d^7-6*b*d^7+16*c*d^7-14*d^8,a^4*b*d^3+47*c^2*d^6-16*a*d^7-13*b*d^7+21*c*d^7+30*d^8,a^5*d^3-2*c^2*d^6+40*a*d^7+34*b*d^7+14*c*d^7-50*d^8,c^6*d^2-4*c^2*d^6-41*a*d^7+46*b*d^7+17*c*d^7+19*d^8,b*c^5*d^2-49*c^2*d^6+5*a*d^7-31*b*d^7+30*c*d^7+28*d^8,a*c^5*d^2-12*c^2*d^6-23*a*d^7-39*b*d^7+6*c*d^7-27*d^8,b^2*c^4*d^2-12*c^2*d^6-30*a*d^7+13*b*d^7-42*c*d^7+38*d^8,a*b*c^4*d^2-31*c^2*d^6+5*a*d^7-41*b*d^7-24*c*d^7,a^2*c^4*d^2-c^2*d^6+4*a*d^7+21*b*d^7+19*c*d^7-34*d^8,b^3*c^3*d^2-50*c^2*d^6-11*a*d^7+24*b*d^7+24*c*d^7-44*d^8,a*b^2*c^3*d^2+2*c^2*d^6-42*a*d^7-17*b*d^7-33*c*d^7-10*d^8,a^2*b*c^3*d^2+20*c^2*d^6+29*a*d^7+35*b*d^7-31*c*d^7-35*d^8,a^3*c^3*d^2+35*c^2*d^6-13*a*d^7+20*b*d^7-15*c*d^7-45*d^8,b^4*c^2*d^2+c^2*d^6+36*a*d^7-42*b*d^7+32*c*d^7+16*d^8,a*b^3*c^2*d^2-9*c^2*d^6-43*a*d^7-5*b*d^7-17*c*d^7+50*d^8,a^2*b^2*c^2*d^2-36*c^2*d^6+31*a*d^7+4*b*d^7-26*c*d^7-11*d^8,a^3*b*c^2*d^2+15*c^2*d^6+40*a*d^7-18*b*d^7-31*c*d^7+43*d^8,a^4*c^2*d^2+41*c^2*d^6-49*a*d^7+37*b*d^7+47*c*d^7-48*d^8,b^5*c*d^2-49*c^2*d^6+15*a*d^7+48*b*d^7+22*c*d^7+38*d^8,a*b^4*c*d^2+12*c^2*d^6+16*a*d^7-22*b*d^7-c*d^7+29*d^8,a^2*b^3*c*d^2+31*c^2*d^6+19*a*d^7+45*b*d^7-6*c*d^7+42*d^8,a^3*b^2*c*d^2+29*c^2*d^6-39*a*d^7+25*b*d^7-48*c*d^7-d^8,a^4*b*c*d^2-31*c^2*d^6+24*a*d^7-2*b*d^7+36*c*d^7+37*d^8,a^5*c*d^2+33*c^2*d^6-46*a*d^7-41*b*d^7-29*c*d^7-12*d^8,b^6*d^2-39*c^2*d^6+35*a*d^7-8*b*d^7+35*c*d^7+47*d^8,a*b^5*d^2-38*c^2*d^6-11*a*d^7-37*b*d^7-7*c*d^7-5*d^8,a^2*b^4*d^2+29*c^2*d^6+36*a*d^7-29*b*d^7+20*c*d^7+39*d^8,a^3*b^3*d^2-44*c^2*d^6+43*a*d^7-50*b*d^7-24*c*d^7-16*d^8,a^4*b^2*d^2+20*c^2*d^6+33*a*d^7+6*b*d^7+47*c*d^7+40*d^8,a^5*b*d^2-10*c^2*d^6+25*a*d^7-8*b*d^7-14*c*d^7+16*d^8,a^6*d^2+48*c^2*d^6+14*a*d^7+32*b*d^7+17*c*d^7+13*d^8,c^7*d+38*c^2*d^6-39*a*d^7+22*b*d^7+15*c*d^7-d^8,b*c^6*d+9*c^2*d^6+37*a*d^7+12*b*d^7+27*c*d^7+3*d^8,a*c^6*d-5*c^2*d^6+34*a*d^7+15*b*d^7+2*c*d^7-21*d^8,b^2*c^5*d+35*c^2*d^6+27*a*d^7+13*b*d^7-39*c*d^7+8*d^8,a*b*c^5*d-34*c^2*d^6-18*a*d^7-21*b*d^7-31*c*d^7+46*d^8,a^2*c^5*d-16*c^2*d^6-6*a*d^7-18*b*d^7+3*c*d^7+47*d^8,b^3*c^4*d-46*c^2*d^6+4*a*d^7-38*b*d^7-29*c*d^7-4*d^8,a*b^2*c^4*d-35*c^2*d^6-14*a*d^7-32*b*d^7-40*c*d^7-35*d^8,a^2*b*c^4*d+23*c^2*d^6-44*a*d^7-3*b*d^7+4*c*d^7-4*d^8,a^3*c^4*d+24*c^2*d^6-7*a*d^7-44*b*d^7-16*c*d^7+10*d^8,b^4*c^3*d+43*c^2*d^6+12*a*d^7+43*b*d^7-49*c*d^7-23*d^8,a*b^3*c^3*d+22*c^2*d^6+6*a*d^7+2*b*d^7-9*c*d^7,a^2*b^2*c^3*d+4*c^2*d^6+21*a*d^7-24*b*d^7-26*c*d^7+33*d^8,a^3*b*c^3*d+13*c^2*d^6-18*a*d^7+31*b*d^7-28*c*d^7+2*d^8,a^4*c^3*d+10*c^2*d^6-14*a*d^7+30*b*d^7-40*c*d^7+33*d^8,b^5*c^2*d-35*c^2*d^6-33*a*d^7+7*b*d^7+13*c*d^7+26*d^8,a*b^4*c^2*d-49*c^2*d^6+9*a*d^7+20*b*d^7+11*c*d^7-32*d^8,a^2*b^3*c^2*d+33*c^2*d^6-43*a*d^7-27*b*d^7-31*c*d^7-41*d^8,a^3*b^2*c^2*d-6*c^2*d^6+23*a*d^7+20*b*d^7-8*c*d^7-6*d^8,a^4*b*c^2*d+10*c^2*d^6-24*a*d^7+30*b*d^7+42*c*d^7-23*d^8,a^5*c^2*d+12*c^2*d^6+20*a*d^7+24*b*d^7-9*c*d^7-9*d^8,b^6*c*d-12*c^2*d^6+36*a*d^7+4*b*d^7-12*c*d^7+26*d^8,a*b^5*c*d-19*c^2*d^6-39*a*d^7-26*b*d^7-4*c*d^7+10*d^8,a^2*b^4*c*d+38*c^2*d^6-6*a*d^7+6*b*d^7+41*c*d^7+49*d^8,a^3*b^3*c*d-34*c^2*d^6-42*a*d^7+22*b*d^7-26*c*d^7-13*d^8,a^4*b^2*c*d+14*c^2*d^6+40*a*d^7+39*b*d^7-34*d^8,a^5*b*c*d-8*c^2*d^6+45*a*d^7-35*b*d^7+48*c*d^7+47*d^8,a^6*c*d-6*c^2*d^6-24*a*d^7-2*b*d^7-9*c*d^7+7*d^8,b^7*d+34*c^2*d^6-14*a*d^7+46*b*d^7-50*c*d^7+26*d^8,a*b^6*d+6*c^2*d^6+23*a*d^7-27*b*d^7-25*c*d^7-2*d^8,c^8+43*c^2*d^6+11*b*d^7-39*c*d^7-30*d^8,b*c^7-44*c^2*d^6-4*a*d^7-10*b*d^7+31*c*d^7+42*d^8,a*c^7-6*a*d^7+31*b*d^7+37*c*d^7-41*d^8,b^2*c^6-11*c^2*d^6-35*a*d^7+32*b*d^7-25*c*d^7-21*d^8,a*b*c^6+2*c^2*d^6+43*a*d^7-48*b*d^7-49*c*d^7-19*d^8,a^2*c^6-20*c^2*d^6-11*a*d^7-35*b*d^7-33*c*d^7+28*d^8,b^3*c^5+4*c^2*d^6-7*a*d^7-21*b*d^7-14*c*d^7+48*d^8,a*b^2*c^5+17*c^2*d^6+45*a*d^7-32*b*d^7+29*c*d^7+38*d^8,a^2*b*c^5-13*c^2*d^6+46*a*d^7+4*b*d^7-18*c*d^7+19*d^8,a^3*c^5-23*c^2*d^6-a*d^7-3*b*d^7-15*c*d^7+19*d^8,b^4*c^4-50*c^2*d^6+39*a*d^7+49*b*d^7+47*c*d^7+7*d^8,a*b^3*c^4-33*c^2*d^6+10*a*d^7+32*b*d^7+21*c*d^7-39*d^8,a^2*b^2*c^4+23*c^2*d^6+27*a*d^7-17*b*d^7+29*c*d^7+9*d^8,a^3*b*c^4-47*c^2*d^6-43*a*d^7-47*b*d^7-34*c*d^7-23*d^8,a^4*c^4-6*c^2*d^6+7*a*d^7+38*b*d^7-27*c*d^7-9*d^8,b^5*c^3-47*c^2*d^6+18*a*d^7-44*b*d^7-4*c*d^7-18*d^8,a*b^4*c^3+30*c^2*d^6+36*a*d^7+25*b*d^7+42*c*d^7+d^8,a^2*b^3*c^3+10*c^2*d^6+31*a*d^7+45*b*d^7-44*c*d^7+37*d^8,a^3*b^2*c^3-41*c^2*d^6-15*a*d^7-34*b*d^7-22*c*d^7+28*d^8,a^4*b*c^3+19*c^2*d^6-23*a*d^7+18*b*d^7-13*c*d^7-48*d^8,a^5*c^3+16*c^2*d^6+22*a*d^7-31*b*d^7+33*c*d^7+15*d^8,b^6*c^2-42*c^2*d^6-10*a*d^7-16*b*d^7-46*c*d^7+42*d^8,a*b^5*c^2-23*c^2*d^6+34*a*d^7-37*b*d^7+2*c*d^7+10*d^8,a^2*b^4*c^2-45*c^2*d^6-5*a*d^7+43*b*d^7-18*c*d^7+7*d^8,a^3*b^3*c^2+36*c^2*d^6+19*a*d^7+21*b*d^7+46*c*d^7-24*d^8,a^4*b^2*c^2-17*c^2*d^6+30*a*d^7-39*b*d^7-39*c*d^7-24*d^8,a^5*b*c^2+10*c^2*d^6-24*a*d^7-36*b*d^7-14*c*d^7+26*d^8,a^6*c^2+47*c^2*d^6-41*a*d^7+32*b*d^7+6*c*d^7+42*d^8,b^7*c+44*c^2*d^6-6*a*d^7+5*b*d^7+20*c*d^7+50*d^8,a*b^6*c+29*c^2*d^6-16*a*d^7+45*b*d^7-3*c*d^7+14*d^8,b^8+48*c^2*d^6-40*a*d^7-44*b*d^7-10*c*d^7-23*d^8,a*b^7-32*c^2*d^6-41*a*d^7-11*b*d^7+50*c*d^7+13*d^8,d^9,c*d^8,b*d^8,a*d^8,c^2*d^7;3068 // M;3069 TestSSresAttribs(M);3070 kill AGR;3071 3072 ring AGR = (101), (a,b,c,d,e,f,g,h), dp; AGR;3073 "AGR@101n7d005s010%2_medium";3074 ideal M =3075 f*h-g*h,e*h-g*h,d*h-g*h,c*h-g*h,b*h-g*h,a*h-g*h,e*g+48*f*g-49*g*h,d*g+5*f*g-6*g*h,c*g+49*f*g-50*g*h,b*g-7*f*g+6*g*h,a*g-50*f*g+49*g*h,e*f-20*f*g+19*g*h,d*f+40*f*g-41*g*h,c*f-12*f*g+11*g*h,b*f+45*f*g-46*g*h,a*f+4*f*g-5*g*h,d*e-f*g,c*e-30*f*g+29*g*h,b*e-39*f*g+38*g*h,a*e+10*f*g-11*g*h,c*d-41*f*g+40*g*h,b*d-23*f*g+22*g*h,a*d-20*f*g+19*g*h,b*c+17*f*g-18*g*h,a*c+6*f*g-7*g*h,a*b+28*f*g-29*g*h,g^2*h-g*h^2,f^2*g-8*f*g^2+7*g*h^2,g*h^4+50*h^5,g^5+41*h^5,f*g^4-18*h^5,f^5+29*h^5,e^5+6*h^5,d^5-23*h^5,c^5-32*h^5,3076 b^5+17*h^5,a^5+17*h^5,h^6;3077 // M;3078 TestSSresAttribs(M);3079 // with tails:3080 // options: 1 1 0 : Time: 3/103081 // options: 1 1 1 : Time: 2/63082 3083 kill AGR;3084 3085 // from Andreas...tooo long!?3086 3087 ring AGR = (101), (a,b,c,d,e), dp; AGR;3088 3089 "AGR101n4d007s021%4... too hard?";3090 3091 ideal M = b^3*c*d-44*a*b*c^2*d-23*b^2*c^2*d-17*a*c^3*d+25*b*c^3*d-28*c^4*d+21*a^3*d^2+28*a^2*b*d^2+45*a*b^2*d^2-45*b^3*d^2+39*a^2*c*d^2+50*a*b*c*d^2-31*b^2*c*d^2+25*a*c^2*d^2-42*b*c^2*d^2-6*c^3*d^2+10*a^2*d^3-18*a*b*d^3-21*b^2*d^3-9*a*c*d^3+37*b*c*d^3-18*c^2*d^3+5*a*d^4+b*d^4-18*c*d^4+23*d^5-5*a^4*e+6*a^3*b*e-21*a^2*b^2*e-28*a*b^3*e+11*b^4*e+19*a^3*c*e+29*a^2*b*c*e-25*a*b^2*c*e-8*b^3*c*e+17*a^2*c^2*e+45*a*b*c^2*e-28*b^2*c^2*e+22*a*c^3*e+33*b*c^3*e+27*c^4*e-50*a^3*d*e+11*a^2*b*d*e-45*a*b^2*d*e-5*b^3*d*e-2*a^2*c*d*e-30*a*b*c*d*e-17*b^2*c*d*e-45*a*c^2*d*e+12*b*c^2*d*e-8*c^3*d*e+12*a^2*d^2*e+a*b*d^2*e-13*b^2*d^2*e-20*a*c*d^2*e+47*b*c*d^2*e-10*c^2*d^2*e+8*a*d^3*e+32*b*d^3*e-8*c*d^3*e+47*d^4*e+43*a^3*e^2+23*a^2*b*e^2+12*a*b^2*e^2+25*b^3*e^2-23*a^2*c*e^2-12*a*b*c*e^2+5*b^2*c*e^2-25*a*c^2*e^2-8*b*c^2*e^2-48*c^3*e^2+22*a^2*d*e^2+27*a*b*d*e^2-21*b^2*d*e^2+35*a*c*d*e^2-5*b*c*d*e^2+14*c^2*d*e^2+3*a*d^2*e^2-35*b*d^2*e^2+24*c*d^2*e^2-12*d^3*e^2-30*a^2*e^3+5*a*b*e^3-29*b^2*e^3-17*a*c*e^3-41*b*c*e^3-41*c^2*e^3-a*d*e^3-41*b*d*e^3+6*c*d*e^3+24*d^2*e^3+38*a*e^4+46*b*e^4+5*c*e^4-48*d*e^4-33*e^5,3092 a*b^2*c*d-8*a^2*c^2*d+35*a*b*c^2*d-9*b^2*c^2*d+41*a*c^3*d+11*b*c^3*d+36*c^4*d-36*a^3*d^2-11*a^2*b*d^2-45*a*b^2*d^2+20*b^3*d^2-38*a^2*c*d^2-21*a*b*c*d^2-26*b^2*c*d^2+26*a*c^2*d^2+45*b*c^2*d^2+2*c^3*d^2+35*a^2*d^3-15*a*b*d^3-30*b^2*d^3-37*a*c*d^3+3*b*c*d^3+29*c^2*d^3-39*a*d^4-13*b*d^4+42*c*d^4+50*d^5-47*a^4*e+a^3*b*e-10*a^2*b^2*e+10*a*b^3*e-19*b^4*e+47*a^3*c*e+29*a^2*b*c*e+33*a*b^2*c*e-7*b^3*c*e+29*a^2*c^2*e-2*b^2*c^2*e-19*a*c^3*e+16*b*c^3*e+44*c^4*e+47*a^3*d*e-14*a^2*b*d*e+48*a*b^2*d*e-21*b^3*d*e+13*a^2*c*d*e+4*a*b*c*d*e+20*b^2*c*d*e-3*a*c^2*d*e-34*b*c^2*d*e-2*c^3*d*e+10*a^2*d^2*e+38*a*b*d^2*e+18*b^2*d^2*e-a*c*d^2*e+24*b*c*d^2*e-11*c^2*d^2*e+24*a*d^3*e-10*b*d^3*e+15*c*d^3*e-44*d^4*e+6*a^3*e^2-7*a^2*b*e^2+30*a*b^2*e^2+25*b^3*e^2+40*a^2*c*e^2+33*a*b*c*e^2+26*b^2*c*e^2-2*a*c^2*e^2-2*b*c^2*e^2+32*c^3*e^2+31*a^2*d*e^2+50*a*b*d*e^2-5*b^2*d*e^2-43*a*c*d*e^2+37*b*c*d*e^2-16*c^2*d*e^2+39*a*d^2*e^2+15*b*d^2*e^2+35*c*d^2*e^2-47*d^3*e^2+38*a^2*e^3+7*a*b*e^3+16*b^2*e^3+43*a*c*e^3+23*b*c*e^3+9*c^2*e^3+37*a*d*e^3-18*b*d*e^3+32*c*d*e^3-2*d^2*e^3-31*a*e^4+18*b*e^4-35*c*e^4+9*d*e^4-49*e^5,3093 a^2*b*c*d+7*a^2*c^2*d-15*a*b*c^2*d+20*b^2*c^2*d+8*a*c^3*d-14*b*c^3*d+34*c^4*d+15*a^3*d^2+37*a^2*b*d^2-11*a*b^2*d^2-8*b^3*d^2-15*a^2*c*d^2-22*a*b*c*d^2-30*b^2*c*d^2+23*a*c^2*d^2+34*b*c^2*d^2+41*c^3*d^2-27*a^2*d^3+24*b^2*d^3-15*a*c*d^3+20*b*c*d^3-16*c^2*d^3-31*a*d^4+18*b*d^4-21*c*d^4+19*d^5+20*a^4*e+38*a^3*b*e-7*a^2*b^2*e+8*a*b^3*e-35*b^4*e+30*a^3*c*e-13*a^2*b*c*e+39*a*b^2*c*e-50*b^3*c*e+50*a^2*c^2*e-21*a*b*c^2*e+17*b^2*c^2*e-23*a*c^3*e+32*b*c^3*e-43*c^4*e-39*a^3*d*e+16*a^2*b*d*e+25*a*b^2*d*e-12*b^3*d*e+50*a^2*c*d*e+4*a*b*c*d*e-17*b^2*c*d*e-28*a*c^2*d*e-5*b*c^2*d*e+13*c^3*d*e+23*a^2*d^2*e+17*a*b*d^2*e+14*b^2*d^2*e-2*a*c*d^2*e+3*b*c*d^2*e+20*c^2*d^2*e-14*a*d^3*e+5*b*d^3*e-c*d^3*e+29*d^4*e-42*a^3*e^2-38*a^2*b*e^2-44*a*b^2*e^2-4*b^3*e^2+29*a^2*c*e^2-19*a*b*c*e^2+38*b^2*c*e^2+3*a*c^2*e^2-46*b*c^2*e^2-46*c^3*e^2-44*a^2*d*e^2+16*a*b*d*e^2-38*b^2*d*e^2+12*a*c*d*e^2+45*b*c*d*e^2-48*c^2*d*e^2+34*a*d^2*e^2+32*b*d^2*e^2+37*c*d^2*e^2+34*d^3*e^2+30*a^2*e^3+45*a*b*e^3+8*b^2*e^3+40*a*c*e^3-37*b*c*e^3-16*c^2*e^3-50*a*d*e^3-18*b*d*e^3-9*c*d*e^3-37*a*e^4-22*b*e^4+5*c*e^4+d*e^4+9*e^5,3094 a^3*c*d-44*a^2*c^2*d-38*a*b*c^2*d-26*b^2*c^2*d-12*a*c^3*d-21*b*c^3*d+43*c^4*d-22*a^3*d^2-23*a^2*b*d^2+32*a*b^2*d^2+45*b^3*d^2-48*a^2*c*d^2-40*a*b*c*d^2+3*b^2*c*d^2+2*a*c^2*d^2-27*b*c^2*d^2-35*c^3*d^2+33*a^2*d^3-11*a*b*d^3-5*b^2*d^3+8*a*c*d^3-42*b*c*d^3+41*c^2*d^3-41*b*d^4+29*c*d^4+5*d^5+32*a^4*e-46*a^3*b*e-46*a^2*b^2*e+19*a*b^3*e-14*b^4*e-24*a^3*c*e+3*a^2*b*c*e-22*a*b^2*c*e+49*b^3*c*e-47*a^2*c^2*e+27*a*b*c^2*e+48*b^2*c^2*e+20*a*c^3*e-3*b*c^3*e-11*c^4*e-21*a^3*d*e+a^2*b*d*e-13*a*b^2*d*e-33*b^3*d*e+13*a^2*c*d*e-3*a*b*c*d*e+15*b^2*c*d*e+35*a*c^2*d*e-20*b*c^2*d*e+45*c^3*d*e-14*a^2*d^2*e+11*a*b*d^2*e-38*b^2*d^2*e+40*a*c*d^2*e-30*b*c*d^2*e+14*c^2*d^2*e-26*a*d^3*e-43*b*d^3*e+38*c*d^3*e-24*d^4*e-10*a^3*e^2-31*a^2*b*e^2+a*b^2*e^2-34*b^3*e^2+5*a^2*c*e^2-12*a*b*c*e^2-6*b^2*c*e^2-30*a*c^2*e^2-b*c^2*e^2+31*c^3*e^2+22*a^2*d*e^2-26*a*b*d*e^2+9*b^2*d*e^2+32*a*c*d*e^2+24*b*c*d*e^2-36*c^2*d*e^2-a*d^2*e^2-14*b*d^2*e^2-24*c*d^2*e^2+7*d^3*e^2+38*a^2*e^3+35*a*b*e^3+16*b^2*e^3+25*a*c*e^3-30*b*c*e^3+30*c^2*e^3-25*a*d*e^3+3*b*d*e^3+40*c*d*e^3+16*d^2*e^3+45*a*e^4+15*b*e^4-12*c*e^4+42*d*e^4+7*e^5,3095 b^4*d+14*a^2*c^2*d+2*a*b*c^2*d+34*b^2*c^2*d-12*a*c^3*d+20*b*c^3*d-20*c^4*d+4*a^3*d^2-47*a^2*b*d^2-34*a*b^2*d^2-22*b^3*d^2+23*a^2*c*d^2-22*a*b*c*d^2-31*b^2*c*d^2-24*a*c^2*d^2+39*b*c^2*d^2-37*c^3*d^2-39*a^2*d^3-49*a*b*d^3-41*b^2*d^3-44*a*c*d^3+33*b*c*d^3-14*c^2*d^3-49*a*d^4+20*b*d^4+37*c*d^4+34*d^5+50*a^4*e-31*a^3*b*e-18*a^2*b^2*e-16*a*b^3*e+45*b^4*e+32*a^3*c*e+43*a^2*b*c*e-27*a*b^2*c*e+5*b^3*c*e+39*a^2*c^2*e+33*a*b*c^2*e-16*b^2*c^2*e-6*a*c^3*e-35*b*c^3*e-4*c^4*e-19*a^3*d*e+25*a^2*b*d*e-20*a*b^2*d*e+6*b^3*d*e-46*a^2*c*d*e-8*a*b*c*d*e+5*b^2*c*d*e+2*a*c^2*d*e-39*b*c^2*d*e-30*c^3*d*e+50*a^2*d^2*e-3*a*b*d^2*e-22*b^2*d^2*e+42*a*c*d^2*e-9*b*c*d^2*e+17*c^2*d^2*e+33*a*d^3*e+29*b*d^3*e-10*c*d^3*e+5*d^4*e+15*a^3*e^2+12*a^2*b*e^2-12*a*b^2*e^2+17*b^3*e^2+26*a^2*c*e^2+23*a*b*c*e^2+4*b^2*c*e^2-8*a*c^2*e^2+49*b*c^2*e^2-25*c^3*e^2-24*a^2*d*e^2-19*a*b*d*e^2+26*b^2*d*e^2+38*a*c*d*e^2+48*b*c*d*e^2-28*c^2*d*e^2-15*a*d^2*e^2+31*b*d^2*e^2-47*c*d^2*e^2-5*d^3*e^2-28*a^2*e^3+46*a*b*e^3-25*b^2*e^3-25*a*c*e^3-42*b*c*e^3-39*c^2*e^3-22*a*d*e^3+7*b*d*e^3+4*c*d*e^3-9*d^2*e^3+50*a*e^4-39*b*e^4+44*c*e^4+28*d*e^4+36*e^5,3096 a*b^3*d-32*a^2*c^2*d-43*a*b*c^2*d-38*b^2*c^2*d-33*a*c^3*d-34*b*c^3*d+15*c^4*d-10*a^3*d^2+20*a^2*b*d^2+23*a*b^2*d^2-6*b^3*d^2-46*a^2*c*d^2-29*a*b*c*d^2-20*b^2*c*d^2+17*a*c^2*d^2-42*b*c^2*d^2+27*c^3*d^2-15*a^2*d^3-27*a*b*d^3+43*b^2*d^3-a*c*d^3+45*b*c*d^3+7*c^2*d^3+4*a*d^4-5*b*d^4-13*c*d^4-26*d^5-24*a^4*e-5*a^2*b^2*e-27*a*b^3*e-23*b^4*e+9*a^3*c*e+33*a^2*b*c*e+25*a*b^2*c*e+39*b^3*c*e-30*a^2*c^2*e-33*a*b*c^2*e-37*b^2*c^2*e-13*a*c^3*e+49*b*c^3*e-30*c^4*e+8*a^3*d*e+20*a^2*b*d*e+18*a*b^2*d*e-34*b^3*d*e-19*a^2*c*d*e+39*a*b*c*d*e+21*b^2*c*d*e+12*a*c^2*d*e-15*b*c^2*d*e+39*c^3*d*e+34*a^2*d^2*e+49*a*b*d^2*e-10*b^2*d^2*e-46*a*c*d^2*e+18*b*c*d^2*e-6*c^2*d^2*e+9*a*d^3*e+30*b*d^3*e+20*c*d^3*e+3*d^4*e-15*a^3*e^2-18*a^2*b*e^2+5*a*b^2*e^2+14*b^3*e^2+19*a^2*c*e^2+30*a*b*c*e^2-b^2*c*e^2+33*a*c^2*e^2+41*b*c^2*e^2-7*c^3*e^2+12*a^2*d*e^2-13*a*b*d*e^2-3*b^2*d*e^2-49*a*c*d*e^2-17*b*c*d*e^2+29*c^2*d*e^2-19*a*d^2*e^2-38*b*d^2*e^2-10*c*d^2*e^2+50*d^3*e^2-17*a^2*e^3+47*a*b*e^3-7*b^2*e^3-25*a*c*e^3+29*b*c*e^3-41*c^2*e^3-35*a*d*e^3+b*d*e^3+32*c*d*e^3-15*d^2*e^3+9*a*e^4+22*c*e^4+12*d*e^4+36*e^5,3097 a^2*b^2*d-a^2*c^2*d-5*a*b*c^2*d+40*b^2*c^2*d+4*a*c^3*d+35*b*c^3*d+42*c^4*d-23*a^3*d^2-34*a^2*b*d^2+4*a*b^2*d^2+27*b^3*d^2+38*a^2*c*d^2-47*a*b*c*d^2+50*b^2*c*d^2+17*a*c^2*d^2+8*c^3*d^2+26*a^2*d^3-32*a*b*d^3+3*b^2*d^3+16*a*c*d^3-47*b*c*d^3-41*c^2*d^3-22*a*d^4-47*b*d^4-17*c*d^4-43*d^5-49*a^4*e+6*a^3*b*e-46*a^2*b^2*e+30*a*b^3*e-21*b^4*e+30*a^3*c*e+17*a^2*b*c*e+39*a*b^2*c*e+37*b^3*c*e+36*a^2*c^2*e+21*a*b*c^2*e-36*b^2*c^2*e-2*a*c^3*e+18*b*c^3*e-49*c^4*e-47*a^3*d*e+35*a^2*b*d*e+10*a*b^2*d*e+22*b^3*d*e-10*a^2*c*d*e-24*a*b*c*d*e-43*b^2*c*d*e-11*a*c^2*d*e+39*b*c^2*d*e+14*c^3*d*e-15*a^2*d^2*e+36*a*b*d^2*e+42*b^2*d^2*e+32*a*c*d^2*e+7*b*c*d^2*e-4*c^2*d^2*e-13*a*d^3*e+39*b*d^3*e+20*c*d^3*e+7*d^4*e+49*a^3*e^2+39*a^2*b*e^2-12*a*b^2*e^2+36*b^3*e^2+12*a^2*c*e^2-45*a*b*c*e^2+47*b^2*c*e^2+16*a*c^2*e^2+21*b*c^2*e^2+2*c^3*e^2+43*a^2*d*e^2+16*a*b*d*e^2+15*b^2*d*e^2+44*a*c*d*e^2+47*b*c*d*e^2+6*c^2*d*e^2+29*a*d^2*e^2-10*b*d^2*e^2-14*c*d^2*e^2+40*d^3*e^2+10*a^2*e^3-2*a*b*e^3-12*b^2*e^3-11*a*c*e^3+4*b*c*e^3+c^2*e^3-41*a*d*e^3-33*b*d*e^3+13*c*d*e^3+32*d^2*e^3-43*a*e^4+42*b*e^4-4*c*e^4-36*d*e^4,3098 a^3*b*d-15*a^2*c^2*d-32*a*b*c^2*d+24*b^2*c^2*d+48*a*c^3*d+6*b*c^3*d-40*a^3*d^2+34*a^2*b*d^2+29*a*b^2*d^2+18*b^3*d^2-17*a^2*c*d^2+34*a*b*c*d^2+5*b^2*c*d^2-31*a*c^2*d^2-29*b*c^2*d^2-12*c^3*d^2+11*a^2*d^3+8*a*b*d^3+3*b^2*d^3-33*a*c*d^3-34*b*c*d^3-12*c^2*d^3-48*a*d^4+18*b*d^4+41*c*d^4-45*d^5-22*a^4*e+a^3*b*e-25*a^2*b^2*e+3*a*b^3*e+49*b^4*e-27*a^3*c*e-42*a^2*b*c*e+2*a*b^2*c*e+3*b^3*c*e-40*a^2*c^2*e-30*a*b*c^2*e+2*b^2*c^2*e-14*a*c^3*e-6*b*c^3*e+22*c^4*e-16*a^3*d*e+32*a^2*b*d*e-2*a*b^2*d*e-27*b^3*d*e+16*a^2*c*d*e+42*a*b*c*d*e-6*b^2*c*d*e-46*a*c^2*d*e-9*b*c^2*d*e+31*c^3*d*e-23*a^2*d^2*e-a*b*d^2*e+22*b^2*d^2*e+29*a*c*d^2*e+22*b*c*d^2*e-28*c^2*d^2*e-32*a*d^3*e-10*b*d^3*e-10*c*d^3*e+19*d^4*e-41*a^3*e^2+27*a^2*b*e^2+44*a*b^2*e^2-32*b^3*e^2-24*a^2*c*e^2-6*a*b*c*e^2-25*b^2*c*e^2+29*a*c^2*e^2+19*b*c^2*e^2-47*c^3*e^2+20*a^2*d*e^2-3*a*b*d*e^2+43*b^2*d*e^2-14*a*c*d*e^2+2*b*c*d*e^2-37*c^2*d*e^2-24*a*d^2*e^2-19*b*d^2*e^2+30*c*d^2*e^2+29*d^3*e^2-a^2*e^3-6*a*b*e^3-18*b^2*e^3-48*a*c*e^3+13*b*c*e^3+40*c^2*e^3-48*a*d*e^3-45*b*d*e^3-23*c*d*e^3-6*d^2*e^3+4*a*e^4+12*b*e^4+36*c*e^4+32*d*e^4-20*e^5,3099 a^4*d+17*a^2*c^2*d-6*a*b*c^2*d-16*b^2*c^2*d-8*a*c^3*d+12*b*c^3*d+31*c^4*d-2*a^3*d^2+45*a^2*b*d^2+29*a*b^2*d^2-47*b^3*d^2+17*a^2*c*d^2-28*a*b*c*d^2-12*b^2*c*d^2-49*a*c^2*d^2-34*b*c^2*d^2-49*c^3*d^2-13*a^2*d^3+12*a*b*d^3-50*b^2*d^3-27*a*c*d^3+17*b*c*d^3+26*c^2*d^3-40*a*d^4+37*b*d^4+31*c*d^4+42*d^5-3*a^4*e+40*a^3*b*e+39*a^2*b^2*e-35*a*b^3*e+2*b^4*e-47*a^3*c*e-45*a^2*b*c*e-24*a*b^2*c*e-20*b^3*c*e+a^2*c^2*e-3*a*b*c^2*e+8*b^2*c^2*e-42*a*c^3*e-49*b*c^3*e-49*c^4*e+42*a^3*d*e+25*a^2*b*d*e+45*a*b^2*d*e+35*b^3*d*e+43*a^2*c*d*e-18*a*b*c*d*e+24*b^2*c*d*e-2*a*c^2*d*e-43*b*c^2*d*e+16*c^3*d*e-44*a^2*d^2*e+31*a*b*d^2*e+17*b^2*d^2*e-36*a*c*d^2*e+25*b*c*d^2*e-20*c^2*d^2*e+17*a*d^3*e-39*b*d^3*e-37*c*d^3*e+10*d^4*e-30*a^3*e^2+34*a^2*b*e^2-43*a*b^2*e^2-2*b^3*e^2-48*a^2*c*e^2+32*a*b*c*e^2+47*b^2*c*e^2+34*a*c^2*e^2-32*b*c^2*e^2+4*c^3*e^2-26*a^2*d*e^2+22*a*b*d*e^2+23*b^2*d*e^2-37*a*c*d*e^2+26*b*c*d*e^2-33*c^2*d*e^2-5*a*d^2*e^2+15*b*d^2*e^2+19*c*d^2*e^2-31*d^3*e^2+42*a^2*e^3+27*a*b*e^3+30*b^2*e^3+22*a*c*e^3-49*b*c*e^3-19*c^2*e^3+42*a*d*e^3+5*b*d*e^3+32*c*d*e^3+9*d^2*e^3-17*a*e^4-46*b*e^4+23*c*e^4-32*d*e^4-2*e^5,3100 c^5+40*a^2*c^2*d+34*a*b*c^2*d-16*b^2*c^2*d+9*a*c^3*d-13*b*c^3*d+30*c^4*d+18*a^3*d^2+27*a^2*b*d^2+37*a*b^2*d^2-30*b^3*d^2-38*a^2*c*d^2-40*a*b*c*d^2-10*b^2*c*d^2-28*a*c^2*d^2-26*b*c^2*d^2+15*c^3*d^2-7*a^2*d^3+2*a*b*d^3+28*b^2*d^3+27*a*c*d^3+11*b*c*d^3-9*c^2*d^3-18*a*d^4+39*b*d^4+8*c*d^4+20*d^5+34*a^4*e+27*a^3*b*e+10*a^2*b^2*e-10*a*b^3*e+15*b^4*e+a^3*c*e+16*a^2*b*c*e+47*a*b^2*c*e-50*b^3*c*e-45*a^2*c^2*e-47*a*b*c^2*e-38*b^2*c^2*e+49*a*c^3*e+11*b*c^3*e-8*c^4*e-24*a^3*d*e+41*a^2*b*d*e+31*a*b^2*d*e-31*b^3*d*e-44*a^2*c*d*e-a*b*c*d*e-15*b^2*c*d*e-27*a*c^2*d*e-50*b*c^2*d*e+29*c^3*d*e+30*a^2*d^2*e+41*a*b*d^2*e-31*b^2*d^2*e-40*a*c*d^2*e+14*b*c*d^2*e-18*c^2*d^2*e+4*a*d^3*e-27*b*d^3*e-36*c*d^3*e-26*d^4*e-2*a^3*e^2+39*a^2*b*e^2-17*a*b^2*e^2-b^3*e^2+24*a^2*c*e^2-6*a*b*c*e^2-12*b^2*c*e^2+38*a*c^2*e^2+6*b*c^2*e^2+38*c^3*e^2+15*a^2*d*e^2-2*a*b*d*e^2-22*b^2*d*e^2+30*a*c*d*e^2+50*b*c*d*e^2-37*c^2*d*e^2+2*a*d^2*e^2+27*b*d^2*e^2+2*c*d^2*e^2+19*d^3*e^2+48*a^2*e^3+24*a*b*e^3+49*b^2*e^3-35*a*c*e^3+49*b*c*e^3+2*c^2*e^3+20*a*d*e^3+34*b*d*e^3-50*c*d*e^3-41*d^2*e^3+48*a*e^4-24*b*e^4-14*c*e^4+32*d*e^4-11*e^5,3101 b*c^4+9*a^2*c^2*d-47*a*b*c^2*d-29*b^2*c^2*d+24*a*c^3*d-19*b*c^3*d-25*c^4*d+50*a^3*d^2-6*a^2*b*d^2-32*a*b^2*d^2-43*b^3*d^2+42*a^2*c*d^2-16*a*b*c*d^2-40*b^2*c*d^2+3*a*c^2*d^2+9*b*c^2*d^2+34*c^3*d^2-48*a^2*d^3-8*a*b*d^3-22*b^2*d^3+42*a*c*d^3+25*b*c*d^3-31*c^2*d^3-12*a*d^4+25*b*d^4+c*d^4+13*d^5-26*a^4*e+2*a^3*b*e-37*a^2*b^2*e+23*a*b^3*e+25*b^4*e+43*a^3*c*e-10*a^2*b*c*e+16*a*b^2*c*e-24*b^3*c*e+43*a^2*c^2*e-25*a*b*c^2*e+39*b^2*c^2*e+31*a*c^3*e-21*b*c^3*e+16*c^4*e+17*a^3*d*e-33*a^2*b*d*e+34*a*b^2*d*e-16*b^3*d*e+49*a^2*c*d*e+10*a*b*c*d*e-14*b^2*c*d*e+6*a*c^2*d*e+32*b*c^2*d*e-25*c^3*d*e-16*a^2*d^2*e-26*a*b*d^2*e+36*b^2*d^2*e+41*a*c*d^2*e-43*b*c*d^2*e-44*c^2*d^2*e+24*a*d^3*e+12*b*d^3*e-40*c*d^3*e+46*d^4*e-18*a^3*e^2+36*a^2*b*e^2-49*a*b^2*e^2+47*b^3*e^2-30*a^2*c*e^2+11*a*b*c*e^2-17*b^2*c*e^2-19*a*c^2*e^2-33*b*c^2*e^2+4*c^3*e^2-14*a^2*d*e^2-13*a*b*d*e^2-4*b^2*d*e^2-a*c*d*e^2+22*b*c*d*e^2-41*c^2*d*e^2+50*a*d^2*e^2+24*b*d^2*e^2-29*c*d^2*e^2-9*d^3*e^2+10*a^2*e^3+44*a*b*e^3+11*b^2*e^3+25*a*c*e^3+31*b*c*e^3+22*c^2*e^3+a*d*e^3-6*c*d*e^3+26*d^2*e^3-40*a*e^4+31*b*e^4-50*c*e^4+9*d*e^4+39*e^5,3102 a*c^4-47*a^2*c^2*d+40*a*b*c^2*d-8*b^2*c^2*d+3*a*c^3*d-3*b*c^3*d+38*c^4*d-13*a^3*d^2+3*a^2*b*d^2+19*a*b^2*d^2+24*b^3*d^2-27*a^2*c*d^2-12*a*b*c*d^2-45*b^2*c*d^2+28*a*c^2*d^2+35*b*c^2*d^2-28*c^3*d^2+7*a^2*d^3+3*a*b*d^3-34*b^2*d^3+15*a*c*d^3+36*b*c*d^3-18*c^2*d^3-49*a*d^4+44*b*d^4+c*d^4-10*d^5+31*a^4*e-18*a^3*b*e+7*a^2*b^2*e+38*a*b^3*e+37*b^4*e+18*a^3*c*e-50*a^2*b*c*e+12*a*b^2*c*e+43*b^3*c*e+33*a^2*c^2*e+13*a*b*c^2*e+13*b^2*c^2*e-4*a*c^3*e+13*b*c^3*e+20*c^4*e-32*a^3*d*e-36*a^2*b*d*e+47*a*b^2*d*e+43*b^3*d*e-13*a^2*c*d*e-27*a*b*c*d*e+7*b^2*c*d*e-40*a*c^2*d*e-30*b*c^2*d*e+21*c^3*d*e-18*a^2*d^2*e-32*a*b*d^2*e-20*b^2*d^2*e-47*a*c*d^2*e+34*b*c*d^2*e-3*c^2*d^2*e-22*a*d^3*e-29*b*d^3*e-47*c*d^3*e-33*d^4*e-3*a^3*e^2+46*a^2*b*e^2-42*a*b^2*e^2+6*b^3*e^2+16*a^2*c*e^2-9*a*b*c*e^2-35*b^2*c*e^2-24*b*c^2*e^2-5*c^3*e^2+18*a^2*d*e^2+43*a*b*d*e^2-43*b^2*d*e^2+6*a*c*d*e^2+8*b*c*d*e^2-33*c^2*d*e^2-26*a*d^2*e^2+31*b*d^2*e^2-29*c*d^2*e^2+d^3*e^2+45*a^2*e^3+45*a*b*e^3-31*b^2*e^3-26*a*c*e^3+35*b*c*e^3+30*c^2*e^3-33*a*d*e^3-4*b*d*e^3+34*c*d*e^3+21*d^2*e^3+41*a*e^4-14*b*e^4-32*c*e^4-19*d*e^4+29*e^5,3103 b^2*c^3+10*a^2*c^2*d+20*a*b*c^2*d+36*b^2*c^2*d-7*a*c^3*d+13*b*c^3*d+42*c^4*d-6*a^3*d^2+13*a^2*b*d^2+31*a*b^2*d^2-29*b^3*d^2+44*a^2*c*d^2-20*a*b*c*d^2+27*b^2*c*d^2+17*a*c^2*d^2-7*b*c^2*d^2-18*c^3*d^2-44*a^2*d^3-35*a*b*d^3-11*b^2*d^3-28*a*c*d^3+b*c*d^3+22*c^2*d^3-13*a*d^4-32*b*d^4-33*c*d^4-48*d^5-16*a^4*e+7*a^3*b*e-40*a^2*b^2*e-47*a*b^3*e+20*b^4*e-41*a^3*c*e+50*a^2*b*c*e-35*a*b^2*c*e+44*b^3*c*e-43*a^2*c^2*e+15*a*b*c^2*e-33*b^2*c^2*e-38*a*c^3*e-16*b*c^3*e+11*c^4*e+46*a^3*d*e+32*a^2*b*d*e+3*a*b^2*d*e+39*b^3*d*e-32*a^2*c*d*e-19*a*b*c*d*e+23*b^2*c*d*e-2*a*c^2*d*e-44*b*c^2*d*e-44*c^3*d*e+18*a^2*d^2*e+31*a*b*d^2*e+16*b^2*d^2*e+a*c*d^2*e+45*b*c*d^2*e-18*c^2*d^2*e+22*a*d^3*e+16*b*d^3*e+2*c*d^3*e+48*d^4*e-32*a^3*e^2+49*a^2*b*e^2-3*a*b^2*e^2+30*b^3*e^2+31*a^2*c*e^2+28*a*b*c*e^2-4*b^2*c*e^2+7*a*c^2*e^2+48*b*c^2*e^2+40*c^3*e^2-a^2*d*e^2+19*a*b*d*e^2+40*b^2*d*e^2-3*a*c*d*e^2+9*b*c*d*e^2+21*c^2*d*e^2+28*a*d^2*e^2+49*b*d^2*e^2+19*c*d^2*e^2+41*d^3*e^2-30*a^2*e^3-30*a*b*e^3+5*b^2*e^3-2*a*c*e^3+17*b*c*e^3-16*c^2*e^3+42*b*d*e^3-22*c*d*e^3+34*d^2*e^3+20*a*e^4+42*b*e^4+8*c*e^4+36*d*e^4-25*e^5,3104 a*b*c^3-48*a^2*c^2*d-19*a*b*c^2*d+46*b^2*c^2*d-49*a*c^3*d-43*b*c^3*d+c^4*d-12*a^3*d^2+28*a^2*b*d^2+11*a*b^2*d^2+13*b^3*d^2+36*a^2*c*d^2+20*a*b*c*d^2+8*b^2*c*d^2-5*a*c^2*d^2+44*b*c^2*d^2-50*c^3*d^2+34*a^2*d^3+a*b*d^3-25*b^2*d^3+5*a*c*d^3-47*b*c*d^3-4*c^2*d^3-33*a*d^4-29*b*d^4+34*c*d^4+d^5-15*a^4*e+50*a^3*b*e+14*a^2*b^2*e+15*a*b^3*e+34*b^4*e+9*a^3*c*e+38*a^2*b*c*e+12*a*b^2*c*e+21*b^3*c*e+18*a^2*c^2*e+37*a*b*c^2*e-16*b^2*c^2*e+13*a*c^3*e+47*b*c^3*e-41*c^4*e-29*a^3*d*e-45*a^2*b*d*e+3*a*b^2*d*e+44*b^3*d*e-31*a^2*c*d*e-8*a*b*c*d*e-5*b^2*c*d*e-22*a*c^2*d*e-6*b*c^2*d*e+3*c^3*d*e-43*a^2*d^2*e-45*a*b*d^2*e-24*b^2*d^2*e+15*a*c*d^2*e+15*b*c*d^2*e+7*c^2*d^2*e-17*a*d^3*e-8*b*d^3*e-31*c*d^3*e+19*d^4*e-41*a^3*e^2-25*a^2*b*e^2-11*a*b^2*e^2-4*b^3*e^2-25*a^2*c*e^2-32*a*b*c*e^2-42*b^2*c*e^2-46*a*c^2*e^2-41*b*c^2*e^2-36*c^3*e^2+40*a^2*d*e^2-43*a*b*d*e^2+35*b^2*d*e^2+2*a*c*d*e^2-28*b*c*d*e^2-43*c^2*d*e^2+21*a*d^2*e^2+8*b*d^2*e^2-42*c*d^2*e^2+50*d^3*e^2+48*a^2*e^3-25*a*b*e^3+22*b^2*e^3-3*a*c*e^3-42*b*c*e^3+22*c^2*e^3-5*a*d*e^3-35*b*d*e^3+36*c*d*e^3-34*d^2*e^3+14*a*e^4+34*b*e^4+23*c*e^4-35*d*e^4+46*e^5,3105 a^2*c^3-17*a^2*c^2*d-7*a*b*c^2*d+15*b^2*c^2*d+35*a*c^3*d-36*b*c^3*d-19*c^4*d+20*a^3*d^2-39*a^2*b*d^2-3*a*b^2*d^2-2*b^3*d^2+8*a^2*c*d^2+13*a*b*c*d^2-20*b^2*c*d^2+6*a*c^2*d^2-48*b*c^2*d^2-21*c^3*d^2+46*a^2*d^3+39*a*b*d^3+32*b^2*d^3-2*a*c*d^3+47*b*c*d^3+16*c^2*d^3+20*a*d^4-36*b*d^4-12*c*d^4+28*d^5+24*a^4*e+17*a^3*b*e-21*a^2*b^2*e+31*a*b^3*e+24*b^4*e-45*a^3*c*e+34*a^2*b*c*e+3*a*b^2*c*e+34*b^3*c*e+39*a^2*c^2*e+12*a*b*c^2*e+18*b^2*c^2*e+19*a*c^3*e-13*b*c^3*e+7*c^4*e+16*a^3*d*e-4*a^2*b*d*e+35*a*b^2*d*e+20*b^3*d*e+38*a^2*c*d*e-41*a*b*c*d*e+49*b^2*c*d*e+7*a*c^2*d*e+39*b*c^2*d*e+15*c^3*d*e+32*a^2*d^2*e+35*a*b*d^2*e-36*b^2*d^2*e+11*a*c*d^2*e+11*b*c*d^2*e-26*c^2*d^2*e+2*a*d^3*e-30*b*d^3*e-2*c*d^3*e+5*d^4*e-2*a^3*e^2-45*a^2*b*e^2-10*a*b^2*e^2-42*b^3*e^2+13*a^2*c*e^2+38*a*b*c*e^2+22*b^2*c*e^2+42*a*c^2*e^2+16*b*c^2*e^2+40*c^3*e^2-19*a^2*d*e^2-35*a*b*d*e^2-24*b^2*d*e^2+33*a*c*d*e^2-48*b*c*d*e^2-6*a*d^2*e^2+2*b*d^2*e^2-31*c*d^2*e^2-5*d^3*e^2+45*a^2*e^3+17*a*b*e^3+50*b^2*e^3-18*a*c*e^3+3*b*c*e^3+32*c^2*e^3+34*a*d*e^3-39*b*d*e^3-35*c*d*e^3+22*d^2*e^3-40*a*e^4+43*b*e^4+48*c*e^4-42*d*e^4+8*e^5,3106 b^3*c^2+2*a^2*c^2*d-42*a*b*c^2*d-42*b^2*c^2*d+22*a*c^3*d-28*b*c^3*d-24*c^4*d-24*a^3*d^2+40*a^2*b*d^2-7*a*b^2*d^2+31*b^3*d^2+13*a^2*c*d^2+33*a*b*c*d^2+6*b^2*c*d^2+40*a*c^2*d^2+37*b*c^2*d^2+40*c^3*d^2-12*a^2*d^3+26*a*b*d^3+23*b^2*d^3+44*a*c*d^3+13*b*c*d^3-24*c^2*d^3+31*a*d^4+44*b*d^4+32*c*d^4+48*d^5+42*a^4*e+2*a^3*b*e-25*a^2*b^2*e-27*a*b^3*e-21*b^4*e+44*a^3*c*e+50*a^2*b*c*e+42*a*b^2*c*e+28*b^3*c*e+28*a^2*c^2*e+20*a*b*c^2*e+11*b^2*c^2*e-25*a*c^3*e+35*b*c^3*e+11*c^4*e+13*a^3*d*e+13*a^2*b*d*e-33*a*b^2*d*e+26*b^3*d*e+10*a^2*c*d*e-47*a*b*c*d*e+44*b^2*c*d*e-50*a*c^2*d*e+6*b*c^2*d*e+38*c^3*d*e-43*a^2*d^2*e-43*a*b*d^2*e+50*b^2*d^2*e-36*a*c*d^2*e+39*b*c*d^2*e+4*c^2*d^2*e+26*a*d^3*e+6*b*d^3*e-30*c*d^3*e-21*d^4*e+16*a^3*e^2-19*a^2*b*e^2+43*a*b^2*e^2-b^3*e^2-9*a^2*c*e^2-3*a*b*c*e^2-44*b^2*c*e^2-34*a*c^2*e^2-24*b*c^2*e^2+15*c^3*e^2+47*a^2*d*e^2-45*a*b*d*e^2-22*b^2*d*e^2-21*a*c*d*e^2+36*b*c*d*e^2+c^2*d*e^2-13*a*d^2*e^2+47*b*d^2*e^2-12*c*d^2*e^2+16*d^3*e^2-30*a^2*e^3-49*a*b*e^3+40*b^2*e^3+46*a*c*e^3-25*b*c*e^3-38*c^2*e^3-30*a*d*e^3-27*b*d*e^3+47*c*d*e^3+37*d^2*e^3+49*a*e^4+6*b*e^4-6*c*e^4+43*d*e^4+5*e^5,3107 a*b^2*c^2-9*a^2*c^2*d+49*a*b*c^2*d+17*b^2*c^2*d-45*a*c^3*d+27*b*c^3*d-8*c^4*d-25*a^3*d^2-23*a^2*b*d^2+47*a*b^2*d^2+8*b^3*d^2+20*a^2*c*d^2+37*a*b*c*d^2+28*b^2*c*d^2+8*a*c^2*d^2+36*b*c^2*d^2+34*c^3*d^2+37*a^2*d^3+23*a*b*d^3+11*b^2*d^3-46*a*c*d^3+45*b*c*d^3-16*c^2*d^3-27*a*d^4-39*b*d^4+31*c*d^4-24*d^5+42*a^4*e-30*a^3*b*e+12*a^2*b^2*e-18*a*b^3*e+8*b^4*e-33*a^3*c*e+21*a^2*b*c*e-9*a*b^2*c*e+10*b^3*c*e+11*a^2*c^2*e-33*a*b*c^2*e-27*b^2*c^2*e+47*a*c^3*e-35*b*c^3*e+15*c^4*e-19*a^3*d*e+20*a^2*b*d*e+41*a*b^2*d*e+39*b^3*d*e+24*a^2*c*d*e-12*a*b*c*d*e-16*b^2*c*d*e+38*a*c^2*d*e-43*b*c^2*d*e+39*c^3*d*e-14*a^2*d^2*e+39*a*b*d^2*e+24*b^2*d^2*e-35*a*c*d^2*e-8*b*c*d^2*e-26*c^2*d^2*e-5*a*d^3*e+34*b*d^3*e+16*c*d^3*e+35*d^4*e-a^3*e^2+44*a^2*b*e^2+33*a*b^2*e^2+41*b^3*e^2+26*a^2*c*e^2-6*a*b*c*e^2-15*b^2*c*e^2-46*a*c^2*e^2-37*b*c^2*e^2-49*c^3*e^2-6*a^2*d*e^2+20*a*b*d*e^2-7*b^2*d*e^2+16*a*c*d*e^2+49*b*c*d*e^2-23*c^2*d*e^2+37*a*d^2*e^2+31*b*d^2*e^2+17*c*d^2*e^2-39*d^3*e^2-46*a^2*e^3-17*a*b*e^3+46*b^2*e^3-31*a*c*e^3+39*b*c*e^3-13*c^2*e^3+40*a*d*e^3+18*b*d*e^3+3*c*d*e^3-6*d^2*e^3-35*a*e^4+22*b*e^4-47*c*e^4-4*d*e^4+35*e^5,3108 a^2*b*c^2+25*a^2*c^2*d-27*a*b*c^2*d+43*b^2*c^2*d+3*a*c^3*d+35*b*c^3*d+39*c^4*d+12*a^3*d^2-39*a^2*b*d^2-38*a*b^2*d^2+8*b^3*d^2+14*a^2*c*d^2+42*a*b*c*d^2-16*b^2*c*d^2+32*a*c^2*d^2-26*b*c^2*d^2+31*c^3*d^2-34*a^2*d^3-4*a*b*d^3+40*b^2*d^3+34*a*c*d^3-31*b*c*d^3+11*c^2*d^3+9*a*d^4+27*b*d^4+19*c*d^4-44*d^5-45*a^4*e+43*a^3*b*e-36*a^2*b^2*e+23*a*b^3*e-14*b^4*e-2*a^3*c*e+20*a^2*b*c*e-34*a*b^2*c*e+26*b^3*c*e+2*a^2*c^2*e-32*a*b*c^2*e+35*b^2*c^2*e-44*a*c^3*e-47*b*c^3*e-6*c^4*e+4*a^3*d*e+34*a^2*b*d*e-38*a*b^2*d*e-21*b^3*d*e+45*a^2*c*d*e-25*a*b*c*d*e+30*b^2*c*d*e+43*a*c^2*d*e-2*b*c^2*d*e+17*c^3*d*e+30*a^2*d^2*e+48*a*b*d^2*e+5*b^2*d^2*e+31*a*c*d^2*e+46*b*c*d^2*e+42*c^2*d^2*e-39*a*d^3*e-30*b*d^3*e+34*c*d^3*e+37*d^4*e+45*a^3*e^2-37*a^2*b*e^2+16*a*b^2*e^2-12*b^3*e^2+21*a^2*c*e^2-36*a*b*c*e^2+45*b^2*c*e^2-39*a*c^2*e^2+8*c^3*e^2-47*a^2*d*e^2+38*a*b*d*e^2+48*b^2*d*e^2-30*a*c*d*e^2-40*b*c*d*e^2+34*c^2*d*e^2+42*a*d^2*e^2-38*b*d^2*e^2+24*c*d^2*e^2+37*d^3*e^2-26*a^2*e^3-50*a*b*e^3+10*b^2*e^3-29*a*c*e^3-48*b*c*e^3+8*c^2*e^3+26*a*d*e^3-26*b*d*e^3-44*c*d*e^3+30*d^2*e^3-31*a*e^4-21*b*e^4-44*c*e^4-17*d*e^4+26*e^5,3109 a^3*c^2+32*a^2*c^2*d+18*a*b*c^2*d+26*b^2*c^2*d-34*a*c^3*d+29*b*c^3*d+6*c^4*d-46*a^3*d^2-37*a^2*b*d^2-9*a*b^2*d^2+13*b^3*d^2-46*a^2*c*d^2-25*a*b*c*d^2-19*b^2*c*d^2-36*a*c^2*d^2-28*b*c^2*d^2+c^3*d^2-16*a^2*d^3-32*a*b*d^3-39*b^2*d^3-a*c*d^3-44*b*c*d^3-24*c^2*d^3+44*a*d^4-18*b*d^4-11*c*d^4+31*d^5-37*a^4*e+50*a^3*b*e-3*a^2*b^2*e+40*a*b^3*e-19*b^4*e+31*a^3*c*e+49*a^2*b*c*e+14*a*b^2*c*e+22*b^3*c*e-27*a^2*c^2*e-46*a*b*c^2*e+31*b^2*c^2*e+22*a*c^3*e+27*b*c^3*e+25*c^4*e+10*a^3*d*e-21*a^2*b*d*e-13*a*b^2*d*e-46*b^3*d*e-34*a^2*c*d*e+24*a*b*c*d*e-38*b^2*c*d*e-14*a*c^2*d*e+50*b*c^2*d*e+28*c^3*d*e+44*a^2*d^2*e+23*a*b*d^2*e-38*b^2*d^2*e-4*a*c*d^2*e-34*b*c*d^2*e-21*c^2*d^2*e+9*a*d^3*e-14*b*d^3*e-19*c*d^3*e+14*d^4*e+31*a^3*e^2-33*a^2*b*e^2-39*a*b^2*e^2+9*b^3*e^2+7*a^2*c*e^2+13*a*b*c*e^2-12*b^2*c*e^2+24*a*c^2*e^2+18*b*c^2*e^2+19*c^3*e^2+24*a^2*d*e^2-24*a*b*d*e^2-47*b^2*d*e^2-46*a*c*d*e^2+31*b*c*d*e^2+31*c^2*d*e^2-9*a*d^2*e^2+6*b*d^2*e^2+46*c*d^2*e^2+23*d^3*e^2-37*a^2*e^3+14*a*b*e^3-40*b^2*e^3+14*a*c*e^3-46*b*c*e^3-42*c^2*e^3+32*a*d*e^3+5*b*d*e^3-4*c*d*e^3-16*d^2*e^3-4*a*e^4+36*b*e^4+38*c*e^4+30*d*e^4-18*e^5,3110 b^4*c+25*a^2*c^2*d+37*a*b*c^2*d+12*b^2*c^2*d-31*b*c^3*d+40*c^4*d-49*a^3*d^2+8*a^2*b*d^2+36*a*b^2*d^2+48*b^3*d^2-15*a^2*c*d^2+20*a*b*c*d^2-13*b^2*c*d^2-2*a*c^2*d^2+11*b*c^2*d^2+46*c^3*d^2+49*a^2*d^3-3*a*b*d^3-31*b^2*d^3-11*a*c*d^3+4*b*c*d^3+7*c^2*d^3-27*b*d^4+c*d^4+43*d^5+41*a^4*e-28*a^3*b*e+37*a^2*b^2*e-18*a*b^3*e+20*b^4*e-3*a^3*c*e+42*a^2*b*c*e-26*a*b^2*c*e-36*b^3*c*e-32*a^2*c^2*e+33*a*b*c^2*e-18*b^2*c^2*e-45*a*c^3*e+22*b*c^3*e+22*c^4*e+28*a^3*d*e-17*a^2*b*d*e-37*a*b^2*d*e-11*b^3*d*e+44*a^2*c*d*e-21*a*b*c*d*e+27*b^2*c*d*e-16*a*c^2*d*e+45*b*c^2*d*e+37*c^3*d*e+13*a^2*d^2*e-24*a*b*d^2*e+46*b^2*d^2*e-18*a*c*d^2*e-24*b*c*d^2*e+10*c^2*d^2*e-22*a*d^3*e-19*b*d^3*e+26*c*d^3*e+24*d^4*e+50*a^3*e^2-21*a^2*b*e^2-31*a*b^2*e^2+12*b^3*e^2+18*a^2*c*e^2-9*a*b*c*e^2-3*b^2*c*e^2+49*a*c^2*e^2-22*b*c^2*e^2-7*c^3*e^2+34*a^2*d*e^2+14*a*b*d*e^2-10*b^2*d*e^2-21*a*c*d*e^2-49*b*c*d*e^2-32*c^2*d*e^2-31*a*d^2*e^2-37*b*d^2*e^2+17*c*d^2*e^2-2*d^3*e^2+23*a^2*e^3+38*a*b*e^3+16*b^2*e^3+7*a*c*e^3-6*b*c*e^3+7*c^2*e^3-35*a*d*e^3+46*b*d*e^3-2*c*d*e^3-47*d^2*e^3+15*a*e^4-22*b*e^4+25*c*e^4+12*d*e^4+36*e^5,3111 a*b^3*c+7*a^2*c^2*d-37*a*b*c^2*d-27*b^2*c^2*d-a*c^3*d-28*b*c^3*d+32*c^4*d-17*a^3*d^2+30*a^2*b*d^2+7*a*b^2*d^2-32*b^3*d^2-10*a^2*c*d^2+38*a*b*c*d^2-15*b^2*c*d^2+a*c^2*d^2-37*b*c^2*d^2-9*c^3*d^2-13*a^2*d^3+27*a*b*d^3-11*b^2*d^3+6*a*c*d^3+b*c*d^3-9*c^2*d^3+44*a*d^4+3*b*d^4-36*c*d^4+41*d^5-3*a^4*e+10*a^3*b*e-8*a*b^3*e-3*b^4*e-3*a^3*c*e+34*a^2*b*c*e+3*a*b^2*c*e+15*b^3*c*e-22*a^2*c^2*e-33*a*b*c^2*e-4*b^2*c^2*e+48*a*c^3*e+7*b*c^3*e-29*c^4*e+38*a^3*d*e+14*a^2*b*d*e-26*a*b^2*d*e+48*b^3*d*e-3*a^2*c*d*e-45*a*b*c*d*e+26*b^2*c*d*e+46*a*c^2*d*e+26*b*c^2*d*e+15*c^3*d*e+29*a^2*d^2*e+42*a*b*d^2*e+11*b^2*d^2*e+26*a*c*d^2*e+44*b*c*d^2*e-18*c^2*d^2*e-19*a*d^3*e+47*b*d^3*e+c*d^3*e+50*d^4*e+8*a^3*e^2-19*a^2*b*e^2+49*a*b^2*e^2+17*b^3*e^2-27*a^2*c*e^2+30*a*b*c*e^2+10*b^2*c*e^2+21*a*c^2*e^2+11*b*c^2*e^2+38*c^3*e^2+36*a^2*d*e^2-28*a*b*d*e^2+22*b^2*d*e^2-45*a*c*d*e^2-45*b*c*d*e^2+43*c^2*d*e^2-21*a*d^2*e^2+5*b*d^2*e^2-41*c*d^2*e^2+36*d^3*e^2-25*a^2*e^3-22*a*b*e^3-6*b^2*e^3+31*a*c*e^3+19*b*c*e^3-35*c^2*e^3+44*a*d*e^3+40*b*d*e^3-14*c*d*e^3+6*d^2*e^3+2*a*e^4-26*b*e^4+43*c*e^4+39*d*e^4+7*e^5,3112 a^2*b^2*c-22*a^2*c^2*d+2*a*b*c^2*d-39*b^2*c^2*d-32*a*c^3*d-39*b*c^3*d+32*c^4*d+47*a^3*d^2-9*a^2*b*d^2+36*a*b^2*d^2-22*b^3*d^2+a^2*c*d^2+7*a*b*c*d^2+21*b^2*c*d^2+35*a*c^2*d^2+31*b*c^2*d^2+38*c^3*d^2+4*a^2*d^3+50*a*b*d^3-10*b^2*d^3-7*a*c*d^3-8*b*c*d^3-23*c^2*d^3+18*a*d^4+13*b*d^4+5*c*d^4-6*d^5-41*a^4*e+50*a^3*b*e+3*a^2*b^2*e+20*a*b^3*e-26*b^4*e-22*a^3*c*e+9*a^2*b*c*e+5*a*b^2*c*e+38*b^3*c*e-16*a^2*c^2*e-35*a*b*c^2*e-17*b^2*c^2*e-4*a*c^3*e-32*b*c^3*e-19*c^4*e-21*a^3*d*e+23*a^2*b*d*e+37*a*b^2*d*e+48*b^3*d*e-2*a^2*c*d*e-48*a*b*c*d*e-44*b^2*c*d*e+4*a*c^2*d*e+9*b*c^2*d*e-33*c^3*d*e+30*a^2*d^2*e+25*a*b*d^2*e+34*b^2*d^2*e-39*a*c*d^2*e+27*b*c*d^2*e+25*c^2*d^2*e+3*a*d^3*e-50*b*d^3*e-49*c*d^3*e-9*d^4*e-39*a^3*e^2+10*a^2*b*e^2-33*a*b^2*e^2+36*b^3*e^2+20*a^2*c*e^2+43*a*b*c*e^2+7*b^2*c*e^2+36*a*c^2*e^2-39*b*c^2*e^2-33*c^3*e^2+14*a^2*d*e^2-46*a*b*d*e^2+8*b^2*d*e^2+23*a*c*d*e^2+30*b*c*d*e^2-8*c^2*d*e^2+28*a*d^2*e^2-5*b*d^2*e^2+25*c*d^2*e^2+17*d^3*e^2+28*a^2*e^3-38*a*b*e^3-46*b^2*e^3-27*a*c*e^3-5*b*c*e^3-20*c^2*e^3+2*a*d*e^3-4*b*d*e^3+15*c*d*e^3-36*d^2*e^3+41*a*e^4+6*b*e^4+20*c*e^4+8*d*e^4-2*e^5,3113 a^3*b*c+40*a^2*c^2*d-47*a*b*c^2*d-27*b^2*c^2*d+41*a*c^3*d-39*b*c^3*d-32*c^4*d+5*a^3*d^2-5*a^2*b*d^2-34*a*b^2*d^2-35*b^3*d^2+29*a^2*c*d^2+4*a*b*c*d^2-6*b^2*c*d^2+25*a*c^2*d^2+6*b*c^2*d^2-44*c^3*d^2-38*a^2*d^3-31*a*b*d^3+37*b^2*d^3-49*a*c*d^3-17*b*c*d^3+9*c^2*d^3+25*a*d^4+4*b*d^4-25*c*d^4-49*d^5-15*a^4*e-11*a^3*b*e+7*a^2*b^2*e+37*a*b^3*e-21*b^4*e+18*a^3*c*e+46*a^2*b*c*e+6*a*b^2*c*e+43*b^3*c*e-5*a^2*c^2*e+49*a*b*c^2*e+44*b^2*c^2*e-18*a*c^3*e+30*b*c^3*e+30*c^4*e+37*a^3*d*e-47*a^2*b*d*e+23*a*b^2*d*e-26*b^3*d*e-12*a^2*c*d*e+49*a*b*c*d*e+37*b^2*c*d*e+3*a*c^2*d*e-15*b*c^2*d*e+c^3*d*e-13*a^2*d^2*e+32*a*b*d^2*e-29*b^2*d^2*e-11*a*c*d^2*e-28*b*c*d^2*e+21*c^2*d^2*e-10*a*d^3*e-20*b*d^3*e-2*c*d^3*e-25*d^4*e-18*a^3*e^2-10*a^2*b*e^2-26*a*b^2*e^2+15*b^3*e^2-6*a^2*c*e^2+48*a*b*c*e^2-36*b^2*c*e^2-18*a*c^2*e^2+8*b*c^2*e^2+36*c^3*e^2+2*a^2*d*e^2+48*a*b*d*e^2-32*b^2*d*e^2+47*a*c*d*e^2+b*c*d*e^2-35*c^2*d*e^2+16*a*d^2*e^2-26*b*d^2*e^2+40*c*d^2*e^2+50*d^3*e^2+16*a^2*e^3+32*a*b*e^3-22*b^2*e^3-43*a*c*e^3+4*b*c*e^3-26*c^2*e^3-29*a*d*e^3+7*b*d*e^3+20*c*d*e^3+8*d^2*e^3-9*a*e^4-7*b*e^4+3*c*e^4+49*d*e^4-48*e^5,3114 a^4*c-40*a^2*c^2*d+21*a*b*c^2*d+43*b^2*c^2*d+31*a*c^3*d-4*b*c^3*d+49*c^4*d+24*a^3*d^2-14*a^2*b*d^2+3*a*b^2*d^2-6*b^3*d^2+27*a^2*c*d^2+24*a*b*c*d^2-47*b^2*c*d^2-16*a*c^2*d^2+21*b*c^2*d^2-33*c^3*d^2+39*a^2*d^3-34*a*b*d^3-7*b^2*d^3+3*a*c*d^3+30*b*c*d^3-10*c^2*d^3+17*a*d^4+28*b*d^4+16*c*d^4-19*d^5+16*a^4*e-14*a^3*b*e+19*a^2*b^2*e-12*a*b^3*e-41*b^4*e-28*a^3*c*e+13*a^2*b*c*e+35*a*b^2*c*e-35*b^3*c*e+37*a^2*c^2*e-7*a*b*c^2*e+33*b^2*c^2*e-30*a*c^3*e+36*b*c^3*e-26*c^4*e-27*a^3*d*e+28*a^2*b*d*e+2*a*b^2*d*e+22*b^3*d*e-9*a^2*c*d*e+39*a*b*c*d*e-11*b^2*c*d*e+48*a*c^2*d*e+b*c^2*d*e-25*c^3*d*e-28*a^2*d^2*e-38*a*b*d^2*e-13*b^2*d^2*e-12*a*c*d^2*e-35*b*c*d^2*e-45*c^2*d^2*e-27*a*d^3*e-31*b*d^3*e+20*c*d^3*e+40*d^4*e+11*a^3*e^2-33*a^2*b*e^2-3*a*b^2*e^2+32*b^3*e^2+10*a^2*c*e^2+48*a*b*c*e^2-50*b^2*c*e^2+2*a*c^2*e^2-46*b*c^2*e^2+15*c^3*e^2-15*a^2*d*e^2+29*a*b*d*e^2+4*b^2*d*e^2-16*a*c*d*e^2+34*b*c*d*e^2-21*c^2*d*e^2+44*a*d^2*e^2-35*b*d^2*e^2+4*c*d^2*e^2-16*d^3*e^2-14*a^2*e^3+39*a*b*e^3+44*b^2*e^3-22*a*c*e^3-16*b*c*e^3+38*c^2*e^3-a*d*e^3+14*b*d*e^3-44*c*d*e^3-31*d^2*e^3+4*a*e^4+33*c*e^4-5*d*e^4+46*e^5,3115 b^5-5*a^2*c^2*d-23*a*b*c^2*d+3*b^2*c^2*d-30*a*c^3*d-48*b*c^3*d-40*c^4*d-21*a^3*d^2-13*a^2*b*d^2+36*a*b^2*d^2-35*b^3*d^2-9*a^2*c*d^2+32*a*b*c*d^2-19*b^2*c*d^2+3*a*c^2*d^2-2*b*c^2*d^2+22*c^3*d^2-37*a^2*d^3+46*a*b*d^3-38*b^2*d^3-33*a*c*d^3-7*b*c*d^3+3*c^2*d^3-33*a*d^4+b*d^4+22*c*d^4+50*d^5-33*a^4*e+18*a^3*b*e+11*a^2*b^2*e-19*a*b^3*e+49*b^4*e+3*a^3*c*e-10*a^2*b*c*e-29*a*b^2*c*e-17*b^3*c*e-15*a^2*c^2*e+30*a*b*c^2*e+39*b^2*c^2*e+7*a*c^3*e-46*b*c^3*e+29*c^4*e-17*a^3*d*e+26*a^2*b*d*e+27*a*b^2*d*e-27*b^3*d*e-27*a^2*c*d*e-7*a*b*c*d*e-36*b^2*c*d*e+18*a*c^2*d*e-34*b*c^2*d*e+31*c^3*d*e+22*a^2*d^2*e-2*a*b*d^2*e+39*b^2*d^2*e+40*a*c*d^2*e+49*b*c*d^2*e-41*c^2*d^2*e-46*a*d^3*e-33*b*d^3*e-40*c*d^3*e+16*d^4*e-37*a^3*e^2-14*a^2*b*e^2-49*a*b^2*e^2+39*b^3*e^2-20*a^2*c*e^2-39*a*b*c*e^2+20*b^2*c*e^2+10*a*c^2*e^2+29*b*c^2*e^2+20*c^3*e^2-19*a^2*d*e^2+37*a*b*d*e^2+20*b^2*d*e^2+26*a*c*d*e^2-8*b*c*d*e^2+14*c^2*d*e^2+24*a*d^2*e^2-14*b*d^2*e^2-33*c*d^2*e^2-18*d^3*e^2-2*a^2*e^3-32*a*b*e^3-37*b^2*e^3+45*a*c*e^3-33*b*c*e^3+28*c^2*e^3-19*a*d*e^3-43*b*d*e^3-10*c*d*e^3+30*d^2*e^3+44*a*e^4+40*b*e^4-20*c*e^4-40*d*e^4-2*e^5,3116 a*b^4-14*a^2*c^2*d+14*b^2*c^2*d+36*a*c^3*d+7*b*c^3*d-14*c^4*d-11*a^3*d^2+40*a^2*b*d^2-29*a*b^2*d^2-45*b^3*d^2+23*a^2*c*d^2+8*a*b*c*d^2+28*b^2*c*d^2+42*a*c^2*d^2+14*b*c^2*d^2+42*c^3*d^2-36*a^2*d^3-4*a*b*d^3+6*a*c*d^3-18*b*c*d^3+40*c^2*d^3-47*a*d^4-19*b*d^4-16*c*d^4+31*d^5-15*a^4*e+46*a^3*b*e+13*a^2*b^2*e-18*a*b^3*e+9*b^4*e+50*a^3*c*e-10*a^2*b*c*e-12*a*b^2*c*e+44*b^3*c*e+7*a^2*c^2*e+39*a*b*c^2*e-36*b^2*c^2*e+29*a*c^3*e-37*b*c^3*e-28*c^4*e-43*a^3*d*e+50*a^2*b*d*e-16*a*b^2*d*e+17*b^3*d*e+23*a^2*c*d*e-14*a*b*c*d*e+10*b^2*c*d*e+18*a*c^2*d*e+40*b*c^2*d*e-30*c^3*d*e+44*a^2*d^2*e+26*a*b*d^2*e+17*b^2*d^2*e+9*a*c*d^2*e+37*b*c*d^2*e-38*c^2*d^2*e+46*a*d^3*e+15*b*d^3*e+33*c*d^3*e+20*d^4*e+4*a^3*e^2-43*a^2*b*e^2-14*a*b^2*e^2-29*b^3*e^2+44*a^2*c*e^2-37*a*b*c*e^2-2*b^2*c*e^2+39*a*c^2*e^2-36*b*c^2*e^2+45*c^3*e^2-34*a^2*d*e^2-48*a*b*d*e^2-25*b^2*d*e^2+48*a*c*d*e^2+5*b*c*d*e^2-16*c^2*d*e^2+20*a*d^2*e^2+8*b*d^2*e^2-48*c*d^2*e^2+27*d^3*e^2-39*a^2*e^3-23*a*b*e^3-45*b^2*e^3-34*a*c*e^3-50*b*c*e^3-42*c^2*e^3+50*a*d*e^3+26*b*d*e^3+48*c*d*e^3-37*d^2*e^3-20*a*e^4-19*b*e^4+23*c*e^4+23*d*e^4+12*e^5,3117 a^2*b^3-25*a^2*c^2*d+26*a*b*c^2*d+32*b^2*c^2*d-48*a*c^3*d-7*b*c^3*d-44*c^4*d+14*a^3*d^2+19*a^2*b*d^2-7*a*b^2*d^2-15*b^3*d^2+50*a^2*c*d^2-11*a*b*c*d^2-13*b^2*c*d^2-33*a*c^2*d^2-46*b*c^2*d^2+12*c^3*d^2-26*a^2*d^3-11*a*b*d^3+22*b^2*d^3+24*a*c*d^3-12*b*c*d^3-22*c^2*d^3+40*a*d^4-23*b*d^4-48*c*d^4-20*d^5+17*a^4*e-41*a^3*b*e-a^2*b^2*e-12*a*b^3*e-9*b^4*e-30*a^3*c*e+50*a^2*b*c*e+31*a*b^2*c*e+5*b^3*c*e+33*a^2*c^2*e+15*a*b*c^2*e-50*b^2*c^2*e+24*a*c^3*e-b*c^3*e-6*c^4*e-31*a^3*d*e-26*a^2*b*d*e+49*a*b^2*d*e-13*b^3*d*e+43*a^2*c*d*e-10*a*b*c*d*e+35*b^2*c*d*e+36*a*c^2*d*e-22*b*c^2*d*e+40*c^3*d*e-7*a^2*d^2*e+28*a*b*d^2*e-b^2*d^2*e+17*a*c*d^2*e+13*b*c*d^2*e+26*c^2*d^2*e+32*a*d^3*e+3*b*d^3*e+12*c*d^3*e+40*d^4*e-40*a^3*e^2+12*a^2*b*e^2+27*a*b^2*e^2-24*b^3*e^2+13*a^2*c*e^2-19*a*b*c*e^2-27*b^2*c*e^2-28*a*c^2*e^2+50*b*c^2*e^2-48*c^3*e^2-14*a^2*d*e^2+26*a*b*d*e^2+35*b^2*d*e^2-43*a*c*d*e^2+42*b*c*d*e^2+9*c^2*d*e^2-10*a*d^2*e^2+21*c*d^2*e^2-5*d^3*e^2-30*a^2*e^3+38*a*b*e^3-25*b^2*e^3-28*a*c*e^3+23*b*c*e^3+38*c^2*e^3-30*a*d*e^3-16*b*d*e^3-35*c*d*e^3+2*d^2*e^3+33*a*e^4+12*b*e^4-25*c*e^4+26*d*e^4-40*e^5,3118 a^3*b^2-40*a^2*c^2*d+50*a*b*c^2*d+25*b^2*c^2*d+46*a*c^3*d-45*b*c^3*d-6*c^4*d-24*a^3*d^2-9*a^2*b*d^2-15*a*b^2*d^2+5*b^3*d^2+36*a^2*c*d^2-19*a*b*c*d^2+19*b^2*c*d^2+17*a*c^2*d^2+12*b*c^2*d^2-25*c^3*d^2-33*a^2*d^3-27*a*b*d^3+42*b^2*d^3-4*a*c*d^3+33*b*c*d^3+32*c^2*d^3+10*a*d^4+47*c*d^4-3*d^5-23*a^4*e-45*a^3*b*e+41*a^2*b^2*e+47*a*b^3*e+15*b^4*e-2*a^3*c*e+12*a^2*b*c*e+13*a*b^2*c*e-45*b^3*c*e-28*a^2*c^2*e-3*a*b*c^2*e-37*b^2*c^2*e+39*a*c^3*e+37*c^4*e-12*a^3*d*e-48*a^2*b*d*e-5*a*b^2*d*e+47*b^3*d*e-41*a^2*c*d*e-36*a*b*c*d*e-37*b^2*c*d*e-a*c^2*d*e-38*b*c^2*d*e+17*c^3*d*e-29*a^2*d^2*e-3*a*b*d^2*e-23*b^2*d^2*e-19*a*c*d^2*e+43*b*c*d^2*e-48*c^2*d^2*e-46*a*d^3*e+48*b*d^3*e+40*c*d^3*e-15*d^4*e-23*a^3*e^2-22*a^2*b*e^2-50*a*b^2*e^2-33*b^3*e^2+27*a^2*c*e^2-46*a*b*c*e^2+29*b^2*c*e^2-14*a*c^2*e^2+9*b*c^2*e^2-43*c^3*e^2-19*a^2*d*e^2-38*a*b*d*e^2+12*b^2*d*e^2+18*a*c*d*e^2+20*b*c*d*e^2+3*c^2*d*e^2-9*a*d^2*e^2-27*b*d^2*e^2-6*c*d^2*e^2+38*d^3*e^2+43*a^2*e^3+43*a*b*e^3+3*b^2*e^3+10*a*c*e^3+8*b*c*e^3+13*c^2*e^3+37*a*d*e^3+b*d*e^3-21*c*d*e^3+27*d^2*e^3+26*a*e^4-29*b*e^4-39*c*e^4+29*d*e^4+21*e^5,3119 a^4*b-45*a^2*c^2*d-6*a*b*c^2*d-42*b^2*c^2*d-4*a*c^3*d-49*b*c^3*d+14*c^4*d+35*a^3*d^2-3*a^2*b*d^2+23*a*b^2*d^2+21*b^3*d^2-24*a^2*c*d^2-14*a*b*c*d^2+20*b^2*c*d^2-20*a*c^2*d^2+41*b*c^2*d^2-34*c^3*d^2-13*a^2*d^3-48*a*b*d^3-13*b^2*d^3+38*a*c*d^3+21*b*c*d^3+40*c^2*d^3-28*a*d^4-34*b*d^4+38*c*d^4-24*d^5-48*a^4*e-2*a^3*b*e-35*a^2*b^2*e+2*a*b^3*e-25*b^4*e+47*a^3*c*e-14*a^2*b*c*e+25*a*b^2*c*e-12*b^3*c*e-11*a^2*c^2*e+22*a*b*c^2*e+15*b^2*c^2*e+17*a*c^3*e+47*b*c^3*e-43*c^4*e+28*a^3*d*e+9*a^2*b*d*e+6*a*b^2*d*e+30*a^2*c*d*e+31*a*b*c*d*e-2*b^2*c*d*e-6*a*c^2*d*e-45*b*c^2*d*e-24*c^3*d*e-39*a^2*d^2*e-7*a*b*d^2*e-11*b^2*d^2*e+8*a*c*d^2*e-47*b*c*d^2*e+c^2*d^2*e+30*a*d^3*e-30*b*d^3*e-38*c*d^3*e-14*d^4*e-25*a^3*e^2-14*a^2*b*e^2+24*a*b^2*e^2-37*b^3*e^2-14*a^2*c*e^2+40*a*b*c*e^2+27*b^2*c*e^2+22*a*c^2*e^2-38*b*c^2*e^2+43*c^3*e^2-44*a^2*d*e^2+28*a*b*d*e^2-4*b^2*d*e^2-26*a*c*d*e^2+18*b*c*d*e^2+24*c^2*d*e^2-35*a*d^2*e^2+6*b*d^2*e^2+5*c*d^2*e^2-38*d^3*e^2-37*a^2*e^3+34*a*b*e^3-27*b^2*e^3-4*a*c*e^3-3*b*c*e^3-16*c^2*e^3+22*a*d*e^3-4*b*d*e^3-41*c*d*e^3+25*d^2*e^3-38*a*e^4+49*b*e^4+c*e^4+14*d*e^4+47*e^5,3120 a^5-45*a^2*c^2*d-14*a*b*c^2*d-47*b^2*c^2*d-8*a*c^3*d+13*b*c^3*d+50*c^4*d-34*a^3*d^2-5*a^2*b*d^2+36*a*b^2*d^2+11*b^3*d^2+41*a^2*c*d^2-32*a*b*c*d^2+41*b^2*c*d^2-40*a*c^2*d^2+14*b*c^2*d^2+5*c^3*d^2+25*a^2*d^3+10*a*b*d^3-24*b^2*d^3-33*b*c*d^3-21*c^2*d^3+a*d^4+44*b*d^4-46*c*d^4-23*d^5-13*a^4*e+13*a^3*b*e-49*a*b^3*e+18*b^4*e+2*a^3*c*e+15*a^2*b*c*e-14*a*b^2*c*e-38*b^3*c*e+34*a^2*c^2*e+42*a*b*c^2*e-42*b^2*c^2*e-36*a*c^3*e+35*b*c^3*e-11*c^4*e+20*a^3*d*e+41*a*b^2*d*e+40*b^3*d*e-39*a^2*c*d*e-35*a*b*c*d*e-7*b^2*c*d*e-34*a*c^2*d*e-35*b*c^2*d*e+45*c^3*d*e+17*a^2*d^2*e+39*a*b*d^2*e+5*b^2*d^2*e-35*a*c*d^2*e-26*b*c*d^2*e-47*c^2*d^2*e+5*a*d^3*e-2*b*d^3*e+44*c*d^3*e+9*d^4*e-12*a^3*e^2+49*a^2*b*e^2-2*a*b^2*e^2-11*b^3*e^2-49*a^2*c*e^2-16*a*b*c*e^2-34*b^2*c*e^2+19*a*c^2*e^2-24*b*c^2*e^2-33*c^3*e^2-39*a^2*d*e^2+2*a*b*d*e^2+46*b^2*d*e^2-17*a*c*d*e^2+47*b*c*d*e^2+39*c^2*d*e^2+13*a*d^2*e^2+50*b*d^2*e^2-11*c*d^2*e^2+3*d^3*e^2+22*a^2*e^3-50*a*b*e^3+30*b^2*e^3-22*a*c*e^3-29*b*c*e^3-40*c^2*e^3+34*a*d*e^3+15*b*d*e^3-17*c*d*e^3+43*d^2*e^3+46*a*e^4-19*b*e^4-46*c*e^4-39*d*e^4-e^5,3121 e^6, d*e^5, c*e^5, b*e^5, a*e^5, d^2*e^4, c*d*e^4, b*d*e^4, a*d*e^4, c^2*e^4,3122 b*c*e^4, a*c*e^4, b^2*e^4, a*b*e^4, a^2*e^4, d^3*e^3, c*d^2*e^3, b*d^2*e^3,3123 a*d^2*e^3, c^2*d*e^3, b*c*d*e^3, a*c*d*e^3, b^2*d*e^3, a*b*d*e^3, a^2*d*e^3,3124 c^3*e^3, b*c^2*e^3, a*c^2*e^3, b^2*c*e^3, a*b*c*e^3, a^2*c*e^3, b^3*e^3,3125 a*b^2*e^3, a^2*b*e^3, a^3*e^3, d^4*e^2, c*d^3*e^2, b*d^3*e^2, a*d^3*e^2,3126 c^2*d^2*e^2, b*c*d^2*e^2, a*c*d^2*e^2, b^2*d^2*e^2, a*b*d^2*e^2, a^2*d^2*e^2,3127 c^3*d*e^2, b*c^2*d*e^2, a*c^2*d*e^2, b^2*c*d*e^2, a*b*c*d*e^2, a^2*c*d*e^2,3128 b^3*d*e^2, a*b^2*d*e^2, a^2*b*d*e^2, a^3*d*e^2, c^4*e^2, b*c^3*e^2, a*c^3*e^2,3129 b^2*c^2*e^2, a*b*c^2*e^2;3130 // M;3131 TestSSresAttribs(M);3132 // with tails:3133 // options: 1 1 0 : Time: 5/9/10 (35 without LCM)3134 // options: 1 1 1 : Time: 6/8/253135 3136 kill M;3137 3138 3139 3140 // too big?3141 // AGR101n4d008s020%13142 ideal M =3143 c^5*d-49*a^4*d^2-36*a^3*b*d^2-a^2*b^2*d^2-26*a*b^3*d^2+2*b^4*d^2+8*a^3*c*d^2-46*a^2*b*c*d^2-43*a*b^2*c*d^2-46*b^3*c*d^2-3*a^2*c^2*d^2-43*a*b*c^2*d^2+49*b^2*c^2*d^2-10*a*c^3*d^2+35*b*c^3*d^2+20*c^4*d^2-42*a^3*d^3+45*a^2*b*d^3+32*a*b^2*d^3-45*b^3*d^3-27*a^2*c*d^3+13*a*b*c*d^3+25*b^2*c*d^3+8*a*c^2*d^3+9*b*c^2*d^3+9*c^3*d^3+45*a^2*d^4+30*a*b*d^4+39*b^2*d^4-23*a*c*d^4+2*b*c*d^4-16*c^2*d^4+32*a*d^5-34*b*d^5+39*c*d^5+12*d^6-29*a^5*e-23*a^4*b*e-29*a^3*b^2*e-a^2*b^3*e-20*a*b^4*e+42*b^5*e+20*a^4*c*e-27*a^3*b*c*e-5*a^2*b^2*c*e-14*b^4*c*e-27*a^3*c^2*e-7*a^2*b*c^2*e-25*a*b^2*c^2*e+14*b^3*c^2*e+19*a^2*c^3*e+43*a*b*c^3*e-31*b^2*c^3*e+37*a*c^4*e-34*b*c^4*e+44*c^5*e+21*a^4*d*e+22*a^3*b*d*e+14*a^2*b^2*d*e-35*a*b^3*d*e-29*b^4*d*e-9*a^3*c*d*e-41*a^2*b*c*d*e+28*a*b^2*c*d*e+35*b^3*c*d*e+48*a^2*c^2*d*e+26*a*b*c^2*d*e-47*b^2*c^2*d*e+18*a*c^3*d*e+8*b*c^3*d*e-46*c^4*d*e+50*a^3*d^2*e-46*a^2*b*d^2*e-41*a*b^2*d^2*e-44*b^3*d^2*e+7*a^2*c*d^2*e-a*b*c*d^2*e+38*b^2*c*d^2*e+33*a*c^2*d^2*e-24*b*c^2*d^2*e-7*c^3*d^2*e+27*a^2*d^3*e+19*a*b*d^3*e-14*b^2*d^3*e+9*a*c*d^3*e+3*b*c*d^3*e+34*c^2*d^3*e-49*a*d^4*e-2*b*d^4*e+9*c*d^4*e+17*d^5*e+12*a^4*e^2-17*a^3*b*e^2+16*a^2*b^2*e^2+2*a*b^3*e^2+25*b^4*e^2+49*a^3*c*e^2+10*a^2*b*c*e^2-43*a*b^2*c*e^2+5*b^3*c*e^2+4*a^2*c^2*e^2-44*a*b*c^2*e^2-25*b^2*c^2*e^2+15*a*c^3*e^2-44*b*c^3*e^2-17*c^4*e^2+17*a^3*d*e^2+40*a^2*b*d*e^2+3*a*b^2*d*e^2-25*b^3*d*e^2-47*a^2*c*d*e^2-45*a*b*c*d*e^2+9*b^2*c*d*e^2-41*a*c^2*d*e^2-36*b*c^2*d*e^2-17*c^3*d*e^2-15*a^2*d^2*e^2+49*a*b*d^2*e^2+13*b^2*d^2*e^2-39*a*c*d^2*e^2+36*b*c*d^2*e^2-32*c^2*d^2*e^2+23*a*d^3*e^2+14*b*d^3*e^2+10*c*d^3*e^2-d^4*e^2+24*a^3*e^3+27*a^2*b*e^3+31*a*b^2*e^3-45*b^3*e^3-50*a^2*c*e^3-a*b*c*e^3+43*b^2*c*e^3+46*a*c^2*e^3-25*b*c^2*e^3+2*c^3*e^3+44*a^2*d*e^3+43*a*b*d*e^3-30*b^2*d*e^3-18*a*c*d*e^3+44*b*c*d*e^3-34*c^2*d*e^3-49*a*d^2*e^3-18*b*d^2*e^3-21*c*d^2*e^3-43*d^3*e^3-26*a^2*e^4-18*a*b*e^4+6*b^2*e^4-48*a*c*e^4+6*b*c*e^4-16*c^2*e^4-2*a*d*e^4-21*b*d*e^4+5*c*d*e^4-18*d^2*e^4+33*a*e^5-23*b*e^5-48*c*e^5+37*d*e^5-44*e^6,3144 b*c^4*d-26*a^4*d^2-47*a^3*b*d^2+28*a^2*b^2*d^2+5*a*b^3*d^2+37*b^4*d^2-32*a^3*c*d^2+44*a^2*b*c*d^2+13*a*b^2*c*d^2-45*b^3*c*d^2+35*a^2*c^2*d^2-18*a*b*c^2*d^2-3*b^2*c^2*d^2-4*a*c^3*d^2-27*b*c^3*d^2-37*a^3*d^3-44*a^2*b*d^3-36*a*b^2*d^3+49*b^3*d^3-16*a^2*c*d^3+24*a*b*c*d^3+43*b^2*c*d^3-40*a*c^2*d^3-3*b*c^2*d^3-16*c^3*d^3+6*a^2*d^4+46*a*b*d^4+8*b^2*d^4-11*a*c*d^4-4*b*c*d^4-40*c^2*d^4-31*a*d^5-41*b*d^5-35*c*d^5-35*d^6+5*a^5*e-20*a^4*b*e+48*a^3*b^2*e-42*a^2*b^3*e+46*a*b^4*e-28*b^5*e+42*a^4*c*e+22*a^3*b*c*e+23*a^2*b^2*c*e-6*a*b^3*c*e-2*b^4*c*e+26*a^3*c^2*e+28*a^2*b*c^2*e+28*a*b^2*c^2*e-31*b^3*c^2*e-50*a^2*c^3*e+3*a*b*c^3*e+39*b^2*c^3*e-21*b*c^4*e+24*c^5*e-a^4*d*e+12*a^3*b*d*e+43*a^2*b^2*d*e+17*a*b^3*d*e-33*b^4*d*e-31*a^3*c*d*e+11*a^2*b*c*d*e-16*a*b^2*c*d*e-49*b^3*c*d*e+6*a^2*c^2*d*e+49*a*b*c^2*d*e-47*b^2*c^2*d*e-40*a*c^3*d*e-11*b*c^3*d*e-7*a^3*d^2*e+10*a^2*b*d^2*e-37*a*b^2*d^2*e+37*b^3*d^2*e+49*a^2*c*d^2*e+11*b^2*c*d^2*e-43*a*c^2*d^2*e+46*b*c^2*d^2*e-18*c^3*d^2*e+38*a^2*d^3*e+20*a*b*d^3*e-22*b^2*d^3*e-32*a*c*d^3*e+41*b*c*d^3*e+c^2*d^3*e+7*a*d^4*e+18*b*d^4*e-12*c*d^4*e-15*d^5*e+34*a^4*e^2-a^3*b*e^2+47*a^2*b^2*e^2+47*a*b^3*e^2-37*b^4*e^2-36*a^3*c*e^2-21*a^2*b*c*e^2-3*b^3*c*e^2-34*a^2*c^2*e^2-4*a*b*c^2*e^2+33*b^2*c^2*e^2+19*a*c^3*e^2+3*b*c^3*e^2-13*c^4*e^2-45*a^3*d*e^2+28*a^2*b*d*e^2-23*a*b^2*d*e^2+30*b^3*d*e^2+15*a^2*c*d*e^2+a*b*c*d*e^2-50*a*c^2*d*e^2-6*b*c^2*d*e^2+32*c^3*d*e^2+17*a^2*d^2*e^2-15*a*b*d^2*e^2+6*b^2*d^2*e^2+15*a*c*d^2*e^2-b*c*d^2*e^2+41*c^2*d^2*e^2-47*a*d^3*e^2+49*b*d^3*e^2-4*c*d^3*e^2-5*d^4*e^2+35*a^3*e^3+36*a^2*b*e^3+49*a*b^2*e^3+b^3*e^3-11*a^2*c*e^3+a*b*c*e^3+18*b^2*c*e^3+19*a*c^2*e^3+11*b*c^2*e^3-41*c^3*e^3-42*a^2*d*e^3+6*a*b*d*e^3-23*b^2*d*e^3+47*a*c*d*e^3+35*b*c*d*e^3+39*c^2*d*e^3-30*a*d^2*e^3-21*b*d^2*e^3-48*c*d^2*e^3-6*d^3*e^3+38*a^2*e^4-43*a*b*e^4-10*b^2*e^4-a*c*e^4+2*b*c*e^4-29*c^2*e^4+31*a*d*e^4+24*b*d*e^4+18*c*d*e^4+38*d^2*e^4+36*a*e^5-32*b*e^5-17*c*e^5+36*d*e^5+13*e^6,3145 a*c^4*d+8*a^4*d^2+41*a^3*b*d^2-36*a^2*b^2*d^2+7*a*b^3*d^2+35*b^4*d^2+19*a^3*c*d^2-31*a^2*b*c*d^2+23*a*b^2*c*d^2-18*b^3*c*d^2+14*a*b*c^2*d^2-8*b^2*c^2*d^2+31*a*c^3*d^2-46*b*c^3*d^2-29*c^4*d^2-42*a^3*d^3+46*a^2*b*d^3-24*a*b^2*d^3+46*b^3*d^3-18*a^2*c*d^3-49*a*b*c*d^3-6*b^2*c*d^3+20*a*c^2*d^3+17*b*c^2*d^3+38*c^3*d^3-36*a^2*d^4+16*a*b*d^4+23*b^2*d^4-34*a*c*d^4-9*b*c*d^4-18*c^2*d^4-18*a*d^5+26*b*d^5-9*c*d^5-3*d^6-17*a^5*e+32*a^4*b*e-23*a^3*b^2*e-4*a^2*b^3*e+42*a*b^4*e-43*b^5*e+28*a^4*c*e+5*a^3*b*c*e-14*a^2*b^2*c*e-43*a*b^3*c*e+41*b^4*c*e+2*a^3*c^2*e-27*a^2*b*c^2*e-35*a*b^2*c^2*e+2*b^3*c^2*e-42*a^2*c^3*e+47*a*b*c^3*e+50*b^2*c^3*e-a*c^4*e+10*b*c^4*e+47*c^5*e-23*a^4*d*e+25*a^3*b*d*e-41*a^2*b^2*d*e+32*a*b^3*d*e-35*b^4*d*e+14*a^3*c*d*e-25*a^2*b*c*d*e+47*a*b^2*c*d*e-32*b^3*c*d*e+50*a^2*c^2*d*e-30*a*b*c^2*d*e+39*b^2*c^2*d*e+30*a*c^3*d*e-33*b*c^3*d*e+37*c^4*d*e-21*a^3*d^2*e+34*a^2*b*d^2*e+7*a*b^2*d^2*e-43*b^3*d^2*e+13*a^2*c*d^2*e+32*a*b*c*d^2*e-35*b^2*c*d^2*e+18*a*c^2*d^2*e-2*b*c^2*d^2*e+9*c^3*d^2*e+13*a^2*d^3*e-32*a*b*d^3*e-9*b^2*d^3*e-35*a*c*d^3*e-14*b*c*d^3*e+9*c^2*d^3*e+19*a*d^4*e-50*b*d^4*e+28*c*d^4*e-40*d^5*e+17*a^4*e^2-44*a^3*b*e^2+30*a^2*b^2*e^2+41*a*b^3*e^2+20*b^4*e^2+21*a^3*c*e^2+48*a^2*b*c*e^2+15*a*b^2*c*e^2-40*b^3*c*e^2-6*a^2*c^2*e^2-29*a*b*c^2*e^2-42*b^2*c^2*e^2-40*a*c^3*e^2-48*b*c^3*e^2+36*c^4*e^2+38*a^3*d*e^2+19*a^2*b*d*e^2+41*a*b^2*d*e^2+34*b^3*d*e^2+20*a^2*c*d*e^2-23*a*b*c*d*e^2-2*b^2*c*d*e^2+36*a*c^2*d*e^2-37*b*c^2*d*e^2+9*c^3*d*e^2-47*a^2*d^2*e^2-35*a*b*d^2*e^2+13*b^2*d^2*e^2-20*a*c*d^2*e^2-45*b*c*d^2*e^2+17*c^2*d^2*e^2-32*a*d^3*e^2+13*b*d^3*e^2-4*c*d^3*e^2-26*d^4*e^2+32*a^3*e^3-25*a^2*b*e^3+30*a*b^2*e^3-12*b^3*e^3+28*a^2*c*e^3+41*a*b*c*e^3-49*b^2*c*e^3+35*a*c^2*e^3+38*b*c^2*e^3+49*c^3*e^3-9*a^2*d*e^3-31*a*b*d*e^3-6*b^2*d*e^3+29*a*c*d*e^3+13*b*c*d*e^3-14*c^2*d*e^3+36*a*d^2*e^3+33*b*d^2*e^3-46*c*d^2*e^3+50*d^3*e^3-47*a^2*e^4+5*a*b*e^4+36*b^2*e^4-5*a*c*e^4+4*b*c*e^4-20*c^2*e^4+29*a*d*e^4+25*b*d*e^4-24*c*d*e^4-10*d^2*e^4-2*a*e^5-29*b*e^5-34*c*e^5-d*e^5+e^6,3146 b^2*c^3*d-49*a^4*d^2+36*a^3*b*d^2-3*a^2*b^2*d^2+12*a*b^3*d^2+11*b^4*d^2+10*a^3*c*d^2+9*a^2*b*c*d^2-13*a*b^2*c*d^2+43*b^3*c*d^2-27*a^2*c^2*d^2-20*a*b*c^2*d^2+34*b^2*c^2*d^2-30*a*c^3*d^2-50*b*c^3*d^2+43*c^4*d^2+17*a^3*d^3+5*a^2*b*d^3+16*a*b^2*d^3+27*b^3*d^3-26*a^2*c*d^3+17*a*b*c*d^3-31*b^2*c*d^3-43*a*c^2*d^3-18*b*c^2*d^3-8*c^3*d^3-8*a^2*d^4+8*a*b*d^4+23*b^2*d^4+7*a*c*d^4-48*b*c*d^4+21*c^2*d^4+5*a*d^5+4*b*d^5+40*c*d^5-22*d^6+3*a^5*e-a^4*b*e+26*a^3*b^2*e+16*a^2*b^3*e-29*a*b^4*e-50*b^5*e-6*a^4*c*e+31*a^3*b*c*e+43*a^2*b^2*c*e+12*a*b^3*c*e+31*b^4*c*e-21*a^3*c^2*e+25*a^2*b*c^2*e+20*a*b^2*c^2*e+15*b^3*c^2*e-4*a^2*c^3*e-48*a*b*c^3*e-29*b^2*c^3*e+43*a*c^4*e-41*b*c^4*e-15*c^5*e-13*a^4*d*e-29*a^3*b*d*e+7*a^2*b^2*d*e+4*a*b^3*d*e-50*b^4*d*e+3*a^3*c*d*e+4*a^2*b*c*d*e+7*a*b^2*c*d*e+4*b^3*c*d*e+16*a^2*c^2*d*e-42*a*b*c^2*d*e+36*b^2*c^2*d*e-5*a*c^3*d*e+13*b*c^3*d*e+17*c^4*d*e+18*a^3*d^2*e-16*a^2*b*d^2*e-32*a*b^2*d^2*e-16*b^3*d^2*e-34*a^2*c*d^2*e-22*a*b*c*d^2*e-12*b^2*c*d^2*e+35*a*c^2*d^2*e+33*b*c^2*d^2*e-47*c^3*d^2*e+12*a^2*d^3*e-43*a*b*d^3*e+11*b^2*d^3*e+2*a*c*d^3*e+42*b*c*d^3*e-18*c^2*d^3*e+44*a*d^4*e+25*b*d^4*e+41*c*d^4*e+40*d^5*e+40*a^4*e^2-3*a^3*b*e^2-8*a^2*b^2*e^2+a*b^3*e^2-27*b^4*e^2+15*a^3*c*e^2+49*a^2*b*c*e^2-14*a*b^2*c*e^2+31*b^3*c*e^2+36*a^2*c^2*e^2-14*a*b*c^2*e^2-31*b^2*c^2*e^2+48*a*c^3*e^2-24*b*c^3*e^2-30*c^4*e^2-47*a^3*d*e^2+12*a^2*b*d*e^2+44*a*b^2*d*e^2+47*b^3*d*e^2-5*a^2*c*d*e^2+23*a*b*c*d*e^2+48*b^2*c*d*e^2-25*a*c^2*d*e^2-7*b*c^2*d*e^2+32*a^2*d^2*e^2+35*a*b*d^2*e^2-19*b^2*d^2*e^2+19*a*c*d^2*e^2+26*b*c*d^2*e^2+26*c^2*d^2*e^2+8*a*d^3*e^2-21*b*d^3*e^2-6*c*d^3*e^2-35*d^4*e^2-30*a^3*e^3+36*a^2*b*e^3-27*a*b^2*e^3-33*b^3*e^3-50*a^2*c*e^3+41*a*b*c*e^3+13*b^2*c*e^3+20*a*c^2*e^3+36*b*c^2*e^3+14*c^3*e^3+40*a^2*d*e^3-35*a*b*d*e^3+11*b^2*d*e^3+36*a*c*d*e^3+23*b*c*d*e^3-34*c^2*d*e^3+25*a*d^2*e^3-14*b*d^2*e^3-5*c*d^2*e^3+11*d^3*e^3+42*a^2*e^4-48*a*b*e^4-27*b^2*e^4-17*a*c*e^4+32*b*c*e^4-3*c^2*e^4-3*a*d*e^4-33*b*d*e^4-3*c*d*e^4-14*d^2*e^4+8*a*e^5+14*b*e^5+3*c*e^5-34*d*e^5-46*e^6,3147 a*b*c^3*d-20*a^4*d^2+23*a^3*b*d^2-14*a^2*b^2*d^2+29*a*b^3*d^2-36*b^4*d^2-48*a^3*c*d^2+39*a^2*b*c*d^2-34*a*b^2*c*d^2+b^3*c*d^2-25*a^2*c^2*d^2+22*a*b*c^2*d^2-12*b^2*c^2*d^2+48*a*c^3*d^2-41*b*c^3*d^2+13*c^4*d^2-24*a^3*d^3-43*a^2*b*d^3-31*a*b^2*d^3-13*b^3*d^3+10*a^2*c*d^3-16*a*b*c*d^3+48*b^2*c*d^3-18*a*c^2*d^3+7*b*c^2*d^3+8*c^3*d^3-14*a^2*d^4-14*a*b*d^4+49*b^2*d^4+43*a*c*d^4+7*b*c*d^4-50*c^2*d^4-21*a*d^5-33*b*d^5-44*c*d^5-40*d^6-42*a^5*e+39*a^4*b*e-14*a^3*b^2*e+34*a^2*b^3*e+22*a*b^4*e+37*b^5*e+24*a^4*c*e+39*a^3*b*c*e-43*a^2*b^2*c*e-40*a*b^3*c*e-6*b^4*c*e-45*a^3*c^2*e+18*a^2*b*c^2*e-8*a*b^2*c^2*e+22*b^3*c^2*e-36*a^2*c^3*e+31*a*b*c^3*e+15*b^2*c^3*e+7*a*c^4*e-18*b*c^4*e-31*c^5*e-20*a^4*d*e+25*a^3*b*d*e-11*a^2*b^2*d*e-21*a*b^3*d*e-23*b^4*d*e+18*a^3*c*d*e-49*a^2*b*c*d*e+5*a*b^2*c*d*e+21*b^3*c*d*e-2*a^2*c^2*d*e+42*a*b*c^2*d*e-37*b^2*c^2*d*e+28*a*c^3*d*e-8*b*c^3*d*e+c^4*d*e+10*a^3*d^2*e-16*a^2*b*d^2*e-20*a*b^2*d^2*e+42*b^3*d^2*e+23*a^2*c*d^2*e-16*a*b*c*d^2*e+39*b^2*c*d^2*e+3*a*c^2*d^2*e+25*b*c^2*d^2*e-16*c^3*d^2*e-33*a^2*d^3*e-28*a*b*d^3*e+4*b^2*d^3*e-15*a*c*d^3*e-30*b*c*d^3*e-5*c^2*d^3*e-8*b*d^4*e-21*c*d^4*e+6*d^5*e-9*a^4*e^2-23*a^3*b*e^2-45*a^2*b^2*e^2+33*a*b^3*e^2+14*b^4*e^2+8*a^3*c*e^2+5*a^2*b*c*e^2-13*a*b^2*c*e^2-39*b^3*c*e^2-4*a^2*c^2*e^2+30*a*b*c^2*e^2-38*b^2*c^2*e^2+24*a*c^3*e^2-29*b*c^3*e^2-3*c^4*e^2+3*a^3*d*e^2+43*a^2*b*d*e^2-21*a*b^2*d*e^2-45*b^3*d*e^2-3*a^2*c*d*e^2-22*a*b*c*d*e^2+16*b^2*c*d*e^2-42*b*c^2*d*e^2-43*c^3*d*e^2-10*a*b*d^2*e^2+23*b^2*d^2*e^2-36*a*c*d^2*e^2+29*b*c*d^2*e^2-11*c^2*d^2*e^2+18*a*d^3*e^2-46*b*d^3*e^2-34*c*d^3*e^2+21*d^4*e^2+4*a^3*e^3+23*a^2*b*e^3-18*a*b^2*e^3-10*b^3*e^3+3*a^2*c*e^3+a*b*c*e^3-32*b^2*c*e^3-19*a*c^2*e^3-5*b*c^2*e^3+25*c^3*e^3-40*a^2*d*e^3-37*a*b*d*e^3-10*b^2*d*e^3-20*a*c*d*e^3+35*b*c*d*e^3+2*c^2*d*e^3+46*a*d^2*e^3+46*b*d^2*e^3+25*c*d^2*e^3+14*d^3*e^3-28*a^2*e^4+24*a*b*e^4-38*b^2*e^4+11*a*c*e^4+15*b*c*e^4-10*c^2*e^4-32*a*d*e^4+37*b*d*e^4+21*c*d*e^4-25*d^2*e^4-47*a*e^5-32*b*e^5+5*c*e^5+17*d*e^5+44*e^6,3148 a^2*c^3*d+25*a^4*d^2-40*a^3*b*d^2-49*a^2*b^2*d^2+30*a*b^3*d^2-36*b^4*d^2+41*a^3*c*d^2+23*a^2*b*c*d^2-16*a*b^2*c*d^2-20*b^3*c*d^2-46*a^2*c^2*d^2-29*a*b*c^2*d^2-14*b^2*c^2*d^2-38*a*c^3*d^2+9*b*c^3*d^2+50*c^4*d^2-20*a^3*d^3-14*a^2*b*d^3+13*a*b^2*d^3+5*b^3*d^3+7*a^2*c*d^3+46*a*b*c*d^3+40*b^2*c*d^3-46*a*c^2*d^3+27*b*c^2*d^3-5*c^3*d^3+43*a^2*d^4+5*a*b*d^4+3*b^2*d^4+29*a*c*d^4-43*b*c*d^4-31*c^2*d^4-24*a*d^5-45*b*d^5-26*c*d^5-6*d^6+18*a^5*e+22*a^4*b*e-12*a^3*b^2*e+40*a^2*b^3*e-8*a*b^4*e+36*b^5*e+5*a^4*c*e+46*a^3*b*c*e+6*a^2*b^2*c*e-39*a*b^3*c*e-29*b^4*c*e+36*a^3*c^2*e+35*a^2*b*c^2*e+11*a*b^2*c^2*e-12*b^3*c^2*e+13*a^2*c^3*e+15*a*b*c^3*e+38*b^2*c^3*e-4*a*c^4*e-46*b*c^4*e+25*c^5*e-31*a^4*d*e+35*a^3*b*d*e+37*a^2*b^2*d*e+27*a*b^3*d*e-30*b^4*d*e-37*a^3*c*d*e-2*a^2*b*c*d*e+10*a*b^2*c*d*e+12*b^3*c*d*e+39*a^2*c^2*d*e+35*a*b*c^2*d*e-17*b^2*c^2*d*e-30*a*c^3*d*e+32*b*c^3*d*e+41*c^4*d*e+49*a^3*d^2*e-42*a^2*b*d^2*e-22*a*b^2*d^2*e-3*b^3*d^2*e+17*a^2*c*d^2*e+31*a*b*c*d^2*e+23*b^2*c*d^2*e+4*a*c^2*d^2*e+50*b*c^2*d^2*e+43*c^3*d^2*e+17*a^2*d^3*e-30*a*b*d^3*e+43*b^2*d^3*e+7*a*c*d^3*e+30*b*c*d^3*e+37*c^2*d^3*e-a*d^4*e+6*b*d^4*e+22*c*d^4*e-34*d^5*e-48*a^4*e^2+14*a^3*b*e^2+17*a^2*b^2*e^2-39*a*b^3*e^2+37*b^4*e^2-27*a^3*c*e^2+14*a^2*b*c*e^2-43*a*b^2*c*e^2+42*b^3*c*e^2-31*a^2*c^2*e^2+43*a*b*c^2*e^2-34*b^2*c^2*e^2-40*a*c^3*e^2-14*b*c^3*e^2+19*c^4*e^2+11*a^3*d*e^2+23*a^2*b*d*e^2+11*a*b^2*d*e^2+22*b^3*d*e^2+41*a^2*c*d*e^2-20*a*b*c*d*e^2+b^2*c*d*e^2-34*a*c^2*d*e^2-39*b*c^2*d*e^2-20*c^3*d*e^2+25*a^2*d^2*e^2+33*a*b*d^2*e^2-38*b^2*d^2*e^2-34*a*c*d^2*e^2-37*b*c*d^2*e^2-15*c^2*d^2*e^2-13*a*d^3*e^2-42*b*d^3*e^2+49*c*d^3*e^2+29*d^4*e^2-48*a^3*e^3+49*a^2*b*e^3-50*a*b^2*e^3-44*b^3*e^3-42*a^2*c*e^3+14*a*b*c*e^3-34*b^2*c*e^3+3*a*c^2*e^3-b*c^2*e^3+28*c^3*e^3+24*a^2*d*e^3+37*a*b*d*e^3+29*b^2*d*e^3-a*c*d*e^3+31*b*c*d*e^3-14*c^2*d*e^3-36*a*d^2*e^3-4*b*d^2*e^3+29*c*d^2*e^3-47*d^3*e^3-36*a^2*e^4-13*a*b*e^4-45*b^2*e^4-23*a*c*e^4-32*b*c*e^4+2*c^2*e^4+11*a*d*e^4-24*b*d*e^4-46*c*d*e^4-40*d^2*e^4-4*a*e^5-29*b*e^5+14*c*e^5-44*d*e^5+32*e^6,3149 b^3*c^2*d+13*a^4*d^2+14*a^3*b*d^2-11*a^2*b^2*d^2-12*a*b^3*d^2-8*b^4*d^2-46*a^3*c*d^2-26*a^2*b*c*d^2+28*a*b^2*c*d^2+13*b^3*c*d^2-36*a^2*c^2*d^2+35*a*b*c^2*d^2+49*b^2*c^2*d^2+32*a*c^3*d^2+17*b*c^3*d^2+34*c^4*d^2-8*a^3*d^3-10*a^2*b*d^3+31*a*b^2*d^3-22*b^3*d^3+a^2*c*d^3+32*a*b*c*d^3+33*b^2*c*d^3+34*a*c^2*d^3-36*b*c^2*d^3-11*c^3*d^3-42*a^2*d^4-15*a*b*d^4-3*b^2*d^4-48*a*c*d^4+12*b*c*d^4+35*c^2*d^4-43*a*d^5+9*b*d^5+47*c*d^5+19*d^6-18*a^5*e+9*a^4*b*e+34*a^3*b^2*e+5*a^2*b^3*e+46*a*b^4*e-34*b^5*e-42*a^4*c*e-36*a^3*b*c*e+5*a^2*b^2*c*e+43*a*b^3*c*e-18*b^4*c*e+21*a^3*c^2*e-45*a^2*b*c^2*e-31*a*b^2*c^2*e+2*b^3*c^2*e+a*b*c^3*e-45*b^2*c^3*e+41*a*c^4*e+37*b*c^4*e-32*c^5*e+19*a^4*d*e-30*a^3*b*d*e+5*a^2*b^2*d*e+17*a*b^3*d*e+47*b^4*d*e-23*a^3*c*d*e+4*a^2*b*c*d*e+14*a*b^2*c*d*e-31*b^3*c*d*e+50*a^2*c^2*d*e-18*a*b*c^2*d*e-37*b^2*c^2*d*e-35*a*c^3*d*e+29*b*c^3*d*e-28*c^4*d*e+3*a^3*d^2*e+13*a^2*b*d^2*e-30*a*b^2*d^2*e-9*b^3*d^2*e+20*a^2*c*d^2*e+17*a*b*c*d^2*e-21*b^2*c*d^2*e-41*a*c^2*d^2*e-32*b*c^2*d^2*e+33*c^3*d^2*e-3*a^2*d^3*e-23*a*b*d^3*e-47*b^2*d^3*e-19*c^2*d^3*e+12*a*d^4*e-32*b*d^4*e-37*c*d^4*e+20*d^5*e+21*a^4*e^2+18*a^3*b*e^2-4*a^2*b^2*e^2+25*a*b^3*e^2-13*b^4*e^2+28*a^3*c*e^2-28*a^2*b*c*e^2-37*a*b^2*c*e^2-32*b^3*c*e^2+8*a^2*c^2*e^2+34*a*b*c^2*e^2-21*b^2*c^2*e^2+15*a*c^3*e^2-39*b*c^3*e^2-45*c^4*e^2-26*a^3*d*e^2+34*a^2*b*d*e^2-25*a*b^2*d*e^2+24*b^3*d*e^2+5*a^2*c*d*e^2+36*a*b*c*d*e^2-27*b^2*c*d*e^2+31*a*c^2*d*e^2+31*b*c^2*d*e^2+13*c^3*d*e^2-3*a^2*d^2*e^2-18*a*b*d^2*e^2+47*b^2*d^2*e^2+20*a*c*d^2*e^2+8*b*c*d^2*e^2-37*c^2*d^2*e^2+21*a*d^3*e^2+3*b*d^3*e^2-34*c*d^3*e^2+28*d^4*e^2-19*a^3*e^3+33*a^2*b*e^3-50*a*b^2*e^3-44*b^3*e^3+17*a^2*c*e^3-48*a*b*c*e^3-3*b^2*c*e^3+33*a*c^2*e^3+13*b*c^2*e^3-29*c^3*e^3+38*a^2*d*e^3-44*a*b*d*e^3-36*b^2*d*e^3-17*a*c*d*e^3+38*b*c*d*e^3+47*c^2*d*e^3+4*a*d^2*e^3-11*b*d^2*e^3-14*c*d^2*e^3-46*d^3*e^3-17*a^2*e^4-23*a*b*e^4+26*b^2*e^4+24*a*c*e^4-37*b*c*e^4+34*c^2*e^4+24*a*d*e^4-32*b*d*e^4-19*c*d*e^4+15*d^2*e^4-33*a*e^5+7*b*e^5-29*c*e^5+37*d*e^5-16*e^6,3150 a*b^2*c^2*d-26*a^4*d^2-24*a^3*b*d^2-36*a^2*b^2*d^2+26*a*b^3*d^2+26*b^4*d^2+44*a^3*c*d^2-31*a^2*b*c*d^2-49*a*b^2*c*d^2-30*b^3*c*d^2-13*a^2*c^2*d^2+49*a*b*c^2*d^2-50*b^2*c^2*d^2+27*a*c^3*d^2+24*c^4*d^2-47*a^3*d^3+29*a^2*b*d^3+31*a*b^2*d^3-30*b^3*d^3+39*a^2*c*d^3+23*a*b*c*d^3+5*b^2*c*d^3-30*a*c^2*d^3-20*b*c^2*d^3-27*c^3*d^3-40*a^2*d^4+36*a*b*d^4+28*b^2*d^4+29*a*c*d^4+2*b*c*d^4+14*c^2*d^4-41*a*d^5+22*b*d^5+22*c*d^5+9*d^6-22*a^5*e-33*a^4*b*e-19*a^3*b^2*e+30*a^2*b^3*e+4*a*b^4*e+42*b^5*e-13*a^4*c*e+27*a^3*b*c*e-10*a^2*b^2*c*e+21*a*b^3*c*e-46*b^4*c*e-22*a^3*c^2*e-9*a^2*b*c^2*e+11*a*b^2*c^2*e+33*b^3*c^2*e-4*a^2*c^3*e-26*a*b*c^3*e+47*b^2*c^3*e+41*a*c^4*e-23*b*c^4*e-35*c^5*e-28*a^4*d*e+6*a^3*b*d*e+39*a^2*b^2*d*e+12*a*b^3*d*e-46*b^4*d*e+5*a^3*c*d*e-4*a^2*b*c*d*e+45*a*b^2*c*d*e-8*b^3*c*d*e-46*a^2*c^2*d*e-34*a*b*c^2*d*e-47*b^2*c^2*d*e+20*a*c^3*d*e+10*b*c^3*d*e+2*c^4*d*e+22*a^3*d^2*e-5*a^2*b*d^2*e+24*a*b^2*d^2*e+27*b^3*d^2*e+10*a^2*c*d^2*e-27*a*b*c*d^2*e+13*b^2*c*d^2*e+38*a*c^2*d^2*e+20*b*c^2*d^2*e-46*c^3*d^2*e-47*a^2*d^3*e+42*a*b*d^3*e-34*b^2*d^3*e-3*a*c*d^3*e+4*b*c*d^3*e+4*c^2*d^3*e+47*a*d^4*e+46*b*d^4*e+29*c*d^4*e+28*d^5*e+18*a^4*e^2+19*a^3*b*e^2+6*a^2*b^2*e^2-38*a*b^3*e^2-22*b^4*e^2-21*a^3*c*e^2+44*a^2*b*c*e^2-23*a*b^2*c*e^2-20*b^3*c*e^2-35*a^2*c^2*e^2-33*a*b*c^2*e^2+b^2*c^2*e^2+2*a*c^3*e^2+36*b*c^3*e^2+29*c^4*e^2-14*a^2*b*d*e^2-44*a*b^2*d*e^2+7*b^3*d*e^2+17*a^2*c*d*e^2-2*a*b*c*d*e^2+18*b^2*c*d*e^2-41*a*c^2*d*e^2+41*b*c^2*d*e^2+40*c^3*d*e^2+6*a^2*d^2*e^2-15*a*b*d^2*e^2-39*b^2*d^2*e^2-50*a*c*d^2*e^2-43*b*c*d^2*e^2-3*c^2*d^2*e^2+29*a*d^3*e^2-3*b*d^3*e^2+48*c*d^3*e^2+22*d^4*e^2+24*a^3*e^3+5*a^2*b*e^3-3*a*b^2*e^3-36*b^3*e^3-50*a^2*c*e^3+23*a*b*c*e^3+9*b^2*c*e^3+3*a*c^2*e^3+45*b*c^2*e^3-24*c^3*e^3-30*a^2*d*e^3+31*a*b*d*e^3+26*b^2*d*e^3-37*a*c*d*e^3-38*b*c*d*e^3-36*c^2*d*e^3-8*a*d^2*e^3-41*b*d^2*e^3-40*c*d^2*e^3+25*d^3*e^3-25*a^2*e^4+12*a*b*e^4-25*b^2*e^4-39*a*c*e^4-19*b*c*e^4-21*c^2*e^4+34*a*d*e^4-35*b*d*e^4+9*c*d*e^4-32*d^2*e^4+29*a*e^5+32*b*e^5-25*c*e^5-31*d*e^5-34*e^6,3151 a^2*b*c^2*d+14*a^4*d^2+25*a^3*b*d^2-2*a^2*b^2*d^2-32*a*b^3*d^2-31*b^4*d^2-40*a^3*c*d^2-15*a^2*b*c*d^2+50*a*b^2*c*d^2+b^3*c*d^2-7*a^2*c^2*d^2-14*a*b*c^2*d^2+8*b^2*c^2*d^2+25*a*c^3*d^2+6*b*c^3*d^2+25*c^4*d^2-20*a^3*d^3+a^2*b*d^3-27*a*b^2*d^3+24*b^3*d^3+33*a^2*c*d^3-14*a*b*c*d^3-48*b^2*c*d^3+10*a*c^2*d^3+8*b*c^2*d^3+13*c^3*d^3-11*a^2*d^4+41*a*b*d^4+48*b^2*d^4+29*a*c*d^4-29*b*c*d^4+40*c^2*d^4+50*a*d^5+33*b*d^5-35*c*d^5-17*d^6-31*a^5*e+42*a^4*b*e+48*a^3*b^2*e-48*a^2*b^3*e-6*a*b^4*e+27*b^5*e+31*a^4*c*e+6*a^3*b*c*e-20*a^2*b^2*c*e-10*a*b^3*c*e-34*b^4*c*e-45*a^3*c^2*e+15*a^2*b*c^2*e+37*a*b^2*c^2*e+34*b^3*c^2*e-14*a^2*c^3*e-9*a*b*c^3*e-33*b^2*c^3*e-42*a*c^4*e+20*b*c^4*e+4*c^5*e+28*a^4*d*e+10*a^3*b*d*e-23*a^2*b^2*d*e-17*a*b^3*d*e-44*b^4*d*e-8*a^3*c*d*e-13*a^2*b*c*d*e+35*a*b^2*c*d*e-49*b^3*c*d*e-23*a^2*c^2*d*e-43*a*b*c^2*d*e+11*b^2*c^2*d*e+45*a*c^3*d*e-38*b*c^3*d*e-44*c^4*d*e+45*a^3*d^2*e+9*a^2*b*d^2*e+31*a*b^2*d^2*e-18*b^3*d^2*e-30*a^2*c*d^2*e+4*a*b*c*d^2*e+50*b^2*c*d^2*e+24*a*c^2*d^2*e+24*b*c^2*d^2*e-11*c^3*d^2*e-11*a^2*d^3*e-36*a*b*d^3*e+5*b^2*d^3*e+26*a*c*d^3*e-18*b*c*d^3*e-41*c^2*d^3*e-2*a*d^4*e+17*b*d^4*e+46*c*d^4*e+9*d^5*e-49*a^4*e^2-13*a^3*b*e^2+47*a^2*b^2*e^2+19*a*b^3*e^2+42*b^4*e^2+15*a^3*c*e^2-48*a^2*b*c*e^2+33*a*b^2*c*e^2-28*b^3*c*e^2-5*a^2*c^2*e^2-32*a*b*c^2*e^2+2*b^2*c^2*e^2-25*a*c^3*e^2-8*b*c^3*e^2+8*c^4*e^2-48*a^3*d*e^2-12*a^2*b*d*e^2-49*a*b^2*d*e^2+49*b^3*d*e^2-4*a^2*c*d*e^2-40*a*b*c*d*e^2+42*b^2*c*d*e^2-11*a*c^2*d*e^2+12*b*c^2*d*e^2+5*c^3*d*e^2+40*a^2*d^2*e^2+21*a*b*d^2*e^2-37*b^2*d^2*e^2+10*a*c*d^2*e^2-38*b*c*d^2*e^2-22*c^2*d^2*e^2-a*d^3*e^2+20*b*d^3*e^2-31*c*d^3*e^2-15*d^4*e^2+31*a^3*e^3-24*a^2*b*e^3-6*b^3*e^3-10*a^2*c*e^3-27*a*b*c*e^3+15*b^2*c*e^3-40*b*c^2*e^3+36*c^3*e^3+12*a^2*d*e^3+32*a*b*d*e^3-39*b^2*d*e^3-9*a*c*d*e^3+13*b*c*d*e^3+35*c^2*d*e^3+31*a*d^2*e^3-4*b*d^2*e^3+14*c*d^2*e^3+19*d^3*e^3-36*a^2*e^4-44*a*b*e^4-10*b^2*e^4+29*a*c*e^4-26*b*c*e^4+43*c^2*e^4+5*a*d*e^4+3*b*d*e^4-17*c*d*e^4+48*d^2*e^4-16*a*e^5+2*b*e^5-41*c*e^5-15*d*e^5-19*e^6,3152 a^3*c^2*d+17*a^4*d^2+4*a^3*b*d^2+a^2*b^2*d^2+20*a*b^3*d^2-36*b^4*d^2-13*a^3*c*d^2+40*a^2*b*c*d^2-21*a*b^2*c*d^2-35*b^3*c*d^2-33*a^2*c^2*d^2-a*b*c^2*d^2+12*b^2*c^2*d^2+33*a*c^3*d^2-34*b*c^3*d^2-11*c^4*d^2+9*a^3*d^3-32*a^2*b*d^3+42*a*b^2*d^3-49*b^3*d^3-12*a^2*c*d^3-12*a*b*c*d^3+12*b^2*c*d^3+20*a*c^2*d^3+44*b*c^2*d^3+15*c^3*d^3+16*a^2*d^4+46*a*b*d^4+26*b^2*d^4+2*a*c*d^4-28*b*c*d^4-45*c^2*d^4+17*a*d^5-29*b*d^5+28*c*d^5-39*d^6+16*a^5*e+50*a^4*b*e+5*a^3*b^2*e+5*a^2*b^3*e-30*a*b^4*e-8*b^5*e+29*a^4*c*e-48*a^3*b*c*e-33*a^2*b^2*c*e-25*a*b^3*c*e+40*b^4*c*e-31*a^3*c^2*e-15*a^2*b*c^2*e+2*a*b^2*c^2*e+28*b^3*c^2*e-39*a^2*c^3*e+10*a*b*c^3*e-35*b^2*c^3*e+33*a*c^4*e-26*b*c^4*e-23*c^5*e+27*a^4*d*e-34*a^3*b*d*e+9*a^2*b^2*d*e+22*a*b^3*d*e-35*b^4*d*e+24*a^3*c*d*e+6*a^2*b*c*d*e+29*a*b^2*c*d*e-43*b^3*c*d*e+12*a^2*c^2*d*e+50*a*b*c^2*d*e-21*b^2*c^2*d*e-5*a*c^3*d*e-3*b*c^3*d*e-25*c^4*d*e+38*a^3*d^2*e-37*a^2*b*d^2*e+6*a*b^2*d^2*e+47*b^3*d^2*e+25*a^2*c*d^2*e+27*a*b*c*d^2*e+6*b^2*c*d^2*e-12*a*c^2*d^2*e-45*b*c^2*d^2*e-31*c^3*d^2*e-40*a^2*d^3*e+44*b^2*d^3*e-32*a*c*d^3*e-4*b*c*d^3*e-31*c^2*d^3*e+16*a*d^4*e-24*b*d^4*e+40*c*d^4*e-13*d^5*e-10*a^4*e^2+26*a^3*b*e^2+12*a^2*b^2*e^2+45*a*b^3*e^2+43*b^4*e^2+26*a^3*c*e^2+21*a^2*b*c*e^2-3*a*b^2*c*e^2-18*b^3*c*e^2+24*a^2*c^2*e^2+20*a*b*c^2*e^2-13*b^2*c^2*e^2+43*a*c^3*e^2+34*b*c^3*e^2-24*c^4*e^2+29*a^3*d*e^2+13*a^2*b*d*e^2-7*a*b^2*d*e^2-5*b^3*d*e^2+45*a^2*c*d*e^2+10*a*b*c*d*e^2+30*b^2*c*d*e^2-13*a*c^2*d*e^2+43*b*c^2*d*e^2+37*c^3*d*e^2+29*a^2*d^2*e^2+46*a*b*d^2*e^2+33*b^2*d^2*e^2+18*a*c*d^2*e^2-22*b*c*d^2*e^2+13*c^2*d^2*e^2+44*a*d^3*e^2+38*b*d^3*e^2+27*c*d^3*e^2+44*d^4*e^2-29*a^2*b*e^3-36*a*b^2*e^3+40*b^3*e^3+9*a^2*c*e^3-19*a*b*c*e^3+36*b^2*c*e^3+5*a*c^2*e^3+20*b*c^2*e^3+3*c^3*e^3+49*a^2*d*e^3-46*a*b*d*e^3+7*b^2*d*e^3-26*a*c*d*e^3+17*b*c*d*e^3-48*c^2*d*e^3-9*a*d^2*e^3-25*b*d^2*e^3-25*c*d^2*e^3-12*d^3*e^3+13*a^2*e^4+a*b*e^4+5*b^2*e^4+44*a*c*e^4+14*b*c*e^4+42*c^2*e^4+16*a*d*e^4+12*b*d*e^4+20*c*d*e^4+16*d^2*e^4-27*a*e^5+13*b*e^5+38*c*e^5-d*e^5-26*e^6,3153 b^4*c*d-16*a^4*d^2-19*a^3*b*d^2+43*a^2*b^2*d^2+18*a*b^3*d^2-14*b^4*d^2-6*a^3*c*d^2-33*a^2*b*c*d^2-38*a*b^2*c*d^2-4*b^3*c*d^2+16*a^2*c^2*d^2-38*a*b*c^2*d^2+40*b^2*c^2*d^2+11*a*c^3*d^2+36*b*c^3*d^2+26*c^4*d^2+a^3*d^3-37*a^2*b*d^3-5*a*b^2*d^3-36*b^3*d^3+38*a^2*c*d^3+32*a*b*c*d^3+12*b^2*c*d^3+24*a*c^2*d^3-40*b*c^2*d^3-9*c^3*d^3+15*a^2*d^4+36*a*b*d^4-50*b^2*d^4-43*a*c*d^4+43*b*c*d^4+33*c^2*d^4-8*a*d^5-28*b*d^5-42*c*d^5-20*d^6+16*a^5*e+4*a^4*b*e+41*a^3*b^2*e+18*a^2*b^3*e+26*a*b^4*e+12*b^5*e+3*a^4*c*e-50*a^3*b*c*e+12*a^2*b^2*c*e-6*a*b^3*c*e-40*b^4*c*e+48*a^3*c^2*e+46*a^2*b*c^2*e-24*a*b^2*c^2*e+47*b^3*c^2*e-30*a^2*c^3*e+30*a*b*c^3*e+19*b^2*c^3*e-9*a*c^4*e-33*b*c^4*e-43*c^5*e-31*a^4*d*e-46*a^3*b*d*e-19*a^2*b^2*d*e-40*a*b^3*d*e+17*b^4*d*e-7*a^3*c*d*e+27*a^2*b*c*d*e-18*a*b^2*c*d*e+40*b^3*c*d*e+13*a^2*c^2*d*e-40*a*b*c^2*d*e-21*b^2*c^2*d*e+48*a*c^3*d*e-23*b*c^3*d*e-41*c^4*d*e-19*a^3*d^2*e+26*a^2*b*d^2*e-35*a*b^2*d^2*e-5*b^3*d^2*e+23*a^2*c*d^2*e+44*a*b*c*d^2*e-11*b^2*c*d^2*e+2*a*c^2*d^2*e-23*b*c^2*d^2*e-9*c^3*d^2*e+26*a^2*d^3*e+3*a*b*d^3*e+27*b^2*d^3*e+24*a*c*d^3*e+b*c*d^3*e-33*c^2*d^3*e+27*a*d^4*e-49*b*d^4*e-33*c*d^4*e+3*d^5*e-5*a^4*e^2-39*a^3*b*e^2-a^2*b^2*e^2+9*a*b^3*e^2+38*b^4*e^2+48*a^3*c*e^2-50*a^2*b*c*e^2+31*a*b^2*c*e^2-b^3*c*e^2+40*a^2*c^2*e^2+46*a*b*c^2*e^2-9*b^2*c^2*e^2-5*a*c^3*e^2+2*b*c^3*e^2-3*c^4*e^2-4*a^3*d*e^2+20*a^2*b*d*e^2-42*a*b^2*d*e^2+5*b^3*d*e^2-29*a^2*c*d*e^2+21*a*b*c*d*e^2-36*b^2*c*d*e^2+34*a*c^2*d*e^2+18*b*c^2*d*e^2-45*c^3*d*e^2+13*a^2*d^2*e^2-25*a*b*d^2*e^2+27*b^2*d^2*e^2+32*b*c*d^2*e^2+38*c^2*d^2*e^2+2*a*d^3*e^2+10*b*d^3*e^2+31*c*d^3*e^2-6*d^4*e^2+8*a^3*e^3-40*a^2*b*e^3+34*a*b^2*e^3+50*b^3*e^3-10*a^2*c*e^3-36*a*b*c*e^3-17*b^2*c*e^3-39*a*c^2*e^3+19*b*c^2*e^3-13*c^3*e^3+28*a^2*d*e^3+27*a*b*d*e^3+28*b^2*d*e^3+13*a*c*d*e^3+47*b*c*d*e^3-32*c^2*d*e^3+6*a*d^2*e^3+16*b*d^2*e^3-2*c*d^2*e^3+39*d^3*e^3+12*a^2*e^4-12*a*b*e^4+27*b^2*e^4-4*a*c*e^4+7*b*c*e^4-2*c^2*e^4+30*a*d*e^4-16*b*d*e^4-13*c*d*e^4+18*d^2*e^4-6*a*e^5+32*b*e^5-46*c*e^5+33*d*e^5+26*e^6,3154 a*b^3*c*d-15*a^4*d^2-41*a^3*b*d^2-50*a^2*b^2*d^2-45*b^4*d^2+29*a^3*c*d^2+43*a^2*b*c*d^2-7*a*b^2*c*d^2-49*b^3*c*d^2+10*a^2*c^2*d^2+13*a*b*c^2*d^2-8*b^2*c^2*d^2+22*a*c^3*d^2+21*b*c^3*d^2-20*c^4*d^2-25*a^3*d^3+28*a^2*b*d^3+36*a*b^2*d^3+b^3*d^3-38*a^2*c*d^3+34*a*b*c*d^3-33*b^2*c*d^3+11*a*c^2*d^3+48*b*c^2*d^3+33*c^3*d^3+5*a^2*d^4+5*a*b*d^4+4*b^2*d^4+37*a*c*d^4+44*b*c*d^4-35*c^2*d^4+8*a*d^5+38*b*d^5+43*c*d^5-15*d^6+15*a^5*e+31*a^4*b*e-30*a^3*b^2*e+46*a^2*b^3*e-29*a*b^4*e+13*b^5*e-38*a^4*c*e+39*a^3*b*c*e+3*a^2*b^2*c*e-19*a*b^3*c*e-50*b^4*c*e-a^3*c^2*e+3*a^2*b*c^2*e-8*a*b^2*c^2*e-34*b^3*c^2*e-40*a^2*c^3*e+43*a*b*c^3*e+45*b^2*c^3*e-31*a*c^4*e+19*b*c^4*e+38*c^5*e+5*a^4*d*e-43*a^3*b*d*e+23*a^2*b^2*d*e+38*a*b^3*d*e-35*b^4*d*e-46*a^3*c*d*e+46*a^2*b*c*d*e-41*a*b^2*c*d*e+16*b^3*c*d*e-37*a^2*c^2*d*e+28*a*b*c^2*d*e-8*b^2*c^2*d*e+40*a*c^3*d*e-42*b*c^3*d*e-22*c^4*d*e+36*a^3*d^2*e+17*a^2*b*d^2*e+4*a*b^2*d^2*e+38*b^3*d^2*e-41*a^2*c*d^2*e-7*a*b*c*d^2*e-34*b^2*c*d^2*e+10*a*c^2*d^2*e-7*b*c^2*d^2*e-35*c^3*d^2*e-26*a^2*d^3*e-a*b*d^3*e-12*b^2*d^3*e+46*a*c*d^3*e-44*b*c*d^3*e+14*c^2*d^3*e-42*a*d^4*e-8*b*d^4*e+39*c*d^4*e+17*d^5*e+43*a^4*e^2+10*a^3*b*e^2-13*a^2*b^2*e^2-a*b^3*e^2+32*b^4*e^2+4*a^3*c*e^2+10*a^2*b*c*e^2-34*a*b^2*c*e^2+5*b^3*c*e^2-30*a^2*c^2*e^2-6*a*b*c^2*e^2+38*b^2*c^2*e^2-44*a*c^3*e^2+9*b*c^3*e^2+11*c^4*e^2+10*a^3*d*e^2+50*a^2*b*d*e^2-2*a*b^2*d*e^2-26*b^3*d*e^2+15*a^2*c*d*e^2-40*a*b*c*d*e^2+21*b^2*c*d*e^2-45*a*c^2*d*e^2-5*b*c^2*d*e^2-8*c^3*d*e^2+5*a^2*d^2*e^2+8*a*b*d^2*e^2-40*b^2*d^2*e^2+28*a*c*d^2*e^2-26*b*c*d^2*e^2+28*c^2*d^2*e^2+20*a*d^3*e^2-32*b*d^3*e^2-c*d^3*e^2-47*d^4*e^2-41*a^3*e^3-10*a^2*b*e^3-9*a*b^2*e^3+18*b^3*e^3-36*a^2*c*e^3+43*a*b*c*e^3+b^2*c*e^3+5*a*c^2*e^3+35*b*c^2*e^3-29*c^3*e^3+49*a^2*d*e^3+11*a*b*d*e^3-14*b^2*d*e^3-18*a*c*d*e^3+48*b*c*d*e^3-5*c^2*d*e^3-39*a*d^2*e^3+16*c*d^2*e^3+21*d^3*e^3+29*a^2*e^4+42*a*b*e^4+16*b^2*e^4+21*a*c*e^4-40*b*c*e^4-23*a*d*e^4-27*b*d*e^4+19*c*d*e^4-3*d^2*e^4+29*a*e^5+23*b*e^5-48*c*e^5-14*d*e^5-39*e^6,3155 a^2*b^2*c*d+30*a^4*d^2-8*a^3*b*d^2-31*a^2*b^2*d^2-48*a*b^3*d^2-8*b^4*d^2-a^3*c*d^2-45*a^2*b*c*d^2+24*a*b^2*c*d^2-50*b^3*c*d^2+26*a^2*c^2*d^2-21*a*b*c^2*d^2+7*b^2*c^2*d^2-23*a*c^3*d^2-3*b*c^3*d^2-37*c^4*d^2+30*a^3*d^3-49*a^2*b*d^3-10*a*b^2*d^3+19*b^3*d^3-a^2*c*d^3-23*a*b*c*d^3+27*b^2*c*d^3+8*a*c^2*d^3+36*b*c^2*d^3+14*c^3*d^3-14*a^2*d^4+11*a*b*d^4+24*b^2*d^4-22*a*c*d^4+14*b*c*d^4-12*c^2*d^4+33*a*d^5-35*b*d^5-20*c*d^5-22*d^6-25*a^5*e-50*a^4*b*e-3*a^3*b^2*e-49*a^2*b^3*e-47*a*b^4*e-12*b^5*e+24*a^4*c*e+10*a^3*b*c*e-49*a^2*b^2*c*e-46*a*b^3*c*e-39*b^4*c*e+47*a^3*c^2*e-a^2*b*c^2*e+45*a*b^2*c^2*e-46*b^3*c^2*e+27*a^2*c^3*e-27*a*b*c^3*e+7*b^2*c^3*e+48*a*c^4*e-17*b*c^4*e+13*c^5*e+40*a^4*d*e+50*a^3*b*d*e-9*a^2*b^2*d*e-9*a*b^3*d*e+18*b^4*d*e+30*a^3*c*d*e-36*a^2*b*c*d*e-41*a*b^2*c*d*e+34*b^3*c*d*e+10*a^2*c^2*d*e-19*a*b*c^2*d*e+38*b^2*c^2*d*e-17*a*c^3*d*e-15*b*c^3*d*e-25*c^4*d*e+26*a^3*d^2*e-22*a^2*b*d^2*e+33*a*b^2*d^2*e+3*b^3*d^2*e+33*a^2*c*d^2*e+13*a*b*c*d^2*e-36*b^2*c*d^2*e+16*a*c^2*d^2*e+16*b*c^2*d^2*e+27*c^3*d^2*e-20*a^2*d^3*e+8*a*b*d^3*e+12*b^2*d^3*e-7*a*c*d^3*e-11*b*c*d^3*e-32*c^2*d^3*e+49*a*d^4*e-45*b*d^4*e+4*c*d^4*e+23*d^5*e-42*a^4*e^2-10*a^3*b*e^2+47*a^2*b^2*e^2+31*a*b^3*e^2-9*b^4*e^2-45*a^3*c*e^2-16*a^2*b*c*e^2-16*a*b^2*c*e^2+6*b^3*c*e^2+9*a^2*c^2*e^2-35*a*b*c^2*e^2-17*b^2*c^2*e^2-48*a*c^3*e^2-6*b*c^3*e^2+33*c^4*e^2+46*a^3*d*e^2-22*a^2*b*d*e^2+41*a*b^2*d*e^2+28*b^3*d*e^2+37*a^2*c*d*e^2-35*a*b*c*d*e^2+11*b^2*c*d*e^2-40*a*c^2*d*e^2-25*b*c^2*d*e^2-6*c^3*d*e^2+50*a^2*d^2*e^2-29*a*b*d^2*e^2-30*b^2*d^2*e^2+12*a*c*d^2*e^2+37*b*c*d^2*e^2-23*c^2*d^2*e^2-30*a*d^3*e^2-43*b*d^3*e^2+31*c*d^3*e^2-35*d^4*e^2+32*a^3*e^3-45*a^2*b*e^3-35*a*b^2*e^3+26*b^3*e^3-43*a^2*c*e^3-41*a*b*c*e^3-6*b^2*c*e^3-14*a*c^2*e^3-20*b*c^2*e^3-44*c^3*e^3+10*a^2*d*e^3-4*a*b*d*e^3-38*b^2*d*e^3-28*a*c*d*e^3+8*b*c*d*e^3+30*c^2*d*e^3-5*a*d^2*e^3+24*b*d^2*e^3+2*c*d^2*e^3-19*d^3*e^3-25*a^2*e^4+21*a*b*e^4-20*b^2*e^4-11*a*c*e^4+40*b*c*e^4+12*c^2*e^4-30*a*d*e^4+8*b*d*e^4-14*c*d*e^4-23*d^2*e^4+20*a*e^5-7*b*e^5-38*c*e^5-50*d*e^5-30*e^6,3156 a^3*b*c*d+41*a^4*d^2+15*a^3*b*d^2-2*a^2*b^2*d^2-33*a*b^3*d^2+9*b^4*d^2+25*a^3*c*d^2-22*a^2*b*c*d^2-7*a*b^2*c*d^2-14*b^3*c*d^2-34*a^2*c^2*d^2-30*a*b*c^2*d^2+50*b^2*c^2*d^2+12*a*c^3*d^2-6*b*c^3*d^2+25*c^4*d^2-41*a^3*d^3-2*a^2*b*d^3+10*a*b^2*d^3+6*b^3*d^3-26*a^2*c*d^3+17*a*b*c*d^3+24*b^2*c*d^3+42*a*c^2*d^3-28*b*c^2*d^3+9*c^3*d^3+41*a^2*d^4-48*a*b*d^4+18*b^2*d^4-26*a*c*d^4+33*b*c*d^4-8*c^2*d^4+35*a*d^5+14*b*d^5-48*c*d^5-23*d^6+49*a^5*e+16*a^4*b*e+2*a^3*b^2*e+26*a^2*b^3*e+5*a*b^4*e+39*b^5*e-32*a^4*c*e+19*a^3*b*c*e-37*a^2*b^2*c*e+44*a*b^3*c*e+34*b^4*c*e+37*a^3*c^2*e-25*a^2*b*c^2*e-43*a*b^2*c^2*e+31*b^3*c^2*e-17*a^2*c^3*e-7*a*b*c^3*e-29*b^2*c^3*e+39*a*c^4*e-13*b*c^4*e+46*c^5*e-14*a^4*d*e-23*a^3*b*d*e-31*a^2*b^2*d*e+14*a*b^3*d*e+35*b^4*d*e-44*a^3*c*d*e+15*a^2*b*c*d*e-38*a*b^2*c*d*e-38*b^3*c*d*e-7*a^2*c^2*d*e-36*a*b*c^2*d*e-36*b^2*c^2*d*e+36*a*c^3*d*e+4*b*c^3*d*e+14*c^4*d*e+35*a^2*b*d^2*e+35*a*b^2*d^2*e-28*b^3*d^2*e+3*a^2*c*d^2*e+11*a*b*c*d^2*e-41*b^2*c*d^2*e-12*a*c^2*d^2*e-4*b*c^2*d^2*e+2*c^3*d^2*e+15*a^2*d^3*e-18*a*b*d^3*e+2*b^2*d^3*e+2*a*c*d^3*e-21*b*c*d^3*e+27*c^2*d^3*e+34*a*d^4*e+22*b*d^4*e-38*c*d^4*e+45*d^5*e+3*a^4*e^2+21*a^3*b*e^2-2*a^2*b^2*e^2+11*a*b^3*e^2-29*b^4*e^2-31*a^3*c*e^2+27*a^2*b*c*e^2-44*a*b^2*c*e^2-27*b^3*c*e^2-26*a^2*c^2*e^2+48*a*b*c^2*e^2-46*b^2*c^2*e^2-46*a*c^3*e^2-44*b*c^3*e^2-3*c^4*e^2+18*a^3*d*e^2-34*a^2*b*d*e^2+14*a*b^2*d*e^2+32*b^3*d*e^2+40*a^2*c*d*e^2+20*a*b*c*d*e^2+35*b^2*c*d*e^2-19*a*c^2*d*e^2+16*b*c^2*d*e^2-6*c^3*d*e^2-a^2*d^2*e^2+38*a*b*d^2*e^2+23*b^2*d^2*e^2-26*a*c*d^2*e^2-47*b*c*d^2*e^2+11*c^2*d^2*e^2+34*a*d^3*e^2-27*b*d^3*e^2-41*c*d^3*e^2-2*d^4*e^2+7*a^3*e^3-46*a^2*b*e^3-17*a*b^2*e^3+18*b^3*e^3+25*a^2*c*e^3+24*a*b*c*e^3+48*b^2*c*e^3-25*a*c^2*e^3-12*b*c^2*e^3+17*c^3*e^3+15*a^2*d*e^3+49*a*b*d*e^3-44*b^2*d*e^3+31*a*c*d*e^3-14*b*c*d*e^3-13*c^2*d*e^3-49*a*d^2*e^3-42*b*d^2*e^3-40*c*d^2*e^3+49*d^3*e^3-13*a^2*e^4-3*a*b*e^4-33*b^2*e^4+21*a*c*e^4-23*b*c*e^4+35*c^2*e^4+41*a*d*e^4-6*b*d*e^4+23*c*d*e^4-44*d^2*e^4-10*a*e^5-5*b*e^5+22*c*e^5-13*d*e^5-24*e^6,3157 a^4*c*d-22*a^3*b*d^2+25*a^2*b^2*d^2+46*a*b^3*d^2+4*b^4*d^2-49*a^3*c*d^2+10*a^2*b*c*d^2-18*a*b^2*c*d^2-24*b^3*c*d^2+a^2*c^2*d^2-44*a*b*c^2*d^2+19*b^2*c^2*d^2+2*a*c^3*d^2-16*b*c^3*d^2+23*c^4*d^2-34*a^3*d^3+29*a^2*b*d^3+18*a*b^2*d^3-31*b^3*d^3-26*a^2*c*d^3+35*a*b*c*d^3-2*b^2*c*d^3-3*a*c^2*d^3-8*b*c^2*d^3+50*c^3*d^3-11*a^2*d^4+30*a*b*d^4-41*b^2*d^4+41*a*c*d^4+12*b*c*d^4+2*c^2*d^4+44*a*d^5+5*b*d^5-8*c*d^5-37*d^6+10*a^5*e+20*a^4*b*e-32*a^3*b^2*e-7*a^2*b^3*e-11*a*b^4*e-3*b^5*e+47*a^4*c*e-39*a^3*b*c*e+27*a^2*b^2*c*e+14*a*b^3*c*e+25*b^4*c*e+45*a^3*c^2*e-22*a^2*b*c^2*e-4*a*b^2*c^2*e+8*b^3*c^2*e+10*a^2*c^3*e-18*a*b*c^3*e-25*b^2*c^3*e-35*a*c^4*e+7*b*c^4*e+44*c^5*e+13*a^4*d*e-17*a^3*b*d*e+23*a^2*b^2*d*e-4*a*b^3*d*e+23*b^4*d*e-4*a^3*c*d*e+34*a^2*b*c*d*e+48*a*b^2*c*d*e-32*b^3*c*d*e-44*a^2*c^2*d*e+37*a*b*c^2*d*e-38*b^2*c^2*d*e-23*a*c^3*d*e-42*b*c^3*d*e-19*c^4*d*e-48*a^3*d^2*e+29*a^2*b*d^2*e-25*a*b^2*d^2*e+36*b^3*d^2*e-46*a^2*c*d^2*e+37*a*b*c*d^2*e+28*b^2*c*d^2*e+12*a*c^2*d^2*e+2*b*c^2*d^2*e-13*c^3*d^2*e-40*a^2*d^3*e+44*a*b*d^3*e+29*b^2*d^3*e+20*a*c*d^3*e+23*b*c*d^3*e-44*c^2*d^3*e+23*a*d^4*e+22*b*d^4*e+12*c*d^4*e-16*d^5*e+50*a^4*e^2+12*a^3*b*e^2-16*a^2*b^2*e^2+27*a*b^3*e^2+27*b^4*e^2-25*a^3*c*e^2+13*a^2*b*c*e^2-21*a*b^2*c*e^2+46*b^3*c*e^2-6*a^2*c^2*e^2+13*a*b*c^2*e^2-8*b^2*c^2*e^2+39*a*c^3*e^2+36*b*c^3*e^2+46*c^4*e^2-9*a^3*d*e^2-35*a^2*b*d*e^2-47*a*b^2*d*e^2-41*b^3*d*e^2+26*a^2*c*d*e^2-38*a*b*c*d*e^2+48*b^2*c*d*e^2-36*a*c^2*d*e^2+32*b*c^2*d*e^2-17*c^3*d*e^2+39*a^2*d^2*e^2-a*b*d^2*e^2+48*a*c*d^2*e^2-20*b*c*d^2*e^2-49*c^2*d^2*e^2-37*a*d^3*e^2-8*b*d^3*e^2-c*d^3*e^2-8*d^4*e^2-47*a^3*e^3+2*a^2*b*e^3-14*a*b^2*e^3-32*b^3*e^3+18*a^2*c*e^3+49*a*b*c*e^3-43*b^2*c*e^3-8*a*c^2*e^3-36*b*c^2*e^3+18*c^3*e^3+11*a^2*d*e^3+4*a*b*d*e^3+49*b^2*d*e^3+26*a*c*d*e^3+5*b*c*d*e^3-14*c^2*d*e^3+12*a*d^2*e^3+b*d^2*e^3-49*c*d^2*e^3+24*d^3*e^3+11*a^2*e^4-43*a*b*e^4-36*b^2*e^4+30*a*c*e^4-12*b*c*e^4+10*c^2*e^4-29*a*d*e^4-12*b*d*e^4+37*c*d*e^4+46*d^2*e^4+34*a*e^5+14*b*e^5-26*c*e^5+d*e^5+35*e^6,3158 b^5*d-5*a^4*d^2-29*a^3*b*d^2-36*a^2*b^2*d^2-11*a*b^3*d^2+32*b^4*d^2-17*a^3*c*d^2+47*a^2*b*c*d^2+16*a*b^2*c*d^2-24*b^3*c*d^2+12*a^2*c^2*d^2+20*a*b*c^2*d^2-24*b^2*c^2*d^2-10*a*c^3*d^2-26*b*c^3*d^2+22*c^4*d^2-14*a^3*d^3-49*a^2*b*d^3-44*a*b^2*d^3-20*b^3*d^3+11*a^2*c*d^3-45*a*b*c*d^3-5*b^2*c*d^3-19*a*c^2*d^3-10*b*c^2*d^3-35*c^3*d^3-13*a^2*d^4+18*a*b*d^4+10*b^2*d^4+46*a*c*d^4+15*b*c*d^4-13*c^2*d^4-8*a*d^5+50*b*d^5+2*c*d^5-43*d^6-18*a^5*e-2*a^4*b*e-31*a^3*b^2*e-37*a^2*b^3*e+32*a*b^4*e-4*b^5*e+19*a^4*c*e-42*a^3*b*c*e+40*a^2*b^2*c*e+37*a*b^3*c*e+17*b^4*c*e+39*a^3*c^2*e+10*a^2*b*c^2*e-38*a*b^2*c^2*e+4*b^3*c^2*e+18*a^2*c^3*e+35*a*b*c^3*e-29*b^2*c^3*e-19*a*c^4*e-4*b*c^4*e+28*c^5*e+17*a^4*d*e-20*a^3*b*d*e+18*a^2*b^2*d*e+11*a*b^3*d*e+30*b^4*d*e-2*a^3*c*d*e+43*a^2*b*c*d*e+46*a*b^2*c*d*e+14*b^3*c*d*e+48*a^2*c^2*d*e-5*a*b*c^2*d*e-7*b^2*c^2*d*e+13*a*c^3*d*e+11*b*c^3*d*e+48*c^4*d*e+41*a^3*d^2*e+10*a^2*b*d^2*e-43*a*b^2*d^2*e-41*b^3*d^2*e+47*a^2*c*d^2*e-42*a*b*c*d^2*e+34*b^2*c*d^2*e+34*a*c^2*d^2*e-14*b*c^2*d^2*e-16*c^3*d^2*e-39*a^2*d^3*e+23*a*b*d^3*e-32*b^2*d^3*e-20*a*c*d^3*e+7*b*c*d^3*e-4*c^2*d^3*e+2*a*d^4*e+42*b*d^4*e-38*c*d^4*e-14*d^5*e-9*a^4*e^2+2*a^3*b*e^2-20*a^2*b^2*e^2-15*a*b^3*e^2+30*b^4*e^2-44*a^3*c*e^2-47*a^2*b*c*e^2+11*a*b^2*c*e^2+20*b^3*c*e^2-2*a^2*c^2*e^2+4*a*b*c^2*e^2+49*b^2*c^2*e^2-41*a*c^3*e^2-36*b*c^3*e^2+31*c^4*e^2+22*a^3*d*e^2+39*a^2*b*d*e^2-21*a*b^2*d*e^2+26*b^3*d*e^2+28*a^2*c*d*e^2+41*a*b*c*d*e^2-14*b^2*c*d*e^2+44*a*c^2*d*e^2+27*b*c^2*d*e^2-25*c^3*d*e^2-28*a^2*d^2*e^2-37*a*b*d^2*e^2+20*b^2*d^2*e^2+45*a*c*d^2*e^2+45*b*c*d^2*e^2-28*c^2*d^2*e^2-18*a*d^3*e^2+5*b*d^3*e^2-3*c*d^3*e^2+17*d^4*e^2+18*a^3*e^3+46*a^2*b*e^3+28*a*b^2*e^3-22*b^3*e^3-15*a^2*c*e^3+30*a*b*c*e^3-40*b^2*c*e^3-20*a*c^2*e^3+10*b*c^2*e^3-31*c^3*e^3+19*a^2*d*e^3+29*a*b*d*e^3+12*b^2*d*e^3-39*a*c*d*e^3-32*b*c*d*e^3+12*a*d^2*e^3-26*c*d^2*e^3+14*a^2*e^4+40*a*b*e^4-b^2*e^4+15*a*c*e^4+27*b*c*e^4+34*c^2*e^4-30*a*d*e^4+25*b*d*e^4-50*c*d*e^4+35*d^2*e^4+25*a*e^5+21*b*e^5-10*c*e^5-4*d*e^5-43*e^6,3159 a*b^4*d+47*a^4*d^2+25*a^3*b*d^2-13*a^2*b^2*d^2+26*a*b^3*d^2-24*b^4*d^2-4*a^3*c*d^2-30*a^2*b*c*d^2+11*a*b^2*c*d^2+49*b^3*c*d^2-11*a^2*c^2*d^2-4*a*b*c^2*d^2+44*b^2*c^2*d^2+46*a*c^3*d^2-3*b*c^3*d^2-30*c^4*d^2+8*a^3*d^3+49*a^2*b*d^3+33*a*b^2*d^3+8*b^3*d^3-34*a^2*c*d^3-29*a*b*c*d^3-35*b^2*c*d^3-10*a*c^2*d^3+13*b*c^2*d^3-22*c^3*d^3+8*a^2*d^4+2*a*b*d^4+7*b^2*d^4-14*a*c*d^4+40*b*c*d^4+41*c^2*d^4-14*a*d^5+10*c*d^5-11*d^6-43*a^5*e-2*a^4*b*e-10*a^3*b^2*e-39*a^2*b^3*e+15*a*b^4*e-8*b^5*e+19*a^4*c*e+35*a^3*b*c*e+48*a^2*b^2*c*e-24*a*b^3*c*e-41*b^4*c*e-24*a^3*c^2*e+35*a^2*b*c^2*e-47*a*b^2*c^2*e+28*b^3*c^2*e-10*a^2*c^3*e+28*a*b*c^3*e-43*b^2*c^3*e+10*a*c^4*e-26*b*c^4*e-30*c^5*e+3*a^4*d*e-42*a^3*b*d*e-23*a^2*b^2*d*e+41*a*b^3*d*e+12*b^4*d*e-16*a^3*c*d*e+4*a^2*b*c*d*e+30*a*b^2*c*d*e+14*b^3*c*d*e+15*a^2*c^2*d*e-11*a*b*c^2*d*e+34*b^2*c^2*d*e-48*a*c^3*d*e+15*b*c^3*d*e+38*c^4*d*e+26*a^3*d^2*e-41*a^2*b*d^2*e-8*a*b^2*d^2*e+44*b^3*d^2*e-7*a^2*c*d^2*e+11*a*b*c*d^2*e-3*b^2*c*d^2*e+42*a*c^2*d^2*e+31*b*c^2*d^2*e-35*c^3*d^2*e-23*a^2*d^3*e+47*a*b*d^3*e+26*b^2*d^3*e+40*a*c*d^3*e-24*b*c*d^3*e-34*c^2*d^3*e+4*a*d^4*e-48*b*d^4*e-49*c*d^4*e-23*d^5*e-5*a^4*e^2-15*a^3*b*e^2+5*a^2*b^2*e^2+41*a*b^3*e^2-7*b^4*e^2-35*a^3*c*e^2+5*a^2*b*c*e^2+25*a*b^2*c*e^2-50*b^3*c*e^2+23*a^2*c^2*e^2+43*a*b*c^2*e^2+41*b^2*c^2*e^2+9*a*c^3*e^2-36*b*c^3*e^2-49*c^4*e^2-36*a^3*d*e^2-43*a^2*b*d*e^2-24*a*b^2*d*e^2+34*b^3*d*e^2-29*a^2*c*d*e^2-48*a*b*c*d*e^2+42*b^2*c*d*e^2+34*a*c^2*d*e^2+20*b*c^2*d*e^2-31*c^3*d*e^2+18*a^2*d^2*e^2-3*a*b*d^2*e^2+24*b^2*d^2*e^2-39*a*c*d^2*e^2+39*b*c*d^2*e^2-48*c^2*d^2*e^2-30*a*d^3*e^2-28*b*d^3*e^2+4*c*d^3*e^2+13*d^4*e^2-30*a^3*e^3+47*a^2*b*e^3+2*a*b^2*e^3+31*b^3*e^3+35*a^2*c*e^3+36*a*b*c*e^3-47*b^2*c*e^3+48*a*c^2*e^3-8*b*c^2*e^3-23*c^3*e^3+35*a^2*d*e^3+21*a*b*d*e^3+17*b^2*d*e^3-15*a*c*d*e^3-41*b*c*d*e^3+13*c^2*d*e^3+17*a*d^2*e^3-19*b*d^2*e^3+26*c*d^2*e^3-26*d^3*e^3-38*a^2*e^4+17*a*b*e^4+22*b^2*e^4-6*a*c*e^4-18*b*c*e^4+42*c^2*e^4+26*a*d*e^4-19*b*d*e^4-36*c*d*e^4-22*d^2*e^4+44*a*e^5+32*b*e^5-15*c*e^5-16*d*e^5+2*e^6,3160 a^2*b^3*d-26*a^4*d^2+24*a^3*b*d^2-21*a^2*b^2*d^2-7*a*b^3*d^2-39*b^4*d^2-47*a^3*c*d^2+37*a^2*b*c*d^2+24*a*b^2*c*d^2-6*b^3*c*d^2+20*a^2*c^2*d^2-4*b^2*c^2*d^2+21*a*c^3*d^2-15*b*c^3*d^2-22*c^4*d^2-23*a^3*d^3+21*a^2*b*d^3-16*a*b^2*d^3-38*b^3*d^3-16*a^2*c*d^3+7*a*b*c*d^3-37*b^2*c*d^3-12*a*c^2*d^3+42*b*c^2*d^3+40*c^3*d^3-35*a^2*d^4+29*a*b*d^4-b^2*d^4+21*a*c*d^4+47*b*c*d^4-22*c^2*d^4-11*a*d^5-44*b*d^5+49*c*d^5+33*d^6-35*a^5*e-41*a^4*b*e+17*a^3*b^2*e-6*a^2*b^3*e-12*a*b^4*e+36*b^5*e-6*a^4*c*e-28*a^3*b*c*e+22*a^2*b^2*c*e+10*a*b^3*c*e-34*b^4*c*e+28*a^3*c^2*e-2*a^2*b*c^2*e-48*a*b^2*c^2*e-28*b^3*c^2*e+42*a^2*c^3*e+30*a*b*c^3*e-43*b^2*c^3*e-34*a*c^4*e+33*b*c^4*e-38*c^5*e+39*a^4*d*e-27*a^3*b*d*e+44*a^2*b^2*d*e+12*a*b^3*d*e+18*b^4*d*e-19*a^3*c*d*e-42*a^2*b*c*d*e+24*a*b^2*c*d*e-49*b^3*c*d*e+17*a^2*c^2*d*e+3*a*b*c^2*d*e+39*b^2*c^2*d*e-31*a*c^3*d*e-8*b*c^3*d*e+42*c^4*d*e-42*a^3*d^2*e+49*a^2*b*d^2*e-17*a*b^2*d^2*e-49*b^3*d^2*e-20*a^2*c*d^2*e-11*a*b*c*d^2*e-17*b^2*c*d^2*e+16*a*c^2*d^2*e+41*b*c^2*d^2*e+50*c^3*d^2*e-28*a^2*d^3*e+44*a*b*d^3*e-25*b^2*d^3*e-24*a*c*d^3*e-b*c*d^3*e-45*c^2*d^3*e-3*a*d^4*e-26*b*d^4*e-12*c*d^4*e+4*d^5*e+5*a^4*e^2+28*a^3*b*e^2-42*a^2*b^2*e^2+33*a*b^3*e^2-15*b^4*e^2-40*a^3*c*e^2+47*a^2*b*c*e^2-4*a*b^2*c*e^2-22*b^3*c*e^2-35*a^2*c^2*e^2-8*a*b*c^2*e^2-11*b^2*c^2*e^2-37*a*c^3*e^2-23*b*c^3*e^2+33*c^4*e^2-34*a^3*d*e^2+16*a^2*b*d*e^2-38*a*b^2*d*e^2+32*b^3*d*e^2+10*a^2*c*d*e^2-30*a*b*c*d*e^2+32*b^2*c*d*e^2-6*a*c^2*d*e^2-45*b*c^2*d*e^2-5*c^3*d*e^2-16*a^2*d^2*e^2-14*a*b*d^2*e^2+22*b^2*d^2*e^2+4*a*c*d^2*e^2-37*b*c*d^2*e^2-28*c^2*d^2*e^2-16*a*d^3*e^2+6*b*d^3*e^2+9*c*d^3*e^2-46*d^4*e^2-10*a^3*e^3-50*a^2*b*e^3+18*a*b^2*e^3+20*b^3*e^3-34*a^2*c*e^3+33*a*b*c*e^3-17*b^2*c*e^3-19*a*c^2*e^3-5*b*c^2*e^3+19*c^3*e^3-23*a^2*d*e^3+4*a*b*d*e^3+28*b^2*d*e^3+17*a*c*d*e^3+7*b*c*d*e^3+39*c^2*d*e^3+4*a*d^2*e^3-39*b*d^2*e^3-16*c*d^2*e^3-23*d^3*e^3-23*a^2*e^4-16*a*b*e^4-2*b^2*e^4-24*a*c*e^4-5*b*c*e^4+45*c^2*e^4-10*a*d*e^4-b*d*e^4+50*c*d*e^4+31*d^2*e^4+31*a*e^5-37*b*e^5-44*c*e^5+37*d*e^5-43*e^6,3161 a^3*b^2*d-42*a^4*d^2-17*a^3*b*d^2-23*a^2*b^2*d^2-17*a*b^3*d^2-27*b^4*d^2-50*a^3*c*d^2+27*a^2*b*c*d^2-30*a*b^2*c*d^2-7*b^3*c*d^2+21*a^2*c^2*d^2+13*a*b*c^2*d^2+29*b^2*c^2*d^2-46*a*c^3*d^2+43*b*c^3*d^2-2*c^4*d^2-2*a^3*d^3+45*a^2*b*d^3-15*a*b^2*d^3-47*b^3*d^3-17*a^2*c*d^3-25*a*b*c*d^3+9*b^2*c*d^3-24*a*c^2*d^3+32*b*c^2*d^3+37*c^3*d^3+14*a^2*d^4+23*a*b*d^4+49*b^2*d^4+10*a*c*d^4+19*b*c*d^4-13*c^2*d^4-9*a*d^5+44*b*d^5+39*c*d^5-28*d^6-2*a^5*e+5*a^4*b*e-36*a^3*b^2*e-12*a^2*b^3*e+2*a*b^4*e+15*b^5*e-31*a^4*c*e-3*a^3*b*c*e+46*a^2*b^2*c*e+33*a*b^3*c*e+16*b^4*c*e+24*a^3*c^2*e-36*a^2*b*c^2*e+10*a*b^2*c^2*e+4*b^3*c^2*e+44*a^2*c^3*e+18*a*b*c^3*e-37*b^2*c^3*e-47*a*c^4*e+32*b*c^4*e-29*c^5*e+14*a^4*d*e+6*a^3*b*d*e+44*a^2*b^2*d*e+23*a*b^3*d*e+33*b^4*d*e-7*a^3*c*d*e+10*a^2*b*c*d*e+30*a*b^2*c*d*e+41*b^3*c*d*e-50*a^2*c^2*d*e+a*b*c^2*d*e+33*b^2*c^2*d*e-26*a*c^3*d*e-32*b*c^3*d*e+47*c^4*d*e+39*a^3*d^2*e+40*a^2*b*d^2*e+6*a*b^2*d^2*e+30*b^3*d^2*e-30*a^2*c*d^2*e-21*a*b*c*d^2*e-41*b^2*c*d^2*e-21*a*c^2*d^2*e-17*b*c^2*d^2*e-21*c^3*d^2*e+26*a^2*d^3*e+50*a*b*d^3*e+39*b^2*d^3*e-34*a*c*d^3*e-25*b*c*d^3*e-34*c^2*d^3*e+9*a*d^4*e-40*b*d^4*e-45*c*d^4*e-3*d^5*e-34*a^4*e^2-22*a^3*b*e^2-5*a^2*b^2*e^2+45*a*b^3*e^2-16*b^4*e^2-12*a^3*c*e^2+33*a^2*b*c*e^2+31*a*b^2*c*e^2+19*b^3*c*e^2+49*a^2*c^2*e^2-19*a*b*c^2*e^2+8*b^2*c^2*e^2+32*a*c^3*e^2+31*b*c^3*e^2+21*c^4*e^2+13*a^3*d*e^2-35*a^2*b*d*e^2-29*a*b^2*d*e^2-41*b^3*d*e^2+11*a^2*c*d*e^2+46*a*b*c*d*e^2+b^2*c*d*e^2+5*a*c^2*d*e^2+18*c^3*d*e^2-17*a^2*d^2*e^2+45*a*b*d^2*e^2-40*b^2*d^2*e^2-6*a*c*d^2*e^2-32*b*c*d^2*e^2-19*c^2*d^2*e^2+48*a*d^3*e^2+41*b*d^3*e^2-30*c*d^3*e^2-38*d^4*e^2+4*a^3*e^3+8*a^2*b*e^3-49*a*b^2*e^3+36*b^3*e^3-5*a^2*c*e^3-21*a*b*c*e^3-27*b^2*c*e^3+5*a*c^2*e^3+31*b*c^2*e^3+15*c^3*e^3+41*a^2*d*e^3+19*a*b*d*e^3+10*b^2*d*e^3+41*a*c*d*e^3+45*b*c*d*e^3+12*c^2*d*e^3-28*a*d^2*e^3+14*b*d^2*e^3+4*c*d^2*e^3-25*d^3*e^3+38*a^2*e^4+37*a*b*e^4-15*b^2*e^4-11*a*c*e^4-24*b*c*e^4+33*c^2*e^4-31*a*d*e^4+14*b*d*e^4+49*c*d*e^4+34*d^2*e^4-34*a*e^5-23*b*e^5+50*c*e^5+19*d*e^5+26*e^6,3162 a^4*b*d+4*a^4*d^2-24*a^3*b*d^2+8*a^2*b^2*d^2-24*a*b^3*d^2-b^4*d^2+31*a^3*c*d^2-45*a^2*b*c*d^2-12*a*b^2*c*d^2+45*b^3*c*d^2+29*a^2*c^2*d^2+41*a*b*c^2*d^2-2*b^2*c^2*d^2-44*a*c^3*d^2-9*b*c^3*d^2+32*c^4*d^2+50*a^3*d^3-6*a^2*b*d^3+11*a*b^2*d^3-6*b^3*d^3-36*a^2*c*d^3-13*a*b*c*d^3-44*b^2*c*d^3+35*a*c^2*d^3+29*b*c^2*d^3-32*c^3*d^3+45*a^2*d^4-24*a*b*d^4-b^2*d^4+48*a*c*d^4+29*b*c*d^4+43*c^2*d^4+34*a*d^5-b*d^5+14*c*d^5+12*d^6-50*a^5*e-26*a^4*b*e-38*a^3*b^2*e-5*a^2*b^3*e+41*a*b^4*e+38*b^5*e-14*a^4*c*e+46*a^3*b*c*e-14*a^2*b^2*c*e-24*a*b^3*c*e+31*b^4*c*e-24*a^3*c^2*e-50*a^2*b*c^2*e+47*a*b^2*c^2*e+42*b^3*c^2*e-15*a^2*c^3*e-26*a*b*c^3*e+26*b^2*c^3*e-38*a*c^4*e-34*b*c^4*e+44*c^5*e-29*a^4*d*e+26*a^3*b*d*e-25*a^2*b^2*d*e+41*a*b^3*d*e+46*b^4*d*e+46*a^3*c*d*e-28*a^2*b*c*d*e-10*a*b^2*c*d*e+18*b^3*c*d*e+28*a^2*c^2*d*e+25*a*b*c^2*d*e-8*b^2*c^2*d*e-36*a*c^3*d*e+50*b*c^3*d*e-25*c^4*d*e+7*a^3*d^2*e+29*a^2*b*d^2*e-50*a*b^2*d^2*e-34*b^3*d^2*e-6*a^2*c*d^2*e-13*a*b*c*d^2*e+21*b^2*c*d^2*e+32*a*c^2*d^2*e-10*b*c^2*d^2*e-19*c^3*d^2*e-27*a^2*d^3*e+46*a*b*d^3*e-4*b^2*d^3*e+17*a*c*d^3*e+11*b*c*d^3*e+7*c^2*d^3*e+18*a*d^4*e-23*b*d^4*e-45*c*d^4*e+40*d^5*e+36*a^4*e^2-2*a^3*b*e^2-17*a^2*b^2*e^2+11*a*b^3*e^2+49*b^4*e^2-31*a^3*c*e^2+8*a^2*b*c*e^2-12*a*b^2*c*e^2-15*b^3*c*e^2+14*a^2*c^2*e^2-a*b*c^2*e^2+38*b^2*c^2*e^2-40*a*c^3*e^2-25*b*c^3*e^2+34*c^4*e^2-2*a^3*d*e^2-19*a^2*b*d*e^2+35*a*b^2*d*e^2-49*b^3*d*e^2-20*a^2*c*d*e^2+47*a*b*c*d*e^2-42*b^2*c*d*e^2+41*a*c^2*d*e^2+23*b*c^2*d*e^2+22*c^3*d*e^2-16*a^2*d^2*e^2+14*a*b*d^2*e^2-10*b^2*d^2*e^2+47*a*c*d^2*e^2+43*b*c*d^2*e^2+50*c^2*d^2*e^2-35*b*d^3*e^2+45*c*d^3*e^2+5*d^4*e^2+18*a^3*e^3+42*a^2*b*e^3+a*b^2*e^3+26*b^3*e^3+16*a^2*c*e^3+40*b^2*c*e^3-27*a*c^2*e^3-9*b*c^2*e^3-26*c^3*e^3-24*a^2*d*e^3-6*a*b*d*e^3-26*b^2*d*e^3+47*a*c*d*e^3-40*b*c*d*e^3+30*c^2*d*e^3-46*a*d^2*e^3-27*b*d^2*e^3-42*c*d^2*e^3-10*d^3*e^3+25*a^2*e^4+a*b*e^4-15*b^2*e^4-13*a*c*e^4-33*b*c*e^4+20*c^2*e^4+5*a*d*e^4-42*b*d*e^4-5*c*d*e^4-24*d^2*e^4-34*a*e^5+35*b*e^5-27*c*e^5-43*d*e^5-43*e^6,3163 a^5*d+14*a^4*d^2-3*a^3*b*d^2+7*a^2*b^2*d^2-31*a*b^3*d^2-42*b^4*d^2-16*a^3*c*d^2+36*a^2*b*c*d^2-17*a*b^2*c*d^2-15*b^3*c*d^2+17*a^2*c^2*d^2+36*a*b*c^2*d^2+12*b^2*c^2*d^2-47*a*c^3*d^2-16*b*c^3*d^2-9*c^4*d^2-38*a^3*d^3-43*a^2*b*d^3+2*a*b^2*d^3-44*b^3*d^3-12*a^2*c*d^3+32*a*b*c*d^3+21*b^2*c*d^3-10*a*c^2*d^3-28*b*c^2*d^3-c^3*d^3+18*a^2*d^4-13*a*b*d^4+13*b^2*d^4+31*a*c*d^4+27*b*c*d^4+34*c^2*d^4-19*a*d^5-36*b*d^5-46*c*d^5+11*d^6-26*a^5*e-24*a^4*b*e-5*a^3*b^2*e+27*a^2*b^3*e-6*a*b^4*e-30*b^5*e+35*a^4*c*e-42*a^3*b*c*e+a^2*b^2*c*e-22*a*b^3*c*e+12*b^4*c*e+7*a^3*c^2*e-26*a^2*b*c^2*e-43*a*b^2*c^2*e-18*b^3*c^2*e+10*a^2*c^3*e-10*a*b*c^3*e+48*b^2*c^3*e-19*a*c^4*e-29*b*c^4*e-3*c^5*e+20*a^4*d*e+10*a^3*b*d*e+28*a^2*b^2*d*e+14*a*b^3*d*e-15*b^4*d*e-7*a^3*c*d*e-24*a^2*b*c*d*e-26*a*b^2*c*d*e+32*b^3*c*d*e+2*a^2*c^2*d*e+16*a*b*c^2*d*e+44*b^2*c^2*d*e-48*a*c^3*d*e+7*b*c^3*d*e+3*c^4*d*e-8*a^3*d^2*e+23*a^2*b*d^2*e-39*a*b^2*d^2*e+35*b^3*d^2*e-2*a^2*c*d^2*e-17*a*b*c*d^2*e+46*b^2*c*d^2*e-26*a*c^2*d^2*e+7*b*c^2*d^2*e+47*c^3*d^2*e-38*a^2*d^3*e+12*a*b*d^3*e-14*b^2*d^3*e-a*c*d^3*e+12*b*c*d^3*e+30*c^2*d^3*e-50*a*d^4*e-34*b*d^4*e-6*c*d^4*e-24*d^5*e-37*a^4*e^2-15*a^3*b*e^2+17*a^2*b^2*e^2+26*a*b^3*e^2-31*b^4*e^2+14*a^3*c*e^2+30*a^2*b*c*e^2-9*a*b^2*c*e^2-42*b^3*c*e^2-39*a^2*c^2*e^2-43*a*b*c^2*e^2+41*b^2*c^2*e^2-38*a*c^3*e^2-47*b*c^3*e^2+33*c^4*e^2+15*a^3*d*e^2-36*a^2*b*d*e^2+6*a*b^2*d*e^2-15*b^3*d*e^2+24*a^2*c*d*e^2-50*a*b*c*d*e^2-6*b^2*c*d*e^2-41*a*c^2*d*e^2+42*b*c^2*d*e^2+28*c^3*d*e^2-19*a^2*d^2*e^2-47*a*b*d^2*e^2+49*b^2*d^2*e^2-41*a*c*d^2*e^2-3*b*c*d^2*e^2-38*c^2*d^2*e^2+4*a*d^3*e^2-30*b*d^3*e^2+47*c*d^3*e^2+11*d^4*e^2-44*a^3*e^3-25*a^2*b*e^3+18*a*b^2*e^3-14*b^3*e^3+18*a^2*c*e^3-15*a*b*c*e^3+32*b^2*c*e^3+38*a*c^2*e^3-30*b*c^2*e^3-3*c^3*e^3-33*a^2*d*e^3-42*a*b*d*e^3-8*b^2*d*e^3-14*a*c*d*e^3+49*b*c*d*e^3-40*c^2*d*e^3-40*a*d^2*e^3+32*b*d^2*e^3-40*c*d^2*e^3+11*d^3*e^3-43*a^2*e^4-29*a*b*e^4+9*b^2*e^4-20*a*c*e^4+14*b*c*e^4+38*c^2*e^4-32*a*d*e^4+22*b*d*e^4-9*c*d*e^4-34*d^2*e^4+6*a*e^5-15*b*e^5+13*c*e^5-40*d*e^5-40*e^6,3164 c^6+36*a^4*d^2-8*a^3*b*d^2-40*a^2*b^2*d^2-45*a*b^3*d^2+36*b^4*d^2-21*a^3*c*d^2-27*a^2*b*c*d^2+46*a*b^2*c*d^2+30*b^3*c*d^2+4*a*b*c^2*d^2-20*b^2*c^2*d^2+3*a*c^3*d^2-48*b*c^3*d^2-29*c^4*d^2+13*a^3*d^3-3*a^2*b*d^3-13*a*b^2*d^3-38*b^3*d^3+35*a^2*c*d^3-5*a*b*c*d^3-46*b^2*c*d^3-26*a*c^2*d^3-20*b*c^2*d^3-4*c^3*d^3+6*a^2*d^4-14*a*b*d^4+16*b^2*d^4+44*a*c*d^4-10*b*c*d^4+15*c^2*d^4+31*a*d^5-22*b*d^5-36*c*d^5-34*d^6-28*a^5*e+46*a^4*b*e+5*a^3*b^2*e+36*a^2*b^3*e-2*a*b^4*e+13*b^5*e-40*a^4*c*e+31*a^3*b*c*e+49*a^2*b^2*c*e+50*a*b^3*c*e+8*b^4*c*e-23*a^2*b*c^2*e+7*a*b^2*c^2*e+36*b^3*c^2*e-12*a^2*c^3*e-a*b*c^3*e-32*b^2*c^3*e+33*a*c^4*e-45*b*c^4*e+7*c^5*e-13*a^4*d*e-38*a^3*b*d*e+17*a^2*b^2*d*e-33*a*b^3*d*e-33*b^4*d*e-47*a^3*c*d*e+42*a^2*b*c*d*e-5*a*b^2*c*d*e-35*b^3*c*d*e-34*a^2*c^2*d*e-36*a*b*c^2*d*e+17*b^2*c^2*d*e+19*a*c^3*d*e+41*b*c^3*d*e-8*c^4*d*e-15*a^3*d^2*e-10*a^2*b*d^2*e-37*a*b^2*d^2*e-40*b^3*d^2*e-2*a^2*c*d^2*e-28*a*b*c*d^2*e+30*b^2*c*d^2*e+45*a*c^2*d^2*e+26*b*c^2*d^2*e-20*c^3*d^2*e-48*a^2*d^3*e+16*a*b*d^3*e+12*b^2*d^3*e+47*a*c*d^3*e-11*b*c*d^3*e+27*c^2*d^3*e-29*a*d^4*e+33*b*d^4*e+6*c*d^4*e-10*d^5*e-2*a^4*e^2-27*a^3*b*e^2-18*a^2*b^2*e^2-46*a*b^3*e^2-19*b^4*e^2+9*a^3*c*e^2+45*a^2*b*c*e^2+30*a*b^2*c*e^2+35*b^3*c*e^2-31*a^2*c^2*e^2+33*a*b*c^2*e^2+36*b^2*c^2*e^2-18*a*c^3*e^2+5*b*c^3*e^2-8*c^4*e^2-37*a^3*d*e^2+46*a^2*b*d*e^2-37*a*b^2*d*e^2+28*b^3*d*e^2+6*a^2*c*d*e^2-24*a*b*c*d*e^2+9*b^2*c*d*e^2+36*a*c^2*d*e^2-44*b*c^2*d*e^2+32*c^3*d*e^2+49*a^2*d^2*e^2-44*a*b*d^2*e^2-12*b^2*d^2*e^2-6*a*c*d^2*e^2+7*b*c*d^2*e^2-2*c^2*d^2*e^2+17*a*d^3*e^2-15*b*d^3*e^2+18*c*d^3*e^2-24*d^4*e^2-26*a^3*e^3+44*a^2*b*e^3-28*a*b^2*e^3+28*b^3*e^3-8*a^2*c*e^3+6*a*b*c*e^3-12*b^2*c*e^3-25*a*c^2*e^3-37*b*c^2*e^3+36*c^3*e^3-18*a^2*d*e^3-38*a*b*d*e^3+b^2*d*e^3+3*a*c*d*e^3+47*b*c*d*e^3+3*c^2*d*e^3-5*a*d^2*e^3-34*c*d^2*e^3-11*d^3*e^3-19*a^2*e^4+16*a*b*e^4+17*b^2*e^4+23*a*c*e^4-26*b*c*e^4+10*c^2*e^4+23*a*d*e^4-30*b*d*e^4-46*c*d*e^4-13*d^2*e^4-23*a*e^5+41*b*e^5+6*c*e^5-50*d*e^5+28*e^6,3165 b*c^5+8*a^4*d^2-16*a^3*b*d^2+26*a^2*b^2*d^2+a*b^3*d^2+40*b^4*d^2-34*a^3*c*d^2+5*a^2*b*c*d^2+18*a*b^2*c*d^2-30*b^3*c*d^2+9*a^2*c^2*d^2+30*a*b*c^2*d^2-17*b^2*c^2*d^2+26*a*c^3*d^2+49*b*c^3*d^2+42*c^4*d^2+2*a^3*d^3+28*a^2*b*d^3-7*a*b^2*d^3-37*b^3*d^3+38*a^2*c*d^3-5*a*b*c*d^3-13*b^2*c*d^3-11*a*c^2*d^3-37*b*c^2*d^3+4*c^3*d^3-8*a^2*d^4-9*a*b*d^4+28*b^2*d^4+4*a*c*d^4+27*b*c*d^4+39*c^2*d^4+9*a*d^5-24*b*d^5+27*c*d^5+13*d^6-23*a^5*e-41*a^4*b*e-23*a^3*b^2*e+28*a^2*b^3*e+29*a*b^4*e-49*b^5*e-4*a^4*c*e-16*a^3*b*c*e-16*a^2*b^2*c*e+29*a*b^3*c*e-15*b^4*c*e-27*a^3*c^2*e+44*a^2*b*c^2*e-23*a*b^2*c^2*e-18*b^3*c^2*e-24*a^2*c^3*e-12*b^2*c^3*e-48*a*c^4*e+12*b*c^4*e+28*c^5*e-49*a^4*d*e+18*a^3*b*d*e+40*a^2*b^2*d*e-5*a*b^3*d*e-23*b^4*d*e-9*a^3*c*d*e-12*a^2*b*c*d*e-39*a*b^2*c*d*e-43*b^3*c*d*e+36*a^2*c^2*d*e+19*a*b*c^2*d*e+11*b^2*c^2*d*e+24*a*c^3*d*e+22*b*c^3*d*e+14*c^4*d*e-23*a^3*d^2*e-14*a^2*b*d^2*e+47*a*b^2*d^2*e+32*b^3*d^2*e+47*a^2*c*d^2*e+26*a*b*c*d^2*e-39*b^2*c*d^2*e+11*a*c^2*d^2*e-44*b*c^2*d^2*e-20*c^3*d^2*e-23*a^2*d^3*e-3*a*b*d^3*e-11*b^2*d^3*e-34*a*c*d^3*e+5*b*c*d^3*e-3*c^2*d^3*e-6*a*d^4*e-15*b*d^4*e+41*c*d^4*e+18*d^5*e+44*a^4*e^2-49*a^3*b*e^2+38*a^2*b^2*e^2+7*a*b^3*e^2-11*b^4*e^2+2*a^3*c*e^2-6*a^2*b*c*e^2-34*a*b^2*c*e^2-21*b^3*c*e^2+12*a^2*c^2*e^2+7*a*b*c^2*e^2-20*b^2*c^2*e^2-3*a*c^3*e^2-38*b*c^3*e^2-5*c^4*e^2-46*a^3*d*e^2-20*a^2*b*d*e^2+21*a*b^2*d*e^2-36*b^3*d*e^2-14*a^2*c*d*e^2+6*a*b*c*d*e^2+29*b^2*c*d*e^2+12*a*c^2*d*e^2-2*b*c^2*d*e^2+41*c^3*d*e^2+41*a^2*d^2*e^2+34*a*b*d^2*e^2-2*b^2*d^2*e^2+9*a*c*d^2*e^2+10*b*c*d^2*e^2-11*c^2*d^2*e^2+45*a*d^3*e^2+38*b*d^3*e^2-20*c*d^3*e^2-12*d^4*e^2-35*a^3*e^3+23*a*b^2*e^3+37*b^3*e^3+10*a^2*c*e^3+6*a*b*c*e^3+21*b^2*c*e^3-24*a*c^2*e^3+28*b*c^2*e^3+26*c^3*e^3+22*a^2*d*e^3+26*a*b*d*e^3+50*b^2*d*e^3+43*a*c*d*e^3+39*b*c*d*e^3-42*c^2*d*e^3-27*a*d^2*e^3+38*b*d^2*e^3+19*c*d^2*e^3-15*d^3*e^3+37*a^2*e^4+7*a*b*e^4-12*b^2*e^4-34*a*c*e^4+25*b*c*e^4+26*c^2*e^4+a*d*e^4-25*b*d*e^4-15*c*d*e^4-50*d^2*e^4-50*a*e^5-45*b*e^5+30*c*e^5+6*d*e^5+49*e^6,3166 a*c^5+28*a^4*d^2-23*a^3*b*d^2+10*a^2*b^2*d^2-36*a*b^3*d^2+6*b^4*d^2+25*a^3*c*d^2-47*a^2*b*c*d^2+28*a*b^2*c*d^2-36*b^3*c*d^2-31*a^2*c^2*d^2-35*a*b*c^2*d^2-42*b^2*c^2*d^2+20*a*c^3*d^2-45*b*c^3*d^2+49*c^4*d^2-24*a^3*d^3+25*a^2*b*d^3+27*a*b^2*d^3+49*b^3*d^3-9*a^2*c*d^3-46*a*b*c*d^3-39*b^2*c*d^3-9*a*c^2*d^3-46*b*c^2*d^3+43*c^3*d^3-35*a^2*d^4+11*a*b*d^4+15*b^2*d^4-4*a*c*d^4+42*b*c*d^4+19*c^2*d^4-35*a*d^5-23*b*d^5-45*c*d^5+6*d^6-36*a^5*e-35*a^4*b*e+47*a^3*b^2*e-20*a^2*b^3*e+28*a*b^4*e+37*b^5*e-50*a^4*c*e-35*a^3*b*c*e+a^2*b^2*c*e+15*a*b^3*c*e-2*b^4*c*e-10*a^3*c^2*e-50*a^2*b*c^2*e-34*a*b^2*c^2*e+28*b^3*c^2*e+18*a^2*c^3*e-13*a*b*c^3*e-17*b^2*c^3*e-19*a*c^4*e+9*b*c^4*e-43*c^5*e-29*a^4*d*e-17*a^3*b*d*e+47*a^2*b^2*d*e+26*a*b^3*d*e-13*b^4*d*e+11*a^3*c*d*e+5*a^2*b*c*d*e-25*a*b^2*c*d*e+26*b^3*c*d*e-17*a^2*c^2*d*e-37*a*b*c^2*d*e-7*b^2*c^2*d*e+28*a*c^3*d*e+28*b*c^3*d*e-16*c^4*d*e+30*a^3*d^2*e-25*a^2*b*d^2*e+9*a*b^2*d^2*e+34*b^3*d^2*e+2*a^2*c*d^2*e+30*a*b*c*d^2*e-37*b^2*c*d^2*e+33*a*c^2*d^2*e-5*b*c^2*d^2*e-4*c^3*d^2*e+50*a^2*d^3*e-50*a*b*d^3*e+9*b^2*d^3*e+11*a*c*d^3*e-31*b*c*d^3*e+29*c^2*d^3*e-37*a*d^4*e-22*b*d^4*e-20*c*d^4*e-30*d^5*e+19*a^4*e^2+42*a^3*b*e^2+43*a^2*b^2*e^2-22*a*b^3*e^2+40*b^4*e^2-12*a^3*c*e^2-37*a^2*b*c*e^2-38*a*b^2*c*e^2+47*b^3*c*e^2+33*a^2*c^2*e^2-26*a*b*c^2*e^2+8*b^2*c^2*e^2+43*a*c^3*e^2+43*b*c^3*e^2-26*c^4*e^2+13*a^3*d*e^2+7*a^2*b*d*e^2-38*a*b^2*d*e^2+28*b^3*d*e^2-35*a^2*c*d*e^2+41*a*b*c*d*e^2+2*b^2*c*d*e^2-44*a*c^2*d*e^2-5*b*c^2*d*e^2+35*c^3*d*e^2+46*a^2*d^2*e^2-32*a*b*d^2*e^2-37*b^2*d^2*e^2+4*a*c*d^2*e^2+15*b*c*d^2*e^2+13*c^2*d^2*e^2+14*a*d^3*e^2+3*b*d^3*e^2-7*c*d^3*e^2+9*d^4*e^2-43*a^3*e^3+46*a^2*b*e^3-17*a*b^2*e^3+12*b^3*e^3-9*a^2*c*e^3+40*a*b*c*e^3+7*b^2*c*e^3-31*a*c^2*e^3+32*b*c^2*e^3-49*a^2*d*e^3+22*a*b*d*e^3+27*b^2*d*e^3+34*a*c*d*e^3-39*b*c*d*e^3-17*c^2*d*e^3-39*a*d^2*e^3+20*b*d^2*e^3-10*c*d^2*e^3+2*d^3*e^3+4*a^2*e^4+21*a*b*e^4+20*b^2*e^4+36*a*c*e^4+49*b*c*e^4+24*c^2*e^4-31*a*d*e^4+23*b*d*e^4+48*c*d*e^4-12*d^2*e^4+8*a*e^5-8*b*e^5-15*c*e^5-d*e^5+24*e^6,3167 b^2*c^4-39*a^4*d^2+a^3*b*d^2+26*a^2*b^2*d^2+29*a*b^3*d^2-5*b^4*d^2+13*a^3*c*d^2-47*a^2*b*c*d^2+17*a*b^2*c*d^2+22*b^3*c*d^2+25*a^2*c^2*d^2-2*a*b*c^2*d^2+18*b^2*c^2*d^2+43*a*c^3*d^2+48*b*c^3*d^2-24*c^4*d^2-17*a^3*d^3-16*a^2*b*d^3-3*a*b^2*d^3+35*b^3*d^3+8*a^2*c*d^3+30*a*b*c*d^3-6*b^2*c*d^3+17*a*c^2*d^3-25*b*c^2*d^3+34*c^3*d^3+13*a^2*d^4-49*a*b*d^4-48*b^2*d^4-6*a*c*d^4+43*b*c*d^4+31*c^2*d^4+30*a*d^5-12*b*d^5+4*c*d^5+39*d^6+48*a^5*e+15*a^4*b*e-41*a^3*b^2*e+41*a^2*b^3*e-16*a*b^4*e+28*b^5*e-48*a^4*c*e+11*a^3*b*c*e+42*a^2*b^2*c*e+34*a*b^3*c*e+48*b^4*c*e-24*a^3*c^2*e+29*a^2*b*c^2*e+6*a*b^2*c^2*e+18*b^3*c^2*e-31*a^2*c^3*e+15*a*b*c^3*e+22*b^2*c^3*e-a*c^4*e+15*b*c^4*e-46*c^5*e-36*a^4*d*e+a^3*b*d*e+46*a^2*b^2*d*e-29*a*b^3*d*e+41*b^4*d*e-13*a^3*c*d*e-4*a^2*b*c*d*e-39*a*b^2*c*d*e-39*b^3*c*d*e+35*a^2*c^2*d*e-29*a*b*c^2*d*e-26*b^2*c^2*d*e-37*a*c^3*d*e-8*b*c^3*d*e-13*c^4*d*e+44*a^3*d^2*e-9*a^2*b*d^2*e-38*a*b^2*d^2*e-30*b^3*d^2*e+49*a^2*c*d^2*e+8*a*b*c*d^2*e-35*b^2*c*d^2*e+40*a*c^2*d^2*e-19*b*c^2*d^2*e-25*c^3*d^2*e+47*a^2*d^3*e+17*a*b*d^3*e-41*b^2*d^3*e-18*a*c*d^3*e+38*b*c*d^3*e+22*c^2*d^3*e-30*a*d^4*e+25*b*d^4*e-11*c*d^4*e-8*d^5*e+47*a^4*e^2+2*a^3*b*e^2+5*a^2*b^2*e^2-31*a*b^3*e^2+21*b^4*e^2-46*a^3*c*e^2-28*a^2*b*c*e^2+49*a*b^2*c*e^2+31*b^3*c*e^2-45*a^2*c^2*e^2+26*a*b*c^2*e^2+18*b^2*c^2*e^2+6*a*c^3*e^2-17*b*c^3*e^2-4*c^4*e^2-8*a^3*d*e^2-37*a^2*b*d*e^2-43*a*b^2*d*e^2+10*b^3*d*e^2+32*a^2*c*d*e^2+21*a*b*c*d*e^2+9*b^2*c*d*e^2-34*a*c^2*d*e^2-50*b*c^2*d*e^2-7*c^3*d*e^2+31*a^2*d^2*e^2+22*b^2*d^2*e^2-35*a*c*d^2*e^2-3*b*c*d^2*e^2+13*c^2*d^2*e^2-35*a*d^3*e^2-45*b*d^3*e^2-44*c*d^3*e^2+44*d^4*e^2+7*a^3*e^3+17*a^2*b*e^3+8*a*b^2*e^3+30*b^3*e^3-28*a^2*c*e^3-25*a*b*c*e^3+6*b^2*c*e^3-29*a*c^2*e^3-29*b*c^2*e^3-23*c^3*e^3-43*a^2*d*e^3+44*a*b*d*e^3+41*b^2*d*e^3-8*a*c*d*e^3-13*b*c*d*e^3+27*c^2*d*e^3+5*a*d^2*e^3+8*b*d^2*e^3+11*c*d^2*e^3-50*d^3*e^3+4*a^2*e^4-31*a*b*e^4-2*b^2*e^4-2*a*c*e^4-27*b*c*e^4-c^2*e^4-17*a*d*e^4-30*b*d*e^4-15*c*d*e^4+5*d^2*e^4-34*a*e^5-49*b*e^5+26*c*e^5-44*d*e^5+46*e^6,3168 a*b*c^4+44*a^4*d^2-12*a^3*b*d^2-6*a^2*b^2*d^2-20*a*b^3*d^2+48*b^4*d^2+19*a^3*c*d^2+4*a^2*b*c*d^2+50*a*b^2*c*d^2+34*b^3*c*d^2-a^2*c^2*d^2-24*a*b*c^2*d^2+43*b^2*c^2*d^2-21*a*c^3*d^2-29*b*c^3*d^2+36*c^4*d^2+48*a^3*d^3-26*a^2*b*d^3-16*a*b^2*d^3+29*b^3*d^3-48*a^2*c*d^3-19*a*b*c*d^3-17*b^2*c*d^3-44*a*c^2*d^3+5*b*c^2*d^3-6*c^3*d^3-a^2*d^4-30*a*b*d^4-16*b^2*d^4+20*a*c*d^4+17*b*c*d^4-50*c^2*d^4+36*a*d^5-36*b*d^5-2*c*d^5+46*d^6-10*a^5*e-39*a^4*b*e+20*a^3*b^2*e+45*a^2*b^3*e-35*a*b^4*e+2*b^5*e+23*a^4*c*e-12*a^3*b*c*e-5*a^2*b^2*c*e+5*a*b^3*c*e-8*b^4*c*e+49*a^3*c^2*e+11*a^2*b*c^2*e-11*a*b^2*c^2*e+28*b^3*c^2*e+34*a^2*c^3*e+50*a*b*c^3*e+33*b^2*c^3*e-48*a*c^4*e-12*b*c^4*e+30*c^5*e+3*a^4*d*e-34*a^3*b*d*e+14*a^2*b^2*d*e-47*a*b^3*d*e+34*b^4*d*e-50*a^3*c*d*e-18*a^2*b*c*d*e-39*a*b^2*c*d*e-27*b^3*c*d*e-42*a^2*c^2*d*e-43*a*b*c^2*d*e+28*b^2*c^2*d*e+45*a*c^3*d*e+37*b*c^3*d*e-36*c^4*d*e+21*a^3*d^2*e+36*a^2*b*d^2*e+8*a*b^2*d^2*e-16*b^3*d^2*e+43*a^2*c*d^2*e+24*b^2*c*d^2*e-21*a*c^2*d^2*e+29*b*c^2*d^2*e-14*c^3*d^2*e+11*a^2*d^3*e+16*a*b*d^3*e-24*b^2*d^3*e+8*a*c*d^3*e-44*b*c*d^3*e+13*c^2*d^3*e-32*a*d^4*e+b*d^4*e-31*c*d^4*e-32*d^5*e+32*a^4*e^2-27*a^3*b*e^2+29*a^2*b^2*e^2-30*a*b^3*e^2+35*b^4*e^2-19*a^3*c*e^2+45*a^2*b*c*e^2-9*a*b^2*c*e^2+9*b^3*c*e^2-33*a^2*c^2*e^2+24*a*b*c^2*e^2-5*b^2*c^2*e^2-42*a*c^3*e^2+32*b*c^3*e^2+37*c^4*e^2+36*a^3*d*e^2-44*a^2*b*d*e^2+46*a*b^2*d*e^2+37*b^3*d*e^2+31*a^2*c*d*e^2+32*a*b*c*d*e^2-37*b^2*c*d*e^2-45*a*c^2*d*e^2-37*b*c^2*d*e^2+38*c^3*d*e^2+40*a^2*d^2*e^2-44*a*b*d^2*e^2+39*b^2*d^2*e^2-20*a*c*d^2*e^2+46*b*c*d^2*e^2+c^2*d^2*e^2-13*a*d^3*e^2+16*b*d^3*e^2-17*c*d^3*e^2+41*d^4*e^2-18*a^3*e^3+12*a^2*b*e^3-20*a*b^2*e^3+34*b^3*e^3+21*a^2*c*e^3+19*a*b*c*e^3+22*b^2*c*e^3+41*a*c^2*e^3+42*b*c^2*e^3-32*c^3*e^3-24*a^2*d*e^3-26*a*b*d*e^3-43*b^2*d*e^3-17*a*c*d*e^3-24*b*c*d*e^3+36*c^2*d*e^3+48*a*d^2*e^3+38*b*d^2*e^3-43*c*d^2*e^3-31*d^3*e^3-21*a^2*e^4+45*a*b*e^4-12*b^2*e^4-42*a*c*e^4-38*b*c*e^4-27*c^2*e^4-3*a*d*e^4-45*b*d*e^4-17*c*d*e^4+15*d^2*e^4+48*a*e^5+21*b*e^5-7*c*e^5-36*d*e^5+12*e^6,3169 a^2*c^4+45*a^4*d^2-49*a^3*b*d^2-20*a^2*b^2*d^2-12*a*b^3*d^2-21*b^4*d^2-29*a^3*c*d^2+23*a^2*b*c*d^2+6*a*b^2*c*d^2-30*b^3*c*d^2-33*a^2*c^2*d^2+31*a*b*c^2*d^2+12*b^2*c^2*d^2+20*a*c^3*d^2-48*b*c^3*d^2-21*c^4*d^2-23*a^3*d^3-38*a^2*b*d^3-41*a*b^2*d^3-3*b^3*d^3+13*a^2*c*d^3-10*a*b*c*d^3-14*b^2*c*d^3+47*a*c^2*d^3+46*b*c^2*d^3-49*c^3*d^3-a^2*d^4-13*a*b*d^4+34*b^2*d^4+8*a*c*d^4-44*b*c*d^4+c^2*d^4-10*a*d^5-b*d^5-34*c*d^5-8*d^6-28*a^5*e+21*a^4*b*e-44*a^3*b^2*e-3*a^2*b^3*e-7*a*b^4*e+49*b^5*e-25*a^4*c*e+22*a^3*b*c*e+18*a^2*b^2*c*e-15*a*b^3*c*e+31*b^4*c*e-27*a^3*c^2*e+9*a^2*b*c^2*e-9*a*b^2*c^2*e+50*b^3*c^2*e-a^2*c^3*e-20*a*b*c^3*e+21*b^2*c^3*e+25*a*c^4*e-29*b*c^4*e-41*c^5*e+28*a^4*d*e-7*a^3*b*d*e-18*a^2*b^2*d*e-33*a*b^3*d*e-32*b^4*d*e-9*a^3*c*d*e-18*a^2*b*c*d*e-7*a*b^2*c*d*e-49*b^3*c*d*e+23*a^2*c^2*d*e+32*a*b*c^2*d*e+17*b^2*c^2*d*e-26*a*c^3*d*e+30*b*c^3*d*e-4*c^4*d*e+17*a^3*d^2*e-31*a^2*b*d^2*e+7*a*b^2*d^2*e-10*a^2*c*d^2*e+9*a*b*c*d^2*e+49*b^2*c*d^2*e-26*a*c^2*d^2*e-21*b*c^2*d^2*e+13*c^3*d^2*e+32*a^2*d^3*e+8*a*b*d^3*e+44*b^2*d^3*e+49*a*c*d^3*e-b*c*d^3*e+39*c^2*d^3*e-a*d^4*e-19*b*d^4*e-40*c*d^4*e-30*d^5*e-2*a^4*e^2-5*a^3*b*e^2-10*a^2*b^2*e^2-31*a*b^3*e^2+37*b^4*e^2+45*a^3*c*e^2+17*a^2*b*c*e^2-34*a*b^2*c*e^2-32*b^3*c*e^2-7*a^2*c^2*e^2-21*a*b*c^2*e^2+50*b^2*c^2*e^2+35*a*c^3*e^2-38*b*c^3*e^2+14*c^4*e^2-21*a^3*d*e^2-4*a^2*b*d*e^2-14*a*b^2*d*e^2+13*b^3*d*e^2-38*a^2*c*d*e^2+44*a*b*c*d*e^2+7*b^2*c*d*e^2-16*a*c^2*d*e^2+38*b*c^2*d*e^2+38*c^3*d*e^2+25*a^2*d^2*e^2-34*a*b*d^2*e^2-32*b^2*d^2*e^2+22*a*c*d^2*e^2+40*b*c*d^2*e^2+4*c^2*d^2*e^2-16*a*d^3*e^2+36*b*d^3*e^2-39*c*d^3*e^2-45*d^4*e^2+39*a^3*e^3+31*a^2*b*e^3-43*a*b^2*e^3-18*b^3*e^3+44*a^2*c*e^3-8*a*b*c*e^3+38*b^2*c*e^3-4*a*c^2*e^3+3*b*c^2*e^3-43*c^3*e^3-6*a^2*d*e^3+34*a*b*d*e^3+6*b^2*d*e^3-13*a*c*d*e^3+32*b*c*d*e^3+30*c^2*d*e^3+28*a*d^2*e^3+17*b*d^2*e^3-19*c*d^2*e^3-46*d^3*e^3+12*a^2*e^4+44*a*b*e^4-42*b^2*e^4-41*a*c*e^4-35*b*c*e^4-37*c^2*e^4+42*a*d*e^4+43*b*d*e^4+5*c*d*e^4+11*d^2*e^4+25*a*e^5-9*b*e^5-27*c*e^5+50*d*e^5+23*e^6,3170 b^3*c^3-13*a^4*d^2-41*a^3*b*d^2+27*a^2*b^2*d^2+a*b^3*d^2+33*b^4*d^2+47*a^3*c*d^2-19*a^2*b*c*d^2-27*a*b^2*c*d^2-6*b^3*c*d^2+37*a^2*c^2*d^2+40*a*b*c^2*d^2+12*b^2*c^2*d^2+36*a*c^3*d^2-25*b*c^3*d^2-45*c^4*d^2-12*a^3*d^3-5*a^2*b*d^3+31*a*b^2*d^3-b^3*d^3-37*a^2*c*d^3+26*a*b*c*d^3-48*b^2*c*d^3+36*a*c^2*d^3+16*b*c^2*d^3+44*c^3*d^3+47*a^2*d^4-20*a*b*d^4-13*b^2*d^4+39*a*c*d^4+17*b*c*d^4-32*c^2*d^4-24*a*d^5-41*b*d^5-31*c*d^5+29*a^5*e+26*a^4*b*e+12*a^3*b^2*e-45*a^2*b^3*e+40*a*b^4*e+20*b^5*e-21*a^4*c*e-28*a^3*b*c*e+38*a^2*b^2*c*e+40*a*b^3*c*e-13*b^4*c*e-9*a^3*c^2*e-9*a^2*b*c^2*e-a*b^2*c^2*e-b^3*c^2*e+32*a^2*c^3*e+43*a*b*c^3*e-44*b^2*c^3*e+39*a*c^4*e+8*b*c^4*e-8*c^5*e+27*a^4*d*e+15*a^3*b*d*e-12*a^2*b^2*d*e-33*a*b^3*d*e+16*b^4*d*e+19*a^3*c*d*e-34*a^2*b*c*d*e+5*a*b^2*c*d*e-31*b^3*c*d*e+5*a^2*c^2*d*e-20*a*b*c^2*d*e-4*b^2*c^2*d*e-50*a*c^3*d*e+44*b*c^3*d*e-31*a^3*d^2*e+31*a^2*b*d^2*e+28*a*b^2*d^2*e-10*b^3*d^2*e+2*a^2*c*d^2*e-19*a*b*c*d^2*e-9*a*c^2*d^2*e+2*b*c^2*d^2*e+40*c^3*d^2*e+45*a^2*d^3*e+9*a*b*d^3*e+26*b^2*d^3*e-14*a*c*d^3*e+2*b*c*d^3*e+7*c^2*d^3*e+36*a*d^4*e-43*b*d^4*e-27*c*d^4*e-4*d^5*e+23*a^4*e^2+45*a^3*b*e^2+41*a^2*b^2*e^2+22*a*b^3*e^2+14*b^4*e^2-30*a^3*c*e^2+19*a^2*b*c*e^2-34*a*b^2*c*e^2+17*b^3*c*e^2-42*a^2*c^2*e^2-12*a*b*c^2*e^2-9*b^2*c^2*e^2-3*a*c^3*e^2+47*b*c^3*e^2+47*c^4*e^2+7*a^3*d*e^2+6*a^2*b*d*e^2+26*a*b^2*d*e^2+10*b^3*d*e^2-11*a^2*c*d*e^2-17*a*b*c*d*e^2+34*b^2*c*d*e^2+21*a*c^2*d*e^2+11*b*c^2*d*e^2+5*c^3*d*e^2-40*a^2*d^2*e^2+11*a*b*d^2*e^2+17*b^2*d^2*e^2+38*a*c*d^2*e^2-18*b*c*d^2*e^2+23*c^2*d^2*e^2+35*a*d^3*e^2+4*b*d^3*e^2-2*c*d^3*e^2+46*d^4*e^2+44*a^3*e^3-14*a^2*b*e^3+25*a*b^2*e^3-41*b^3*e^3-34*a^2*c*e^3-44*a*b*c*e^3+17*a*c^2*e^3+9*b*c^2*e^3+45*c^3*e^3+23*a^2*d*e^3-15*a*b*d*e^3+9*b^2*d*e^3-14*a*c*d*e^3-23*b*c*d*e^3+17*c^2*d*e^3+46*a*d^2*e^3+30*b*d^2*e^3+35*c*d^2*e^3-27*d^3*e^3-40*a^2*e^4-50*a*b*e^4-23*b^2*e^4-46*a*c*e^4+44*b*c*e^4+7*c^2*e^4+14*a*d*e^4-4*b*d*e^4-9*c*d*e^4+44*d^2*e^4-9*a*e^5+28*b*e^5+25*c*e^5+36*d*e^5+28*e^6,3171 a*b^2*c^3+41*a^4*d^2-33*a^3*b*d^2+21*a^2*b^2*d^2-47*a*b^3*d^2-23*b^4*d^2+9*a^3*c*d^2+49*a^2*b*c*d^2+44*a*b^2*c*d^2-25*b^3*c*d^2-28*a^2*c^2*d^2+37*a*b*c^2*d^2+9*b^2*c^2*d^2-21*a*c^3*d^2+36*b*c^3*d^2+48*c^4*d^2+2*a^3*d^3+15*a^2*b*d^3-3*a*b^2*d^3-40*b^3*d^3-19*a^2*c*d^3+4*a*b*c*d^3-29*b^2*c*d^3-48*a*c^2*d^3+41*b*c^2*d^3+34*c^3*d^3+33*a^2*d^4-13*a*b*d^4-34*b^2*d^4-47*a*c*d^4+36*b*c*d^4+34*c^2*d^4+41*a*d^5+25*b*d^5-28*c*d^5-31*d^6+22*a^5*e+a^4*b*e+27*a^3*b^2*e+5*a^2*b^3*e-33*a*b^4*e+2*b^5*e+20*a^4*c*e-30*a^3*b*c*e+11*a^2*b^2*c*e+44*a*b^3*c*e-37*b^4*c*e+a^3*c^2*e+7*a^2*b*c^2*e-20*a*b^2*c^2*e+34*b^3*c^2*e-35*a^2*c^3*e+28*a*b*c^3*e-50*b^2*c^3*e-11*a*c^4*e-26*b*c^4*e+c^5*e-37*a^4*d*e+23*a^3*b*d*e+50*a^2*b^2*d*e+35*a*b^3*d*e-4*b^4*d*e-15*a^3*c*d*e-39*a^2*b*c*d*e-50*a*b^2*c*d*e+47*b^3*c*d*e-38*a^2*c^2*d*e-42*a*b*c^2*d*e+43*b^2*c^2*d*e+24*a*c^3*d*e+31*b*c^3*d*e+41*c^4*d*e-15*a^3*d^2*e+20*a^2*b*d^2*e-24*a*b^2*d^2*e-47*b^3*d^2*e+4*a^2*c*d^2*e+42*a*b*c*d^2*e+20*b^2*c*d^2*e-37*a*c^2*d^2*e+42*b*c^2*d^2*e+6*c^3*d^2*e-45*a^2*d^3*e-7*a*b*d^3*e-37*b^2*d^3*e-34*a*c*d^3*e-44*b*c*d^3*e-c^2*d^3*e-29*a*d^4*e+22*b*d^4*e-27*c*d^4*e-34*d^5*e-13*a^4*e^2+48*a^3*b*e^2+22*a^2*b^2*e^2+30*a*b^3*e^2-10*b^4*e^2-2*a^3*c*e^2+10*a^2*b*c*e^2+23*a*b^2*c*e^2+27*b^3*c*e^2+15*a^2*c^2*e^2-a*b*c^2*e^2+33*b^2*c^2*e^2-13*a*c^3*e^2-13*b*c^3*e^2+44*c^4*e^2-34*a^3*d*e^2+7*a^2*b*d*e^2+a*b^2*d*e^2-50*b^3*d*e^2+23*a^2*c*d*e^2+12*a*b*c*d*e^2+50*b^2*c*d*e^2+29*a*c^2*d*e^2+41*b*c^2*d*e^2+22*c^3*d*e^2-20*a^2*d^2*e^2+4*a*b*d^2*e^2-33*b^2*d^2*e^2-38*a*c*d^2*e^2+47*b*c*d^2*e^2+21*c^2*d^2*e^2+18*b*d^3*e^2+44*c*d^3*e^2+31*d^4*e^2-3*a^3*e^3-32*a^2*b*e^3-45*a*b^2*e^3-20*b^3*e^3+29*a^2*c*e^3-35*a*b*c*e^3-11*b^2*c*e^3-13*a*c^2*e^3-38*b*c^2*e^3+17*c^3*e^3-41*a^2*d*e^3-36*a*b*d*e^3-6*b^2*d*e^3-14*a*c*d*e^3-16*b*c*d*e^3-6*c^2*d*e^3+20*a*d^2*e^3-29*b*d^2*e^3+50*c*d^2*e^3-37*d^3*e^3-27*a^2*e^4+15*a*b*e^4+46*b^2*e^4+39*a*c*e^4-26*b*c*e^4-10*c^2*e^4-40*a*d*e^4-5*b*d*e^4-23*c*d*e^4+36*d^2*e^4-21*a*e^5+4*b*e^5-48*c*e^5+38*d*e^5-36*e^6,3172 a^2*b*c^3+6*a^4*d^2-4*a^3*b*d^2+37*a^2*b^2*d^2+18*a*b^3*d^2-34*b^4*d^2+23*a^3*c*d^2-9*a^2*b*c*d^2-46*a*b^2*c*d^2+19*b^3*c*d^2+42*a^2*c^2*d^2-34*a*b*c^2*d^2-14*b^2*c^2*d^2-10*a*c^3*d^2+13*b*c^3*d^2+14*c^4*d^2-38*a^3*d^3-13*a^2*b*d^3+47*a*b^2*d^3-9*b^3*d^3-a^2*c*d^3+33*a*b*c*d^3+9*b^2*c*d^3+33*a*c^2*d^3+37*b*c^2*d^3+41*c^3*d^3+12*a^2*d^4-50*a*b*d^4+11*b^2*d^4-48*a*c*d^4+27*b*c*d^4-48*c^2*d^4-48*a*d^5-19*b*d^5+46*c*d^5+5*d^6+43*a^5*e-13*a^4*b*e-16*a^3*b^2*e+34*a^2*b^3*e+25*a*b^4*e+29*b^5*e-8*a^4*c*e-2*a^3*b*c*e+4*a^2*b^2*c*e+23*a*b^3*c*e+7*b^4*c*e-6*a^3*c^2*e-39*a^2*b*c^2*e-10*a*b^2*c^2*e+18*b^3*c^2*e-18*a^2*c^3*e+35*a*b*c^3*e+18*b^2*c^3*e-2*a*c^4*e+16*b*c^4*e-21*c^5*e-44*a^4*d*e-a^3*b*d*e+19*a^2*b^2*d*e+32*a*b^3*d*e+20*b^4*d*e+36*a^3*c*d*e+16*a^2*b*c*d*e+7*a*b^2*c*d*e+21*b^3*c*d*e+21*a^2*c^2*d*e-31*a*b*c^2*d*e+10*b^2*c^2*d*e-16*a*c^3*d*e+40*b*c^3*d*e-16*c^4*d*e-43*a^3*d^2*e+50*a^2*b*d^2*e-14*a*b^2*d^2*e-24*b^3*d^2*e-23*a^2*c*d^2*e-21*a*b*c*d^2*e-2*b^2*c*d^2*e+38*a*c^2*d^2*e+40*b*c^2*d^2*e+38*c^3*d^2*e-5*a^2*d^3*e+31*a*b*d^3*e-50*b^2*d^3*e+46*a*c*d^3*e-14*b*c*d^3*e+45*c^2*d^3*e-25*a*d^4*e-8*b*d^4*e+3*c*d^4*e+7*d^5*e-a^4*e^2-29*a^3*b*e^2-23*a^2*b^2*e^2+19*a*b^3*e^2-41*b^4*e^2+46*a^3*c*e^2-27*a^2*b*c*e^2-24*a*b^2*c*e^2+26*b^3*c*e^2+8*a^2*c^2*e^2-11*a*b*c^2*e^2-9*b^2*c^2*e^2+29*a*c^3*e^2+15*b*c^3*e^2-10*c^4*e^2-37*a^3*d*e^2+25*a^2*b*d*e^2-26*a*b^2*d*e^2+7*b^3*d*e^2-19*a^2*c*d*e^2-12*a*b*c*d*e^2+50*b^2*c*d*e^2-40*a*c^2*d*e^2-28*b*c^2*d*e^2+26*c^3*d*e^2+28*a^2*d^2*e^2+38*a*b*d^2*e^2+44*b^2*d^2*e^2-32*a*c*d^2*e^2-14*b*c*d^2*e^2+23*c^2*d^2*e^2+44*a*d^3*e^2+47*b*d^3*e^2+46*c*d^3*e^2+3*d^4*e^2-27*a^3*e^3+5*a^2*b*e^3-48*a*b^2*e^3+22*b^3*e^3+32*a^2*c*e^3+23*a*b*c*e^3+34*b^2*c*e^3+4*a*c^2*e^3-25*b*c^2*e^3+13*c^3*e^3+25*a^2*d*e^3-24*a*b*d*e^3+11*b^2*d*e^3+32*a*c*d*e^3-14*b*c*d*e^3+4*c^2*d*e^3+10*a*d^2*e^3-7*b*d^2*e^3+22*c*d^2*e^3-4*d^3*e^3+6*a^2*e^4+19*a*b*e^4+15*b^2*e^4+9*a*c*e^4-49*b*c*e^4+37*c^2*e^4-46*a*d*e^4+33*b*d*e^4+41*c*d*e^4-41*d^2*e^4+11*a*e^5-44*b*e^5+46*c*e^5+12*d*e^5-50*e^6,3173 a^3*c^3-8*a^4*d^2+24*a^3*b*d^2-28*a^2*b^2*d^2+27*a*b^3*d^2-17*b^4*d^2-40*a^3*c*d^2+28*a^2*b*c*d^2+2*a*b^2*c*d^2-18*b^3*c*d^2+45*a^2*c^2*d^2-13*a*b*c^2*d^2-14*b^2*c^2*d^2+35*a*c^3*d^2-32*b*c^3*d^2+2*c^4*d^2-27*a^3*d^3-41*a^2*b*d^3-36*a*b^2*d^3-50*b^3*d^3+23*a^2*c*d^3+25*a*b*c*d^3+22*b^2*c*d^3+15*a*c^2*d^3-36*b*c^2*d^3-43*c^3*d^3-26*a^2*d^4-43*a*b*d^4-25*b^2*d^4-14*a*c*d^4+32*b*c*d^4+25*c^2*d^4+23*a*d^5-32*b*d^5+28*c*d^5-24*d^6+4*a^5*e-15*a^4*b*e-45*a^3*b^2*e-47*a^2*b^3*e+50*a*b^4*e+3*b^5*e+41*a^4*c*e+45*a^2*b^2*c*e+7*a*b^3*c*e-41*b^4*c*e+13*a^3*c^2*e+5*a^2*b*c^2*e+33*a*b^2*c^2*e+35*b^3*c^2*e+9*a^2*c^3*e-4*a*b*c^3*e-43*b^2*c^3*e-8*a*c^4*e+10*b*c^4*e-17*c^5*e+24*a^4*d*e-6*a^3*b*d*e+22*a^2*b^2*d*e+3*a*b^3*d*e+31*b^4*d*e-24*a^3*c*d*e+10*a^2*b*c*d*e+28*a*b^2*c*d*e-28*b^3*c*d*e+49*a^2*c^2*d*e+17*a*b*c^2*d*e+21*b^2*c^2*d*e-29*a*c^3*d*e-18*b*c^3*d*e+18*c^4*d*e+46*a^3*d^2*e+27*a^2*b*d^2*e+5*a*b^2*d^2*e+17*b^3*d^2*e+42*a^2*c*d^2*e+37*a*b*c*d^2*e+48*b^2*c*d^2*e+34*a*c^2*d^2*e+35*b*c^2*d^2*e+8*c^3*d^2*e+a^2*d^3*e-27*a*b*d^3*e+31*b^2*d^3*e+16*a*c*d^3*e+49*b*c*d^3*e-c^2*d^3*e+3*a*d^4*e-22*b*d^4*e+50*c*d^4*e-18*d^5*e+26*a^4*e^2+23*a^3*b*e^2+23*a^2*b^2*e^2-47*a*b^3*e^2+32*b^4*e^2-5*a^3*c*e^2-10*a^2*b*c*e^2-32*a*b^2*c*e^2+21*b^3*c*e^2+50*a^2*c^2*e^2+9*a*b*c^2*e^2+39*b^2*c^2*e^2+24*a*c^3*e^2-15*b*c^3*e^2-12*c^4*e^2+25*a^3*d*e^2+39*a^2*b*d*e^2+34*a*b^2*d*e^2+9*b^3*d*e^2+4*a^2*c*d*e^2+45*a*b*c*d*e^2+14*b^2*c*d*e^2+24*a*c^2*d*e^2+25*b*c^2*d*e^2-33*c^3*d*e^2+43*a^2*d^2*e^2-27*a*b*d^2*e^2+19*b^2*d^2*e^2-20*a*c*d^2*e^2-35*b*c*d^2*e^2+45*c^2*d^2*e^2-17*a*d^3*e^2-48*b*d^3*e^2-25*c*d^3*e^2-19*d^4*e^2+44*a^3*e^3+10*a^2*b*e^3+21*a*b^2*e^3-42*b^3*e^3+40*a^2*c*e^3-50*a*b*c*e^3-9*a*c^2*e^3+39*b*c^2*e^3+25*c^3*e^3+23*a^2*d*e^3-14*a*b*d*e^3+16*b^2*d*e^3+16*a*c*d*e^3+43*b*c*d*e^3-13*c^2*d*e^3-9*a*d^2*e^3-7*b*d^2*e^3+26*c*d^2*e^3-44*d^3*e^3-24*a^2*e^4+34*a*b*e^4+41*b^2*e^4-9*a*c*e^4+13*b*c*e^4-37*c^2*e^4-20*a*d*e^4-37*b*d*e^4+29*c*d*e^4+34*d^2*e^4+45*a*e^5+8*b*e^5+7*d*e^5+e^6,3174 b^4*c^2-14*a^4*d^2-37*a^3*b*d^2+19*a^2*b^2*d^2+4*a*b^3*d^2+20*b^4*d^2+34*a^3*c*d^2+17*a^2*b*c*d^2-35*a*b^2*c*d^2-21*b^3*c*d^2+32*a^2*c^2*d^2-31*a*b*c^2*d^2+18*b^2*c^2*d^2+6*a*c^3*d^2+21*b*c^3*d^2+24*c^4*d^2-4*a^3*d^3+41*a^2*b*d^3-14*a*b^2*d^3+38*b^3*d^3-26*a^2*c*d^3-48*a*b*c*d^3-39*b^2*c*d^3+a*c^2*d^3+50*b*c^2*d^3-13*c^3*d^3+21*a^2*d^4-17*a*b*d^4+47*b^2*d^4+16*a*c*d^4+12*b*c*d^4+30*c^2*d^4+11*a*d^5-5*b*d^5-42*c*d^5-15*d^6+15*a^5*e-15*a^4*b*e+36*a^3*b^2*e-21*a^2*b^3*e-9*a*b^4*e-34*b^5*e-40*a^4*c*e+7*a^3*b*c*e-22*a^2*b^2*c*e+48*a*b^3*c*e-24*b^4*c*e-40*a^3*c^2*e+17*a^2*b*c^2*e-15*a*b^2*c^2*e+19*b^3*c^2*e-19*a^2*c^3*e-36*a*b*c^3*e+26*b^2*c^3*e-32*a*c^4*e-46*b*c^4*e+26*c^5*e-33*a^4*d*e+33*a^3*b*d*e+28*a^2*b^2*d*e+48*a*b^3*d*e-22*b^4*d*e+46*a^3*c*d*e+35*a^2*b*c*d*e-21*a*b^2*c*d*e+b^3*c*d*e+8*a^2*c^2*d*e+14*a*b*c^2*d*e+12*b^2*c^2*d*e-4*a*c^3*d*e+32*b*c^3*d*e-17*c^4*d*e-42*a^3*d^2*e-43*a^2*b*d^2*e+17*a*b^2*d^2*e+21*b^3*d^2*e-31*a^2*c*d^2*e-46*a*b*c*d^2*e-26*b^2*c*d^2*e+35*a*c^2*d^2*e+14*b*c^2*d^2*e-35*c^3*d^2*e-3*a^2*d^3*e+50*a*b*d^3*e+41*b^2*d^3*e+36*a*c*d^3*e+7*b*c*d^3*e+7*c^2*d^3*e+15*a*d^4*e-38*b*d^4*e-37*c*d^4*e-34*d^5*e+15*a^4*e^2+44*a^3*b*e^2+42*a^2*b^2*e^2+10*a*b^3*e^2-23*b^4*e^2+37*a^3*c*e^2+50*a^2*b*c*e^2+20*a*b^2*c*e^2-50*b^3*c*e^2-4*a^2*c^2*e^2-3*a*b*c^2*e^2-14*b^2*c^2*e^2-28*a*c^3*e^2-10*b*c^3*e^2-33*c^4*e^2-11*a^3*d*e^2-8*a^2*b*d*e^2-23*a*b^2*d*e^2-14*a^2*c*d*e^2+42*a*b*c*d*e^2-42*b^2*c*d*e^2-36*a*c^2*d*e^2+41*b*c^2*d*e^2-27*c^3*d*e^2+30*a^2*d^2*e^2+3*a*b*d^2*e^2+33*b^2*d^2*e^2-28*a*c*d^2*e^2-26*b*c*d^2*e^2+c^2*d^2*e^2+46*a*d^3*e^2+21*b*d^3*e^2-32*c*d^3*e^2-16*d^4*e^2-23*a^3*e^3+6*a^2*b*e^3+40*a*b^2*e^3-38*b^3*e^3+28*a^2*c*e^3-14*a*b*c*e^3+6*b^2*c*e^3+45*a*c^2*e^3+2*b*c^2*e^3-11*c^3*e^3+18*a^2*d*e^3+36*a*b*d*e^3-40*b^2*d*e^3-43*a*c*d*e^3+44*b*c*d*e^3-26*c^2*d*e^3+23*a*d^2*e^3+28*b*d^2*e^3+15*c*d^2*e^3-18*d^3*e^3-13*a^2*e^4-47*a*b*e^4-28*b^2*e^4-22*a*c*e^4+20*b*c*e^4+17*c^2*e^4+a*d*e^4+46*b*d*e^4-15*c*d*e^4+40*d^2*e^4+34*a*e^5-9*b*e^5-29*c*e^5+15*d*e^5+32*e^6,3175 a*b^3*c^2-37*a^4*d^2-46*a^3*b*d^2+11*a^2*b^2*d^2+21*a*b^3*d^2+21*b^4*d^2-23*a^3*c*d^2-3*a^2*b*c*d^2+3*a*b^2*c*d^2-32*b^3*c*d^2-37*a^2*c^2*d^2-36*a*b*c^2*d^2+37*b^2*c^2*d^2-6*a*c^3*d^2-34*b*c^3*d^2+48*c^4*d^2+28*a^3*d^3+43*a^2*b*d^3+43*a*b^2*d^3+17*b^3*d^3+26*a^2*c*d^3+33*a*b*c*d^3-2*b^2*c*d^3-21*a*c^2*d^3-14*b*c^2*d^3-39*c^3*d^3-a^2*d^4-22*a*b*d^4-39*b^2*d^4-35*a*c*d^4+13*b*c*d^4-24*c^2*d^4-11*a*d^5+16*b*d^5+30*c*d^5-22*d^6-22*a^5*e+19*a^4*b*e-15*a^3*b^2*e-8*a^2*b^3*e+14*a*b^4*e-5*b^5*e+6*a^4*c*e+6*a^3*b*c*e+46*a^2*b^2*c*e+39*a*b^3*c*e+21*b^4*c*e-22*a^3*c^2*e+26*a^2*b*c^2*e+24*a*b^2*c^2*e+10*b^3*c^2*e-23*a^2*c^3*e+26*a*b*c^3*e+b^2*c^3*e+39*a*c^4*e+35*b*c^4*e-19*c^5*e+17*a^4*d*e+38*a^3*b*d*e+9*a^2*b^2*d*e-19*a*b^3*d*e+42*b^4*d*e-11*a^3*c*d*e-6*a^2*b*c*d*e+10*a*b^2*c*d*e-10*b^3*c*d*e+41*a^2*c^2*d*e+10*a*b*c^2*d*e+46*b^2*c^2*d*e-33*a*c^3*d*e-6*b*c^3*d*e+11*c^4*d*e-33*a^3*d^2*e-22*a^2*b*d^2*e-6*a*b^2*d^2*e-11*b^3*d^2*e+34*a^2*c*d^2*e-39*a*b*c*d^2*e-45*b^2*c*d^2*e-17*a*c^2*d^2*e-8*b*c^2*d^2*e-41*c^3*d^2*e+13*a^2*d^3*e-11*a*b*d^3*e-13*b^2*d^3*e+3*a*c*d^3*e-28*b*c*d^3*e+33*c^2*d^3*e-8*a*d^4*e+24*b*d^4*e-34*c*d^4*e-7*d^5*e+26*a^4*e^2+12*a^3*b*e^2-20*a^2*b^2*e^2+5*a*b^3*e^2+30*b^4*e^2+6*a^3*c*e^2-45*a^2*b*c*e^2-49*a*b^2*c*e^2+43*b^3*c*e^2-29*a^2*c^2*e^2+4*a*b*c^2*e^2+17*b^2*c^2*e^2+13*a*c^3*e^2+21*b*c^3*e^2+16*c^4*e^2-25*a^3*d*e^2-7*a^2*b*d*e^2+42*a*b^2*d*e^2-44*b^3*d*e^2+19*a^2*c*d*e^2+5*a*b*c*d*e^2-38*b^2*c*d*e^2-17*a*c^2*d*e^2-15*b*c^2*d*e^2-26*c^3*d*e^2+47*a^2*d^2*e^2-42*a*b*d^2*e^2-26*b^2*d^2*e^2-50*a*c*d^2*e^2+25*b*c*d^2*e^2-3*c^2*d^2*e^2-47*a*d^3*e^2-40*b*d^3*e^2+24*c*d^3*e^2+35*d^4*e^2-22*a^3*e^3-5*a^2*b*e^3-10*a*b^2*e^3-7*b^3*e^3+6*a^2*c*e^3-16*a*b*c*e^3-28*b^2*c*e^3-43*a*c^2*e^3+24*b*c^2*e^3-9*c^3*e^3+42*a^2*d*e^3-12*a*b*d*e^3-29*b^2*d*e^3+35*a*c*d*e^3+27*b*c*d*e^3+40*c^2*d*e^3-17*a*d^2*e^3+29*b*d^2*e^3+38*c*d^2*e^3+13*d^3*e^3-23*a^2*e^4+32*a*b*e^4+5*b^2*e^4+11*a*c*e^4-b*c*e^4-37*c^2*e^4+3*a*d*e^4-3*b*d*e^4+37*c*d*e^4-28*d^2*e^4-33*a*e^5+18*b*e^5+45*c*e^5-11*d*e^5+42*e^6,3176 a^2*b^2*c^2+34*a^4*d^2+5*a^3*b*d^2-6*a^2*b^2*d^2-24*a*b^3*d^2+14*b^4*d^2+24*a^3*c*d^2-13*a^2*b*c*d^2+27*a*b^2*c*d^2+10*b^3*c*d^2-38*a^2*c^2*d^2+14*a*b*c^2*d^2+49*b^2*c^2*d^2+42*a*c^3*d^2-4*b*c^3*d^2+32*c^4*d^2+47*a^3*d^3+38*a^2*b*d^3+12*a*b^2*d^3-7*b^3*d^3+30*a^2*c*d^3+2*a*b*c*d^3+23*b^2*c*d^3-42*a*c^2*d^3+19*b*c^2*d^3-19*c^3*d^3-12*a^2*d^4+37*a*b*d^4+47*b^2*d^4+31*a*c*d^4+4*b*c*d^4-36*c^2*d^4-10*a*d^5-7*b*d^5+6*c*d^5-12*d^6-46*a^5*e-47*a^4*b*e+49*a^3*b^2*e+45*a^2*b^3*e+44*a*b^4*e+35*b^5*e+24*a^4*c*e+8*a^3*b*c*e-31*a^2*b^2*c*e+21*a*b^3*c*e+40*b^4*c*e-35*a^3*c^2*e+38*a^2*b*c^2*e+12*a*b^2*c^2*e-27*b^3*c^2*e+39*a^2*c^3*e-48*a*b*c^3*e+21*b^2*c^3*e+29*a*c^4*e-36*b*c^4*e-46*c^5*e-46*a^4*d*e+a^3*b*d*e+11*a^2*b^2*d*e+10*a*b^3*d*e-29*b^4*d*e-16*a^3*c*d*e-18*a^2*b*c*d*e+15*a*b^2*c*d*e-30*b^3*c*d*e-34*a^2*c^2*d*e+36*a*b*c^2*d*e+6*a*c^3*d*e-6*b*c^3*d*e+40*c^4*d*e+49*a^3*d^2*e-14*a^2*b*d^2*e-33*a*b^2*d^2*e+34*b^3*d^2*e-26*a^2*c*d^2*e-31*a*b*c*d^2*e-10*b^2*c*d^2*e+40*a*c^2*d^2*e+34*b*c^2*d^2*e+17*c^3*d^2*e-32*a^2*d^3*e-5*a*b*d^3*e-47*b^2*d^3*e-4*a*c*d^3*e+b*c*d^3*e+47*c^2*d^3*e+8*a*d^4*e+48*b*d^4*e-38*c*d^4*e+34*d^5*e-12*a^4*e^2+6*a^2*b^2*e^2-9*a*b^3*e^2-17*b^4*e^2-16*a^3*c*e^2-32*a^2*b*c*e^2+49*a*b^2*c*e^2+3*b^3*c*e^2+27*a^2*c^2*e^2-42*a*b*c^2*e^2-b^2*c^2*e^2+42*a*c^3*e^2+21*b*c^3*e^2-18*c^4*e^2-a^3*d*e^2+8*a^2*b*d*e^2+45*a*b^2*d*e^2+36*b^3*d*e^2+42*a^2*c*d*e^2-29*a*b*c*d*e^2+45*b^2*c*d*e^2-9*a*c^2*d*e^2-32*b*c^2*d*e^2-50*c^3*d*e^2-25*a^2*d^2*e^2+14*a*b*d^2*e^2-44*b^2*d^2*e^2-16*a*c*d^2*e^2+29*b*c*d^2*e^2+17*c^2*d^2*e^2-12*a*d^3*e^2+28*b*d^3*e^2+36*c*d^3*e^2+24*d^4*e^2+24*a^3*e^3-39*a^2*b*e^3-2*a*b^2*e^3-28*b^3*e^3+31*a^2*c*e^3-47*a*b*c*e^3-b^2*c*e^3-17*a*c^2*e^3+50*b*c^2*e^3-c^3*e^3-a^2*d*e^3+41*a*b*d*e^3-13*b^2*d*e^3-13*a*c*d*e^3+4*b*c*d*e^3+32*c^2*d*e^3-16*a*d^2*e^3-11*b*d^2*e^3+49*c*d^2*e^3+d^3*e^3+32*a^2*e^4-11*a*b*e^4+5*b^2*e^4+3*a*c*e^4-49*b*c*e^4+32*c^2*e^4-11*a*d*e^4-43*b*d*e^4+35*c*d*e^4-5*d^2*e^4+40*a*e^5+18*b*e^5+3*c*e^5+25*d*e^5+28*e^6,3177 a^3*b*c^2-30*a^4*d^2+28*a^3*b*d^2+41*a^2*b^2*d^2-11*a*b^3*d^2+27*b^4*d^2-36*a^3*c*d^2+27*a^2*b*c*d^2+50*a*b^2*c*d^2-34*b^3*c*d^2-21*a^2*c^2*d^2-6*a*b*c^2*d^2-8*b^2*c^2*d^2-14*a*c^3*d^2-35*b*c^3*d^2+21*c^4*d^2+37*a^3*d^3-14*a^2*b*d^3-41*a*b^2*d^3+30*b^3*d^3+35*a^2*c*d^3-28*a*b*c*d^3+26*b^2*c*d^3+19*a*c^2*d^3+b*c^2*d^3-5*c^3*d^3-29*a^2*d^4+25*a*b*d^4-38*b^2*d^4+50*a*c*d^4+10*b*c*d^4+30*c^2*d^4+31*a*d^5-49*b*d^5+39*c*d^5-40*d^6+16*a^5*e-47*a^4*b*e+39*a^3*b^2*e-41*a^2*b^3*e-27*a*b^4*e+10*b^5*e-20*a^4*c*e+23*a^3*b*c*e-39*a^2*b^2*c*e+28*a*b^3*c*e-16*b^4*c*e+20*a^3*c^2*e+22*a^2*b*c^2*e+45*a*b^2*c^2*e-b^3*c^2*e+37*a^2*c^3*e-3*a*b*c^3*e-49*b^2*c^3*e+8*a*c^4*e-3*b*c^4*e+41*c^5*e+33*a^4*d*e+35*a^3*b*d*e+10*a^2*b^2*d*e-42*a*b^3*d*e+14*b^4*d*e+a^3*c*d*e-28*a^2*b*c*d*e-26*a*b^2*c*d*e+35*b^3*c*d*e-24*a^2*c^2*d*e-3*a*b*c^2*d*e+20*b^2*c^2*d*e+a*c^3*d*e+8*b*c^3*d*e-41*c^4*d*e-12*a^3*d^2*e-43*a^2*b*d^2*e+32*a*b^2*d^2*e-26*b^3*d^2*e-37*a^2*c*d^2*e+50*a*b*c*d^2*e-21*b^2*c*d^2*e+46*a*c^2*d^2*e-26*b*c^2*d^2*e+41*c^3*d^2*e+39*a^2*d^3*e+6*a*b*d^3*e-34*b^2*d^3*e+13*a*c*d^3*e-12*b*c*d^3*e-7*c^2*d^3*e-31*a*d^4*e+19*b*d^4*e-22*c*d^4*e+44*d^5*e+15*a^4*e^2-24*a^3*b*e^2-23*a^2*b^2*e^2-25*a*b^3*e^2+21*b^4*e^2+28*a^3*c*e^2+32*a^2*b*c*e^2+6*a*b^2*c*e^2-6*b^3*c*e^2-32*a^2*c^2*e^2+37*a*b*c^2*e^2-15*b^2*c^2*e^2-3*a*c^3*e^2+5*b*c^3*e^2+33*c^4*e^2+50*a^3*d*e^2+46*a^2*b*d*e^2+3*a*b^2*d*e^2+11*b^3*d*e^2-6*a^2*c*d*e^2-26*a*b*c*d*e^2-26*b^2*c*d*e^2+49*a*c^2*d*e^2+48*b*c^2*d*e^2+14*c^3*d*e^2-11*a^2*d^2*e^2-49*a*b*d^2*e^2+37*b^2*d^2*e^2-20*a*c*d^2*e^2+10*b*c*d^2*e^2+22*c^2*d^2*e^2+46*a*d^3*e^2+3*b*d^3*e^2+24*c*d^3*e^2-49*d^4*e^2-31*a^3*e^3+35*a^2*b*e^3-38*a*b^2*e^3+4*b^3*e^3-10*a^2*c*e^3+a*b*c*e^3-15*b^2*c*e^3-8*a*c^2*e^3-18*b*c^2*e^3-26*c^3*e^3+26*a^2*d*e^3+23*a*b*d*e^3+4*b^2*d*e^3-37*a*c*d*e^3+49*b*c*d*e^3-9*c^2*d*e^3-39*a*d^2*e^3+44*b*d^2*e^3+44*c*d^2*e^3+6*d^3*e^3+49*a^2*e^4+23*a*b*e^4+15*a*c*e^4-10*b*c*e^4+24*c^2*e^4+23*a*d*e^4-34*b*d*e^4-9*c*d*e^4-11*d^2*e^4+49*a*e^5+32*b*e^5-12*c*e^5+32*d*e^5+13*e^6,3178 a^4*c^2-10*a^4*d^2+38*a^3*b*d^2-a^2*b^2*d^2+6*a*b^3*d^2+39*b^4*d^2-11*a^3*c*d^2+9*a^2*b*c*d^2+21*a*b^2*c*d^2-13*b^3*c*d^2+22*a^2*c^2*d^2+33*a*b*c^2*d^2-19*b^2*c^2*d^2-18*a*c^3*d^2-38*b*c^3*d^2-50*c^4*d^2-11*a^3*d^3-41*a^2*b*d^3-9*a*b^2*d^3-40*b^3*d^3-8*a^2*c*d^3+49*a*b*c*d^3+34*b^2*c*d^3+36*a*c^2*d^3-37*b*c^2*d^3+14*c^3*d^3-2*a^2*d^4+34*a*b*d^4+47*b^2*d^4+47*a*c*d^4-20*b*c*d^4-13*c^2*d^4+6*a*d^5-31*b*d^5+28*c*d^5-31*d^6-3*a^5*e+39*a^4*b*e+16*a^3*b^2*e+16*a^2*b^3*e+9*a*b^4*e+37*b^5*e-39*a^4*c*e+5*a^3*b*c*e+36*a^2*b^2*c*e-7*a*b^3*c*e+16*b^4*c*e-43*a^3*c^2*e-5*a^2*b*c^2*e+30*a*b^2*c^2*e+12*b^3*c^2*e-26*a^2*c^3*e+45*a*b*c^3*e+9*b^2*c^3*e+17*a*c^4*e-19*b*c^4*e-6*c^5*e-47*a^4*d*e-33*a^3*b*d*e+12*a^2*b^2*d*e+4*a*b^3*d*e+33*b^4*d*e+3*a^3*c*d*e-33*a^2*b*c*d*e-13*a*b^2*c*d*e+28*b^3*c*d*e-46*a^2*c^2*d*e-32*a*b*c^2*d*e+26*b^2*c^2*d*e-14*a*c^3*d*e+8*b*c^3*d*e-40*c^4*d*e+38*a^3*d^2*e-29*a^2*b*d^2*e+45*a*b^2*d^2*e+6*b^3*d^2*e-34*a^2*c*d^2*e-15*a*b*c*d^2*e-20*b^2*c*d^2*e-24*a*c^2*d^2*e-5*b*c^2*d^2*e-36*c^3*d^2*e+17*a^2*d^3*e-17*a*b*d^3*e-18*b^2*d^3*e+44*a*c*d^3*e+11*b*c*d^3*e-14*c^2*d^3*e-31*a*d^4*e-39*b*d^4*e-48*c*d^4*e+20*d^5*e+a^4*e^2-8*a^3*b*e^2+13*a^2*b^2*e^2-18*a*b^3*e^2-28*b^4*e^2-26*a^3*c*e^2+21*a^2*b*c*e^2-12*a*b^2*c*e^2-46*b^3*c*e^2-45*a^2*c^2*e^2+32*a*b*c^2*e^2-9*b^2*c^2*e^2+36*a*c^3*e^2+38*b*c^3*e^2-15*c^4*e^2-21*a^3*d*e^2+25*a^2*b*d*e^2-6*a*b^2*d*e^2+2*b^3*d*e^2-21*a*b*c*d*e^2+38*b^2*c*d*e^2-3*a*c^2*d*e^2-29*b*c^2*d*e^2-9*c^3*d*e^2-20*a^2*d^2*e^2+32*a*b*d^2*e^2-12*b^2*d^2*e^2-21*a*c*d^2*e^2-b*c*d^2*e^2-31*c^2*d^2*e^2-24*a*d^3*e^2-16*b*d^3*e^2+47*c*d^3*e^2+41*d^4*e^2-12*a^3*e^3-38*a^2*b*e^3-23*a*b^2*e^3+44*b^3*e^3-7*a^2*c*e^3+28*a*b*c*e^3+42*b^2*c*e^3+10*a*c^2*e^3-12*b*c^2*e^3-7*c^3*e^3+33*a^2*d*e^3+37*a*b*d*e^3+39*b^2*d*e^3-43*a*c*d*e^3-21*b*c*d*e^3+20*c^2*d*e^3+48*a*d^2*e^3+25*b*d^2*e^3-20*c*d^2*e^3+35*d^3*e^3+a^2*e^4+40*a*b*e^4+23*b^2*e^4+45*a*c*e^4-4*b*c*e^4-15*c^2*e^4+42*a*d*e^4-49*b*d*e^4-28*c*d*e^4-8*d^2*e^4-38*a*e^5-12*b*e^5+42*c*e^5+11*d*e^5+45*e^6,3179 b^5*c+40*a^4*d^2-47*a^3*b*d^2+16*a^2*b^2*d^2+18*a*b^3*d^2+33*b^4*d^2+9*a^3*c*d^2-38*a^2*b*c*d^2-22*a*b^2*c*d^2+8*b^3*c*d^2-21*a^2*c^2*d^2-2*a*b*c^2*d^2+33*b^2*c^2*d^2+5*a*c^3*d^2-50*b*c^3*d^2-35*c^4*d^2+29*a^3*d^3+25*a^2*b*d^3-38*a*b^2*d^3+17*b^3*d^3-32*a^2*c*d^3-44*a*b*c*d^3-20*b^2*c*d^3-26*a*c^2*d^3-37*b*c^2*d^3+47*c^3*d^3+19*a^2*d^4-34*a*b*d^4-20*b^2*d^4+31*a*c*d^4-14*b*c*d^4-37*c^2*d^4-37*a*d^5+7*b*d^5-42*c*d^5+16*d^6-23*a^5*e-48*a^3*b^2*e-41*a^2*b^3*e+6*a*b^4*e+49*a^4*c*e+34*a^3*b*c*e-8*a^2*b^2*c*e+17*a*b^3*c*e+39*b^4*c*e+2*a^3*c^2*e+42*a^2*b*c^2*e+21*a*b^2*c^2*e-8*b^3*c^2*e-11*a^2*c^3*e+50*a*b*c^3*e+25*b^2*c^3*e-46*a*c^4*e-4*b*c^4*e-10*c^5*e+12*a^4*d*e+9*a^3*b*d*e-46*a^2*b^2*d*e-12*a*b^3*d*e-44*b^4*d*e-35*a^3*c*d*e-46*a^2*b*c*d*e+17*a*b^2*c*d*e+48*b^3*c*d*e-28*a^2*c^2*d*e-50*a*b*c^2*d*e-46*b^2*c^2*d*e+4*a*c^3*d*e-41*b*c^3*d*e-8*c^4*d*e+42*a^3*d^2*e+39*a^2*b*d^2*e+27*a*b^2*d^2*e-40*b^3*d^2*e-8*a^2*c*d^2*e+40*a*b*c*d^2*e-20*b^2*c*d^2*e+35*a*c^2*d^2*e-26*b*c^2*d^2*e-2*c^3*d^2*e-14*a^2*d^3*e-34*a*b*d^3*e-24*b^2*d^3*e+22*a*c*d^3*e+45*b*c*d^3*e-9*c^2*d^3*e-38*a*d^4*e-14*b*d^4*e+50*c*d^4*e-49*d^5*e-23*a^4*e^2-10*a^3*b*e^2-4*a^2*b^2*e^2+49*a*b^3*e^2+28*b^4*e^2-50*a^3*c*e^2+38*a^2*b*c*e^2+26*a*b^2*c*e^2-44*b^3*c*e^2+3*a^2*c^2*e^2+46*a*b*c^2*e^2+42*b^2*c^2*e^2+9*a*c^3*e^2+18*b*c^3*e^2-9*c^4*e^2+16*a^3*d*e^2-42*a^2*b*d*e^2+37*a*b^2*d*e^2-10*b^3*d*e^2-41*a^2*c*d*e^2-5*a*b*c*d*e^2+19*b^2*c*d*e^2+17*a*c^2*d*e^2-19*b*c^2*d*e^2+16*c^3*d*e^2+21*a^2*d^2*e^2-17*a*b*d^2*e^2-15*b^2*d^2*e^2-49*a*c*d^2*e^2+36*b*c*d^2*e^2-41*c^2*d^2*e^2+37*a*d^3*e^2-13*b*d^3*e^2-27*c*d^3*e^2-37*d^4*e^2+37*a^3*e^3-50*a^2*b*e^3+21*a*b^2*e^3+14*b^3*e^3-16*a^2*c*e^3+24*a*b*c*e^3-44*b^2*c*e^3+18*b*c^2*e^3+3*c^3*e^3-38*a^2*d*e^3+41*a*b*d*e^3+29*b^2*d*e^3-9*a*c*d*e^3+9*b*c*d*e^3-39*c^2*d*e^3+42*a*d^2*e^3+22*b*d^2*e^3+18*c*d^2*e^3+35*d^3*e^3+43*a^2*e^4+5*a*b*e^4+5*b^2*e^4+16*a*c*e^4-37*b*c*e^4+20*c^2*e^4-10*a*d*e^4+45*b*d*e^4-46*c*d*e^4+42*d^2*e^4+14*a*e^5+15*b*e^5+38*c*e^5+49*d*e^5+3*e^6,3180 a*b^4*c+32*a^4*d^2+43*a^3*b*d^2+49*a^2*b^2*d^2+38*a*b^3*d^2+47*b^4*d^2+19*a^3*c*d^2+43*a^2*b*c*d^2-25*a*b^2*c*d^2+25*b^3*c*d^2+26*a^2*c^2*d^2-5*a*b*c^2*d^2-19*b^2*c^2*d^2+33*a*c^3*d^2-3*b*c^3*d^2-37*c^4*d^2+18*a^3*d^3-27*a^2*b*d^3-33*a*b^2*d^3-49*b^3*d^3+48*a^2*c*d^3-12*a*b*c*d^3+17*b^2*c*d^3+6*a*c^2*d^3-36*b*c^2*d^3+36*c^3*d^3+a^2*d^4-12*b^2*d^4-3*a*c*d^4-43*b*c*d^4-24*c^2*d^4-14*a*d^5-43*b*d^5-20*c*d^5+24*d^6-42*a^5*e-48*a^4*b*e+29*a^3*b^2*e-29*a^2*b^3*e-37*a*b^4*e+b^5*e-31*a^4*c*e+35*a^3*b*c*e+9*a^2*b^2*c*e-17*a*b^3*c*e-34*b^4*c*e+42*a^3*c^2*e-47*a^2*b*c^2*e+31*a*b^2*c^2*e+9*b^3*c^2*e+48*a^2*c^3*e-15*a*b*c^3*e+34*b^2*c^3*e+15*a*c^4*e-23*b*c^4*e+45*c^5*e-12*a^4*d*e+42*a^3*b*d*e-15*a^2*b^2*d*e-14*a*b^3*d*e+33*b^4*d*e-41*a^3*c*d*e+9*a^2*b*c*d*e+15*a*b^2*c*d*e-44*b^3*c*d*e-32*a^2*c^2*d*e+9*a*b*c^2*d*e+22*b^2*c^2*d*e-23*a*c^3*d*e+43*b*c^3*d*e-37*c^4*d*e+19*a^3*d^2*e-47*a^2*b*d^2*e+39*a*b^2*d^2*e-24*b^3*d^2*e-44*a^2*c*d^2*e-27*a*b*c*d^2*e-30*b^2*c*d^2*e-19*a*c^2*d^2*e-28*b*c^2*d^2*e-30*c^3*d^2*e-41*a^2*d^3*e+17*a*b*d^3*e-30*b^2*d^3*e+3*a*c*d^3*e+50*b*c*d^3*e+47*c^2*d^3*e+47*a*d^4*e-40*b*d^4*e+3*c*d^4*e+28*d^5*e-35*a^4*e^2+23*a^3*b*e^2+2*a^2*b^2*e^2-17*a*b^3*e^2-22*b^4*e^2+35*a^3*c*e^2-38*a^2*b*c*e^2-7*a*b^2*c*e^2-12*b^3*c*e^2+38*a^2*c^2*e^2-12*a*b*c^2*e^2+13*b^2*c^2*e^2+19*b*c^3*e^2-25*c^4*e^2-45*a^3*d*e^2-35*a^2*b*d*e^2+41*a*b^2*d*e^2+10*b^3*d*e^2+17*a^2*c*d*e^2-10*a*b*c*d*e^2-42*b^2*c*d*e^2+13*a*c^2*d*e^2-3*b*c^2*d*e^2-42*c^3*d*e^2-2*a^2*d^2*e^2-7*a*b*d^2*e^2+46*b^2*d^2*e^2+43*a*c*d^2*e^2+29*b*c*d^2*e^2+19*c^2*d^2*e^2-26*a*d^3*e^2+28*b*d^3*e^2+27*c*d^3*e^2+32*d^4*e^2+49*a^3*e^3+48*a^2*b*e^3+34*a*b^2*e^3-48*b^3*e^3+12*a^2*c*e^3+30*a*b*c*e^3+18*b^2*c*e^3-50*a*c^2*e^3+13*b*c^2*e^3+48*c^3*e^3+17*a^2*d*e^3+22*a*b*d*e^3-6*b^2*d*e^3-40*a*c*d*e^3-33*b*c*d*e^3-2*c^2*d*e^3-48*a*d^2*e^3-7*b*d^2*e^3+32*c*d^2*e^3-31*d^3*e^3+46*a^2*e^4+17*a*b*e^4+14*b^2*e^4+8*a*c*e^4-43*b*c*e^4+24*a*d*e^4-41*b*d*e^4-35*c*d*e^4-44*d^2*e^4-29*a*e^5+11*b*e^5+50*c*e^5-32*d*e^5+23*e^6,3181 a^2*b^3*c-22*a^4*d^2+38*a^3*b*d^2+10*a^2*b^2*d^2-31*a*b^3*d^2+42*b^4*d^2-7*a^3*c*d^2-47*a^2*b*c*d^2+37*a*b^2*c*d^2-23*b^3*c*d^2-43*a^2*c^2*d^2+38*a*b*c^2*d^2+18*b^2*c^2*d^2+18*a*c^3*d^2+25*b*c^3*d^2+4*c^4*d^2+36*a^3*d^3-21*a^2*b*d^3+35*a*b^2*d^3+28*b^3*d^3+13*a^2*c*d^3+36*a*b*c*d^3-33*b^2*c*d^3+9*a*c^2*d^3+18*b*c^2*d^3-49*c^3*d^3-5*a^2*d^4-8*a*b*d^4-34*b^2*d^4-43*a*c*d^4-47*b*c*d^4-12*c^2*d^4+34*a*d^5+50*b*d^5-13*c*d^5-20*d^6+29*a^5*e-10*a^4*b*e+17*a^3*b^2*e+7*a^2*b^3*e+45*a*b^4*e-23*b^5*e+41*a^4*c*e+31*a^3*b*c*e+9*a^2*b^2*c*e+3*a*b^3*c*e-11*b^4*c*e+6*a^3*c^2*e+11*a^2*b*c^2*e-42*a*b^2*c^2*e+17*b^3*c^2*e+5*a^2*c^3*e-44*a*b*c^3*e-44*b^2*c^3*e+42*a*c^4*e-29*b*c^4*e+6*c^5*e+7*a^4*d*e-50*a^3*b*d*e+29*a^2*b^2*d*e-42*a*b^3*d*e-25*b^4*d*e-5*a^3*c*d*e-33*a^2*b*c*d*e+36*a*b^2*c*d*e+47*b^3*c*d*e-41*a^2*c^2*d*e+4*a*b*c^2*d*e+44*b^2*c^2*d*e-10*a*c^3*d*e-2*b*c^3*d*e+20*c^4*d*e+21*a^3*d^2*e+6*a^2*b*d^2*e-50*a*b^2*d^2*e+35*b^3*d^2*e-8*a^2*c*d^2*e-17*a*b*c*d^2*e+7*b^2*c*d^2*e+35*a*c^2*d^2*e+28*b*c^2*d^2*e+25*c^3*d^2*e-6*a^2*d^3*e-16*a*b*d^3*e+35*b^2*d^3*e-12*a*c*d^3*e+46*b*c*d^3*e+7*c^2*d^3*e+16*a*d^4*e-24*b*d^4*e+32*c*d^4*e-26*d^5*e+6*a^4*e^2+48*a^3*b*e^2-27*a^2*b^2*e^2+15*a*b^3*e^2-15*b^4*e^2-25*a^3*c*e^2+39*a^2*b*c*e^2-21*a*b^2*c*e^2-8*b^3*c*e^2+15*a^2*c^2*e^2+31*a*b*c^2*e^2+33*b^2*c^2*e^2-31*a*c^3*e^2-27*b*c^3*e^2-16*c^4*e^2+41*a^3*d*e^2-17*a^2*b*d*e^2-25*a*b^2*d*e^2-3*b^3*d*e^2+6*a^2*c*d*e^2-24*a*b*c*d*e^2+b^2*c*d*e^2-a*c^2*d*e^2-15*b*c^2*d*e^2+16*c^3*d*e^2+42*a^2*d^2*e^2+6*a*b*d^2*e^2-25*b^2*d^2*e^2+21*a*c*d^2*e^2+48*b*c*d^2*e^2-10*c^2*d^2*e^2+31*b*d^3*e^2-32*c*d^3*e^2+2*d^4*e^2+35*a^3*e^3+42*a^2*b*e^3+10*a*b^2*e^3-38*b^3*e^3+32*a^2*c*e^3+34*a*b*c*e^3+14*b^2*c*e^3-7*a*c^2*e^3+22*b*c^2*e^3+37*c^3*e^3+2*a^2*d*e^3-42*a*b*d*e^3-6*b^2*d*e^3-9*a*c*d*e^3+22*b*c*d*e^3+19*c^2*d*e^3-21*a*d^2*e^3-37*b*d^2*e^3+43*c*d^2*e^3-36*d^3*e^3+16*a^2*e^4-21*a*b*e^4+44*b^2*e^4-48*a*c*e^4+35*b*c*e^4-25*c^2*e^4+15*a*d*e^4+42*b*d*e^4-27*c*d*e^4+27*d^2*e^4-25*a*e^5-12*b*e^5+20*c*e^5+7*d*e^5+3*e^6,3182 a^3*b^2*c-24*a^4*d^2+20*a^3*b*d^2+24*a^2*b^2*d^2-29*a*b^3*d^2-24*b^4*d^2+13*a^3*c*d^2+31*a*b^2*c*d^2-26*b^3*c*d^2-29*a^2*c^2*d^2-27*a*b*c^2*d^2+4*b^2*c^2*d^2+23*a*c^3*d^2+42*b*c^3*d^2-47*c^4*d^2+50*a^3*d^3+48*a^2*b*d^3-22*a*b^2*d^3+16*b^3*d^3-46*a^2*c*d^3-43*a*b*c*d^3+50*b^2*c*d^3-35*a*c^2*d^3-29*b*c^2*d^3-12*c^3*d^3+23*a^2*d^4+31*a*b*d^4+22*b^2*d^4-27*a*c*d^4-25*b*c*d^4-41*c^2*d^4+42*a*d^5-50*b*d^5+33*c*d^5+11*d^6+19*a^5*e-22*a^4*b*e+33*a^3*b^2*e+43*a^2*b^3*e+43*a*b^4*e-5*b^5*e-14*a^4*c*e-46*a^3*b*c*e-21*a^2*b^2*c*e+29*a*b^3*c*e+15*b^4*c*e+12*a^3*c^2*e-a^2*b*c^2*e-43*a*b^2*c^2*e+48*b^3*c^2*e+26*a^2*c^3*e-46*a*b*c^3*e-35*b^2*c^3*e+a*c^4*e+16*b*c^4*e+6*c^5*e-47*a^4*d*e-a^3*b*d*e+a^2*b^2*d*e-32*a*b^3*d*e-19*b^4*d*e-44*a^3*c*d*e+22*a^2*b*c*d*e+40*a*b^2*c*d*e-19*b^3*c*d*e+12*a^2*c^2*d*e-a*b*c^2*d*e-23*b^2*c^2*d*e-11*a*c^3*d*e-26*b*c^3*d*e-4*c^4*d*e-32*a^3*d^2*e-13*a^2*b*d^2*e-b^3*d^2*e+8*a^2*c*d^2*e-28*a*b*c*d^2*e+46*b^2*c*d^2*e-24*a*c^2*d^2*e+26*b*c^2*d^2*e+27*c^3*d^2*e+12*a^2*d^3*e+10*a*b*d^3*e-32*b^2*d^3*e-12*a*c*d^3*e-30*b*c*d^3*e+50*c^2*d^3*e+6*a*d^4*e+32*b*d^4*e+6*c*d^4*e-48*d^5*e+14*a^4*e^2+48*a^3*b*e^2+16*a^2*b^2*e^2+34*a*b^3*e^2+39*b^4*e^2+2*a^3*c*e^2+5*a^2*b*c*e^2-11*a*b^2*c*e^2-4*b^3*c*e^2-39*a^2*c^2*e^2+46*a*b*c^2*e^2-16*b^2*c^2*e^2-46*a*c^3*e^2-b*c^3*e^2+47*c^4*e^2-3*a^3*d*e^2-48*a^2*b*d*e^2-34*a*b^2*d*e^2+19*b^3*d*e^2+46*a^2*c*d*e^2-49*a*b*c*d*e^2-45*b^2*c*d*e^2-4*a*c^2*d*e^2+33*b*c^2*d*e^2-8*c^3*d*e^2-39*a^2*d^2*e^2-34*a*b*d^2*e^2+9*b^2*d^2*e^2-15*a*c*d^2*e^2+b*c*d^2*e^2+44*c^2*d^2*e^2-39*a*d^3*e^2+10*b*d^3*e^2+9*c*d^3*e^2-6*d^4*e^2-7*a^3*e^3+2*a^2*b*e^3+39*a*b^2*e^3+4*b^3*e^3-49*a^2*c*e^3+48*a*b*c*e^3+b^2*c*e^3+28*a*c^2*e^3-29*b*c^2*e^3-7*c^3*e^3+23*a^2*d*e^3+16*a*b*d*e^3+24*b^2*d*e^3-47*a*c*d*e^3+20*b*c*d*e^3+26*c^2*d*e^3+9*a*d^2*e^3+49*b*d^2*e^3+32*c*d^2*e^3+33*d^3*e^3-3*a^2*e^4+48*a*b*e^4-18*b^2*e^4-43*a*c*e^4-14*b*c*e^4-29*c^2*e^4+49*a*d*e^4-49*b*d*e^4-18*c*d*e^4-18*d^2*e^4+45*a*e^5-40*b*e^5-13*c*e^5+3*d*e^5+5*e^6,3183 a^4*b*c-38*a^4*d^2+23*a^3*b*d^2-28*a^2*b^2*d^2-49*a*b^3*d^2-37*b^4*d^2+46*a^3*c*d^2-39*a^2*b*c*d^2+31*a*b^2*c*d^2+43*b^3*c*d^2+40*a^2*c^2*d^2-30*a*b*c^2*d^2-7*b^2*c^2*d^2+32*a*c^3*d^2+50*b*c^3*d^2+13*c^4*d^2-9*a^3*d^3+23*a^2*b*d^3-12*a*b^2*d^3-42*b^3*d^3+4*a^2*c*d^3-3*a*b*c*d^3+50*b^2*c*d^3+16*a*c^2*d^3+40*b*c^2*d^3-23*c^3*d^3+39*a^2*d^4+35*a*b*d^4-45*b^2*d^4+45*a*c*d^4-15*b*c*d^4-26*c^2*d^4+29*a*d^5+37*b*d^5+3*c*d^5-22*d^6-8*a^5*e+15*a^4*b*e+19*a^3*b^2*e-12*a^2*b^3*e+22*a*b^4*e-48*b^5*e+32*a^4*c*e+48*a^3*b*c*e-14*a^2*b^2*c*e+43*a*b^3*c*e-23*b^4*c*e-36*a^3*c^2*e+36*a^2*b*c^2*e+15*a*b^2*c^2*e-34*b^3*c^2*e-16*a^2*c^3*e+20*a*b*c^3*e-23*b^2*c^3*e+39*a*c^4*e-37*b*c^4*e+43*c^5*e+30*a^4*d*e-38*a^3*b*d*e-25*a^2*b^2*d*e-5*a*b^3*d*e-24*b^4*d*e+5*a^3*c*d*e-47*a^2*b*c*d*e-17*a*b^2*c*d*e+30*b^3*c*d*e-a^2*c^2*d*e-43*a*b*c^2*d*e-6*b^2*c^2*d*e-46*a*c^3*d*e-37*b*c^3*d*e-43*c^4*d*e+48*a^3*d^2*e+20*a^2*b*d^2*e+21*a*b^2*d^2*e+35*b^3*d^2*e-47*a^2*c*d^2*e+27*a*b*c*d^2*e+b^2*c*d^2*e+7*a*c^2*d^2*e-11*b*c^2*d^2*e+46*c^3*d^2*e+40*a^2*d^3*e+43*a*b*d^3*e-31*b^2*d^3*e+22*a*c*d^3*e+2*b*c*d^3*e-18*c^2*d^3*e+35*a*d^4*e+31*b*d^4*e-48*c*d^4*e+43*d^5*e+16*a^4*e^2+27*a^3*b*e^2-28*a^2*b^2*e^2-13*a*b^3*e^2+17*b^4*e^2-34*a^3*c*e^2+12*a^2*b*c*e^2-25*a*b^2*c*e^2+7*b^3*c*e^2-19*a^2*c^2*e^2-31*a*b*c^2*e^2+22*b^2*c^2*e^2-45*a*c^3*e^2-25*b*c^3*e^2+7*c^4*e^2-9*a^3*d*e^2-3*a^2*b*d*e^2+20*a*b^2*d*e^2+28*b^3*d*e^2+41*a^2*c*d*e^2-2*a*b*c*d*e^2+8*b^2*c*d*e^2-20*a*c^2*d*e^2+35*b*c^2*d*e^2-11*c^3*d*e^2-27*a^2*d^2*e^2-29*a*b*d^2*e^2+28*b^2*d^2*e^2+10*a*c*d^2*e^2-8*b*c*d^2*e^2+13*c^2*d^2*e^2-32*a*d^3*e^2+23*b*d^3*e^2-50*c*d^3*e^2+20*d^4*e^2+49*a^3*e^3+9*a^2*b*e^3+27*a*b^2*e^3-15*b^3*e^3-38*a^2*c*e^3+26*a*b*c*e^3-47*b^2*c*e^3+10*a*c^2*e^3-21*b*c^2*e^3+2*c^3*e^3+7*a^2*d*e^3-8*a*b*d*e^3-25*b^2*d*e^3+15*a*c*d*e^3+17*b*c*d*e^3-39*c^2*d*e^3+7*a*d^2*e^3-47*b*d^2*e^3+6*c*d^2*e^3+5*d^3*e^3+21*a^2*e^4-49*a*b*e^4-35*b^2*e^4+32*a*c*e^4-16*b*c*e^4+7*c^2*e^4-25*a*d*e^4+30*b*d*e^4-31*c*d*e^4-21*d^2*e^4+42*a*e^5-b*e^5+14*c*e^5+18*d*e^5+28*e^6,3184 a^5*c-2*a^4*d^2-22*a^3*b*d^2-38*a^2*b^2*d^2+10*a*b^3*d^2+32*b^4*d^2-28*a^3*c*d^2+11*a^2*b*c*d^2-12*a*b^2*c*d^2-39*b^3*c*d^2+43*a^2*c^2*d^2+39*a*b*c^2*d^2-24*b^2*c^2*d^2+27*a*c^3*d^2+47*b*c^3*d^2+9*c^4*d^2+12*a^3*d^3+34*a^2*b*d^3-37*a*b^2*d^3+18*b^3*d^3+45*a^2*c*d^3+21*a*b*c*d^3+29*b^2*c*d^3+31*a*c^2*d^3+23*b*c^2*d^3+44*c^3*d^3-19*a^2*d^4+32*a*b*d^4+46*b^2*d^4+27*a*c*d^4+8*b*c*d^4-20*c^2*d^4-35*a*d^5-21*b*d^5+15*c*d^5-45*d^6-38*a^5*e-35*a^4*b*e-28*a^3*b^2*e-30*a^2*b^3*e-19*a*b^4*e-49*b^5*e+34*a^4*c*e-2*a^3*b*c*e-16*a^2*b^2*c*e-8*a*b^3*c*e-10*b^4*c*e-22*a^3*c^2*e+50*a^2*b*c^2*e-29*a*b^2*c^2*e-19*b^3*c^2*e+39*a^2*c^3*e-4*a*b*c^3*e-36*b^2*c^3*e-24*a*c^4*e-2*b*c^4*e-12*c^5*e-22*a^4*d*e-22*a^3*b*d*e-a^2*b^2*d*e-42*a*b^3*d*e-10*b^4*d*e-7*a^3*c*d*e-6*a^2*b*c*d*e+5*a*b^2*c*d*e+36*b^3*c*d*e-5*a^2*c^2*d*e-21*a*b*c^2*d*e-14*b^2*c^2*d*e-21*a*c^3*d*e+18*b*c^3*d*e+49*c^4*d*e-32*a^3*d^2*e-5*a^2*b*d^2*e-45*a*b^2*d^2*e+6*b^3*d^2*e-40*a*b*c*d^2*e-17*b^2*c*d^2*e-47*a*c^2*d^2*e+12*b*c^2*d^2*e-18*c^3*d^2*e-a^2*d^3*e+6*a*b*d^3*e+2*b^2*d^3*e-29*a*c*d^3*e+15*b*c*d^3*e+21*c^2*d^3*e-36*a*d^4*e-7*b*d^4*e+c*d^4*e-23*d^5*e-24*a^4*e^2+47*a^3*b*e^2+19*a^2*b^2*e^2-44*a*b^3*e^2-13*b^4*e^2+49*a^3*c*e^2+39*a^2*b*c*e^2+44*a*b^2*c*e^2+41*b^3*c*e^2-29*a^2*c^2*e^2+24*a*b*c^2*e^2+34*a*c^3*e^2+14*b*c^3*e^2+7*c^4*e^2+44*a^3*d*e^2+22*a^2*b*d*e^2+41*a*b^2*d*e^2+21*a^2*c*d*e^2+12*a*b*c*d*e^2-33*b^2*c*d*e^2-40*a*c^2*d*e^2+16*b*c^2*d*e^2-36*c^3*d*e^2+13*a^2*d^2*e^2-22*a*b*d^2*e^2+28*b^2*d^2*e^2+29*a*c*d^2*e^2+50*b*c*d^2*e^2+48*c^2*d^2*e^2+40*a*d^3*e^2+2*c*d^3*e^2-5*d^4*e^2-37*a^3*e^3+49*a^2*b*e^3-10*a*b^2*e^3-41*b^3*e^3+11*a^2*c*e^3-37*a*b*c*e^3+26*b^2*c*e^3-39*a*c^2*e^3-46*b*c^2*e^3-3*c^3*e^3+47*a^2*d*e^3+5*a*b*d*e^3-45*b^2*d*e^3+28*a*c*d*e^3+22*b*c*d*e^3+29*c^2*d*e^3+11*a*d^2*e^3+21*b*d^2*e^3+14*c*d^2*e^3+14*d^3*e^3+32*a^2*e^4-27*a*b*e^4-47*b^2*e^4-6*b*c*e^4-38*c^2*e^4-38*a*d*e^4-17*b*d*e^4+20*c*d*e^4-d^2*e^4-4*a*e^5-11*b*e^5-41*c*e^5+25*d*e^5-e^6,3185 b^6-11*a^4*d^2+23*a^3*b*d^2+41*a^2*b^2*d^2+7*a*b^3*d^2+10*b^4*d^2-31*a^3*c*d^2+10*a^2*b*c*d^2+7*a*b^2*c*d^2+36*b^3*c*d^2-10*a^2*c^2*d^2+9*a*b*c^2*d^2-41*b^2*c^2*d^2-26*a*c^3*d^2+26*b*c^3*d^2+12*c^4*d^2+36*a^3*d^3-35*a^2*b*d^3+12*a*b^2*d^3-8*b^3*d^3+23*a^2*c*d^3+16*a*b*c*d^3-24*b^2*c*d^3+17*a*c^2*d^3-29*b*c^2*d^3-48*c^3*d^3+33*a^2*d^4+30*a*b*d^4-41*b^2*d^4-23*a*c*d^4+8*b*c*d^4-10*c^2*d^4+22*a*d^5+5*b*d^5-32*c*d^5+19*d^6+19*a^5*e+21*a^4*b*e-29*a^3*b^2*e+10*a^2*b^3*e-6*a*b^4*e-10*b^5*e-35*a^4*c*e-47*a^3*b*c*e-16*a^2*b^2*c*e-35*a*b^3*c*e+34*b^4*c*e-28*a^3*c^2*e-6*a^2*b*c^2*e-44*a*b^2*c^2*e-47*b^3*c^2*e-18*a^2*c^3*e+48*a*b*c^3*e-b^2*c^3*e-17*a*c^4*e-48*b*c^4*e-25*c^5*e-29*a^4*d*e-18*a^3*b*d*e-28*a^2*b^2*d*e-43*a*b^3*d*e-48*b^4*d*e+45*a^3*c*d*e+18*a^2*b*c*d*e+19*a*b^2*c*d*e-27*b^3*c*d*e-13*a^2*c^2*d*e+50*a*b*c^2*d*e+33*b^2*c^2*d*e+14*a*c^3*d*e+40*b*c^3*d*e+41*c^4*d*e-34*a^3*d^2*e-41*a^2*b*d^2*e+2*a*b^2*d^2*e+37*b^3*d^2*e-a^2*c*d^2*e+8*a*b*c*d^2*e-22*b^2*c*d^2*e-25*a*c^2*d^2*e+41*b*c^2*d^2*e+35*c^3*d^2*e-14*a^2*d^3*e+32*a*b*d^3*e+20*b^2*d^3*e+3*a*c*d^3*e+12*b*c*d^3*e-6*c^2*d^3*e+44*a*d^4*e+36*b*d^4*e+32*c*d^4*e-6*d^5*e+17*a^4*e^2-39*a^3*b*e^2+22*a^2*b^2*e^2+9*a*b^3*e^2+7*b^4*e^2-9*a^3*c*e^2-49*a^2*b*c*e^2+36*a*b^2*c*e^2+16*b^3*c*e^2-10*a^2*c^2*e^2+20*a*b*c^2*e^2+b^2*c^2*e^2-29*a*c^3*e^2-4*b*c^3*e^2-34*c^4*e^2-47*a^3*d*e^2+38*a^2*b*d*e^2+10*a*b^2*d*e^2+21*b^3*d*e^2-42*a^2*c*d*e^2-28*a*b*c*d*e^2-6*b^2*c*d*e^2+22*a*c^2*d*e^2+7*b*c^2*d*e^2-12*c^3*d*e^2-6*a^2*d^2*e^2+2*a*b*d^2*e^2-4*b^2*d^2*e^2+7*a*c*d^2*e^2-39*b*c*d^2*e^2-c^2*d^2*e^2+45*a*d^3*e^2+40*b*d^3*e^2+46*c*d^3*e^2+44*d^4*e^2-30*a^3*e^3+3*a^2*b*e^3+27*a*b^2*e^3+42*b^3*e^3-18*a^2*c*e^3+11*a*b*c*e^3+18*b^2*c*e^3-31*a*c^2*e^3-37*b*c^2*e^3+5*c^3*e^3-46*a^2*d*e^3+32*a*b*d*e^3+34*b^2*d*e^3-50*a*c*d*e^3+8*b*c*d*e^3+47*c^2*d*e^3-35*a*d^2*e^3+38*b*d^2*e^3-38*c*d^2*e^3-47*d^3*e^3+35*a^2*e^4+25*a*b*e^4+31*b^2*e^4+8*a*c*e^4+9*b*c*e^4+40*c^2*e^4-3*a*d*e^4-29*b*d*e^4+20*c*d*e^4+16*d^2*e^4+25*a*e^5+b*e^5+21*c*e^5+13*d*e^5-e^6,3186 a*b^5+6*a^4*d^2-30*a^3*b*d^2+48*a^2*b^2*d^2+22*a*b^3*d^2+49*b^4*d^2-4*a^3*c*d^2+45*a^2*b*c*d^2-28*a*b^2*c*d^2-12*b^3*c*d^2+12*a^2*c^2*d^2+47*a*b*c^2*d^2-14*b^2*c^2*d^2+35*a*c^3*d^2-b*c^3*d^2-39*c^4*d^2-40*a^3*d^3+7*a^2*b*d^3+16*a*b^2*d^3+45*b^3*d^3-a^2*c*d^3+20*a*b*c*d^3-9*b^2*c*d^3-31*a*c^2*d^3-44*b*c^2*d^3-13*c^3*d^3+36*a^2*d^4+8*a*b*d^4+25*b^2*d^4-4*a*c*d^4-10*b*c*d^4-40*c^2*d^4+39*a*d^5-4*b*d^5-24*c*d^5-11*d^6+33*a^5*e+40*a^4*b*e+21*a^3*b^2*e-7*a^2*b^3*e-22*a*b^4*e-48*b^5*e-2*a^4*c*e-32*a^3*b*c*e+4*a^2*b^2*c*e-4*a*b^3*c*e+38*b^4*c*e+50*a^3*c^2*e-15*a^2*b*c^2*e-14*a*b^2*c^2*e+43*b^3*c^2*e+44*a^2*c^3*e-11*a*b*c^3*e-20*b^2*c^3*e-14*a*c^4*e+30*b*c^4*e-44*c^5*e-27*a^4*d*e+2*a^3*b*d*e-31*a^2*b^2*d*e-8*a*b^3*d*e-47*a^3*c*d*e-39*a^2*b*c*d*e-46*a*b^2*c*d*e+6*b^3*c*d*e+32*a^2*c^2*d*e+43*a*b*c^2*d*e-30*b^2*c^2*d*e-31*a*c^3*d*e-48*b*c^3*d*e+31*c^4*d*e+49*a^3*d^2*e-2*a^2*b*d^2*e-7*a*b^2*d^2*e-38*b^3*d^2*e+6*a^2*c*d^2*e+7*a*b*c*d^2*e+5*b^2*c*d^2*e+29*a*c^2*d^2*e-39*b*c^2*d^2*e-15*c^3*d^2*e+9*a^2*d^3*e-28*a*b*d^3*e+19*b^2*d^3*e-11*a*c*d^3*e-5*b*c*d^3*e-46*c^2*d^3*e-34*a*d^4*e-27*b*d^4*e-27*c*d^4*e+11*d^5*e-36*a^4*e^2-28*a^3*b*e^2+7*a^2*b^2*e^2+20*a*b^3*e^2-34*b^4*e^2+43*a^3*c*e^2-44*a^2*b*c*e^2+30*a*b^2*c*e^2-b^3*c*e^2-15*a^2*c^2*e^2+47*a*b*c^2*e^2-5*b^2*c^2*e^2-34*a*c^3*e^2-42*b*c^3*e^2-44*c^4*e^2-7*a^3*d*e^2+32*a^2*b*d*e^2-18*a*b^2*d*e^2-45*b^3*d*e^2+50*a^2*c*d*e^2+27*a*b*c*d*e^2-43*b^2*c*d*e^2-49*a*c^2*d*e^2-12*b*c^2*d*e^2+30*c^3*d*e^2-38*a^2*d^2*e^2+16*a*b*d^2*e^2-32*b^2*d^2*e^2-45*a*c*d^2*e^2+41*b*c*d^2*e^2+8*c^2*d^2*e^2+42*a*d^3*e^2+43*b*d^3*e^2+18*c*d^3*e^2-37*d^4*e^2-13*a^3*e^3+33*a^2*b*e^3-12*a*b^2*e^3-31*b^3*e^3-24*a^2*c*e^3+5*a*b*c*e^3-29*b^2*c*e^3+5*a*c^2*e^3+10*b*c^2*e^3+38*c^3*e^3+31*a^2*d*e^3+49*a*b*d*e^3-39*b^2*d*e^3+49*a*c*d*e^3+11*b*c*d*e^3+17*c^2*d*e^3-a*d^2*e^3+45*b*d^2*e^3-16*c*d^2*e^3+28*d^3*e^3+8*a^2*e^4+19*a*b*e^4+5*b^2*e^4+36*a*c*e^4-19*b*c*e^4-18*c^2*e^4-29*a*d*e^4+33*b*d*e^4-15*c*d*e^4+46*d^2*e^4+43*a*e^5+50*b*e^5+35*c*e^5+38*d*e^5+39*e^6,3187 a^2*b^4-27*a^4*d^2-11*a^3*b*d^2+23*a^2*b^2*d^2+42*a*b^3*d^2+33*b^4*d^2-45*a^2*b*c*d^2+42*a*b^2*c*d^2+30*b^3*c*d^2-a^2*c^2*d^2+41*a*b*c^2*d^2+32*b^2*c^2*d^2-4*a*c^3*d^2-4*b*c^3*d^2+50*c^4*d^2+14*a^3*d^3-17*a^2*b*d^3+20*a*b^2*d^3-31*b^3*d^3+44*a^2*c*d^3+14*a*b*c*d^3+43*b^2*c*d^3+48*a*c^2*d^3-10*b*c^2*d^3-3*c^3*d^3-33*a^2*d^4+9*a*b*d^4+28*b^2*d^4-3*a*c*d^4+15*b*c*d^4+46*c^2*d^4-35*a*d^5-42*b*d^5+44*c*d^5-4*d^6+28*a^5*e+46*a^4*b*e+16*a^3*b^2*e+31*a^2*b^3*e-20*a*b^4*e-15*b^5*e-50*a^4*c*e-8*a^3*b*c*e+4*a^2*b^2*c*e+38*a*b^3*c*e+27*b^4*c*e-29*a^3*c^2*e+27*a^2*b*c^2*e-33*a*b^2*c^2*e-22*b^3*c^2*e-3*a^2*c^3*e-40*a*b*c^3*e+10*b^2*c^3*e-20*a*c^4*e-38*b*c^4*e+36*c^5*e-26*a^4*d*e+41*a^3*b*d*e-15*a^2*b^2*d*e+50*a*b^3*d*e+41*b^4*d*e-18*a^3*c*d*e+18*a^2*b*c*d*e-32*a*b^2*c*d*e+41*b^3*c*d*e-5*a^2*c^2*d*e-a*b*c^2*d*e-10*b^2*c^2*d*e-12*a*c^3*d*e-46*b*c^3*d*e+34*c^4*d*e-42*a^3*d^2*e+2*a^2*b*d^2*e+37*a*b^2*d^2*e-b^3*d^2*e-29*a^2*c*d^2*e+46*a*b*c*d^2*e-49*b^2*c*d^2*e+24*a*c^2*d^2*e-47*b*c^2*d^2*e-34*c^3*d^2*e+46*a^2*d^3*e-5*a*b*d^3*e-27*b^2*d^3*e-29*a*c*d^3*e+25*b*c*d^3*e-30*c^2*d^3*e-2*a*d^4*e-50*b*d^4*e-46*c*d^4*e+2*d^5*e+11*a^4*e^2+48*a^3*b*e^2+24*a^2*b^2*e^2+41*a*b^3*e^2-17*b^4*e^2-10*a^3*c*e^2+8*a^2*b*c*e^2+28*b^3*c*e^2-21*a^2*c^2*e^2+23*a*b*c^2*e^2+8*b^2*c^2*e^2+41*a*c^3*e^2+12*b*c^3*e^2+25*c^4*e^2+25*a^3*d*e^2-49*a^2*b*d*e^2+24*a*b^2*d*e^2-7*b^3*d*e^2-20*a^2*c*d*e^2-48*a*b*c*d*e^2+46*b^2*c*d*e^2-18*a*c^2*d*e^2+13*b*c^2*d*e^2-31*c^3*d*e^2-40*a^2*d^2*e^2+2*a*b*d^2*e^2-48*b^2*d^2*e^2-38*a*c*d^2*e^2+20*b*c*d^2*e^2+47*c^2*d^2*e^2-3*a*d^3*e^2+27*b*d^3*e^2+44*c*d^3*e^2+19*d^4*e^2+38*a^3*e^3+22*a^2*b*e^3+37*a*b^2*e^3+20*b^3*e^3-6*a^2*c*e^3-33*a*b*c*e^3+45*b^2*c*e^3+24*a*c^2*e^3+33*b*c^2*e^3+c^3*e^3+50*a^2*d*e^3-44*a*b*d*e^3-50*b^2*d*e^3-11*a*c*d*e^3-11*b*c*d*e^3-30*c^2*d*e^3-a*d^2*e^3-14*b*d^2*e^3-11*c*d^2*e^3-42*d^3*e^3+3*a^2*e^4-6*a*b*e^4+31*b^2*e^4-47*a*c*e^4+23*b*c*e^4-44*c^2*e^4-28*a*d*e^4-50*b*d*e^4+41*c*d*e^4-19*d^2*e^4+10*a*e^5+13*b*e^5+47*c*e^5+31*d*e^5-49*e^6,3188 a^3*b^3-15*a^4*d^2-17*a^3*b*d^2-a^2*b^2*d^2+18*a*b^3*d^2-30*b^4*d^2-37*a^3*c*d^2+21*a^2*b*c*d^2-a*b^2*c*d^2+16*b^3*c*d^2-41*a^2*c^2*d^2+39*a*b*c^2*d^2-16*b^2*c^2*d^2-22*a*c^3*d^2+19*b*c^3*d^2+46*c^4*d^2-14*a^3*d^3+2*a^2*b*d^3+45*a*b^2*d^3+12*b^3*d^3-28*a^2*c*d^3-19*a*b*c*d^3-20*b^2*c*d^3-6*a*c^2*d^3+17*b*c^2*d^3-20*c^3*d^3+34*a^2*d^4+15*a*b*d^4-8*b^2*d^4+31*a*c*d^4-5*b*c*d^4+41*c^2*d^4-32*a*d^5-38*b*d^5+35*c*d^5-4*d^6-26*a^5*e-20*a^4*b*e-12*a^3*b^2*e+22*a^2*b^3*e-48*a*b^4*e+39*b^5*e-46*a^4*c*e-50*a^3*b*c*e+11*a^2*b^2*c*e-2*a*b^3*c*e+23*b^4*c*e+44*a^3*c^2*e+4*a^2*b*c^2*e+17*a*b^2*c^2*e-39*b^3*c^2*e-a^2*c^3*e-20*a*b*c^3*e-16*b^2*c^3*e+7*a*c^4*e+31*b*c^4*e+18*c^5*e-44*a^4*d*e+7*a^3*b*d*e+26*a^2*b^2*d*e-19*a*b^3*d*e-35*b^4*d*e+47*a^3*c*d*e+17*a^2*b*c*d*e-27*a*b^2*c*d*e-6*b^3*c*d*e-16*a^2*c^2*d*e-10*a*b*c^2*d*e+21*b^2*c^2*d*e-27*a*c^3*d*e+4*b*c^3*d*e-32*c^4*d*e-22*a^3*d^2*e+50*a^2*b*d^2*e-a*b^2*d^2*e+41*b^3*d^2*e-46*a^2*c*d^2*e-18*a*b*c*d^2*e+8*b^2*c*d^2*e-16*a*c^2*d^2*e-38*b*c^2*d^2*e-c^3*d^2*e+18*a^2*d^3*e-25*a*b*d^3*e-47*b^2*d^3*e-23*a*c*d^3*e+8*b*c*d^3*e+20*c^2*d^3*e-41*a*d^4*e-18*b*d^4*e-18*c*d^4*e+33*d^5*e+17*a^4*e^2-10*a^3*b*e^2+28*a^2*b^2*e^2-12*a*b^3*e^2-19*b^4*e^2-20*a^3*c*e^2+45*a^2*b*c*e^2+39*a*b^2*c*e^2+37*b^3*c*e^2-6*a^2*c^2*e^2+19*a*b*c^2*e^2+23*b^2*c^2*e^2+34*a*c^3*e^2+24*b*c^3*e^2+20*c^4*e^2+14*a^3*d*e^2-8*a^2*b*d*e^2+15*a*b^2*d*e^2+19*b^3*d*e^2+14*a^2*c*d*e^2-42*a*b*c*d*e^2-27*b^2*c*d*e^2+11*a*c^2*d*e^2+24*b*c^2*d*e^2-10*c^3*d*e^2+12*a^2*d^2*e^2+18*a*b*d^2*e^2+21*b^2*d^2*e^2+35*a*c*d^2*e^2-15*b*c*d^2*e^2-32*c^2*d^2*e^2+8*a*d^3*e^2+40*b*d^3*e^2+50*c*d^3*e^2-41*d^4*e^2+42*a^3*e^3-38*a^2*b*e^3-27*a*b^2*e^3+32*b^3*e^3+41*a^2*c*e^3+3*a*b*c*e^3+28*b^2*c*e^3+21*a*c^2*e^3-8*b*c^2*e^3+22*c^3*e^3+8*a^2*d*e^3+49*a*b*d*e^3-24*b^2*d*e^3-8*a*c*d*e^3+30*b*c*d*e^3+35*c^2*d*e^3+49*a*d^2*e^3+39*b*d^2*e^3+23*c*d^2*e^3-47*d^3*e^3+43*a^2*e^4-15*a*b*e^4+20*b^2*e^4-35*b*c*e^4+28*c^2*e^4+35*b*d*e^4+12*c*d*e^4+40*d^2*e^4+32*a*e^5-32*b*e^5+25*c*e^5+9*d*e^5-26*e^6,3189 a^4*b^2-31*a^4*d^2+30*a^3*b*d^2-42*a^2*b^2*d^2-32*a*b^3*d^2-38*b^4*d^2-49*a^3*c*d^2-4*a^2*b*c*d^2-45*a*b^2*c*d^2+8*b^3*c*d^2+44*a^2*c^2*d^2+21*a*b*c^2*d^2-13*b^2*c^2*d^2-16*a*c^3*d^2+31*b*c^3*d^2-42*c^4*d^2+49*a^3*d^3+44*a^2*b*d^3+a*b^2*d^3+47*b^3*d^3-31*a^2*c*d^3+42*a*b*c*d^3-34*b^2*c*d^3-44*a*c^2*d^3-3*b*c^2*d^3-14*c^3*d^3+24*a^2*d^4+12*a*b*d^4+14*b^2*d^4-32*a*c*d^4+16*b*c*d^4+40*c^2*d^4+8*a*d^5+5*b*d^5+35*c*d^5+2*d^6+7*a^5*e+a^4*b*e-24*a^3*b^2*e-25*a^2*b^3*e-8*a*b^4*e-46*b^5*e+12*a^4*c*e-49*a^3*b*c*e+47*a^2*b^2*c*e-22*a*b^3*c*e-22*b^4*c*e+31*a^3*c^2*e-48*a^2*b*c^2*e-46*a*b^2*c^2*e+28*b^3*c^2*e-5*a^2*c^3*e+42*a*b*c^3*e-9*b^2*c^3*e+13*a*c^4*e+23*b*c^4*e-29*c^5*e+9*a^4*d*e+9*a^3*b*d*e+3*a^2*b^2*d*e+47*a*b^3*d*e+31*b^4*d*e-25*a^3*c*d*e-37*a*b^2*c*d*e-23*b^3*c*d*e+18*a^2*c^2*d*e+8*a*b*c^2*d*e-15*b^2*c^2*d*e-40*a*c^3*d*e+26*b*c^3*d*e-29*c^4*d*e+20*a^3*d^2*e-25*a^2*b*d^2*e+41*a*b^2*d^2*e+10*b^3*d^2*e-12*a^2*c*d^2*e+38*a*b*c*d^2*e-30*b^2*c*d^2*e-49*b*c^2*d^2*e-34*c^3*d^2*e+14*a^2*d^3*e+45*a*b*d^3*e-29*b^2*d^3*e-23*a*c*d^3*e+33*b*c*d^3*e-23*c^2*d^3*e-36*a*d^4*e+29*b*d^4*e+22*c*d^4*e+45*d^5*e-46*a^4*e^2-37*a^3*b*e^2-36*a^2*b^2*e^2-23*a*b^3*e^2-4*b^4*e^2+31*a^3*c*e^2+45*a^2*b*c*e^2-34*a*b^2*c*e^2+6*b^3*c*e^2-38*a^2*c^2*e^2-26*a*b*c^2*e^2-5*b^2*c^2*e^2-24*a*c^3*e^2-28*b*c^3*e^2+20*c^4*e^2+25*a^3*d*e^2+14*a^2*b*d*e^2+a*b^2*d*e^2+18*b^3*d*e^2+12*a^2*c*d*e^2+32*a*b*c*d*e^2+17*b^2*c*d*e^2+50*a*c^2*d*e^2-12*b*c^2*d*e^2-46*c^3*d*e^2+4*a^2*d^2*e^2-29*a*b*d^2*e^2-16*b^2*d^2*e^2+38*a*c*d^2*e^2+3*b*c*d^2*e^2-19*c^2*d^2*e^2+50*a*d^3*e^2+23*b*d^3*e^2+5*c*d^3*e^2+47*d^4*e^2-38*a^3*e^3-31*a^2*b*e^3+14*a*b^2*e^3-43*b^3*e^3+22*a^2*c*e^3+26*a*b*c*e^3-28*b^2*c*e^3-49*a*c^2*e^3+15*c^3*e^3-40*a^2*d*e^3+5*a*b*d*e^3-20*b^2*d*e^3-40*a*c*d*e^3+35*b*c*d*e^3+17*c^2*d*e^3-8*a*d^2*e^3-6*b*d^2*e^3+3*c*d^2*e^3-7*d^3*e^3+45*a^2*e^4-49*a*b*e^4+45*b^2*e^4-25*a*c*e^4+b*c*e^4-33*c^2*e^4-44*a*d*e^4+30*b*d*e^4-26*c*d*e^4+42*d^2*e^4+14*b*e^5-3*c*e^5-47*d*e^5+22*e^6,3190 a^5*b-48*a^4*d^2-33*a^3*b*d^2-34*a^2*b^2*d^2-14*a*b^3*d^2-29*b^4*d^2-7*a^3*c*d^2-13*a^2*b*c*d^2+15*a*b^2*c*d^2+27*b^3*c*d^2+49*a^2*c^2*d^2-a*b*c^2*d^2+46*b^2*c^2*d^2+37*a*c^3*d^2+20*b*c^3*d^2-27*c^4*d^2+33*a^3*d^3+30*a^2*b*d^3+32*a*b^2*d^3+b^3*d^3-47*a^2*c*d^3-2*a*b*c*d^3-36*b^2*c*d^3-7*a*c^2*d^3-23*b*c^2*d^3-41*c^3*d^3-43*a^2*d^4-4*a*b*d^4+14*b^2*d^4+38*a*c*d^4+41*b*c*d^4+27*c^2*d^4-33*a*d^5-50*b*d^5+8*c*d^5+42*d^6-21*a^5*e+46*a^4*b*e+6*a^3*b^2*e+22*a^2*b^3*e+2*a*b^4*e-15*b^5*e+50*a^4*c*e-40*a^2*b^2*c*e+49*a*b^3*c*e+5*b^4*c*e+a^3*c^2*e+47*a^2*b*c^2*e-36*a*b^2*c^2*e+25*b^3*c^2*e-36*a^2*c^3*e+46*a*b*c^3*e+24*b^2*c^3*e-9*a*c^4*e+39*b*c^4*e-40*c^5*e+29*a^4*d*e-49*a^3*b*d*e+16*a^2*b^2*d*e+7*a*b^3*d*e-30*b^4*d*e+42*a^3*c*d*e+22*a^2*b*c*d*e-49*a*b^2*c*d*e+19*b^3*c*d*e-23*a^2*c^2*d*e+7*a*b*c^2*d*e+2*b^2*c^2*d*e-2*a*c^3*d*e-2*b*c^3*d*e+5*c^4*d*e+35*a^3*d^2*e-47*a^2*b*d^2*e-28*a*b^2*d^2*e+5*b^3*d^2*e+45*a^2*c*d^2*e+7*a*b*c*d^2*e+3*b^2*c*d^2*e+33*a*c^2*d^2*e-37*b*c^2*d^2*e+26*c^3*d^2*e-18*a*b*d^3*e-42*b^2*d^3*e-22*a*c*d^3*e-46*b*c*d^3*e-25*c^2*d^3*e+6*a*d^4*e-50*b*d^4*e+22*c*d^4*e-4*d^5*e-42*a^4*e^2+43*a^3*b*e^2+39*a^2*b^2*e^2+12*a*b^3*e^2-20*b^4*e^2+2*a^3*c*e^2+27*a^2*b*c*e^2-21*a*b^2*c*e^2+36*b^3*c*e^2+47*a^2*c^2*e^2-41*a*b*c^2*e^2-23*b^2*c^2*e^2+34*a*c^3*e^2-29*b*c^3*e^2-46*c^4*e^2+15*a^3*d*e^2+4*a^2*b*d*e^2-13*a*b^2*d*e^2+43*b^3*d*e^2-7*a^2*c*d*e^2+4*a*b*c*d*e^2-37*a*c^2*d*e^2-34*b*c^2*d*e^2+20*c^3*d*e^2-5*a^2*d^2*e^2-42*a*b*d^2*e^2+14*b^2*d^2*e^2+9*a*c*d^2*e^2-19*b*c*d^2*e^2+15*c^2*d^2*e^2-35*a*d^3*e^2+24*b*d^3*e^2-35*c*d^3*e^2-14*d^4*e^2-27*a^3*e^3-39*a^2*b*e^3-44*a*b^2*e^3-6*b^3*e^3-30*a^2*c*e^3+47*a*b*c*e^3-26*b^2*c*e^3+9*a*c^2*e^3+16*b*c^2*e^3+37*c^3*e^3-49*a^2*d*e^3+19*a*b*d*e^3+44*b^2*d*e^3-9*a*c*d*e^3-41*b*c*d*e^3+29*c^2*d*e^3-43*a*d^2*e^3+33*b*d^2*e^3-2*c*d^2*e^3-15*d^3*e^3-4*a^2*e^4-46*a*b*e^4+15*b^2*e^4+21*a*c*e^4+13*b*c*e^4+38*c^2*e^4-20*a*d*e^4+16*b*d*e^4-9*c*d*e^4-19*d^2*e^4+14*a*e^5-33*b*e^5+34*c*e^5+16*d*e^5-24*e^6,3191 a^6-2*a^4*d^2+3*a^3*b*d^2+18*a^2*b^2*d^2-46*a*b^3*d^2-31*b^4*d^2+48*a^3*c*d^2+7*a^2*b*c*d^2+26*a*b^2*c*d^2+17*b^3*c*d^2-30*a^2*c^2*d^2-2*a*b*c^2*d^2+5*b^2*c^2*d^2-43*a*c^3*d^2-33*b*c^3*d^2-28*c^4*d^2-26*a^3*d^3-5*a^2*b*d^3+48*a*b^2*d^3+2*b^3*d^3-15*a^2*c*d^3-18*a*b*c*d^3-16*b^2*c*d^3-12*a*c^2*d^3+21*b*c^2*d^3-31*c^3*d^3+34*a^2*d^4-40*a*b*d^4+41*b^2*d^4+21*a*c*d^4+26*b*c*d^4+50*c^2*d^4-20*a*d^5+8*b*d^5+30*c*d^5+48*d^6-37*a^5*e+28*a^4*b*e+8*a^3*b^2*e+30*a^2*b^3*e-a*b^4*e-49*b^5*e-8*a^4*c*e+26*a^3*b*c*e+20*a^2*b^2*c*e+19*a*b^3*c*e-23*b^4*c*e+11*a^3*c^2*e+37*a^2*b*c^2*e+40*a*b^2*c^2*e-33*b^3*c^2*e-26*a^2*c^3*e+12*a*b*c^3*e+29*b^2*c^3*e-a*c^4*e-15*b*c^4*e-24*c^5*e-41*a^4*d*e-4*a^3*b*d*e+42*a^2*b^2*d*e+9*a*b^3*d*e-49*b^4*d*e-11*a^3*c*d*e+21*a^2*b*c*d*e+22*a*b^2*c*d*e+22*b^3*c*d*e-9*a^2*c^2*d*e+27*a*b*c^2*d*e-36*b^2*c^2*d*e-10*a*c^3*d*e-39*b*c^3*d*e-3*c^4*d*e+16*a^3*d^2*e+9*a^2*b*d^2*e+7*a*b^2*d^2*e+33*b^3*d^2*e+42*a^2*c*d^2*e-38*a*b*c*d^2*e+33*b^2*c*d^2*e+41*a*c^2*d^2*e-36*b*c^2*d^2*e-21*c^3*d^2*e+34*a^2*d^3*e-43*a*b*d^3*e+32*b^2*d^3*e-9*a*c*d^3*e-34*b*c*d^3*e-4*c^2*d^3*e-10*a*d^4*e-29*b*d^4*e+4*c*d^4*e+36*d^5*e+40*a^4*e^2-32*a^3*b*e^2+13*a^2*b^2*e^2+22*a*b^3*e^2-15*b^4*e^2+31*a^3*c*e^2+7*a^2*b*c*e^2-15*a*b^2*c*e^2+43*b^3*c*e^2-45*a^2*c^2*e^2-42*a*b*c^2*e^2+41*b^2*c^2*e^2-46*a*c^3*e^2-6*b*c^3*e^2+26*c^4*e^2+45*a^3*d*e^2+11*a^2*b*d*e^2+10*a*b^2*d*e^2+5*b^3*d*e^2+3*a^2*c*d*e^2-49*a*b*c*d*e^2-10*b^2*c*d*e^2-50*a*c^2*d*e^2+38*b*c^2*d*e^2+21*c^3*d*e^2+37*a^2*d^2*e^2+a*b*d^2*e^2+38*b^2*d^2*e^2+25*a*c*d^2*e^2-7*b*c*d^2*e^2-13*c^2*d^2*e^2+32*a*d^3*e^2+37*b*d^3*e^2-27*c*d^3*e^2-7*d^4*e^2+44*a^3*e^3+48*a^2*b*e^3+21*a*b^2*e^3+11*b^3*e^3+9*a^2*c*e^3+49*a*b*c*e^3-39*b^2*c*e^3+24*a*c^2*e^3+35*b*c^2*e^3-11*c^3*e^3+17*a^2*d*e^3+36*a*b*d*e^3-19*b^2*d*e^3-47*a*c*d*e^3-47*b*c*d*e^3-12*c^2*d*e^3+34*a*d^2*e^3+35*b*d^2*e^3+18*d^3*e^3-31*a^2*e^4+45*a*b*e^4+27*b^2*e^4+43*a*c*e^4-35*b*c*e^4-29*c^2*e^4-21*a*d*e^4+49*b*d*e^4-23*c*d*e^4+34*d^2*e^4-2*a*e^5+47*b*e^5+31*c*e^5-46*d*e^5-13*e^6,3192 e^7, d*e^6, c*e^6, b*e^6, a*e^6, d^2*e^5, c*d*e^5, b*d*e^5, a*d*e^5, c^2*e^5,3193 b*c*e^5, a*c*e^5, b^2*e^5, a*b*e^5, a^2*e^5, d^3*e^4, c*d^2*e^4, b*d^2*e^4,3194 a*d^2*e^4, c^2*d*e^4, b*c*d*e^4, a*c*d*e^4, b^2*d*e^4, a*b*d*e^4, a^2*d*e^4,3195 c^3*e^4, b*c^2*e^4, a*c^2*e^4, b^2*c*e^4, a*b*c*e^4, a^2*c*e^4, b^3*e^4,3196 a*b^2*e^4, a^2*b*e^4, a^3*e^4, d^4*e^3, c*d^3*e^3, b*d^3*e^3, a*d^3*e^3,3197 c^2*d^2*e^3, b*c*d^2*e^3, a*c*d^2*e^3, b^2*d^2*e^3, a*b*d^2*e^3, a^2*d^2*e^3,3198 c^3*d*e^3, b*c^2*d*e^3, a*c^2*d*e^3, b^2*c*d*e^3, a*b*c*d*e^3, a^2*c*d*e^3,3199 b^3*d*e^3, a*b^2*d*e^3, a^2*b*d*e^3, a^3*d*e^3, c^4*e^3, b*c^3*e^3, a*c^3*e^3,3200 b^2*c^2*e^3, a*b*c^2*e^3, a^2*c^2*e^3, b^3*c*e^3, a*b^2*c*e^3, a^2*b*c*e^3,3201 a^3*c*e^3, b^4*e^3, a*b^3*e^3, a^2*b^2*e^3, a^3*b*e^3, a^4*e^3, d^5*e^2,3202 c*d^4*e^2, b*d^4*e^2, a*d^4*e^2, c^2*d^3*e^2, b*c*d^3*e^2, a*c*d^3*e^2,3203 b^2*d^3*e^2, a*b*d^3*e^2, a^2*d^3*e^2, c^3*d^2*e^2, b*c^2*d^2*e^2,3204 a*c^2*d^2*e^2, b^2*c*d^2*e^2, a*b*c*d^2*e^2;3205 M;3206 TestSSresAttribs(M);3207 // with tails3208 // options: 1 1 0 : Time: 34/73/92 (316 without LCM)3209 // options: 1 1 1 : Time: 35/43/2023210 kill M;3211 3212 3213 kill AGR;3214 3215 ring AGR = (101), (a,b,c,d,e,f), dp; AGR;3216 ideal M = b*f+7*c*f+30*d*f-38*e*f, a*f+10*c*f-25*d*f+14*e*f, d*e-10*c*f-17*d*f+26*e*f, c*e-43*c*f+12*d*f+30*e*f, b*e+37*c*f+15*d*f+48*e*f, a*e+21*c*f+37*d*f+42*e*f, c*d+21*c*f+20*d*f-42*e*f, b*d-39*c*f+27*d*f+11*e*f, a*d-39*c*f+17*d*f+21*e*f, b*c+36*c*f+6*d*f-43*e*f, a*c+12*c*f-2*d*f-11*e*f, a*b-35*c*f+d*f+33*e*f, e*f^6+46*f^7, d*f^6-37*f^7, c*f^6+9*f^7, e^7+19*f^7, d^7+40*f^7, c^7+34*f^7, b^7+17*f^7, a^7+40*f^7;3217 3218 TestSSresAttribs(M);3219 kill M;3220 }3221 */3222 3223 // TODO: faster betties!!! -
Singular/LIB/swalk.lib
-
Property
mode
changed from
100644
to100755
-
Property
mode
changed from
-
Singular/dyn_modules/syzextra/test.sh
r8e682d r8af63a 4 4 #"$SINGULAR_EXECUTABLE" -teq "$srcdir/ederc.tst" || exit 1 5 5 #"$SINGULAR_EXECUTABLE" -teq "$srcdir/syzextra.tst" || exit 1 6 "$SINGULAR_EXECUTABLE" -tec 'LIB "schreyer.lib"; testSimple(0); $' || exit 16 "$SINGULAR_EXECUTABLE" -tec 'LIB "schreyer.lib"; listvar(Top); proc T(){ Schreyer::testSimple(1); /* Schreyer::testAGR(0); Schreyer::testAGRhard(0); */ } T(); $' || exit 1 -
Singular/extra.cc
r05e7392 r8af63a 1777 1777 if (strcmp(sys_cmd, "Mwalk") == 0) 1778 1778 { 1779 const short t[]={ 4,IDEAL_CMD,INTVEC_CMD,INTVEC_CMD,RING_CMD};1779 const short t[]={6,IDEAL_CMD,INTVEC_CMD,INTVEC_CMD,RING_CMD,INT_CMD,INT_CMD}; 1780 1780 if (!iiCheckTypes(h,t,1)) return TRUE; 1781 1781 if (((intvec*) h->next->Data())->length() != currRing->N && … … 1788 1788 ideal arg1 = (ideal) h->Data(); 1789 1789 intvec* arg2 = (intvec*) h->next->Data(); 1790 intvec* arg3 = (intvec*) h->next->next->Data(); 1791 ring arg4 = (ring) h->next->next->next->Data(); 1792 ideal result = (ideal) Mwalk(arg1, arg2, arg3,arg4); 1790 intvec* arg3 = (intvec*) h->next->next->Data(); 1791 ring arg4 = (ring) h->next->next->next->Data(); 1792 int arg5 = (int) (long) h->next->next->next->next->Data(); 1793 int arg6 = (int) (long) h->next->next->next->next->next->Data(); 1794 ideal result = (ideal) Mwalk(arg1, arg2, arg3, arg4, arg5, arg6); 1793 1795 res->rtyp = IDEAL_CMD; 1794 1796 res->data = result; … … 1826 1828 if (strcmp(sys_cmd, "Mpwalk") == 0) 1827 1829 { 1828 const short t[]={ 6,IDEAL_CMD,INT_CMD,INT_CMD,INTVEC_CMD,INTVEC_CMD,INT_CMD};1830 const short t[]={8,IDEAL_CMD,INT_CMD,INT_CMD,INTVEC_CMD,INTVEC_CMD,INT_CMD,INT_CMD,INT_CMD}; 1829 1831 if (!iiCheckTypes(h,t,1)) return TRUE; 1830 1832 if(((intvec*) h->next->next->next->Data())->length() != currRing->N && … … 1840 1842 intvec* arg5 = (intvec*) h->next->next->next->next->Data(); 1841 1843 int arg6 = (int) (long) h->next->next->next->next->next->Data(); 1842 ideal result = (ideal) Mpwalk(arg1, arg2, arg3, arg4, arg5,arg6); 1844 int arg7 = (int) (long) h->next->next->next->next->next->next->Data(); 1845 int arg8 = (int) (long) h->next->next->next->next->next->next->next->Data(); 1846 ideal result = (ideal) Mpwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); 1843 1847 res->rtyp = IDEAL_CMD; 1844 1848 res->data = result; … … 1852 1856 if (strcmp(sys_cmd, "Mrwalk") == 0) 1853 1857 { 1854 const short t[]={ 6,IDEAL_CMD,INTVEC_CMD,INTVEC_CMD,INT_CMD,INT_CMD,RING_CMD};1858 const short t[]={7,IDEAL_CMD,INTVEC_CMD,INTVEC_CMD,INT_CMD,INT_CMD,INT_CMD,INT_CMD}; 1855 1859 if (!iiCheckTypes(h,t,1)) return TRUE; 1856 if((( (intvec*) h->next->Data())->length() != currRing->N &&1857 ((intvec*) h->next-> next->Data())->length() != currRing->N) &&1858 (( (intvec*) h->next->Data())->length() != (currRing->N)*(currRing->N)&&1859 ((intvec*) h->next->next->Data())->length() != (currRing->N)*(currRing->N) ) )1860 if(((intvec*) h->next->Data())->length() != currRing->N && 1861 ((intvec*) h->next->Data())->length() != (currRing->N)*(currRing->N) && 1862 ((intvec*) h->next->next->Data())->length() != currRing->N && 1863 ((intvec*) h->next->next->Data())->length() != (currRing->N)*(currRing->N) ) 1860 1864 { 1861 1865 Werror("system(\"Mrwalk\" ...) intvecs not of length %d or %d\n", … … 1868 1872 int arg4 = (int)(long) h->next->next->next->Data(); 1869 1873 int arg5 = (int)(long) h->next->next->next->next->Data(); 1870 ring arg6 = (ring) h->next->next->next->next->next->Data(); 1871 ideal result = (ideal) Mrwalk(arg1, arg2, arg3, arg4, arg5, arg6); 1874 int arg6 = (int)(long) h->next->next->next->next->next->Data(); 1875 int arg7 = (int)(long) h->next->next->next->next->next->next->Data(); 1876 ideal result = (ideal) Mrwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7); 1872 1877 res->rtyp = IDEAL_CMD; 1873 1878 res->data = result; … … 1931 1936 if (strcmp(sys_cmd, "Mfwalk") == 0) 1932 1937 { 1933 const short t[]={ 3,IDEAL_CMD,INTVEC_CMD,INTVEC_CMD};1938 const short t[]={5,IDEAL_CMD,INTVEC_CMD,INTVEC_CMD,INT_CMD,INT_CMD}; 1934 1939 if (!iiCheckTypes(h,t,1)) return TRUE; 1935 1940 if (((intvec*) h->next->Data())->length() != currRing->N && … … 1938 1943 Werror("system(\"Mfwalk\" ...) intvecs not of length %d\n", 1939 1944 currRing->N); 1940 return TRUE;1941 }1942 ideal arg1 = (ideal) h->Data();1943 intvec* arg2 = (intvec*) h->next->Data();1944 intvec* arg3 = (intvec*) h->next->next->Data();1945 ideal result = (ideal) Mfwalk(arg1, arg2, arg3);1946 res->rtyp = IDEAL_CMD;1947 res->data = result;1948 return FALSE;1949 }1950 else1951 #endif1952 /*==================== Mfrwalk =================*/1953 #ifdef HAVE_WALK1954 if (strcmp(sys_cmd, "Mfrwalk") == 0)1955 {1956 const short t[]={6,IDEAL_CMD,INTVEC_CMD,INTVEC_CMD,INT_CMD,INT_CMD,RING_CMD};1957 if (!iiCheckTypes(h,t,1)) return TRUE;1958 if (((intvec*) h->next->Data())->length() != currRing->N &&1959 ((intvec*) h->next->next->Data())->length() != currRing->N)1960 {1961 Werror("system(\"Mfrwalk\" ...) intvecs not of length %d\n",currRing->N);1962 1945 return TRUE; 1963 1946 } … … 1966 1949 intvec* arg3 = (intvec*) h->next->next->Data(); 1967 1950 int arg4 = (int)(long) h->next->next->next->Data(); 1968 ideal result = (ideal) Mfrwalk(arg1, arg2, arg3, arg4); 1951 int arg5 = (int)(long) h->next->next->next->next->Data(); 1952 ideal result = (ideal) Mfwalk(arg1, arg2, arg3, arg4, arg5); 1969 1953 res->rtyp = IDEAL_CMD; 1970 1954 res->data = result; … … 1972 1956 } 1973 1957 else 1958 #endif 1959 /*==================== Mfrwalk =================*/ 1960 #ifdef HAVE_WALK 1961 if (strcmp(sys_cmd, "Mfrwalk") == 0) 1962 { 1963 const short t[]={6,IDEAL_CMD,INTVEC_CMD,INTVEC_CMD,INT_CMD,INT_CMD,INT_CMD}; 1964 if (!iiCheckTypes(h,t,1)) return TRUE; 1965 /* 1966 if (((intvec*) h->next->Data())->length() != currRing->N && 1967 ((intvec*) h->next->next->Data())->length() != currRing->N) 1968 { 1969 Werror("system(\"Mfrwalk\" ...) intvecs not of length %d\n",currRing->N); 1970 return TRUE; 1971 } 1972 */ 1973 if((((intvec*) h->next->Data())->length() != currRing->N && 1974 ((intvec*) h->next->next->Data())->length() != currRing->N ) && 1975 (((intvec*) h->next->Data())->length() != (currRing->N)*(currRing->N) && 1976 ((intvec*) h->next->next->Data())->length() != (currRing->N)*(currRing->N) )) 1977 { 1978 Werror("system(\"Mfrwalk\" ...) intvecs not of length %d or %d\n", 1979 currRing->N,(currRing->N)*(currRing->N)); 1980 return TRUE; 1981 } 1982 1983 ideal arg1 = (ideal) h->Data(); 1984 intvec* arg2 = (intvec*) h->next->Data(); 1985 intvec* arg3 = (intvec*) h->next->next->Data(); 1986 int arg4 = (int)(long) h->next->next->next->Data(); 1987 int arg5 = (int)(long) h->next->next->next->next->Data(); 1988 int arg6 = (int)(long) h->next->next->next->next->next->Data(); 1989 ideal result = (ideal) Mfrwalk(arg1, arg2, arg3, arg4, arg5, arg6); 1990 res->rtyp = IDEAL_CMD; 1991 res->data = result; 1992 return FALSE; 1993 } 1994 else 1974 1995 /*==================== Mprwalk =================*/ 1975 1996 if (strcmp(sys_cmd, "Mprwalk") == 0) 1976 1997 { 1977 const short t[]={ 7,IDEAL_CMD,INTVEC_CMD,INTVEC_CMD,INT_CMD,INT_CMD,INT_CMD,RING_CMD};1998 const short t[]={9,IDEAL_CMD,INTVEC_CMD,INTVEC_CMD,INT_CMD,INT_CMD,INT_CMD,INT_CMD,INT_CMD,INT_CMD}; 1978 1999 if (!iiCheckTypes(h,t,1)) return TRUE; 1979 if (((intvec*) h->next->Data())->length() != currRing->N && 1980 ((intvec*) h->next->next->Data())->length() != currRing->N ) 1981 { 1982 Werror("system(\"Mrwalk\" ...) intvecs not of length %d\n", 1983 currRing->N); 2000 if((((intvec*) h->next->Data())->length() != currRing->N && 2001 ((intvec*) h->next->next->Data())->length() != currRing->N ) && 2002 (((intvec*) h->next->Data())->length() != (currRing->N)*(currRing->N) && 2003 ((intvec*) h->next->next->Data())->length() != (currRing->N)*(currRing->N) )) 2004 { 2005 Werror("system(\"Mrwalk\" ...) intvecs not of length %d or %d\n", 2006 currRing->N,(currRing->N)*(currRing->N)); 1984 2007 return TRUE; 1985 2008 } … … 1990 2013 int arg5 = (int)(long) h->next->next->next->next->Data(); 1991 2014 int arg6 = (int)(long) h->next->next->next->next->next->Data(); 1992 ring arg7 = (ring) h->next->next->next->next->next->next->Data(); 1993 ideal result = (ideal) Mprwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7); 2015 int arg7 = (int)(long) h->next->next->next->next->next->next->Data(); 2016 int arg8 = (int)(long) h->next->next->next->next->next->next->next->Data(); 2017 int arg9 = (int)(long) h->next->next->next->next->next->next->next->next->Data(); 2018 ideal result = (ideal) Mprwalk(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); 1994 2019 res->rtyp = IDEAL_CMD; 1995 2020 res->data = result; -
Singular/ipassign.cc
r8e682d r8af63a 57 57 #include "blackbox.h" 58 58 59 #ifdef SINGULAR_4_160 59 #include <Singular/number2.h> 61 #endif62 60 63 61 -
Singular/newstruct.cc
r8e682d r8af63a 267 267 lists n2=(lists)r->Data(); 268 268 n2=lCopy_newstruct(n2); 269 r->CleanUp(); 269 270 if (l->rtyp==IDHDL) 270 271 { -
Singular/number2.h
r8e682d r8af63a 2 2 #define NUMBER2_H 3 3 4 #include <libpolys/misc/auxiliary.h> 5 4 6 #ifdef SINGULAR_4_1 5 #include<libpolys/coeffs/coeffs.h> 7 #include <omalloc/omalloc.h> 8 #include <libpolys/coeffs/coeffs.h> 9 #include <kernel/structs.h> 6 10 struct snumber2; 7 11 typedef struct snumber2 * number2; -
Singular/table.h
r8e682d r8af63a 551 551 ,{D(jjEXTGCD_BI), EXTGCD_CMD, LIST_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL |ALLOW_RING} 552 552 ,{D(jjEXTGCD_P), EXTGCD_CMD, LIST_CMD, POLY_CMD, POLY_CMD, NO_PLURAL |NO_RING} 553 ,{D(jjFAC_P2), 553 ,{D(jjFAC_P2), FAC_CMD, IDEAL_CMD, POLY_CMD, INT_CMD, NO_PLURAL |NO_RING} 554 554 ,{D(jjFACSTD2), FACSTD_CMD, LIST_CMD, IDEAL_CMD, IDEAL_CMD, NO_PLURAL |NO_RING} 555 555 ,{D(jjFAREY_BI), FAREY_CMD, NUMBER_CMD, BIGINT_CMD, BIGINT_CMD, ALLOW_PLURAL |NO_RING} 556 ,{D(jjFAREY_ID), 557 ,{D(jjFAREY_ID), 558 ,{D(jjFAREY_ID), 556 ,{D(jjFAREY_ID), FAREY_CMD, ANY_TYPE/*set by p*/,IDEAL_CMD,BIGINT_CMD, ALLOW_PLURAL |NO_RING} 557 ,{D(jjFAREY_ID), FAREY_CMD, ANY_TYPE/*set by p*/,MODUL_CMD,BIGINT_CMD, ALLOW_PLURAL |NO_RING} 558 ,{D(jjFAREY_ID), FAREY_CMD, ANY_TYPE/*set by p*/,MATRIX_CMD,BIGINT_CMD, ALLOW_PLURAL |NO_RING} 559 559 ,{D(jjFETCH), FETCH_CMD, ANY_TYPE/*set by p*/,RING_CMD, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING} 560 560 ,{D(jjFETCH), FETCH_CMD, ANY_TYPE/*set by p*/,QRING_CMD, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING} … … 636 636 ,{D(jjQUOT), QUOTIENT_CMD, IDEAL_CMD, MODUL_CMD, MODUL_CMD, ALLOW_PLURAL |ALLOW_RING} 637 637 ,{D(jjRANDOM), RANDOM_CMD, INT_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING} 638 ,{D(jjRANK2), RANK_CMD, INT_CMD, MATRIX_CMD, INT_CMD, ALLOW_PLURAL | ALLOW_RING}638 ,{D(jjRANK2), RANK_CMD, INT_CMD, MATRIX_CMD, INT_CMD, ALLOW_PLURAL |NO_RING} 639 639 ,{D(jjREAD2), READ_CMD, STRING_CMD, LINK_CMD, STRING_CMD, ALLOW_PLURAL |ALLOW_RING} 640 640 ,{D(jjREDUCE_P), REDUCE_CMD, POLY_CMD, POLY_CMD, IDEAL_CMD, ALLOW_PLURAL |ALLOW_RING} … … 844 844 ,{D(jjSTD_HILB_WP), STD_CMD, IDEAL_CMD, 4 , NO_PLURAL |NO_RING} 845 845 ,{D(jjQRDS), QRDS_CMD, LIST_CMD, 4 , ALLOW_PLURAL |ALLOW_RING} 846 ,{D(jjFactModD_M),FMD_CMD, LIST_CMD, -2 , ALLOW_PLURAL |ALLOW_RING}846 ,{D(jjFactModD_M),FMD_CMD, LIST_CMD, -2 , NO_PLURAL |NO_RING} 847 847 ,{NULL_VAL, 0, 0, 0 , NO_PLURAL |NO_RING} 848 848 }; -
Singular/walk.cc
-
Property
mode
changed from
100644
to100755
r05e7392 r8af63a 431 431 #endif 432 432 433 #ifdef CHECK_IDEAL_MWALK433 //#ifdef CHECK_IDEAL_MWALK 434 434 static void idString(ideal L, const char* st) 435 435 { … … 443 443 Print(" %s;", pString(L->m[nL-1])); 444 444 } 445 #endif445 //#endif 446 446 447 447 #if defined(CHECK_IDEAL_MWALK) || defined(ENDWALKS) … … 560 560 } 561 561 return p0; 562 } 563 564 /***************************************************************************** 565 * compute the gcd of the entries of the vectors curr_weight and diff_weight * 566 *****************************************************************************/ 567 static int simplify_gcd(intvec* curr_weight, intvec* diff_weight) 568 { 569 int j; 570 int nRing = currRing->N; 571 int gcd_tmp = (*curr_weight)[0]; 572 for (j=1; j<nRing; j++) 573 { 574 gcd_tmp = gcd(gcd_tmp, (*curr_weight)[j]); 575 if(gcd_tmp == 1) 576 { 577 break; 578 } 579 } 580 if(gcd_tmp != 1) 581 { 582 for (j=0; j<nRing; j++) 583 { 584 gcd_tmp = gcd(gcd_tmp, (*diff_weight)[j]); 585 if(gcd_tmp == 1) 586 { 587 break; 588 } 589 } 590 } 591 return gcd_tmp; 562 592 } 563 593 … … 955 985 } 956 986 957 /***************************************************************************** 958 * create a weight matrix order as intvec of an extra weight vector (a(iv), lp)*959 ****************************************************************************** /987 /********************************************************************************* 988 * create a weight matrix order as intvec of an extra weight vector (a(iv),M(iw)) * 989 **********************************************************************************/ 960 990 intvec* MivMatrixOrderRefine(intvec* iv, intvec* iw) 961 991 { 962 assume( iv->length() == iw->length());963 int i, nR = iv->length();992 assume((iv->length())*(iv->length()) == iw->length()); 993 int i,j, nR = iv->length(); 964 994 965 995 intvec* ivm = new intvec(nR*nR); … … 968 998 { 969 999 (*ivm)[i] = (*iv)[i]; 970 (*ivm)[i+nR] = (*iw)[i]; 971 } 972 for(i=2; i<nR; i++) 973 { 974 (*ivm)[i*nR+i-2] = 1; 1000 } 1001 for(i=1; i<nR; i++) 1002 { 1003 for(j=0; j<nR; j++) 1004 { 1005 (*ivm)[j+i*nR] = (*iw)[j+i*nR]; 1006 } 975 1007 } 976 1008 return ivm; … … 1861 1893 } 1862 1894 1895 1896 /************************************************************** 1897 * Look for the position of the smallest absolut value in vec * 1898 **************************************************************/ 1899 static int MivAbsMaxArg(intvec* vec) 1900 { 1901 int k = MivAbsMax(vec); 1902 int i=0; 1903 while(1) 1904 { 1905 if((*vec)[i] == k || (*vec)[i] == -k) 1906 { 1907 break; 1908 } 1909 i++; 1910 } 1911 return i; 1912 } 1913 1914 1863 1915 /********************************************************************** 1864 1916 * Compute a next weight vector between curr_weight and target_weight * … … 1875 1927 1876 1928 int nRing = currRing->N; 1877 int checkRed, j, kkk,nG = IDELEMS(G);1929 int checkRed, j, nG = IDELEMS(G); 1878 1930 intvec* ivtemp; 1879 1931 … … 1913 1965 mpz_init(dcw); 1914 1966 1915 //int tn0, tn1, tz1, ncmp, gcd_tmp, ntmp;1916 1967 int gcd_tmp; 1917 1968 intvec* diff_weight = MivSub(target_weight, curr_weight); … … 1919 1970 intvec* diff_weight1 = MivSub(target_weight, curr_weight); 1920 1971 poly g; 1921 //poly g, gw; 1972 1922 1973 for (j=0; j<nG; j++) 1923 1974 { … … 1981 2032 } 1982 2033 } 1983 //Print("\n// Alloc Size = %d \n", nRing*sizeof(mpz_t));2034 //Print("\n// Alloc Size = %d \n", nRing*sizeof(mpz_t)); 1984 2035 mpz_t *vec=(mpz_t*)omAlloc(nRing*sizeof(mpz_t)); 1985 2036 1986 2037 1987 // there is no 0<t<1 and define the next weight vector that is equal to the current weight vector 2038 // there is no 0<t<1 and define the next weight vector that is equal 2039 // to the current weight vector 1988 2040 if(mpz_cmp(t_nenner, t_null) == 0) 1989 2041 { … … 2056 2108 #endif 2057 2109 2058 // BOOLEAN isdwpos; 2059 2060 // construct a new weight vector 2110 // construct a new weight vector and check whether vec[j] is overflow, 2111 // i.e. vec[j] > 2^31. 2112 // If vec[j] doesn't overflow, define a weight vector. Otherwise, 2113 // report that overflow appears. In the second case, test whether the 2114 // the correctness of the new vector plays an important role 2115 2061 2116 for (j=0; j<nRing; j++) 2062 2117 { … … 2102 2157 } 2103 2158 } 2104 2159 // reduce the vector with the gcd 2160 if(mpz_cmp_si(ggt,1) != 0) 2161 { 2162 for (j=0; j<nRing; j++) 2163 { 2164 mpz_divexact(vec[j], vec[j], ggt); 2165 } 2166 } 2105 2167 #ifdef NEXT_VECTORS_CC 2106 2168 PrintS("\n// gcd of elements of the vector: "); … … 2108 2170 #endif 2109 2171 2110 /**********************************************************************2111 * construct a new weight vector and check whether vec[j] is overflow, *2112 * i.e. vec[j] > 2^31. *2113 * If vec[j] doesn't overflow, define a weight vector. Otherwise, *2114 * report that overflow appears. In the second case, test whether the *2115 * the correctness of the new vector plays an important role *2116 **********************************************************************/2117 kkk=0;2118 2172 for(j=0; j<nRing; j++) 2119 2173 { … … 2131 2185 2132 2186 REDUCTION: 2187 checkRed = 1; 2133 2188 for (j=0; j<nRing; j++) 2134 2189 { 2135 (*diff_weight)[j] = mpz_get_si(vec[j]); 2136 } 2137 while(MivAbsMax(diff_weight) >= 5) 2138 { 2139 for (j=0; j<nRing; j++) 2140 { 2141 if(mpz_cmp_si(ggt,1)==0) 2142 { 2143 (*diff_weight1)[j] = floor(0.1*(*diff_weight)[j] + 0.5); 2144 // Print("\n// vector[%d] = %d \n",j+1, (*diff_weight1)[j]); 2145 } 2146 else 2147 { 2148 mpz_divexact(vec[j], vec[j], ggt); 2149 (*diff_weight1)[j] = floor(0.1*(*diff_weight)[j] + 0.5); 2150 // Print("\n// vector[%d] = %d \n",j+1, (*diff_weight1)[j]); 2151 } 2152 /* 2153 if((*diff_weight1)[j] == 0) 2154 { 2155 kkk = kkk + 1; 2156 } 2157 */ 2158 } 2159 2160 2161 /* 2162 if(kkk > nRing - 1) 2163 { 2164 // diff_weight was reduced to zero 2165 // Print("\n // MwalkNextWeightCC: geaenderter Vector gleich Null! \n"); 2166 goto TEST_OVERFLOW; 2167 } 2168 */ 2169 2170 if(test_w_in_ConeCC(G,diff_weight1) != 0) 2171 { 2172 Print("\n// MwalkNextWeightCC: geaenderter vector liegt in Groebnerkegel! \n"); 2173 for (j=0; j<nRing; j++) 2174 { 2175 (*diff_weight)[j] = (*diff_weight1)[j]; 2176 } 2177 if(MivAbsMax(diff_weight) < 5) 2178 { 2179 checkRed = 1; 2180 goto SIMPLIFY_GCD; 2181 } 2182 } 2183 else 2184 { 2185 // Print("\n// MwalkNextWeightCC: geaenderter vector liegt nicht in Groebnerkegel! \n"); 2186 break; 2187 } 2190 (*diff_weight1)[j] = mpz_get_si(vec[j]); 2191 } 2192 while(test_w_in_ConeCC(G,diff_weight1)) 2193 { 2194 for(j=0; j<nRing; j++) 2195 { 2196 (*diff_weight)[j] = (*diff_weight1)[j]; 2197 mpz_set_si(vec[j], (*diff_weight)[j]); 2198 } 2199 for(j=0; j<nRing; j++) 2200 { 2201 (*diff_weight1)[j] = floor(0.1*(*diff_weight)[j] + 0.5); 2202 } 2203 } 2204 if(MivAbsMax(diff_weight)>10000) 2205 { 2206 for(j=0; j<nRing; j++) 2207 { 2208 (*diff_weight1)[j] = (*diff_weight)[j]; 2209 } 2210 j = 0; 2211 while(test_w_in_ConeCC(G,diff_weight1)) 2212 { 2213 (*diff_weight)[j] = (*diff_weight1)[j]; 2214 mpz_set_si(vec[j], (*diff_weight)[j]); 2215 j = MivAbsMaxArg(diff_weight1); 2216 (*diff_weight1)[j] = floor(0.1*(*diff_weight1)[j] + 0.5); 2217 } 2218 goto SIMPLIFY_GCD; 2188 2219 } 2189 2220 … … 2224 2255 mpz_clear(t_null); 2225 2256 2226 2227 2228 2257 if(Overflow_Error == FALSE) 2229 2258 { 2230 2259 Overflow_Error = nError; 2231 2260 } 2232 rComplete(currRing);2233 for( kkk=0; kkk<IDELEMS(G);kkk++)2234 { 2235 poly p=G->m[ kkk];2261 rComplete(currRing); 2262 for(j=0; j<IDELEMS(G); j++) 2263 { 2264 poly p=G->m[j]; 2236 2265 while(p!=NULL) 2237 2266 { … … 2273 2302 } 2274 2303 2275 /************************************************************** 2304 /******************************************************************** 2276 2305 * define and execute a new ring which order is (a(vb),a(va),lp,C) * 2277 * ************************************************************ /2306 * ******************************************************************/ 2278 2307 static void VMrHomogeneous(intvec* va, intvec* vb) 2279 2308 { … … 2427 2456 //rChangeCurrRing(r); 2428 2457 } 2429 2458 //unused 2459 #if 0 2430 2460 static ring VMrDefault1(intvec* va) 2431 2461 { … … 2498 2528 return r; 2499 2529 } 2500 2530 #endif 2501 2531 /**************************************************************** 2502 2532 * define and execute a new ring with ordering (a(va),Wp(vb),C) * … … 3128 3158 else 3129 3159 { 3130 rChangeCurrRing(VMrDefault(curr_weight)); //Aenderung3160 rChangeCurrRing(VMrDefault(curr_weight)); 3131 3161 } 3132 3162 newRing = currRing; … … 3884 3914 else 3885 3915 { 3886 rChangeCurrRing(VMrDefault(curr_weight)); //Aenderung3916 rChangeCurrRing(VMrDefault(curr_weight)); 3887 3917 } 3888 3918 newRing = currRing; … … 4145 4175 else 4146 4176 { 4147 rChangeCurrRing(VMrDefault(curr_weight)); // Aenderung4177 rChangeCurrRing(VMrDefault(curr_weight)); 4148 4178 } 4149 4179 newRing = currRing; … … 4287 4317 intvec* Xivlp; 4288 4318 4289 #if 04290 /********************************4291 * compute a next weight vector *4292 ********************************/4293 static intvec* MWalkRandomNextWeight(ideal G, intvec* curr_weight, intvec* target_weight, int weight_rad, int pert_deg)4294 {4295 int i, weight_norm;4296 int nV = currRing->N;4297 intvec* next_weight2;4298 intvec* next_weight22 = new intvec(nV);4299 intvec* next_weight = MwalkNextWeightCC(curr_weight,target_weight, G);4300 if(MivComp(next_weight, target_weight) == 1)4301 {4302 return(next_weight);4303 }4304 else4305 {4306 //compute a perturbed next weight vector "next_weight1"4307 intvec* next_weight1 = MkInterRedNextWeight(MPertVectors(G, MivMatrixOrder(curr_weight), pert_deg), target_weight, G);4308 //Print("\n // size of next_weight1 = %d", sizeof((*next_weight1)));4309 4310 //compute a random next weight vector "next_weight2"4311 while(1)4312 {4313 weight_norm = 0;4314 while(weight_norm == 0)4315 {4316 for(i=0; i<nV; i++)4317 {4318 //Print("\n// next_weight[%d] = %d", i, (*next_weight)[i]);4319 (*next_weight22)[i] = rand() % 60000 - 30000;4320 weight_norm = weight_norm + (*next_weight22)[i]*(*next_weight22)[i];4321 }4322 weight_norm = 1 + floor(sqrt(weight_norm));4323 }4324 4325 for(i=nV-1; i>=0; i--)4326 {4327 if((*next_weight22)[i] < 0)4328 {4329 (*next_weight22)[i] = 1 + (*curr_weight)[i] + floor(weight_rad*(*next_weight22)[i]/weight_norm);4330 }4331 else4332 {4333 (*next_weight22)[i] = (*curr_weight)[i] + floor(weight_rad*(*next_weight22)[i]/weight_norm);4334 }4335 //Print("\n// next_weight22[%d] = %d", i, (*next_weight22)[i]);4336 }4337 4338 if(test_w_in_ConeCC(G, next_weight22) == 1)4339 {4340 //Print("\n//MWalkRandomNextWeight: next_weight2 im Kegel\n");4341 next_weight2 = MkInterRedNextWeight(next_weight22, target_weight, G);4342 delete next_weight22;4343 break;4344 }4345 }4346 intvec* result = new intvec(nV);4347 ideal G_test = MwalkInitialForm(G, next_weight);4348 ideal G_test1 = MwalkInitialForm(G, next_weight1);4349 ideal G_test2 = MwalkInitialForm(G, next_weight2);4350 4351 // compare next_weights4352 if(IDELEMS(G_test1) < IDELEMS(G_test))4353 {4354 if(IDELEMS(G_test2) <= IDELEMS(G_test1)) // |G_test2| <= |G_test1| < |G_test|4355 {4356 for(i=0; i<nV; i++)4357 {4358 (*result)[i] = (*next_weight2)[i];4359 }4360 }4361 else // |G_test1| < |G_test|, |G_test1| < |G_test2|4362 {4363 for(i=0; i<nV; i++)4364 {4365 (*result)[i] = (*next_weight1)[i];4366 }4367 }4368 }4369 else4370 {4371 if(IDELEMS(G_test2) <= IDELEMS(G_test)) // |G_test2| <= |G_test| <= |G_test1|4372 {4373 for(i=0; i<nV; i++)4374 {4375 (*result)[i] = (*next_weight2)[i];4376 }4377 }4378 else // |G_test| <= |G_test1|, |G_test| < |G_test2|4379 {4380 for(i=0; i<nV; i++)4381 {4382 (*result)[i] = (*next_weight)[i];4383 }4384 }4385 }4386 delete next_weight;4387 delete next_weight1;4388 idDelete(&G_test);4389 idDelete(&G_test1);4390 idDelete(&G_test2);4391 if(test_w_in_ConeCC(G, result) == 1)4392 {4393 delete next_weight2;4394 return result;4395 }4396 else4397 {4398 delete result;4399 return next_weight2;4400 }4401 }4402 }4403 #endif4404 4319 4405 4320 /******************************** … … 4416 4331 4417 4332 //compute a perturbed next weight vector "next_weight1" 4418 //intvec* next_weight1 = MkInterRedNextWeight(MPertVectors(G,MivMatrixOrderRefine(curr_weight,target_weight),pert_deg),target_weight,G);4419 4333 intvec* next_weight1 =MkInterRedNextWeight(curr_weight,target_weight,G); 4420 4334 //compute a random next weight vector "next_weight2" … … 4445 4359 { 4446 4360 next_weight2 = MkInterRedNextWeight(next_weight22,target_weight,G); 4361 if(MivAbsMax(next_weight2)>1147483647) 4362 { 4363 for(i=0; i<nV; i++) 4364 { 4365 (*next_weight22)[i] = (*next_weight2)[i]; 4366 } 4367 i = 0; 4368 while(test_w_in_ConeCC(G,next_weight22)) 4369 { 4370 (*next_weight2)[i] = (*next_weight22)[i]; 4371 i = MivAbsMaxArg(next_weight22); 4372 (*next_weight22)[i] = floor(0.1*(*next_weight22)[i] + 0.5); 4373 } 4374 } 4447 4375 delete next_weight22; 4448 4376 break; … … 4575 4503 else 4576 4504 { 4577 rChangeCurrRing(VMrDefault(orig_target_weight)); // Aenderung4505 rChangeCurrRing(VMrDefault(orig_target_weight)); 4578 4506 } 4579 4507 TargetRing = currRing; … … 4646 4574 else 4647 4575 { 4648 rChangeCurrRing(VMrDefault(curr_weight)); // Aenderung4576 rChangeCurrRing(VMrDefault(curr_weight)); 4649 4577 } 4650 4578 newRing = currRing; … … 4755 4683 else 4756 4684 { 4757 rChangeCurrRing(VMrDefault(orig_target_weight)); // Aenderung4685 rChangeCurrRing(VMrDefault(orig_target_weight)); 4758 4686 } 4759 4687 F1 = idrMoveR(G, newRing,currRing); … … 4786 4714 else 4787 4715 { 4788 rChangeCurrRing(VMrDefault(orig_target_weight)); // Aenderung4716 rChangeCurrRing(VMrDefault(orig_target_weight)); 4789 4717 } 4790 4718 KSTD_Finish: … … 4884 4812 tim = clock(); 4885 4813 /* 4886 Print("\n// **** Gr ᅵbnerwalk took %d steps and ", nwalk);4814 Print("\n// **** Groebnerwalk took %d steps and ", nwalk); 4887 4815 PrintS("\n// **** call the rec. Pert. Walk to compute a red GB of:"); 4888 4816 idElements(Gomega, "G_omega"); … … 4914 4842 oldRing = currRing; 4915 4843 4916 / * create a new ring newRing */4844 // create a new ring newRing 4917 4845 if (rParameter(currRing) != NULL) 4918 4846 { … … 4921 4849 else 4922 4850 { 4923 rChangeCurrRing(VMrDefault(curr_weight)); // Aenderung4851 rChangeCurrRing(VMrDefault(curr_weight)); 4924 4852 } 4925 4853 newRing = currRing; … … 4947 4875 else 4948 4876 { 4949 rChangeCurrRing(VMrDefault(curr_weight)); //Aenderung4877 rChangeCurrRing(VMrDefault(curr_weight)); 4950 4878 } 4951 4879 newRing = currRing; … … 4959 4887 M=kStd(Gomega1,NULL,isHomog,NULL,hilb_func,0,NULL,curr_weight); 4960 4888 delete hilb_func; 4961 #endif // BUCHBERGER_ALG4889 #endif 4962 4890 tstd = tstd + clock() - to; 4963 4891 … … 4968 4896 4969 4897 to = clock(); 4970 // compute a representation of the generators of submod (M) with respect to those of mod (Gomega). Gomega is a reduced Groebner basis w.r.t. the current ring. 4898 // compute a representation of the generators of submod (M) with respect 4899 // to those of mod (Gomega). 4900 // Gomega is a reduced Groebner basis w.r.t. the current ring. 4971 4901 F = MLifttwoIdeal(Gomega2, M1, G); 4972 4902 tlift = tlift + clock() - to; … … 5018 4948 else 5019 4949 { 5020 rChangeCurrRing(VMrDefault(target_weight)); // Aenderung4950 rChangeCurrRing(VMrDefault(target_weight)); 5021 4951 } 5022 4952 F1 = idrMoveR(G, newRing,currRing); … … 5065 4995 * THE GROEBNER WALK ALGORITHM * 5066 4996 *******************************/ 5067 ideal Mwalk(ideal Go, intvec* orig_M, intvec* target_M, ring baseRing) 4997 ideal Mwalk(ideal Go, intvec* orig_M, intvec* target_M, 4998 ring baseRing, int reduction, int printout) 5068 4999 { 5069 BITSET save1 = si_opt_1; // save current options 5070 //si_opt_1 &= (~Sy_bit(OPT_REDSB)); // no reduced Groebner basis 5071 //si_opt_1 &= (~Sy_bit(OPT_REDTAIL)); // not tail reductions 5072 //si_opt_1|=(Sy_bit(OPT_REDTAIL)|Sy_bit(OPT_REDSB)); 5000 // save current options 5001 BITSET save1 = si_opt_1; 5002 if(reduction == 0) 5003 { 5004 // no reduced Groebner basis 5005 si_opt_1 &= (~Sy_bit(OPT_REDSB)); 5006 // not tail reductions 5007 //si_opt_1 &= (~Sy_bit(OPT_REDTAIL)); 5008 } 5073 5009 Set_Error(FALSE); 5074 5010 Overflow_Error = FALSE; … … 5111 5047 #endif 5112 5048 rComplete(currRing); 5113 #ifdef CHECK_IDEAL_MWALK 5114 idString(Go,"Go"); 5115 #endif 5049 //#ifdef CHECK_IDEAL_MWALK 5050 if(printout > 2) 5051 { 5052 idString(Go,"//** Mwalk: Go"); 5053 } 5054 //#endif 5116 5055 #ifdef TIME_TEST 5117 5056 to = clock(); 5118 5057 #endif 5119 if(orig_M->length() == nV) 5120 { 5121 newRing = VMrDefault(curr_weight); // define a new ring with ordering "(a(curr_weight),lp) 5122 } 5123 else 5124 { 5125 newRing = VMatrDefault(orig_M); 5126 } 5058 if(orig_M->length() == nV) 5059 { 5060 // define a new ring with ordering "(a(curr_weight),lp) 5061 newRing = VMrDefault(curr_weight); 5062 } 5063 else 5064 { 5065 newRing = VMatrDefault(orig_M); 5066 } 5127 5067 rChangeCurrRing(newRing); 5128 5068 ideal G = MstdCC(idrMoveR(Go,baseRing,currRing)); … … 5140 5080 to = clock(); 5141 5081 #endif 5142 #ifdef CHECK_IDEAL_MWALK 5143 idString(G,"G"); 5144 #endif 5145 Gomega = MwalkInitialForm(G, curr_weight); // compute an initial form ideal of <G> w.r.t. "curr_vector" 5082 //#ifdef CHECK_IDEAL_MWALK 5083 if(printout > 2) 5084 { 5085 idString(G,"//** Mwalk: G"); 5086 } 5087 //#endif 5088 // compute an initial form ideal of <G> w.r.t. "curr_vector" 5089 Gomega = MwalkInitialForm(G, curr_weight); 5146 5090 #ifdef TIME_TEST 5147 tif = tif + clock()-to; //time for computing initial form ideal 5148 #endif 5149 #ifdef CHECK_IDEAL_MWALK 5150 idString(Gomega,"Gomega"); 5151 #endif 5091 //time for computing initial form ideal 5092 tif = tif + clock()-to; 5093 #endif 5094 //#ifdef CHECK_IDEAL_MWALK 5095 if(printout > 1) 5096 { 5097 idString(Gomega,"//** Mwalk: Gomega"); 5098 } 5099 //#endif 5152 5100 #ifndef BUCHBERGER_ALG 5153 5101 if(isNolVector(curr_weight) == 0) … … 5164 5112 if(orig_M->length() == nV) 5165 5113 { 5166 newRing = VMrDefault(curr_weight); // define a new ring with ordering "(a(curr_weight),lp) 5114 // define a new ring with ordering "(a(curr_weight),lp) 5115 newRing = VMrDefault(curr_weight); 5167 5116 } 5168 5117 else … … 5175 5124 if(target_M->length() == nV) 5176 5125 { 5177 newRing = VMrRefine(curr_weight,target_weight); //define a new ring with ordering "(a(curr_weight),Wp(target_weight))" 5126 //define a new ring with ordering "(a(curr_weight),Wp(target_weight))" 5127 newRing = VMrRefine(curr_weight,target_weight); 5178 5128 } 5179 5129 else 5180 5130 { 5131 //define a new ring with matrix ordering 5181 5132 newRing = VMatrRefine(target_M,curr_weight); 5182 5133 } … … 5199 5150 #endif 5200 5151 idSkipZeroes(M); 5201 #ifdef CHECK_IDEAL_MWALK 5202 PrintS("\n//** Mwalk: computed M.\n"); 5203 idString(M, "M"); 5204 #endif 5152 //#ifdef CHECK_IDEAL_MWALK 5153 if(printout > 2) 5154 { 5155 idString(M, "//** Mwalk: M"); 5156 } 5157 //#endif 5205 5158 //change the ring to baseRing 5206 5159 rChangeCurrRing(baseRing); … … 5212 5165 to = clock(); 5213 5166 #endif 5214 // compute a representation of the generators of submod (M) with respect to those of mod (Gomega), where Gomega is a reduced Groebner basis w.r.t. the current ring 5167 // compute a representation of the generators of submod (M) with respect to those of mod (Gomega), 5168 // where Gomega is a reduced Groebner basis w.r.t. the current ring 5215 5169 F = MLifttwoIdeal(Gomega2, M1, G); 5216 5170 #ifdef TIME_TEST 5217 5171 tlift = tlift + clock() - to; 5218 5172 #endif 5219 #ifdef CHECK_IDEAL_MWALK 5220 idString(F, "F"); 5221 #endif 5173 //#ifdef CHECK_IDEAL_MWALK 5174 if(printout > 2) 5175 { 5176 idString(F, "//** Mwalk: F"); 5177 } 5178 //#endif 5222 5179 idDelete(&Gomega2); 5223 5180 idDelete(&M1); … … 5229 5186 to = clock(); 5230 5187 #endif 5231 //G = kStd(F1,NULL,testHomog,NULL,NULL,0,0,NULL); 5188 5232 5189 #ifdef TIME_TEST 5233 5190 tstd = tstd + clock() - to; 5234 5191 #endif 5235 5192 idSkipZeroes(G); 5236 #ifdef CHECK_IDEAL_MWALK 5237 idString(G, "G"); 5238 #endif 5193 //#ifdef CHECK_IDEAL_MWALK 5194 if(printout > 2) 5195 { 5196 idString(G, "//** Mwalk: G"); 5197 } 5198 //#endif 5239 5199 #ifdef TIME_TEST 5240 5200 to = clock(); … … 5244 5204 tnw = tnw + clock() - to; 5245 5205 #endif 5246 #ifdef PRINT_VECTORS 5247 MivString(curr_weight, target_weight, next_weight); 5248 #endif 5249 if(MivComp(next_weight, ivNull) == 1 || MivComp(target_weight,curr_weight) == 1)// || test_w_in_ConeCC(G, target_weight) == 1 || MivComp(next_weight,curr_weight) == 1) 5250 { 5251 #ifdef CHECK_IDEAL_MWALK 5252 PrintS("\n//** Mwalk: entering last cone.\n"); 5253 #endif 5206 //#ifdef PRINT_VECTORS 5207 if(printout > 0) 5208 { 5209 MivString(curr_weight, target_weight, next_weight); 5210 } 5211 //#endif 5212 if(MivComp(next_weight, ivNull) == 1 || MivComp(target_weight,curr_weight) == 1 || test_w_in_ConeCC(G, target_weight) == 1) 5213 { 5214 //#ifdef CHECK_IDEAL_MWALK 5215 if(printout > 0) 5216 { 5217 PrintS("\n//** Mwalk: entering last cone.\n"); 5218 } 5219 //#endif 5254 5220 Gomega = MwalkInitialForm(G, curr_weight); // compute an initial form ideal of <G> w.r.t. "curr_vector" 5255 5221 if(target_M->length() == nV) … … 5264 5230 Gomega1 = idrMoveR(Gomega, baseRing,currRing); 5265 5231 idDelete(&Gomega); 5266 #ifdef CHECK_IDEAL_MWALK 5267 idString(Gomega1, "Gomega"); 5268 #endif 5232 //#ifdef CHECK_IDEAL_MWALK 5233 if(printout > 1) 5234 { 5235 idString(Gomega1, "//** Mwalk: Gomega"); 5236 } 5237 //#endif 5269 5238 M = kStd(Gomega1,NULL,testHomog,NULL,NULL,0,0,NULL); 5270 #ifdef CHECK_IDEAL_MWALK 5271 idString(M,"M"); 5272 #endif 5239 //#ifdef CHECK_IDEAL_MWALK 5240 if(printout > 1) 5241 { 5242 idString(M,"//** Mwalk: M"); 5243 } 5244 //#endif 5273 5245 rChangeCurrRing(baseRing); 5274 5246 M1 = idrMoveR(M, newRing,currRing); … … 5277 5249 idDelete(&Gomega1); 5278 5250 F = MLifttwoIdeal(Gomega2, M1, G); 5279 #ifdef CHECK_IDEAL_MWALK 5280 idString(F,"F"); 5281 #endif 5251 //#ifdef CHECK_IDEAL_MWALK 5252 if(printout > 2) 5253 { 5254 idString(F,"//** Mwalk: F"); 5255 } 5256 //#endif 5282 5257 idDelete(&Gomega2); 5283 5258 idDelete(&M1); … … 5291 5266 to = clock(); 5292 5267 #endif 5293 // if(si_opt_1 == (Sy_bit(OPT_REDSB))) 5294 // { 5295 G = kInterRedCC(G,NULL); //reduce the Groebner basis <G> w.r.t. currRing, if option(redSB) is set 5296 // } 5268 //interreduce the Groebner basis <G> w.r.t. currRing 5269 G = kInterRedCC(G,NULL); 5297 5270 #ifdef TIME_TEST 5298 5271 tred = tred + clock() - to; … … 5301 5274 delete next_weight; 5302 5275 break; 5303 #ifdef CHECK_IDEAL_MWALK 5304 PrintS("\n//** Mwalk: last cone.\n"); 5305 #endif 5306 } 5307 #ifdef CHECK_IDEAL_MWALK 5308 PrintS("\n//** Mwalk: update weight vectors.\n"); 5309 #endif 5276 } 5310 5277 for(i=nV-1; i>=0; i--) 5311 5278 { … … 5318 5285 ideal result = idrMoveR(G,baseRing,currRing); 5319 5286 idDelete(&G); 5320 /*#ifdef CHECK_IDEAL_MWALK5321 pDelete(&p);5322 #endif*/5323 5287 delete tmp_weight; 5324 5288 delete ivNull; … … 5328 5292 #endif 5329 5293 #ifdef TIME_TEST 5330 Print("\n//** Mwalk: Groebner Walk took %d steps.\n", nstep);5331 5294 TimeString(tinput, tostd, tif, tstd, tlift, tred, tnw, nstep); 5332 Print("\n//** Mwalk: Ergebnis.\n");5333 5295 //Print("\n// pSetm_Error = (%d)", ErrorCheck()); 5334 5296 //Print("\n// Overflow_Error? (%d)\n", Overflow_Error); 5335 5297 #endif 5298 Print("\n//** Mwalk: Groebner Walk took %d steps.\n", nstep); 5336 5299 return(result); 5337 5300 } 5338 5301 5339 // 07.11.20125340 // THE RANDOM WALK ALGORITHM ideal Go, intvec* orig_M, intvec* target_M, ring baseRing 5341 ideal Mrwalk(ideal Go, intvec* orig_M, intvec* target_M, int weight_rad, int pert_deg, ring baseRing)5302 // THE RANDOM WALK ALGORITHM 5303 ideal Mrwalk(ideal Go, intvec* orig_M, intvec* target_M, int weight_rad, int pert_deg, 5304 int reduction, int printout) 5342 5305 { 5343 5306 BITSET save1 = si_opt_1; // save current options 5344 //si_opt_1 &= (~Sy_bit(OPT_REDSB)); // no reduced Groebner basis 5345 //si_opt_1 &= (~Sy_bit(OPT_REDTAIL)); // not tail reductions 5346 //si_opt_1|=(Sy_bit(OPT_REDTAIL)|Sy_bit(OPT_REDSB)); 5307 if(reduction == 0) 5308 { 5309 si_opt_1 &= (~Sy_bit(OPT_REDSB)); // no reduced Groebner basis 5310 //si_opt_1 &= (~Sy_bit(OPT_REDTAIL)); // not tail reductions 5311 //si_opt_1|=(Sy_bit(OPT_REDTAIL)|Sy_bit(OPT_REDSB)); 5312 } 5347 5313 Set_Error(FALSE); 5348 5314 Overflow_Error = FALSE; … … 5354 5320 #endif 5355 5321 nstep=0; 5356 int i, nwalk,endwalks = 0;5357 int nV = baseRing->N;5322 int i,polylength,nwalk,endwalks = 0; 5323 int nV = currRing->N; 5358 5324 5359 5325 ideal Gomega, M, F, Gomega1, Gomega2, M1; //, F1; 5360 5326 ring newRing; 5361 ring XXRing = baseRing; 5327 ring baseRing = currRing; 5328 ring XXRing = currRing; 5362 5329 intvec* ivNull = new intvec(nV); 5363 5330 intvec* curr_weight = new intvec(nV); … … 5365 5332 intvec* exivlp = Mivlp(nV); 5366 5333 intvec* tmp_weight = new intvec(nV); 5334 intvec* next_weight= new intvec(nV); 5367 5335 for(i=0; i<nV; i++) 5368 5336 { … … 5385 5353 #endif 5386 5354 rComplete(currRing); 5387 #ifdef CHECK_IDEAL_MWALK5388 idString(Go,"Go");5389 #endif5390 5355 #ifdef TIME_TEST 5391 5356 to = clock(); 5392 5357 #endif 5393 5394 5395 5396 5397 5398 5399 5400 5358 if(orig_M->length() == nV) 5359 { 5360 newRing = VMrDefault(curr_weight); // define a new ring with ordering "(a(curr_weight),lp) 5361 } 5362 else 5363 { 5364 newRing = VMatrDefault(orig_M); 5365 } 5401 5366 rChangeCurrRing(newRing); 5402 5367 ideal G = MstdCC(idrMoveR(Go,baseRing,currRing)); … … 5414 5379 to = clock(); 5415 5380 #endif 5416 #ifdef CHECK_IDEAL_MWALK 5417 idString(G,"G"); 5418 #endif 5381 //#ifdef CHECK_IDEAL_MWALK 5382 if(printout > 2) 5383 { 5384 idString(G,"//** Mrwalk: G"); 5385 } 5386 //#endif 5419 5387 Gomega = MwalkInitialForm(G, curr_weight); // compute an initial form ideal of <G> w.r.t. "curr_vector" 5388 //polylength = 1 if there is a polynomial in Gomega with at least 3 monomials and 0 otherwise 5389 polylength = lengthpoly(Gomega); 5420 5390 #ifdef TIME_TEST 5421 5391 tif = tif + clock()-to; //time for computing initial form ideal 5422 5392 #endif 5423 #ifdef CHECK_IDEAL_MWALK 5424 idString(Gomega,"Gomega"); 5425 #endif 5393 //#ifdef CHECK_IDEAL_MWALK 5394 if(printout > 1) 5395 { 5396 idString(Gomega,"//** Mrwalk: Gomega"); 5397 } 5398 //#endif 5426 5399 #ifndef BUCHBERGER_ALG 5427 5400 if(isNolVector(curr_weight) == 0) … … 5473 5446 #endif 5474 5447 idSkipZeroes(M); 5475 #ifdef CHECK_IDEAL_MWALK 5476 PrintS("\n//** Mwalk: computed M.\n"); 5477 idString(M, "M"); 5478 #endif 5448 //#ifdef CHECK_IDEAL_MWALK 5449 if(printout > 2) 5450 { 5451 idString(M, "//** Mrwalk: M"); 5452 } 5453 //#endif 5479 5454 //change the ring to baseRing 5480 5455 rChangeCurrRing(baseRing); … … 5486 5461 to = clock(); 5487 5462 #endif 5488 // compute a representation of the generators of submod (M) with respect to those of mod (Gomega), where Gomega is a reduced Groebner basis w.r.t. the current ring 5463 // compute a representation of the generators of submod (M) with respect to those of mod (Gomega), 5464 // where Gomega is a reduced Groebner basis w.r.t. the current ring 5489 5465 F = MLifttwoIdeal(Gomega2, M1, G); 5490 5466 #ifdef TIME_TEST 5491 5467 tlift = tlift + clock() - to; 5492 5468 #endif 5493 #ifdef CHECK_IDEAL_MWALK 5494 idString(F, "F"); 5495 #endif 5469 //#ifdef CHECK_IDEAL_MWALK 5470 if(printout > 2) 5471 { 5472 idString(F, "//** Mrwalk: F"); 5473 } 5474 //#endif 5496 5475 idDelete(&Gomega2); 5497 5476 idDelete(&M1); … … 5502 5481 #ifdef TIME_TEST 5503 5482 to = clock(); 5504 #endif5505 //G = kStd(F1,NULL,testHomog,NULL,NULL,0,0,NULL);5506 #ifdef TIME_TEST5507 5483 tstd = tstd + clock() - to; 5508 5484 #endif 5509 5485 idSkipZeroes(G); 5510 #ifdef CHECK_IDEAL_MWALK 5511 idString(G, "G"); 5512 #endif 5486 //#ifdef CHECK_IDEAL_MWALK 5487 if(printout > 2) 5488 { 5489 idString(G, "//** Mrwalk: G"); 5490 } 5491 //#endif 5513 5492 #ifdef TIME_TEST 5514 5493 to = clock(); 5515 5494 #endif 5516 intvec* next_weight = MWalkRandomNextWeight(G, curr_weight, target_weight, weight_rad, pert_deg);//next_weight = MwalkNextWeightCC(curr_weight,target_weight,G); 5495 next_weight = MwalkNextWeightCC(curr_weight,target_weight,G); 5496 if(polylength > 0) 5497 { 5498 //there is a polynomial in Gomega with at least 3 monomials, 5499 //low-dimensional facet of the cone 5500 delete next_weight; 5501 next_weight = MWalkRandomNextWeight(G, curr_weight, target_weight, weight_rad, pert_deg); 5502 } 5517 5503 #ifdef TIME_TEST 5518 5504 tnw = tnw + clock() - to; 5519 5505 #endif 5520 #ifdef PRINT_VECTORS 5521 MivString(curr_weight, target_weight, next_weight); 5522 #endif 5506 //#ifdef PRINT_VECTORS 5507 if(printout > 0) 5508 { 5509 MivString(curr_weight, target_weight, next_weight); 5510 } 5511 //#endif 5523 5512 if(MivComp(next_weight, ivNull) == 1 || MivComp(target_weight,curr_weight) == 1)// || test_w_in_ConeCC(G, target_weight) == 1 || MivComp(next_weight,curr_weight) == 1) 5524 5513 { … … 5527 5516 #endif 5528 5517 Gomega = MwalkInitialForm(G, curr_weight); // compute an initial form ideal of <G> w.r.t. "curr_vector" 5518 //#ifdef CHECK_IDEAL_MWALK 5519 if(printout > 1) 5520 { 5521 idString(Gomega, "//** Mrwalk: Gomega"); 5522 } 5523 //#endif 5529 5524 if(target_M->length() == nV) 5530 5525 { … … 5538 5533 Gomega1 = idrMoveR(Gomega, baseRing,currRing); 5539 5534 idDelete(&Gomega); 5540 #ifdef CHECK_IDEAL_MWALK5541 idString(Gomega1, "Gomega");5542 #endif5543 5535 M = kStd(Gomega1,NULL,testHomog,NULL,NULL,0,0,NULL); 5544 #ifdef CHECK_IDEAL_MWALK 5545 idString(M,"M"); 5546 #endif 5536 //#ifdef CHECK_IDEAL_MWALK 5537 if(printout > 2) 5538 { 5539 idString(M,"//** Mrwalk: M"); 5540 } 5541 //#endif 5547 5542 rChangeCurrRing(baseRing); 5548 5543 M1 = idrMoveR(M, newRing,currRing); … … 5551 5546 idDelete(&Gomega1); 5552 5547 F = MLifttwoIdeal(Gomega2, M1, G); 5553 #ifdef CHECK_IDEAL_MWALK5554 idString(F,"F");5555 #endif5556 5548 idDelete(&Gomega2); 5557 5549 idDelete(&M1); … … 5560 5552 idDelete(&F); 5561 5553 baseRing = currRing; 5562 si_opt_1 = save1; //set original options, e. g. option(RedSB)5563 5554 idSkipZeroes(G); 5564 5555 #ifdef TIME_TEST 5565 5556 to = clock(); 5566 5557 #endif 5567 // if(si_opt_1 == (Sy_bit(OPT_REDSB))) 5568 // { 5569 //G = kInterRedCC(G,NULL); //reduce the Groebner basis <G> w.r.t. currRing, if option(redSB) is set 5570 // } 5558 //#ifdef CHECK_IDEAL_MWALK 5559 if(printout > 2) 5560 { 5561 idString(G,"//** Mrwalk: G"); 5562 } 5563 /*#endif 5564 if(si_opt_1 == (Sy_bit(OPT_REDSB))) 5565 {*/ 5566 G = kInterRedCC(G,NULL); //interreduce the Groebner basis <G> w.r.t. currRing 5567 // } 5571 5568 #ifdef TIME_TEST 5572 5569 tred = tred + clock() - to; … … 5575 5572 delete next_weight; 5576 5573 break; 5577 #ifdef CHECK_IDEAL_MWALK 5578 PrintS("\n//** Mwalk: last cone.\n"); 5579 #endif 5580 } 5581 #ifdef CHECK_IDEAL_MWALK 5582 PrintS("\n//** Mwalk: update weight vectors.\n"); 5583 #endif 5574 } 5584 5575 for(i=nV-1; i>=0; i--) 5585 5576 { … … 5589 5580 delete next_weight; 5590 5581 } 5582 baseRing = currRing; 5591 5583 rChangeCurrRing(XXRing); 5592 5584 ideal result = idrMoveR(G,baseRing,currRing); 5593 5585 idDelete(&G); 5594 /*#ifdef CHECK_IDEAL_MWALK 5595 pDelete(&p); 5596 #endif*/ 5586 si_opt_1 = save1; //set original options, e. g. option(RedSB) 5597 5587 delete tmp_weight; 5598 5588 delete ivNull; … … 5601 5591 delete last_omega; 5602 5592 #endif 5593 Print("\n//** Mrwalk: Groebner Walk took %d steps.\n", nstep); 5603 5594 #ifdef TIME_TEST 5604 Print("\n//** Mwalk: Groebner Walk took %d steps.\n", nstep);5605 5595 TimeString(tinput, tostd, tif, tstd, tlift, tred, tnw, nstep); 5606 Print("\n//** Mwalk: Ergebnis.\n");5607 5596 //Print("\n// pSetm_Error = (%d)", ErrorCheck()); 5608 5597 //Print("\n// Overflow_Error? (%d)\n", Overflow_Error); … … 5751 5740 // use kStd, if nP = 0, else call LastGB 5752 5741 ideal Mpwalk(ideal Go, int op_deg, int tp_deg,intvec* curr_weight, 5753 intvec* target_weight, int nP )5742 intvec* target_weight, int nP, int reduction, int printout) 5754 5743 { 5744 BITSET save1 = si_opt_1; // save current options 5745 if(reduction == 0) 5746 { 5747 si_opt_1 &= (~Sy_bit(OPT_REDSB)); // no reduced Groebner basis 5748 //si_opt_1 &= (~Sy_bit(OPT_REDTAIL)); // not tail reductions 5749 //si_opt_1|=(Sy_bit(OPT_REDTAIL)|Sy_bit(OPT_REDSB)); 5750 } 5755 5751 Set_Error(FALSE ); 5756 5752 Overflow_Error = FALSE; … … 5790 5786 ring XXRing = currRing; 5791 5787 5792 5793 5788 to = clock(); 5794 / * perturbs the original vector */5789 // perturbs the original vector 5795 5790 if(MivComp(curr_weight, iv_dp) == 1) //rOrdStr(currRing) := "dp" 5796 5791 { … … 5809 5804 DefRingPar(curr_weight); 5810 5805 else 5811 rChangeCurrRing(VMrDefault(curr_weight)); //Aenderung 15806 rChangeCurrRing(VMrDefault(curr_weight)); 5812 5807 5813 5808 G = idrMoveR(Go, XXRing,currRing); … … 5824 5819 ring HelpRing = currRing; 5825 5820 5826 / * perturbs the target weight vector */5821 // perturbs the target weight vector 5827 5822 if(tp_deg > 1 && tp_deg <= nV) 5828 5823 { … … 5830 5825 DefRingPar(target_weight); 5831 5826 else 5832 rChangeCurrRing(VMrDefault(target_weight)); // Aenderung 25827 rChangeCurrRing(VMrDefault(target_weight)); 5833 5828 5834 5829 TargetRing = currRing; … … 5852 5847 G = idrMoveR(ssG, TargetRing,currRing); 5853 5848 } 5854 /* 5855 Print("\n// Perturbationwalkalg. vom Gradpaar (%d,%d):",op_deg,tp_deg); 5856 ivString(curr_weight, "new sigma"); 5857 ivString(target_weight, "new tau"); 5858 */ 5849 if(printout > 0) 5850 { 5851 Print("\n//** Mpwalk: Perturbation Walk of degree (%d,%d):",op_deg,tp_deg); 5852 ivString(curr_weight, "//** Mpwalk: new current weight"); 5853 ivString(target_weight, "//** Mpwalk: new target weight"); 5854 } 5859 5855 while(1) 5860 5856 { … … 5864 5860 "curr_weight" */ 5865 5861 Gomega = MwalkInitialForm(G, curr_weight); 5866 5862 //#ifdef CHECK_IDEAL_MWALK 5863 if(printout > 1) 5864 { 5865 idString(Gomega,"//** Mpwalk: Gomega"); 5866 } 5867 //#endif 5867 5868 5868 5869 #ifdef ENDWALKS 5869 if(endwalks == 1){ 5870 if(endwalks == 1) 5871 { 5870 5872 Print("\n// ring r%d = %s;\n", nstep, rString(currRing)); 5871 5873 idElements(G, "G"); 5872 // idElements(Gomega, "Gw");5873 5874 headidString(G, "G"); 5874 //headidString(Gomega, "Gw");5875 5875 } 5876 5876 #endif … … 5891 5891 DefRingPar(curr_weight); 5892 5892 else 5893 rChangeCurrRing(VMrDefault(curr_weight)); //Aenderung 35893 rChangeCurrRing(VMrDefault(curr_weight)); 5894 5894 5895 5895 newRing = currRing; … … 5918 5918 M=kStd(Gomega1,NULL,isHomog,NULL,hilb_func,0,NULL,curr_weight); 5919 5919 delete hilb_func; 5920 #endif // BUCHBERGER_ALG 5920 #endif 5921 //#ifdef CHECK_IDEAL_MWALK 5922 if(printout > 2) 5923 { 5924 idString(M,"//** Mpwalk: M"); 5925 } 5926 //#endif 5921 5927 5922 5928 if(endwalks == 1){ … … 5934 5940 M1 = idrMoveR(M, newRing,currRing); 5935 5941 Gomega2 = idrMoveR(Gomega1, newRing,currRing); 5936 5937 //if(endwalks==1) PrintS("\n// Lifting is working:..");5938 5942 5939 5943 to=clock(); … … 5947 5951 xtlift=clock()-to; 5948 5952 5953 //#ifdef CHECK_IDEAL_MWALK 5954 if(printout > 2) 5955 { 5956 idString(F,"//** Mpwalk: F"); 5957 } 5958 //#endif 5959 5949 5960 idDelete(&M1); 5950 5961 idDelete(&Gomega2); … … 5954 5965 rChangeCurrRing(newRing); 5955 5966 F1 = idrMoveR(F, oldRing,currRing); 5956 5957 //if(endwalks==1)PrintS("\n// InterRed is working now:");5958 5967 5959 5968 to=clock(); … … 5971 5980 5972 5981 to=clock(); 5973 / * compute a next weight vector */5982 // compute a next weight vector 5974 5983 next_weight = MkInterRedNextWeight(curr_weight,target_weight, G); 5975 5984 tnw=tnw+clock()-to; 5976 #ifdef PRINT_VECTORS 5977 MivString(curr_weight, target_weight, next_weight); 5978 #endif 5985 //#ifdef PRINT_VECTORS 5986 if(printout > 2) 5987 { 5988 MivString(curr_weight, target_weight, next_weight); 5989 } 5990 //#endif 5979 5991 5980 5992 if(Overflow_Error == TRUE) … … 6014 6026 DefRingPar(orig_target); 6015 6027 else 6016 rChangeCurrRing(VMrDefault(orig_target)); //Aenderung6028 rChangeCurrRing(VMrDefault(orig_target)); 6017 6029 6018 6030 TargetRing=currRing; … … 6068 6080 Eresult = idrMoveR(G, newRing,currRing); 6069 6081 } 6082 si_opt_1 = save1; //set original options, e. g. option(RedSB) 6070 6083 delete ivNull; 6071 6084 if(tp_deg != 1) … … 6082 6095 tnw+xtnw); 6083 6096 6084 Print("\n// pSetm_Error = (%d)", ErrorCheck()); 6085 Print("\n// It took %d steps and Overflow_Error? (%d)\n", nstep, Overflow_Error); 6086 #endif 6097 //Print("\n// pSetm_Error = (%d)", ErrorCheck()); 6098 //Print("\n// It took %d steps and Overflow_Error? (%d)\n", nstep, Overflow_Error); 6099 #endif 6100 Print("\n//** Mpwalk: Perturbation Walk took %d steps.\n", nstep); 6101 return(Eresult); 6102 } 6103 6104 /******************************************************* 6105 * THE PERTURBATION WALK ALGORITHM WITH RANDOM ELEMENT * 6106 *******************************************************/ 6107 ideal Mprwalk(ideal Go, intvec* orig_M, intvec* target_M, int weight_rad, 6108 int op_deg, int tp_deg, int nP, int reduction, int printout) 6109 { 6110 BITSET save1 = si_opt_1; // save current options 6111 if(reduction == 0) 6112 { 6113 si_opt_1 &= (~Sy_bit(OPT_REDSB)); // no reduced Groebner basis 6114 //si_opt_1 &= (~Sy_bit(OPT_REDTAIL)); // not tail reductions 6115 //si_opt_1|=(Sy_bit(OPT_REDTAIL)|Sy_bit(OPT_REDSB)); 6116 } 6117 Set_Error(FALSE); 6118 Overflow_Error = FALSE; 6119 //Print("// pSetm_Error = (%d)", ErrorCheck()); 6120 6121 clock_t tinput, tostd, tif=0, tstd=0, tlift=0, tred=0, tnw=0; 6122 xtextra=0; 6123 xtif=0; xtstd=0; xtlift=0; xtred=0; xtnw=0; 6124 tinput = clock(); 6125 6126 clock_t tim; 6127 6128 nstep = 0; 6129 int i, ntwC=1, ntestw=1, polylength, nV = currRing->N; 6130 int endwalks=0; 6131 6132 ideal Gomega, M, F, G, Gomega1, Gomega2, M1,F1,Eresult,ssG; 6133 ring newRing, oldRing, TargetRing; 6134 intvec* iv_M_dp; 6135 intvec* iv_M_lp; 6136 intvec* exivlp = Mivlp(nV); 6137 intvec* curr_weight = new intvec(nV); 6138 intvec* target_weight = new intvec(nV); 6139 for(i=0; i<nV; i++) 6140 { 6141 (*curr_weight)[i] = (*orig_M)[i]; 6142 (*target_weight)[i] = (*target_M)[i]; 6143 } 6144 intvec* orig_target = target_weight; 6145 intvec* pert_target_vector = target_weight; 6146 intvec* ivNull = new intvec(nV); 6147 intvec* iv_dp = MivUnit(nV);// define (1,1,...,1) 6148 #ifndef BUCHBERGER_ALG 6149 intvec* hilb_func; 6150 #endif 6151 intvec* next_weight; 6152 6153 // to avoid (1,0,...,0) as the target vector 6154 intvec* last_omega = new intvec(nV); 6155 for(i=nV-1; i>0; i--) 6156 (*last_omega)[i] = 1; 6157 (*last_omega)[0] = 10000; 6158 6159 ring XXRing = currRing; 6160 6161 to = clock(); 6162 // perturbs the original vector 6163 if(orig_M->length() == nV) 6164 { 6165 if(MivComp(curr_weight, iv_dp) == 1) //rOrdStr(currRing) := "dp" 6166 { 6167 G = MstdCC(Go); 6168 tostd = clock()-to; 6169 if(op_deg != 1) 6170 { 6171 iv_M_dp = MivMatrixOrderdp(nV); 6172 //ivString(iv_M_dp, "iv_M_dp"); 6173 curr_weight = MPertVectors(G, iv_M_dp, op_deg); 6174 } 6175 } 6176 else 6177 { 6178 //define ring order := (a(curr_weight),lp); 6179 if (rParameter(currRing) != NULL) 6180 DefRingPar(curr_weight); 6181 else 6182 rChangeCurrRing(VMrDefault(curr_weight)); 6183 6184 G = idrMoveR(Go, XXRing,currRing); 6185 G = MstdCC(G); 6186 tostd = clock()-to; 6187 if(op_deg != 1) 6188 { 6189 iv_M_dp = MivMatrixOrder(curr_weight); 6190 curr_weight = MPertVectors(G, iv_M_dp, op_deg); 6191 } 6192 } 6193 } 6194 else 6195 { 6196 rChangeCurrRing(VMatrDefault(orig_M)); 6197 G = idrMoveR(Go, XXRing,currRing); 6198 G = MstdCC(G); 6199 tostd = clock()-to; 6200 if(op_deg != 1) 6201 { 6202 curr_weight = MPertVectors(G, orig_M, op_deg); 6203 } 6204 } 6205 6206 delete iv_dp; 6207 if(op_deg != 1) delete iv_M_dp; 6208 6209 ring HelpRing = currRing; 6210 6211 // perturbs the target weight vector 6212 if(target_M->length() == nV) 6213 { 6214 if(tp_deg > 1 && tp_deg <= nV) 6215 { 6216 if (rParameter(currRing) != NULL) 6217 DefRingPar(target_weight); 6218 else 6219 rChangeCurrRing(VMrDefault(target_weight)); 6220 6221 TargetRing = currRing; 6222 ssG = idrMoveR(G,HelpRing,currRing); 6223 if(MivSame(target_weight, exivlp) == 1) 6224 { 6225 iv_M_lp = MivMatrixOrderlp(nV); 6226 //ivString(iv_M_lp, "iv_M_lp"); 6227 //target_weight = MPertVectorslp(ssG, iv_M_lp, tp_deg); 6228 target_weight = MPertVectors(ssG, iv_M_lp, tp_deg); 6229 } 6230 else 6231 { 6232 iv_M_lp = MivMatrixOrder(target_weight); 6233 //target_weight = MPertVectorslp(ssG, iv_M_lp, tp_deg); 6234 target_weight = MPertVectors(ssG, iv_M_lp, tp_deg); 6235 } 6236 delete iv_M_lp; 6237 pert_target_vector = target_weight; 6238 rChangeCurrRing(HelpRing); 6239 G = idrMoveR(ssG, TargetRing,currRing); 6240 } 6241 } 6242 else 6243 { 6244 if(tp_deg > 1 && tp_deg <= nV) 6245 { 6246 rChangeCurrRing(VMatrDefault(target_M)); 6247 TargetRing = currRing; 6248 ssG = idrMoveR(G,HelpRing,currRing); 6249 target_weight = MPertVectors(ssG, target_M, tp_deg); 6250 } 6251 } 6252 if(printout > 0) 6253 { 6254 Print("\n//** Mprwalk: Random Perturbation Walk of degree (%d,%d):",op_deg,tp_deg); 6255 ivString(curr_weight, "//** Mprwalk: new current weight"); 6256 ivString(target_weight, "//** Mprwalk: new target weight"); 6257 } 6258 while(1) 6259 { 6260 nstep ++; 6261 to = clock(); 6262 /* compute an initial form ideal of <G> w.r.t. the weight vector 6263 "curr_weight" */ 6264 Gomega = MwalkInitialForm(G, curr_weight); 6265 //#ifdef CHECK_IDEAL_MWALK 6266 if(printout > 1) 6267 { 6268 idString(Gomega,"//** Mprwalk: Gomega"); 6269 } 6270 //#endif 6271 polylength = lengthpoly(Gomega); 6272 #ifdef ENDWALKS 6273 if(endwalks == 1) 6274 { 6275 Print("\n// ring r%d = %s;\n", nstep, rString(currRing)); 6276 idElements(G, "G"); 6277 headidString(G, "G"); 6278 } 6279 #endif 6280 6281 tif = tif + clock()-to; 6282 6283 #ifndef BUCHBERGER_ALG 6284 if(isNolVector(curr_weight) == 0) 6285 hilb_func = hFirstSeries(Gomega,NULL,NULL,curr_weight,currRing); 6286 else 6287 hilb_func = hFirstSeries(Gomega,NULL,NULL,last_omega,currRing); 6288 #endif // BUCHBERGER_ALG 6289 6290 oldRing = currRing; 6291 6292 if(target_M->length() == nV) 6293 { 6294 // define a new ring with ordering "(a(curr_weight),lp) 6295 if (rParameter(currRing) != NULL) 6296 DefRingPar(curr_weight); 6297 else 6298 rChangeCurrRing(VMrDefault(curr_weight)); 6299 } 6300 else 6301 { 6302 rChangeCurrRing(VMatrRefine(target_M,curr_weight)); 6303 } 6304 newRing = currRing; 6305 Gomega1 = idrMoveR(Gomega, oldRing,currRing); 6306 6307 #ifdef ENDWALKS 6308 if(endwalks==1) 6309 { 6310 Print("\n// ring r%d = %s;\n", nstep, rString(currRing)); 6311 idElements(Gomega1, "Gw"); 6312 headidString(Gomega1, "headGw"); 6313 PrintS("\n// compute a rGB of Gw:\n"); 6314 6315 #ifndef BUCHBERGER_ALG 6316 ivString(hilb_func, "w"); 6317 #endif 6318 } 6319 #endif 6320 6321 tim = clock(); 6322 to = clock(); 6323 /* compute a reduced Groebner basis of <Gomega> w.r.t. "newRing" */ 6324 #ifdef BUCHBERGER_ALG 6325 M = MstdhomCC(Gomega1); 6326 #else 6327 M=kStd(Gomega1,NULL,isHomog,NULL,hilb_func,0,NULL,curr_weight); 6328 delete hilb_func; 6329 #endif 6330 //#ifdef CHECK_IDEAL_MWALK 6331 if(printout > 2) 6332 { 6333 idString(M,"//** Mprwalk: M"); 6334 } 6335 //#endif 6336 6337 if(endwalks == 1) 6338 { 6339 xtstd = xtstd+clock()-to; 6340 #ifdef ENDWALKS 6341 Print("\n// time for the last std(Gw) = %.2f sec\n", 6342 ((double) clock())/1000000 -((double)tim) /1000000); 6343 #endif 6344 } 6345 else 6346 tstd=tstd+clock()-to; 6347 6348 /* change the ring to oldRing */ 6349 rChangeCurrRing(oldRing); 6350 M1 = idrMoveR(M, newRing,currRing); 6351 Gomega2 = idrMoveR(Gomega1, newRing,currRing); 6352 6353 to=clock(); 6354 /* compute a representation of the generators of submod (M) 6355 with respect to those of mod (Gomega). 6356 Gomega is a reduced Groebner basis w.r.t. the current ring */ 6357 F = MLifttwoIdeal(Gomega2, M1, G); 6358 if(endwalks != 1) 6359 tlift = tlift+clock()-to; 6360 else 6361 xtlift=clock()-to; 6362 6363 //#ifdef CHECK_IDEAL_MWALK 6364 if(printout > 2) 6365 { 6366 idString(F,"//** Mprwalk: F"); 6367 } 6368 //#endif 6369 6370 idDelete(&M1); 6371 idDelete(&Gomega2); 6372 idDelete(&G); 6373 6374 /* change the ring to newRing */ 6375 rChangeCurrRing(newRing); 6376 F1 = idrMoveR(F, oldRing,currRing); 6377 6378 to=clock(); 6379 /* reduce the Groebner basis <G> w.r.t. new ring */ 6380 G = kInterRedCC(F1, NULL); 6381 if(endwalks != 1) 6382 tred = tred+clock()-to; 6383 else 6384 xtred=clock()-to; 6385 6386 idDelete(&F1); 6387 6388 if(endwalks == 1) 6389 break; 6390 6391 to=clock(); 6392 // compute a next weight vector 6393 next_weight = MkInterRedNextWeight(curr_weight,target_weight, G); 6394 if(polylength > 0) 6395 { 6396 //there is a polynomial in Gomega with at least 3 monomials, 6397 //low-dimensional facet of the cone 6398 delete next_weight; 6399 next_weight = MWalkRandomNextWeight(G, curr_weight, target_weight, weight_rad, op_deg); 6400 } 6401 tnw=tnw+clock()-to; 6402 //#ifdef PRINT_VECTORS 6403 if(printout > 2) 6404 { 6405 MivString(curr_weight, target_weight, next_weight); 6406 } 6407 //#endif 6408 6409 if(Overflow_Error == TRUE) 6410 { 6411 ntwC = 0; 6412 //ntestomega = 1; 6413 //Print("\n// ring r%d = %s;\n", nstep, rString(currRing)); 6414 //idElements(G, "G"); 6415 delete next_weight; 6416 goto FINISH_160302; 6417 } 6418 if(MivComp(next_weight, ivNull) == 1){ 6419 newRing = currRing; 6420 delete next_weight; 6421 //Print("\n// ring r%d = %s;\n", nstep, rString(currRing)); 6422 break; 6423 } 6424 if(MivComp(next_weight, target_weight) == 1) 6425 endwalks = 1; 6426 6427 for(i=nV-1; i>=0; i--) 6428 (*curr_weight)[i] = (*next_weight)[i]; 6429 6430 delete next_weight; 6431 }//while 6432 6433 if(tp_deg != 1) 6434 { 6435 FINISH_160302: 6436 if(target_M->length() == nV) 6437 { 6438 if(MivSame(orig_target, exivlp) == 1) 6439 if (rParameter(currRing) != NULL) 6440 DefRingParlp(); 6441 else 6442 VMrDefaultlp(); 6443 else 6444 if (rParameter(currRing) != NULL) 6445 DefRingPar(orig_target); 6446 else 6447 rChangeCurrRing(VMrDefault(orig_target)); 6448 } 6449 else 6450 { 6451 rChangeCurrRing(VMatrDefault(target_M)); 6452 } 6453 TargetRing=currRing; 6454 F1 = idrMoveR(G, newRing,currRing); 6455 #ifdef CHECK_IDEAL 6456 headidString(G, "G"); 6457 #endif 6458 6459 // check whether the pertubed target vector stays in the correct cone 6460 if(ntwC != 0){ 6461 ntestw = test_w_in_ConeCC(F1, pert_target_vector); 6462 } 6463 6464 if( ntestw != 1 || ntwC == 0) 6465 { 6466 /* 6467 if(ntestw != 1){ 6468 ivString(pert_target_vector, "tau"); 6469 PrintS("\n// ** perturbed target vector doesn't stay in cone!!"); 6470 Print("\n// ring r%d = %s;\n", nstep, rString(currRing)); 6471 idElements(F1, "G"); 6472 } 6473 */ 6474 // LastGB is "better" than the kStd subroutine 6475 to=clock(); 6476 ideal eF1; 6477 if(nP == 0 || tp_deg == 1 || MivSame(orig_target, exivlp) != 1 || target_M->length() != nV){ 6478 // PrintS("\n// ** calls \"std\" to compute a GB"); 6479 eF1 = MstdCC(F1); 6480 idDelete(&F1); 6481 } 6482 else { 6483 // PrintS("\n// ** calls \"LastGB\" to compute a GB"); 6484 rChangeCurrRing(newRing); 6485 ideal F2 = idrMoveR(F1, TargetRing,currRing); 6486 eF1 = LastGB(F2, curr_weight, tp_deg-1); 6487 F2=NULL; 6488 } 6489 xtextra=clock()-to; 6490 ring exTargetRing = currRing; 6491 6492 rChangeCurrRing(XXRing); 6493 Eresult = idrMoveR(eF1, exTargetRing,currRing); 6494 } 6495 else{ 6496 rChangeCurrRing(XXRing); 6497 Eresult = idrMoveR(F1, TargetRing,currRing); 6498 } 6499 } 6500 else { 6501 rChangeCurrRing(XXRing); 6502 Eresult = idrMoveR(G, newRing,currRing); 6503 } 6504 si_opt_1 = save1; //set original options, e. g. option(RedSB) 6505 delete ivNull; 6506 if(tp_deg != 1) 6507 delete target_weight; 6508 6509 if(op_deg != 1 ) 6510 delete curr_weight; 6511 6512 delete exivlp; 6513 delete last_omega; 6514 6515 #ifdef TIME_TEST 6516 TimeStringFractal(tinput, tostd, tif+xtif, tstd+xtstd,0, tlift+xtlift, tred+xtred, 6517 tnw+xtnw); 6518 6519 //Print("\n// pSetm_Error = (%d)", ErrorCheck()); 6520 //Print("\n// It took %d steps and Overflow_Error? (%d)\n", nstep, Overflow_Error); 6521 #endif 6522 Print("\n//** Mprwalk: Perturbation Walk took %d steps.\n", nstep); 6087 6523 return(Eresult); 6088 6524 } … … 6110 6546 * Perturb the start weight vector at the top level, i.e. nlev = 1 * 6111 6547 ***********************************************************************/ 6112 static ideal rec_fractal_call(ideal G, int nlev, intvec* omtmp)6548 static ideal rec_fractal_call(ideal G, int nlev, intvec* ivtarget, int printout) 6113 6549 { 6114 6550 Overflow_Error = FALSE; … … 6127 6563 intvec* next_vect; 6128 6564 intvec* omega2 = new intvec(nV); 6565 intvec* omtmp = new intvec(nV); 6129 6566 intvec* altomega = new intvec(nV); 6130 6567 6568 for(i = nV -1; i>0; i--) 6569 { 6570 (*omtmp)[i] = (*ivtarget)[i]; 6571 } 6131 6572 //BOOLEAN isnewtarget = FALSE; 6132 6573 … … 6169 6610 NEXT_VECTOR_FRACTAL: 6170 6611 to=clock(); 6171 / * determine the next border */6612 // determine the next border 6172 6613 next_vect = MkInterRedNextWeight(omega,omega2,G); 6173 6614 xtnw=xtnw+clock()-to; 6174 #ifdef PRINT_VECTORS 6175 MivString(omega, omega2, next_vect); 6176 #endif 6615 6177 6616 oRing = currRing; 6178 6617 6179 / * We only perturb the current target vector at the recursion level 1 */6618 // We only perturb the current target vector at the recursion level 1 6180 6619 if(Xngleich == 0 && nlev == 1) //(ngleich == 0) important, e.g. ex2, ex3 6181 6620 if (MivComp(next_vect, omega2) == 1) 6182 6621 { 6183 /* to dispense with taking initial (and lifting/interreducing 6184 after the call of recursion */ 6185 //Print("\n\n// ** Perturb the both vectors with degree %d with",nlev); 6186 //idElements(G, "G"); 6622 // to dispense with taking initial (and lifting/interreducing 6623 // after the call of recursion 6624 if(printout > 0) 6625 { 6626 Print("\n//** rec_fractal_call: Perturb the both vectors with degree %d.",nlev); 6627 //idElements(G, "G"); 6628 } 6187 6629 6188 6630 Xngleich = 1; 6189 6631 nlev +=1; 6190 6632 6191 if (rParameter(currRing) != NULL) 6192 DefRingPar(omtmp); 6633 if(ivtarget->length() == nV) 6634 { 6635 if (rParameter(currRing) != NULL) 6636 DefRingPar(omtmp); 6637 else 6638 rChangeCurrRing(VMrDefault(omtmp)); 6639 } 6193 6640 else 6194 rChangeCurrRing(VMrDefault1(omtmp)); //Aenderung3 6195 6641 { 6642 rChangeCurrRing(VMatrDefault(ivtarget)); 6643 } 6196 6644 testring = currRing; 6197 6645 Gt = idrMoveR(G, oRing,currRing); 6198 6646 6199 /* perturb the original target vector w.r.t. the current GB */ 6200 delete Xtau; 6201 Xtau = NewVectorlp(Gt); 6647 // perturb the original target vector w.r.t. the current GB 6648 if(ivtarget->length() == nV) 6649 { 6650 delete Xtau; 6651 Xtau = NewVectorlp(Gt); 6652 } 6653 else 6654 { 6655 delete Xtau; 6656 Xtau = Mfpertvector(Gt,ivtarget); 6657 } 6202 6658 6203 6659 rChangeCurrRing(oRing); 6204 6660 G = idrMoveR(Gt, testring,currRing); 6205 6661 6206 / * perturb the current vector w.r.t. the current GB */6662 // perturb the current vector w.r.t. the current GB 6207 6663 Mwlp = MivWeightOrderlp(omega); 6208 6664 Xsigma = Mfpertvector(G, Mwlp); … … 6222 6678 next_vect = MkInterRedNextWeight(omega,omega2,G); 6223 6679 xtnw=xtnw+clock()-to; 6224 6225 #ifdef PRINT_VECTORS 6680 } 6681 //#ifdef PRINT_VECTORS 6682 if(printout > 0) 6683 { 6226 6684 MivString(omega, omega2, next_vect); 6227 #endif 6228 } 6229 6685 } 6686 //#endif 6230 6687 6231 6688 /* check whether the the computed vector is in the correct cone */ … … 6236 6693 { 6237 6694 delete next_vect; 6238 if (rParameter(currRing) != NULL) 6239 { 6240 DefRingPar(omtmp); 6695 if(ivtarget->length() == nV) 6696 { 6697 if (rParameter(currRing) != NULL) 6698 DefRingPar(omtmp); 6699 else 6700 rChangeCurrRing(VMrDefault(omtmp)); 6241 6701 } 6242 6702 else 6243 6703 { 6244 rChangeCurrRing(VM rDefault1(omtmp)); // Aenderung46704 rChangeCurrRing(VMatrDefault(ivtarget)); 6245 6705 } 6246 6706 #ifdef TEST_OVERFLOW … … 6248 6708 Gt = NULL; return(Gt); 6249 6709 #endif 6250 6251 //Print("\n\n// apply BB's alg. in ring r = %s;", rString(currRing)); 6710 if(printout > 0) 6711 { 6712 Print("\n//** rec_fractal_call: applying Buchberger's algorithm in ring r = %s;", 6713 rString(currRing)); 6714 } 6252 6715 to=clock(); 6253 6716 Gt = idrMoveR(G, oRing,currRing); … … 6258 6721 delete omega2; 6259 6722 delete altomega; 6260 6261 //Print("\n// Leaving the %d-th recursion with %d steps", nlev, nwalks); 6262 //Print(" ** Overflow_Error? (%d)", Overflow_Error); 6723 if(printout > 0) 6724 { 6725 Print("\n//** rec_fractal_call: Leaving the %d-th recursion with %d steps.\n", 6726 nlev, nwalks); 6727 //Print(" ** Overflow_Error? (%d)", Overflow_Error); 6728 } 6729 6263 6730 nnflow ++; 6264 6731 … … 6277 6744 if (MivComp(next_vect, XivNull) == 1) 6278 6745 { 6279 if (rParameter(currRing) != NULL) 6280 DefRingPar(omtmp); 6746 if(ivtarget->length() == nV) 6747 { 6748 if (rParameter(currRing) != NULL) 6749 DefRingPar(omtmp); 6750 else 6751 rChangeCurrRing(VMrDefault(omtmp)); 6752 } 6281 6753 else 6282 rChangeCurrRing(VMrDefault1(omtmp)); //Aenderung5 6754 { 6755 rChangeCurrRing(VMatrDefault(ivtarget)); 6756 } 6283 6757 6284 6758 testring = currRing; … … 6289 6763 delete next_vect; 6290 6764 delete altomega; 6291 //Print("\n// Leaving the %d-th recursion with %d steps ",nlev, nwalks); 6292 //Print(" ** Overflow_Error? (%d)", Overflow_Error); 6293 6765 if(printout > 0) 6766 { 6767 Print("\n//** rec_fractal_call: Leaving the %d-th recursion with %d steps.\n", 6768 nlev, nwalks); 6769 //Print(" ** Overflow_Error? (%d)", Overflow_Error); 6770 } 6294 6771 return (Gt); 6295 6772 } … … 6302 6779 //07.08.03 6303 6780 //ivString(Xtau, "old Xtau"); 6304 intvec* Xtautmp = Mfpertvector(Gt, MivMatrixOrder(omtmp)); 6781 intvec* Xtautmp; 6782 if(ivtarget->length() == nV) 6783 { 6784 Xtautmp = Mfpertvector(Gt, MivMatrixOrder(omtmp)); 6785 } 6786 else 6787 { 6788 Xtautmp = Mfpertvector(Gt, ivtarget); 6789 } 6305 6790 #ifdef TEST_OVERFLOW 6306 6791 if(Overflow_Error == TRUE) … … 6330 6815 6331 6816 FRACTAL_MSTDCC: 6332 //Print("\n// apply BB-Alg in ring = %s;", rString(currRing)); 6817 if(printout > 0) 6818 { 6819 Print("\n//** rec_fractal_call: apply Buchberger's algorithm in ring = %s.\n", 6820 rString(currRing)); 6821 } 6333 6822 to=clock(); 6334 6823 G = MstdCC(Gt); … … 6338 6827 6339 6828 // update the original target vector w.r.t. the current GB 6340 if(MivSame(Xivinput, Xivlp) == 1) 6341 if (rParameter(currRing) != NULL) 6342 DefRingParlp(); 6829 if(ivtarget->length() == nV) 6830 { 6831 if(MivSame(Xivinput, Xivlp) == 1) 6832 if (rParameter(currRing) != NULL) 6833 DefRingParlp(); 6834 else 6835 VMrDefaultlp(); 6343 6836 else 6344 VMrDefaultlp(); 6837 if (rParameter(currRing) != NULL) 6838 DefRingPar(Xivinput); 6839 else 6840 rChangeCurrRing(VMrDefault(Xivinput)); 6841 } 6345 6842 else 6346 if (rParameter(currRing) != NULL) 6347 DefRingPar(Xivinput); 6348 else 6349 rChangeCurrRing(VMrDefault1(Xivinput)); //Aenderung6 6350 6843 { 6844 rChangeCurrRing(VMatrRefine(ivtarget,Xivinput)); 6845 } 6351 6846 testring = currRing; 6352 6847 Gt = idrMoveR(G, oRing,currRing); … … 6361 6856 delete next_vect; 6362 6857 delete altomega; 6363 /* 6364 Print("\n// Leaving the %d-th recursion with %d steps,", nlev,nwalks); 6365 Print(" ** Overflow_Error? (%d)", Overflow_Error); 6366 */ 6858 if(printout > 0) 6859 { 6860 Print("\n//** rec_fractal_call: Leaving the %d-th recursion with %d steps.\n", 6861 nlev, nwalks); 6862 //Print(" ** Overflow_Error? (%d)", Overflow_Error); 6863 } 6367 6864 if(Overflow_Error == TRUE) 6368 6865 nnflow ++; … … 6383 6880 Gomega = MwalkInitialForm(G, omega); 6384 6881 xtif=xtif+clock()-to; 6385 6882 if(printout > 1) 6883 { 6884 idString(Gomega,"//** rec_fractal_call: Gomega"); 6885 } 6386 6886 #ifndef BUCHBERGER_ALG 6387 6887 if(isNolVector(omega) == 0) … … 6390 6890 hilb_func = hFirstSeries(Gomega,NULL,NULL,last_omega,currRing); 6391 6891 #endif // BUCHBERGER_ALG 6392 6393 if (rParameter(currRing) != NULL) 6394 DefRingPar(omega); 6892 if(ivtarget->length() == nV) 6893 { 6894 if (rParameter(currRing) != NULL) 6895 DefRingPar(omega); 6896 else 6897 rChangeCurrRing(VMrDefault(omega)); 6898 } 6395 6899 else 6396 rChangeCurrRing(VMrDefault1(omega)); //Aenderung7 6397 6900 { 6901 rChangeCurrRing(VMatrRefine(ivtarget,omega)); 6902 } 6398 6903 Gomega1 = idrMoveR(Gomega, oRing,currRing); 6399 6904 6400 / * Maximal recursion depth, to compute a red. GB */6401 / * Fractal walk with the alternative recursion */6402 / * alternative recursion */6905 // Maximal recursion depth, to compute a red. GB 6906 // Fractal walk with the alternative recursion 6907 // alternative recursion 6403 6908 // if(nlev == nV || lengthpoly(Gomega1) == 0) 6404 6909 if(nlev == Xnlev || lengthpoly(Gomega1) == 0) 6405 6910 //if(nlev == nV) // blind recursion 6406 6911 { 6407 /*6408 if(Xnlev != nV)6409 {6410 Print("\n// ** Xnlev = %d", Xnlev);6411 ivString(Xtau, "Xtau");6412 }6413 */6414 6912 to=clock(); 6415 6913 #ifdef BUCHBERGER_ALG … … 6421 6919 xtstd=xtstd+clock()-to; 6422 6920 } 6423 else { 6921 else 6922 { 6424 6923 rChangeCurrRing(oRing); 6425 6924 Gomega1 = idrMoveR(Gomega1, oRing,currRing); 6426 Gresult = rec_fractal_call(idCopy(Gomega1),nlev+1,omega); 6427 } 6428 6429 //convert a Groebner basis from a ring to another ring, 6925 Gresult = rec_fractal_call(idCopy(Gomega1),nlev+1,omega,printout); 6926 } 6927 if(printout > 2) 6928 { 6929 idString(Gresult,"//** rec_fractal_call: M"); 6930 } 6931 //convert a Groebner basis from a ring to another ring 6430 6932 new_ring = currRing; 6431 6933 … … 6435 6937 6436 6938 to=clock(); 6437 / * Lifting process */6939 // Lifting process 6438 6940 F = MLifttwoIdeal(Gomega2, Gresult1, G); 6439 6941 xtlift=xtlift+clock()-to; 6942 if(printout > 2) 6943 { 6944 idString(F,"//** rec_fractal_call: F"); 6945 } 6440 6946 idDelete(&Gresult1); 6441 6947 idDelete(&Gomega2); … … 6456 6962 * Perturb the start weight vector at the top level with random element * 6457 6963 ************************************************************************/ 6458 static ideal rec_r_fractal_call(ideal G, int nlev, intvec* omtmp, int weight_rad) 6964 static ideal rec_r_fractal_call(ideal G, int nlev, intvec* ivtarget, 6965 int weight_rad, int printout) 6459 6966 { 6460 6967 Overflow_Error = FALSE; 6461 6968 //Print("\n\n// Entering the %d-th recursion:", nlev); 6462 6969 6463 int i, nV = currRing->N;6970 int i, polylength, nV = currRing->N; 6464 6971 ring new_ring, testring; 6465 6972 //ring extoRing; … … 6473 6980 intvec* next_vect; 6474 6981 intvec* omega2 = new intvec(nV); 6982 intvec* omtmp = new intvec(nV); 6475 6983 intvec* altomega = new intvec(nV); 6476 6984 6477 6985 //BOOLEAN isnewtarget = FALSE; 6478 6986 6987 for(i = nV -1; i>0; i--) 6988 { 6989 (*omtmp)[i] = (*ivtarget)[i]; 6990 } 6479 6991 // to avoid (1,0,...,0) as the target vector (Hans) 6480 6992 intvec* last_omega = new intvec(nV); … … 6516 7028 to=clock(); 6517 7029 /* determine the next border */ 6518 next_vect = MWalkRandomNextWeight(G, omega,omega2, weight_rad, 1+nlev); 6519 //next_vect = MkInterRedNextWeight(omega,omega2,G); 7030 next_vect = MkInterRedNextWeight(omega,omega2,G); 7031 if(polylength > 0) 7032 { 7033 //there is a polynomial in Gomega with at least 3 monomials, 7034 //low-dimensional facet of the cone 7035 delete next_vect; 7036 next_vect = MWalkRandomNextWeight(G,omega,omega2,weight_rad,1+nlev); 7037 if(isNolVector(next_vect)) 7038 { 7039 delete next_vect; 7040 next_vect = MkInterRedNextWeight(omega,omega2,G); 7041 } 7042 } 6520 7043 xtnw=xtnw+clock()-to; 6521 #ifdef PRINT_VECTORS 6522 MivString(omega, omega2, next_vect); 6523 #endif 7044 6524 7045 oRing = currRing; 6525 7046 6526 / * We only perturb the current target vector at the recursion level 1 */7047 // We only perturb the current target vector at the recursion level 1 6527 7048 if(Xngleich == 0 && nlev == 1) //(ngleich == 0) important, e.g. ex2, ex3 6528 7049 if (MivComp(next_vect, omega2) == 1) 6529 7050 { 6530 /* to dispense with taking initial (and lifting/interreducing 6531 after the call of recursion */ 6532 //Print("\n\n// ** Perturb the both vectors with degree %d with",nlev); 6533 //idElements(G, "G"); 6534 7051 // to dispense with taking initials and lifting/interreducing 7052 // after the call of recursion. 7053 if(printout > 0) 7054 { 7055 Print("\n//** rec_r_fractal_call: Perturb the both vectors with degree %d.",nlev); 7056 //idElements(G, "G"); 7057 } 6535 7058 Xngleich = 1; 6536 7059 nlev +=1; 6537 6538 if (rParameter(currRing) != NULL) 6539 DefRingPar(omtmp); 7060 if(ivtarget->length() == nV) 7061 { 7062 if (rParameter(currRing) != NULL) 7063 DefRingPar(omtmp); 7064 else 7065 rChangeCurrRing(VMrDefault(omtmp)); 7066 } 6540 7067 else 6541 rChangeCurrRing(VMrDefault1(omtmp)); //Aenderung3 6542 7068 { 7069 rChangeCurrRing(VMatrDefault(ivtarget)); 7070 } 6543 7071 testring = currRing; 6544 7072 Gt = idrMoveR(G, oRing,currRing); 6545 7073 6546 /* perturb the original target vector w.r.t. the current GB */ 6547 delete Xtau; 6548 Xtau = NewVectorlp(Gt); 7074 // perturb the original target vector w.r.t. the current GB 7075 if(ivtarget->length() == nV) 7076 { 7077 delete Xtau; 7078 Xtau = NewVectorlp(Gt); 7079 } 7080 else 7081 { 7082 delete Xtau; 7083 Xtau = Mfpertvector(Gt,ivtarget); 7084 } 6549 7085 6550 7086 rChangeCurrRing(oRing); 6551 G = idrMoveR(Gt, 6552 6553 / * perturb the current vector w.r.t. the current GB */7087 G = idrMoveR(Gt,testring,currRing); 7088 7089 // perturb the current vector w.r.t. the current GB 6554 7090 Mwlp = MivWeightOrderlp(omega); 7091 if(ivtarget->length() > nV) 7092 { 7093 delete Mwlp; 7094 Mwlp = MivMatrixOrderRefine(omega,ivtarget); 7095 } 6555 7096 Xsigma = Mfpertvector(G, Mwlp); 6556 7097 delete Mwlp; … … 6568 7109 6569 7110 next_vect = MkInterRedNextWeight(omega,omega2,G); 7111 if(polylength > 0) 7112 { 7113 //there is a polynomial in Gomega with at least 3 monomials, 7114 //low-dimensional facet of the cone 7115 delete next_vect; 7116 next_vect = MWalkRandomNextWeight(G,omega,omega2,weight_rad,1+nlev); 7117 if(isNolVector(next_vect)) 7118 { 7119 delete next_vect; 7120 next_vect = MkInterRedNextWeight(omega,omega2,G); 7121 } 7122 } 6570 7123 xtnw=xtnw+clock()-to; 6571 6572 #ifdef PRINT_VECTORS 7124 } 7125 //#ifdef PRINT_VECTORS 7126 if(printout > 0) 7127 { 6573 7128 MivString(omega, omega2, next_vect); 6574 #endif 6575 } 6576 6577 6578 /* check whether the the computed vector is in the correct cone */ 6579 /* If no, the reduced GB of an omega-homogeneous ideal will be 7129 } 7130 //#endif 7131 7132 /* check whether the the computed vector is in the correct cone 7133 If no, the reduced GB of an omega-homogeneous ideal will be 6580 7134 computed by Buchberger algorithm and stop this recursion step*/ 6581 7135 //if(test_w_in_ConeCC(G, next_vect) != 1) //e.g. Example s7, cyc6 … … 6583 7137 { 6584 7138 delete next_vect; 6585 if (rParameter(currRing) != NULL) 6586 { 6587 DefRingPar(omtmp); 7139 if(ivtarget->length() == nV) 7140 { 7141 if (rParameter(currRing) != NULL) 7142 { 7143 DefRingPar(omtmp); 7144 } 7145 else 7146 { 7147 rChangeCurrRing(VMrDefault(omtmp)); 7148 } 6588 7149 } 6589 7150 else 6590 7151 { 6591 rChangeCurrRing(VM rDefault1(omtmp)); // Aenderung47152 rChangeCurrRing(VMatrDefault(ivtarget)); 6592 7153 } 6593 7154 #ifdef TEST_OVERFLOW 6594 7155 Gt = idrMoveR(G, oRing,currRing); 6595 Gt = NULL; return(Gt); 6596 #endif 6597 6598 //Print("\n\n// apply BB's alg. in ring r = %s;", rString(currRing)); 7156 Gt = NULL; 7157 return(Gt); 7158 #endif 7159 if(printout > 0) 7160 { 7161 Print("\n//** rec_r_fractal_call: applying Buchberger's algorithm in ring r = %s;", 7162 rString(currRing)); 7163 } 6599 7164 to=clock(); 6600 7165 Gt = idrMoveR(G, oRing,currRing); … … 6605 7170 delete omega2; 6606 7171 delete altomega; 6607 6608 //Print("\n// Leaving the %d-th recursion with %d steps", nlev, nwalks); 6609 //Print(" ** Overflow_Error? (%d)", Overflow_Error); 7172 if(printout > 0) 7173 { 7174 Print("\n//** rec_r_fractal_call: Leaving the %d-th recursion with %d steps.\n", 7175 nlev, nwalks); 7176 //Print(" ** Overflow_Error? (%d)", Overflow_Error); 7177 } 6610 7178 nnflow ++; 6611 6612 7179 Overflow_Error = FALSE; 6613 7180 return (G1); 6614 7181 } 6615 6616 6617 /* If the perturbed target vector stays in the correct cone, 6618 return the current GB, 6619 otherwise, return the computed GB by the Buchberger-algorithm. 6620 Then we update the perturbed target vectors w.r.t. this GB. */ 6621 6622 /* the computed vector is equal to the origin vector, since 6623 t is not defined */ 7182 /* 7183 If the perturbed target vector stays in the correct cone, 7184 return the current Groebner basis. 7185 Otherwise, return the Groebner basis computed with Buchberger's 7186 algorithm. 7187 Then we update the perturbed target vectors w.r.t. this GB. 7188 */ 6624 7189 if (MivComp(next_vect, XivNull) == 1) 6625 7190 { 6626 if (rParameter(currRing) != NULL) 6627 DefRingPar(omtmp); 7191 // The computed vector is equal to the origin vector, 7192 // because t is not defined 7193 if(ivtarget->length() == nV) 7194 { 7195 if (rParameter(currRing) != NULL) 7196 DefRingPar(omtmp); 7197 else 7198 rChangeCurrRing(VMrDefault(omtmp)); 7199 } 6628 7200 else 6629 rChangeCurrRing(VMrDefault1(omtmp)); //Aenderung5 6630 7201 { 7202 rChangeCurrRing(VMatrDefault(ivtarget)); 7203 } 6631 7204 testring = currRing; 6632 7205 Gt = idrMoveR(G, oRing,currRing); 6633 7206 6634 if(test_w_in_ConeCC(Gt, omega2) == 1) { 7207 if(test_w_in_ConeCC(Gt, omega2) == 1) 7208 { 6635 7209 delete omega2; 6636 7210 delete next_vect; 6637 7211 delete altomega; 6638 //Print("\n// Leaving the %d-th recursion with %d steps ",nlev, nwalks); 6639 //Print(" ** Overflow_Error? (%d)", Overflow_Error); 6640 7212 if(printout > 0) 7213 { 7214 Print("\n//** rec_r_fractal_call: Leaving the %d-th recursion with %d steps.\n", 7215 nlev, nwalks); 7216 //Print(" ** Overflow_Error? (%d)", Overflow_Error); 7217 } 6641 7218 return (Gt); 6642 7219 } 6643 7220 else 6644 { 6645 //ivString(omega2, "tau'"); 6646 //Print("\n// tau' doesn't stay in the correct cone!!"); 6647 7221 { 7222 if(printout > 0) 7223 { 7224 Print("\n//** rec_r_fractal_call: target weight doesn't stay in the correct cone.\n"); 7225 } 6648 7226 #ifndef MSTDCC_FRACTAL 6649 //07.08.036650 7227 //ivString(Xtau, "old Xtau"); 6651 intvec* Xtautmp = Mfpertvector(Gt, MivMatrixOrder(omtmp)); 7228 intvec* Xtautmp; 7229 if(ivtarget->length() == nV) 7230 { 7231 Xtautmp = Mfpertvector(Gt, MivMatrixOrder(omtmp)); 7232 } 7233 else 7234 { 7235 Xtautmp = Mfpertvector(Gt, ivtarget); 7236 } 6652 7237 #ifdef TEST_OVERFLOW 6653 7238 if(Overflow_Error == TRUE) … … 6677 7262 6678 7263 FRACTAL_MSTDCC: 6679 //Print("\n// apply BB-Alg in ring = %s;", rString(currRing)); 7264 if(printout > 0) 7265 { 7266 Print("\n//** rec_r_fractal_call: apply Buchberge's algorithm in ring = %s.\n", 7267 rString(currRing)); 7268 } 6680 7269 to=clock(); 6681 7270 G = MstdCC(Gt); … … 6685 7274 6686 7275 // update the original target vector w.r.t. the current GB 6687 if(MivSame(Xivinput, Xivlp) == 1) 6688 if (rParameter(currRing) != NULL) 6689 DefRingParlp(); 7276 if(ivtarget->length() == nV) 7277 { 7278 if(MivSame(Xivinput, Xivlp) == 1) 7279 if (rParameter(currRing) != NULL) 7280 DefRingParlp(); 7281 else 7282 VMrDefaultlp(); 6690 7283 else 6691 VMrDefaultlp(); 7284 if (rParameter(currRing) != NULL) 7285 DefRingPar(Xivinput); 7286 else 7287 rChangeCurrRing(VMrDefault(Xivinput)); 7288 } 6692 7289 else 6693 if (rParameter(currRing) != NULL) 6694 DefRingPar(Xivinput); 6695 else 6696 rChangeCurrRing(VMrDefault1(Xivinput)); //Aenderung6 6697 7290 { 7291 rChangeCurrRing(VMatrRefine(ivtarget,Xivinput)); 7292 } 6698 7293 testring = currRing; 6699 7294 Gt = idrMoveR(G, oRing,currRing); … … 6708 7303 delete next_vect; 6709 7304 delete altomega; 6710 /* 6711 Print("\n// Leaving the %d-th recursion with %d steps,", nlev,nwalks); 6712 Print(" ** Overflow_Error? (%d)", Overflow_Error); 6713 */ 7305 if(printout > 0) 7306 { 7307 Print("\n//** rec_r_fractal_call: Leaving the %d-th recursion with %d steps.\n", 7308 nlev,nwalks); 7309 //Print(" ** Overflow_Error? (%d)", Overflow_Error); 7310 } 6714 7311 if(Overflow_Error == TRUE) 6715 7312 nnflow ++; … … 6727 7324 6728 7325 to=clock(); 6729 / * Take the initial form of <G> w.r.t. omega */7326 // Take the initial form of <G> w.r.t. omega 6730 7327 Gomega = MwalkInitialForm(G, omega); 6731 7328 xtif=xtif+clock()-to; 6732 7329 //polylength = 1 if there is a polynomial in Gomega with at least 3 monomials and 0 otherwise 7330 polylength = lengthpoly(Gomega); 7331 if(printout > 1) 7332 { 7333 idString(Gomega,"//** rec_r_fractal_call: Gomega"); 7334 } 6733 7335 #ifndef BUCHBERGER_ALG 6734 7336 if(isNolVector(omega) == 0) … … 6736 7338 else 6737 7339 hilb_func = hFirstSeries(Gomega,NULL,NULL,last_omega,currRing); 6738 #endif // BUCHBERGER_ALG 6739 6740 if (rParameter(currRing) != NULL) 6741 DefRingPar(omega); 7340 #endif 7341 if(ivtarget->length() == nV) 7342 { 7343 if (rParameter(currRing) != NULL) 7344 DefRingPar(omega); 7345 else 7346 rChangeCurrRing(VMrDefault(omega)); 7347 } 6742 7348 else 6743 rChangeCurrRing(VMrDefault1(omega)); //Aenderung7 6744 7349 { 7350 rChangeCurrRing(VMatrRefine(ivtarget,omega)); 7351 } 6745 7352 Gomega1 = idrMoveR(Gomega, oRing,currRing); 6746 7353 6747 /* Maximal recursion depth, to compute a red. GB */ 6748 /* Fractal walk with the alternative recursion */ 6749 /* alternative recursion */ 6750 // if(nlev == nV || lengthpoly(Gomega1) == 0) 7354 // Maximal recursion depth, to compute a red. GB 7355 // Fractal walk with the alternative recursion 7356 // alternative recursion 6751 7357 if(nlev == Xnlev || lengthpoly(Gomega1) == 0) 6752 //if(nlev == nV) // blind recursion 6753 { 6754 /* 6755 if(Xnlev != nV) 6756 { 6757 Print("\n// ** Xnlev = %d", Xnlev); 6758 ivString(Xtau, "Xtau"); 6759 } 6760 */ 7358 { 6761 7359 to=clock(); 6762 7360 #ifdef BUCHBERGER_ALG … … 6765 7363 Gresult =kStd(Gomega1,NULL,isHomog,NULL,hilb_func,0,NULL,omega); 6766 7364 delete hilb_func; 6767 #endif // BUCHBERGER_ALG7365 #endif 6768 7366 xtstd=xtstd+clock()-to; 6769 7367 } 6770 else { 7368 else 7369 { 6771 7370 rChangeCurrRing(oRing); 6772 7371 Gomega1 = idrMoveR(Gomega1, oRing,currRing); 6773 Gresult = rec_fractal_call(idCopy(Gomega1),nlev+1,omega); 6774 } 6775 6776 //convert a Groebner basis from a ring to another ring, 7372 Gresult = rec_fractal_call(idCopy(Gomega1),nlev+1,omega,printout); 7373 } 7374 if(printout > 2) 7375 { 7376 idString(Gresult,"//** rec_r_fractal_call: M"); 7377 } 7378 //convert a Groebner basis from a ring to another ring 6777 7379 new_ring = currRing; 6778 7380 … … 6782 7384 6783 7385 to=clock(); 6784 / * Lifting process */7386 // Lifting process 6785 7387 F = MLifttwoIdeal(Gomega2, Gresult1, G); 6786 7388 xtlift=xtlift+clock()-to; 7389 7390 if(printout > 2) 7391 { 7392 idString(F,"//** rec_r_fractal_call: F"); 7393 } 7394 6787 7395 idDelete(&Gresult1); 6788 7396 idDelete(&Gomega2); … … 6793 7401 6794 7402 to=clock(); 6795 / * Interreduce G */7403 // Interreduce G 6796 7404 G = kInterRedCC(F1, NULL); 6797 7405 xtred=xtred+clock()-to; … … 6799 7407 } 6800 7408 } 6801 6802 6803 7409 6804 7410 … … 6807 7413 * * 6808 7414 * The main procedur Mfwalk calls the recursive Subroutine * 6809 * rec_fractal_call to compute the wanted Gr ᅵbner basis.*6810 * At the main procedur we compute the reduced Gr ᅵbner basis w.r.t. a "fast"*7415 * rec_fractal_call to compute the wanted Groebner basis. * 7416 * At the main procedur we compute the reduced Groebner basis w.r.t. a "fast" * 6811 7417 * order, e.g. "dp" and a sequence of weight vectors which are row vectors * 6812 7418 * of a matrix. This matrix defines the given monomial order, e.g. "lp" * 6813 7419 *******************************************************************************/ 6814 ideal Mfwalk(ideal G, intvec* ivstart, intvec* ivtarget) 7420 ideal Mfwalk(ideal G, intvec* ivstart, intvec* ivtarget, 7421 int reduction, int printout) 6815 7422 { 7423 BITSET save1 = si_opt_1; // save current options 7424 if(reduction == 0) 7425 { 7426 si_opt_1 &= (~Sy_bit(OPT_REDSB)); // no reduced Groebner basis 7427 //si_opt_1 &= (~Sy_bit(OPT_REDTAIL)); // not tail reductions 7428 } 6816 7429 Set_Error(FALSE); 6817 7430 Overflow_Error = FALSE; … … 6848 7461 intvec* iv_dp = MivUnit(nV); // define (1,1,...,1) 6849 7462 intvec* Mdp; 6850 6851 if(MivSame(ivstart, iv_dp) != 1) 6852 Mdp = MivWeightOrderdp(ivstart); 7463 if(ivstart->length() == nV) 7464 { 7465 if(MivSame(ivstart, iv_dp) != 1) 7466 Mdp = MivWeightOrderdp(ivstart); 7467 else 7468 Mdp = MivMatrixOrderdp(nV); 7469 } 6853 7470 else 6854 Mdp = MivMatrixOrderdp(nV); 7471 { 7472 Mdp = ivstart; 7473 } 6855 7474 6856 7475 Xsigma = Mfpertvector(I, Mdp); … … 6869 7488 Xivlp = Mivlp(nV); 6870 7489 6871 if(MivComp(ivtarget, Xivlp) != 1) 6872 { 6873 if (rParameter(currRing) != NULL) 6874 DefRingPar(ivtarget); 7490 if(ivtarget->length() == nV) 7491 { 7492 if(MivComp(ivtarget, Xivlp) != 1) 7493 { 7494 if (rParameter(currRing) != NULL) 7495 DefRingPar(ivtarget); 7496 else 7497 rChangeCurrRing(VMrDefault(ivtarget)); 7498 7499 I1 = idrMoveR(I, oldRing,currRing); 7500 Mlp = MivWeightOrderlp(ivtarget); 7501 Xtau = Mfpertvector(I1, Mlp); 7502 } 6875 7503 else 6876 rChangeCurrRing(VMrDefault1(ivtarget)); //Aenderung1 6877 6878 I1 = idrMoveR(I, oldRing,currRing); 6879 Mlp = MivWeightOrderlp(ivtarget); 6880 Xtau = Mfpertvector(I1, Mlp); 7504 { 7505 if (rParameter(currRing) != NULL) 7506 DefRingParlp(); 7507 else 7508 VMrDefaultlp(); 7509 7510 I1 = idrMoveR(I, oldRing,currRing); 7511 Mlp = MivMatrixOrderlp(nV); 7512 Xtau = Mfpertvector(I1, Mlp); 7513 } 6881 7514 } 6882 7515 else 6883 7516 { 6884 if (rParameter(currRing) != NULL) 6885 DefRingParlp(); 6886 else 6887 VMrDefaultlp(); 6888 6889 I1 = idrMoveR(I, oldRing,currRing); 6890 Mlp = MivMatrixOrderlp(nV); 7517 rChangeCurrRing(VMatrDefault(ivtarget)); 7518 I1 = idrMoveR(I,oldRing,currRing); 7519 Mlp = ivtarget; 6891 7520 Xtau = Mfpertvector(I1, Mlp); 6892 7521 } … … 6899 7528 id_Delete(&I, oldRing); 6900 7529 ring tRing = currRing; 6901 6902 if (rParameter(currRing) != NULL) 6903 DefRingPar(ivstart); 7530 if(ivtarget->length() == nV) 7531 { 7532 if (rParameter(currRing) != NULL) 7533 DefRingPar(ivstart); 7534 else 7535 rChangeCurrRing(VMrDefault(ivstart)); 7536 } 6904 7537 else 6905 rChangeCurrRing(VMrDefault1(ivstart)); //Aenderung2 7538 { 7539 rChangeCurrRing(VMatrDefault(ivstart)); 7540 } 6906 7541 6907 7542 I = idrMoveR(I1,tRing,currRing); … … 6914 7549 ring helpRing = currRing; 6915 7550 6916 J = rec_fractal_call(J, 1, ivtarget);7551 J = rec_fractal_call(J,1,ivtarget,printout); 6917 7552 6918 7553 rChangeCurrRing(oldRing); … … 6920 7555 idSkipZeroes(resF); 6921 7556 7557 si_opt_1 = save1; //set original options, e. g. option(RedSB) 6922 7558 delete Xivlp; 6923 7559 delete Xsigma; … … 6938 7574 } 6939 7575 6940 ideal Mfrwalk(ideal G, intvec* ivstart, intvec* ivtarget,int weight_rad) 7576 /******************************************************************************* 7577 * The implementation of the fractal walk algorithm with random element * 7578 * * 7579 * The main procedur Mfwalk calls the recursive Subroutine * 7580 * rec_r_fractal_call to compute the wanted Groebner basis. * 7581 * At the main procedure we compute the reduced Groebner basis w.r.t. a "fast" * 7582 * order, e.g. "dp" and a sequence of weight vectors which are row vectors * 7583 * of a matrix. This matrix defines the given monomial order, e.g. "lp" * 7584 *******************************************************************************/ 7585 ideal Mfrwalk(ideal G, intvec* ivstart, intvec* ivtarget, 7586 int weight_rad, int reduction, int printout) 6941 7587 { 7588 BITSET save1 = si_opt_1; // save current options 7589 if(reduction == 0) 7590 { 7591 si_opt_1 &= (~Sy_bit(OPT_REDSB)); // no reduced Groebner basis 7592 //si_opt_1 &= (~Sy_bit(OPT_REDTAIL)); // not tail reductions 7593 } 6942 7594 Set_Error(FALSE); 6943 7595 Overflow_Error = FALSE; … … 6974 7626 intvec* iv_dp = MivUnit(nV); // define (1,1,...,1) 6975 7627 intvec* Mdp; 6976 6977 if(MivSame(ivstart, iv_dp) != 1) 6978 Mdp = MivWeightOrderdp(ivstart); 7628 if(ivstart->length() == nV) 7629 { 7630 if(MivSame(ivstart, iv_dp) != 1) 7631 Mdp = MivWeightOrderdp(ivstart); 7632 else 7633 Mdp = MivMatrixOrderdp(nV); 7634 } 6979 7635 else 6980 Mdp = MivMatrixOrderdp(nV); 7636 { 7637 Mdp = ivstart; 7638 } 6981 7639 6982 7640 Xsigma = Mfpertvector(I, Mdp); … … 6995 7653 Xivlp = Mivlp(nV); 6996 7654 6997 if(MivComp(ivtarget, Xivlp) != 1) 6998 { 6999 if (rParameter(currRing) != NULL) 7000 DefRingPar(ivtarget); 7655 if(ivtarget->length() == nV) 7656 { 7657 if(MivComp(ivtarget, Xivlp) != 1) 7658 { 7659 if (rParameter(currRing) != NULL) 7660 DefRingPar(ivtarget); 7661 else 7662 rChangeCurrRing(VMrDefault(ivtarget)); 7663 7664 I1 = idrMoveR(I, oldRing,currRing); 7665 Mlp = MivWeightOrderlp(ivtarget); 7666 Xtau = Mfpertvector(I1, Mlp); 7667 } 7001 7668 else 7002 rChangeCurrRing(VMrDefault1(ivtarget)); //Aenderung1 7003 7004 I1 = idrMoveR(I, oldRing,currRing); < -
Property
mode
changed from