<> <> <> <> <<>> <> <<>> DIRECTORY ; AMatrix: CEDAR DEFINITIONS ~ BEGIN <> AVector: TYPE = REF AVectorRec; AVectorRec: TYPE = RECORD [ SEQUENCE size: NAT OF NAT ]; AM: TYPE = REF AMRec; AMRec: TYPE = RECORD [ SEQUENCE size: NAT OF AVector ]; Buf: TYPE = REF BufRec; BufRec: TYPE = RECORD [ first, last: NAT _ 0, pcs: SEQUENCE size: NAT OF NAT ]; AMSeq: PUBLIC TYPE = REF AMSeqRec; AMSeqRec: TYPE = RECORD [ buf: Buf, ams: SEQUENCE size: NAT OF AM ]; <> ConformanceCheck: SIGNAL; DisallowedPath: PUBLIC SIGNAL [from, to: NAT]; Create: PROC [size: NAT] RETURNS [am: AM]; Copy: PROC [from: AM] RETURNS [to: AM]; Multiply: PROC [left, right: AM] RETURNS[result: AM]; Size: PROC [am1, am2: AM] RETURNS [size: NAT]; Equal: PROC [am1, am2: AM] RETURNS [BOOL]; ApplyProc: TYPE = PROC [i, j: NAT]; Enumerate: PROC [am: AM, p: ApplyProc]; <> CreateAMSeq: PROC [am: AM] RETURNS [amSeq: AMSeq]; InitAMSeq: PROC [amSeq: AMSeq]; UpdateAMSeq: PROC [amSeq: AMSeq, pc: NAT]; END.