Symmetric matrix Application Object


A Symmetric_matrix is a Table that is symmetric or skew-symmetric, so that:

EXPRESS specification:

*)
ENTITY Symmetric_matrix
   SUBTYPE OF (Table);
  skew  :  BOOLEAN;
WHERE
   square : self\table.shape[1] = self\table.shape[2];
END_ENTITY;
(*

Attribute definitions:

skew: The matrix skew, such that term [j,k=term [k,j] if skew is false, and term [j,k]=-term [k,j] if skew is true.

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:

square The number of rows must be equal to the number of columns.