AMatrix.mesa
Copyright © 1986 by Xerox Corporation. All rights reserved.
Written by: Pradeep Sindhu, October 9, 1987 10:08:12 pm PDT
Pradeep Sindhu, January 25, 1988 2:44:37 pm PST
This interface defines incidence matrices and provides operations on them. The interface and its implementation are being written for the particular application of exhaustive testing of the cache's microcode flow graph, so they will undoubtedly contain verbiage specific to this application.
DIRECTORY
;
AMatrix: CEDAR DEFINITIONS
~ BEGIN
Type Defs
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
];
Basic Procs
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];
Higher Level Procs
CreateAMSeq: PROC [am: AM] RETURNS [amSeq: AMSeq];
InitAMSeq: PROC [amSeq: AMSeq];
UpdateAMSeq: PROC [amSeq: AMSeq, pc: NAT];
END.