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.