FoxArrayBase.SymW 84 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167
  1. MODULE FoxArrayBase;
  2. IMPORT SYSTEM, KernelLog, Heaps, Math, MathL, ComplexNumbers;
  3. CONST
  4. debug = FALSE;
  5. statistics = FALSE;
  6. conservative = TRUE;
  7. ArrDataArrayOffset = (4 * SIZEOF(ADDRESS));
  8. AddressSize = SIZEOF(ADDRESS);
  9. MathPtrOffset = (0 * AddressSize);
  10. MathAdrOffset = (1 * AddressSize);
  11. MathFlagsOffset = (2 * AddressSize);
  12. MathDimOffset = (3 * AddressSize);
  13. MathElementSizeOffset = (4 * AddressSize);
  14. MathLenOffset = (5 * AddressSize);
  15. MathIncrOffset = (6 * AddressSize);
  16. GeometryMismatch = 400;
  17. DimensionMismatch = 401;
  18. AllocationForbidden = 402;
  19. ArrayAlignment = 8;
  20. TensorFlag = 0;
  21. RangeFlag = 1;
  22. TemporaryFlag = 2;
  23. down = 0;
  24. up = 1;
  25. SmallMatrixFlag = 3;
  26. SmallVectorFlag = 3;
  27. Size2Flag = 4;
  28. Size3Flag = 5;
  29. Size4Flag = 6;
  30. Size5Flag = 7;
  31. Size6Flag = 8;
  32. Size7Flag = 9;
  33. Size8Flag = 10;
  34. Mat2x2 = SYSTEM.VAL(LONGINT, {SmallMatrixFlag, Size2Flag});
  35. Mat3x3 = SYSTEM.VAL(LONGINT, {SmallMatrixFlag, Size3Flag});
  36. Mat4x4 = SYSTEM.VAL(LONGINT, {SmallMatrixFlag, Size4Flag});
  37. Mat5x5 = SYSTEM.VAL(LONGINT, {SmallMatrixFlag, Size5Flag});
  38. Mat6x6 = SYSTEM.VAL(LONGINT, {SmallMatrixFlag, Size6Flag});
  39. Mat7x7 = SYSTEM.VAL(LONGINT, {SmallMatrixFlag, Size7Flag});
  40. Mat8x8 = SYSTEM.VAL(LONGINT, {SmallMatrixFlag, Size8Flag});
  41. Vec2 = SYSTEM.VAL(LONGINT, {SmallVectorFlag, Size2Flag});
  42. Vec3 = SYSTEM.VAL(LONGINT, {SmallVectorFlag, Size3Flag});
  43. Vec4 = SYSTEM.VAL(LONGINT, {SmallVectorFlag, Size4Flag});
  44. Vec5 = SYSTEM.VAL(LONGINT, {SmallVectorFlag, Size5Flag});
  45. Vec6 = SYSTEM.VAL(LONGINT, {SmallVectorFlag, Size6Flag});
  46. Vec7 = SYSTEM.VAL(LONGINT, {SmallVectorFlag, Size7Flag});
  47. Vec8 = SYSTEM.VAL(LONGINT, {SmallVectorFlag, Size8Flag});
  48. MatVec2x2 = SYSTEM.VAL(LONGINT, {SmallMatrixFlag, SmallVectorFlag, Size2Flag});
  49. MatVec3x3 = SYSTEM.VAL(LONGINT, {SmallMatrixFlag, SmallVectorFlag, Size3Flag});
  50. MatVec4x4 = SYSTEM.VAL(LONGINT, {SmallMatrixFlag, SmallVectorFlag, Size4Flag});
  51. MatVec5x5 = SYSTEM.VAL(LONGINT, {SmallMatrixFlag, SmallVectorFlag, Size5Flag});
  52. MatVec6x6 = SYSTEM.VAL(LONGINT, {SmallMatrixFlag, SmallVectorFlag, Size6Flag});
  53. MatVec7x7 = SYSTEM.VAL(LONGINT, {SmallMatrixFlag, SmallVectorFlag, Size7Flag});
  54. MatVec8x8 = SYSTEM.VAL(LONGINT, {SmallMatrixFlag, SmallVectorFlag, Size8Flag});
  55. SmallArrayMask = {SmallMatrixFlag, SmallVectorFlag, Size2Flag, Size3Flag, Size4Flag, Size5Flag, Size6Flag, Size7Flag, Size8Flag};
  56. TYPE
  57. GenericUnaryAALoopS = PROCEDURE (ladr, dadr: ADDRESS; linc, dinc, len: SIZE; op: PROCEDURE (x: SHORTINT):SHORTINT);
  58. GenericUnaryAALoopI = PROCEDURE (ladr, dadr: ADDRESS; linc, dinc, len: SIZE; op: PROCEDURE (x: INTEGER):INTEGER);
  59. GenericUnaryAALoopL = PROCEDURE (ladr, dadr: ADDRESS; linc, dinc, len: SIZE; op: PROCEDURE (x: LONGINT):LONGINT);
  60. GenericUnaryAALoopH = PROCEDURE (ladr, dadr: ADDRESS; linc, dinc, len: SIZE; op: PROCEDURE (x: HUGEINT):HUGEINT);
  61. GenericUnaryAALoopR = PROCEDURE (ladr, dadr: ADDRESS; linc, dinc, len: SIZE; op: PROCEDURE (x: REAL):REAL);
  62. GenericUnaryAALoopX = PROCEDURE (ladr, dadr: ADDRESS; linc, dinc, len: SIZE; op: PROCEDURE (x: LONGREAL):LONGREAL);
  63. GenericUnaryAALoopZ = PROCEDURE (ladr, dadr: ADDRESS; linc, dinc, len: SIZE; op: PROCEDURE (x: COMPLEX):COMPLEX);
  64. GenericUnaryAALoopLZ = PROCEDURE (ladr, dadr: ADDRESS; linc, dinc, len: SIZE; op: PROCEDURE (x: LONGCOMPLEX):LONGCOMPLEX);
  65. UnaryAALoop = PROCEDURE (ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  66. UnaryASLoop = PROCEDURE (ladr, dadr: ADDRESS; linc, len: SIZE);
  67. UnarySALoop = PROCEDURE (ladr, dadr: ADDRESS; dinc, len: SIZE);
  68. BinaryAAALoop = PROCEDURE (ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  69. BinaryASALoop = PROCEDURE (ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  70. BinaryAASLoop = PROCEDURE (ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  71. BinaryAABLoop = PROCEDURE (ladr, radr: ADDRESS; linc, rinc, len: SIZE):BOOLEAN;
  72. BinaryASBLoop = PROCEDURE (ladr, radr: ADDRESS; linc, len: SIZE):BOOLEAN;
  73. LenType = SIZE;
  74. FastMatMul* = PROCEDURE (matrixA, matrixB, matrixC: ADDRESS; IncA, StrideA, IncB, StrideB, IncC, StrideC, RowsA, ColsA, RowsB, ColsB: SIZE):BOOLEAN;
  75. TransposeP* = PROCEDURE (ladr, dadr: ADDRESS; lstride, linc, dstride, dinc, rows, cols: SIZE);
  76. LenInc* = RECORD
  77. len*: SIZE;
  78. inc*: SIZE;
  79. END;
  80. ArrayDescriptor* = RECORD
  81. ptr*: ANY;
  82. adr*: ADDRESS;
  83. flags*: SET;
  84. dim*: SIZE;
  85. elementSize*: SIZE;
  86. END;
  87. Tensor = POINTER TO ArrayDescriptor;
  88. UnsafeArray* = POINTER {UNSAFE, UNTRACED} TO RECORD (ArrayDescriptor)
  89. lens*: ARRAY 8 OF LenInc;
  90. END;
  91. A0 = RECORD (ArrayDescriptor)
  92. END;
  93. A1 = RECORD (ArrayDescriptor)
  94. lens: ARRAY 1 OF LenInc;
  95. END;
  96. A2 = RECORD (ArrayDescriptor)
  97. lens: ARRAY 2 OF LenInc;
  98. END;
  99. A3 = RECORD (ArrayDescriptor)
  100. lens: ARRAY 3 OF LenInc;
  101. END;
  102. A4 = RECORD (ArrayDescriptor)
  103. lens: ARRAY 4 OF LenInc;
  104. END;
  105. A5 = RECORD (ArrayDescriptor)
  106. lens: ARRAY 5 OF LenInc;
  107. END;
  108. A6 = RECORD (ArrayDescriptor)
  109. lens: ARRAY 6 OF LenInc;
  110. END;
  111. A7 = RECORD (ArrayDescriptor)
  112. lens: ARRAY 7 OF LenInc;
  113. END;
  114. A8 = RECORD (ArrayDescriptor)
  115. lens: ARRAY 8 OF LenInc;
  116. END;
  117. T0 = POINTER TO A0;
  118. T1 = POINTER TO A1;
  119. T2 = POINTER TO A2;
  120. T3 = POINTER TO A3;
  121. T4 = POINTER TO A4;
  122. T5 = POINTER TO A5;
  123. T6 = POINTER TO A6;
  124. T7 = POINTER TO A7;
  125. T8 = POINTER TO A8;
  126. SmallMatMul* = PROCEDURE (dadr, ladr, radr: ADDRESS);
  127. LongintPtr = POINTER {UNSAFE, UNTRACED} TO RECORD
  128. val: LONGINT;
  129. END;
  130. SizePtr = POINTER {UNSAFE, UNTRACED} TO RECORD
  131. val: SIZE;
  132. END;
  133. VAR
  134. temporary*: T0;
  135. alloc*: LONGINT;
  136. allocTemp*: LONGINT;
  137. loopSPAXAX*, loopSPARAR*: BinaryAASLoop;
  138. loopSPAZAZ, loopSPALZALZ: BinaryAASLoop;
  139. loopAddAXAX*, loopAddARAR*, loopAddAZAZ*, loopAddALZALZ*: BinaryAAALoop;
  140. loopMatMulAXAX*, loopMatMulARAR*: BinaryAASLoop;
  141. loopMatMulIncAXAX*, loopMatMulIncARAR*: BinaryAASLoop;
  142. loopMulAXSX*, loopMulARSR*, loopMulAZSZ*, loopMulALZSLZ*: BinaryASALoop;
  143. loopIncMulAXSX*, loopIncMulARSR*: BinaryASALoop;
  144. matMulX*, matMulR*: FastMatMul;
  145. matMulIncX*, matMulIncR*: FastMatMul;
  146. transpose4*: TransposeP;
  147. transpose8*: TransposeP;
  148. matMulR2x2*: SmallMatMul;
  149. matMulR3x3*: SmallMatMul;
  150. matMulR4x4*: SmallMatMul;
  151. matVecMulR2x2*: SmallMatMul;
  152. matVecMulR3x3*: SmallMatMul;
  153. matVecMulR4x4*: SmallMatMul;
  154. matMulLR2x2*: SmallMatMul;
  155. matMulLR3x3*: SmallMatMul;
  156. matMulLR4x4*: SmallMatMul;
  157. matVecMulLR2x2*: SmallMatMul;
  158. matVecMulLR3x3*: SmallMatMul;
  159. matVecMulLR4x4*: SmallMatMul;
  160. PROCEDURE ^ SetDefaults*;
  161. PROCEDURE ^ Err(CONST s: ARRAY OF CHAR);
  162. PROCEDURE ^ GetIncr(base: UnsafeArray; dim: SIZE): SIZE;
  163. PROCEDURE ^ PutInc(base: UnsafeArray; dim, val: SIZE);
  164. PROCEDURE ^ GetLen(base: UnsafeArray; dim: SIZE): SIZE;
  165. PROCEDURE ^ PutLen(base: UnsafeArray; dim, val: SIZE);
  166. PROCEDURE ^ GetAdr(base: UnsafeArray): ADDRESS;
  167. PROCEDURE ^ PutAdr(base: UnsafeArray; value: ADDRESS);
  168. PROCEDURE ^ Align(value: ADDRESS): ADDRESS;
  169. PROCEDURE ^ GetPtr(base: UnsafeArray): ANY;
  170. PROCEDURE ^ SafePut(VAR dest: ANY; src: ANY);
  171. PROCEDURE ^ PutPtr(base: UnsafeArray; value: ANY);
  172. PROCEDURE ^ GetSize(base: UnsafeArray): SIZE;
  173. PROCEDURE ^ PutSize(base: UnsafeArray; val: SIZE);
  174. PROCEDURE ^ GetDim(base: UnsafeArray): SIZE;
  175. PROCEDURE ^ GetFlags(base: UnsafeArray): SET;
  176. PROCEDURE ^ PutDim(base: UnsafeArray; dim: SIZE);
  177. PROCEDURE ^ PutFlags(base: UnsafeArray; flags: SET);
  178. PROCEDURE ^ Report(CONST name: ARRAY OF CHAR; s: ADDRESS);
  179. PROCEDURE ^ GetArrayDesc(dim: SIZE): Tensor;
  180. PROCEDURE ^ EnsureArrayDesc*(dim: SIZE; VAR d: Tensor);
  181. PROCEDURE ^ Halt(code: SIZE; left, right, dest: ADDRESS);
  182. PROCEDURE ^ FindPattern1(left, dim: ADDRESS; VAR d, len, linc: SIZE);
  183. PROCEDURE ^ FindPattern2(left, right: ADDRESS; dim: SIZE; VAR d, len, linc, ri: SIZE);
  184. PROCEDURE ^ FindPattern3(left, right, dest: ADDRESS; dim: SIZE; VAR d, len, linc, ri, di: SIZE);
  185. PROCEDURE ^ Reverse(src: ADDRESS; dim: SIZE);
  186. PROCEDURE ^ CopyUpCompatible(dest, src: ADDRESS; VAR modes: SET);
  187. PROCEDURE ^ AllocateTemp(VAR dest: ADDRESS; src: ADDRESS; Size: SIZE): ANY;
  188. PROCEDURE ^ ApplyGenericUnaryAAOpS(d, l: ADDRESS; elementSize: SIZE; Loop: GenericUnaryAALoopS; op: PROCEDURE (x: SHORTINT):SHORTINT);
  189. PROCEDURE ^ ApplyGenericUnaryAAOpI(d, l: ADDRESS; elementSize: SIZE; Loop: GenericUnaryAALoopI; op: PROCEDURE (x: INTEGER):INTEGER);
  190. PROCEDURE ^ ApplyGenericUnaryAAOpL(d, l: ADDRESS; elementSize: SIZE; Loop: GenericUnaryAALoopL; op: PROCEDURE (x: LONGINT):LONGINT);
  191. PROCEDURE ^ ApplyGenericUnaryAAOpH(d, l: ADDRESS; elementSize: SIZE; Loop: GenericUnaryAALoopH; op: PROCEDURE (x: HUGEINT):HUGEINT);
  192. PROCEDURE ^ ApplyGenericUnaryAAOpR(d, l: ADDRESS; elementSize: SIZE; Loop: GenericUnaryAALoopR; op: PROCEDURE (x: REAL):REAL);
  193. PROCEDURE ^ ApplyGenericUnaryAAOpX(d, l: ADDRESS; elementSize: SIZE; Loop: GenericUnaryAALoopX; op: PROCEDURE (x: LONGREAL):LONGREAL);
  194. PROCEDURE ^ ApplyGenericUnaryAAOpZ(d, l: ADDRESS; elementSize: SIZE; Loop: GenericUnaryAALoopZ; op: PROCEDURE (x: COMPLEX):COMPLEX);
  195. PROCEDURE ^ ApplyGenericUnaryAAOpLZ(d, l: ADDRESS; elementSize: SIZE; Loop: GenericUnaryAALoopLZ; op: PROCEDURE (x: LONGCOMPLEX):LONGCOMPLEX);
  196. PROCEDURE ^ ApplyUnaryAAOp(d, l: ADDRESS; elementSize: SIZE; Loop: UnaryAALoop);
  197. PROCEDURE ^ ApplyUnaryASOp(dest, l: ADDRESS; Loop: UnaryASLoop);
  198. PROCEDURE ^ ApplyUnarySAOp(d, right: ADDRESS; Loop: UnarySALoop);
  199. PROCEDURE ^ ApplyBinaryAAAOp(d, l, r: ADDRESS; elementSize: SIZE; Loop: BinaryAAALoop);
  200. PROCEDURE ^ ApplyBinaryASAOp(d, l, right: ADDRESS; elementSize: SIZE; Loop: BinaryASALoop);
  201. PROCEDURE ^ ApplyBinaryAASOp(dest, l, r: ADDRESS; Loop: BinaryAASLoop);
  202. PROCEDURE ^ ApplyBinaryAABOp(l, r: ADDRESS; Loop: BinaryAABLoop; geometryMismatchDefault: BOOLEAN): BOOLEAN;
  203. PROCEDURE ^ ApplyBinaryASBOp(l, right: ADDRESS; Loop: BinaryASBLoop): BOOLEAN;
  204. PROCEDURE ^ Copy4(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  205. PROCEDURE ^ Copy2(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  206. PROCEDURE ^ Copy1(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  207. PROCEDURE ^ Copy8(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  208. PROCEDURE ^ MoveB*(srcadr, destadr, len: SIZE);
  209. PROCEDURE ^ CopyContent(dest, src: ADDRESS; elementSize: SIZE);
  210. PROCEDURE ^ AllocateSame(VAR dest: ADDRESS; src: ADDRESS; elementsize: SIZE): ANY;
  211. PROCEDURE ^ TempDescCopy(src: ADDRESS): ANY;
  212. PROCEDURE ^ CopyArraySelf*(dest, src: ADDRESS; elementsize: SIZE);
  213. PROCEDURE ^ CopyArray*(dest: ADDRESS; src: ADDRESS; elementsize: SIZE);
  214. PROCEDURE ^ CopyTensorSelf*(VAR dest: ADDRESS; src: ADDRESS; elementsize: SIZE);
  215. PROCEDURE ^ CopyTensor*(VAR dest: ADDRESS; src: ADDRESS; elementsize: SIZE);
  216. PROCEDURE ^ ShallowCopy*(VAR dest: ADDRESS; src: ADDRESS): ANY;
  217. PROCEDURE ^ ZeroCopy*(CONST src: ARRAY [?] ; VAR dest: ARRAY [?] );
  218. OPERATOR ^ "ALIAS"-(CONST src: ARRAY [?] ): ARRAY [?] ;
  219. PROCEDURE ^ SameShape(l, r: ADDRESS): BOOLEAN;
  220. PROCEDURE ^ ConvertASAILoop(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  221. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF SHORTINT): ARRAY [?] OF INTEGER;
  222. OPERATOR ^ "LONG"-(CONST src: ARRAY [?] OF SHORTINT): ARRAY [?] OF INTEGER;
  223. PROCEDURE ^ ConvertLoopSL(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  224. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF SHORTINT): ARRAY [?] OF LONGINT;
  225. PROCEDURE ^ ConvertLoopSR(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  226. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF SHORTINT): ARRAY [?] OF REAL;
  227. PROCEDURE ^ ConvertLoopSX(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  228. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF SHORTINT): ARRAY [?] OF LONGREAL;
  229. PROCEDURE ^ ConvertLoopIS(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  230. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF INTEGER): ARRAY [?] OF SHORTINT;
  231. OPERATOR ^ "SHORT"-(CONST src: ARRAY [?] OF INTEGER): ARRAY [?] OF SHORTINT;
  232. PROCEDURE ^ ConvertLoopIL(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  233. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF INTEGER): ARRAY [?] OF LONGINT;
  234. OPERATOR ^ "LONG"-(CONST src: ARRAY [?] OF INTEGER): ARRAY [?] OF LONGINT;
  235. PROCEDURE ^ ConvertLoopIR(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  236. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF INTEGER): ARRAY [?] OF REAL;
  237. PROCEDURE ^ ConvertLoopIX(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  238. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF INTEGER): ARRAY [?] OF LONGREAL;
  239. PROCEDURE ^ ConvertLoopLI(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  240. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF LONGINT): ARRAY [?] OF INTEGER;
  241. OPERATOR ^ "SHORT"-(CONST src: ARRAY [?] OF LONGINT): ARRAY [?] OF INTEGER;
  242. PROCEDURE ^ ConvertLoopLR(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  243. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF LONGINT): ARRAY [?] OF REAL;
  244. PROCEDURE ^ ConvertLoopLX(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  245. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGREAL;
  246. PROCEDURE ^ ConvertLoopRL(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  247. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF REAL): ARRAY [?] OF LONGINT;
  248. OPERATOR ^ "ENTIER"-(CONST src: ARRAY [?] OF REAL): ARRAY [?] OF LONGINT;
  249. PROCEDURE ^ ConvertLoopRX(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  250. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF REAL): ARRAY [?] OF LONGREAL;
  251. OPERATOR ^ "LONG"-(CONST src: ARRAY [?] OF REAL): ARRAY [?] OF LONGREAL;
  252. PROCEDURE ^ ConvertLoopXR(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  253. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF LONGREAL): ARRAY [?] OF REAL;
  254. OPERATOR ^ "SHORT"-(CONST src: ARRAY [?] OF LONGREAL): ARRAY [?] OF REAL;
  255. PROCEDURE ^ ConvertLoopXL(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  256. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGINT;
  257. OPERATOR ^ "ENTIER"-(CONST src: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGINT;
  258. PROCEDURE ^ ConvertLoopLY(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  259. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF LONGINT): ARRAY [?] OF SIZE;
  260. PROCEDURE ^ ConvertLoopYZ(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  261. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF SIZE): ARRAY [?] OF LONGREAL;
  262. PROCEDURE ^ ConvertLoopYR(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  263. OPERATOR ^ "@Convert"-(CONST src: ARRAY [?] OF SIZE): ARRAY [?] OF REAL;
  264. PROCEDURE ^ NotLoopAB(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  265. OPERATOR ^ "~"-(CONST src: ARRAY [?] OF BOOLEAN): ARRAY [?] OF BOOLEAN;
  266. PROCEDURE ^ GenericLoopS(ladr, dadr: ADDRESS; linc, dinc, len: SIZE; op: PROCEDURE (x: SHORTINT):SHORTINT);
  267. PROCEDURE ^ GenericLoopI(ladr, dadr: ADDRESS; linc, dinc, len: SIZE; op: PROCEDURE (x: INTEGER):INTEGER);
  268. PROCEDURE ^ GenericLoopL(ladr, dadr: ADDRESS; linc, dinc, len: SIZE; op: PROCEDURE (x: LONGINT):LONGINT);
  269. PROCEDURE ^ GenericLoopH(ladr, dadr: ADDRESS; linc, dinc, len: SIZE; op: PROCEDURE (x: HUGEINT):HUGEINT);
  270. PROCEDURE ^ GenericLoopR(ladr, dadr: ADDRESS; linc, dinc, len: SIZE; op: PROCEDURE (x: REAL):REAL);
  271. PROCEDURE ^ GenericLoopX(ladr, dadr: ADDRESS; linc, dinc, len: SIZE; op: PROCEDURE (x: LONGREAL):LONGREAL);
  272. PROCEDURE ^ GenericLoopZ(ladr, dadr: ADDRESS; linc, dinc, len: SIZE; op: PROCEDURE (x: COMPLEX):COMPLEX);
  273. PROCEDURE ^ GenericLoopLZ(ladr, dadr: ADDRESS; linc, dinc, len: SIZE; op: PROCEDURE (x: LONGCOMPLEX):LONGCOMPLEX);
  274. PROCEDURE ^ MinusLoopS(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  275. OPERATOR ^ "-"-(CONST src: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  276. PROCEDURE ^ MinusLoopI(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  277. OPERATOR ^ "-"-(CONST src: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  278. PROCEDURE ^ MinusLoopL(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  279. OPERATOR ^ "-"-(CONST src: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  280. PROCEDURE ^ MinusLoopY(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  281. OPERATOR ^ "-"-(CONST src: ARRAY [?] OF SIZE): ARRAY [?] OF SIZE;
  282. PROCEDURE ^ MinusLoopR(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  283. OPERATOR ^ "-"-(CONST src: ARRAY [?] OF REAL): ARRAY [?] OF REAL;
  284. PROCEDURE ^ MinusLoopX(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  285. OPERATOR ^ "-"-(CONST src: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGREAL;
  286. PROCEDURE ^ AddASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  287. OPERATOR ^ "+"-(CONST left, right: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  288. PROCEDURE ^ AddAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  289. OPERATOR ^ "+"-(CONST left, right: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  290. PROCEDURE ^ AddALALLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  291. OPERATOR ^ "+"-(CONST left, right: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  292. PROCEDURE ^ AddARARLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  293. OPERATOR ^ "+"-(CONST left, right: ARRAY [?] OF REAL): ARRAY [?] OF REAL;
  294. PROCEDURE ^ AddAXAXLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  295. OPERATOR ^ "+"-(CONST left, right: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGREAL;
  296. PROCEDURE ^ AddAZAZLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  297. OPERATOR ^ "+"-(CONST left, right: ARRAY [?] OF COMPLEX): ARRAY [?] OF COMPLEX;
  298. PROCEDURE ^ AddAHAHLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  299. OPERATOR ^ "+"-(CONST left, right: ARRAY [?] OF HUGEINT): ARRAY [?] OF HUGEINT;
  300. PROCEDURE ^ AddAYAYLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  301. OPERATOR ^ "+"-(CONST left, right: ARRAY [?] OF SIZE): ARRAY [?] OF SIZE;
  302. PROCEDURE ^ AddALZALZLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  303. OPERATOR ^ "+"-(CONST left, right: ARRAY [?] OF LONGCOMPLEX): ARRAY [?] OF LONGCOMPLEX;
  304. PROCEDURE ^ AddASSSLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  305. OPERATOR ^ "+"-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): ARRAY [?] OF SHORTINT;
  306. OPERATOR ^ "+"-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  307. PROCEDURE ^ AddAISILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  308. OPERATOR ^ "+"-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): ARRAY [?] OF INTEGER;
  309. OPERATOR ^ "+"-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  310. PROCEDURE ^ AddALSLLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  311. OPERATOR ^ "+"-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): ARRAY [?] OF LONGINT;
  312. OPERATOR ^ "+"-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  313. PROCEDURE ^ AddARSRLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  314. OPERATOR ^ "+"-(CONST left: ARRAY [?] OF REAL; right: REAL): ARRAY [?] OF REAL;
  315. OPERATOR ^ "+"-(left: REAL; CONST right: ARRAY [?] OF REAL): ARRAY [?] OF REAL;
  316. PROCEDURE ^ AddAXSXLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  317. OPERATOR ^ "+"-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): ARRAY [?] OF LONGREAL;
  318. OPERATOR ^ "+"-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGREAL;
  319. PROCEDURE ^ AddAZSZLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  320. OPERATOR ^ "+"-(CONST left: ARRAY [?] OF COMPLEX; right: COMPLEX): ARRAY [?] OF COMPLEX;
  321. OPERATOR ^ "+"-(left: COMPLEX; CONST right: ARRAY [?] OF COMPLEX): ARRAY [?] OF COMPLEX;
  322. PROCEDURE ^ AddAHSHLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  323. OPERATOR ^ "+"-(CONST left: ARRAY [?] OF HUGEINT; right: HUGEINT): ARRAY [?] OF HUGEINT;
  324. OPERATOR ^ "+"-(left: HUGEINT; CONST right: ARRAY [?] OF HUGEINT): ARRAY [?] OF HUGEINT;
  325. PROCEDURE ^ AddAYSYLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  326. OPERATOR ^ "+"-(CONST left: ARRAY [?] OF SIZE; right: SIZE): ARRAY [?] OF SIZE;
  327. OPERATOR ^ "+"-(left: SIZE; CONST right: ARRAY [?] OF SIZE): ARRAY [?] OF SIZE;
  328. PROCEDURE ^ AddALZSLZLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  329. OPERATOR ^ "+"-(CONST left: ARRAY [?] OF LONGCOMPLEX; right: LONGCOMPLEX): ARRAY [?] OF LONGCOMPLEX;
  330. OPERATOR ^ "+"-(left: LONGCOMPLEX; CONST right: ARRAY [?] OF LONGCOMPLEX): ARRAY [?] OF LONGCOMPLEX;
  331. PROCEDURE ^ SubASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  332. OPERATOR ^ "-"-(CONST left, right: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  333. PROCEDURE ^ SubAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  334. OPERATOR ^ "-"-(CONST left, right: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  335. PROCEDURE ^ SubALALLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  336. OPERATOR ^ "-"-(CONST left, right: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  337. PROCEDURE ^ SubAYAYLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  338. OPERATOR ^ "-"-(CONST left, right: ARRAY [?] OF SIZE): ARRAY [?] OF SIZE;
  339. PROCEDURE ^ SubARARLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  340. OPERATOR ^ "-"-(CONST left, right: ARRAY [?] OF REAL): ARRAY [?] OF REAL;
  341. PROCEDURE ^ SubAXAXLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  342. OPERATOR ^ "-"-(CONST left, right: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGREAL;
  343. PROCEDURE ^ SubAZAZLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  344. OPERATOR ^ "-"-(CONST left, right: ARRAY [?] OF COMPLEX): ARRAY [?] OF COMPLEX;
  345. PROCEDURE ^ SubALZALZLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  346. OPERATOR ^ "-"-(CONST left, right: ARRAY [?] OF LONGCOMPLEX): ARRAY [?] OF LONGCOMPLEX;
  347. OPERATOR ^ "-"-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): ARRAY [?] OF SHORTINT;
  348. OPERATOR ^ "-"-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): ARRAY [?] OF INTEGER;
  349. OPERATOR ^ "-"-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): ARRAY [?] OF LONGINT;
  350. OPERATOR ^ "-"-(CONST left: ARRAY [?] OF SIZE; right: SIZE): ARRAY [?] OF SIZE;
  351. OPERATOR ^ "-"-(CONST left: ARRAY [?] OF REAL; right: REAL): ARRAY [?] OF REAL;
  352. OPERATOR ^ "-"-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): ARRAY [?] OF LONGREAL;
  353. OPERATOR ^ "-"-(CONST left: ARRAY [?] OF COMPLEX; right: COMPLEX): ARRAY [?] OF COMPLEX;
  354. OPERATOR ^ "-"-(CONST left: ARRAY [?] OF LONGCOMPLEX; right: LONGCOMPLEX): ARRAY [?] OF LONGCOMPLEX;
  355. PROCEDURE ^ SubSSASLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  356. OPERATOR ^ "-"-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  357. PROCEDURE ^ SubSIAILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  358. OPERATOR ^ "-"-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  359. PROCEDURE ^ SubSLALLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  360. OPERATOR ^ "-"-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  361. PROCEDURE ^ SubSYAYLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  362. OPERATOR ^ "-"-(left: SIZE; CONST right: ARRAY [?] OF SIZE): ARRAY [?] OF SIZE;
  363. PROCEDURE ^ SubSRARLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  364. OPERATOR ^ "-"-(left: REAL; CONST right: ARRAY [?] OF REAL): ARRAY [?] OF REAL;
  365. PROCEDURE ^ SubSXAXLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  366. OPERATOR ^ "-"-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGREAL;
  367. PROCEDURE ^ SubSZAZLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  368. OPERATOR ^ "-"-(left: COMPLEX; CONST right: ARRAY [?] OF COMPLEX): ARRAY [?] OF COMPLEX;
  369. PROCEDURE ^ SubSLZALZLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  370. OPERATOR ^ "-"-(left: LONGCOMPLEX; CONST right: ARRAY [?] OF LONGCOMPLEX): ARRAY [?] OF LONGCOMPLEX;
  371. PROCEDURE ^ EMulASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  372. OPERATOR ^ ".*"-(CONST left, right: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  373. PROCEDURE ^ EMulAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  374. OPERATOR ^ ".*"-(CONST left, right: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  375. PROCEDURE ^ EMulALALLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  376. OPERATOR ^ ".*"-(CONST left, right: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  377. PROCEDURE ^ EMulARARLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  378. OPERATOR ^ ".*"-(CONST left, right: ARRAY [?] OF REAL): ARRAY [?] OF REAL;
  379. PROCEDURE ^ EMulAXAXLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  380. OPERATOR ^ ".*"-(CONST left, right: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGREAL;
  381. PROCEDURE ^ EMulAZAZLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  382. OPERATOR ^ ".*"-(CONST left, right: ARRAY [?] OF COMPLEX): ARRAY [?] OF COMPLEX;
  383. PROCEDURE ^ EMulALZALZLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  384. OPERATOR ^ ".*"-(CONST left, right: ARRAY [?] OF LONGCOMPLEX): ARRAY [?] OF LONGCOMPLEX;
  385. PROCEDURE ^ EMulIncASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  386. OPERATOR ^ ".*+"-(CONST left, right: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  387. PROCEDURE ^ EMulIncAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  388. OPERATOR ^ ".*+"-(CONST left, right: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  389. PROCEDURE ^ EMulIncALALLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  390. OPERATOR ^ ".*+"-(CONST left, right: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  391. PROCEDURE ^ EMulIncARARLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  392. OPERATOR ^ ".*+"-(CONST left, right: ARRAY [?] OF REAL): ARRAY [?] OF REAL;
  393. PROCEDURE ^ EMulIncAXAXLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  394. OPERATOR ^ ".*+"-(CONST left, right: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGREAL;
  395. PROCEDURE ^ MulASSSLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  396. OPERATOR ^ "*"-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): ARRAY [?] OF SHORTINT;
  397. OPERATOR ^ "*"-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  398. PROCEDURE ^ MulAISILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  399. OPERATOR ^ "*"-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): ARRAY [?] OF INTEGER;
  400. OPERATOR ^ "*"-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  401. PROCEDURE ^ MulALSLLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  402. OPERATOR ^ "*"-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): ARRAY [?] OF LONGINT;
  403. OPERATOR ^ "*"-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  404. PROCEDURE ^ MulAYSYLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  405. OPERATOR ^ "*"-(CONST left: ARRAY [?] OF SIZE; right: SIZE): ARRAY [?] OF SIZE;
  406. OPERATOR ^ "*"-(left: SIZE; CONST right: ARRAY [?] OF SIZE): ARRAY [?] OF SIZE;
  407. PROCEDURE ^ MulARSRLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  408. OPERATOR ^ "*"-(CONST left: ARRAY [?] OF REAL; right: REAL): ARRAY [?] OF REAL;
  409. OPERATOR ^ "*"-(left: REAL; CONST right: ARRAY [?] OF REAL): ARRAY [?] OF REAL;
  410. PROCEDURE ^ MulAXSXLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  411. OPERATOR ^ "*"-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): ARRAY [?] OF LONGREAL;
  412. OPERATOR ^ "*"-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGREAL;
  413. PROCEDURE ^ MulAZSZLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  414. OPERATOR ^ "*"-(CONST left: ARRAY [?] OF COMPLEX; right: COMPLEX): ARRAY [?] OF COMPLEX;
  415. OPERATOR ^ "*"-(left: COMPLEX; CONST right: ARRAY [?] OF COMPLEX): ARRAY [?] OF COMPLEX;
  416. PROCEDURE ^ MulALZSLZLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  417. OPERATOR ^ "*"-(CONST left: ARRAY [?] OF LONGCOMPLEX; right: LONGCOMPLEX): ARRAY [?] OF LONGCOMPLEX;
  418. OPERATOR ^ "*"-(left: LONGCOMPLEX; CONST right: ARRAY [?] OF LONGCOMPLEX): ARRAY [?] OF LONGCOMPLEX;
  419. PROCEDURE ^ IncMulASSSLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  420. OPERATOR ^ "INCMUL"-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): ARRAY [?] OF SHORTINT;
  421. OPERATOR ^ "INCMUL"-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  422. OPERATOR ^ "DECMUL"-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): ARRAY [?] OF SHORTINT;
  423. OPERATOR ^ "DECMUL"-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  424. PROCEDURE ^ IncMulAISILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  425. OPERATOR ^ "INCMUL"-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): ARRAY [?] OF INTEGER;
  426. OPERATOR ^ "INCMUL"-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  427. OPERATOR ^ "DECMUL"-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): ARRAY [?] OF INTEGER;
  428. OPERATOR ^ "DECMUL"-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  429. PROCEDURE ^ IncMulALSLLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  430. OPERATOR ^ "INCMUL"-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): ARRAY [?] OF LONGINT;
  431. OPERATOR ^ "INCMUL"-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  432. OPERATOR ^ "DECMUL"-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): ARRAY [?] OF LONGINT;
  433. OPERATOR ^ "DECMUL"-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  434. PROCEDURE ^ IncMulARSRLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  435. OPERATOR ^ "INCMUL"-(CONST left: ARRAY [?] OF REAL; right: REAL): ARRAY [?] OF REAL;
  436. OPERATOR ^ "INCMUL"-(left: REAL; CONST right: ARRAY [?] OF REAL): ARRAY [?] OF REAL;
  437. OPERATOR ^ "DECMUL"-(CONST left: ARRAY [?] OF REAL; right: REAL): ARRAY [?] OF REAL;
  438. OPERATOR ^ "DECMUL"-(left: REAL; CONST right: ARRAY [?] OF REAL): ARRAY [?] OF REAL;
  439. PROCEDURE ^ IncMulAXSXLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  440. OPERATOR ^ "INCMUL"-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): ARRAY [?] OF LONGREAL;
  441. OPERATOR ^ "INCMUL"-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGREAL;
  442. OPERATOR ^ "DECMUL"-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): ARRAY [?] OF LONGREAL;
  443. OPERATOR ^ "DECMUL"-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGREAL;
  444. PROCEDURE ^ EDivideASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  445. OPERATOR ^ "./"-(CONST left, right: ARRAY [?] OF SHORTINT): ARRAY [?] OF REAL;
  446. PROCEDURE ^ EDivideAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  447. OPERATOR ^ "./"-(CONST left, right: ARRAY [?] OF INTEGER): ARRAY [?] OF REAL;
  448. PROCEDURE ^ EDivideALALLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  449. OPERATOR ^ "./"-(CONST left, right: ARRAY [?] OF LONGINT): ARRAY [?] OF REAL;
  450. PROCEDURE ^ EDivideARARLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  451. OPERATOR ^ "./"-(CONST left, right: ARRAY [?] OF REAL): ARRAY [?] OF REAL;
  452. PROCEDURE ^ EDivideAXAXLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  453. OPERATOR ^ "./"-(CONST left, right: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGREAL;
  454. PROCEDURE ^ EDivideAZAZLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  455. OPERATOR ^ "./"-(CONST left, right: ARRAY [?] OF COMPLEX): ARRAY [?] OF COMPLEX;
  456. PROCEDURE ^ EDivideALZALZLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  457. OPERATOR ^ "./"-(CONST left, right: ARRAY [?] OF LONGCOMPLEX): ARRAY [?] OF LONGCOMPLEX;
  458. PROCEDURE ^ DivideASSSLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  459. OPERATOR ^ "/"-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): ARRAY [?] OF REAL;
  460. PROCEDURE ^ DivideSSASLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  461. OPERATOR ^ "/"-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): ARRAY [?] OF REAL;
  462. PROCEDURE ^ DivideAISILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  463. OPERATOR ^ "/"-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): ARRAY [?] OF REAL;
  464. PROCEDURE ^ DivideSIAILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  465. OPERATOR ^ "/"-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): ARRAY [?] OF REAL;
  466. PROCEDURE ^ DivideALSLLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  467. OPERATOR ^ "/"-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): ARRAY [?] OF REAL;
  468. PROCEDURE ^ DivideSLALLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  469. OPERATOR ^ "/"-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): ARRAY [?] OF REAL;
  470. PROCEDURE ^ DivideARSRLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  471. OPERATOR ^ "/"-(CONST left: ARRAY [?] OF REAL; right: REAL): ARRAY [?] OF REAL;
  472. PROCEDURE ^ DivideSRARLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  473. OPERATOR ^ "/"-(left: REAL; CONST right: ARRAY [?] OF REAL): ARRAY [?] OF REAL;
  474. PROCEDURE ^ DivideAXSXLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  475. OPERATOR ^ "/"-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): ARRAY [?] OF LONGREAL;
  476. PROCEDURE ^ DivideSXAXLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  477. OPERATOR ^ "/"-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGREAL;
  478. PROCEDURE ^ DivideAZSZLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  479. OPERATOR ^ "/"-(CONST left: ARRAY [?] OF COMPLEX; right: COMPLEX): ARRAY [?] OF COMPLEX;
  480. PROCEDURE ^ DivideSZAZLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  481. OPERATOR ^ "/"-(left: COMPLEX; CONST right: ARRAY [?] OF COMPLEX): ARRAY [?] OF COMPLEX;
  482. PROCEDURE ^ DivideALZSLZLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  483. OPERATOR ^ "/"-(CONST left: ARRAY [?] OF LONGCOMPLEX; right: LONGCOMPLEX): ARRAY [?] OF LONGCOMPLEX;
  484. PROCEDURE ^ DivideSLZALZLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  485. OPERATOR ^ "/"-(left: LONGCOMPLEX; CONST right: ARRAY [?] OF LONGCOMPLEX): ARRAY [?] OF LONGCOMPLEX;
  486. PROCEDURE ^ EDivASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  487. OPERATOR ^ "DIV"-(CONST left, right: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  488. PROCEDURE ^ EDivAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  489. OPERATOR ^ "DIV"-(CONST left, right: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  490. PROCEDURE ^ EDivALALLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  491. OPERATOR ^ "DIV"-(CONST left, right: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  492. PROCEDURE ^ EDivAYAYLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  493. OPERATOR ^ "DIV"-(CONST left, right: ARRAY [?] OF SIZE): ARRAY [?] OF SIZE;
  494. PROCEDURE ^ DivASSSLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  495. OPERATOR ^ "DIV"-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): ARRAY [?] OF SHORTINT;
  496. PROCEDURE ^ DivSSASLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  497. OPERATOR ^ "DIV"-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  498. PROCEDURE ^ DivAISILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  499. OPERATOR ^ "DIV"-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): ARRAY [?] OF INTEGER;
  500. PROCEDURE ^ DivSIAILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  501. OPERATOR ^ "DIV"-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  502. PROCEDURE ^ DivALSLLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  503. OPERATOR ^ "DIV"-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): ARRAY [?] OF LONGINT;
  504. PROCEDURE ^ DivSLALLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  505. OPERATOR ^ "DIV"-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  506. PROCEDURE ^ DivAYSYLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  507. OPERATOR ^ "DIV"-(CONST left: ARRAY [?] OF SIZE; right: SIZE): ARRAY [?] OF SIZE;
  508. PROCEDURE ^ DivSYAYLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  509. OPERATOR ^ "DIV"-(left: SIZE; CONST right: ARRAY [?] OF SIZE): ARRAY [?] OF SIZE;
  510. PROCEDURE ^ EModASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  511. OPERATOR ^ "MOD"-(CONST left, right: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  512. PROCEDURE ^ EModAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  513. OPERATOR ^ "MOD"-(CONST left, right: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  514. PROCEDURE ^ EModALALLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  515. OPERATOR ^ "MOD"-(CONST left, right: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  516. PROCEDURE ^ EModAYAYLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  517. OPERATOR ^ "MOD"-(CONST left, right: ARRAY [?] OF SIZE): ARRAY [?] OF SIZE;
  518. PROCEDURE ^ ModASSSLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  519. OPERATOR ^ "MOD"-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): ARRAY [?] OF SHORTINT;
  520. PROCEDURE ^ ModSSASLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  521. OPERATOR ^ "MOD"-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  522. PROCEDURE ^ ModAISILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  523. OPERATOR ^ "MOD"-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): ARRAY [?] OF INTEGER;
  524. PROCEDURE ^ ModSIAILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  525. OPERATOR ^ "MOD"-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  526. PROCEDURE ^ ModALSLLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  527. OPERATOR ^ "MOD"-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): ARRAY [?] OF LONGINT;
  528. PROCEDURE ^ ModSLALLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  529. OPERATOR ^ "MOD"-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  530. PROCEDURE ^ ModAYSYLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  531. OPERATOR ^ "MOD"-(CONST left: ARRAY [?] OF SIZE; right: SIZE): ARRAY [?] OF SIZE;
  532. PROCEDURE ^ ModSYAYLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  533. OPERATOR ^ "MOD"-(left: SIZE; CONST right: ARRAY [?] OF SIZE): ARRAY [?] OF SIZE;
  534. PROCEDURE ^ SPASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  535. OPERATOR ^ "+*"-(CONST left, right: ARRAY [?] OF SHORTINT): LONGINT;
  536. PROCEDURE ^ SPAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  537. OPERATOR ^ "+*"-(CONST left, right: ARRAY [?] OF INTEGER): LONGINT;
  538. PROCEDURE ^ SPALALLoop(ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  539. OPERATOR ^ "+*"-(CONST left, right: ARRAY [?] OF LONGINT): LONGINT;
  540. PROCEDURE ^ SPARARLoop(ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  541. OPERATOR ^ "+*"-(CONST left, right: ARRAY [?] OF REAL): REAL;
  542. PROCEDURE ^ SPAXAXLoop(ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  543. OPERATOR ^ "+*"-(CONST left, right: ARRAY [?] OF LONGREAL): LONGREAL;
  544. PROCEDURE ^ SPAZAZLoop(ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  545. OPERATOR ^ "+*"-(CONST left, right: ARRAY [?] OF COMPLEX): COMPLEX;
  546. PROCEDURE ^ SPALZALZLoop(ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  547. OPERATOR ^ "+*"-(CONST left, right: ARRAY [?] OF LONGCOMPLEX): LONGCOMPLEX;
  548. PROCEDURE ^ EEqlABABLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  549. OPERATOR ^ ".="-(CONST left, right: ARRAY [?] OF BOOLEAN): ARRAY [?] OF BOOLEAN;
  550. PROCEDURE ^ EEqlASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  551. OPERATOR ^ ".="-(CONST left, right: ARRAY [?] OF SHORTINT): ARRAY [?] OF BOOLEAN;
  552. PROCEDURE ^ EEqlAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  553. OPERATOR ^ ".="-(CONST left, right: ARRAY [?] OF INTEGER): ARRAY [?] OF BOOLEAN;
  554. PROCEDURE ^ EEqlALALLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  555. OPERATOR ^ ".="-(CONST left, right: ARRAY [?] OF LONGINT): ARRAY [?] OF BOOLEAN;
  556. PROCEDURE ^ EEqlARARLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  557. OPERATOR ^ ".="-(CONST left, right: ARRAY [?] OF REAL): ARRAY [?] OF BOOLEAN;
  558. PROCEDURE ^ EEqlAXAXLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  559. OPERATOR ^ ".="-(CONST left, right: ARRAY [?] OF LONGREAL): ARRAY [?] OF BOOLEAN;
  560. PROCEDURE ^ EEqlABSBLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  561. OPERATOR ^ ".="-(CONST left: ARRAY [?] OF BOOLEAN; right: BOOLEAN): ARRAY [?] OF BOOLEAN;
  562. OPERATOR ^ ".="-(left: BOOLEAN; CONST right: ARRAY [?] OF BOOLEAN): ARRAY [?] OF BOOLEAN;
  563. PROCEDURE ^ EEqlASSSLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  564. OPERATOR ^ ".="-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): ARRAY [?] OF BOOLEAN;
  565. OPERATOR ^ ".="-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): ARRAY [?] OF BOOLEAN;
  566. PROCEDURE ^ EEqlAISILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  567. OPERATOR ^ ".="-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): ARRAY [?] OF BOOLEAN;
  568. OPERATOR ^ ".="-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): ARRAY [?] OF BOOLEAN;
  569. PROCEDURE ^ EEqlALSLLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  570. OPERATOR ^ ".="-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): ARRAY [?] OF BOOLEAN;
  571. OPERATOR ^ ".="-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): ARRAY [?] OF BOOLEAN;
  572. PROCEDURE ^ EEqlARSRLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  573. OPERATOR ^ ".="-(CONST left: ARRAY [?] OF REAL; right: REAL): ARRAY [?] OF BOOLEAN;
  574. OPERATOR ^ ".="-(left: REAL; CONST right: ARRAY [?] OF REAL): ARRAY [?] OF BOOLEAN;
  575. PROCEDURE ^ EEqlAXSXLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  576. OPERATOR ^ ".="-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): ARRAY [?] OF BOOLEAN;
  577. OPERATOR ^ ".="-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): ARRAY [?] OF BOOLEAN;
  578. PROCEDURE ^ ENeqABABLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  579. OPERATOR ^ ".#"-(CONST left, right: ARRAY [?] OF BOOLEAN): ARRAY [?] OF BOOLEAN;
  580. PROCEDURE ^ ENeqASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  581. OPERATOR ^ ".#"-(CONST left, right: ARRAY [?] OF SHORTINT): ARRAY [?] OF BOOLEAN;
  582. PROCEDURE ^ ENeqAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  583. OPERATOR ^ ".#"-(CONST left, right: ARRAY [?] OF INTEGER): ARRAY [?] OF BOOLEAN;
  584. PROCEDURE ^ ENeqALALLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  585. OPERATOR ^ ".#"-(CONST left, right: ARRAY [?] OF LONGINT): ARRAY [?] OF BOOLEAN;
  586. PROCEDURE ^ ENeqARARLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  587. OPERATOR ^ ".#"-(CONST left, right: ARRAY [?] OF REAL): ARRAY [?] OF BOOLEAN;
  588. PROCEDURE ^ ENeqAXAXLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  589. OPERATOR ^ ".#"-(CONST left, right: ARRAY [?] OF LONGREAL): ARRAY [?] OF BOOLEAN;
  590. PROCEDURE ^ ENeqABSBLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  591. OPERATOR ^ ".#"-(CONST left: ARRAY [?] OF BOOLEAN; right: BOOLEAN): ARRAY [?] OF BOOLEAN;
  592. OPERATOR ^ ".#"-(left: BOOLEAN; CONST right: ARRAY [?] OF BOOLEAN): ARRAY [?] OF BOOLEAN;
  593. PROCEDURE ^ ENeqASSSLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  594. OPERATOR ^ ".#"-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): ARRAY [?] OF BOOLEAN;
  595. OPERATOR ^ ".#"-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): ARRAY [?] OF BOOLEAN;
  596. PROCEDURE ^ ENeqAISILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  597. OPERATOR ^ ".#"-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): ARRAY [?] OF BOOLEAN;
  598. OPERATOR ^ ".#"-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): ARRAY [?] OF BOOLEAN;
  599. PROCEDURE ^ ENeqALSLLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  600. OPERATOR ^ ".#"-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): ARRAY [?] OF BOOLEAN;
  601. OPERATOR ^ ".#"-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): ARRAY [?] OF BOOLEAN;
  602. PROCEDURE ^ ENeqARSRLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  603. OPERATOR ^ ".#"-(CONST left: ARRAY [?] OF REAL; right: REAL): ARRAY [?] OF BOOLEAN;
  604. OPERATOR ^ ".#"-(left: REAL; CONST right: ARRAY [?] OF REAL): ARRAY [?] OF BOOLEAN;
  605. PROCEDURE ^ ENeqAXSXLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  606. OPERATOR ^ ".#"-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): ARRAY [?] OF BOOLEAN;
  607. OPERATOR ^ ".#"-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): ARRAY [?] OF BOOLEAN;
  608. PROCEDURE ^ EGtrASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  609. OPERATOR ^ ".>"-(CONST left, right: ARRAY [?] OF SHORTINT): ARRAY [?] OF BOOLEAN;
  610. PROCEDURE ^ EGtrAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  611. OPERATOR ^ ".>"-(CONST left, right: ARRAY [?] OF INTEGER): ARRAY [?] OF BOOLEAN;
  612. PROCEDURE ^ EGtrALALLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  613. OPERATOR ^ ".>"-(CONST left, right: ARRAY [?] OF LONGINT): ARRAY [?] OF BOOLEAN;
  614. PROCEDURE ^ EGtrARARLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  615. OPERATOR ^ ".>"-(CONST left, right: ARRAY [?] OF REAL): ARRAY [?] OF BOOLEAN;
  616. PROCEDURE ^ EGtrAXAXLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  617. OPERATOR ^ ".>"-(CONST left, right: ARRAY [?] OF LONGREAL): ARRAY [?] OF BOOLEAN;
  618. PROCEDURE ^ EGtrASSSLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  619. OPERATOR ^ ".>"-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): ARRAY [?] OF BOOLEAN;
  620. OPERATOR ^ ".<"-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): ARRAY [?] OF BOOLEAN;
  621. PROCEDURE ^ EGtrAISILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  622. OPERATOR ^ ".>"-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): ARRAY [?] OF BOOLEAN;
  623. OPERATOR ^ ".<"-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): ARRAY [?] OF BOOLEAN;
  624. PROCEDURE ^ EGtrALSLLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  625. OPERATOR ^ ".>"-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): ARRAY [?] OF BOOLEAN;
  626. OPERATOR ^ ".<"-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): ARRAY [?] OF BOOLEAN;
  627. PROCEDURE ^ EGtrARSRLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  628. OPERATOR ^ ".>"-(CONST left: ARRAY [?] OF REAL; right: REAL): ARRAY [?] OF BOOLEAN;
  629. OPERATOR ^ ".<"-(left: REAL; CONST right: ARRAY [?] OF REAL): ARRAY [?] OF BOOLEAN;
  630. PROCEDURE ^ EGtrAXSXLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  631. OPERATOR ^ ".>"-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): ARRAY [?] OF BOOLEAN;
  632. OPERATOR ^ ".<"-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): ARRAY [?] OF BOOLEAN;
  633. PROCEDURE ^ EGeqASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  634. OPERATOR ^ ".>="-(CONST left, right: ARRAY [?] OF SHORTINT): ARRAY [?] OF BOOLEAN;
  635. PROCEDURE ^ EGeqAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  636. OPERATOR ^ ".>="-(CONST left, right: ARRAY [?] OF INTEGER): ARRAY [?] OF BOOLEAN;
  637. PROCEDURE ^ EGeqALALLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  638. OPERATOR ^ ".>="-(CONST left, right: ARRAY [?] OF LONGINT): ARRAY [?] OF BOOLEAN;
  639. PROCEDURE ^ EGeqARARLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  640. OPERATOR ^ ".>="-(CONST left, right: ARRAY [?] OF REAL): ARRAY [?] OF BOOLEAN;
  641. PROCEDURE ^ EGeqAXAXLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  642. OPERATOR ^ ".>="-(CONST left, right: ARRAY [?] OF LONGREAL): ARRAY [?] OF BOOLEAN;
  643. PROCEDURE ^ EGeqASSSLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  644. OPERATOR ^ ".>="-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): ARRAY [?] OF BOOLEAN;
  645. OPERATOR ^ ".<="-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): ARRAY [?] OF BOOLEAN;
  646. PROCEDURE ^ EGeqAISILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  647. OPERATOR ^ ".>="-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): ARRAY [?] OF BOOLEAN;
  648. OPERATOR ^ ".<="-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): ARRAY [?] OF BOOLEAN;
  649. PROCEDURE ^ EGeqALSLLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  650. OPERATOR ^ ".>="-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): ARRAY [?] OF BOOLEAN;
  651. OPERATOR ^ ".<="-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): ARRAY [?] OF BOOLEAN;
  652. PROCEDURE ^ EGeqARSRLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  653. OPERATOR ^ ".>="-(CONST left: ARRAY [?] OF REAL; right: REAL): ARRAY [?] OF BOOLEAN;
  654. OPERATOR ^ ".<="-(left: REAL; CONST right: ARRAY [?] OF REAL): ARRAY [?] OF BOOLEAN;
  655. PROCEDURE ^ EGeqAXSXLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  656. OPERATOR ^ ".>="-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): ARRAY [?] OF BOOLEAN;
  657. OPERATOR ^ ".<="-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): ARRAY [?] OF BOOLEAN;
  658. PROCEDURE ^ ELssASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  659. OPERATOR ^ ".<"-(CONST left, right: ARRAY [?] OF SHORTINT): ARRAY [?] OF BOOLEAN;
  660. PROCEDURE ^ ELssAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  661. OPERATOR ^ ".<"-(CONST left, right: ARRAY [?] OF INTEGER): ARRAY [?] OF BOOLEAN;
  662. PROCEDURE ^ ELssALALLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  663. OPERATOR ^ ".<"-(CONST left, right: ARRAY [?] OF LONGINT): ARRAY [?] OF BOOLEAN;
  664. PROCEDURE ^ ELssARARLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  665. OPERATOR ^ ".<"-(CONST left, right: ARRAY [?] OF REAL): ARRAY [?] OF BOOLEAN;
  666. PROCEDURE ^ ELssAXAXLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  667. OPERATOR ^ ".<"-(CONST left, right: ARRAY [?] OF LONGREAL): ARRAY [?] OF BOOLEAN;
  668. PROCEDURE ^ ELssASSSLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  669. OPERATOR ^ ".<"-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): ARRAY [?] OF BOOLEAN;
  670. OPERATOR ^ ".>"-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): ARRAY [?] OF BOOLEAN;
  671. PROCEDURE ^ ELssAISILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  672. OPERATOR ^ ".<"-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): ARRAY [?] OF BOOLEAN;
  673. OPERATOR ^ ".>"-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): ARRAY [?] OF BOOLEAN;
  674. PROCEDURE ^ ELssALSLLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  675. OPERATOR ^ ".<"-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): ARRAY [?] OF BOOLEAN;
  676. OPERATOR ^ ".>"-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): ARRAY [?] OF BOOLEAN;
  677. PROCEDURE ^ ELssARSRLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  678. OPERATOR ^ ".<"-(CONST left: ARRAY [?] OF REAL; right: REAL): ARRAY [?] OF BOOLEAN;
  679. OPERATOR ^ ".>"-(left: REAL; CONST right: ARRAY [?] OF REAL): ARRAY [?] OF BOOLEAN;
  680. PROCEDURE ^ ELssAXSXLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  681. OPERATOR ^ ".<"-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): ARRAY [?] OF BOOLEAN;
  682. OPERATOR ^ ".>"-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): ARRAY [?] OF BOOLEAN;
  683. PROCEDURE ^ ELeqASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  684. OPERATOR ^ ".<="-(CONST left, right: ARRAY [?] OF SHORTINT): ARRAY [?] OF BOOLEAN;
  685. PROCEDURE ^ ELeqAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  686. OPERATOR ^ ".<="-(CONST left, right: ARRAY [?] OF INTEGER): ARRAY [?] OF BOOLEAN;
  687. PROCEDURE ^ ELeqALALLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  688. OPERATOR ^ ".<="-(CONST left, right: ARRAY [?] OF LONGINT): ARRAY [?] OF BOOLEAN;
  689. PROCEDURE ^ ELeqARARLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  690. OPERATOR ^ ".<="-(CONST left, right: ARRAY [?] OF REAL): ARRAY [?] OF BOOLEAN;
  691. PROCEDURE ^ ELeqAXAXLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  692. OPERATOR ^ ".<="-(CONST left, right: ARRAY [?] OF LONGREAL): ARRAY [?] OF BOOLEAN;
  693. PROCEDURE ^ ELeqASSSLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  694. OPERATOR ^ ".<="-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): ARRAY [?] OF BOOLEAN;
  695. OPERATOR ^ ".>="-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): ARRAY [?] OF BOOLEAN;
  696. PROCEDURE ^ ELeqAISILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  697. OPERATOR ^ ".<="-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): ARRAY [?] OF BOOLEAN;
  698. OPERATOR ^ ".>="-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): ARRAY [?] OF BOOLEAN;
  699. PROCEDURE ^ ELeqALSLLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  700. OPERATOR ^ ".<="-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): ARRAY [?] OF BOOLEAN;
  701. OPERATOR ^ ".>="-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): ARRAY [?] OF BOOLEAN;
  702. PROCEDURE ^ ELeqARSRLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  703. OPERATOR ^ ".<="-(CONST left: ARRAY [?] OF REAL; right: REAL): ARRAY [?] OF BOOLEAN;
  704. OPERATOR ^ ".>="-(left: REAL; CONST right: ARRAY [?] OF REAL): ARRAY [?] OF BOOLEAN;
  705. PROCEDURE ^ ELeqAXSXLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  706. OPERATOR ^ ".<="-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): ARRAY [?] OF BOOLEAN;
  707. OPERATOR ^ ".>="-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): ARRAY [?] OF BOOLEAN;
  708. PROCEDURE ^ ElOrABABLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  709. OPERATOR ^ "OR"-(CONST left, right: ARRAY [?] OF BOOLEAN): ARRAY [?] OF BOOLEAN;
  710. PROCEDURE ^ ElAndABABLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  711. OPERATOR ^ "&"-(CONST left, right: ARRAY [?] OF BOOLEAN): ARRAY [?] OF BOOLEAN;
  712. PROCEDURE ^ ElOrABSBLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  713. OPERATOR ^ "OR"-(CONST left: ARRAY [?] OF BOOLEAN; right: BOOLEAN): ARRAY [?] OF BOOLEAN;
  714. OPERATOR ^ "OR"-(left: BOOLEAN; CONST right: ARRAY [?] OF BOOLEAN): ARRAY [?] OF BOOLEAN;
  715. PROCEDURE ^ ElAndABSBLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  716. OPERATOR ^ "&"-(CONST left: ARRAY [?] OF BOOLEAN; right: BOOLEAN): ARRAY [?] OF BOOLEAN;
  717. OPERATOR ^ "&"-(left: BOOLEAN; CONST right: ARRAY [?] OF BOOLEAN): ARRAY [?] OF BOOLEAN;
  718. PROCEDURE ^ LssASASLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  719. OPERATOR ^ "<"-(CONST left, right: ARRAY [?] OF SHORTINT): BOOLEAN;
  720. PROCEDURE ^ GeqASASLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  721. OPERATOR ^ ">="-(CONST left, right: ARRAY [?] OF SHORTINT): BOOLEAN;
  722. PROCEDURE ^ LssAIAILoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  723. OPERATOR ^ "<"-(CONST left, right: ARRAY [?] OF INTEGER): BOOLEAN;
  724. PROCEDURE ^ GeqAIAILoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  725. OPERATOR ^ ">="-(CONST left, right: ARRAY [?] OF INTEGER): BOOLEAN;
  726. PROCEDURE ^ LssALALLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  727. OPERATOR ^ "<"-(CONST left, right: ARRAY [?] OF LONGINT): BOOLEAN;
  728. PROCEDURE ^ GeqALALLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  729. OPERATOR ^ ">="-(CONST left, right: ARRAY [?] OF LONGINT): BOOLEAN;
  730. PROCEDURE ^ LssAZAZLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  731. OPERATOR ^ "<"-(CONST left, right: ARRAY [?] OF SIZE): BOOLEAN;
  732. PROCEDURE ^ GeqAZAZLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  733. OPERATOR ^ ">="-(CONST left, right: ARRAY [?] OF SIZE): BOOLEAN;
  734. PROCEDURE ^ LssARARLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  735. OPERATOR ^ "<"-(CONST left, right: ARRAY [?] OF REAL): BOOLEAN;
  736. PROCEDURE ^ GeqARARLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  737. OPERATOR ^ ">="-(CONST left, right: ARRAY [?] OF REAL): BOOLEAN;
  738. PROCEDURE ^ LssAXAXLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  739. OPERATOR ^ "<"-(CONST left, right: ARRAY [?] OF LONGREAL): BOOLEAN;
  740. PROCEDURE ^ GeqAXAXLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  741. OPERATOR ^ ">="-(CONST left, right: ARRAY [?] OF LONGREAL): BOOLEAN;
  742. PROCEDURE ^ GtrASASLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  743. OPERATOR ^ ">"-(CONST left, right: ARRAY [?] OF SHORTINT): BOOLEAN;
  744. PROCEDURE ^ LeqASASLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  745. OPERATOR ^ "<="-(CONST left, right: ARRAY [?] OF SHORTINT): BOOLEAN;
  746. PROCEDURE ^ GtrAIAILoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  747. OPERATOR ^ ">"-(CONST left, right: ARRAY [?] OF INTEGER): BOOLEAN;
  748. PROCEDURE ^ LeqAIAILoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  749. OPERATOR ^ "<="-(CONST left, right: ARRAY [?] OF INTEGER): BOOLEAN;
  750. PROCEDURE ^ GtrALALLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  751. OPERATOR ^ ">"-(CONST left, right: ARRAY [?] OF LONGINT): BOOLEAN;
  752. PROCEDURE ^ LeqALALLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  753. OPERATOR ^ "<="-(CONST left, right: ARRAY [?] OF LONGINT): BOOLEAN;
  754. PROCEDURE ^ GtrAZAZLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  755. OPERATOR ^ ">"-(CONST left, right: ARRAY [?] OF SIZE): BOOLEAN;
  756. PROCEDURE ^ LeqAZAZLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  757. OPERATOR ^ "<="-(CONST left, right: ARRAY [?] OF SIZE): BOOLEAN;
  758. PROCEDURE ^ GtrARARLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  759. OPERATOR ^ ">"-(CONST left, right: ARRAY [?] OF REAL): BOOLEAN;
  760. PROCEDURE ^ LeqARARLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  761. OPERATOR ^ "<="-(CONST left, right: ARRAY [?] OF REAL): BOOLEAN;
  762. PROCEDURE ^ GtrAXAXLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  763. OPERATOR ^ ">"-(CONST left, right: ARRAY [?] OF LONGREAL): BOOLEAN;
  764. PROCEDURE ^ LeqAXAXLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  765. OPERATOR ^ "<="-(CONST left, right: ARRAY [?] OF LONGREAL): BOOLEAN;
  766. PROCEDURE ^ EqlABABLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  767. OPERATOR ^ "="-(CONST left, right: ARRAY [?] OF BOOLEAN): BOOLEAN;
  768. OPERATOR ^ "#"-(CONST left, right: ARRAY [?] OF BOOLEAN): BOOLEAN;
  769. PROCEDURE ^ EqlASASLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  770. OPERATOR ^ "="-(CONST left, right: ARRAY [?] OF SHORTINT): BOOLEAN;
  771. OPERATOR ^ "#"-(CONST left, right: ARRAY [?] OF SHORTINT): BOOLEAN;
  772. PROCEDURE ^ EqlAIAILoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  773. OPERATOR ^ "="-(CONST left, right: ARRAY [?] OF INTEGER): BOOLEAN;
  774. OPERATOR ^ "#"-(CONST left, right: ARRAY [?] OF INTEGER): BOOLEAN;
  775. PROCEDURE ^ EqlALALLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  776. OPERATOR ^ "="-(CONST left, right: ARRAY [?] OF LONGINT): BOOLEAN;
  777. OPERATOR ^ "#"-(CONST left, right: ARRAY [?] OF LONGINT): BOOLEAN;
  778. PROCEDURE ^ EqlAZAZLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  779. OPERATOR ^ "="-(CONST left, right: ARRAY [?] OF SIZE): BOOLEAN;
  780. OPERATOR ^ "#"-(CONST left, right: ARRAY [?] OF SIZE): BOOLEAN;
  781. PROCEDURE ^ EqlARARLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  782. OPERATOR ^ "="-(CONST left, right: ARRAY [?] OF REAL): BOOLEAN;
  783. OPERATOR ^ "#"-(CONST left, right: ARRAY [?] OF REAL): BOOLEAN;
  784. PROCEDURE ^ EqlAXAXLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  785. OPERATOR ^ "="-(CONST left, right: ARRAY [?] OF LONGREAL): BOOLEAN;
  786. OPERATOR ^ "#"-(CONST left, right: ARRAY [?] OF LONGREAL): BOOLEAN;
  787. PROCEDURE ^ EqlACACLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  788. OPERATOR ^ "="-(CONST left, right: ARRAY [?] OF COMPLEX): BOOLEAN;
  789. OPERATOR ^ "#"-(CONST left, right: ARRAY [?] OF COMPLEX): BOOLEAN;
  790. PROCEDURE ^ EqlALZALZLoop(ladr, radr: ADDRESS; linc, rinc, len: SIZE): BOOLEAN;
  791. OPERATOR ^ "="-(CONST left, right: ARRAY [?] OF LONGCOMPLEX): BOOLEAN;
  792. OPERATOR ^ "#"-(CONST left, right: ARRAY [?] OF LONGCOMPLEX): BOOLEAN;
  793. PROCEDURE ^ EqlABSBLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  794. OPERATOR ^ "="-(CONST left: ARRAY [?] OF BOOLEAN; right: BOOLEAN): BOOLEAN;
  795. OPERATOR ^ "="-(left: BOOLEAN; CONST right: ARRAY [?] OF BOOLEAN): BOOLEAN;
  796. OPERATOR ^ "#"-(CONST left: ARRAY [?] OF BOOLEAN; right: BOOLEAN): BOOLEAN;
  797. OPERATOR ^ "#"-(left: BOOLEAN; CONST right: ARRAY [?] OF BOOLEAN): BOOLEAN;
  798. PROCEDURE ^ EqlASSSLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  799. OPERATOR ^ "="-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): BOOLEAN;
  800. OPERATOR ^ "="-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): BOOLEAN;
  801. OPERATOR ^ "#"-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): BOOLEAN;
  802. OPERATOR ^ "#"-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): BOOLEAN;
  803. PROCEDURE ^ EqlAISILoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  804. OPERATOR ^ "="-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): BOOLEAN;
  805. OPERATOR ^ "="-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): BOOLEAN;
  806. OPERATOR ^ "#"-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): BOOLEAN;
  807. OPERATOR ^ "#"-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): BOOLEAN;
  808. PROCEDURE ^ EqlALSLLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  809. OPERATOR ^ "="-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): BOOLEAN;
  810. OPERATOR ^ "="-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): BOOLEAN;
  811. OPERATOR ^ "#"-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): BOOLEAN;
  812. OPERATOR ^ "#"-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): BOOLEAN;
  813. PROCEDURE ^ EqlAZSZLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  814. OPERATOR ^ "="-(CONST left: ARRAY [?] OF SIZE; right: SIZE): BOOLEAN;
  815. OPERATOR ^ "="-(left: SIZE; CONST right: ARRAY [?] OF SIZE): BOOLEAN;
  816. OPERATOR ^ "#"-(CONST left: ARRAY [?] OF SIZE; right: SIZE): BOOLEAN;
  817. OPERATOR ^ "#"-(left: SIZE; CONST right: ARRAY [?] OF SIZE): BOOLEAN;
  818. PROCEDURE ^ EqlARSRLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  819. OPERATOR ^ "="-(CONST left: ARRAY [?] OF REAL; right: REAL): BOOLEAN;
  820. OPERATOR ^ "="-(left: REAL; CONST right: ARRAY [?] OF REAL): BOOLEAN;
  821. OPERATOR ^ "#"-(CONST left: ARRAY [?] OF REAL; right: REAL): BOOLEAN;
  822. OPERATOR ^ "#"-(left: REAL; CONST right: ARRAY [?] OF REAL): BOOLEAN;
  823. PROCEDURE ^ EqlAXSXLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  824. OPERATOR ^ "="-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): BOOLEAN;
  825. OPERATOR ^ "="-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): BOOLEAN;
  826. OPERATOR ^ "#"-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): BOOLEAN;
  827. OPERATOR ^ "#"-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): BOOLEAN;
  828. PROCEDURE ^ GtrASSSLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  829. OPERATOR ^ ">"-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): BOOLEAN;
  830. OPERATOR ^ "<"-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): BOOLEAN;
  831. PROCEDURE ^ GtrAISILoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  832. OPERATOR ^ ">"-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): BOOLEAN;
  833. OPERATOR ^ "<"-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): BOOLEAN;
  834. PROCEDURE ^ GtrALSLLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  835. OPERATOR ^ ">"-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): BOOLEAN;
  836. OPERATOR ^ "<"-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): BOOLEAN;
  837. PROCEDURE ^ GtrAZSZLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  838. OPERATOR ^ ">"-(CONST left: ARRAY [?] OF SIZE; right: SIZE): BOOLEAN;
  839. OPERATOR ^ "<"-(left: SIZE; CONST right: ARRAY [?] OF SIZE): BOOLEAN;
  840. PROCEDURE ^ GtrARSRLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  841. OPERATOR ^ ">"-(CONST left: ARRAY [?] OF REAL; right: REAL): BOOLEAN;
  842. OPERATOR ^ "<"-(left: REAL; CONST right: ARRAY [?] OF REAL): BOOLEAN;
  843. PROCEDURE ^ GtrAXSXLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  844. OPERATOR ^ ">"-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): BOOLEAN;
  845. OPERATOR ^ "<"-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): BOOLEAN;
  846. PROCEDURE ^ GeqASSSLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  847. OPERATOR ^ ">="-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): BOOLEAN;
  848. OPERATOR ^ "<="-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): BOOLEAN;
  849. PROCEDURE ^ GeqAISILoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  850. OPERATOR ^ ">="-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): BOOLEAN;
  851. OPERATOR ^ "<="-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): BOOLEAN;
  852. PROCEDURE ^ GeqALSLLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  853. OPERATOR ^ ">="-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): BOOLEAN;
  854. OPERATOR ^ "<="-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): BOOLEAN;
  855. PROCEDURE ^ GeqAZSZLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  856. OPERATOR ^ ">="-(CONST left: ARRAY [?] OF SIZE; right: SIZE): BOOLEAN;
  857. OPERATOR ^ "<="-(left: SIZE; CONST right: ARRAY [?] OF SIZE): BOOLEAN;
  858. PROCEDURE ^ GeqARSRLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  859. OPERATOR ^ ">="-(CONST left: ARRAY [?] OF REAL; right: REAL): BOOLEAN;
  860. OPERATOR ^ "<="-(left: REAL; CONST right: ARRAY [?] OF REAL): BOOLEAN;
  861. PROCEDURE ^ GeqAXSXLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  862. OPERATOR ^ ">="-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): BOOLEAN;
  863. OPERATOR ^ "<="-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): BOOLEAN;
  864. PROCEDURE ^ LeqASSSLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  865. OPERATOR ^ "<="-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): BOOLEAN;
  866. OPERATOR ^ ">="-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): BOOLEAN;
  867. PROCEDURE ^ LeqAISILoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  868. OPERATOR ^ "<="-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): BOOLEAN;
  869. OPERATOR ^ ">="-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): BOOLEAN;
  870. PROCEDURE ^ LeqALSLLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  871. OPERATOR ^ "<="-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): BOOLEAN;
  872. OPERATOR ^ ">="-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): BOOLEAN;
  873. PROCEDURE ^ LeqAZSZLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  874. OPERATOR ^ "<="-(CONST left: ARRAY [?] OF SIZE; right: SIZE): BOOLEAN;
  875. OPERATOR ^ ">="-(left: SIZE; CONST right: ARRAY [?] OF SIZE): BOOLEAN;
  876. PROCEDURE ^ LeqARSRLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  877. OPERATOR ^ "<="-(CONST left: ARRAY [?] OF REAL; right: REAL): BOOLEAN;
  878. OPERATOR ^ ">="-(left: REAL; CONST right: ARRAY [?] OF REAL): BOOLEAN;
  879. PROCEDURE ^ LeqAXSXLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  880. OPERATOR ^ "<="-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): BOOLEAN;
  881. OPERATOR ^ ">="-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): BOOLEAN;
  882. PROCEDURE ^ LssASSSLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  883. OPERATOR ^ "<"-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): BOOLEAN;
  884. OPERATOR ^ ">"-(left: SHORTINT; CONST right: ARRAY [?] OF SHORTINT): BOOLEAN;
  885. PROCEDURE ^ LssAISILoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  886. OPERATOR ^ "<"-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): BOOLEAN;
  887. OPERATOR ^ ">"-(left: INTEGER; CONST right: ARRAY [?] OF INTEGER): BOOLEAN;
  888. PROCEDURE ^ LssALSLLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  889. OPERATOR ^ "<"-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): BOOLEAN;
  890. OPERATOR ^ ">"-(left: LONGINT; CONST right: ARRAY [?] OF LONGINT): BOOLEAN;
  891. PROCEDURE ^ LssAZSZLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  892. OPERATOR ^ "<"-(CONST left: ARRAY [?] OF SIZE; right: SIZE): BOOLEAN;
  893. OPERATOR ^ ">"-(left: SIZE; CONST right: ARRAY [?] OF SIZE): BOOLEAN;
  894. PROCEDURE ^ LssARSRLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  895. OPERATOR ^ "<"-(CONST left: ARRAY [?] OF REAL; right: REAL): BOOLEAN;
  896. OPERATOR ^ ">"-(left: REAL; CONST right: ARRAY [?] OF REAL): BOOLEAN;
  897. PROCEDURE ^ LssAXSXLoop(ladr, radr: ADDRESS; linc, len: SIZE): BOOLEAN;
  898. OPERATOR ^ "<"-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): BOOLEAN;
  899. OPERATOR ^ ">"-(left: LONGREAL; CONST right: ARRAY [?] OF LONGREAL): BOOLEAN;
  900. PROCEDURE ^ MaxAXSXLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  901. OPERATOR ^ "MAX"-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): ARRAY [?] OF LONGREAL;
  902. PROCEDURE ^ MaxARSRLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  903. OPERATOR ^ "MAX"-(CONST left: ARRAY [?] OF REAL; right: REAL): ARRAY [?] OF REAL;
  904. PROCEDURE ^ MaxALSLLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  905. OPERATOR ^ "MAX"-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): ARRAY [?] OF LONGINT;
  906. PROCEDURE ^ MaxAISILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  907. OPERATOR ^ "MAX"-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): ARRAY [?] OF INTEGER;
  908. PROCEDURE ^ MaxASSSLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  909. OPERATOR ^ "MAX"-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): ARRAY [?] OF SHORTINT;
  910. PROCEDURE ^ MinAXSXLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  911. OPERATOR ^ "MIN"-(CONST left: ARRAY [?] OF LONGREAL; right: LONGREAL): ARRAY [?] OF LONGREAL;
  912. PROCEDURE ^ MinARSRLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  913. OPERATOR ^ "MIN"-(CONST left: ARRAY [?] OF REAL; right: REAL): ARRAY [?] OF REAL;
  914. PROCEDURE ^ MinALSLLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  915. OPERATOR ^ "MIN"-(CONST left: ARRAY [?] OF LONGINT; right: LONGINT): ARRAY [?] OF LONGINT;
  916. PROCEDURE ^ MinAISILoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  917. OPERATOR ^ "MIN"-(CONST left: ARRAY [?] OF INTEGER; right: INTEGER): ARRAY [?] OF INTEGER;
  918. PROCEDURE ^ MinASSSLoop(ladr, radr, dadr: ADDRESS; linc, dinc, len: SIZE);
  919. OPERATOR ^ "MIN"-(CONST left: ARRAY [?] OF SHORTINT; right: SHORTINT): ARRAY [?] OF SHORTINT;
  920. PROCEDURE ^ MaxAXAXLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  921. OPERATOR ^ "MAX"-(CONST left, right: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGREAL;
  922. PROCEDURE ^ MaxARARLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  923. OPERATOR ^ "MAX"-(CONST left, right: ARRAY [?] OF REAL): ARRAY [?] OF REAL;
  924. PROCEDURE ^ MaxALALLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  925. OPERATOR ^ "MAX"-(CONST left, right: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  926. PROCEDURE ^ MaxAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  927. OPERATOR ^ "MAX"-(CONST left, right: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  928. PROCEDURE ^ MaxASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  929. OPERATOR ^ "MAX"-(CONST left, right: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  930. PROCEDURE ^ MinAXAXLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  931. OPERATOR ^ "MIN"-(CONST left, right: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGREAL;
  932. PROCEDURE ^ MinARARLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  933. OPERATOR ^ "MIN"-(CONST left, right: ARRAY [?] OF REAL): ARRAY [?] OF REAL;
  934. PROCEDURE ^ MinALALLoop(ladr, radr, dadr: LongintPtr; linc, rinc, dinc, len: SIZE);
  935. OPERATOR ^ "MIN"-(CONST left, right: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  936. PROCEDURE ^ MinAYAYLoop(ladr, radr, dadr: SizePtr; linc, rinc, dinc, len: SIZE);
  937. OPERATOR ^ "MIN"-(CONST left, right: ARRAY [?] OF SIZE): ARRAY [?] OF SIZE;
  938. PROCEDURE ^ MinAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  939. OPERATOR ^ "MIN"-(CONST left, right: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  940. PROCEDURE ^ MinASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, dinc, len: SIZE);
  941. OPERATOR ^ "MIN"-(CONST left, right: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  942. PROCEDURE ^ MinASLoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  943. OPERATOR ^ "MIN"-(CONST left: ARRAY [?] OF SHORTINT): SHORTINT;
  944. PROCEDURE ^ MinAILoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  945. OPERATOR ^ "MIN"-(CONST left: ARRAY [?] OF INTEGER): INTEGER;
  946. PROCEDURE ^ MinALLoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  947. OPERATOR ^ "MIN"-(CONST left: ARRAY [?] OF LONGINT): LONGINT;
  948. PROCEDURE ^ MinAZLoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  949. OPERATOR ^ "MIN"-(CONST left: ARRAY [?] OF SIZE): SIZE;
  950. PROCEDURE ^ MinARLoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  951. OPERATOR ^ "MIN"-(CONST left: ARRAY [?] OF REAL): REAL;
  952. PROCEDURE ^ MinAXLoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  953. OPERATOR ^ "MIN"-(CONST left: ARRAY [?] OF LONGREAL): LONGREAL;
  954. PROCEDURE ^ MaxASLoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  955. OPERATOR ^ "MAX"-(CONST left: ARRAY [?] OF SHORTINT): SHORTINT;
  956. PROCEDURE ^ MaxAILoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  957. OPERATOR ^ "MAX"-(CONST left: ARRAY [?] OF INTEGER): INTEGER;
  958. PROCEDURE ^ MaxALLoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  959. OPERATOR ^ "MAX"-(CONST left: ARRAY [?] OF LONGINT): LONGINT;
  960. PROCEDURE ^ MaxARLoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  961. OPERATOR ^ "MAX"-(CONST left: ARRAY [?] OF REAL): REAL;
  962. PROCEDURE ^ MaxAXLoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  963. OPERATOR ^ "MAX"-(CONST left: ARRAY [?] OF LONGREAL): LONGREAL;
  964. OPERATOR ^ "LEN"-(CONST left: ARRAY [?] ): ARRAY [*] OF SIZE;
  965. PROCEDURE ^ SumASLoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  966. OPERATOR ^ "SUM"-(CONST left: ARRAY [?] OF SHORTINT): SHORTINT;
  967. PROCEDURE ^ SumAILoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  968. OPERATOR ^ "SUM"-(CONST left: ARRAY [?] OF INTEGER): INTEGER;
  969. PROCEDURE ^ SumALLoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  970. OPERATOR ^ "SUM"-(CONST left: ARRAY [?] OF LONGINT): LONGINT;
  971. PROCEDURE ^ SumAYLoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  972. OPERATOR ^ "SUM"-(CONST left: ARRAY [?] OF SIZE): SIZE;
  973. PROCEDURE ^ SumARLoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  974. OPERATOR ^ "SUM"-(CONST left: ARRAY [?] OF REAL): REAL;
  975. PROCEDURE ^ SumAXLoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  976. OPERATOR ^ "SUM"-(CONST left: ARRAY [?] OF LONGREAL): LONGREAL;
  977. PROCEDURE ^ SumAZLoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  978. OPERATOR ^ "SUM"-(CONST left: ARRAY [?] OF COMPLEX): COMPLEX;
  979. PROCEDURE ^ SumALZLoop(ladr, dadr: ADDRESS; linc, len: SIZE);
  980. OPERATOR ^ "SUM"-(CONST left: ARRAY [?] OF LONGCOMPLEX): LONGCOMPLEX;
  981. PROCEDURE ^ AbsLoopS(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  982. OPERATOR ^ "ABS"-(CONST src: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  983. PROCEDURE ^ AbsLoopI(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  984. OPERATOR ^ "ABS"-(CONST src: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  985. PROCEDURE ^ AbsLoopL(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  986. OPERATOR ^ "ABS"-(CONST src: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  987. PROCEDURE ^ AbsLoopR(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  988. OPERATOR ^ "ABS"-(CONST src: ARRAY [?] OF REAL): ARRAY [?] OF REAL;
  989. PROCEDURE ^ AbsLoopX(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  990. OPERATOR ^ "ABS"-(CONST src: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGREAL;
  991. PROCEDURE ^ AbsLoopZ(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  992. OPERATOR ^ "ABS"-(CONST src: ARRAY [?] OF COMPLEX): ARRAY [?] OF REAL;
  993. PROCEDURE ^ AbsLoopLZ(ladr, dadr: ADDRESS; linc, dinc, len: SIZE);
  994. OPERATOR ^ "ABS"-(CONST src: ARRAY [?] OF LONGCOMPLEX): ARRAY [?] OF LONGREAL;
  995. PROCEDURE ^ AssignSBABLoop(ladr, dadr: ADDRESS; dinc, len: SIZE);
  996. OPERATOR ^ ":="-(VAR dest: ARRAY [?] OF BOOLEAN; right: BOOLEAN);
  997. PROCEDURE ^ AssignSSASLoop(ladr, dadr: ADDRESS; dinc, len: SIZE);
  998. OPERATOR ^ ":="-(VAR dest: ARRAY [?] OF SHORTINT; right: SHORTINT);
  999. PROCEDURE ^ AssignSIAILoop(ladr, dadr: ADDRESS; dinc, len: SIZE);
  1000. OPERATOR ^ ":="-(VAR dest: ARRAY [?] OF INTEGER; right: INTEGER);
  1001. PROCEDURE ^ AssignSLALLoop(ladr, dadr: ADDRESS; dinc, len: SIZE);
  1002. OPERATOR ^ ":="-(VAR dest: ARRAY [?] OF LONGINT; right: LONGINT);
  1003. PROCEDURE ^ AssignSRARLoop(ladr, dadr: ADDRESS; dinc, len: SIZE);
  1004. OPERATOR ^ ":="-(VAR dest: ARRAY [?] OF REAL; right: REAL);
  1005. PROCEDURE ^ AssignSXAXLoop(ladr, dadr: ADDRESS; dinc, len: SIZE);
  1006. OPERATOR ^ ":="-(VAR dest: ARRAY [?] OF LONGREAL; right: LONGREAL);
  1007. PROCEDURE ^ AssignSZAZLoop(ladr, dadr: ADDRESS; dinc, len: SIZE);
  1008. OPERATOR ^ ":="-(VAR dest: ARRAY [?] OF COMPLEX; right: COMPLEX);
  1009. PROCEDURE ^ AssignSLZALZLoop(ladr, dadr: ADDRESS; dinc, len: SIZE);
  1010. OPERATOR ^ ":="-(VAR dest: ARRAY [?] OF LONGCOMPLEX; right: LONGCOMPLEX);
  1011. PROCEDURE ^ AllocateMatrix(dest: ADDRESS; rows, cols, elementsize: SIZE): ANY;
  1012. PROCEDURE ^ AllocateVector(dest: ADDRESS; l0, elementsize: SIZE): ANY;
  1013. PROCEDURE ^ ApplyMatMulLoop(dest, left, right: ADDRESS; Size: SIZE; loop: BinaryAASLoop; fast: FastMatMul);
  1014. PROCEDURE ^ ApplyMatVecMulLoop(dest, left, right: ADDRESS; Size: SIZE; loop: BinaryAASLoop; fast: FastMatMul);
  1015. PROCEDURE ^ ApplyVecMatMulLoop(dest, left, right: ADDRESS; Size: SIZE; loop: BinaryAASLoop; fast: FastMatMul);
  1016. PROCEDURE ^ MatMulASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  1017. OPERATOR ^ "*"-(CONST left, right: ARRAY [*, *] OF SHORTINT): ARRAY [*, *] OF SHORTINT;
  1018. OPERATOR ^ "*"-(CONST left: ARRAY [*, *] OF SHORTINT; CONST right: ARRAY [*] OF SHORTINT): ARRAY [*] OF SHORTINT;
  1019. OPERATOR ^ "*"-(CONST left: ARRAY [*] OF SHORTINT; CONST right: ARRAY [*, *] OF SHORTINT): ARRAY [*] OF SHORTINT;
  1020. PROCEDURE ^ MatMulAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  1021. OPERATOR ^ "*"-(CONST left, right: ARRAY [*, *] OF INTEGER): ARRAY [*, *] OF INTEGER;
  1022. OPERATOR ^ "*"-(CONST left: ARRAY [*, *] OF INTEGER; CONST right: ARRAY [*] OF INTEGER): ARRAY [*] OF INTEGER;
  1023. OPERATOR ^ "*"-(CONST left: ARRAY [*] OF INTEGER; CONST right: ARRAY [*, *] OF INTEGER): ARRAY [*] OF INTEGER;
  1024. PROCEDURE ^ MatMulALALLoop(ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  1025. OPERATOR ^ "*"-(CONST left, right: ARRAY [*, *] OF LONGINT): ARRAY [*, *] OF LONGINT;
  1026. OPERATOR ^ "*"-(CONST left: ARRAY [*, *] OF LONGINT; CONST right: ARRAY [*] OF LONGINT): ARRAY [*] OF LONGINT;
  1027. OPERATOR ^ "*"-(CONST left: ARRAY [*] OF LONGINT; CONST right: ARRAY [*, *] OF LONGINT): ARRAY [*] OF LONGINT;
  1028. PROCEDURE ^ MatMulARARLoop(ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  1029. OPERATOR ^ "*"-(CONST left, right: ARRAY [*, *] OF REAL): ARRAY [*, *] OF REAL;
  1030. OPERATOR ^ "*"-(CONST left: ARRAY [*, *] OF REAL; CONST right: ARRAY [*] OF REAL): ARRAY [*] OF REAL;
  1031. OPERATOR ^ "*"-(CONST left: ARRAY [*] OF REAL; CONST right: ARRAY [*, *] OF REAL): ARRAY [*] OF REAL;
  1032. PROCEDURE ^ MatMulAXAXLoop(ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  1033. OPERATOR ^ "*"-(CONST left, right: ARRAY [*, *] OF LONGREAL): ARRAY [*, *] OF LONGREAL;
  1034. OPERATOR ^ "*"-(CONST left: ARRAY [*, *] OF LONGREAL; CONST right: ARRAY [*] OF LONGREAL): ARRAY [*] OF LONGREAL;
  1035. OPERATOR ^ "*"-(CONST left: ARRAY [*] OF LONGREAL; CONST right: ARRAY [*, *] OF LONGREAL): ARRAY [*] OF LONGREAL;
  1036. PROCEDURE ^ MatMulIncASASLoop(ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  1037. OPERATOR ^ "INCMUL"-(CONST left, right: ARRAY [*, *] OF SHORTINT): ARRAY [*, *] OF SHORTINT;
  1038. OPERATOR ^ "INCMUL"-(CONST left: ARRAY [*, *] OF SHORTINT; CONST right: ARRAY [*] OF SHORTINT): ARRAY [*] OF SHORTINT;
  1039. OPERATOR ^ "INCMUL"-(CONST left: ARRAY [*] OF SHORTINT; CONST right: ARRAY [*, *] OF SHORTINT): ARRAY [*] OF SHORTINT;
  1040. OPERATOR ^ "DECMUL"-(CONST left, right: ARRAY [*, *] OF SHORTINT): ARRAY [*, *] OF SHORTINT;
  1041. OPERATOR ^ "DECMUL"-(CONST left: ARRAY [*, *] OF SHORTINT; CONST right: ARRAY [*] OF SHORTINT): ARRAY [*] OF SHORTINT;
  1042. OPERATOR ^ "DECMUL"-(CONST left: ARRAY [*] OF SHORTINT; CONST right: ARRAY [*, *] OF SHORTINT): ARRAY [*] OF SHORTINT;
  1043. PROCEDURE ^ MatMulIncAIAILoop(ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  1044. OPERATOR ^ "INCMUL"-(CONST left, right: ARRAY [*, *] OF INTEGER): ARRAY [*, *] OF INTEGER;
  1045. OPERATOR ^ "INCMUL"-(CONST left: ARRAY [*, *] OF INTEGER; CONST right: ARRAY [*] OF INTEGER): ARRAY [*] OF INTEGER;
  1046. OPERATOR ^ "INCMUL"-(CONST left: ARRAY [*] OF INTEGER; CONST right: ARRAY [*, *] OF INTEGER): ARRAY [*] OF INTEGER;
  1047. OPERATOR ^ "DECMUL"-(CONST left, right: ARRAY [*, *] OF INTEGER): ARRAY [*, *] OF INTEGER;
  1048. OPERATOR ^ "DECMUL"-(CONST left: ARRAY [*, *] OF INTEGER; CONST right: ARRAY [*] OF INTEGER): ARRAY [*] OF INTEGER;
  1049. OPERATOR ^ "DECMUL"-(CONST left: ARRAY [*] OF INTEGER; CONST right: ARRAY [*, *] OF INTEGER): ARRAY [*] OF INTEGER;
  1050. PROCEDURE ^ MatMulIncALALLoop(ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  1051. OPERATOR ^ "INCMUL"-(CONST left, right: ARRAY [*, *] OF LONGINT): ARRAY [*, *] OF LONGINT;
  1052. OPERATOR ^ "INCMUL"-(CONST left: ARRAY [*, *] OF LONGINT; CONST right: ARRAY [*] OF LONGINT): ARRAY [*] OF LONGINT;
  1053. OPERATOR ^ "INCMUL"-(CONST left: ARRAY [*] OF LONGINT; CONST right: ARRAY [*, *] OF LONGINT): ARRAY [*] OF LONGINT;
  1054. OPERATOR ^ "DECMUL"-(CONST left, right: ARRAY [*, *] OF LONGINT): ARRAY [*, *] OF LONGINT;
  1055. OPERATOR ^ "DECMUL"-(CONST left: ARRAY [*, *] OF LONGINT; CONST right: ARRAY [*] OF LONGINT): ARRAY [*] OF LONGINT;
  1056. OPERATOR ^ "DECMUL"-(CONST left: ARRAY [*] OF LONGINT; CONST right: ARRAY [*, *] OF LONGINT): ARRAY [*] OF LONGINT;
  1057. PROCEDURE ^ MatMulIncARARLoop(ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  1058. OPERATOR ^ "INCMUL"-(CONST left, right: ARRAY [*, *] OF REAL): ARRAY [*, *] OF REAL;
  1059. OPERATOR ^ "INCMUL"-(CONST left: ARRAY [*, *] OF REAL; CONST right: ARRAY [*] OF REAL): ARRAY [*] OF REAL;
  1060. OPERATOR ^ "INCMUL"-(CONST left: ARRAY [*] OF REAL; CONST right: ARRAY [*, *] OF REAL): ARRAY [*] OF REAL;
  1061. OPERATOR ^ "DECMUL"-(CONST left, right: ARRAY [*, *] OF REAL): ARRAY [*, *] OF REAL;
  1062. OPERATOR ^ "DECMUL"-(CONST left: ARRAY [*, *] OF REAL; CONST right: ARRAY [*] OF REAL): ARRAY [*] OF REAL;
  1063. OPERATOR ^ "DECMUL"-(CONST left: ARRAY [*] OF REAL; CONST right: ARRAY [*, *] OF REAL): ARRAY [*] OF REAL;
  1064. PROCEDURE ^ MatMulIncAXAXLoop(ladr, radr, dadr: ADDRESS; linc, rinc, len: SIZE);
  1065. OPERATOR ^ "INCMUL"-(CONST left, right: ARRAY [*, *] OF LONGREAL): ARRAY [*, *] OF LONGREAL;
  1066. OPERATOR ^ "INCMUL"-(CONST left: ARRAY [*, *] OF LONGREAL; CONST right: ARRAY [*] OF LONGREAL): ARRAY [*] OF LONGREAL;
  1067. OPERATOR ^ "INCMUL"-(CONST left: ARRAY [*] OF LONGREAL; CONST right: ARRAY [*, *] OF LONGREAL): ARRAY [*] OF LONGREAL;
  1068. OPERATOR ^ "DECMUL"-(CONST left, right: ARRAY [*, *] OF LONGREAL): ARRAY [*, *] OF LONGREAL;
  1069. OPERATOR ^ "DECMUL"-(CONST left: ARRAY [*, *] OF LONGREAL; CONST right: ARRAY [*] OF LONGREAL): ARRAY [*] OF LONGREAL;
  1070. OPERATOR ^ "DECMUL"-(CONST left: ARRAY [*] OF LONGREAL; CONST right: ARRAY [*, *] OF LONGREAL): ARRAY [*] OF LONGREAL;
  1071. OPERATOR ^ "*"-(CONST left, right: ARRAY [*] OF SHORTINT): ARRAY [*] OF SHORTINT;
  1072. OPERATOR ^ "*"-(CONST left, right: ARRAY [*] OF INTEGER): ARRAY [*] OF INTEGER;
  1073. OPERATOR ^ "*"-(CONST left, right: ARRAY [*] OF LONGINT): ARRAY [*] OF LONGINT;
  1074. OPERATOR ^ "*"-(CONST left, right: ARRAY [*] OF REAL): ARRAY [*] OF REAL;
  1075. OPERATOR ^ "*"-(CONST left, right: ARRAY [*] OF LONGREAL): ARRAY [*] OF LONGREAL;
  1076. OPERATOR ^ "*"-(CONST left, right: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGREAL;
  1077. OPERATOR ^ "*"-(CONST left, right: ARRAY [?] OF REAL): ARRAY [?] OF REAL;
  1078. OPERATOR ^ "*"-(CONST left, right: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  1079. OPERATOR ^ "*"-(CONST left, right: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  1080. OPERATOR ^ "*"-(CONST left, right: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  1081. PROCEDURE ^ Overlap(src1, src2: ADDRESS): BOOLEAN;
  1082. PROCEDURE ^ AllocateTransposed(VAR dest: ADDRESS; src: ADDRESS; elementsize: SIZE): ANY;
  1083. PROCEDURE ^ Transpose*(dest, left: ADDRESS; Size: SIZE);
  1084. OPERATOR ^ "`"-(CONST left: ARRAY [*, *] OF SHORTINT): ARRAY [*, *] OF SHORTINT;
  1085. OPERATOR ^ "`"-(CONST left: ARRAY [*, *] OF INTEGER): ARRAY [*, *] OF INTEGER;
  1086. OPERATOR ^ "`"-(CONST left: ARRAY [*, *] OF LONGINT): ARRAY [*, *] OF LONGINT;
  1087. OPERATOR ^ "`"-(CONST left: ARRAY [*, *] OF REAL): ARRAY [*, *] OF REAL;
  1088. OPERATOR ^ "`"-(CONST left: ARRAY [*, *] OF LONGREAL): ARRAY [*, *] OF LONGREAL;
  1089. PROCEDURE ^ CheckTensorGeometry(left, right, dest: ADDRESS; ldim, rdim: SIZE): BOOLEAN;
  1090. PROCEDURE ^ DoReshape*(VAR dest: ADDRESS; src: ADDRESS; CONST shape: ARRAY [*] OF SIZE);
  1091. PROCEDURE ^ AllocateTensorA*(CONST a: ARRAY OF SIZE; elementSize: SIZE; tag: ADDRESS; VAR dest: UnsafeArray);
  1092. PROCEDURE ^ AllocateArrayA*(CONST a: ARRAY OF SIZE; elementSize: SIZE; tag: ADDRESS; dest: UnsafeArray);
  1093. PROCEDURE ^ AllocateTensorX*(VAR destA: ARRAY [?] ; CONST a: ARRAY [*] OF SIZE; Size: SIZE; tag: ADDRESS);
  1094. PROCEDURE ^ LenA*(VAR dest: ARRAY [*] OF SIZE; src: ADDRESS);
  1095. PROCEDURE ^ IncrA*(VAR dest: ARRAY [*] OF SIZE; src: ADDRESS);
  1096. PROCEDURE ^ Len*(src: ADDRESS; d: SIZE): SIZE;
  1097. PROCEDURE ^ Incr*(src: ADDRESS; d: SIZE): SIZE;
  1098. PROCEDURE ^ AllocateTensor(VAR dest: ADDRESS; left, right: ADDRESS; Size: SIZE): ANY;
  1099. PROCEDURE ^ FindPatternTensor(left, right: ADDRESS; VAR rdim, len, linc, ri: SIZE);
  1100. PROCEDURE ^ ApplyTensorAAAOp(d, l, r: ADDRESS; elementSize: SIZE; Loop: BinaryASALoop);
  1101. OPERATOR ^ "**"-(CONST left, right: ARRAY [?] OF SHORTINT): ARRAY [?] OF SHORTINT;
  1102. OPERATOR ^ "**"-(CONST left, right: ARRAY [?] OF INTEGER): ARRAY [?] OF INTEGER;
  1103. OPERATOR ^ "**"-(CONST left, right: ARRAY [?] OF LONGINT): ARRAY [?] OF LONGINT;
  1104. OPERATOR ^ "**"-(CONST left, right: ARRAY [?] OF REAL): ARRAY [?] OF REAL;
  1105. OPERATOR ^ "**"-(CONST left, right: ARRAY [?] OF LONGREAL): ARRAY [?] OF LONGREAL;
  1106. OPERATOR ^ "**"-(CONST left, right: ARRAY [?] OF COMPLEX): ARRAY [?] OF COMPLEX;
  1107. OPERATOR ^ "**"-(CONST left, right: ARRAY [?] OF LONGCOMPLEX): ARRAY [?] OF LONGCOMPLEX;
  1108. PROCEDURE ^ InitOptimization;
  1109. PROCEDURE ^ CopyDescriptor*(VAR destPtr: ANY; src: ADDRESS; prefixIndices, prefixRanges, suffixIndices, suffixRanges: SIZE);
  1110. PROCEDURE ^ Reshape*(CONST left: ARRAY [?] ; CONST right: ARRAY [*] OF SIZE): ARRAY [?] ;
  1111. PROCEDURE ^ RangeFromInteger*(CONST integer: SIZE): RANGE;
  1112. PROCEDURE ^ ExpandDimensions*(CONST sourceArray: ARRAY [?] ; CONST keptDimensions: ARRAY [*] OF BOOLEAN): ARRAY [?] ;
  1113. OPERATOR ^ "LEN"-(CONST range: RANGE): SIZE;
  1114. OPERATOR ^ "ALL"-(CONST x: ARRAY [?] OF SHORTINT; op: PROCEDURE (x: SHORTINT):SHORTINT): ARRAY [?] OF SHORTINT;
  1115. OPERATOR ^ "ALL"-(CONST x: ARRAY [?] OF INTEGER; op: PROCEDURE (x: INTEGER):INTEGER): ARRAY [?] OF INTEGER;
  1116. OPERATOR ^ "ALL"-(CONST x: ARRAY [?] OF LONGINT; op: PROCEDURE (x: LONGINT):LONGINT): ARRAY [?] OF LONGINT;
  1117. OPERATOR ^ "ALL"-(CONST x: ARRAY [?] OF HUGEINT; op: PROCEDURE (x: HUGEINT):HUGEINT): ARRAY [?] OF HUGEINT;
  1118. OPERATOR ^ "ALL"-(CONST x: ARRAY [?] OF REAL; op: PROCEDURE (x: REAL):REAL): ARRAY [?] OF REAL;
  1119. OPERATOR ^ "ALL"-(CONST x: ARRAY [?] OF LONGREAL; op: PROCEDURE (x: LONGREAL):LONGREAL): ARRAY [?] OF LONGREAL;
  1120. OPERATOR ^ "ALL"-(CONST x: ARRAY [?] OF COMPLEX; op: PROCEDURE (x: COMPLEX):COMPLEX): ARRAY [?] OF COMPLEX;
  1121. OPERATOR ^ "ALL"-(CONST x: ARRAY [?] OF LONGCOMPLEX; op: PROCEDURE (x: LONGCOMPLEX):LONGCOMPLEX): ARRAY [?] OF LONGCOMPLEX;
  1122. BEGIN
  1123. END FoxArrayBase.