Changeset e801fe in git for Singular/LIB/invar.lib
- Timestamp:
- Feb 16, 1998, 1:07:04 PM (26 years ago)
- Branches:
- (u'spielwiese', 'd1b01e9d51ade4b46b745d3bada5c5f3696be3a8')
- Children:
- 1e7d8d9fbdaf1094cc869ca3a6be98b9e1fbfc9a
- Parents:
- 437e2c21158af6efe6402cc1da62ee40760c03e0
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/invar.lib
r437e2c2 re801fe 1 // $Id: invar.lib,v 1. 3 1997-09-18 09:58:24 Singular Exp $1 // $Id: invar.lib,v 1.4 1998-02-16 12:07:01 pfister Exp $ 2 2 /////////////////////////////////////////////////////// 3 3 // invar.lib … … 7 7 ////////////////////////////////////////////////////// 8 8 9 LIBRARY: invar.lib PROCEDURE FOR COMPUTING INVARIANTS UNDER(C,+)-ACTIONS9 LIBRARY: invar.lib PROCEDURES FOR COMPUTING INVARIANTS OF (C,+)-ACTIONS 10 10 11 11 invariantRing(matrix m,poly p,poly q,int choose) … … 142 142 143 143 144 proc reduction(poly p, ideal mo, list #)145 USAGE: reduction(p, mo,q); p poly, moideal, q (optional) monomial144 proc reduction(poly p, ideal dom, list #) 145 USAGE: reduction(p,dom,q); p poly, dom ideal, q (optional) monomial 146 146 RETURN: poly= (p-H(f1,...,fr))/q^a, if Lt(p)=H(Lt(f1),...,Lt(fr)) for 147 147 some polynomial H in r variables over the base field, 148 148 a maximal such that q^a devides p-H(f1,...,fr), 149 mo=(f1,...,fr)149 dom =(f1,...,fr) 150 150 NOTE: 151 151 EXAMPLE: example reduction; shows an example 152 152 { 153 153 int i; 154 int z=size( mo);154 int z=size(dom); 155 155 def bsr=basering; 156 156 … … 165 165 execute "ring s="+charstr(basering)+",("+varstr(basering)+",@(0..z)),dp;"; 166 166 167 //costructes the ideal mo=(p-@(0),mo[1]-@(1),...,mo[z]-@(z))168 ideal mo=imap(bsr,mo);167 //costructes the ideal dom=(p-@(0),dom[1]-@(1),...,dom[z]-@(z)) 168 ideal dom=imap(bsr,dom); 169 169 for (i=1;i<=z;i++) 170 170 { 171 mo[i]=lead(mo[i])-var(nvars(bsr)+i+1);172 } 173 mo=lead(imap(bsr,p))-@(0),mo;171 dom[i]=lead(dom[i])-var(nvars(bsr)+i+1); 172 } 173 dom=lead(imap(bsr,p))-@(0),dom; 174 174 175 175 //eliminates the variables of the basering bsr 176 //i.e. computes mointersected with K[@(0),...,@(z)]177 ideal kern=eliminate( mo,imap(bsr,v));176 //i.e. computes dom intersected with K[@(0),...,@(z)] 177 ideal kern=eliminate(dom,imap(bsr,v)); 178 178 179 179 // test wether @(0)-h(@(1),...,@(z)) is in ker for some poly h … … 186 186 { 187 187 h=(1/h)*kern[i]; 188 // defines the map psi : s ---> bsr defined by @(i) ---> p, mo[i]188 // defines the map psi : s ---> bsr defined by @(i) ---> p,dom[i] 189 189 setring bsr; 190 map psi=s,maxideal(1),p, mo;190 map psi=s,maxideal(1),p,dom; 191 191 poly re=psi(h); 192 192 … … 210 210 ring q=0,(x,y,z,u,v,w),dp; 211 211 poly p=x2yz-x2v; 212 ideal mo=x-w,u2w+1,yz-v;213 reduction(p, mo);214 reduction(p, mo,w);215 } 216 217 /////////////////////////////////////////////////////////////////////////////// 218 219 proc completeReduction(poly p, ideal mo, list #)220 USAGE: completeReduction(p, mo,q); p poly, moideal,212 ideal dom =x-w,u2w+1,yz-v; 213 reduction(p,dom); 214 reduction(p,dom,w); 215 } 216 217 /////////////////////////////////////////////////////////////////////////////// 218 219 proc completeReduction(poly p, ideal dom, list #) 220 USAGE: completeReduction(p,dom,q); p poly, dom ideal, 221 221 q (optional) monomial 222 RETURN: poly= the polynomial p reduced with movia the procedure222 RETURN: poly= the polynomial p reduced with dom via the procedure 223 223 reduction as long as possible 224 224 NOTE: … … 226 226 { 227 227 poly p1=p; 228 poly p2=reduction(p, mo,#);228 poly p2=reduction(p,dom,#); 229 229 while (p1!=p2) 230 230 { 231 231 p1=p2; 232 p2=reduction(p1, mo,#);232 p2=reduction(p1,dom,#); 233 233 } 234 234 return(p2); … … 238 238 ring q=0,(x,y,z,u,v,w),dp; 239 239 poly p=x2yz-x2v; 240 ideal mo=x-w,u2w+1,yz-v;241 completeReduction(p, mo);242 completeReduction(p, mo,w);243 } 244 /////////////////////////////////////////////////////////////////////////////// 245 246 proc inSubring(poly p, ideal mo)247 USAGE: inSubring(p, mo); p poly, moideal248 RETURN: list= 1,string(@(0)-h(@(1),...,@(size( mo)))) :if p = h(mo[1],...,mo[size(mo)])249 0,string(h(@(0),...,@(size( mo)))) :if there is only a nonlinear relation250 h(p, mo[1],...,mo[size(mo)])=0.240 ideal dom =x-w,u2w+1,yz-v; 241 completeReduction(p,dom); 242 completeReduction(p,dom,w); 243 } 244 /////////////////////////////////////////////////////////////////////////////// 245 246 proc inSubring(poly p, ideal dom) 247 USAGE: inSubring(p,dom); p poly, dom ideal 248 RETURN: list= 1,string(@(0)-h(@(1),...,@(size(dom)))) :if p = h(dom[1],...,dom[size(dom)]) 249 0,string(h(@(0),...,@(size(dom)))) :if there is only a nonlinear relation 250 h(p,dom[1],...,dom[size(dom)])=0. 251 251 NOTE: 252 252 EXAMPLE: example inSubring; shows an example 253 253 { 254 int z=size( mo);254 int z=size(dom); 255 255 int i; 256 256 def gnir=basering; … … 262 262 } 263 263 string eli=string(mile); 264 // the intersection of ideal nett=(p-@(0), mo[1]-@(1),...)264 // the intersection of ideal nett=(p-@(0),dom[1]-@(1),...) 265 265 // with the ring k[@(0),...,@(n)] is computed, the result is ker 266 266 execute "ring r1="+charstr(basering)+",("+varstr(basering)+",@(0..z)),dp;"; 267 ideal nett=imap(gnir, mo);267 ideal nett=imap(gnir,dom); 268 268 poly p; 269 269 for (i=1;i<=z;i++) … … 299 299 ring q=0,(x,y,z,u,v,w),dp; 300 300 poly p=xyzu2w-1yzu2w2+u4w2-1xu2vw+u2vw2+xyz-1yzw+2u2w-1xv+vw+2; 301 ideal mo=x-w,u2w+1,yz-v;302 inSubring(p, mo);301 ideal dom =x-w,u2w+1,yz-v; 302 inSubring(p,dom); 303 303 } 304 304 … … 478 478 " "; 479 479 karl; 480 pause;480 // pause; 481 481 " "; 482 482 } … … 517 517 " "; 518 518 karl; 519 pause;519 // pause; 520 520 " "; 521 521 } … … 643 643 644 644 } 645 ///////////////////////////////////////////////////////////////////////////////
Note: See TracChangeset
for help on using the changeset viewer.