* * $Id: trsat.s,v 1.1.1.1 1996/02/15 17:51:24 mclareni Exp $ * * $Log: trsat.s,v $ * Revision 1.1.1.1 1996/02/15 17:51:24 mclareni * Kernlib * * IDENT TRSAT * * CERN PROGLIB# F112 TRSAT .VERSION KERNCDC 0.1 761001 * ENTRY TRSAT * SUBROUTINE TRSAT(S,A,B,M,N) * WRITTEN BY ST.MEEN 5-JULY-76 VFD 30/5HTRSAT,30/TRSAT TRSAT BSS 1 SB7 -1 SA2 A1-B7 SA3 A2-B7 SA4 A3-B7 SA5 A4-B7 SA4 X4 SA5 X5 * DX7 X4*X5 X7= M*N DX6 X4*X4 IX6 X6+X4 AX6 1 SB6 X6 B6= (M*M+M)/2 Y SX0 X4 X0= M SB4 X0 B4= M SB3 X7+B7 B3= M*N-1 * * NEWROW-LOOP: B4=M-1,...,0 NEWROW SB4 B4+B7 SB2 X7+B7 SB6 B6+B7 * * NEWCOL-LOOP: B2=M*N-1,M*N-2,...,M*N-N NEWCOL SB1 B6 SB5 X0+B7 MX6 0 * * SUMUP-LOOP: B5=M-1,...,0 * MULTIPLIES ROW B4 OF S BY ROW M*N-B2 OF A SUMUP SA4 X1+B1 SA5 X2+B2 RX5 X4*X5 RX6 X6+X5 NX6 B0,X6 X6= X6+S(B1+1)*A(B2+1) * SB2 B2+B7 SB1 B1-B5 SB5 B5+B7 GE B5,B4,SUMUP SB1 B1+B5 GE B5,B0,SUMUP * SA6 X3+B3 SB3 B3+B7 GE B2,B0,NEWCOL NE B4,B0,NEWROW JP TRSAT END #ifdef CERNLIB_TCGEN_TRSAT #undef CERNLIB_TCGEN_TRSAT #endif