.TH SDSDOT 1 "February 2007" "BLAS routine" "BLAS routine" .SH NAME .SH SYNOPSIS .TP 14 REAL FUNCTION SDSDOT(N,SB,SX,INCX,SY,INCY) .TP 14 .ti +4 REAL SB .TP 14 .ti +4 INTEGER INCX,INCY,N .TP 14 .ti +4 REAL SX(*),SY(*) .TP 14 .ti +4 DOUBLE PRECISION DSDOT .TP 14 .ti +4 INTEGER I,KX,KY,NS .TP 14 .ti +4 INTRINSIC DBLE .TP 14 .ti +4 DSDOT = SB .TP 14 .ti +4 IF (N.LE.0) GO TO 30 .TP 14 .ti +4 IF (INCX.EQ.INCY .AND. INCX.GT.0) GO TO 40 .TP 14 .ti +4 KX = 1 .TP 14 .ti +4 KY = 1 .TP 14 .ti +4 IF (INCX.LT.0) KX = 1 + (1-N)*INCX .TP 14 .ti +4 IF (INCY.LT.0) KY = 1 + (1-N)*INCY .TP 14 .ti +4 DO 10 I = 1,N .TP 14 .ti +4 DSDOT = DSDOT + DBLE(SX(KX))*DBLE(SY(KY)) .TP 14 .ti +4 KX = KX + INCX .TP 14 .ti +4 KY = KY + INCY .TP 14 .ti +4 10 CONTINUE .TP 14 .ti +4 30 SDSDOT = DSDOT .TP 14 .ti +4 RETURN .TP 14 .ti +4 40 NS = N*INCX .TP 14 .ti +4 DO 50 I = 1,NS,INCX .TP 14 .ti +4 DSDOT = DSDOT + DBLE(SX(I))*DBLE(SY(I)) .TP 14 .ti +4 50 CONTINUE .TP 14 .ti +4 SDSDOT = DSDOT .TP 14 .ti +4 RETURN .TP 14 .ti +4 END .SH PURPOSE