# hankelMatrix -- matrix with constant anti-diagonal entries

## Synopsis

• Usage:
m = hankelMatrix(r,p,q)
m = hankelMatrix(R,x,p,q)
m = hankelMatrix(R,p,q)
m = hankelMatrix(p,q)
m = hankelMatrix(p,q,s)
• Inputs:
• r, , matrix whose first row will be the entries of m
• R, a ring, in this case, hankelMatrix will use the variables of R
• x, , if present, hankelMatrix will use the variables of R starting with x
• p, an integer, number of rows
• q, an integer, number of columns
• s, , name of the variable to use in the method (hankelMatrix, p,q,s)

## Description

A Hankel matrix (or catalecticant matrix) is a matrix with a repeated element on each anti-diagonal, that is m_(i,j) depends only on i+j. If the matrix r is given, then we set m_(i,j) = r_(0,i+j) if i+j<numcols r, and 0 otherwise. The degrees of the rows of m are set to 0, and the degrees of the columns are set to the degree of r_(0,0); thus the Hankel matrix is homogeneous iff all the entries of the first row of r have the same degree.

If no ring or matrix is given, hankelMatrix defines a new ring S with p+q-1 variables X_i, and then calls hankelMatrix(vars S, p,q).

 i1 : p = 2;q=3; i3 : S = ZZ/101[x_0..x_(p+q-2)] o3 = S o3 : PolynomialRing i4 : hankelMatrix(vars S, p,q) o4 = | x_0 x_1 x_2 | | x_1 x_2 x_3 | 2 3 o4 : Matrix S <--- S i5 : r = vars S ** transpose vars S o5 = {-1} | x_0^2 x_0x_1 x_0x_2 x_0x_3 | {-1} | x_0x_1 x_1^2 x_1x_2 x_1x_3 | {-1} | x_0x_2 x_1x_2 x_2^2 x_2x_3 | {-1} | x_0x_3 x_1x_3 x_2x_3 x_3^2 | 4 4 o5 : Matrix S <--- S i6 : hankelMatrix(r, p,q) o6 = | x_0^2 x_0x_1 x_0x_2 | | x_0x_1 x_0x_2 x_0x_3 | 2 3 o6 : Matrix S <--- S i7 : hankelMatrix(S,p,q) o7 = | x_0 x_1 x_2 | | x_1 x_2 x_3 | 2 3 o7 : Matrix S <--- S i8 : hankelMatrix(r, p,q+2) o8 = | x_0^2 x_0x_1 x_0x_2 x_0x_3 0 | | x_0x_1 x_0x_2 x_0x_3 0 0 | 2 5 o8 : Matrix S <--- S i9 : hankelMatrix(p,q+2) o9 = | X_0 X_1 X_2 X_3 X_4 | | X_1 X_2 X_3 X_4 X_5 | ZZ 2 ZZ 5 o9 : Matrix (-----[X ..X ]) <--- (-----[X ..X ]) 32003 0 5 32003 0 5

## Ways to use hankelMatrix :

• "hankelMatrix(Matrix,ZZ,ZZ)"
• "hankelMatrix(Ring,RingElement,ZZ,ZZ)"
• "hankelMatrix(Ring,ZZ,ZZ)"
• "hankelMatrix(ZZ,ZZ)"
• "hankelMatrix(ZZ,ZZ,String)"

## For the programmer

The object hankelMatrix is .