sasum.f

来自「贝尔实验室多年开发的矩阵计算程序库的说明文件」· F 代码 · 共 60 行

F
60
字号
      REAL FUNCTION SASUM(N,SX,INCX)*     .. Scalar Arguments ..      INTEGER INCX,N*     ..*     .. Array Arguments ..      REAL SX(*)*     ..**  Purpose*  =======**     takes the sum of the absolute values.*     uses unrolled loops for increment equal to one.*     jack dongarra, linpack, 3/11/78.*     modified 3/93 to return if incx .le. 0.*     modified 12/3/93, array(1) declarations changed to array(*)***     .. Local Scalars ..      REAL STEMP      INTEGER I,M,MP1,NINCX*     ..*     .. Intrinsic Functions ..      INTRINSIC ABS,MOD*     ..      SASUM = 0.0e0      STEMP = 0.0e0      IF (N.LE.0 .OR. INCX.LE.0) RETURN      IF (INCX.EQ.1) GO TO 20**        code for increment not equal to 1*      NINCX = N*INCX      DO 10 I = 1,NINCX,INCX          STEMP = STEMP + ABS(SX(I))   10 CONTINUE      SASUM = STEMP      RETURN**        code for increment equal to 1***        clean-up loop*   20 M = MOD(N,6)      IF (M.EQ.0) GO TO 40      DO 30 I = 1,M          STEMP = STEMP + ABS(SX(I))   30 CONTINUE      IF (N.LT.6) GO TO 60   40 MP1 = M + 1      DO 50 I = MP1,N,6          STEMP = STEMP + ABS(SX(I)) + ABS(SX(I+1)) + ABS(SX(I+2)) +     +            ABS(SX(I+3)) + ABS(SX(I+4)) + ABS(SX(I+5))   50 CONTINUE   60 SASUM = STEMP      RETURN      END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?