C --- Inner product with unrolled loops (BLAS-like) ----- C (c) A.Meyer/M.Pester, TU Chemnitz (1989-92) C --------------------------------- version: May 1996 -- Double Precision FUNCTION DScapr1(N,X,Y) Double Precision X(*),Y(*),S Integer N,M,MP1,I, NROLL PARAMETER (NROLL=5) S = 0D0 M=MOD(N,NROLL) IF (M .EQ. 0) GOTO 20 DO 10 I=1,M S = S + X(I) * Y(I) 10 CONTINUE IF (N .LT. NROLL) GOTO 40 20 MP1=M+1 DO 30 I=MP1,N,NROLL S = S + X(I)*Y(I) + X(I+1)*Y(I+1) + X(I+2)*Y(I+2) + + X(I+3)*Y(I+3) + X(I+4)*Y(I+4) 30 CONTINUE 40 DScapr1 = S RETURN END