Symmetric banded matrix Application Object


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.