A Banded_matrix is a Table that has all its non-default terms in a (relatively small) number of consecutive diagonals.
EXPRESS specification:
*) ENTITY Banded_matrix SUBTYPE OF (Table); default : Maths_value; below : INTEGER; above : INTEGER; WHERE nondefault : -below <= above; END_ENTITY; (*
Attribute definitions:
default: The default value for locations outside the band.
below: The number of diagonals below the main diagonal which may contain non-default terms.
above: The number of diagonals above the main diagonal which may contain non-default terms.
Formal propositions:
nondefault: At least one diagonal must be permitted to have non-default entries.
NOTE - Negative values are allowed for the attributes below and above. A banded matrix in which all the non-default entries are in the first diagonal above the main diagonal can be represented efficiently using the value -1 for below and +1 for above.