FoxArrayBase.SymU 86 KB

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