type for storing matrix representations.

>>> sak.toarray()
array([[ 5, -4,  1,  0,  0,  0],
       [-4,  6, -4,  1,  0,  0],
       [ 1, -4,  6, -4,  1,  0],
       [ 0,  1, -4,  6, -4,  1],
       [ 0,  0,  1, -4,  6, -4],
       [ 0,  0,  0,  1, -4,  5]], dtype=int8)
>>> sak.tobanded()
array([[ 1,  1,  1,  1,  1,  1],
       [-4, -4, -4, -4, -4, -4],
       [ 5,  6,  6,  6,  6,  5]], dtype=int8)
>>> sak.tosparse()
<DIAgonal sparse array of dtype 'int8'
    with 24 stored elements (5 diagonals) and shape (6, 6)>
>>> np.array_equal(sak.dot(np.eye(n)), sak.tosparse().toarray())
True
>>> sak.eigenvalues()
array([0.03922866, 0.56703972, 2.41789479, 5.97822974,
       10.54287655, 14.45473055])
>>> sak.eigenvalues(2)
array([0.03922866, 0.56703972])

The banded form can be used in scipy functions for banded matrices, e.g.,

>>> e = eig_banded(sak.tobanded(), eigvals_only=True)
>>> np.allclose(sak.eigenvalues, e, atol= n * n * n * np.finfo(float).eps)
True

c