LAPACK 3.12.1
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches

◆ dsdot()

double precision function dsdot ( integer n,
real, dimension(*) sx,
integer incx,
real, dimension(*) sy,
integer incy )

DSDOT

Purpose:
!>
!> Compute the inner product of two vectors with extended
!> precision accumulation and result.
!>
!> Returns D.P. dot product accumulated in D.P., for S.P. SX and SY
!> DSDOT = sum for I = 0 to N-1 of  SX(LX+I*INCX) * SY(LY+I*INCY),
!> where LX = 1 if INCX .GE. 0, else LX = 1+(1-N)*INCX, and LY is
!> defined in a similar way using INCY.
!> 
Parameters
[in]N
!>          N is INTEGER
!>         number of elements in input vector(s)
!> 
[in]SX
!>          SX is REAL array, dimension(N)
!>         single precision vector with N elements
!> 
[in]INCX
!>          INCX is INTEGER
!>          storage spacing between elements of SX
!> 
[in]SY
!>          SY is REAL array, dimension(N)
!>         single precision vector with N elements
!> 
[in]INCY
!>          INCY is INTEGER
!>         storage spacing between elements of SY
!> 
Returns
DSDOT
!>          DSDOT is DOUBLE PRECISION
!>         DSDOT  double precision dot product (zero if N.LE.0)
!> 
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
!> 
References:
!>
!>
!>  C. L. Lawson, R. J. Hanson, D. R. Kincaid and F. T.
!>  Krogh, Basic linear algebra subprograms for Fortran
!>  usage, Algorithm No. 539, Transactions on Mathematical
!>  Software 5, 3 (September 1979), pp. 308-323.
!>
!>  REVISION HISTORY  (YYMMDD)
!>
!>  791001  DATE WRITTEN
!>  890831  Modified array declarations.  (WRB)
!>  890831  REVISION DATE from Version 3.2
!>  891214  Prologue converted to Version 4.0 format.  (BAB)
!>  920310  Corrected definition of LX in DESCRIPTION.  (WRB)
!>  920501  Reformatted the REFERENCES section.  (WRB)
!>  070118  Reformat to LAPACK style (JL)
!> 

Definition at line 118 of file dsdot.f.

119*
120* -- Reference BLAS level1 routine --
121* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
122* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
123*
124* .. Scalar Arguments ..
125 INTEGER INCX,INCY,N
126* ..
127* .. Array Arguments ..
128 REAL SX(*),SY(*)
129* ..
130*
131* Authors:
132* ========
133* Lawson, C. L., (JPL), Hanson, R. J., (SNLA),
134* Kincaid, D. R., (U. of Texas), Krogh, F. T., (JPL)
135*
136* =====================================================================
137*
138* .. Local Scalars ..
139 INTEGER I,KX,KY,NS
140* ..
141* .. Intrinsic Functions ..
142 INTRINSIC dble
143* ..
144 dsdot = 0.0d0
145 IF (n.LE.0) RETURN
146 IF (incx.EQ.incy .AND. incx.GT.0) THEN
147*
148* Code for equal, positive, non-unit increments.
149*
150 ns = n*incx
151 DO i = 1,ns,incx
152 dsdot = dsdot + dble(sx(i))*dble(sy(i))
153 END DO
154 ELSE
155*
156* Code for unequal or nonpositive increments.
157*
158 kx = 1
159 ky = 1
160 IF (incx.LT.0) kx = 1 + (1-n)*incx
161 IF (incy.LT.0) ky = 1 + (1-n)*incy
162 DO i = 1,n
163 dsdot = dsdot + dble(sx(kx))*dble(sy(ky))
164 kx = kx + incx
165 ky = ky + incy
166 END DO
167 END IF
168 RETURN
169*
170* End of DSDOT
171*
double precision function dsdot(n, sx, incx, sy, incy)
DSDOT
Definition dsdot.f:119
Here is the call graph for this function:
Here is the caller graph for this function: