# hVector -- the h-vector of a simplicial complex

## Synopsis

• Usage:
h = hVector D
• Inputs:
• Optional inputs:
• Flag => , default value false, the flag h-vector if the simplicial complex is properly defined over a multigraded ring.
• Outputs:
• h, such that h#i is the i-th entry of the h-vector of D for an integer 0 <= i <= dim D+1 or a squarefree degree i.

## Description

The h-vector of the 4-simplex.
 i1 : R = ZZ[a..e]; i2 : simplex = simplicialComplex{a*b*c*d*e} o2 = | abcde | o2 : SimplicialComplex i3 : hVector simplex o3 = HashTable{0 => 1} 1 => 0 2 => 0 3 => 0 4 => 0 5 => 0 o3 : HashTable
A filled triangle with two edges attached to two vertices shows that the h-vector can have negative entries.
 i4 : R = ZZ[x_1..x_5]; i5 : delta = simplicialComplex{x_1*x_2*x_3,x_2*x_4,x_3*x_5} o5 = | x_3x_5 x_2x_4 x_1x_2x_3 | o5 : SimplicialComplex i6 : hVector delta o6 = HashTable{0 => 1 } 1 => 2 2 => -2 3 => 0 o6 : HashTable
The last example above can be considered in a Z^3-graded ring. Then we can compute its flag h-vector.
 i7 : grading = {{1,0,0},{1,0,0},{1,0,0},{0,1,0},{0,0,1}}; i8 : R = ZZ[x_1,x_2,x_3,y,z, Degrees => grading]; i9 : gamma = simplicialComplex{x_1*y*z,x_2*y,x_3*z} o9 = | x_1yz x_3z x_2y | o9 : SimplicialComplex i10 : hVector(gamma, Flag => true) o10 = HashTable{{0, 0, 0} => 1 } {1, 0, 0} => 2 {1, 0, 1} => -1 {1, 1, 0} => -1 o10 : HashTable

## Caveat

The option Flag checks if the multigrading corresponds to a properly d-coloring of D, where d is the dimension of D plus one. If it is not the case the output is an empty HashTable.