Changeset 4ac997 in git for Singular/LIB/equising.lib
- Timestamp:
- Dec 22, 2000, 2:43:10 PM (23 years ago)
- Branches:
- (u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
- Children:
- 558eb2e4904ef3d1c00dc5ccf1cdf5d4d5e4532a
- Parents:
- 5a1141ebfb120e63485f9ef6b7dd5dc003ac29bf
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/equising.lib
r5a1141 r4ac997 1 // $Id: equising.lib,v 1.3 2000-12-19 15:05:20 anne Exp $ 1 version="$Id: equising.lib,v 1.4 2000-12-22 13:43:10 greuel Exp $"; 2 2 category="Singularities"; 3 3 info=" 4 LIBRARY: Equising.lib PROCEDURES FOR EQUISINGULARITY STRATA 5 4 LIBRARY: equising.lib EQUISINGULARITY STRATUM OF A FAMILY OF PLANE CURVES 6 5 AUTHOR: Andrea Mindnich, e-mail:mindnich@mathematik.uni-kl.de 6 7 7 PROCEDURES: 8 8 esStratum computes the equisingularity stratum of a deformation 9 isEquising tests, ifa given deformation is equisingular9 isEquising tests, whether a given deformation is equisingular 10 10 " 11 11 … … 14 14 LIB "hnoether.lib"; 15 15 16 17 /////////////////////////////////////////////////////////////////////////////// 18 /////////////////////////////////////////////////////////////////////////////// 19 20 16 /////////////////////////////////////////////////////////////////////////////// 21 17 // COMPUTES a weight vector. x and y get weight 1 and all other 22 18 // variables get weight 0. … … 29 25 return (iv); 30 26 } 31 32 33 /////////////////////////////////////////////////////////////////////////////// 34 35 27 /////////////////////////////////////////////////////////////////////////////// 36 28 // exchanges the variables x and y in the polynomial p_f 37 29 static proc swapXY(poly f) … … 45 37 return (f); 46 38 } 47 48 49 /////////////////////////////////////////////////////////////////////////////// 50 51 39 /////////////////////////////////////////////////////////////////////////////// 52 40 // ASSUME: p_mon is a monomial 53 41 // and p_g is the product of the variables in p_mon. … … 70 58 return (p_c); 71 59 } 72 73 74 /////////////////////////////////////////////////////////////////////////////// 75 76 60 /////////////////////////////////////////////////////////////////////////////// 77 61 // in p_F the variable p_vari is substituted by the polynomial p_g. 78 62 static proc eSubst(poly p_F, poly p_vari, poly p_g) … … 91 75 return (p_F); 92 76 } 93 94 95 /////////////////////////////////////////////////////////////////////////////// 96 97 77 /////////////////////////////////////////////////////////////////////////////// 98 78 // All ring variables of p_F which occur in (the set of generators of) the 99 79 // ideal Id, are substituted by 0 … … 131 111 return(error); 132 112 } 133 134 /////////////////////////////////////////////////////////////////////////////// 135 136 113 /////////////////////////////////////////////////////////////////////////////// 137 114 static proc getInput (list #) 138 115 { … … 156 133 return(maxStep); 157 134 } 158 159 160 135 ////////////////////////////////////////////////////////////////////////////// 161 162 163 136 // RETURNS: 0, if the ideal cond only depends on the deformation parameters 164 137 // 1, otherwise. … … 186 159 187 160 /////////////////////////////////////////////////////////////////////////////// 188 189 190 161 // COMPUTES string(minpoly) and substitutes the parameter by newParName 191 162 static proc makeMinPolyString (string newParName) … … 218 189 219 190 /////////////////////////////////////////////////////////////////////////////// 220 221 222 191 // Defines a new ring without deformation-parameters. 223 192 static proc createHNERing() … … 234 203 keepring(HNERing); 235 204 } 236 237 238 /////////////////////////////////////////////////////////////////////////////// 239 240 205 /////////////////////////////////////////////////////////////////////////////// 241 206 // RETURNS: 1, if p_f = 0 or char(basering) divides the order of p_f 242 207 // or p_f is not squarefree. … … 271 236 return(0); 272 237 } 273 274 275 /////////////////////////////////////////////////////////////////////////////// 276 277 238 /////////////////////////////////////////////////////////////////////////////// 278 239 // COMPUTES the multiplicity sequence of p_f 279 240 static proc calcMultSequence (poly p_f) … … 321 282 return(multSeq, xNotTransversal, fIrreducible); 322 283 } 323 324 325 /////////////////////////////////////////////////////////////////////////////// 326 327 284 /////////////////////////////////////////////////////////////////////////////// 328 285 // ASSUME: The basering is no qring and has at least 3 variables 329 286 // DEFINES: A new basering, "myRing", … … 406 363 } 407 364 408 409 365 /////////////////////////////////////////////////////////////////////////////// 410 366 /////////// procedures to compute the equisingularity stratum ///////////////// 411 367 /////////////////////////////////////////////////////////////////////////////// 412 413 414 368 // DEFINES a new basering, myRing, which has one variable 415 369 // more than the old ring. … … 463 417 keepring(myRing); 464 418 } 465 466 467 /////////////////////////////////////////////////////////////////////////////// 468 469 419 /////////////////////////////////////////////////////////////////////////////// 470 420 // COMPUTES an ideal equimultCond, such that F_(n-1) mod equimultCond =0, 471 421 // where F_(n-1) is the (nNew-1)-jet of p_F with respect to x,y. … … 494 444 return(equimultCond, p_F); 495 445 } 496 497 498 /////////////////////////////////////////////////////////////////////////////// 499 500 446 /////////////////////////////////////////////////////////////////////////////// 501 447 // COMPUTES smallest integer >= nNew/nOld -1 502 448 static proc calcNZeroSteps (int nOld,int nNew) … … 516 462 return(nZeroSteps); 517 463 } 518 519 520 /////////////////////////////////////////////////////////////////////////////// 521 522 464 /////////////////////////////////////////////////////////////////////////////// 523 465 // ASSUME: ord_(X,Y)(F)=nNew 524 466 // COMPUTES an ideal I such that (p_F mod I)_nNew = p_c*y^nNew. … … 550 492 return(id_help, p_F, p_c); 551 493 } 552 553 554 /////////////////////////////////////////////////////////////////////////////// 555 556 494 /////////////////////////////////////////////////////////////////////////////// 557 495 // ASSUME: ord_(X,Y)(F)=nNew 558 496 // COMPUTES an ideal I such that p_Fn mod I = p_c*(y-p_a*x)^nNew, … … 632 570 return(id_help, HCond, p_F, p_c, p_a); 633 571 } 634 635 636 /////////////////////////////////////////////////////////////////////////////// 637 638 572 /////////////////////////////////////////////////////////////////////////////// 639 573 // eliminates the variables H(1),..,H(nHelpV) from the ideal ES + HCond 640 574 static proc helpVarElim(ideal ES, ideal HCond, int nHelpV) … … 646 580 return(ES); 647 581 } 648 649 650 /////////////////////////////////////////////////////////////////////////////// 651 652 582 /////////////////////////////////////////////////////////////////////////////// 653 583 // ASSUME: ord(F)=nNew and p_c(y-p_a*x)^n is the nNew-jet of F with respect 654 584 // to X,Y … … 674 604 return (p_F); 675 605 } 676 677 678 /////////////////////////////////////////////////////////////////////////////// 679 680 606 /////////////////////////////////////////////////////////////////////////////// 681 607 // ASSUME: p_F in K[t(1)..t(s),x,y] 682 608 // COMPUTES the minimal ideal ES, such that the deformation p_F mod ES is … … 822 748 } 823 749 824 825 // /////////////////////////////////////////////////////////////////////////////826 750 /////////////////////////////////////////////////////////////////////////////// 751 // main procedure 752 /////////////////////////////////////////////////////////////////////////////// 827 753 828 754 proc esStratum (poly p_F, list #) … … 933 859 934 860 /////////////////////////////////////////////////////////////////////////////// 935 //////////////////// procedures for equisingularity test/////////////////////// 936 /////////////////////////////////////////////////////////////////////////////// 937 938 861 // procedures for equisingularity test 862 /////////////////////////////////////////////////////////////////////////////// 939 863 940 864 // DEFINES a new basering, myRing, which has one variable … … 983 907 keepring(myRing); 984 908 } 985 986 987 /////////////////////////////////////////////////////////////////////////////// 988 989 909 /////////////////////////////////////////////////////////////////////////////// 990 910 // tests, if ord p_F = nNew. 991 911 static proc equimultTest (poly p_F, int nHelpV, int nNew, ideal HCond) … … 1018 938 return(1, p_F); 1019 939 } 1020 1021 1022 /////////////////////////////////////////////////////////////////////////////// 1023 1024 940 /////////////////////////////////////////////////////////////////////////////// 1025 941 // ASSUME: ord(p_F)=nNew 1026 942 // tests, if p_F = p_c*y^nNew for some p_c. … … 1055 971 return(1, p_c); 1056 972 } 1057 1058 1059 /////////////////////////////////////////////////////////////////////////////// 1060 1061 973 /////////////////////////////////////////////////////////////////////////////// 1062 974 // ASSUME: ord(p_F)=nNew 1063 975 // tests, if p_F = p_c*(y - p_a*x)^nNew for some p_a, p_c. … … 1106 1018 return(1, p_F, p_c, p_a, HCond); 1107 1019 } 1108 1109 1110 1020 ////////////////////////////////////////////////////////////////////////////// 1111 1112 1113 1021 // eliminates the variables H(1),..,H(nHelpV) from the ideal ES + HCond 1114 1022 static proc T_helpVarElim(ideal ES, ideal HCond, int nHelpV) … … 1162 1070 } 1163 1071 /////////////////////////////////////////////////////////////////////////////// 1164 1165 1166 1072 // ASSUME: F in K[t(1)..t(s),x,y], 1167 1073 // the ringordering is ds … … 1251 1157 return(1); 1252 1158 } 1253 1254 /////////////////////////////////////////////////////////////////////////////// 1255 1159 /////////////////////////////////////////////////////////////////////////////// 1256 1160 1257 1161 proc isEquising (poly p_F, list #) … … 1349 1253 isEquising(F,2); 1350 1254 } 1351 1255 /////////////////////////////////////////////////////////////////////////////// 1256 /* 1257 Weiter Beispiele aus Dipl. von A. Mindnich einfuegen 1258 */
Note: See TracChangeset
for help on using the changeset viewer.