A Symmetric_banded_matrix is a Table that has all its non-default terms in a (relatively small) number of consecutive diagonals; and that is symmetric or skew-symmetric, so that:
EXPRESS specification:
*) ENTITY Symmetric_banded_matrix SUBTYPE OF (Table); default : Maths_value; above : INTEGER; skew : BOOLEAN; WHERE non_default : above > 0; square : self\table.shape[1] = self\table.shape[2]; END_ENTITY; (*
Attribute definitions:
default: The default value for locations outside the band.
above: The number of diagonals above the main diagonal which may contain non-default terms.
skew: The matrix skew, such that if skew is false then term [j,k=term [k,j], and if skew true then term [j,k]=-term [k,j].
SELF/table.terms: The terms for positions [j,k] with j <=k (i.e. the upper triangle), in the order defined by SELF/table.order.
Formal propositions:
nondefault: At least one diagonal must be permitted to have non-default entries.
square The number of rows must be equal to the number of columns.