Changeset dc2e7d5 in git
- Timestamp:
- Dec 11, 2013, 1:30:04 PM (10 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- f1babfbabc0fc2906b36df32051eaaf09673dc6f
- Parents:
- 3bc27a35af1aa573f7b8b110c0fda5e484414166
- git-author:
- Hans Schoenemann <hannes@mathematik.uni-kl.de>2013-12-11 13:30:04+01:00
- git-committer:
- Hans Schoenemann <hannes@mathematik.uni-kl.de>2013-12-11 13:33:06+01:00
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/normal.lib
r3bc27a3 rdc2e7d5 2156 2156 2157 2157 proc genus(ideal I,list #) 2158 "USAGE: genus( i) or genus(i,1); I a 1-dimensional ideal2158 "USAGE: genus(I) or genus(I,<option>); I a 1-dimensional ideal 2159 2159 RETURN: an integer, the geometric genus p_g = p_a - delta of the projective 2160 2160 curve defined by i, where p_a is the arithmetic genus. … … 2162 2162 i.e. dim(R'/R), R' the normalization of the local ring R of the 2163 2163 singularity. @* 2164 genus(i,1) uses the normalization to compute delta. Usually genus(i,1) 2165 is slower than genus(i) but sometimes not. 2164 genus(I,"nor") uses the normalization to compute delta. Usually genus(I,"nor") 2165 is slower than genus(I) but sometimes not. @* 2166 genus(I,"pri") starts with a primary decompsition. 2166 2167 EXAMPLE: example genus; shows an example 2167 2168 " … … 2169 2170 int w = printlevel-voice+2; // w=printlevel (default: w=0) 2170 2171 2172 int ono,rpr,ll; 2173 if(size(#)>0) 2174 { 2175 if(typeof(#[1])=="string") 2176 { 2177 if(#[1]=="nor"){ono=1;} 2178 if(#[1]=="pri"){rpr=1;} 2179 } 2180 else { ERROR("invalid option for genus");} 2181 } 2171 2182 def R0=basering; 2172 if( char(basering)>0)2183 if((char(basering)>0)||(ono)) 2173 2184 { 2174 2185 def R1=changeord(list(list("dp",1:nvars(basering)))); … … 2198 2209 J=std(J); 2199 2210 } 2200 int pa=1-hilbPoly(J)[1]; 2201 pa=pa-deltaP(J); 2211 2212 list LL=normal(J,"prim"); 2213 int pa,i; 2214 for(i=1;i<=size(LL[1]);i++) 2215 { 2216 def T=LL[1][i]; 2217 setring T; 2218 pa=pa-hilbPoly(std(norid))[1]; 2219 setring S; 2220 kill T; 2221 } 2222 pa=pa+1; 2202 2223 setring R0; 2203 2224 return(pa); 2225 } 2226 if(!rpr) 2227 { 2228 list LZ=minAssGTZ(I); 2229 if(size(LZ)>1) 2230 { 2231 int p_g; 2232 for(ll=1;ll<=size(LZ);ll++) 2233 { 2234 p_g=p_g+genus(LZ[ll],"pri")-1; 2235 } 2236 return(p_g+1); 2237 } 2238 else 2239 { 2240 I=LZ[1]; 2241 } 2204 2242 } 2205 2243 I=std(I); … … 2432 2470 map sigma=S,var(1),var(2),1; 2433 2471 ideal I=sigma(F); 2434 2435 if(size(#)!=0)2436 { //uses the normalization to compute delta2437 list nor=normal(I,"withDelta");2438 delt=nor[size(nor)][2];2439 genus=genus-delt-deltainf;2440 setring R0;2441 return(genus);2442 }2443 2472 2444 2473 ideal I1=jacob(I); -
Tst/Short/bug_532_s.res.gz.uu
r3bc27a3 rdc2e7d5 1 begin 664 bug_532_s.res.gz 2 M'XL(")_>H5(``V)U9U\U,S)?<RYR97,`39%1:\(P%(7?^RL.96`R:C76;E-I 3 M'\;V(`P'NF<EKK$+U%3:B-*Q_[ZDE=2\).1^]YSDW,W7VW(%@*48C7#Y$0I" 4 M\7TA58X+KQ3*DY:E"E"+_,#/A>Z8;UZTR"`7ZEP3&3`Z\#8WK4EHM;I&XEL5 5 MGR[@RE'8GZ<A/I:O\'6MPT+N_86KQ"G,Y4XJJ0E=>'9'FF)_SG=Q--G5H1*7 6 ML-9<NXZGM-=]OO-X"6&7\2&^*JLC+UHKVGO-^DXV[NC*_JY"@G%`FN!*@^SD 7 M>&;"LDMF@A>0!FJV\;#91L/F\6I.U^VL9R<=>\O)YC!SM:BK9?)(4.O,E&$` 8 MDUW"@"1M4T:?,&2-0N12RR/7PF-.9WKW_KA[OSR`J%*#.&<DB=."$:,4^,7[ 9 K>OVY)K[-%5)AU>8SGW<@M7/[<])W`3,3L!V/'8`!F>$>O'__/`,D3`(````` 1 begin 644 bug_532_s.res.gz 2 M'XL("-L]J%(``V)U9U\U,S)?<RYR97,`G9)1:\(P%(7?^RL.86`Z:K36ZE3: 3 MA[$]#(8#W;,2U]H%:BIM1.G8?U_2NM3'L;PTY'[W'.ZY7;\_O2P!^#$&`YP_ 4 M4XE4\ETN9(8S+R6*HQ*%]%"EV9Z?<M4R'SQOD%Z6RE-%A>>[/6=]U1HQH]4V 5 M4F)4B+N`+0>LNX\97E\>052E6"YV9&$K80S]N!52*.HN'/-%'&-WRK9A,-I6 6 M3*9G5BFN;,<D[G2G-QX/#.9H'TID41YXWEBYG=>LZ_2'+5V:Z4I$&'JT]BZN 7 MEQPM[^NPS!%)RG,(#=6;L%]O@GY]?]&WRV;6L:.6O>9D<IC96M#6$G&@J%2B 8 MR]"`SB[R@2AN4O[M]!AC+D2%/,V$$@>N4L>W2N.;"<)V`K$'E84"M=Z((JL& 9 M<BP%T7XN\(7GU>IM18E)%T)BV:0TG[>P:[;W;>4G\9_D==+_DI_>3*(W9_X! 10 1LV4-^IJ[<WX`Z73[3K$"```` 10 11 ` 11 12 end -
Tst/Short/bug_532_s.tst
r3bc27a3 rdc2e7d5 11 11 ideal i = z^5-z^3-z*x^5-x^9; 12 12 genus(i); 13 dim( std(i) ); // =1 => call genus(i, 1) is legitimate13 dim( std(i) ); // =1 => call genus(i,...) is legitimate 14 14 15 if (not ( genus(i) == genus(i, 1) )) { ERROR(" bug in Normal::genus()"); } 15 if (not ( genus(i) == genus(i, "pri") )) { ERROR(" bug in Normal::genus()"); } 16 if (not ( genus(i) == genus(i, "nor") )) { ERROR(" bug in Normal::genus()"); } 16 17 17 18 tst_status(1); $ -
bug_532_s.stat
r3bc27a3 rdc2e7d5 1 1 >> tst_memory_0 :: 1386 345906:3170:3-1-7:ix86-Linux:mamawutz:4061042 1 >> tst_memory_1 :: 1386 345906:3170:3-1-7:ix86-Linux:mamawutz:24903683 1 >> tst_memory_2 :: 1386 345906:3170:3-1-7:ix86-Linux:mamawutz:25834564 1 >> tst_timer_1 :: 1386 345906:3170:3-1-7:ix86-Linux:mamawutz:391 1 >> tst_memory_0 :: 1386757595:3170:3-1-7:ix86-Linux:mamawutz:448676 2 1 >> tst_memory_1 :: 1386757595:3170:3-1-7:ix86-Linux:mamawutz:2531328 3 1 >> tst_memory_2 :: 1386757595:3170:3-1-7:ix86-Linux:mamawutz:2670592 4 1 >> tst_timer_1 :: 1386757595:3170:3-1-7:ix86-Linux:mamawutz:100
Note: See TracChangeset
for help on using the changeset viewer.