<> <> <> DIRECTORY Core; CoreXform: CEDAR DEFINITIONS = BEGIN Dir: TYPE = {ll, rr, lr, rl}; Addr: TYPE = LIST OF INT; Xform: TYPE = REF XformSeq; Xforms: TYPE = LIST OF XformRec; -- LIST OF [size, toLev] XformSeq: TYPE = RECORD[seq: SEQUENCE size: NAT OF XformRec]; XformRec: TYPE = RECORD[size, toLev, fmLev, toSubSize, fmSubSize, temp: INT _ -1]; GenXform: PROC[xforms: Xforms] RETURNS[ xform: Xform _ NIL]; GenXforms: PROC[xform: Xform] RETURNS[ xforms: Xforms _ NIL]; GetXform: PROC[from: REF] RETURNS[ xform: Xform _ NIL]; GetXforms: PROC[from: REF] RETURNS[ xforms: Xforms _ NIL]; SetXform: PROC[on: REF, xform: Xform]; SetXforms: PROC[on: REF, xforms: Xforms]; XformSize: PROC[from: REF] RETURNS[domain: INT_0]; XformIndex: PROC[xform: Xform, dir: Dir, index: INT] RETURNS[i: INT, a: Addr]; XformAddr: PROC[xform: Xform, dir: Dir, addr: Addr] RETURNS[i: INT, a: Addr]; Coord: TYPE = RECORD[degrees, degree, index: INT]; FlatTreeIndex: PROC[size, index: INT] RETURNS[coord: Coord]; <<>> < logical-original (Word/Byte/Bit) access>> < sequencial (Byte/Bit/Word) access>> < Interleaved (Bit/Byte/Word) access>> END.