The *signature* of a Hermitian matrix can be defined either as the pair (number of positive eigenvalues, number of negative eigenvalues), or simply as the difference

The function hides some information when the matrix is degenerate, but this will not be of concern here. For a matrix of size , the number is between and and has the same parity as .

Given any square matrix with real entries and a complex number , we can form , which is a Hermitian matrix. Then is an integer-valued function of . Restricting attention to the unit circle , we obtain a piecewise constant function with jumps at the points where is degenerate.

When is a Seifert matrix of a knot, the function is the *Tristram-Levine signature* of the knot. To each knot there are infinitely many Seifert surfaces , and to each Seifert surface there are infinitely many Seifert matrices , depending on how we choose the generators of . Yet, **depends on alone**.

Below I plot for a few knots using Scilab for computation of signature and the knot data from

J. C. Cha and C. Livingston, KnotInfo: Table of Knot Invariants

Technical point: since Scilab enumerates colors using positive integers, the colors below correspond to the number of positive eigenvalues rather than the signature. Namely, black for 0, blue (1), green (2), and cyan (3).

As always, first comes the trefoil:

One of its Seifert matrices is

and the Tristram-Levine signature is

Next, the knot

with Seifert matrix

and the signature

And finally, the knot :

with Seifert matrix

and the signature

I experimented with a few more, trying to create more colors. However, guessing the complexity of the signature by looking at the Seifert matrix is one of many skills I do not have. So I conclude with the simple code used to plot the signatures.

```
```function sig(A)
clf();
[n,n] = size(A);
Npoints = 200;
r = 2*%pi/Npoints;
arcs = zeros(6,Npoints);
colors = zeros(Npoints);
for m = 1:Npoints
x = cos(2*%pi*(m-1/2)/Npoints);
y = sin(2*%pi*(m-1/2)/Npoints);
omega = complex(x,y);
B = (1-omega)*A+(1-conj(omega))*A';
signature = sum(sign(spec(B)));
colors(m) = (signature+n)/2+1;
arcs(:,m) = [x-r,y-r,2*r,2*r,0,360*64]';
end
xfarcs(arcs,colors');
replot([-1,-1,1,1]);
a=get("current_axes");
a.isoview="on";
endfunction