Functions | |
| double precision function | dasum (n, dx, incx) |
| DASUM | |
| subroutine | daxpy (n, da, dx, incx, dy, incy) |
| DAXPY | |
| double precision function | dcabs1 (z) |
| DCABS1 | |
| subroutine | dcopy (n, dx, incx, dy, incy) |
| DCOPY | |
| double precision function | ddot (n, dx, incx, dy, incy) |
| DDOT | |
| subroutine | drot (n, dx, incx, dy, incy, c, s) |
| DROT | |
| subroutine | drotm (n, dx, incx, dy, incy, dparam) |
| DROTM | |
| subroutine | drotmg (dd1, dd2, dx1, dy1, dparam) |
| DROTMG | |
| subroutine | dscal (n, da, dx, incx) |
| DSCAL | |
| double precision function | dsdot (n, sx, incx, sy, incy) |
| DSDOT | |
| subroutine | dswap (n, dx, incx, dy, incy) |
| DSWAP | |
| subroutine | dtrsv (uplo, trans, diag, n, a, lda, x, incx) |
| DTRSV | |
| double precision function | dzasum (n, zx, incx) |
| DZASUM | |
This is the group of double LEVEL 1 BLAS routines.
| double precision function dasum | ( | integer | n, |
| double precision, dimension(*) | dx, | ||
| integer | incx ) |
DASUM
!> !> DASUM takes the sum of the absolute values. !>
| [in] | N | !> N is INTEGER !> number of elements in input vector(s) !> |
| [in] | DX | !> DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) !> |
| [in] | INCX | !> INCX is INTEGER !> storage spacing between elements of DX !> |
!> !> 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(*) !>
Definition at line 70 of file dasum.f.
| subroutine daxpy | ( | integer | n, |
| double precision | da, | ||
| double precision, dimension(*) | dx, | ||
| integer | incx, | ||
| double precision, dimension(*) | dy, | ||
| integer | incy ) |
DAXPY
!> !> DAXPY constant times a vector plus a vector. !> uses unrolled loops for increments equal to one. !>
| [in] | N | !> N is INTEGER !> number of elements in input vector(s) !> |
| [in] | DA | !> DA is DOUBLE PRECISION !> On entry, DA specifies the scalar alpha. !> |
| [in] | DX | !> DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) !> |
| [in] | INCX | !> INCX is INTEGER !> storage spacing between elements of DX !> |
| [in,out] | DY | !> DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) !> |
| [in] | INCY | !> INCY is INTEGER !> storage spacing between elements of DY !> |
!> !> jack dongarra, linpack, 3/11/78. !> modified 12/3/93, array(1) declarations changed to array(*) !>
Definition at line 88 of file daxpy.f.
| double precision function dcabs1 | ( | complex*16 | z | ) |
DCABS1
!> !> DCABS1 computes |Re(.)| + |Im(.)| of a double complex number !>
| [in] | Z | !> Z is COMPLEX*16 !> |
Definition at line 46 of file dcabs1.f.
| subroutine dcopy | ( | integer | n, |
| double precision, dimension(*) | dx, | ||
| integer | incx, | ||
| double precision, dimension(*) | dy, | ||
| integer | incy ) |
DCOPY
!> !> DCOPY copies a vector, x, to a vector, y. !> uses unrolled loops for increments equal to 1. !>
| [in] | N | !> N is INTEGER !> number of elements in input vector(s) !> |
| [in] | DX | !> DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) !> |
| [in] | INCX | !> INCX is INTEGER !> storage spacing between elements of DX !> |
| [out] | DY | !> DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) !> |
| [in] | INCY | !> INCY is INTEGER !> storage spacing between elements of DY !> |
!> !> jack dongarra, linpack, 3/11/78. !> modified 12/3/93, array(1) declarations changed to array(*) !>
Definition at line 81 of file dcopy.f.
| double precision function ddot | ( | integer | n, |
| double precision, dimension(*) | dx, | ||
| integer | incx, | ||
| double precision, dimension(*) | dy, | ||
| integer | incy ) |
DDOT
!> !> DDOT forms the dot product of two vectors. !> uses unrolled loops for increments equal to one. !>
| [in] | N | !> N is INTEGER !> number of elements in input vector(s) !> |
| [in] | DX | !> DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) !> |
| [in] | INCX | !> INCX is INTEGER !> storage spacing between elements of DX !> |
| [in] | DY | !> DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) !> |
| [in] | INCY | !> INCY is INTEGER !> storage spacing between elements of DY !> |
!> !> jack dongarra, linpack, 3/11/78. !> modified 12/3/93, array(1) declarations changed to array(*) !>
Definition at line 81 of file ddot.f.
| subroutine drot | ( | integer | n, |
| double precision, dimension(*) | dx, | ||
| integer | incx, | ||
| double precision, dimension(*) | dy, | ||
| integer | incy, | ||
| double precision | c, | ||
| double precision | s ) |
DROT
!> !> DROT applies a plane rotation. !>
| [in] | N | !> N is INTEGER !> number of elements in input vector(s) !> |
| [in,out] | DX | !> DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) !> |
| [in] | INCX | !> INCX is INTEGER !> storage spacing between elements of DX !> |
| [in,out] | DY | !> DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) !> |
| [in] | INCY | !> INCY is INTEGER !> storage spacing between elements of DY !> |
| [in] | C | !> C is DOUBLE PRECISION !> |
| [in] | S | !> S is DOUBLE PRECISION !> |
!> !> jack dongarra, linpack, 3/11/78. !> modified 12/3/93, array(1) declarations changed to array(*) !>
Definition at line 91 of file drot.f.
| subroutine drotm | ( | integer | n, |
| double precision, dimension(*) | dx, | ||
| integer | incx, | ||
| double precision, dimension(*) | dy, | ||
| integer | incy, | ||
| double precision, dimension(5) | dparam ) |
DROTM
!> !> APPLY THE MODIFIED GIVENS TRANSFORMATION, H, TO THE 2 BY N MATRIX !> !> (DX**T) , WHERE **T INDICATES TRANSPOSE. THE ELEMENTS OF DX ARE IN !> (DY**T) !> !> DX(LX+I*INCX), I = 0 TO N-1, WHERE LX = 1 IF INCX .GE. 0, ELSE !> LX = (-INCX)*N, AND SIMILARLY FOR SY USING LY AND INCY. !> WITH DPARAM(1)=DFLAG, H HAS ONE OF THE FOLLOWING FORMS.. !> !> DFLAG=-1.D0 DFLAG=0.D0 DFLAG=1.D0 DFLAG=-2.D0 !> !> (DH11 DH12) (1.D0 DH12) (DH11 1.D0) (1.D0 0.D0) !> H=( ) ( ) ( ) ( ) !> (DH21 DH22), (DH21 1.D0), (-1.D0 DH22), (0.D0 1.D0). !> SEE DROTMG FOR A DESCRIPTION OF DATA STORAGE IN DPARAM. !>
| [in] | N | !> N is INTEGER !> number of elements in input vector(s) !> |
| [in,out] | DX | !> DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) !> |
| [in] | INCX | !> INCX is INTEGER !> storage spacing between elements of DX !> |
| [in,out] | DY | !> DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) !> |
| [in] | INCY | !> INCY is INTEGER !> storage spacing between elements of DY !> |
| [in] | DPARAM | !> DPARAM is DOUBLE PRECISION array, dimension (5) !> DPARAM(1)=DFLAG !> DPARAM(2)=DH11 !> DPARAM(3)=DH21 !> DPARAM(4)=DH12 !> DPARAM(5)=DH22 !> |
Definition at line 95 of file drotm.f.
| subroutine drotmg | ( | double precision | dd1, |
| double precision | dd2, | ||
| double precision | dx1, | ||
| double precision | dy1, | ||
| double precision, dimension(5) | dparam ) |
DROTMG
!> !> CONSTRUCT THE MODIFIED GIVENS TRANSFORMATION MATRIX H WHICH ZEROS !> THE SECOND COMPONENT OF THE 2-VECTOR (DSQRT(DD1)*DX1,DSQRT(DD2)*> DY2)**T. !> WITH DPARAM(1)=DFLAG, H HAS ONE OF THE FOLLOWING FORMS.. !> !> DFLAG=-1.D0 DFLAG=0.D0 DFLAG=1.D0 DFLAG=-2.D0 !> !> (DH11 DH12) (1.D0 DH12) (DH11 1.D0) (1.D0 0.D0) !> H=( ) ( ) ( ) ( ) !> (DH21 DH22), (DH21 1.D0), (-1.D0 DH22), (0.D0 1.D0). !> LOCATIONS 2-4 OF DPARAM CONTAIN DH11, DH21, DH12, AND DH22 !> RESPECTIVELY. (VALUES OF 1.D0, -1.D0, OR 0.D0 IMPLIED BY THE !> VALUE OF DPARAM(1) ARE NOT STORED IN DPARAM.) !> !> THE VALUES OF GAMSQ AND RGAMSQ SET IN THE DATA STATEMENT MAY BE !> INEXACT. THIS IS OK AS THEY ARE ONLY USED FOR TESTING THE SIZE !> OF DD1 AND DD2. ALL ACTUAL SCALING OF DATA IS DONE USING GAM. !> !>
| [in,out] | DD1 | !> DD1 is DOUBLE PRECISION !> |
| [in,out] | DD2 | !> DD2 is DOUBLE PRECISION !> |
| [in,out] | DX1 | !> DX1 is DOUBLE PRECISION !> |
| [in] | DY1 | !> DY1 is DOUBLE PRECISION !> |
| [out] | DPARAM | !> DPARAM is DOUBLE PRECISION array, dimension (5) !> DPARAM(1)=DFLAG !> DPARAM(2)=DH11 !> DPARAM(3)=DH21 !> DPARAM(4)=DH12 !> DPARAM(5)=DH22 !> |
Definition at line 89 of file drotmg.f.
| subroutine dscal | ( | integer | n, |
| double precision | da, | ||
| double precision, dimension(*) | dx, | ||
| integer | incx ) |
DSCAL
!> !> DSCAL scales a vector by a constant. !> uses unrolled loops for increment equal to 1. !>
| [in] | N | !> N is INTEGER !> number of elements in input vector(s) !> |
| [in] | DA | !> DA is DOUBLE PRECISION !> On entry, DA specifies the scalar alpha. !> |
| [in,out] | DX | !> DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) !> |
| [in] | INCX | !> INCX is INTEGER !> storage spacing between elements of DX !> |
!> !> 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(*) !>
Definition at line 78 of file dscal.f.
| double precision function dsdot | ( | integer | n, |
| real, dimension(*) | sx, | ||
| integer | incx, | ||
| real, dimension(*) | sy, | ||
| integer | incy ) |
DSDOT
!> !> 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. !>
| [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 !> |
!> DSDOT is DOUBLE PRECISION !> DSDOT double precision dot product (zero if N.LE.0) !>
!>
!> !> !> 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.
| subroutine dswap | ( | integer | n, |
| double precision, dimension(*) | dx, | ||
| integer | incx, | ||
| double precision, dimension(*) | dy, | ||
| integer | incy ) |
DSWAP
!> !> DSWAP interchanges two vectors. !> uses unrolled loops for increments equal to 1. !>
| [in] | N | !> N is INTEGER !> number of elements in input vector(s) !> |
| [in,out] | DX | !> DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) !> |
| [in] | INCX | !> INCX is INTEGER !> storage spacing between elements of DX !> |
| [in,out] | DY | !> DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) !> |
| [in] | INCY | !> INCY is INTEGER !> storage spacing between elements of DY !> |
!> !> jack dongarra, linpack, 3/11/78. !> modified 12/3/93, array(1) declarations changed to array(*) !>
Definition at line 81 of file dswap.f.
| subroutine dtrsv | ( | character | uplo, |
| character | trans, | ||
| character | diag, | ||
| integer | n, | ||
| double precision, dimension(lda,*) | a, | ||
| integer | lda, | ||
| double precision, dimension(*) | x, | ||
| integer | incx ) |
DTRSV
!> !> DTRSV solves one of the systems of equations !> !> A*x = b, or A**T*x = b, !> !> where b and x are n element vectors and A is an n by n unit, or !> non-unit, upper or lower triangular matrix. !> !> No test for singularity or near-singularity is included in this !> routine. Such tests must be performed before calling this routine. !>
| [in] | UPLO | !> UPLO is CHARACTER*1 !> On entry, UPLO specifies whether the matrix is an upper or !> lower triangular matrix as follows: !> !> UPLO = 'U' or 'u' A is an upper triangular matrix. !> !> UPLO = 'L' or 'l' A is a lower triangular matrix. !> |
| [in] | TRANS | !> TRANS is CHARACTER*1 !> On entry, TRANS specifies the equations to be solved as !> follows: !> !> TRANS = 'N' or 'n' A*x = b. !> !> TRANS = 'T' or 't' A**T*x = b. !> !> TRANS = 'C' or 'c' A**T*x = b. !> |
| [in] | DIAG | !> DIAG is CHARACTER*1 !> On entry, DIAG specifies whether or not A is unit !> triangular as follows: !> !> DIAG = 'U' or 'u' A is assumed to be unit triangular. !> !> DIAG = 'N' or 'n' A is not assumed to be unit !> triangular. !> |
| [in] | N | !> N is INTEGER !> On entry, N specifies the order of the matrix A. !> N must be at least zero. !> |
| [in] | A | !> A is DOUBLE PRECISION array, dimension ( LDA, N ) !> Before entry with UPLO = 'U' or 'u', the leading n by n !> upper triangular part of the array A must contain the upper !> triangular matrix and the strictly lower triangular part of !> A is not referenced. !> Before entry with UPLO = 'L' or 'l', the leading n by n !> lower triangular part of the array A must contain the lower !> triangular matrix and the strictly upper triangular part of !> A is not referenced. !> Note that when DIAG = 'U' or 'u', the diagonal elements of !> A are not referenced either, but are assumed to be unity. !> |
| [in] | LDA | !> LDA is INTEGER !> On entry, LDA specifies the first dimension of A as declared !> in the calling (sub) program. LDA must be at least !> max( 1, n ). !> |
| [in,out] | X | !> X is DOUBLE PRECISION array, dimension at least !> ( 1 + ( n - 1 )*abs( INCX ) ). !> Before entry, the incremented array X must contain the n !> element right-hand side vector b. On exit, X is overwritten !> with the solution vector x. !> |
| [in] | INCX | !> INCX is INTEGER !> On entry, INCX specifies the increment for the elements of !> X. INCX must not be zero. !> !> Level 2 Blas routine. !> !> -- Written on 22-October-1986. !> Jack Dongarra, Argonne National Lab. !> Jeremy Du Croz, Nag Central Office. !> Sven Hammarling, Nag Central Office. !> Richard Hanson, Sandia National Labs. !> |
Definition at line 142 of file dtrsv.f.
| double precision function dzasum | ( | integer | n, |
| complex*16, dimension(*) | zx, | ||
| integer | incx ) |
DZASUM
!> !> DZASUM takes the sum of the (|Re(.)| + |Im(.)|)'s of a complex vector and !> returns a double precision result. !>
| [in] | N | !> N is INTEGER !> number of elements in input vector(s) !> |
| [in,out] | ZX | !> ZX is COMPLEX*16 array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) !> |
| [in] | INCX | !> INCX is INTEGER !> storage spacing between elements of ZX !> |
!> !> jack dongarra, 3/11/78. !> modified 3/93 to return if incx .le. 0. !> modified 12/3/93, array(1) declarations changed to array(*) !>
Definition at line 71 of file dzasum.f.