Macaulay2 » Documentation
Packages » NumericalSemigroups :: facetRays
next | previous | forward | backward | up | index | toc

facetRays -- computes the rays spanning the face in which a semigroup lies

Synopsis

Description

Uses the Fourier-Motzkin algorithm to go from the coneEquations satisfied by the semigroup to the rays. For example, in multiplicity 3, the cone has two rays, occupied by the semigroups semigroup{3,4} and semigroup{3,5}, with semigroup{3,4,5} in the interior. The rays are given in reduced form (a vector of positive integers with gcd 1), and appear as the columns of the output matrix.

i1 : aperySet{3,4}

o1 = {4, 8}

o1 : List
i2 : facetRays{3,4}

o2 = | 1 |
     | 2 |

              2       1
o2 : Matrix ZZ  <-- ZZ
i3 : facetRays{3,5}

o3 = | 2 |
     | 1 |

              2       1
o3 : Matrix ZZ  <-- ZZ
i4 : facetRays{3,4,5}

o4 = | 1 2 |
     | 2 1 |

              2       2
o4 : Matrix ZZ  <-- ZZ

On the face with the buchweitz example there are two facet rays:

i5 : F = facetRays buchweitz 0

o5 = | 1  1 |
     | 2  1 |
     | 3  1 |
     | 4  1 |
     | 5  1 |
     | 6  2 |
     | 7  1 |
     | 8  2 |
     | 9  1 |
     | 10 1 |
     | 11 2 |
     | 12 2 |

              12       2
o5 : Matrix ZZ   <-- ZZ

The second column is mu buchweitz 0, the mu vector of the Buchweitz example. Adding multiples of it to the Weierstrass semigroups ordinary point of genus 12, we eventually reach a semigroup that fails the Buchweitz test to be a Weierstrass semigroup:

i6 : b = {0}|flatten entries F_{1}

o6 = {0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2}

o6 : List
i7 : L = toList (13..25)

o7 = {13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25}

o7 : List
i8 : for i from 0 to 15 list (
         L' = L+i*13*b;
         G = gaps L';
         #sums(G, G) - 3*(genus L' -1)
         )

o8 = {-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5}

o8 : List

We conjecture that the same phenomen for any semigroup L0 of multiplicity 13 in place of L. Here is a "random" example:

i9 : setRandomSeed 0

o9 = 0
i10 : L0 = {13}|aperySet ({13}|apply(1 + random 10, i->13+random 10))

o10 = {13, 14, 28, 16, 30, 44, 32, 20, 21, 35, 36, 37, 51}

o10 : List
i11 : for i from 0 to 20 list (
         L' = L0+i*13*b;
         G = gaps L';
         #sums(G, G) - 3*(genus L' -1)
         )

o11 = {-3, -8, -10, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4,
      -----------------------------------------------------------------------
      5, 6, 7}

o11 : List

See also

Ways to use facetRays:

For the programmer

The object facetRays is a method function.