Changeset 47cb36e in git


Ignore:
Timestamp:
Sep 30, 2010, 10:29:40 AM (14 years ago)
Author:
Frank Seelisch <seelisch@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
57c64fff6c32591cb762f2f499785bea07c93048
Parents:
4708af17f762c99d15cb939acfd22139c9de5550
Message:
some formatting & typo correction in monomialideal.lib

git-svn-id: file:///usr/local/Singular/svn/trunk@13337 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/monomialideal.lib

    r4708af r47cb36e  
    33category = "Commutative algebra";
    44info = "
    5 LIBRARY: monomialideal.lib   Primary and irreducible decompositions of monomial
    6                              ideals
    7 AUTHORS: I.Bermejo,           ibermejo@ull.es
    8 @*       E.Garcia-Llorente,   evgarcia@ull.es
    9 @*       Ph.Gimenez,          pgimenez@agt.uva.es
     5LIBRARY: monomialideal.lib   Primary and irreducible decompositions of
     6                             monomial ideals
     7AUTHORS: I.Bermejo,          ibermejo@ull.es
     8@*       E.Garcia-Llorente,  evgarcia@ull.es
     9@*       Ph.Gimenez,         pgimenez@agt.uva.es
    1010
    1111OVERVIEW:
    1212 A library for computing a primary and the irreducible decompositions of a
    1313 monomial ideal using several methods.
    14  In this library we also take advantage of the fact that the ideal is
    15  monomial to make some computations that are Grobner free in this case
     14 In this library we specifically take advantage of the fact that the ideal
     15 is monomial to make some computations that are Grobner free in this case
    1616 (radical, intersection, quotient...).
    1717
    18 LITERATURE: Miller, Ezra  and Sturmfels, Bernd: Combinatorial Commutative Algebra,
    19             Springer 2004
     18LITERATURE: Miller, Ezra  and Sturmfels, Bernd: Combinatorial Commutative
     19            Algebra, Springer 2004
    2020
    2121PROCEDURES:
    22  isMonomial(id);       checks whether an ideal id is monomial
    23  minbaseMon(id);       computes the minimal monomial generating set of a
    24                        monomial ideal id
    25  gcdMon(f,g);          computes the gcd of two monomials f, g
    26  lcmMon(f,g);          computes the lcm of two monomials f, g
    27  membershipMon(f,id);  checks whether a polynomial f belongs to a monomial
    28                        ideal id
    29  intersectMon(id1,id2);intersection of monomial ideals id1 and id2
    30  quotientMon(id1,id2); quotient ideal id1:id2
    31  radicalMon(id);       computes the radical of a monomial ideal id
    32  isprimeMon(id);       checks whether a monomial ideal id is prime
    33  isprimaryMon(id);     checks whether a monomial ideal id is primary
    34  isirreducibleMon(id); checks whether a monomial ideal id is irreducible
    35  isartinianMon(id);    checks whether a monomial ideal id is artininan
    36  isgenericMon(id);     checks whether a monomial ideal id is generic, i.e.,
    37                        no two minimal generators of it agree in the exponent
    38                        of any variable that actually appears in both of them.
    39  dimMon(id);           dimension of a monomial ideal id
    40  irreddecMon(id,..);   computes the irreducible decomposition of a monomial
    41                        ideal id
    42  primdecMon(id,..);    computes a minimal primary decomposition of a monomial
    43                        ideal id
     22 isMonomial(id);        checks whether an ideal id is monomial
     23 minbaseMon(id);        computes the minimal monomial generating set of a
     24                        monomial ideal id
     25 gcdMon(f,g);           computes the gcd of two monomials f, g
     26 lcmMon(f,g);           computes the lcm of two monomials f, g
     27 membershipMon(f,id);   checks whether a polynomial f belongs to a monomial
     28                        ideal id
     29 intersectMon(id1,id2); intersection of monomial ideals id1 and id2
     30 quotientMon(id1,id2);  quotient ideal id1:id2
     31 radicalMon(id);        computes the radical of a monomial ideal id
     32 isprimeMon(id);        checks whether a monomial ideal id is prime
     33 isprimaryMon(id);      checks whether a monomial ideal id is primary
     34 isirreducibleMon(id);  checks whether a monomial ideal id is irreducible
     35 isartinianMon(id);     checks whether a monomial ideal id is artininan
     36 isgenericMon(id);      checks whether a monomial ideal id is generic, i.e.,
     37                        no two minimal generators of it agree in the exponent
     38                        of any variable that actually appears in both of them
     39 dimMon(id);            dimension of a monomial ideal id
     40 irreddecMon(id,..);    computes the irreducible decomposition of a monomial
     41                        ideal id
     42 primdecMon(id,..);     computes a minimal primary decomposition of a monomial
     43                        ideal id
    4444";
     45
    4546LIB "poly.lib";  // Para "maxdeg1" en "isprimeMon"
     47
    4648//---------------------------------------------------------------------------
    4749//-----------------------   INTERNOS    -------------------------------------
    4850//---------------------------------------------------------------------------
    49 /////////////////////////////////////////////////////////////////////////////
    50 //
     51
     52/////////////////////////////////////////////////////////////////////////////
    5153static proc checkIdeal (ideal I)
    5254"
     
    6769  return (1);
    6870}
    69 /////////////////////////////////////////////////////////////////////////////
    70 //
    71 static proc quotientIdealMon (ideal I,poly f)
     71
     72/////////////////////////////////////////////////////////////////////////////
     73static proc quotientIdealMon (ideal I, poly f)
    7274"
    7375USAGE:    quotientIdealMon(I,f); I ideal, f polynomial.
     
    100102  return ( minbase(J) );
    101103}
    102 /////////////////////////////////////////////////////////////////////////////
    103 //
     104
     105/////////////////////////////////////////////////////////////////////////////
    104106static proc soporte (poly f)
    105107"
     
    134136  return(sop);
    135137}
    136 /////////////////////////////////////////////////////////////////////////////
    137 //
     138
     139/////////////////////////////////////////////////////////////////////////////
    138140static proc irredAux (ideal I)
    139141"
    140142USAGE:    irredAux (I); I ideal.
    141 RETURN:   1, if I is irreducible; otherwise, an intvec whose fist entry is
     143RETURN:   1, if I is irreducible; otherwise, an intvec whose first entry is
    142144          the position of a generator which is the product of more than one
    143           variable, the next entries are the indexes of those variables.
     145          variable, the next entries are the indices of those variables.
    144146ASSUME:   I is a monomial ideal of the basering K[x(1)..x(n)] and it is
    145147          generated by its minimal monomial generators.
    146148NOTE:     This procedure is a modification of isirreducibleMon to give
    147           more information when ideal is not irreducible.
     149          more information when the ideal is not irreducible.
    148150"
    149151{
     
    176178  return(1);
    177179}
    178 //////////////////////////////////////////////////////////////////////
    179 //
    180 static proc contents (ideal I,ideal J)
     180
     181/////////////////////////////////////////////////////////////////////////////
     182static proc contents (ideal I, ideal J)
    181183"
    182184USAGE:    contents (I,J); I,J ideals.
    183185RETURN:   1, if I is contained in J; 0, otherwise.
    184 ASSUME:   I,J are monomial ideals of the basering.
     186ASSUME:   I, J are monomial ideals of the basering.
    185187"
    186188{
     
    201203  return(1);
    202204}
    203 /////////////////////////////////////////////////////////////////////////////
    204 //
    205 static proc equal (ideal I,ideal J)
     205
     206/////////////////////////////////////////////////////////////////////////////
     207static proc equal (ideal I, ideal J)
    206208"
    207209USAGE:    equal (I,J); I,J ideals.
    208210RETURN:   1, if I and J are the same ideal; 0, otherwise.
    209 ASSUME:   I,J are monomial ideals of the basering and are defined by their
     211ASSUME:   I, J are monomial ideals of the basering and are defined by their
    210212          minimal monomial generators.
    211213"
     
    237239  //return(1);
    238240}
    239 /////////////////////////////////////////////////////////////////////////////
    240 //
     241
     242/////////////////////////////////////////////////////////////////////////////
    241243static proc radicalAux (ideal I)
    242244"
     
    273275  return (rad);
    274276}
    275 /////////////////////////////////////////////////////////////////////////////
    276 //
     277
     278/////////////////////////////////////////////////////////////////////////////
    277279static proc primAux (ideal I)
    278280"
     
    281283          0, the second is the index of one variable such that a power of it
    282284          does not appear as a generator of I, the rest of the elements are
    283           the situation in the ideal of that elements of I which
    284           are product of more than one variable.
     285          the position in the ideal of those elements of I which are product
     286          of more than one variable.
    285287ASSUME:   I is a monomial ideal of the basering K[x(1)..x(n)].
    286 NOTE:     This procedure detects if the ideal is primary, when the
     288NOTE:     This procedure detects if the ideal is primary. When the
    287289          ideal is not primary, it gives some additional information.
    288290"
     
    340342  return (1);
    341343}
    342 /////////////////////////////////////////////////////////////////////////////
    343 //
    344 static proc maxExp (ideal I,intvec v)
     344
     345/////////////////////////////////////////////////////////////////////////////
     346static proc maxExp (ideal I, intvec v)
    345347"
    346348USAGE:    maxExp (I,v); I ideal, v integer vector.
     
    350352          variable considered is v[2].
    351353          If the ideal I is primary, it returns 0.
    352 NOTE:     The elements of the vector shows what variable and what
     354NOTE:     The elements of the vector suggest what variable and which
    353355          generators we must consider to look for the greatest power
    354356          of this variable.
     
    375377  return (max);
    376378}
    377 /////////////////////////////////////////////////////////////////////////////
    378 //
     379
     380/////////////////////////////////////////////////////////////////////////////
    379381static proc irredundant (list l)
    380382"
     
    382384RETURN:   a list such that the intersection of the elements in that list has
    383385          no redundant component.
    384 ASSUME:   elements of l are monomial ideals of the basering.
     386ASSUME:   The elements of l are monomial ideals of the basering.
    385387"
    386388{
     
    413415  return (l);
    414416}
    415 /////////////////////////////////////////////////////////////////////////////
    416 //
    417 static proc alexDif (intvec v,ideal I)
     417
     418/////////////////////////////////////////////////////////////////////////////
     419static proc alexDif (intvec v, ideal I)
    418420"
    419421USAGE:    alexDif (v,I); v, intvec; I, ideal.
     
    422424ASSUME:   I is a monomial ideal of the basering K[x(1),...,x(n)] given by
    423425          its minimal monomial generators and v is an integer vector with
    424           n entries s.t.monomial(v) is a multiple of all minimal monomial
     426          n entries s.t. monomial(v) is a multiple of all minimal monomial
    425427          generators of I.
    426428"
     
    455457  return (l);
    456458}
    457 /////////////////////////////////////////////////////////////////////////////
    458 //
     459
     460/////////////////////////////////////////////////////////////////////////////
    459461static proc irredPrimary (list l1)
    460462"
     
    507509  return (l3);
    508510}
    509 /////////////////////////////////////////////////////////////////////////////
    510 //
     511
     512/////////////////////////////////////////////////////////////////////////////
    511513static proc isMinimal (ideal I)
    512514"
     
    566568  }
    567569}
    568 /////////////////////////////////////////////////////////////////////////////
    569 //
     570
     571/////////////////////////////////////////////////////////////////////////////
    570572static proc isMonomialGB (ideal I)
    571573"
     
    575577ASSUME:   I is an ideal of the basering whose given generators are not
    576578          monomials.
    577 NOTE:     this procedure is NOT Grobner free and should be used only if the
    578           given generators are not monomials. (use first checkIdeal)
     579NOTE:     This procedure is NOT Groebner free and should be used only if the
     580          given generators are not monomials. (Use the proc checkIdeal first.)
    579581"
    580582{
     
    604606  }
    605607}
     608
    606609/////////////////////////////////////////////////////////////////////////////
    607610//
     
    609612// WARNING: this is not a test, when the answer is 1 and the decompositions
    610613//          may not coincide but it is fast and easy and when the answer is
    611 //          0 the decomposition do not coincide.
     614//          0 the decompositions do not coincide.
    612615//
    613 proc areEqual(list l1,list l2)
     616proc areEqual(list l1, list l2)
    614617{
    615618  int i,j,sizIdeal;
     
    640643  return (equal(l1Ideal,l2Ideal));
    641644}
     645
    642646/////////////////////////////////////////////////////////////////////////////
    643647//-------------------------------------------------------------------------//
     
    645649//-------------------------------------------------------------------------//
    646650/////////////////////////////////////////////////////////////////////////////
    647 //
     651
     652/////////////////////////////////////////////////////////////////////////////
    648653proc isMonomial (ideal I)
    649 "USAGE:    isMonomial (I); I ideal.
    650 RETURN:   1, if I is monomial ideal; 0, otherwise.
     654"USAGE:   isMonomial (I); I ideal
     655RETURN:   1, if I is a monomial ideal; 0, otherwise.
    651656ASSUME:   I is an ideal of the basering.
    652657EXAMPLE:  example isMonomial; shows some examples.
     
    685690 isMonomial(J);
    686691}
    687 /////////////////////////////////////////////////////////////////////////////
    688 //
     692
     693/////////////////////////////////////////////////////////////////////////////
    689694proc minbaseMon (ideal I)
    690 "USAGE:    minbaseMon (I); I ideal.
     695"USAGE:   minbaseMon (I); I ideal.
    691696RETURN:   an ideal, the minimal monomial generators of I.
    692           (-1 if the given generators of I are not monomials)
     697          -1 if the given generators of I are not monomials
    693698ASSUME:   I is an  ideal generated by a list of monomials of the basering.
    694699EXAMPLE:  example minbaseMon; shows an example.
     
    749754 minbaseMon(I);
    750755}
    751 /////////////////////////////////////////////////////////////////////////////
    752 //
    753 proc gcdMon (poly f,poly g)
    754 "USAGE:    gcdMon (f,g); f,g polynomials.
     756
     757/////////////////////////////////////////////////////////////////////////////
     758proc gcdMon (poly f, poly g)
     759"USAGE:   gcdMon (f,g); f,g polynomials.
    755760RETURN:   a monomial, the greatest common divisor of f and g.
    756761ASSUME:   f and g are monomials of the basering.
     
    795800  gcdMon(f,g);
    796801}
    797 /////////////////////////////////////////////////////////////////////////////
    798 //
    799 proc lcmMon (poly f,poly g)
    800 "USAGE:    lcmMon (f,g); f,g polynomials.
     802
     803/////////////////////////////////////////////////////////////////////////////
     804proc lcmMon (poly f, poly g)
     805"USAGE:   lcmMon (f,g); f, g polynomials.
    801806RETURN:   a monomial,the least common multiple of f and g.
    802807ASSUME:   f,g are monomials of the basering.
     
    840845  lcmMon(f,g);
    841846}
    842 //////////////////////////////////////////////////////////////////////
    843 //
    844 proc membershipMon(poly f,ideal I)
    845 "USAGE:    membershipMon(f,I); f polynomial, I ideal.
     847
     848/////////////////////////////////////////////////////////////////////////////
     849proc membershipMon(poly f, ideal I)
     850"USAGE:   membershipMon(f, I); f polynomial, I ideal.
    846851RETURN:   1, if f lies in I; 0 otherwise.
    847           (-1 if I and f are nonzero and I is not a monomial ideal)
     852          -1 if I and f are nonzero and I is not a monomial ideal
    848853ASSUME:   I is a monomial ideal of the basering.
    849854EXAMPLE:  example membershipMon; shows some examples
     
    942947 membershipMon(g,I);
    943948}
    944 //////////////////////////////////////////////////////////////////////
    945 //
    946 proc intersectMon (ideal I,ideal J)
    947 "USAGE:    intersectMon (I,J); I,J ideals.
     949
     950/////////////////////////////////////////////////////////////////////////////
     951proc intersectMon (ideal I, ideal J)
     952"USAGE:   intersectMon (I, J); I, J ideals.
    948953RETURN:   an ideal, the intersection of I and J.
    949954          (it returns -1 if I or J are not monomial ideals)
     
    10281033 intersectMon (I,J);
    10291034}
    1030 //////////////////////////////////////////////////////////////////////
    1031 //
    1032 proc quotientMon (ideal I,ideal J)
    1033 "USAGE:    quotientMon (I,J); I,J ideals.
     1035
     1036/////////////////////////////////////////////////////////////////////////////
     1037proc quotientMon (ideal I, ideal J)
     1038"USAGE:   quotientMon (I, J); I, J ideals.
    10341039RETURN:   an ideal, the quotient I:J.
    10351040          (returns -1 if I or J is not monomial)
    1036 ASSUME:   I,J are monomial ideals of the basering.
     1041ASSUME:   I, J are monomial ideals of the basering.
    10371042NOTE:     the minimal monomial generating set is returned.
    10381043EXAMPLE:  example quotientMon; shows an example.
     
    11101115 quotientMon (I,J);
    11111116}
    1112 //////////////////////////////////////////////////////////////////////
    1113 //
     1117
     1118/////////////////////////////////////////////////////////////////////////////
    11141119proc radicalMon(ideal I)
    1115 "USAGE:    radicalMon(I); I ideal
     1120"USAGE:   radicalMon(I); I ideal
    11161121RETURN:   an ideal, the radical ideal of the ideal I.
    11171122          (returns -1 if I is not a monomial ideal)
    11181123ASSUME:   I is a monomial ideal of the basering.
    1119 NOTE:     the minimal monomial generating set is returned.
     1124NOTE:     The minimal monomial generating set is returned.
    11201125EXAMPLE:  example radicalMon; shows an example.
    11211126"
     
    11771182 radicalMon(I);
    11781183}
    1179 //////////////////////////////////////////////////////////////////////
    1180 //
     1184
     1185/////////////////////////////////////////////////////////////////////////////
    11811186proc isprimeMon (ideal I)
    1182 "USAGE:    isprimeMon (I); I ideal
     1187"USAGE:   isprimeMon (I); I ideal
    11831188RETURN:   1, if I is prime; 0, otherwise.
    11841189          (returns -1 if I is not a monomial ideal)
     
    12271232 isprimeMon (J);
    12281233}
    1229 //////////////////////////////////////////////////////////////////////
    1230 //
     1234
     1235/////////////////////////////////////////////////////////////////////////////
    12311236proc isprimaryMon (ideal I)
    1232 "USAGE:    isprimaryMon (I); I ideal
     1237"USAGE:   isprimaryMon (I); I ideal
    12331238RETURN:   1, if I is primary; 0, otherwise.
    12341239          (returns -1 if I is not a monomial ideal)
     
    13291334 isprimaryMon (J);
    13301335}
    1331 //////////////////////////////////////////////////////////////////////
    1332 //
     1336
     1337/////////////////////////////////////////////////////////////////////////////
    13331338proc isirreducibleMon (ideal I)
    1334 "USAGE:    isirreducibleMon(I); I ideal
     1339"USAGE:   isirreducibleMon(I); I ideal
    13351340RETURN:   1, if I is irreducible; 0, otherwise.
    1336           (return -1 if I is not a monomial ideal)
     1341          returns -1 if I is not a monomial ideal
    13371342ASSUME:   I is a monomial ideal of the basering.
    13381343EXAMPLE:  example isirreducibleMon; shows some examples
     
    13851390 isirreducibleMon (J);
    13861391}
    1387 //////////////////////////////////////////////////////////////////////
    1388 //
     1392
     1393/////////////////////////////////////////////////////////////////////////////
    13891394proc isartinianMon (ideal I)
    1390 "USAGE:    isartinianMon(I); I ideal.
     1395"USAGE:   isartinianMon(I); I ideal.
    13911396RETURN:   1, if ideal is artinian; 0, otherwise.
    1392           (return -1 if ideal I is not a monmomial ideal).
     1397          returns -1 if ideal I is not a monmomial ideal
    13931398ASSUME:   I is a monomial ideal of the basering.
    13941399EXAMPLE:  example isartinianMon; shows some examples
     
    14531458 isartinianMon (J);
    14541459}
    1455 //////////////////////////////////////////////////////////////////////
    1456 //
     1460
     1461/////////////////////////////////////////////////////////////////////////////
    14571462proc isgenericMon (ideal I)
    1458 "USAGE:    isgenericMon(I); I ideal.
     1463"USAGE:   isgenericMon(I); I ideal.
    14591464RETURN:   1, if ideal is generic; 0, otherwise.
    1460           (return -1 if ideal I is not a monomial ideal)
     1465          returns -1 if ideal I is not a monomial ideal
    14611466ASSUME:   I is a monomial ideal of the basering.
    14621467EXAMPLE:  example isgenericMon; shows some examples.
     
    15241529 isgenericMon (J);
    15251530}
    1526 //////////////////////////////////////////////////////////////////////
    1527 //
     1531
     1532/////////////////////////////////////////////////////////////////////////////
    15281533proc dimMon (ideal I)
    1529 "USAGE:   dimMon (I); I ideal
     1534"USAGE:  dimMon (I); I ideal
    15301535RETURN:  an integer, the dimension of the affine variety defined by
    15311536         the ideal I.
    1532          (returns -1 if I is not a monomial ideal)
     1537         returns -1 if I is not a monomial ideal
    15331538ASSUME:  I is a monomial ideal of the basering.
    15341539EXAMPLE: example dimMon; shows some examples.
     
    16311636 dimMon (J);
    16321637}
     1638
    16331639/////////////////////////////////////////////////////////////////////////////
    16341640//-------------------------------------------------------------------------//
     
    16361642//-------------------------------------------------------------------------//
    16371643/////////////////////////////////////////////////////////////////////////////
    1638 //
     1644
     1645//////////////////////////////////////////////////////////////////////
    16391646// METODO 1: Metodo directo para descomp. irreducible (ver Vasconcelos)
    16401647//
     
    16451652// (Vasconcelos)                                                    //
    16461653//////////////////////////////////////////////////////////////////////
    1647 //
    16481654static proc irredDec1 (ideal I)
    16491655{
     
    17111717  return (l2);
    17121718}
     1719
    17131720//////////////////////////////////////////////////////////////////////
    17141721// La siguiente funcion va a obtener una descomposicion primaria    //
    17151722// minimal a partir de la irreducible anterior.                     //
    17161723//////////////////////////////////////////////////////////////////////
    1717 //
    17181724static proc primDec1 (ideal I)
    17191725{
     
    17261732  return (l2);
    17271733}
    1728 //
     1734
     1735//////////////////////////////////////////////////////////////////////
    17291736// METODO 2: Metodo directo para descomp. primaria (ver Vasconcelos)
    17301737//
     
    17351742//  hace uso de esta (Vasconcelos).                                 //
    17361743//////////////////////////////////////////////////////////////////////
    1737 //
    17381744static proc primDec2 (ideal I)
    17391745{
     
    17871793  return (l2);
    17881794}
    1789 //
     1795//////////////////////////////////////////////////////////////////////
    17901796// METODO 3: via dual de Alexander y doble dual (Miller)
    17911797//
     
    17951801// ideal de partida (Miller)                                        //
    17961802//////////////////////////////////////////////////////////////////////
    1797 //
    17981803static proc irredDec3 (ideal I)
    17991804{
     
    18261831  return (l);
    18271832}
     1833
    18281834//////////////////////////////////////////////////////////////////////
    18291835// En este caso hallamos una descomposicion primaria minimal usando //
    18301836// la irreducible irredundante del procedimiento anterior.          //
    18311837//////////////////////////////////////////////////////////////////////
    1832 //
    18331838static proc primDec3 (ideal I)
    18341839{
     
    18411846  return (l2);
    18421847}
    1843 //
     1848
     1849//////////////////////////////////////////////////////////////////////
    18441850// METODO 4: via dual de Alexander y cociente (Miller)
    18451851//
     
    18491855// Alexander (con el cociente) (Miller)                             //
    18501856//////////////////////////////////////////////////////////////////////
    1851 //
    18521857static proc irredDec4 (ideal I)
    18531858{
     
    18981903  return (L);
    18991904}
     1905
    19001906//////////////////////////////////////////////////////////////////////
    19011907// Ahora hallamos una descomposicion primaria irredundante usando   //
     
    19031909// ideal monomial dado por sus generadores minimales.               //
    19041910//////////////////////////////////////////////////////////////////////
    1905 //
    19061911static proc primDec4 (ideal I)
    19071912{
     
    19141919  return (l2);
    19151920}
    1916 //
     1921
     1922//////////////////////////////////////////////////////////////////////
    19171923// METODO 5: un misterio!!
    19181924//
     
    19221928// irreducibles del ideal 1-1.                                      //
    19231929//////////////////////////////////////////////////////////////////////
    1924 //
    19251930static proc irredDec5 (ideal I)
    19261931{
     
    20062011  return (facets);
    20072012}
     2013
    20082014//////////////////////////////////////////////////////////////////////
    20092015// Ahora hallamos una descomposicion primaria irredundante usando   //
     
    20112017// ideal monomial dado por sus generadores minimales.               //
    20122018//////////////////////////////////////////////////////////////////////
    2013 //
    20142019static proc primDec5 (ideal I)
    20152020{
     
    20222027  return (l2);
    20232028}
    2024 //
     2029
     2030//////////////////////////////////////////////////////////////////////
    20252031// METODO 6: via complejo de Scarf (Milovsky)
    20262032//
     
    20332039// generadores del ideal.                                           //
    20342040//////////////////////////////////////////////////////////////////////
    2035 //
    20362041static proc maximoExp(ideal I,int i)
    20372042{
     
    20512056  return(max);
    20522057}
     2058
    20532059//////////////////////////////////////////////////////////////////////
    20542060// Esta funcion estudia si un ideal monomial dado por su sistema    //
     
    20572063// que han sido introducidos.                                       //
    20582064//////////////////////////////////////////////////////////////////////
    2059 //
    20602065static proc artinian (ideal I)
    20612066{
     
    21412146  }
    21422147}
     2148
    21432149//////////////////////////////////////////////////////////////////////
    21442150// En este caso vamos primero a chequear si el ideal es o no        //
     
    21462152// pues estos son una aplicacion biyectiva.                         //
    21472153//////////////////////////////////////////////////////////////////////
    2148 //
    21492154static proc generic (ideal I)
    21502155{
     
    22102215  }
    22112216}
     2217
    22122218//////////////////////////////////////////////////////////////////////
    22132219// Esta funci?n obtiene una descomposicion irreducible del ideal    //
     
    22152221// generico que le asociamos.                                       //
    22162222//////////////////////////////////////////////////////////////////////
    2217 //
    22182223static proc nonGeneric (EXP,NEWEXP,Faces,sizI)
    22192224{
     
    22502255  return (newFaces);
    22512256}
     2257
    22522258//////////////////////////////////////////////////////////////////////
    22532259// Este procedimiento va a dar una faceta inicial para el complejo  //
     
    22552261// y generico (evidentemente I dado por la bse minimal)             //
    22562262//////////////////////////////////////////////////////////////////////
    2257 //
    22582263static proc initialFacet (ideal I)
    22592264{
     
    23422347  return (face);
    23432348}
     2349
    23442350//////////////////////////////////////////////////////////////////////
    23452351// La funcion que sigue devuelve las facetas adyacentes a una dada  //
    23462352// en el complejo de Scarf asociado a I.                            //
    23472353//////////////////////////////////////////////////////////////////////
    2348 //
    23492354static proc adyacency (list l1, ideal I)
    23502355{
     
    25062511  return(l2);
    25072512}
     2513
    25082514//////////////////////////////////////////////////////////////////////
    25092515// Metodo que calcula la descomposicion irreducible de un ideal     //
    25102516// monomial usando el complejo de Scarf (Milowski)                  //
    25112517//////////////////////////////////////////////////////////////////////
    2512 //
    25132518static proc ScarfMethod (ideal I)
    25142519{
     
    26852690  return(Faces);
    26862691}
     2692
    26872693//////////////////////////////////////////////////////////////////////
    26882694// Devuelve una descomposicion primaria minimal de un ideal         //
    26892695// monomial via el complejo de Scarf.                               //
    26902696//////////////////////////////////////////////////////////////////////
    2691 //
    26922697static proc scarfMethodPrim (ideal I)
    26932698{
     
    27012706  return (l2);
    27022707}
    2703 //
     2708
     2709//////////////////////////////////////////////////////////////////////
    27042710// METODO 7: algoritmo de etiquetas (Roune)
    27052711//
     
    27092715// algoritmo de etiquetas de B. Roune.                              //
    27102716//////////////////////////////////////////////////////////////////////
    2711 //
    27122717static proc phi (list F)
    27132718{
     
    27402745  return (listphi);
    27412746}
    2742 //////////////////////////////////////////////////////////////////////
    2743 //
     2747
     2748/////////////////////////////////////////////////////////////////////////////
    27442749static proc pi(poly f)
    27452750{
     
    27592764  return (f);
    27602765}
    2761 //////////////////////////////////////////////////////////////////////
    2762 //
     2766
     2767/////////////////////////////////////////////////////////////////////////////
    27632768static proc conditionComplex (intvec posActual,ideal I,ideal S)
    27642769{
     
    28172822  return (0);
    28182823}
    2819 //////////////////////////////////////////////////////////////////////
    2820 //
     2824
     2825/////////////////////////////////////////////////////////////////////////////
    28212826static proc findFaces (ideal I)
    28222827{
     
    28702875  return (F);
    28712876}
     2877
    28722878//////////////////////////////////////////////////////////////////////
    28732879// La siguiente funcion calcula la descomposicion en irreducibles de//
     
    28752881// metodo de Bjarke Roune.                                          //
    28762882//////////////////////////////////////////////////////////////////////
    2877 //
    28782883static proc labelAlgorithm(ideal I)
    28792884{
     
    29462951  return (facets);
    29472952}
     2953
    29482954//////////////////////////////////////////////////////////////////////
    29492955// Devuelve una descomposicion primaria minimal de un ideal monomial//
    29502956// dado.                                                            //
    29512957//////////////////////////////////////////////////////////////////////
    2952 //
    2953 static proc  labelAlgPrim (ideal I)
     2958static proc labelAlgPrim (ideal I)
    29542959{
    29552960  // VARIABLES
     
    29622967  return (l2);
    29632968}
    2964 //
     2969
     2970//////////////////////////////////////////////////////////////////////
    29652971// METODO 8: Gao-Zhu
    29662972//
    29672973//////////////////////////////////////////////////////////////////////
    2968 //
    29692974static proc divide (intvec v, intvec w, int k)
    29702975{
     
    29912996  return (1);
    29922997}
    2993 //////////////////////////////////////////////////////////////////////
    2994 //                                        //
    2995 //////////////////////////////////////////////////////////////////////
    2996 //
     2998
     2999/////////////////////////////////////////////////////////////////////////////
    29973000static proc incrementalAlg (ideal I)
    29983001{
     
    32033206  return (facets);
    32043207}
    3205 //////////////////////////////////////////////////////////////////////
    3206 //
     3208
     3209/////////////////////////////////////////////////////////////////////////////
    32073210static proc  incrementalAlgPrim (ideal I)
    32083211{
     
    32163219  return (l2);
    32173220}
    3218 //
     3221
     3222//////////////////////////////////////////////////////////////////////
    32193223// METODO 9: slice algorithm (Roune)
    32203224//
     
    32223226// SLICE ALGORITHM (B.Roune)                                        //
    32233227//////////////////////////////////////////////////////////////////////
    3224 //
    32253228static proc divideMon (poly f , poly g)
    32263229{
     
    32383241  //return (1);
    32393242}
    3240 //////////////////////////////////////////////////////////////////////
    3241 //
     3243
     3244/////////////////////////////////////////////////////////////////////////////
    32423245static proc pivot (ideal I , poly lcmMin, ideal S)
    32433246{
     
    33023305  }
    33033306}
    3304 //////////////////////////////////////////////////////////////////////
    3305 //
     3307
     3308/////////////////////////////////////////////////////////////////////////////
    33063309static proc simplification (I)
    33073310{
     
    34243427  return (lcmMi,I);
    34253428}
    3426 //////////////////////////////////////////////////////////////////////
    3427 //
     3429
     3430/////////////////////////////////////////////////////////////////////////////
    34283431static proc con (ideal I , ideal S , poly q)
    34293432{
     
    35363539  return (con(I1,S1,p*q),con(I,S2,q));
    35373540}
    3538 //////////////////////////////////////////////////////////////////////
    3539 //
     3541
     3542/////////////////////////////////////////////////////////////////////////////
    35403543static proc irredDecMonSlice (ideal I)
    35413544{
     
    36143617  return (components);
    36153618}
    3616 //////////////////////////////////////////////////////////////////////
    3617 //
     3619
     3620/////////////////////////////////////////////////////////////////////////////
    36183621static proc primDecMonSlice (ideal I)
    36193622{
     
    36273630  return (l2);
    36283631}
     3632
    36293633//////////////////////////////////////////////////////////////////////
    36303634//                                                                  //
     
    36333637//////////////////////////////////////////////////////////////////////
    36343638//////////////////////////////////////////////////////////////////////
    3635 //
     3639
     3640/////////////////////////////////////////////////////////////////////////////
    36363641proc irreddecMon
    3637 "USAGE:    irreddecMon (I[,alg]); I ideal, alg string.
     3642"USAGE:   irreddecMon (I[,alg]); I ideal, alg string.
    36383643RETURN:   list, the irreducible components of the monomial ideal I.
    36393644          (returns -1 if I is not a monomial ideal).
     
    37393744 irreddecMon(I,"sr");
    37403745}
    3741 //////////////////////////////////////////////////////////////////////
    3742 //
     3746
     3747/////////////////////////////////////////////////////////////////////////////
    37433748proc primdecMon
    3744 "USAGE:    primdecMon (I[,alg]); I ideal, alg string
     3749"USAGE:   primdecMon (I[,alg]); I ideal, alg string
    37453750RETURN:   list, the components in a minimal primary decomposition of I.
    37463751          (returns -1 if I is not a monomial ideal).
Note: See TracChangeset for help on using the changeset viewer.