* * $Id: set.inc,v 1.1.1.1 1996/02/15 17:48:33 mclareni Exp $ * * $Log: set.inc,v $ * Revision 1.1.1.1 1996/02/15 17:48:33 mclareni * Kernlib * * #ifndef CERNLIB_KERNNUM_SET_INC #define CERNLIB_KERNNUM_SET_INC * * * set.inc * MACRO &LABEL VSET &N,&Z,&JZ,&JZ2,&J &LABEL FIRST &J,&N,LOOP=L&SYSNDX STORE 0,&Z AR &Z,&JZ (Z) = (Z) + JZ L&SYSNDX FORTWO &J,&N,EXIT=X&SYSNDX STORE 0,&Z STORE 0,&Z,JX=&JZ AR &Z,&JZ2 (Z) = (Z) + 2*JZ X&SYSNDX ENDFOR &J,&N,LOOP=L&SYSNDX MEND MACRO &LABEL TVSET2 &N,&Z,&JZ,&JZ2,&J #include "kernnum/global.inc" LCLA &OLD,&Z1 &LABEL DS 0H &OLD SETA &STACK &Z1 SETA &OLD &STACK SETA &Z1+1*4 AIF (&STACK LE &STKLIM).ALPHA MNOTE 14,'NO WORK SPACE FOR MACRO TVSET2' MEXIT .ALPHA ANOP ST &Z,&Z1.(15) Z1 = (Z) VSET &N,&Z,&JZ,&JZ2,&J L &Z,&Z1.(15) &Z = (Z) &STACK SETA &OLD MEND MACRO &LABEL MSET &M,&N,&Z,&IZ,&JZ,&JZ2,&I,&J &LABEL DS 0H L&SYSNDX FORONE &I TVSET2 &N,&Z,&JZ,&JZ2,&J AR &Z,&IZ &Z = (Z(I+1,1)) ENDFOR &I,&M,LOOP=L&SYSNDX MEND MACRO &LABEL TMSET2 &M,&N,&Z,&IZ,&JZ,&JZ2,&I,&J #include "kernnum/global.inc" LCLA &OLD,&Z11 &OLD SETA &STACK &Z11 SETA &OLD &STACK SETA &Z11+1*4 AIF (&STACK LE &STKLIM).ALPHA MNOTE 14,'NO WORK SPACE FOR MACRO TMSET2' MEXIT .ALPHA ANOP &LABEL ST &Z,&Z11.(15) Z11 = (Z(1,1)) CR &M,&N BC GT,A&SYSNDX LA &M-1,1 PROCESS 1 ROW AT A TIME LA &N-1,2 PROCESS 2 ELEMENTS AT A TIME LR &JZ2,&JZ AR &JZ2,&JZ &JZ2 = 2*JZ MSET &M,&N,&Z,&IZ,&JZ,&JZ2,&I,&J B B&SYSNDX A&SYSNDX LA &N-1,1 PROCESS 1 COLUMN AT A TIME LA &M-1,2 PROCESS 2 ELEMENTS AT A TIME LR &JZ2,&IZ AR &JZ2,&IZ &JZ2 = 2*IZ MSET &N,&M,&Z,&JZ,&IZ,&JZ2,&J,&I B&SYSNDX L &Z,&Z11.(15) &Z = (Z(1,1)) &STACK SETA &OLD MEND #endif