Changeset 90de12 in git


Ignore:
Timestamp:
Oct 7, 2016, 6:35:09 PM (8 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
Children:
7c23b8eef565a6d62140bf5996d37e6be1c37d6d
Parents:
107bdc5cb617a8af58b0d4c34b1fd7e42f7a2fa4
Message:
doc: grobcov.lib
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/grobcov.lib

    r107bdc5 r90de12  
    14571457// Assumed to be called in the ring @R or the ring @P or a ring ring Q[a]
    14581458proc Crep(ideal N, ideal M)
    1459  "USAGE:  Crep(N,M);
     1459"USAGE:  Crep(N,M);
    14601460          ideal N (null ideal) (not necessarily radical nor maximal)
    14611461          ideal M (hole ideal) (not necessarily containing N)
    1462  RETURN:  The canonical C-representation of the locally closed set.
     1462RETURN:  The canonical C-representation of the locally closed set.
    14631463           [ P,Q ], a pair of radical ideals with P included in Q,
    14641464           representing the set V(P) \ V(Q) = V(N) \ V(M)
    1465  NOTE:   Operates in a ring R=Q[a] (a=parameters)
     1465NOTE:   Operates in a ring R=Q[a] (a=parameters)
    14661466           If the user want to call the routine Crep on a parametric
    14671467           ideal Q[a][x] for locally closed sets on Q[a], setglobalrings()
    14681468           must be called previously.
    14691469
    1470  KEYWORDS: locally closed set; canoncial form
    1471  EXAMPLE: Crep; shows an example"
     1470KEYWORDS: locally closed set; canoncial form
     1471EXAMPLE: example Crep; shows an example"
    14721472{
    14731473  int te;
     
    15491549// Assumed to be called in the ring @R or the ring @P or a ring ring Q[a]
    15501550proc Prep(ideal N, ideal M)
    1551  "USAGE:  Prep(N,M);
     1551"USAGE:  Prep(N,M);
    15521552          ideal N (null ideal) (not necessarily radical nor maximal)
    15531553          ideal M (hole ideal) (not necessarily containing N)
    1554  RETURN: The canonical P-representation of the locally closed set V(N) \ V(M)
     1554RETURN: The canonical P-representation of the locally closed set V(N) \ V(M)
    15551555           Output: [ Comp_1, .. , Comp_s ] where
    15561556              Comp_i=[p_i,[p_i1,..,p_is_i]]
    1557  NOTE:   To be called from the ring @R or @P or a ring Q[a]
     1557NOTE:   To be called from the ring @R or @P or a ring Q[a]
    15581558           If the user want to call the routine Prep on a parametric
    15591559           ideal Q[a][x] for locally closed sets on Q[a], setglobalrings()
    15601560           must be called previously.
    1561  KEYWORDS: Locally closed set; Canoncial form
    1562  EXAMPLE: Prep; shows an example"
     1561KEYWORDS: Locally closed set; Canoncial form
     1562EXAMPLE: example Prep; shows an example"
    15631563{
    15641564  int te;
     
    16421642          Comp_i=[p_i,[p_i1,..,p_is_i] ], is
    16431643          the P-representation of a locally closed set V(N) \ V(M)
    1644  RETURN:  The canonical C-representation of the locally closed set
     1644RETURN:  The canonical C-representation of the locally closed set
    16451645          [ P,Q ], a pair of radical ideals with P included in Q,
    16461646          representing the set V(P) \ V(Q)
    1647  NOTE: To be called from the ring @R or @P or a ring Q[a]
    1648  KEYWORDS: locally closed set; canoncial form
    1649  EXAMPLE: PtoCrep; shows an example"
     1647NOTE: To be called from the ring @R or @P or a ring Q[a]
     1648KEYWORDS: locally closed set; canoncial form
     1649EXAMPLE: example PtoCrep; shows an example"
    16501650{
    16511651  int te;
     
    17111711//      can compute the homogenization before  (('can',0) or ( 'can',1))
    17121712//      and dehomogenize the result.
     1713
    17131714proc cgsdr(ideal F, list #)
    17141715"USAGE: cgsdr(F,options]);
    1715           F: ideal in Q[a][x] (a=parameters, x=variables) to be discussed.
    1716           To compute a disjoint, reduced Comprehensive Groebner System (CGS).
    1717           cgsdr is the starting point of the fundamental routine grobcov.
    1718           Inside grobcov it is used with options 'can' set to 0,1 and
    1719           not with options ('can',2).
    1720           It is to be used if only a disjoint reduced CGS is required.
    1721 
    1722           Options: To modify the default options, pairs of arguments
    1723           -option name, value- of valid options must be added to the call.
    1724 
    1725 OPTIONS:
    1726             \"can\",0-1-2: The default value is \"can\",2. In this case no
    1727                 homogenization is done. With option (\"can\",0) the given
    1728                 basis is homogenized, and with option (\"can\",1) the
    1729                 whole given ideal is homogenized before computing the
    1730                 cgs and dehomogenized after.
    1731                 with option (\"can\",0) the homogenized basis is used
    1732                 with option (\"can\",1) the homogenized ideal is used
    1733                 with option (\"can\",2) the given basis is used
    1734             \"null\",ideal E: The default is (\"null\",ideal(0)).
    1735             \"nonnull\",ideal N: The default (\"nonnull\",ideal(1)).
    1736                 When options \"null\" and/or \"nonnull\" are given, then
    1737                 the parameter space is restricted to V(E) \ V(N).
    1738             \"comment\",0-1: The default is (\"comment\",0). Setting (\"comment\",1)
    1739                 will provide information about the development of the
    1740                 computation.
    1741             \"out\",0-1: 1 (default) the output segments are given as
    1742                 as difference of varieties.
    1743                 0: the output segments are given in P-representation
    1744                 and the segments grouped by lpp
    1745                 With options (\"can\",0) and (\"can\",1) the option (\"out\",1)
    1746                 is set to (\"out\",0) because it is not compatible.
    1747           One can give none or whatever of these options.
    1748           With the default options (\"can\",2,\"out\",1), only the
    1749           Kapur-Sun-Wang algorithm is computed. This is very efficient
    1750           but is only the starting point for the computation of grobcov.
    1751           When grobcov is computed, the call to cgsdr inside uses
    1752           specific options that are more expensive ("can",0-1,"out",0).
     1716   F: ideal in Q[a][x] (a=parameters, x=variables) to be discussed.
     1717   To compute a disjoint, reduced Comprehensive Groebner System (CGS).
     1718   cgsdr is the starting point of the fundamental routine grobcov.
     1719   Inside grobcov it is used with options \"can\" set to 0,1 and
     1720   not with options (\"can\",2).
     1721   It is to be used if only a disjoint reduced CGS is required.
     1722OPTIONS: To modify the default options, pairs of arguments
     1723   -option name, value- of valid options must be added to the call.
     1724   Options:
     1725   \"can\",0-1-2: The default value is \"can\",2. In this case no
     1726   homogenization is done. With option (\"can\",0) the given
     1727   basis is homogenized, and with option (\"can\",1) the
     1728   whole given ideal is homogenized before computing the
     1729   cgs and dehomogenized after.
     1730   with option (\"can\",0) the homogenized basis is used
     1731   with option (\"can\",1) the homogenized ideal is used
     1732   with option (\"can\",2) the given basis is used
     1733   \"null\",ideal E: The default is (\"null\",ideal(0)).
     1734   \"nonnull\",ideal N: The default (\"nonnull\",ideal(1)).
     1735   When options \"null\" and/or \"nonnull\" are given, then
     1736   the parameter space is restricted to V(E) \ V(N).
     1737   \"comment\",0-1: The default is (\"comment\",0). Setting (\"comment\",1)
     1738   will provide information about the development of the
     1739   computation.
     1740   \"out\",0-1: 1 (default) the output segments are given as
     1741   as difference of varieties.
     1742   0: the output segments are given in P-representation
     1743   and the segments grouped by lpp
     1744   With options (\"can\",0) and (\"can\",1) the option (\"out\",1)
     1745   is set to (\"out\",0) because it is not compatible.
     1746   One can give none or whatever of these options.
     1747   With the default options (\"can\",2,\"out\",1), only the
     1748   Kapur-Sun-Wang algorithm is computed. This is very efficient
     1749   but is only the starting point for the computation of grobcov.
     1750   When grobcov is computed, the call to cgsdr inside uses
     1751   specific options that are more expensive (\"can\",0-1,\"out\",0).
    17531752RETURN: Returns a list T describing a reduced and disjoint
    17541753          Comprehensive Groebner System (CGS),
     
    17651764          The bases are the reduced Groebner bases (after normalization)
    17661765          for each point of the corresponding segment.
    1767 
    17681766          The third element of each lpp segment is the lpp of the
    17691767          used ideal in the CGS as a string:
     
    17711769            with option (\"can\",1) the homogenized ideal is used
    17721770            with option (\"can\",2) the given basis is used
    1773 
    17741771          With option (\"out\",1) (default)
    17751772          only KSW is applied and segments are given as
     
    17831780          segment = V(E) \ V(N)
    17841781          B is the reduced Groebner basis
    1785 
    17861782NOTE:  The basering R, must be of the form Q[a][x], (a=parameters,
    17871783          x=variables), and should be defined previously, and the ideal
    17881784          defined on R.
    17891785KEYWORDS: CGS; disjoint; reduced; Comprehensive Groebner System
    1790 EXAMPLE: cgsdr; shows an example"
     1786EXAMPLE: example cgsdr; shows an example"
    17911787{
    17921788  int te;
     
    24862482          segments of the parameter space, and the B_i are the reduced
    24872483          Groebner bases of the ideal on every point of S_i.
    2488 
    24892484          The ideal F must be defined on a parametric ring Q[a][x].
    24902485          (a=parameters, x=variables)
    24912486          Options: To modify the default options, pair of arguments
    24922487          -option name, value- of valid options must be added to the call.
    2493 
    24942488OPTIONS:
    24952489            \"null\",ideal E: The default is (\"null\",ideal(0)).
     
    27312725// Option ("comment",1) shows the time.
    27322726// Can be called from the top
    2733 proc extend(list GC, list #);
     2727proc extend(list GC, list #)
    27342728"USAGE: extend(GC[,options]);
    2735           The default option of grobcov provides
    2736           the bases in generic representation (the I-regular functions
    2737           of the bases are given by a single polynomial. It can specialize
    2738           to zero for some points of the segments, but in general, it
    2739           is sufficient for many pouposes. Nevertheless the I-regular
    2740           functions allow a full representation given by a set of
    2741           polynomials specializing to the value of the function (after normalization)
    2742           or to zero, but at least one of the polynomials specializes to non-zero.
    2743           The full representation can be obtained by computing the
    2744           grobcov with option \"ext\",1. The default option is \"ext\",0.
    2745           With option \"ext\",1 the computation can be much more
    2746           time consuming, even if the result can be simpler.
    2747           Alternatively, one can compute the full representation of the
    2748           bases after computing grobcov with the defaoult option \"ext\",0
    2749           and the option \"rep\",2, that outputs both the Prep and the Crep
    2750           of the segments and then call \"extend\" to the output.
    2751 
     2729   The default option of grobcov provides
     2730   the bases in generic representation (the I-regular functions
     2731   of the bases are given by a single polynomial. It can specialize
     2732   to zero for some points of the segments, but in general, it
     2733   is sufficient for many pouposes. Nevertheless the I-regular
     2734   functions allow a full representation given by a set of
     2735   polynomials specializing to the value of the function (after normalization)
     2736   or to zero, but at least one of the polynomials specializes to non-zero.
     2737   The full representation can be obtained by computing the
     2738   grobcov with option \"ext\",1. The default option is \"ext\",0.
     2739   With option \"ext\",1 the computation can be much more
     2740   time consuming, even if the result can be simpler.
     2741   Alternatively, one can compute the full representation of the
     2742   bases after computing grobcov with the defaoult option \"ext\",0
     2743   and the option \"rep\",2, that outputs both the Prep and the Crep
     2744   of the segments and then call \"extend\" to the output.
    27522745RETURN: When calling extend(grobcov(S,\"rep\",2)) the result is of the form
    2753               (
    2754                  (lpp_1,basis_1,segment_1,lpph_1),
    2755                   ...
    2756                  (lpp_s,basis_s,segment_s,lpph_s)
    2757               )
    2758           where each function of the basis can be given by an ideal
    2759           of representants.
    2760 
     2746   (
     2747     (lpp_1,basis_1,segment_1,lpph_1),
     2748     ...
     2749     (lpp_s,basis_s,segment_s,lpph_s)
     2750   )
     2751   where each function of the basis can be given by an ideal
     2752   of representants.
    27612753NOTE: The basering R, must be of the form Q[a][x], (a=parameters,
    2762           x=variables), and should be defined previously. The ideal must
    2763           be defined on R.
    2764 KEYWORDS: Groebner cover; parametric ideal; canonical, discussion of
    2765           parametric ideal; full representation
    2766 EXAMPLE:  extend; shows an example"
     2754   x=variables), and should be defined previously. The ideal must
     2755   be defined on R.
     2756KEYWORDS: Groebner cover; parametric ideal; canonical; discussion of parametric ideal; full representation
     2757EXAMPLE: example extend; shows an example"
    27672758{
    27682759  list L=#;
     
    47594750//               If all levels of a class of locus are 1, then the set is locally closed. Otherwise the level
    47604751//               gives the depth of the component of the constructible set.
     4752
    47614753proc locus(list GG, list #)
    47624754"USAGE: locus(G[,options]);
    4763         Calling sequence:
    4764               locus(grobcov(S));
    4765         The input must be the grobcov  of a parametrical ideal in Q[a][x],
    4766         (a=parameters, x=variables). In practice a must be the tracer coordinates
    4767         and x the mover coordinates and remaining auxiliary variables.
    4768         For a parametric locus computation 'a' can contain some extra parameters.
    4769         Special routine for determining the locus of points
    4770         of  geometrical constructions. Given a parametric ideal J
    4771         representing the system determining the locus of points (a)
    4772         who verify certain properties, the call to locus on the output of grobcov(J)
    4773         determines the different classes of locus components, following
    4774         the taxonomy defined in
    4775         Abanades, Botana, Montes, Recio:
    4776         \"An Algebraic Taxonomy for Locus Computation in Dynamic Geometry\".
    4777         Computer-Aided Design 56 (2014) 22-33.
    4778         The components can be Normal, Special, Accumulation or Degenerate.
     4755   Calling sequence:
     4756     locus(grobcov(S));
     4757   The input must be the grobcov  of a parametrical ideal in Q[a][x],
     4758   (a=parameters, x=variables). In practice a must be the tracer coordinates
     4759   and x the mover coordinates and remaining auxiliary variables.
     4760   For a parametric locus computation \"a\" can contain some extra parameters.
     4761   Special routine for determining the locus of points
     4762   of  geometrical constructions. Given a parametric ideal J
     4763   representing the system determining the locus of points (a)
     4764   who verify certain properties, the call to locus on the output of grobcov(J)
     4765   determines the different classes of locus components, following
     4766   the taxonomy defined in
     4767   Abanades, Botana, Montes, Recio:
     4768   \"An Algebraic Taxonomy for Locus Computation in Dynamic Geometry\".
     4769   Computer-Aided Design 56 (2014) 22-33.
     4770   The components can be Normal, Special, Accumulation or Degenerate.
    47794771OPTIONS: The algorithm allows the following options as pair of arguments:
    4780          \"vmov\", ideal(mover variables)  : by default vmov are the last n variables,
    4781          where n is the number of parameters of the ring (tracer variables plus extra
    4782          parameters). Thus, if the mover coordinates are not indicated, locus
    4783          algorithm will assume that they are the last n ring variables.
    4784          When locus is called internallt by envelop, by default, the mover variables
    4785          are assumed to be all the ring variables.
    4786          \"version\", v   :  There are two versions of the algorithm. (\"version\",1) is
    4787          a full algorithm that always distinguishes correctly between 'Normal'
    4788          and 'Special' components, whereas \("version\",0) can declare a component
    4789          to be 'Normal' being in fact 'Special', but it is more effective. By default,
    4790          (version,1) is used when the number of variables is less than 4 and 0 if not.
    4791          The user can force to use one or other version, but it is not recommended.
    4792          \"comments\", c: by default it is 0, but it can be set to 1.
    4793          Usually locus problems have mover coordinates, variables and tracer coordinates.
    4794          Example of option call:
    4795          > locus(S,\"version\",1,\"vmov\",ideal(x1,y1))
     4772   \"vmov\", ideal(mover variables)  : by default vmov are the last n variables,
     4773   where n is the number of parameters of the ring (tracer variables plus extra
     4774   parameters). Thus, if the mover coordinates are not indicated, locus
     4775   algorithm will assume that they are the last n ring variables.
     4776   When locus is called internallt by envelop, by default, the mover variables
     4777   are assumed to be all the ring variables.
     4778   \"version\", v   :  There are two versions of the algorithm. (\"version\",1) is
     4779   a full algorithm that always distinguishes correctly between NORMAL
     4780   and SPECIAL components, whereas (\"version\",0) can declare a component
     4781   to be NORMAL being in fact SPECIAL, but it is more effective. By default,
     4782   (version,1) is used when the number of variables is less than 4 and 0 if not.
     4783   The user can force to use one or other version, but it is not recommended.
     4784   \"comments\", c: by default it is 0, but it can be set to 1.
     4785   Usually locus problems have mover coordinates, variables and tracer coordinates.
     4786   Example of option call:
     4787     locus(S,\"version\",1,\"vmov\",ideal(x1,y1))
    47964788RETURN:  The output is a list of the components (C_1, .. , C_n ) of the locus.
    4797           The locus is divided into two class of subsets: the normal and the non-normal
    4798           locus.
    4799             The Normal locus has two kind of components: Normal and Special.
    4800             The Non-normal locus has two kind of components: Accumulation and Degenerate.
    4801          Each component is given by
    4802               Ci=((pi,(pi1,..pis_i),type_i,level_i)
    4803          where
    4804            the first element is the canonical P-representation of the subset.
    4805            The type can be : \"Normal\", \"Special\", \"Accumulation\", \"Degenerate\".
    4806          Normal component:
    4807            - the component has non-zero antiimage
    4808            - each point in the component has 0-dimensional antiimage.
    4809          Special component:
    4810            - Non-zero dimensional component whose antiimage is 0-dimensional.
    4811            The Special components return more information, namely the antiimage of
    4812            the component, that is 0-dimensional for these kind of components.
    4813          Accumulation points:
    4814            - Zero-dimensional  component whose anti-image is non-zero-dimensional.
    4815          Degenerate components:
    4816            - Non-zero-dimensional component
    4817            - each point in the component has non-zero-dimensional anti-image.
    4818         The level is the depth of the segment of the constructible locus subset
    4819         (normal and non-normal subsets).
    4820         If all levels of a locus are 1, then both subsets are locally closed.
     4789   The locus is divided into two class of subsets: the normal and the non-normal
     4790   locus.
     4791   The Normal locus has two kind of components: Normal and Special.
     4792   The Non-normal locus has two kind of components: Accumulation and Degenerate.
     4793   Each component is given by
     4794     Ci=((pi,(pi1,..pis_i),type_i,level_i)
     4795   where the first element is the canonical P-representation of the subset.
     4796   The type can be : \"Normal\", \"Special\", \"Accumulation\", \"Degenerate\".
     4797   Normal component:
     4798   - the component has non-zero antiimage
     4799   - each point in the component has 0-dimensional antiimage.
     4800   Special component:
     4801   - Non-zero dimensional component whose antiimage is 0-dimensional.
     4802   The Special components return more information, namely the antiimage of
     4803   the component, that is 0-dimensional for these kind of components.
     4804   Accumulation points:
     4805   - Zero-dimensional  component whose anti-image is non-zero-dimensional.
     4806   Degenerate components:
     4807   - Non-zero-dimensional component
     4808   - each point in the component has non-zero-dimensional anti-image.
     4809   The level is the depth of the segment of the constructible locus subset
     4810   (normal and non-normal subsets).
     4811   If all levels of a locus are 1, then both subsets are locally closed.
    48214812NOTE: The input must be the grobcov of the locus system in generic
    4822         representation ('ext',0), which is the default.
     4813   representation (\"ext\",0), which is the default.
    48234814KEYWORDS: geometrical locus; locus; loci.
    4824 EXAMPLE: locus; shows an example"
     4815EXAMPLE: example locus; shows an example"
    48254816{
    48264817  int tes=0; int i;
     
    48854876    {
    48864877      " ";string("Warning! Problem with more than one mover.");
    4887       string("Try option 'vmov',ideal(of mover variables) to avoid some point of the mover");
     4878      string("Try option \"vmov\",ideal(of mover variables) to avoid some point of the mover");
    48884879      " ";"Elements of the basis of the generic segment in mover variables=";  N;" ";
    48894880      list L; return(L);
     
    49204911//               If all levels of a class of locus are 1, then the set is locally closed. Otherwise the level
    49214912//               gives the depth of the component of the constructible set.
     4913
    49224914proc locusdg(list L)
    49234915"USAGE: locusdg(L);
    49244916           Calling sequence:
    49254917                locusdg(locus(grobcov(S))).
    4926 RETURN: The output is the list of the 'Relevant' components of the locus
     4918RETURN: The output is the list of the RELEVANT components of the locus
    49274919           in Dynamic Geometry:(C1,..,C:m), where
    4928                  C_i= ( p_i,(p_i1,..p_is_i), 'Relevant', level_i )
    4929            The 'Relevant' components are the 'Normal' and 'Accumulation' components
     4920                 C_i= ( p_i,(p_i1,..p_is_i), RELEVANT, level_i )
     4921           The RELEVANT components are the NORMAL and ACCUMULATION components
    49304922           of the locus. (See help for locus).
    49314923KEYWORDS: geometrical locus; locus; loci; dynamic geometry
     
    50465038//   options.
    50475039// Output: the components of the envolvent;
     5040
    50485041proc envelop(poly F, ideal C, list #)
    5049 "USAGE: envelop(F,C);
    5050           The first argument poly F must be the family of hypersurfaces for which
    5051           on want to compute its envelop.
    5052           The second argument C must be the ideal of restrictions on
    5053           the variables, and should contain less polynomials
    5054           than the number of variables
    5055           (x_1,..,x_n) are the variables of the hypersurfaces of F, that are considered
    5056           as parameters of the parametric ring.
    5057           (u_1,..,u_m) are the parameteres of the hypersurfaces, that are considered
    5058           as variables of the parametric ring.
    5059           Calling sequence:
    5060               ring R=(0,x_1,..,x_n),(u_1,..,u_m),lp;
    5061               poly F=F(x_1,..,x_n,u_1,..,u_m);
    5062               ideal C=g_1(u_1,..u_m),..,g_s(u_1,..u_m);
    5063               envelop(F,C,#options);
    5064            where s<m.
     5042"USAGE: envelop(F,C,[,options]);
     5043   The first argument poly F must be the family of hypersurfaces for which
     5044   on want to compute its envelop.
     5045   The second argument C must be the ideal of restrictions on
     5046   the variables, and should contain less polynomials
     5047   than the number of variables
     5048   (x_1,..,x_n) are the variables of the hypersurfaces of F, that are considered
     5049   as parameters of the parametric ring.
     5050   (u_1,..,u_m) are the parameteres of the hypersurfaces, that are considered
     5051   as variables of the parametric ring.
     5052   Calling sequence:
     5053     ring R=(0,x_1,..,x_n),(u_1,..,u_m),lp;
     5054     poly F=F(x_1,..,x_n,u_1,..,u_m);
     5055     ideal C=g_1(u_1,..u_m),..,g_s(u_1,..u_m);
     5056     envelop(F,C,#options);
     5057   where s<m.
    50655058OPTIONS: The algorithm allows the following options as pair of arguments:
    5066          \"vmov\", ideal(mover variables)  : by default vmov are  u_1,..,u_m.
    5067          But it can be restricted by the user to the more convenient ones.
    5068          \"version\", v   :  There are two versions of the algorithm. (\"version\",1) is
    5069          a full algorithm that always distinguishes correctly between 'Normal'
    5070          and 'Special' components, whereas \("version\",0) can decalre a component
    5071          as 'Normal' being really 'Special', but is more effective. By default (\"version\",1)
    5072          is used when the number of variables is less than 4 and 0 if not.
    5073          The user can force to use one or other version, but it is not recommended.
    5074          \"comments\", c: by default it is 0, but it can be set to 1.
     5059   \"vmov\", ideal(mover variables)  : by default vmov are  u_1,..,u_m.
     5060   But it can be restricted by the user to the more convenient ones.
     5061   \"version\", v   :  There are two versions of the algorithm. (\"version\",1) is
     5062   a full algorithm that always distinguishes correctly between NORMAL
     5063   and SPECIAL components, whereas (\"version\",0) can declare a component
     5064   as NORMAL being really SPECIAL, but is more effective. By default (\"version\",1)
     5065   is used when the number of variables is less than 4 and 0 if not.
     5066   The user can force to use one or other version, but it is not recommended.
     5067   \"comments\", c: by default it is 0, but it can be set to 1.
    50755068RETURN: The components of the envelop with its taxonomy:
    5076            (see locus help). envelop uses locus.
    5077            The taxonomy distinguishes \"Normal\",
    5078           \"Special\", \"Accumulation\", \"Degenerate\" components.
    5079           In the case of \"Special\" components, it also
    5080           outputs the anti-image of the component
     5069   (see locus help). envelop uses locus.
     5070   The taxonomy distinguishes \"Normal\",
     5071   \"Special\", \"Accumulation\", \"Degenerate\" components.
     5072   In the case of \"Special\" components, it also
     5073   outputs the anti-image of the component
    50815074NOTE: grobcov is called internally.
    5082           The basering R, must be of the form Q[a][x] (a=parameters, x=variables).
     5075   The basering R, must be of the form Q[a][x] (a=parameters, x=variables).
    50835076KEYWORDS: geometrical locus; locus; loci; envelop
    50845077EXAMPLE:  example envelop; shows an example"
     
    52775270}
    52785271
    5279 proc AssocTanToEnv(poly F,ideal C, poly E, list #)
    5280 "USAGE: AssocTanToEnv(F,C,E);
    5281           The first argument poly F must be the family of hypersurfaces for which
    5282           on want to compute its envelop.
    5283           The second argument C must be the ideal of restrictions on
    5284           the variables, and should contain s  polynomials
    5285           being s<n,
    5286           (x_1,..,x_n) are the variables of the hypersurfaces of F, that are considered
    5287           as parameters of the parametric ring.
    5288           (u_1,..,u_m) are the parameteres of the hypersurfaces, that are considered
    5289           as variables of the parametric ring.
    5290           The third parameter poly E must be the equation of a component of the
    5291           envelop of (F,C) previously determined by envelop.
    5292           Calling sequence:
    5293               ring R=(0,x_1,..,x_n),(u_1,..,u_m),lp;
    5294               poly F=F(x_1,..,x_n,u_1,..,u_m);
    5295               ideal C=g_1(u_1,..u_m),..,g_s(u_1,..u_m);
    5296               poly E(x_1,..,x_n);
    5297               AssocTanToEnv(F,C,E,#options);
    5298 
     5272proc AssocTanToEnv(poly F,ideal C,poly E,list #)
     5273"USAGE: AssocTanToEnv(F,C,E,[options]);
     5274   The first argument poly F must be the family of hypersurfaces for which
     5275   on want to compute its envelop.
     5276   The second argument C must be the ideal of restrictions on
     5277   the variables, and should contain s  polynomials
     5278   being s<n,
     5279   (x_1,..,x_n) are the variables of the hypersurfaces of F, that are considered
     5280   as parameters of the parametric ring.
     5281   (u_1,..,u_m) are the parameteres of the hypersurfaces, that are considered
     5282   as variables of the parametric ring.
     5283   The third parameter poly E must be the equation of a component of the
     5284   envelop of (F,C) previously determined by envelop.
     5285   Calling sequence:
     5286     ring R=(0,x_1,..,x_n),(u_1,..,u_m),lp;
     5287     poly F=F(x_1,..,x_n,u_1,..,u_m);
     5288     ideal C=g_1(u_1,..u_m),..,g_s(u_1,..u_m);
     5289     poly E(x_1,..,x_n);
     5290     AssocTanToEnv(F,C,E,#options);
    52995291OPTIONS: The algorithm allows the following options as pair of arguments:
    5300          \"vmov\", ideal(mover variables)  : by default vmov are  u_1,..,u_m.
    5301          But it can be restricted by the user to the more convenient ones.
    5302          \"version\", v   :  There are two versions of the algorithm. (\"version\",1) is
    5303          a full algorithm that always distinguishes correctly between 'Normal'
    5304          and 'Special' components, whereas \("version\",0) can decalre a component
    5305          as 'Normal' being really 'Special', but is more effective. By default (\"version\",1)
    5306          is used when the number of variables is less than 4 and 0 if not.
    5307          The user can force to use one or other version, but it is not recommended.
    5308          \"comments\", c: by default it is 0, but it can be set to 1.
     5292     \"vmov\", ideal(mover variables)  : by default vmov are  u_1,..,u_m.
     5293     But it can be restricted by the user to the more convenient ones.
     5294     \"version\", v   :  There are two versions of the algorithm. (\"version\",1) is
     5295     a full algorithm that always distinguishes correctly between NORMAL
     5296     and SPECIAL components, whereas (\"version\",0) can decalre a component
     5297     as NORMAL being really SPECIAL, but is more effective. By default (\"version\",1)
     5298     is used when the number of variables is less than 4 and 0 if not.
     5299     The user can force to use one or other version, but it is not recommended.
     5300     \"comments\", c: by default it is 0, but it can be set to 1.
    53095301RETURN: The interesting segments of the grobcov each one with (lpp,basis,segment).
    5310         Fixing the values of (x_1,..,x_n) inside E, the basis allows to detemine the values of the parameters
    5311         u_1,..u_m.
     5302     Fixing the values of (x_1,..,x_n) inside E, the basis allows to detemine the values of the parameters
     5303     u_1,..u_m.
    53125304NOTE: grobcov is called internally.
    5313           The basering R, must be of the form Q[a][x] (a=parameters, x=variables).
     5305     The basering R, must be of the form Q[a][x] (a=parameters, x=variables).
    53145306KEYWORDS: geometrical locus; locus; loci; envelop, associated tangent
    53155307EXAMPLE:  example AssocTanToEnv; shows an example"
     
    54255417}
    54265418
    5427 proc FamElemsAtEnvCompPoints(poly F,ideal C, poly E, list #)
     5419proc FamElemsAtEnvCompPoints(poly F,ideal C,poly E,list #)
    54285420"USAGE: FamElemsAtEnvCompPoints(F,C,E[,options]);
    54295421          The first argument poly F must be the family of hypersurfaces for which
     
    55055497
    55065498// discrim
    5507 proc discrim(poly F0, poly x0)
     5499proc discrim(poly F0,poly x0)
    55085500"USAGE: discrim(f,x);
    55095501          poly f: the polynomial in Q[a][x] or Q[x] of degree 2 in x
     
    56455637// output:  ideal b in @R but depending only on parameters
    56465638//              ideal G=GBasis(F) in V(a) \ V(b)
    5647 proc WLemma(ideal F,ideal a, list #)
     5639
     5640proc WLemma(ideal F,ideal a,list #)
    56485641"USAGE: WLemma(F,A,#);
    56495642          The first argument ideal F in K[a][x];
     
    56645657              segment S given in P- or C-representation
    56655658NOTE: The basering R, must be of the form Q[a][x] (a=parameters, x=variables).
    5666 KEYWORDS: Wibmer's Lemma
     5659KEYWORDS: Wibmers Lemma
    56675660EXAMPLE:  WLemma; shows an example"
    56685661{
Note: See TracChangeset for help on using the changeset viewer.