Changeset 38c0dca in git
- Timestamp:
- Feb 12, 2002, 6:39:27 PM (21 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'f875bbaccd0831e36aaed09ff6adeb3eb45aeb94')
- Children:
- 37c112469f189ef5a3de5e526fcf3d8aaac5210a
- Parents:
- 6d07e39974898a3c343d0298c4eb25a179334ab7
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/gaussman.lib
r6d07e3 r38c0dca 1 1 /////////////////////////////////////////////////////////////////////////////// 2 version="$Id: gaussman.lib,v 1.6 6 2002-02-12 14:35:24mschulze Exp $";2 version="$Id: gaussman.lib,v 1.67 2002-02-12 17:39:27 mschulze Exp $"; 3 3 category="Singularities"; 4 4 … … 13 13 PROCEDURES: 14 14 gmsring(t,s); Gauss-Manin connection of t with variable s 15 gmsnf(p,K [,Kmax]);Gauss-Manin connection normal form of p16 gmscoeffs(p,K [,Kmax]);Gauss-Manin connection basis representation of p15 gmsnf(p,K); Gauss-Manin connection normal form of p 16 gmscoeffs(p,K); Gauss-Manin connection basis representation of p 17 17 monodromy(t); Jordan data of monodromy of t 18 18 spectrum(t); singularity spectrum of t … … 211 211 /////////////////////////////////////////////////////////////////////////////// 212 212 213 proc gmsnf(ideal p,int K ,list #)214 "USAGE: gmsnf(p,K [,Kmax]); poly p, int K, int Kmax215 ASSUME: basering returned by gmsring ; K<=Kmax213 proc gmsnf(ideal p,int K) 214 "USAGE: gmsnf(p,K); poly p, int K 215 ASSUME: basering returned by gmsring 216 216 RETURN: 217 217 @format 218 218 list nf; 219 219 ideal nf[1]; projection of p to gmsbasis mod s^(K+1) 220 ideal nf[2]; p=nf[1]+nf[2] mod s^(Kmax+1)220 ideal nf[2]; p=nf[1]+nf[2] 221 221 @end format 222 NOTE: by setting p=nf[2] the computation can be continued 222 223 KEYWORDS: singularities; Gauss-Manin connection; Brieskorn lattice 223 224 EXAMPLE: example gmsnf; shows examples 224 225 " 225 226 { 226 int Kmax=-1; 227 if(size(#)>0) 228 { 229 if(typeof(#[1])=="int") 230 { 231 Kmax=#[1]; 232 if(K>Kmax) 233 { 234 Kmax=K; 235 } 236 } 237 } 238 239 intvec v=1; 240 v[nvars(basering)]=0; 241 242 int k; 243 if(Kmax>=0) 244 { 245 p=jet(jet(p,K,v),(Kmax+1)*deg(var(1))-2*gmsmaxdeg); 246 } 247 248 ideal r,q; 249 r[ncols(p)]=0; 250 q[ncols(p)]=0; 251 252 poly s; 253 int i,j; 254 for(k=ncols(p);k>=1;k--) 255 { 256 while(p[k]!=0&°(lead(p[k]),v)<=K) 257 { 258 i=1; 259 s=lead(p[k])/lead(gmsstd[i]); 260 while(i<ncols(gmsstd)&&s==0) 261 { 262 i++; 263 s=lead(p[k])/lead(gmsstd[i]); 264 } 265 if(s!=0) 266 { 267 p[k]=p[k]-s*gmsstd[i]; 268 for(j=1;j<=nrows(gmsmatrix);j++) 269 { 270 if(Kmax>=0) 271 { 272 p[k]=p[k]+ 273 jet(jet(diff(s*gmsmatrix[j,i],var(j+1))*var(1),Kmax,v), 274 (Kmax+1)*deg(var(1))-2*gmsmaxdeg); 275 } 276 else 277 { 278 p[k]=p[k]+diff(s*gmsmatrix[j,i],var(j+1))*var(1); 279 } 280 } 281 } 282 else 283 { 284 r[k]=r[k]+lead(p[k]); 285 p[k]=p[k]-lead(p[k]); 286 } 287 while(deg(lead(p[k]))>(K+1)*deg(var(1))-2*gmsmaxdeg&& 288 deg(lead(p[k]),v)<=K) 289 { 290 q[k]=q[k]+lead(p[k]); 291 p[k]=p[k]-lead(p[k]); 292 } 293 } 294 q[k]=q[k]+p[k]; 295 } 296 297 return(list(r,q)); 227 return(system("gmsnf",p,gmsstd,gmsmatrix,(K+1)*deg(var(1))-2*gmsmaxdeg,K)); 298 228 } 299 229 example … … 312 242 /////////////////////////////////////////////////////////////////////////////// 313 243 314 proc gmscoeffs(ideal p,int K ,list #)315 "USAGE: gmscoeffs(p,K [,Kmax]); poly p, int K, int Kmax316 ASSUME: basering constructed by gmsring , K<=Kmax244 proc gmscoeffs(ideal p,int K) 245 "USAGE: gmscoeffs(p,K); poly p, int K 246 ASSUME: basering constructed by gmsring 317 247 RETURN: 318 248 @format 319 249 list l; 320 250 matrix l[1]; gmsbasis representation of p mod s^(K+1) 321 ideal l[2]; p=matrix(gmsbasis)*l[1]+l[2] mod s^(Kmax+1)251 ideal l[2]; p=matrix(gmsbasis)*l[1]+l[2] 322 252 @end format 323 NOTE: by setting p=l[2] the computation can be continued up to degree 324 at most Kmax, by default Kmax=infinity 253 NOTE: by setting p=l[2] the computation can be continued 325 254 KEYWORDS: singularities; Gauss-Manin connection; Brieskorn lattice 326 255 EXAMPLE: example gmscoeffs; shows examples 327 256 " 328 257 { 329 list l=gmsnf(p,K ,#);258 list l=gmsnf(p,K); 330 259 ideal r,q=l[1..2]; 331 260 poly v=1; … … 411 340 k++; 412 341 dbprint(printlevel-voice+2,"// k="+string(k)); 413 l=gmscoeffs(r,k ,mu+K0);342 l=gmscoeffs(r,k); 414 343 C,r=l[1..2]; 415 344 A0=A0+C; … … 436 365 dbprint(printlevel-voice+2,"// compute matrix A of t"); 437 366 dbprint(printlevel-voice+2,"// k="+string(K+k0+1)); 438 list l=gmscoeffs(r,K+k0+1 ,K0+k0+1);367 list l=gmscoeffs(r,K+k0+1); 439 368 matrix C; 440 369 C,r=l[1..2];
Note: See TracChangeset
for help on using the changeset viewer.