CTITLESASNXPY - VECTOR SCALAR MULTIPLY AND ADD AS IN ESSL SNAXPY C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** CA CA AUTHOR W. R. FIELDER CA DESIGNER W. R. FIELDER CA LANGUAGE FORTRAN 77 CA SYSTEM IBM / CRAY CA WRITTEN OCTOBER 1988 CA C REVISED 09/04/88 CAD MODIFIED TO MEET EDP STANDARDS C REVISED 12/20/88 JJC FOR SPARC PRODUCTION. CA CA PURPOSE : THIS ROUTINE REPLACES AN ESSL ROUTINE SNAXPY. THE CA RESULTS ARE IDENTICAL. THE ESSL ROUTINE IS NOT CA USED ONLY TO MAINTAIN COMPATIBILITY ON CRAY. CA CA CALL SASNXPY(N,M,A,INCA,X,INCXI,INCXO,Y,INCYI,INCYO) CA CA INPUT N NUMBER OF ELEMENTS IN VECTOR A AND NUMBER OF CA MULTIPLY AND ADD OPERATIONS I4 CA INPUT M NUMBER OF ELEMENTS IN VECTOR X AND Y I4 CA INPUT A VECTOR CONTAIN SCALAR VALUES IN (Y = Y+ AX) R4 CA INPUT INCA STRIDE FOR VECTOR A INCA CAN NOT BE < 0. I4 CA INPUT X VECTOR CONTAINING VECTORS XI OF LENGTH M R4 CA INPUT INCXI STRIDE FOR VECTOR X FOR INSIDE LOOP (>= 0) I4 CA INPUT INCXO STRIDE FOR VECTOR X FOR OUTSIDE LOOP (>=0) I4 CA INPUT Y VECTOR CONTAINING VECTORS YI OF LENGTH M R4 CA INPUT INCYI STRIDE FOR VECTOR Y FOR INSIDE LOOP (>= 0) I4 CA INPUT INCYO STRIDE FOR VECTOR Y FOR OUTSIDE LOOP (>=0) I4 CA -------------------------------------------------------------------- C SUBROUTINE SASNXPY(N,M,A,INCA,X,INCXI,INCXO,Y,INCYI,INCYO) C IMPLICIT INTEGER (A-Z) C REAL X(1),A(1),Y(1) DOUBLE PRECISION Z C JA = 1 JX = 1 JY = 1 C DO 220 J=1,N IA = JA IX = JX IY = JY C DO 210 I = 1,M Z = DBLE(Y(IY)) + DBLE(X(IX)) * DBLE(A(IA)) Y(IY) = Z IX = IX + INCXI IY = IY + INCYI 210 CONTINUE C JA = JA + INCA JX = JX + INCXO JY = JY + INCYO 220 CONTINUE C RETURN END