Macaulay2 » Documentation
Packages » HyperplaneArrangements :: coefficients(Arrangement)
next | previous | forward | backward | up | index | toc

coefficients(Arrangement) -- make a matrix from the coefficients of the defining equations

Synopsis

Description

A hyperplane arrangement is defined by a list of affine-linear equations. This method creates a matrix whose rows correspond to variables in the underlying ring and whose columns correspond to the defining equations. The entries in this matrix are the coefficients of the defining equations.

If the arrangement is affine (i.e. there are constant coefficients), the last row of the output matrix is the constant coefficients.

A few reflection arrangements yield the following matrices.

i1 : coefficients typeA 3

o1 = | 1  1  1  0  0  0  |
     | -1 0  0  1  1  0  |
     | 0  -1 0  -1 0  1  |
     | 0  0  -1 0  -1 -1 |

              4       6
o1 : Matrix QQ  <-- QQ
i2 : coefficients typeB 2

o2 = | 1 1  1 0 |
     | 0 -1 1 1 |

              2       4
o2 : Matrix QQ  <-- QQ
i3 : coefficients typeD 4

o3 = | 1  1 1  1 1  1 0  0 0  0 0  0 |
     | -1 1 0  0 0  0 1  1 1  1 0  0 |
     | 0  0 -1 1 0  0 -1 1 0  0 1  1 |
     | 0  0 0  0 -1 1 0  0 -1 1 -1 1 |

              4       12
o3 : Matrix QQ  <-- QQ

The coefficient ring need not be the rational numbers.

i4 : R = ZZ/101[x,y,z];
i5 : A = arrangement("Pappus", R)

o5 = {x, y, z, x - y, y - z, x - y - z, 2x + y + z, 2x + y - z, 2x - 5y + z}

o5 : Hyperplane Arrangement 
i6 : coefficients A

o6 = | 1 0 0 1  0  1  2 2  2  |
     | 0 1 0 -1 1  -1 1 1  -5 |
     | 0 0 1 0  -1 -1 1 -1 1  |

              ZZ 3       ZZ 9
o6 : Matrix (---)  <-- (---)
             101        101
i7 : H = arrangement("Hessian")

o7 = {x , x , x , x  + x  + x , x  + x  + 6419x , x  + x  - 6420x , x  + 6419x  + x , x  + 6419x  + 6419x , x  + 6419x  - 6420x , x  - 6420x  + x , x  - 6420x  + 6419x , x  - 6420x  - 6420x }
       1   2   3   1    2    3   1    2        3   1    2        3   1        2    3   1        2        3   1        2        3   1        2    3   1        2        3   1        2        3

o7 : Hyperplane Arrangement 
i8 : coefficients H

o8 = | 1 0 0 1 1    1     1    1    1     1     1     1     |
     | 0 1 0 1 1    1     6419 6419 6419  -6420 -6420 -6420 |
     | 0 0 1 1 6419 -6420 1    6419 -6420 1     6419  -6420 |

               ZZ  3        ZZ  12
o8 : Matrix (-----)  <-- (-----)
             31627        31627

For non-central hyperplane arrangements, the last row of the coefficient matrix records the constant terms.

i9 : B = arrangement(x*y*(x+y+1))

o9 = {y, x, x + y + 1}

o9 : Hyperplane Arrangement 
i10 : coefficients B

o10 = | 0 1 1 |
      | 1 0 1 |
      | 0 0 0 |
      | 0 0 1 |

               ZZ 4       ZZ 3
o10 : Matrix (---)  <-- (---)
              101        101
i11 : C = arrangement(x*y*z*(x+y+1)*(y+z-1))

o11 = {z, y, y + z - 1, x, x + y + 1}

o11 : Hyperplane Arrangement 
i12 : coefficients C

o12 = | 0 0 0  1 1 |
      | 0 1 1  0 1 |
      | 1 0 1  0 0 |
      | 0 0 -1 0 1 |

               ZZ 4       ZZ 5
o12 : Matrix (---)  <-- (---)
              101        101

The trivial arrangement has no equations, so its this method returns the zero matrix.

i13 : R = ZZ[x,y,z];
i14 : trivial = arrangement(map(R^(numgens R),R^0,0),R)

o14 = {}

o14 : Hyperplane Arrangement 
i15 : coefficients trivial

o15 = 0

               3
o15 : Matrix ZZ  <-- 0
i16 : assert(coefficients trivial == 0)

See also

Ways to use this method: