* * $Id: mlt.inc,v 1.1.1.1 1996/02/15 17:48:32 mclareni Exp $ * * $Log: mlt.inc,v $ * Revision 1.1.1.1 1996/02/15 17:48:32 mclareni * Kernlib * * #ifndef CERNLIB_KERNNUM_MLT_INC #define CERNLIB_KERNNUM_MLT_INC * * * mlt.inc * MACRO &LABEL TMMLT &M,&N,&X,&IX,&JX,&Y,&JY,&LY,&Z,&IZ,&LZ R0=(T),R1=K #include "kernnum/global.inc" &LABEL CR &Z,&X BE C&SYSNDX IF (Z) = (X) CR &Z,&Y BE D&SYSNDX IF (Z) = (Y) CR &JX,&JY BE B&SYSNDX IF JX = JY GOTO B A&SYSNDX ZISXY &M,&N,&X,&IX,&JX,&Y,&JY,&LY,&Z,&IZ,&LZ R1=K B Z&SYSNDX * IF (Y) .NE. (X) GOTO A * IF LY .NE. IX GOTO A * IF K .NE. M GOTO A B&SYSNDX CR &Y,&X BNE A&SYSNDX IF (Y) .NE. (X) GOTO A CR &LY,&IX BNE A&SYSNDX IF LY .NE. IX GOTO A CR 1,&M BNE A&SYSNDX IF K .NE. M GOTO A ZISXXT &M,&N,&X,&IX,&JX,&Z,&IZ,&LZ,&Y B Z&SYSNDX C&SYSNDX LR &Z,0 &Z = (T) CR &X,&Y BE E&SYSNDX IF (X) = (Y) GOTO E LR &IZ,1 &IZ = K LA &LZ,&LENGTH &LZ = STEP SIZE OF ARRAY T XISXY &M,&N,&IZ,&X,&IX,&JX,&Y,&JY,&LY,&Z,&LZ B Z&SYSNDX D&SYSNDX LR &Z,0 &Z = (T) LR &IZ,1 &IZ = K LA &LZ,&LENGTH &LZ = STEP SIZE OF ARRAY T YISXY &M,&N,&IZ,&X,&IX,&JX,&Y,&JY,&LY,&Z,&LZ B Z&SYSNDX E&SYSNDX LA &LZ,&LENGTH &LZ = STEP SIZE FOR ARRAY T CR &IZ,&JX BE F&SYSNDX IF Z=X' GOTO F XISXXT &M,&N,&X,&IX,&JX,&Z,&LZ,&JY,&LY B Z&SYSNDX F&SYSNDX XTISXXT &M,&N,&X,&IX,&JX,&Z,&LZ,&JY,&LY Z&SYSNDX DS 0H MEND MACRO &LABEL ZISXY &M,&N,&X,&IX,&JX,&Y,&JY,&LY,&Z,&IZ,&LZ R1=K #include "kernnum/global.inc" &LABEL PUSH 1 STACK K PUSH &Y STACK (Y(1,1)) PUSH &Z STACK (Z(1,1)) A&SYSNDX PUSH 1 SAVE K-I+1 TXMPY MMPY,&M,&N,&X,&IX,&JX,&Y,&JY,&Z,&IZ AR &Y,&LY &Y = (Y(1,I+1)) AR &Z,&LZ &Z = (Z(1,I+1)) POP 1 R1 = K-I+1 S 1,=F'1' R1 = K-I BNZ A&SYSNDX POP &Z &Z = (Z(1,1)) POP &Y &Y = (Y(1,1)) POP 1 R1 = K MEND MACRO &LABEL ZISXXT &M,&N,&X,&IX,&JX,&Z,&IZ,&LZ,&Y (&Y IS TEMP) #include "kernnum/global.inc" &LABEL PUSH &X STACK (X(1,1)) PUSH &M STACK M PUSH &Z STACK (Z(1,1)) A&SYSNDX LR &Y,&X &Y = (X(I,1)) TXMPY MMPY,&M,&N,&X,&IX,&JX,&Y,&JX,&Z,&IZ AR &Z,&IZ &Z = (Z(I+1,I)) AR &X,&IX &X = (X(I+1,1)) AR &Z,&LZ &Z = (Z(I+1,I+1)) S &M,=F'1' M = M-I BNZ A&SYSNDX POP &Z &Z = (Z(1,1)) POP &M &M = M TMUTL &M,&Z,&LZ,&IZ,&X (&X IS TEMP) POP &X &X = (X(1,1)) MEND MACRO &LABEL XISXY &M,&N,&K,&X,&IX,&JX,&Y,&JY,&LY,&TT,&JT #include "kernnum/global.inc" LCLA &OLDCC SAVE OF CURRENT &CC &LABEL PUSH &M STACK M PUSH &X STACK (X(1,1)) &OLDCC SETA &CC AIF (&CC EQ 0).ALPHA &CC SETA 3-&CC 1 FOR 2 AND VICE VERSA .ALPHA ANOP A&SYSNDX TXMPY MMPY,&K,&N,&Y,&LY,&JY,&X,&JX,&TT,&JT &CC SETA 0 COPY WITHOUT CONJUGATION TVCPY &K,&TT,&JT,&X,&JX &CC SETA &OLDCC RESTORE &CC AR &X,&IX &X = (X(I+1,1)) S &M,=F'1' &M = M-I BNZ A&SYSNDX POP &X &X = (X(1,1)) POP &M &M = M MEND MACRO &LABEL YISXY &M,&N,&K,&X,&IX,&JX,&Y,&JY,&LY,&TT,&JT #include "kernnum/global.inc" LCLA &OLDCC SAVE OF CURRENT &CC &LABEL PUSH &K STACK K PUSH &Y STACK (Y(1,1)) A&SYSNDX TXMPY MMPY,&M,&N,&X,&IX,&JX,&Y,&JY,&TT,&JT &OLDCC SETA &CC &CC SETA 0 COPY WITHOUT CONJUGATION TVCPY &M,&TT,&JT,&Y,&JY &CC SETA &OLDCC RESTORE &CC AR &Y,&LY &Y = (Y(1,I+1)) S &K,=F'1' &K = K-I BNZ A&SYSNDX POP &Y &Y = (Y(1,1)) POP &K &K = K MEND MACRO &LABEL XISXXT &M,&N,&X,&IX,&JX,&TT,&JT,&Y,&Z (&Y, &Z ARE TEMP) #include "kernnum/global.inc" &LABEL PUSH &M STACK M PUSH &X STACK (X(1,1)) LR &Z,&X &Z = (X(1,1)) A&SYSNDX LR &Y,&X &Y = (X(I,1)) TXMPY MMPY,&M,&N,&X,&IX,&JX,&Y,&JX,&TT,&JT * COPY WITH CONJUGATION TVCPY &M,&TT,&JT,&Z,&JX AR &Z,&IX &Z = (X(I+1,I)) AR &X,&IX &X = (X(I+1,1)) AR &Z,&JX &Z = (X(I+1,I+1)) S &M,=F'1' &M = M-I BNZ A&SYSNDX POP &X &X = (X(1,1)) POP &M &M = M TMUTL &M,&X,&IX,&JX,&Y MEND MACRO &LABEL XTISXXT &M,&N,&X,&IX,&JX,&TT,&JT,&Y,&Z (&Y, &Z ARE TEMP) #include "kernnum/global.inc" LCLA &OLDCC SAVE OF CURRENT &CC &LABEL PUSH &M STACK M PUSH &X STACK (X(1,1)) LR &Z,&X &Z = (X(1,1)) A&SYSNDX LR &Y,&X &Y = (X(I,1)) TXMPY MMPY,&M,&N,&X,&IX,&JX,&Y,&JX,&TT,&JT &OLDCC SETA &CC &CC SETA 0 COPY WITHOUT CONJUGATION TVCPY &M,&TT,&JT,&Z,&JX &CC SETA &OLDCC RESTORE &CC AR &Z,&IX &Z = (X(I+1,I)) AR &X,&IX &X = (X(I+1,1)) AR &Z,&JX &Z = (X(I+1,I+1)) S &M,=F'1' &M = M-I BNZ A&SYSNDX POP &X &X = (X(1,1)) POP &M &M = M TMUTL &M,&X,&IX,&JX,&Y MEND #endif