Changeset 034ce1 in git for Singular/LIB/finvar.lib
- Timestamp:
- May 12, 2000, 2:25:47 PM (24 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 7bb71fad3a9d45a2e30c8458373b89a01eecf500
- Parents:
- 73d7b5cf051d2bb349542039ed3ac2b513f7c109
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/finvar.lib
r73d7b5 r034ce1 1 // $Id: finvar.lib,v 1.2 6 2000-05-02 14:52:48Singular Exp $1 // $Id: finvar.lib,v 1.27 2000-05-12 12:25:43 Singular Exp $ 2 2 // author: Agnes Eileen Heydtmann, email:agnes@math.uni-sb.de 3 3 // last change: 98/11/05 4 4 /////////////////////////////////////////////////////////////////////////////// 5 version="$Id: finvar.lib,v 1.2 6 2000-05-02 14:52:48Singular Exp $"5 version="$Id: finvar.lib,v 1.27 2000-05-12 12:25:43 Singular Exp $" 6 6 info=" 7 7 LIBRARY: finvar.lib LIBRARY TO CALCULATE INVARIANT RINGS OF FINITE GROUPS … … 765 765 if (minpoly==0) 766 766 { if (i>size(chst)) 767 { execute "ring "+newring+"=0,("+varstr(br)+"),("+ordstr(br)+")";767 { execute("ring "+newring+"=0,("+varstr(br)+"),("+ordstr(br)+")"); 768 768 } 769 769 else 770 770 { chst=chst[i..size(chst)]; 771 execute "ring "+newring+"=(0"+chst+"),("+varstr(br)+"),("+ordstr(br)+")"; 771 execute 772 ("ring "+newring+"=(0"+chst+"),("+varstr(br)+"),("+ordstr(br)+")"); 772 773 } 773 774 } … … 776 777 minp=minp[2..size(minp)-1]; 777 778 chst=chst[i..size(chst)]; 778 execute "ring "+newring+"=(0"+chst+"),("+varstr(br)+"),("+ordstr(br)+")";779 execute "minpoly="+minp;779 execute("ring "+newring+"=(0"+chst+"),("+varstr(br)+"),("+ordstr(br)+")"); 780 execute("minpoly="+minp); 780 781 } 781 782 matrix I=diag(1,n); … … 813 814 } 814 815 setring `newring`; 815 execute "matrix G(i)["+string(n)+"]["+string(n)+"]="+stM(i);816 execute("matrix G(i)["+string(n)+"]["+string(n)+"]="+stM(i)); 816 817 p=det(I-v1*G(i)); // denominator of new term - 817 818 M[1,1]=M[1,1]*p+M[1,2]; // expanding M[1,1]/M[1,2] + 1/p … … 1202 1203 if (minpoly==0) 1203 1204 { if (i>size(chst)) 1204 { execute "ring "+newring+"=0,("+varstr(br)+"),("+ordstr(br)+")";1205 { execute("ring "+newring+"=0,("+varstr(br)+"),("+ordstr(br)+")"); 1205 1206 } 1206 1207 else 1207 1208 { chst=chst[i..size(chst)]; 1208 execute "ring "+newring+"=(0"+chst+"),("+varstr(br)+"),("+ordstr(br)+")"; 1209 execute 1210 ("ring "+newring+"=(0"+chst+"),("+varstr(br)+"),("+ordstr(br)+")"); 1209 1211 } 1210 1212 } … … 1213 1215 minp=minp[2..size(minp)-1]; 1214 1216 chst=chst[i..size(chst)]; 1215 execute "ring "+newring+"=(0"+chst+"),("+varstr(br)+"),("+ordstr(br)+")";1216 execute "minpoly="+minp;1217 execute("ring "+newring+"=(0"+chst+"),("+varstr(br)+"),("+ordstr(br)+")"); 1218 execute("minpoly="+minp); 1217 1219 } 1218 1220 poly v1=var(1); // the Molien series will be in terms of … … 1234 1236 } 1235 1237 setring `newring`; 1236 execute "matrix G(1)["+string(n)+"]["+string(n)+"]="+stM(1);1238 execute("matrix G(1)["+string(n)+"]["+string(n)+"]="+stM(1)); 1237 1239 matrix A(2)[1][2]; // A(2) will contain the Molien series - 1238 1240 A(2)[1,1]=1; // A(2)[1,1] will be the numerator … … 1271 1273 } 1272 1274 setring `newring`; 1273 execute "matrix G(i)["+string(n)+"]["+string(n)+"]="+stM(i);1275 execute("matrix G(i)["+string(n)+"]["+string(n)+"]="+stM(i)); 1274 1276 p=det(I-v1*G(i)); // denominator of new term - 1275 1277 A(2)[1,1]=A(2)[1,1]*p+A(2)[1,2]; // expanding A(2)[1,1]/A(2)[1,2] +1/p … … 1330 1332 } 1331 1333 setring `newring`; 1332 execute "matrix G(g)["+string(n)+"]["+string(n)+"]="+stM(g);1334 execute("matrix G(g)["+string(n)+"]["+string(n)+"]="+stM(g)); 1333 1335 p=det(I-v1*G(g)); // denominator of new term 1334 1336 A(2)[1,1]=A(2)[1,1]*p+A(2)[1,2]; … … 1473 1475 poly A(1)=M[1,2]; // denominator of Molien series (for now) 1474 1476 string mp=string(minpoly); 1475 execute "ring R=("+charstr(br)+"),("+varstr(br)+"),ds;";1476 execute "minpoly=number("+mp+");";1477 execute("ring R=("+charstr(br)+"),("+varstr(br)+"),ds;"); 1478 execute("minpoly=number("+mp+");"); 1477 1479 poly A(1)=0; // A(1) will contain the sum of n terms - 1478 1480 poly min; // min will be our smallest term - … … 1596 1598 } 1597 1599 //---------------------------------------------------------------------------- 1598 execute "ring T=("+charstr(br)+"),("+varstr(br)+",p(1..m)),lp;";1600 execute("ring T=("+charstr(br)+"),("+varstr(br)+",p(1..m)),lp;"); 1599 1601 // p(1..m) are the general coefficients of the general polynomial of degree g 1600 execute "ideal vars="+varstr(br)+";";1602 execute("ideal vars="+varstr(br)+";"); 1601 1603 map f; 1602 1604 ideal mon=imap(br,mon); … … 3045 3047 } 3046 3048 if (not(flag)) 3047 { execute "test_dim="+string(answer[1..size(answer)]);3049 { execute("test_dim="+string(answer[1..size(answer)])); 3048 3050 if (test_dim<=max) 3049 3051 { flag=1; … … 3154 3156 } 3155 3157 if (not(flag)) 3156 { execute "test_dim="+string(answer[1..size(answer)]);3158 { execute("test_dim="+string(answer[1..size(answer)])); 3157 3159 if (test_dim<=max) 3158 3160 { flag=1; … … 5116 5118 string mp=string(minpoly); // generating a ring where we can do 5117 5119 // elimination 5118 execute "ring R=("+charstr(br)+"),(x(1..n),y(1..n),h),dp;";5119 execute "minpoly=number("+mp+");";5120 execute("ring R=("+charstr(br)+"),(x(1..n),y(1..n),h),dp;"); 5121 execute("minpoly=number("+mp+");"); 5120 5122 map f=br,maxideal(1); // canonical mapping 5121 5123 matrix M[k][m+k*n]; … … 5640 5642 int m=ncols(F); 5641 5643 string mp=string(minpoly); 5642 execute "ring R=("+charstr(br)+"),("+varstr(br)+",y(1..m)),dp;";5643 execute "minpoly=number("+mp+");";5644 execute("ring R=("+charstr(br)+"),("+varstr(br)+",y(1..m)),dp;"); 5645 execute("minpoly=number("+mp+");"); 5644 5646 ideal I=ideal(imap(br,F)); 5645 5647 for (int i=1;i<=m;i++) … … 5647 5649 } 5648 5650 I=elim(I,1,n); 5649 execute "ring "+newring+"=("+charstr(br)+"),(y(1..m)),dp(m);";5650 execute "minpoly=number("+mp+");";5651 execute("ring "+newring+"=("+charstr(br)+"),(y(1..m)),dp(m);"); 5652 execute("minpoly=number("+mp+");"); 5651 5653 ideal vars; 5652 5654 for (i=2;i<=n;i++) … … 5658 5660 kill emb, vars, R; 5659 5661 keepring `newring`; 5660 // execute "keepring "+newring+";";5661 5662 return(); 5662 5663 } … … 5701 5702 int m=ncols(F); 5702 5703 string mp=string(minpoly); 5703 execute "ring R=("+charstr(br)+"),("+varstr(br)+",y(1..m)),lp;";5704 execute "minpoly=number("+mp+");";5704 execute("ring R=("+charstr(br)+"),("+varstr(br)+",y(1..m)),lp;"); 5705 execute("minpoly=number("+mp+");"); 5705 5706 ideal J=ideal(imap(br,F)); 5706 5707 ideal I=imap(br,I); … … 5727 5728 } 5728 5729 G=compress(G); 5729 execute "ring "+newring+"=("+charstr(br)+"),(y(1..m)),lp;";5730 execute "minpoly=number("+mp+");";5730 execute("ring "+newring+"=("+charstr(br)+"),(y(1..m)),lp;"); 5731 execute("minpoly=number("+mp+");"); 5731 5732 ideal vars; 5732 5733 for (i=2;i<=n;i++) … … 5738 5739 kill vars, emb; 5739 5740 keepring `newring`; 5740 // execute "keepring "+newring+";";5741 5741 return(); 5742 5742 } … … 5775 5775 string newring="E"; 5776 5776 relative_orbit_variety(I,F,newring); 5777 execute "ring R=("+charstr(br)+"),("+varstr(br)+","+varstr(E)+"),lp;";5777 execute("ring R=("+charstr(br)+"),("+varstr(br)+","+varstr(E)+"),lp;"); 5778 5778 ideal F=imap(br,F); 5779 5779 for (int i=1;i<=n;i++)
Note: See TracChangeset
for help on using the changeset viewer.