Changeset d2c1f8 in git
- Timestamp:
- Feb 1, 2022, 3:15:47 PM (16 months ago)
- Branches:
- (u'spielwiese', '828514cf6e480e4bafc26df99217bf2a1ed1ef45')
- Children:
- 305f3718988da09be4b95025aed6bc281e4b5e9e
- Parents:
- a6ae59204fea5adeb820cb3048d2cb60915467d7
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/integralbasis.lib
ra6ae592 rd2c1f8 2 2 /////////////////////////////////////////////////////////////////////////////// 3 3 /////////////////////////////////////////////////////////////////////////////// 4 version="version integralbasis.lib 4. 2.1.3 Dec_2021"; // $Id$4 version="version integralbasis.lib 4.3.0.1 Feb_2022 "; // $Id$ 5 5 category="Commutative Algebra"; 6 6 info=" … … 280 280 281 281 282 // We chec hif the only singularity is at the origin.282 // We check if the only singularity is at the origin. 283 283 //check0 = 0; 284 284 if(check0 == 1) 285 285 { 286 "Check at origin";286 dbprint(dbg,"Check at origin"); 287 287 int c0 = checkAt0(f, modular); 288 288 … … 515 515 ideal J = f, diff(f, var(1)), diff(f, var(2)); 516 516 517 if(dbg >= 4){ 517 if(dbg >= 4) 518 { 518 519 "The original singular locus is"; 519 520 J; … … 523 524 { 524 525 list out = trivialBasis(f); 525 "out";526 out;527 526 return(list(out[1], out[2], 0, 0)); 528 527 } … … 753 752 ideal elimJ = elim(jac, v); 754 753 poly dJ = elimJ[1]; 755 option( "redSB");754 option(redSB); 756 755 757 756 ideal PP = changeDenominatorFast(U, den, dJ, f); … … 793 792 { 794 793 int dbg = printlevel - voice + 4; 795 option( "redSB");794 option(redSB); 796 795 f = reduce(f, std(D)); 797 796 … … 2302 2301 if(deg(f2, (1,0,0)) > 0) 2303 2302 { 2304 "f2", f2; 2305 "Polynomial is not over the ground field"; 2306 ~; 2303 //"f2", f2; 2304 ERROR("Polynomial is not over the ground field"); 2307 2305 gfCheck = 0; 2308 2306 } … … 2654 2652 ch[pos] = ch[pos] + 1; 2655 2653 2656 // "md: ", md;2657 // "ch: ", ch;2658 // "cl: ", cl;2659 2654 while(ch[pos] > md[pos]) 2660 2655 { … … 2663 2658 ch[pos] = ch[pos] + 1; 2664 2659 } 2665 // "output: ", ch;2666 2660 return(ch); 2667 2661 } … … 2955 2949 int den = PE[1][2]; 2956 2950 2957 //"here";2958 //"h, g", h, g;2959 2960 //"b debug overflow <-";2961 2962 2951 if(size(h) > 1) 2963 2952 { 2964 2953 h = subst(h, var(1), var(1)^den); 2965 2954 poly hs = subst(h, var(2), g); 2966 //"b debug overflow <-";2967 2955 2968 2956 matrix MM; … … 2976 2964 int oo = deg(MM[1, ncols(MM)])*deg(h, intvec(0,1)) + deg(h, intvec(1,0))*den; 2977 2965 } 2978 //~;2979 2966 2980 2967 number oro = oo/number(den); 2981 2968 2982 //"h, oro", h, oro;2983 2969 kill h; 2984 2970 kill g; … … 3019 3005 // the ground field. 3020 3006 list gfCheckList; 3021 3022 //"nClasses: ", nClasses;3023 //"size(I2Lifted): ", size(I2Lifted);3024 //"I2Lifted: ", I2Lifted;3025 //"degExpand: ", degExpand;3026 3007 3027 3008 int wrongNumber = 0; // If some hensel block contains different classes … … 3092 3073 } else 3093 3074 { 3094 "RING EXPECTED! Please contact the developers."; 3095 ~; 3075 ERROR("RING EXPECTED! Please contact the developers."); 3096 3076 } 3097 3077 } … … 3103 3083 // The polynomial computed is not over the ground field. 3104 3084 // The classes computed are wrong, we need to recompute. 3105 "Polynomial not over the ground field.";3085 ERROR("Polynomial not over the ground field."); 3106 3086 gfCheck = 0; 3107 3087 } … … 3219 3199 { 3220 3200 k = chVec[i]; 3221 //"i, k", i, k;3222 3201 if(k > 0) 3223 3202 { … … 3376 3355 if(i == 1) 3377 3356 { 3378 //"Trivial case";3379 3357 return(ib[1][1]); 3380 3358 } … … 3400 3378 if(mExp > ib[i][2]) 3401 3379 { 3402 "WRONG EXPONENT. CHECK!!";3380 ERROR("WRONG EXPONENT. CHECK!!"); 3403 3381 ~; 3404 3382 setring BR; … … 3427 3405 if(deg(red, va) > 0) 3428 3406 { 3429 "Wrong degree! Check!"; 3430 ~; 3407 ERROR("Wrong degree! Check!"); 3431 3408 } 3432 3409 setring BR; … … 3472 3449 } else 3473 3450 { 3474 "Not implemented.";3451 ERROR("Not implemented."); 3475 3452 return(list()); 3476 3453 } … … 3911 3888 } else 3912 3889 { 3913 "ERROR";3914 ~;3915 3890 ERROR("f(y)*g(y) != h(0,y)"); 3916 3891 } … … 3931 3906 } else 3932 3907 { 3933 "ERROR";3934 ~;3935 3908 ERROR("f(y)*g(y) != h(0,y)"); 3936 3909 } … … 4117 4090 if(fLoc == 1) 4118 4091 { 4119 "Warning! No local component. This may indicate you are computing the basis at a value of X where there is no singularity.";4092 dbprint(dbg,"Warning! No local component. This may indicate you are computing the basis at a value of X where there is no singularity."); 4120 4093 } 4121 4094 comps[1] = fGlob[2]; // comp[1] is the component outside the origin. … … 4435 4408 { 4436 4409 // Singularities at infinity 4437 "Singularities at infinity";4410 dbprint(dbg,"Singularities at infinity"); 4438 4411 return(0); 4439 4412 } 4440 4413 } else 4441 4414 { 4442 "Check at origin: FALSE";4415 dbprint(dbg,"Check at origin: FALSE"); 4443 4416 return(0); 4444 4417 } … … 4671 4644 if(dbg >= 1) 4672 4645 { 4673 "Hensel lifting - order = ", maxExpDen;4646 dbprint(dbg,"Hensel lifting - order = ", maxExpDen); 4674 4647 } 4675 4648 // We compute the lifiting of the factor outside the origin up to the … … 4869 4842 { algname="@o";} 4870 4843 else { 4871 "** Sorry -- could not find a free name for the primitive element."; 4872 "** Try e.g. a ring without '@a' or '@b' as variable."; 4873 return(); 4844 ERROR("** Sorry -- could not find a free name for the primitive element."; 4845 "** Try e.g. a ring without '@a' or '@b' as variable."); 4874 4846 }} 4875 4847 } … … 4905 4877 //------------- Fall 2: Bisheriger Ring hatte ein Minimalpolynom: ----------- 4906 4878 algname=parstr(altring); // Name des algebraischen Elements 4907 if (npars(altring)>1) { "only one Parameter is allowed!!"; return(altring);}4879 if (npars(altring)>1) {ERROR("only one Parameter is allowed!");} 4908 4880 4909 4881 //---------------- Minimalpolynom in ein Polynom umwandeln: -----------------
Note: See TracChangeset
for help on using the changeset viewer.