Changeset 2761f3 in git
- Timestamp:
- Apr 15, 2005, 3:42:55 PM (18 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'f875bbaccd0831e36aaed09ff6adeb3eb45aeb94')
- Children:
- 1e79bc42d7e72fcff731d84985f171cf819261b1
- Parents:
- 7d2f4ef4907cd59899fa683b66f5e5b0408d556f
- Location:
- Singular/LIB
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/hnoether.lib
r7d2f4e r2761f3 1 version="$Id: hnoether.lib,v 1.44 2005-04-14 15:39:20Singular Exp $";1 - version="$Id: hnoether.lib,v 1.45 2005-04-15 13:42:53 Singular Exp $"; 2 2 category="Singularities"; 3 3 info=" 4 LIBRARY: hnoether.lib Hamburger-Noether (Puiseux) Development4 LIBRARY: hnoether.lib Hamburger-Noether (Puiseux) Expansion 5 5 AUTHORS: Martin Lamm, lamm@mathematik.uni-kl.de 6 6 Christoph Lossen, lossen@mathematik.uni-kl.de … … 17 17 hnexpansion(f [,\"ess\"]); Hamburger-Noether (HN) expansion of f 18 18 develop(f [,n]); HN expansion of irreducible plane curve germs 19 extdevelop(hne,n); extension of the H-N developmenthne of f20 param( L [,s]);parametrization of branches described by HN data21 displayHNE(hne); display HN developmentas an ideal19 extdevelop(hne,n); extension of the H-N expansion hne of f 20 param(hne [,s]); parametrization of branches described by HN data 21 displayHNE(hne); display HN expansion as an ideal 22 22 invariants(hne); invariants of f, e.g. the characteristic exponents 23 23 displayInvariants(hne); display invariants of f 24 24 multsequence(hne); sequence of multiplicities 25 25 displayMultsequence(hne); display sequence of multiplicities 26 intersection(hne1,hne2); intersection multiplicity of two curves27 is_irred(f); test iff is irreducible as power series26 intersection(hne1,hne2); intersection multiplicity of two local branches 27 is_irred(f); test whether f is irreducible as power series 28 28 delta(f); delta invariant of f 29 29 newtonpoly(f); (local) Newton polygon of f 30 is_NND(f); test iff is Newton non-degenerate30 is_NND(f); test whether f is Newton non-degenerate 31 31 32 32 … … 917 917 @code{extdevelop(develop(f),n)}, or (one entry in) the list of HN 918 918 data created by @code{hnexpansion(f[,\"ess\"])}. 919 RETURN: a parametrization for f in the following format: @* 919 RETURN: If L are the HN data of an irreducible plane curve singularity f: a 920 parametrization for f in the following format: @* 920 921 - if only the list L is given, the result is an ideal of two 921 922 polynomials p[1],p[2]: if the HNE was finite then f(p[1],p[2])=0}; … … 927 928 l[1] are exact (entry -1 means that the corresponding parametrization 928 929 is exact). 930 If L collects the HN data of a reducible plane curve singularity f, 931 the return value is a list of parametrizations in the respective 932 format. 929 933 NOTE: If the basering has only 2 variables, the first variable is chosen 930 934 as indefinite. Otherwise, the 3rd variable is chosen. … … 1500 1504 proc intersection (list hn1, list hn2) 1501 1505 "USAGE: intersection(hne1,hne2); hne1, hne2 lists 1502 ASSUME: hne1, hne2 represent a HNE (i.e., are the output of1503 @code{develop(f)}, or of @code{extdevelop(develop(f),n)}, or1504 one entry of the list @code{hne} in the ring created by1505 @code{hnexpansion(f[,\"ess\"])}).1506 RETURN: int, the intersection multiplicity of the branches corresponding to1507 hne1 and hne2.1506 ASSUME: @code{hne1, hne2} represent an HN expansion of an irreducible plane 1507 curve singularity (that is, are the output of @code{develop(f)}, or of 1508 @code{extdevelop(develop(f),n)}, or one entry of the list of HN data 1509 computed by @code{hnexpansion(f[,\"ess\"])}). 1510 RETURN: int, the intersection multiplicity of the irreducible plane curve 1511 singularities corresponding to @code{hne1} and @code{hne2}. 1508 1512 SEE ALSO: hnexpansion, displayInvariants 1509 1513 KEYWORDS: intersection multiplicity … … 1969 1973 or of @code{hnexpansion(f[,\"ess\"])}, or (one entry in) the list 1970 1974 @code{hne} in the ring created by @code{hnexpansion(f[,\"ess\"])}. 1971 RETURN: - if only one argument is given, no return value, but 1975 RETURN: - if only one argument is given and if the input are the HN data 1976 of an irreducible plane curve singularity, no return value, but 1972 1977 display an ideal HNE of the following form: 1973 1978 @example … … 1978 1983 z(r-1) = []*z(r)^2+[]*z(r)^3+...... 1979 1984 @end example 1980 where @code{x},@code{y} are the first 2 variables of the basering.1981 The values of @code{[]} are the coefficients of the Hamburger-Noether1982 matrix, the values of @code{<>} are represented by @code{x} in the1983 HN-matrix.@*1984 - if a second argument is given, create and export a new ring with1985 name @code{displayring} containing an ideal @code{HNE} as described1986 above.@*1987 - if L corresponds to the output of @code{hnexpansion(f[,\"ess\"])}1988 or to the list @code{hne} in the ring created by @code{hnexpansion(f[,\"ess\"])},1989 @code{displayHNE(L[,n])} shows the HNE's of all branches of f in the form1990 described above. The optional parameter is then ignored.1985 where @code{x},@code{y} are the first 2 variables of the basering. 1986 The values of @code{[]} are the coefficients of the Hamburger-Noether 1987 matrix, the values of @code{<>} are represented by @code{x} in the 1988 HN matrix.@* 1989 - if a second argument is given and if the input are the HN data 1990 of an irreducible plane curve singularity, return a ring containing 1991 an ideal @code{HNE} as described above.@* 1992 - if L corresponds to the output of @code{hnexpansion(f)} 1993 or to the list of HN data computed by @code{hnexpansion(f[,\"ess\"])}, 1994 @code{displayHNE(L[,n])} shows the HNE's of all branches of f in the 1995 format described above. The optional parameter is then ignored. 1991 1996 NOTE: The 1st line of the above ideal (i.e., @code{HNE[1]}) means that 1992 1997 @code{y=[]*z(0)^1+...}, the 2nd line (@code{HNE[2]}) means that … … 2033 2038 ////////////////////////////////////////////////////////////// 2034 2039 setring displayring; 2035 if (size(#) != 0) {2036 export displayring;2037 }2038 2040 map holematrix=altring,0; // mappt nur die Monome vom Grad Null 2039 2041 matrix m=holematrix(m); … … 2121 2123 } 2122 2124 if (size(#) != 0) { 2123 "// basering is now 'displayring' containing ideal 'HNE'";2125 HNE; 2124 2126 export(HNE); 2125 keepring(displayring); 2126 return(HNE); 2127 return(displayring); 2127 2128 } 2128 2129 } … … 2799 2800 kill HNEring; 2800 2801 if (essential==1) { 2801 dbprint(printlevel-voice+3," 2802 // No change of ring necessary, return value is a list:2802 dbprint(printlevel-voice+3,""+ 2803 "// No change of ring necessary, return value is a list: 2803 2804 // first entry = list : HN expansion of essential branches. 2804 // second entry = intvec: numbers of conjugated branches 2805 "); 2805 // second entry = intvec: numbers of conjugated branches "); 2806 2806 return(list(hne,hne_conj)); 2807 2807 } 2808 2808 else { 2809 dbprint(printlevel-voice+3," 2810 // No change of ring necessary, return value is HN expansion. 2811 "); 2809 dbprint(printlevel-voice+3,""+ 2810 "// No change of ring necessary, return value is HN expansion."); 2812 2811 return(hne); 2813 2812 } … … 3414 3413 delt=0; 3415 3414 if (defined(zerlege)) { kill zerlege; } 3416 "Hier durch gelaufen";3417 3415 } 3418 3416 … … 3759 3757 if (lastRingnumber>0) { def letztring=EXTHNEring(lastRingnumber); } 3760 3758 else { def letztring=HNEring; } 3759 if (not defined(HNEs)) {list HNEs;} 3761 3760 HNEs=imap(letztring,HNEs); 3762 3761 if (not defined(azeilen)) {list azeilen;} … … 3862 3861 list dummyL=imap(EXTHNEring(EXTHNEnumber-1),HNEs); 3863 3862 if (not(defined(HNEs))) { def HNEs=list(); } 3863 if ((size(HNEs)==1) and (typeof(HNEs[1])=="ideal")) {HNEs=list();} 3864 3864 HNEs[size(HNEs)+1..size(HNEs)+size(dummyL)]=dummyL[1..size(dummyL)]; 3865 3865 kill dummyL,SaveRing; … … 4163 4163 factorlist(L); 4164 4164 } 4165 4165 4166 /////////////////////////////////////////////////////////////////////////////// 4166 4167 4167 proc deltaHNE(list hne)4168 "USAGE: deltaHNE(L); L list4169 NOTE: command is obsolete, use hnexpansion(f,\"ess\") instead.4170 SEE ALSO: delta, deltaLoc4171 "4172 {4173 int i,j,inters;4174 int n=size(hne);4175 list INV;4176 for (i=1;i<=n;i++)4177 {4178 INV[i]=invariants(hne[i]);4179 }4180 int del=INV[n][5]/2;4181 for(i=1;i<=n-1;i++)4182 {4183 del=del+INV[i][5]/2;4184 for(j=i+1;j<=n;j++)4185 {4186 inters=inters+intersection(hne[i],hne[j]);4187 }4188 }4189 return(del+inters);4190 }4191 4192 ///////////////////////////////////////////////////////////////////////////////4193 4194 4168 proc delta 4195 "USAGE: delta(INPUT); INPUT a polynomial defining an isolated 4169 "USAGE: delta(INPUT); INPUT a polynomial defining an isolated plane curve 4196 4170 singularity at 0, or the Hamburger-Noether expansion thereof, i.e. 4197 the output of @code{develop(f)}, or the output of @code{hnexpansion(f[,\"ess\"])}, 4198 or (one of the entries of) the list @code{hne} in the ring created 4199 by @code{hnexpansion(f[,\"ess\"])}. 4200 RETURN: the delta invariant of the singularity at 0, the vector space 4201 dimension of R~/R, where R~ is the normalization of the 4202 singularity R=basering/f 4171 the output of @code{develop(f)}, or the output of @code{hnexpansion(f)}, 4172 or the list of HN data computed by @code{hnexpansion(f)}. 4173 RETURN: int, the delta invariant of the singularity at 0, that is, the vector 4174 space dimension of R~/R, (R~ the normalization of the local ring of 4175 the singularity. 4203 4176 NOTE: In case the Hamburger-Noether expansion of the curve f is needed 4204 4177 for other purposes as well it is better to calculate this first … … 4210 4183 " 4211 4184 { 4212 if (typeof(#[1])=="poly") 4213 { // INPUT = polynomial defining the curve4214 list HNEXPANSION=hnexpansion(#[1]);4215 return(delta(HNEXPANSION));4216 }4217 if (typeof(#[1])=="ring")4218 { // INPUT = HNEring of curve4219 def r_e_t_t_e_r_i_n_g=basering;4220 def H_N_E_RING=#[1];4221 setring H_N_E_RING;4222 int del=delta(hne);4223 setring r_e_t_t_e_r_i_n_g;4224 kill H_N_E_RING;4225 return(del );4185 if (typeof(#[1])=="poly") { // INPUT = polynomial defining the singularity 4186 list L=hnexpansion(#[1]); 4187 if (typeof(L[1])=="ring") { 4188 def altring = basering; 4189 def HNring = L[1]; setring HNring; 4190 return(delta(hne)); 4191 } 4192 else { 4193 return(delta(L)); 4194 } 4195 } 4196 if (typeof(#[1])=="ring") { // INPUT = HNEring of curve 4197 def HNring = #[1]; setring HNring; 4198 return(delta(hne)); 4226 4199 } 4227 4200 if (typeof(#[1])=="matrix") -
Singular/LIB/paramet.lib
r7d2f4e r2761f3 1 1 // last change: 17.01.2001 2 2 /////////////////////////////////////////////////////////////////////////////// 3 version="$Id: paramet.lib,v 1.1 4 2005-01-13 09:42:04 Singular Exp $";3 version="$Id: paramet.lib,v 1.15 2005-04-15 13:42:54 Singular Exp $"; 4 4 category="Visualization"; 5 5 info=" … … 193 193 intvec ov=option(get); 194 194 option(noredefine); 195 list hn,para;195 list L,para; 196 196 if (nvars(basering)==2 and 197 197 (find(ordstr(basering), "ls") > 0 || … … 199 199 find(ordstr(basering), "lp") > 0)) 200 200 { 201 hn = reddevelop(f); 202 for (int ii=1; ii<=size(hn); ii++) 203 { 204 para[ii]=param(hn[ii]); 205 } 201 L = hnexpansion(f); 202 if (typeof(L[1])=="ring") { 203 def altring = basering; 204 def HNring = L[1]; setring HNring; 205 list P = param(hne); 206 export P; 207 option(set,ov); 208 setring(altring); 209 return(list(HNring)); 210 } 211 else { 212 option(set,ov); 213 list P = param(L); 214 return(P); 215 } 206 216 } 207 217 else 208 218 { 209 para[1]=0; 210 } 211 keepring basering; 212 option(set,ov); 213 return(para); 219 option(set,ov); 220 return(list()); 221 } 214 222 } 215 223 example -
Singular/LIB/primitiv.lib
r7d2f4e r2761f3 3 3 // This library is for Singular 1.2 or newer 4 4 5 version="$Id: primitiv.lib,v 1.1 7 2005-04-14 15:39:22Singular Exp $";5 version="$Id: primitiv.lib,v 1.18 2005-04-15 13:42:54 Singular Exp $"; 6 6 category="Commutative Algebra"; 7 7 info=" … … 380 380 { "EXAMPLE:"; echo = 2; 381 381 ring r=0,(x,y),dp; 382 splitring(x2-2,"r1"); // change to Q(sqrt(2)) 382 def r1=splitring(x2-2); 383 setring r1; basering; // change to Q(sqrt(2)) 383 384 // change to Q(sqrt(2),sqrt(sqrt(2)))=Q(a) and return the transformed 384 385 // old parameter: 385 splitring(x2-a,"r2",a); 386 def r2=splitring(x2-a,a); 387 setring r2; basering; erg; 386 388 // the result is (a)^2 = (sqrt(sqrt(2)))^2 387 nameof(basering);388 r2;389 389 kill r1; kill r2; 390 390 } -
Singular/LIB/ring.lib
r7d2f4e r2761f3 1 1 //(GMG, last modified 03.11.95) 2 2 /////////////////////////////////////////////////////////////////////////////// 3 version="$Id: ring.lib,v 1. 19 2005-04-01 11:53:31Singular Exp $";3 version="$Id: ring.lib,v 1.20 2005-04-15 13:42:55 Singular Exp $"; 4 4 category="General purpose"; 5 5 info=" … … 26 26 LIB "inout.lib"; 27 27 LIB "general.lib"; 28 LIB "primdec.lib"; 28 29 /////////////////////////////////////////////////////////////////////////////// 29 30
Note: See TracChangeset
for help on using the changeset viewer.