Changeset f62abb in git
- Timestamp:
- Dec 9, 2013, 3:24:21 PM (10 years ago)
- Branches:
- (u'spielwiese', '5b153614cbc72bfa198d75b1e9e33dab2645d9fe')
- Children:
- 1d2a8582b2872bbfda852c78ee9f52b00466ccc6
- Parents:
- 405407bdac5cfb8bd6b630f594181854f05956c3
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/grobcov.lib
r405407 rf62abb 68 68 PROCEDURES: 69 69 70 grobcov(F); Is the basic routine giving the canonical71 Groebner cover of the parametric ideal F.72 This routine accepts many options, that73 allow to obtain results even when the canonical74 computation does not finish in reasonable time.75 76 cgsdr(F); Is the procedure for obtaining a first disjoint,77 reduced Comprehensive Groebner System that78 is used in grobcov, that can also be used79 independently if only the CGS is required.80 It is a more efficient routine than buildtree81 (the own routine that is no more used). It uses82 now KSW algorithm.70 grobcov(F); Is the basic routine giving the canonical 71 Groebner cover of the parametric ideal F. 72 This routine accepts many options, that 73 allow to obtain results even when the canonical 74 computation does not finish in reasonable time. 75 76 cgsdr(F); Is the procedure for obtaining a first disjoint, 77 reduced Comprehensive Groebner System that 78 is used in grobcov, that can also be used 79 independently if only the CGS is required. 80 It is a more efficient routine than buildtree 81 (the own routine that is no more used). It uses 82 now KSW algorithm. 83 83 84 84 setglobalrings(); Generates the global rings @R, @P and @PR that are 85 respectively the rings Q[a][x], Q[a], Q[x,a].86 It is called inside each of the fundamental routines87 of the library: grobcov, cgsdr, locus, locusdg and killed before88 the output.89 So, if the user want to use some other internal routine,90 then setglobalrings() is to be called before, as most of them use91 these rings.92 93 pdivi(f,F); Performs a pseudodivision of a parametric polynomial94 by a parametric ideal.95 Can be used without calling presiouly setglobalrings(),85 respectively the rings Q[a][x], Q[a], Q[x,a]. 86 It is called inside each of the fundamental routines 87 of the library: grobcov, cgsdr, locus, locusdg and killed before 88 the output. 89 So, if the user want to use some other internal routine, 90 then setglobalrings() is to be called before, as most of them use 91 these rings. 92 93 pdivi(f,F); Performs a pseudodivision of a parametric polynomial 94 by a parametric ideal. 95 Can be used without calling presiouly setglobalrings(), 96 96 97 97 pnormalf(f,E,N); Reduces a parametric polynomial f over V(E) \ V(N) 98 E is the null ideal and N the non-null ideal99 over the parameters.100 Can be used without calling presiouly setglobalrings(),101 102 Prep(N,M); Computes the P-representation of V(N) \ V(M).103 Can be used without calling previously setglobalrings().98 E is the null ideal and N the non-null ideal 99 over the parameters. 100 Can be used without calling presiouly setglobalrings(), 101 102 Prep(N,M); Computes the P-representation of V(N) \ V(M). 103 Can be used without calling previously setglobalrings(). 104 104 105 105 extend(GC); When the grobcov of an ideal has been computed 106 with the default option ('ext',0) and the explicit107 option ('rep',2) (which is not the default), then108 one can call extend (GC) (and options) to obtain the109 full representation of the bases. With the default110 option ('ext',0) only the generic representation of111 the bases are computed, and one can obtain the full112 representation using extend.113 Can be used without calling presiouly setglobalrings(),114 115 locus(G); Special routine for determining the locus of points116 of objects. Given a parametric ideal J with117 parameters (a_1,..a_m) and variables (x_1,..,xn),118 representing the system determining119 the locus of points (a_1,..,a_m)) who verify certain120 properties, computing the grobcov G of121 J and applying to it locus, determines the different122 classes of locus components. They can be123 Normal, Special, Accumulation point, Degenerate.124 The output are the components given in P-canonical form125 of two constructible sets: Normal, and Non-Normal126 The Normal Set has Normal and Special components127 The Non-Normal set has Accumulation and Degenerate components.128 The description of the algorithm and definitions will be129 given in a forthcoming paper by Abanades, Botana, Montes, Recio:130 ''An Algebraic Taxonomy for Locus Computation in Dynamic Geometry''.131 Can be used without calling presiouly setglobalrings(),132 133 locusdg(G); Is a special routine for computing the locus in dinamical geometry.134 It detects automatically a possible point that is to be avoided by the mover,135 whose coordinates must be the last two coordinates in the definition of the ring.136 If such a point is detected, then it eliminates the segments of the grobcov137 depending on the point that is to be avoided.138 Then it calls locus.139 Can be used without calling presiouly setglobalrings(),140 141 locusto(L); Transforms the output of locus to a string that142 can be reed from different computational systems.143 Can be used without calling presiouly setglobalrings(),106 with the default option ('ext',0) and the explicit 107 option ('rep',2) (which is not the default), then 108 one can call extend (GC) (and options) to obtain the 109 full representation of the bases. With the default 110 option ('ext',0) only the generic representation of 111 the bases are computed, and one can obtain the full 112 representation using extend. 113 Can be used without calling presiouly setglobalrings(), 114 115 locus(G); Special routine for determining the locus of points 116 of objects. Given a parametric ideal J with 117 parameters (a_1,..a_m) and variables (x_1,..,xn), 118 representing the system determining 119 the locus of points (a_1,..,a_m)) who verify certain 120 properties, computing the grobcov G of 121 J and applying to it locus, determines the different 122 classes of locus components. They can be 123 Normal, Special, Accumulation point, Degenerate. 124 The output are the components given in P-canonical form 125 of two constructible sets: Normal, and Non-Normal 126 The Normal Set has Normal and Special components 127 The Non-Normal set has Accumulation and Degenerate components. 128 The description of the algorithm and definitions will be 129 given in a forthcoming paper by Abanades, Botana, Montes, Recio: 130 ''An Algebraic Taxonomy for Locus Computation in Dynamic Geometry''. 131 Can be used without calling presiouly setglobalrings(), 132 133 locusdg(G); Is a special routine for computing the locus in dinamical geometry. 134 It detects automatically a possible point that is to be avoided by the mover, 135 whose coordinates must be the last two coordinates in the definition of the ring. 136 If such a point is detected, then it eliminates the segments of the grobcov 137 depending on the point that is to be avoided. 138 Then it calls locus. 139 Can be used without calling presiouly setglobalrings(), 140 141 locusto(L); Transforms the output of locus to a string that 142 can be reed from different computational systems. 143 Can be used without calling presiouly setglobalrings(), 144 144 145 145 addcons(L); Given a disjoint set of locally closed subsets in P-representation, 146 it returns the canonical P-representation of the constructible147 setformed by the union of them.148 Can be used without calling presiouly setglobalrings(),146 it returns the canonical P-representation of the constructible set 147 formed by the union of them. 148 Can be used without calling presiouly setglobalrings(), 149 149 150 150 SEE ALSO: compregb_lib … … 3969 3969 //kill notadded; list notadded; 3970 3970 } 3971 kill @Q2;3971 if(defined(@Q2)){kill @Q2;} 3972 3972 if(te==0){kill @P; kill @R; kill @RP;} 3973 3973 //"T_LL_sortida addcons="; LL; "Fi sortida"; … … 4181 4181 proc locus0dg(list GG, list #) 4182 4182 { 4183 int t1=1; int t2=1; 4183 int t1=1; int t2=1; int ojo; 4184 4184 def R=basering; 4185 4185 int moverdim=nvars(R); … … 4323 4323 kill LN; list LN; 4324 4324 LN=addcons(LNN); 4325 if(size(LN)==0){ojo=1;} 4325 4326 setring(R); 4326 def L=imap(@P,LN); 4327 for(i=1;i<=size(L);i++){if(size(L[i][2])==0){L[i][2]=ideal(1);}} 4327 if(ojo==1){list L;} 4328 else 4329 { 4330 def L=imap(@P,LN); 4331 for(i=1;i<=size(L);i++){if(size(L[i][2])==0){L[i][2]=ideal(1);}} 4332 } 4328 4333 kill @R; kill @RP; kill @P; 4329 4334 list LL; … … 4759 4764 { 4760 4765 def RR=basering; 4761 int i; int j; int k; int short0=short; 4766 int i; int j; int k; int short0=short; int ojo; 4762 4767 int te=0; 4763 4768 if(defined(@P)){te=1;} … … 4765 4770 setring @P; 4766 4771 short=0; 4767 def L=imap(RR,LL); 4772 if(size(LL)==0){ojo=1; list L;} 4773 else 4774 { 4775 def L=imap(RR,LL); 4776 } 4768 4777 string s="["; string sf="]"; string st=s+sf; 4769 4778 if(size(L)==0){return(st);}
Note: See TracChangeset
for help on using the changeset viewer.