Changeset 36b837d in git
- Timestamp:
- Jul 4, 2022, 8:21:10 PM (22 months ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 167a156d1776640d18beeb0a98abf41bf1c8081a
- Parents:
- a96a75d78ee43e8f2bef3aa36791cf8761509e21
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/integralbasis.lib
ra96a75 r36b837d 13 13 OVERVIEW: 14 14 Given an irreducible polynomial f in two variables defining a plane curve, 15 this library implements a n algorithm to computean integral basis of the15 this library implements algorithms for computing an integral basis of the 16 16 integral closure of the affine coordinate ring in the algebraic function 17 field via normalization.@* 18 The user can choose whether the algorithm will do the computation globally 19 or (this is the default) compute in the localization at each component of 20 the singular locus and put everything together. 17 field.@* 21 18 22 19 PROCEDURES: … … 43 40 must be monic as polynomial in the intVar-th variable.@* 44 41 Optional parameters in list choose (can be entered in any order):@* 45 Strategy:@* 46 - \"global\" -> computes the integral basis by global algorithms. This 47 forces \"normal\" option. @* 48 - \"local\" -> computes the integral basis by computing the 49 local contribution at each component of the singular 50 locus of R/<f>, and then putting everything together. (Default option.) 51 @*Algorithm:@* 52 - \"normal\" -> the integral bases are computed using the normalization 53 algorithm.@* 54 - \"hensel\" -> the integral bases are computed using a special 55 algorithm, based on Hensel lifting. (Default option.) 42 Algorithm:@* 43 - \"normal\" -> the integral basis is computed using the general 44 normalization algorithm.@* 45 - \"hensel\" -> the integral bases is computed using an algorithm 46 based on Puiseux expansions and Hensel lifting. (Default option.) 47 @*Options for normal algorithm:@* 48 - \"global\" -> computes the normalization of R / <f> and put the 49 results in integral basis shape.@* 50 - \"local\" -> computes the normalization at each component of 51 the singular locus of R/<f> and puts everything together. 52 (Default option for normal algorithm.) 53 @*Other options:@* 56 54 - \"modular\" -> uses modular algorithms for computing Groebner bases, 57 55 radicals and decompositions whenever possible. Can be used together … … 61 59 - \"nonModular\" -> do not uses modular algorithms. (Default option for 62 60 ground fields of positive charecteristic.)@* 63 - \"rotation\" -> apply a rotation when there are singularities64 with the same X-coordinate @*65 - \"noRotation\" -> does not apply a rotation when there are singularities66 with the same X-coordinate (Default option.)@*67 Other options:@*68 61 - \"atOrigin\" -> will compute the local contribution at the origin 69 62 to the integral basis, assuming that the curve has a singularity at … … 94 87 element (indicated by intVar), f gives the integral equation and n is 95 88 the degree of f as a polynomial in y.@* 96 THEORY: We compute the integral basis of the integral closure of k[x] in k(x,y) 97 by computing the normalization of the affine ring k[x,y]/<f> and 98 converting the k[x,y]-module generators into a k[x]-basis.@* 89 THEORY: We compute the integral basis of the integral closure of k[x] in k(x,y). 90 When option \"normal\" is selected, the normalization of the affine 91 ring k[x,y]/<f> is computed using procedure normal from normal.lib, 92 which implements a general algorithm for normalization of rings 93 by G. Greuel, S. Laplagne and F. Seelisch, and the k[x,y]-module 94 generators are converted into a k[x]-basis. 95 When option \"Hensel\" is selected, the algorithm by J. Boehm, W. Decker, 96 S. Laplagne and G. Pfister is used. @* 99 97 KEYWORDS: integral basis; normalization. 100 98 SEE ALSO: normal. … … 140 138 if ( typeof(#[i]) == "string" ) 141 139 { 140 if (#[i]=="normal"){ 141 algorithm = "normal"; 142 } 143 if (#[i]=="hensel"){ 144 algorithm = "hensel"; 145 } 142 146 if (#[i]=="local"){ 143 147 strategy = "local"; … … 152 156 modular = 0; 153 157 } 154 if (#[i]=="rotation"){ 155 useRotation = 1; 156 } 157 if (#[i]=="noRotation"){ 158 useRotation = 0; 159 } 160 if (#[i]=="normal"){ 161 algorithm = "normal"; 162 } 163 if (#[i]=="hensel"){ 164 algorithm = "hensel"; 165 } 158 // Not implemented 159 // if (#[i]=="rotation"){ 160 // useRotation = 1; 161 // } 162 // if (#[i]=="noRotation"){ 163 // useRotation = 0; 164 // } 166 165 if (#[i]=="atOrigin"){ 167 166 compType = "inputJ";
Note: See TracChangeset
for help on using the changeset viewer.