caxpy(3f) -- [BLAS:COMPLEX_BLAS_LEVEL1] CY:=CY+CA*CX (constant times a vector plus a vector)
Synopsis
Description
Options
Authors
Further Details
See Also
subroutine caxpy(n,ca,cx,incx,cy,incy)
.. Scalar Arguments .. complex,intent(in) :: ca integer,intent(in) :: incx,incy,n .. .. Array Arguments .. complex,intent(in) :: cx(*) complex,intent(inout) :: cy(*)
CAXPY constant times a vector plus a vector.
N number of elements in input vector(s) CA On entry, CA specifies the scalar alpha. CX CX is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) INCX storage spacing between elements of CX CY CY is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) INCY storage spacing between elements of CY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd.
Jack Dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | caxpy (3m_blas) | July 20, 2023 |
ccopy(3f) - [BLAS:COMPLEX_BLAS_LEVEL1] CY:=CX (copies elements of a vector x to a vector y)
Synopsis
Description
Options
Authors
Further Details
See Also
subroutine ccopy(n,cx,incx,cy,incy)
.. scalar arguments .. integer,intent(in) :: incx,incy,n .. .. array arguments .. complex,intent(in) :: cx(*) complex,intent(out) :: cy(*)
CCOPY copies a vector x to a vector y.
N number of elements in input vector(s) CX dimension ( 1 + ( N - 1 )*abs( INCX ) ) INCX storage spacing between elements of CX CY dimension ( 1 + ( N - 1 )*abs( INCY ) ) INCY storage spacing between elements of CY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ccopy (3m_blas) | July 20, 2023 |
cdotc(3f) - [BLAS:COMPLEX_BLAS_LEVEL1] CDOTC := SUM CONJUGATE(CX) * CY (conjugated vector dot product)
Synopsis
Definition
Options
Authors
Further Details
See Also
complex function cdotc(n,cx,incx,cy,incy)
.. Scalar Arguments .. integer,intent(in) :: incx,incy,n .. .. Array Arguments .. complex,intent(in) :: cx(*),cy(*) ..
CDOTC forms the dot product of two complex vectors
CDOTC = X^H * Y
N number of elements in input vector(s) CX array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) INCX storage spacing between elements of CX CY array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) INCY storage spacing between elements of CY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | cdotc (3m_blas) | July 20, 2023 |
cdotu(3f) - [BLAS:COMPLEX_BLAS_LEVEL1] CDOTU := SUM CX * CY (unconjugated vector dot product)
Synopsis
Definition
Options
Authors
Further Details
See Also
complex function cdotu(n,cx,incx,cy,incy)
.. Scalar Arguments .. integer,intent(in) :: incx,incy,n .. .. Array Arguments .. complex,intent(in) :: cx(*),cy(*) ..
CDOTU forms the dot product of two complex vectors
CDOTU = X^T * Y
number of elements in input vector(s)
array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
storage spacing between elements of CX
array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
storage spacing between elements of CY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | cdotu (3m_blas) | July 20, 2023 |
cgbmv(3f) - [BLAS:COMPLEX_BLAS_LEVEL2] CY := alpha*A*CX + beta*CY; ==> A is a rectangular band matrix).
Synopsis
Description
Options
Y
Authors
Further Details
See Also
subroutine cgbmv(trans,m,n,kl,ku,alpha,a,lda,x,incx,beta,y,incy)
.. Scalar Arguments .. complex,intent(in) :: alpha,beta integer,intent(in) :: incx,incy,kl,ku,lda,m,n character,intent(in) :: trans .. .. Array Arguments .. complex,intent(in) :: a(lda,*),x(*) complex,intent(inout) :: y(*) ..
CGBMV performs one of the matrix-vector operations y := alpha*A*x + beta*y, or y := alpha*A**T*x + beta*y, orwhere alpha and beta are scalars, x and y are vectors and A is an m by n band matrix, with kl sub-diagonals and ku super-diagonals.y := alpha*A**H*x + beta*y,
On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ y := alpha*A*x + beta*y.TRANS = ’T’ or ’t’ y := alpha*A**T*x + beta*y.
TRANS = ’C’ or ’c’ y := alpha*A**H*x + beta*y.
On entry, M specifies the number of rows of the matrix A. M must be at least zero.
On entry, N specifies the number of columns of the matrix A. N must be at least zero.
On entry, KL specifies the number of sub-diagonals of the
matrix A. KL must satisfy 0 .le. KL.
On entry, KU specifies the number of super-diagonals of the
matrix A. KU must satisfy 0 .le. KU.
On entry, ALPHA specifies the scalar alpha.
A is COMPLEX array, dimension ( LDA, N ) Before entry, the leading ( kl + ku + 1 ) by n part of the array A must contain the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row ( ku + 1 ) of the array, the first super-diagonal starting at position 2 in row ku, the first sub-diagonal starting at position 1 in row ( ku + 2 ), and so on.Elements in the array A that do not correspond to elements in the band matrix (such as the top left ku by ku triangle) are not referenced.
The following program segment will transfer a band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N K = KU + 1 - J DO 10, I = MAX( 1, J - KU ), MIN( M, J + KL ) A( K + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE
On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least ( kl + ku + 1 ).
X is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ) when TRANS = ’N’ or ’n’ and at least ( 1 + ( m - 1 )*abs( INCX ) ) otherwise. Before entry, the incremented array X must contain the vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is COMPLEX On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input.
Y is COMPLEX array, dimension at least ( 1 + ( m - 1 )*abs( INCY ) ) when TRANS = ’N’ or ’n’ and at least ( 1 + ( n - 1 )*abs( INCY ) ) otherwise. Before entry, the incremented array Y must contain the vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0-- Written on 22-October-1986. Jack Dongarra, Argonne National Lab. Jeremy Du Croz, Nag Central Office. Sven Hammarling, Nag Central Office.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | cgbmv (3m_blas) | July 20, 2023 |
cgemm(3f) - [BLAS:COMPLEX_BLAS_LEVEL3] C:=alpha*A*B+beta*C; ==> A, B, C rectangular.
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine cgemm(transa,transb,m,n,k,alpha,a,lda,b,ldb,beta,c,ldc)
.. Scalar Arguments .. complex,intent(in) :: alpha,beta integer,intent(in) :: k,lda,ldb,ldc,m,n character,intent(in) :: transa,transb .. .. Array Arguments .. complex,intent(in) :: a(lda,*),b(ldb,*) complex,intent(inout) :: c(ldc,*) ..
CGEMM performs one of the matrix-matrix operations
C := alpha*op( A )*op( B ) + beta*C,where op( X ) is one of
op( X ) = X or op( X ) = X**T or op( X ) = X**H,alpha and beta are scalars, and A, B and C are matrices, with op( A )
an m by k matrix, op( B ) a K by N matrix and C an M by N matrix.
On entry, TRANSA specifies the form of op( A ) to be used in the matrix multiplication as follows:
TRANSA = ’N’ or ’n’, op( A ) = A.TRANSA = ’T’ or ’t’, op( A ) = A**T.
TRANSA = ’C’ or ’c’, op( A ) = A**H.
TRANSB is CHARACTER*1 On entry, TRANSB specifies the form of op( B ) to be used in the matrix multiplication as follows:
TRANSB = ’N’ or ’n’, op( B ) = B.TRANSB = ’T’ or ’t’, op( B ) = B**T.
TRANSB = ’C’ or ’c’, op( B ) = B**H.
On entry, M specifies the number of rows of the matrix op( A ) and of the matrix C. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix op( B ) and the number of columns of the matrix C. N must be at least zero.
K is INTEGER On entry, K specifies the number of columns of the matrix op( A ) and the number of rows of the matrix op( B ). K must be at least zero.
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha.
A is COMPLEX array, dimension ( LDA, ka ), where ka is k when TRANSA = ’N’ or ’n’, and is m otherwise. Before entry with TRANSA = ’N’ or ’n’, the leading m by k part of the array A must contain the matrix A, otherwise the leading k by m part of the array A must contain the matrix A.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANSA = ’N’ or ’n’ then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, k ).
B is COMPLEX array, dimension ( LDB, kb ), where kb is n when TRANSB = ’N’ or ’n’, and is k otherwise. Before entry with TRANSB = ’N’ or ’n’, the leading k by n part of the array B must contain the matrix B, otherwise the leading n by k part of the array B must contain the matrix B.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. When TRANSB = ’N’ or ’n’ then LDB must be at least max( 1, k ), otherwise LDB must be at least max( 1, n ).
BETA is COMPLEX On entry, BETA specifies the scalar beta. When BETA is supplied as zero then C need not be set on input.
C is COMPLEX array, dimension ( LDC, N ) Before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry. On exit, the array C is overwritten by the m by n matrix ( alpha*op( A )*op( B ) + beta*C ).
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | cgemm (3m_blas) | July 20, 2023 |
cgemv(3f) - [BLAS:COMPLEX_BLAS_LEVEL2] CY := alpha*A*CX + beta*CY; ==> A a rectangular matrix.
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine cgemv(trans,m,n,alpha,a,lda,x,incx,beta,y,incy)
.. Scalar Arguments .. COMPLEX,intent(in) :: ALPHA,BETA INTEGER,intent(in) :: INCX,INCY,LDA,M,N CHARACTER,intent(in) :: TRANS .. .. Array Arguments .. COMPLEX,intent(in) :: A(LDA,*),X(*) COMPLEX,intent(inout) :: Y(*) ..
CGEMV performs one of the matrix-vector operations
y := alpha*A*x + beta*y, or y := alpha*A**T*x + beta*y, orwhere alpha and beta are scalars, x and y are vectors and A is an m by n matrix.y := alpha*A**H*x + beta*y,
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ y := alpha*A*x + beta*y.TRANS = ’T’ or ’t’ y := alpha*A**T*x + beta*y.
TRANS = ’C’ or ’c’ y := alpha*A**H*x + beta*y.
M is INTEGER On entry, M specifies the number of rows of the matrix A. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix A. N must be at least zero.
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha.
A is COMPLEX array, dimension ( LDA, N ) Before entry, the leading m by n part of the array A must contain the matrix of coefficients.
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, m ).
X is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ) when TRANS = ’N’ or ’n’ and at least ( 1 + ( m - 1 )*abs( INCX ) ) otherwise. Before entry, the incremented array X must contain the vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is COMPLEX On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input.
Y is COMPLEX array, dimension at least ( 1 + ( m - 1 )*abs( INCY ) ) when TRANS = ’N’ or ’n’ and at least ( 1 + ( n - 1 )*abs( INCY ) ) otherwise. Before entry with BETA non-zero, the incremented array Y must contain the vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | cgemv (3m_blas) | July 20, 2023 |
cgerc(3f) - [BLAS:COMPLEX_BLAS_LEVEL2] A := A + alpha*CX*CONJUGATE-TRANSPOSE(CY); ==> A is a rectangular matrix.
Synopsis
Definition
Options
A
Authors
Further Details
See Also
subroutine cgerc(m,n,alpha,x,incx,y,incy,a,lda)
.. Scalar Arguments .. complex,intent(in) :: alpha integer,intent(in) :: incx,incy,lda,m,n .. .. Array Arguments .. complex,intent(inout) :: a(lda,*) complex,intent(in) :: x(*),y(*) ..
CGERC performs the rank 1 operation
A := alpha*x*y**H + A,where alpha is a scalar, x is an m element vector, y is an n element vector and A is an m by n matrix.
M is INTEGER On entry, M specifies the number of rows of the matrix A. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix A. N must be at least zero.
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha.
X is COMPLEX array, dimension at least ( 1 + ( m - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the m element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
Y is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
A is COMPLEX array, dimension ( LDA, N ) Before entry, the leading m by n part of the array A must contain the matrix of coefficients. On exit, A is overwritten by the updated matrix.
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, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | cgerc (3m_blas) | July 20, 2023 |
cgeru(3f) - [BLAS:COMPLEX_BLAS_LEVEL2] A := A + alpha*CX*TRANSPOSE(CY); ==> A is a rectangular matrix.
Synopsis
Definition
Options
A
Authors
Further Details
See Also
subroutine cgeru(m,n,alpha,x,incx,y,incy,a,lda)
.. Scalar Arguments .. complex,intent(in) :: alpha integer,intent(in) :: incx,incy,lda,m,n .. .. Array Arguments .. complex,intent(inout) :: a(lda,*) complex,intent(in) :: x(*),y(*) ..
CGERU performs the rank 1 operation
A := alpha*x*y**T + A,where alpha is a scalar, x is an m element vector, y is an n element vector and A is an m by n matrix.
M is INTEGER On entry, M specifies the number of rows of the matrix A. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix A. N must be at least zero.
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha.
X is COMPLEX array, dimension at least ( 1 + ( m - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the m element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
Y is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
A is COMPLEX array, dimension ( LDA, N ) Before entry, the leading m by n part of the array A must contain the matrix of coefficients. On exit, A is overwritten by the updated matrix.
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, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | cgeru (3m_blas) | July 20, 2023 |
chbmv(3f) - [BLAS:COMPLEX_BLAS_LEVEL2] CY := alpha*A*CX + beta*CY; ==> A a (square) hermitian band matrix.
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine chbmv(uplo,n,k,alpha,a,lda,x,incx,beta,y,incy)
.. Scalar Arguments .. complex,intent(in) :: alpha,beta integer,intent(in) :: incx,incy,k,lda,n character,intent(in) :: uplo .. .. Array Arguments .. complex,intent(in) :: a(lda,*),x(*) complex,intent(inout) :: y(*) ..
CHBMV(3f) performs the matrix-vector operation
y := alpha*A*x + beta*y,where alpha and beta are scalars, x and y are n element vectors and A is an n by n hermitian band matrix, with k super-diagonals.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the band matrix A is being supplied as follows:
UPLO = ’U’ or ’u’ The upper triangular part of A is being supplied.UPLO = ’L’ or ’l’ The lower triangular part of A is being supplied.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
K is INTEGER On entry, K specifies the number of super-diagonals of the matrix A. K must satisfy 0 .le. K.
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha.
A is COMPLEX array, dimension ( LDA, N ) Before entry with UPLO = ’U’ or ’u’, the leading ( k + 1 ) by n part of the array A must contain the upper triangular band part of the hermitian matrix, supplied column by column, with the leading diagonal of the matrix in row ( k + 1 ) of the array, the first super-diagonal starting at position 2 in row k, and so on. The top left k by k triangle of the array A is not referenced. The following program segment will transfer the upper triangular part of a hermitian band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = K + 1 - J DO 10, I = MAX( 1, J - K ), J A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Before entry with UPLO = ’L’ or ’l’, the leading ( k + 1 ) by n part of the array A must contain the lower triangular band part of the hermitian matrix, supplied column by column, with the leading diagonal of the matrix in row 1 of the array, the first sub-diagonal starting at position 1 in row 2, and so on. The bottom right k by k triangle of the array A is not referenced. The following program segment will transfer the lower triangular part of a hermitian band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = 1 - J DO 10, I = J, MIN( N, J + K ) A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Note that the imaginary parts of the diagonal elements need not be set and are assumed to be zero.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least ( k + 1 ).
X is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is COMPLEX On entry, BETA specifies the scalar beta.
Y is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | chbmv (3m_blas) | July 20, 2023 |
chemm(3f) - [BLAS:COMPLEX_BLAS_LEVEL3] C:=alpha*A*TRANSPOSE(A)+beta*C; ==> A hermitian, B, C rectangular.
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine chemm(side,uplo,m,n,alpha,a,lda,b,ldb,beta,c,ldc)
.. Scalar Arguments .. complex,intent(in) :: alpha,beta integer,intent(in) :: lda,ldb,ldc,m,n character,intent(in) :: side,uplo .. .. Array Arguments .. complex,intent(in) :: a(lda,*),b(ldb,*) complex,intent(inout) :: c(ldc,*) ..
CHEMM performs one of the matrix-matrix operations
C := alpha*A*B + beta*C,or
C := alpha*B*A + beta*C,where alpha and beta are scalars, A is an hermitian matrix and B and C are m by n matrices.
SIDE is CHARACTER*1 On entry, SIDE specifies whether the hermitian matrix A appears on the left or right in the operation as follows:
SIDE = ’L’ or ’l’ C := alpha*A*B + beta*C,SIDE = ’R’ or ’r’ C := alpha*B*A + beta*C,
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the hermitian matrix A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of the hermitian matrix is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of the hermitian matrix is to be referenced.
M is INTEGER On entry, M specifies the number of rows of the matrix C. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix C. N must be at least zero.
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha.
A is COMPLEX array, dimension ( LDA, ka ), where ka is m when SIDE = ’L’ or ’l’ and is n otherwise. Before entry with SIDE = ’L’ or ’l’, the m by m part of the array A must contain the hermitian matrix, such that when UPLO = ’U’ or ’u’, the leading m by m upper triangular part of the array A must contain the upper triangular part of the hermitian matrix and the strictly lower triangular part of A is not referenced, and when UPLO = ’L’ or ’l’, the leading m by m lower triangular part of the array A must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of A is not referenced. Before entry with SIDE = ’R’ or ’r’, the n by n part of the array A must contain the hermitian matrix, such that when UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array A must contain the upper triangular part of the hermitian matrix and the strictly lower triangular part of A is not referenced, and when UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array A must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of A is not referenced. Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When SIDE = ’L’ or ’l’ then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, n ).
B is COMPLEX array, dimension ( LDB, N ) Before entry, the leading m by n part of the array B must contain the matrix B.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
BETA is COMPLEX On entry, BETA specifies the scalar beta. When BETA is supplied as zero then C need not be set on input.
C is COMPLEX array, dimension ( LDC, N ) Before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry. On exit, the array C is overwritten by the m by n updated matrix.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | chemm (3m_blas) | July 20, 2023 |
chemv(3f) - [BLAS:COMPLEX_BLAS_LEVEL2] CY := alpha*A*CX + beta*CY; ==> A a (square) hermitian matrix.
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine chemv(uplo,n,alpha,a,lda,x,incx,beta,y,incy)
.. Scalar Arguments .. complex,intent(in) :: alpha,beta integer,intent(in) :: incx,incy,lda,n character,intent(in) :: uplo .. .. Array Arguments .. complex,intent(in) :: a(lda,*),x(*) complex,intent(inout) :: y(*) ..
CHEMV performs the matrix-vector operation y := alpha*A*x + beta*y,where alpha and beta are scalars, x and y are n element vectors and A is an n by n hermitian matrix.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of A is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of A is to be referenced.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha.
A is COMPLEX 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 part of the hermitian 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 part of the hermitian matrix and the strictly upper triangular part of A is not referenced. Note that the imaginary parts of the diagonal elements need not be set and are assumed to be zero.
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 ).
X is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is COMPLEX On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input.
Y is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | chemv (3m_blas) | July 20, 2023 |
cher(3f) - [BLAS:COMPLEX_BLAS_LEVEL2] A := A + alpha*CX*CONJUGATE-TRANSPOSE(CX); ==> A a (square) hermitian matrix. (performs the hermitian rank 1 operation)
Synopsis
Definition
Options
A
Authors
Further Details
See Also
subroutine cher(uplo,n,alpha,x,incx,a,lda)
.. Scalar Arguments .. real,intent(in) :: alpha integer,intent(in) :: incx,lda,n character,intent(in) :: uplo .. .. Array Arguments .. complex,intent(inout) :: a(lda,*) complex,intent(in) :: x(*) ..
CHER performs the hermitian rank 1 operation
A := alpha*x*x**H + A,where alpha is a real scalar, x is an n element vector and A is an n by n hermitian matrix.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of A is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of A is to be referenced.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
X is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
A is COMPLEX 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 part of the hermitian matrix and the strictly lower triangular part of A is not referenced. On exit, the upper triangular part of the array A is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array A must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of A is not referenced. On exit, the lower triangular part of the array A is overwritten by the lower triangular part of the updated matrix. Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero, and on exit they are set to zero.
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 ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | cher (3m_blas) | July 20, 2023 |
cher2(3f) - [BLAS:COMPLEX_BLAS_LEVEL2] A := A + alpha*CX*CONJUGATE-TRANSPOSE(CY)n + CONJUGATE(alpha)*CY*CONJUGATE-TRANSPOSE(CX); ==> n A a (square) hermitian matrix. (performs the hermitian rank 2 operation)
Synopsis
Definition
Options
A
Authors
Further Details
See Also
subroutine cher2(uplo,n,alpha,x,incx,y,incy,a,lda)
.. Scalar Arguments .. complex,intent(in) :: alpha integer,intent(in) :: incx,incy,lda,n character,intent(in) :: uplo .. .. Array Arguments .. complex,intent(inout) :: a(lda,*) complex,intent(in) :: x(*),y(*) ..
CHER2 performs the hermitian rank 2 operation
A := alpha*x*y**H + conjg( alpha )*y*x**H + A,where alpha is a scalar, x and y are n element vectors and A is an n by n hermitian matrix.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of A is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of A is to be referenced.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha.
X is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
Y is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
A is COMPLEX 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 part of the hermitian matrix and the strictly lower triangular part of A is not referenced. On exit, the upper triangular part of the array A is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array A must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of A is not referenced. On exit, the lower triangular part of the array A is overwritten by the lower triangular part of the updated matrix. Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero, and on exit they are set to zero.
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 ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | cher2 (3m_blas) | July 20, 2023 |
cher2k(3f) - [BLAS:COMPLEX_BLAS_LEVEL3] C:=alpha*A*TRANSPOSE(B)+alpha*B*TRANSPOSE(A)+beta*C; ==> C hermitian. (performs one of the hermitian rank 2k operations)
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine cher2k(uplo,trans,n,k,alpha,a,lda,b,ldb,beta,c,ldc)
.. Scalar Arguments .. complex,intent(in) :: alpha real,intent(in) :: beta integer,intent(in) :: k,lda,ldb,ldc,n character,intent(in) :: trans,uplo .. .. Array Arguments .. complex,intent(in) :: a(lda,*),b(ldb,*) complex,intent(inout) :: c(ldc,*) ..
CHER2K performs one of the hermitian rank 2k operations
C := alpha*A*B**H + conjg( alpha )*B*A**H + beta*C,or
C := alpha*A**H*B + conjg( alpha )*B**H*A + beta*C,where alpha and beta are scalars with beta real, C is an n by n hermitian matrix and A and B are n by k matrices in the first case and k by n matrices in the second case.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array C is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of C is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of C is to be referenced.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ C := alpha*A*B**H + conjg( alpha )*B*A**H + beta*C.TRANS = ’C’ or ’c’ C := alpha*A**H*B + conjg( alpha )*B**H*A + beta*C.
N is INTEGER On entry, N specifies the order of the matrix C. N must be at least zero.
K is INTEGER On entry with TRANS = ’N’ or ’n’, K specifies the number of columns of the matrices A and B, and on entry with TRANS = ’C’ or ’c’, K specifies the number of rows of the matrices A and B. K must be at least zero.
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha.
A is COMPLEX array, dimension ( LDA, ka ), where ka is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array A must contain the matrix A, otherwise the leading k by n part of the array A must contain the matrix A.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDA must be at least max( 1, n ), otherwise LDA must be at least max( 1, k ).
B is COMPLEX array, dimension ( LDB, kb ), where kb is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array B must contain the matrix B, otherwise the leading k by n part of the array B must contain the matrix B.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDB must be at least max( 1, n ), otherwise LDB must be at least max( 1, k ).
BETA is REAL On entry, BETA specifies the scalar beta.
C is COMPLEX array, dimension ( LDC, N ) Before entry with UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array C must contain the upper triangular part of the hermitian matrix and the strictly lower triangular part of C is not referenced. On exit, the upper triangular part of the array C is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array C must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of C is not referenced. On exit, the lower triangular part of the array C is overwritten by the lower triangular part of the updated matrix. Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero, and on exit they are set to zero.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, n ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
-- Modified 8-Nov-93 to set C(J,J) to REAL( C(J,J) ) when BETA = 1. Ed Anderson, Cray Research Inc.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | cher2k (3m_blas) | July 20, 2023 |
cherk(3f) - [BLAS:COMPLEX_BLAS_LEVEL3] performs one of the hermitian rank k operations C:=alpha*A*TRANSPOSE(A)+beta*C, C hermitian.
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine cherk(uplo,trans,n,k,alpha,a,lda,beta,c,ldc)
.. Scalar Arguments .. real,intent(in) :: alpha,beta integer,intent(in) :: k,lda,ldc,n character,intent(in) :: trans,uplo .. .. Array Arguments .. complex,intent(in) :: a(lda,*) complex,intent(inout) :: c(ldc,*) ..
CHERK performs one of the hermitian rank k operations
C := alpha*A*A**H + beta*C,or
C := alpha*A**H*A + beta*C,where alpha and beta are real scalars, C is an n by n hermitian matrix and A is an n by k matrix in the first case and a k by n matrix in the second case.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array C is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of C is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of C is to be referenced.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ C := alpha*A*A**H + beta*C.TRANS = ’C’ or ’c’ C := alpha*A**H*A + beta*C.
N is INTEGER On entry, N specifies the order of the matrix C. N must be at least zero.
K is INTEGER On entry with TRANS = ’N’ or ’n’, K specifies the number of columns of the matrix A, and on entry with TRANS = ’C’ or ’c’, K specifies the number of rows of the matrix A. K must be at least zero.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
A is COMPLEX array, dimension ( LDA, ka ), where ka is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array A must contain the matrix A, otherwise the leading k by n part of the array A must contain the matrix A.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDA must be at least max( 1, n ), otherwise LDA must be at least max( 1, k ).
BETA is REAL On entry, BETA specifies the scalar beta.
C is COMPLEX array, dimension ( LDC, N ) Before entry with UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array C must contain the upper triangular part of the hermitian matrix and the strictly lower triangular part of C is not referenced. On exit, the upper triangular part of the array C is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array C must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of C is not referenced. On exit, the lower triangular part of the array C is overwritten by the lower triangular part of the updated matrix. Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero, and on exit they are set to zero.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, n ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
-- Modified 8-Nov-93 to set C(J,J) to REAL( C(J,J) ) when BETA = 1. Ed Anderson, Cray Research Inc.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | cherk (3m_blas) | July 20, 2023 |
chpmv(3f) - [BLAS:COMPLEX_BLAS_LEVEL2] CY := alpha*A*CX + beta*CY, A a (square) hermitian packed matrix.
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine chpmv(uplo,n,alpha,ap,x,incx,beta,y,incy)
.. Scalar Arguments .. complex,intent(in) :: alpha,beta integer,intent(in) :: incx,incy,n character,intent(in) :: uplo .. .. Array Arguments .. complex,intent(in) :: ap(*),x(*) complex,intent(inout) :: y(*) ..
CHPMV(3f) performs the matrix-vector operation
y := alpha*A*x + beta*y,where alpha and beta are scalars, x and y are n element vectors and A is an n by n hermitian matrix, supplied in packed form.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the matrix A is supplied in the packed array AP as follows:
UPLO = ’U’ or ’u’ The upper triangular part of A is supplied in AP.UPLO = ’L’ or ’l’ The lower triangular part of A is supplied in AP.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha.
AP is COMPLEX array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular part of the hermitian matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular part of the hermitian matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. Note that the imaginary parts of the diagonal elements need not be set and are assumed to be zero.
X is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is COMPLEX On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input.
Y is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | chpmv (3m_blas) | July 20, 2023 |
chpr(3f) - [BLAS:COMPLEX_BLAS_LEVEL2] performs the hermitian rank 1 operation A := A + alpha*CX*CONJUGATE-TRANSPOSE(CX), a a (square) hermitian packed.
Synopsis
Definition
Options
Ap
Authors
Further Details
See Also
subroutine chpr(uplo,n,alpha,x,incx,ap)
.. Scalar Arguments .. real,intent(in) :: alpha integer,intent(in) :: incx,n character,intent(in) :: uplo .. .. Array Arguments .. complex,intent(inout) :: ap(*) complex,intent(in) :: x(*) ..
CHPR performs the hermitian rank 1 operation
A := alpha*x*x**H + A,where alpha is a real scalar, x is an n element vector and A is an n by n hermitian matrix, supplied in packed form.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the matrix A is supplied in the packed array AP as follows:
UPLO = ’U’ or ’u’ The upper triangular part of A is supplied in AP.UPLO = ’L’ or ’l’ The lower triangular part of A is supplied in AP.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
X is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
AP is COMPLEX array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular part of the hermitian matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. On exit, the array AP is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular part of the hermitian matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. On exit, the array AP is overwritten by the lower triangular part of the updated matrix. Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero, and on exit they are set to zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | chpr (3m_blas) | July 20, 2023 |
chpr2(3f) - [BLAS:COMPLEX_BLAS_LEVEL2] performs the hermitian rank 2 operation A := A + alpha*CX*CONJUGATE-TRANSPOSE(CY)n + CONJUGATE(ALPHA)*CY*CONJUGATE-TRANSPOSE(CX),n A a (square) hermitian packed matrix.
Synopsis
Definition
Options
Ap
Authors
Further Details
See Also
subroutine chpr2(uplo,n,alpha,x,incx,y,incy,ap)
.. Scalar Arguments .. complex,intent(in) :: alpha integer,intent(in) :: incx,incy,n character,intent(in) :: uplo .. .. Array Arguments .. complex,intent(inout) :: ap(*) complex,intent(in) :: x(*),y(*) ..
CHPR2 performs the hermitian rank 2 operation
A := alpha*x*y**H + conjg( alpha )*y*x**H + A,where alpha is a scalar, x and y are n element vectors and A is an n by n hermitian matrix, supplied in packed form.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the matrix A is supplied in the packed array AP as follows:
UPLO = ’U’ or ’u’ The upper triangular part of A is supplied in AP.UPLO = ’L’ or ’l’ The lower triangular part of A is supplied in AP.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha.
X is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
Y is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
AP is COMPLEX array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular part of the hermitian matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. On exit, the array AP is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular part of the hermitian matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. On exit, the array AP is overwritten by the lower triangular part of the updated matrix. Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero, and on exit they are set to zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | chpr2 (3m_blas) | July 20, 2023 |
crotg(3f) - [BLAS:SINGLE_BLAS_LEVEL1] Generate a hermitian Given’s rotation.
Synopsis
Description
Options
Authors
Contributors
Further Details
See Also
subroutine CROTG( a, b, c, s )
.. Scalar Arguments .. complex(wp),intent(inout) :: a complex(wp),intent(in) :: b real(wp),intent(out) :: c complex(wp),intent(out) :: s
CROTG constructs a plane rotation
[ c s ] [ a ] = [ r ] [ -conjg(s) c ] [ b ] [ 0 ]where c is real, s ic complex, and c**2 + conjg(s)*s = 1.
The computation uses the formulas
|x| = sqrt( Re(x)**2 + Im(x)**2 ) sgn(x) = x / |x| if x /= 0 = 1 if x = 0 c = |a| / sqrt(|a|**2 + |b|**2) s = sgn(a) * conjg(b) / sqrt(|a|**2 + |b|**2)When a and b are real and r /= 0, the formulas simplify to
r = sgn(a)*sqrt(|a|**2 + |b|**2) c = a / r s = b / rthe same as in CROTG when |a| > |b|. When |b| >= |a|, the sign of c and s will be different from those computed by CROTG if the signs of a and b are not the same.
A On entry, the scalar a. On exit, the scalar r. B The scalar b. C The scalar c. S The scalar s.
o Edward Anderson, Lockheed Martin
o Weslley Pereira, University of Colorado Denver, USA
Anderson E. (2017) Algorithm 978: Safe Scaling in the Level 1 BLAS ACM Trans Math Softw 44:1--28 https://doi.org/10.1145/3061665
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | crotg (3m_blas) | July 20, 2023 |
cscal(3f) - [BLAS:COMPLEX_BLAS_LEVEL1] scales a vector by a constant. CX:=CA*CX (complex multiplier)
Synopsis
Definition
Options
Authors
Further Details
See Also
subroutine cscal(n,ca,cx,incx)
.. Scalar Arguments .. complex,intent(in) :: ca integer,intent(in) :: incx,n .. .. Array Arguments .. complex,intent(inout) :: cx(*) ..
CSCAL scales a vector by a constant.
number of elements in input vector(s)
On entry, CA specifies the scalar alpha.
CX is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
storage spacing between elements of CX
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
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(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | cscal (3m_blas) | July 20, 2023 |
csrot(3f) - [BLAS:COMPLEX_BLAS_LEVEL1] Applies a real Given’s rotation to complex vectors.
Synopsis
Definition
Options
Cx
Cy
Authors
See Also
subroutine csrot( n, cx, incx, cy, incy, c, s )
.. Scalar Arguments .. integer,intent(in) :: incx, incy, n real,intent(in) :: c, s .. .. Array Arguments .. complex,intent(inout) :: cx( * ), cy( * ) ..
CSROT applies a plane rotation, where the cos and sin (c and s) are real and the vectors cx and cy are complex. jack dongarra, linpack, 3/11/78.
N is INTEGER On entry, N specifies the order of the vectors cx and cy. N must be at least zero.
CX is COMPLEX array, dimension at least ( 1 + ( N - 1 )*abs( INCX ) ). Before entry, the incremented array CX must contain the n element vector cx. On exit, CX is overwritten by the updated vector cx.
INCX is INTEGER On entry, INCX specifies the increment for the elements of CX. INCX must not be zero.
CY is COMPLEX array, dimension at least ( 1 + ( N - 1 )*abs( INCY ) ). Before entry, the incremented array CY must contain the n element vector cy. On exit, CY is overwritten by the updated vector cy.
INCY is INTEGER On entry, INCY specifies the increment for the elements of CY. INCY must not be zero.
C is REAL On entry, C specifies the cosine, cos.
S is REAL On entry, S specifies the sine, sin.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | csrot (3m_blas) | July 20, 2023 |
csscal(3f) - [BLAS:COMPLEX_BLAS_LEVEL1] CSSCAL scales a complex vector by a real constant. CX:=SA*CX (real multiplier).
Synopsis
Definition
Options
Cx
Authors
Further Details
See Also
subroutine csscal(n,sa,cx,incx)
.. scalar arguments .. real,intent(in) :: sa integer,intent(in) :: incx,n .. .. Array Arguments .. complex,intent(inout) :: cx(*) ..
CSSCAL scales a complex vector by a real constant.
N is INTEGER number of elements in input vector(s)
SA is REAL On entry, SA specifies the scalar alpha.
CX is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of CX
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
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(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | csscal (3m_blas) | July 20, 2023 |
cswap(3f) - [BLAS:COMPLEX_BLAS_LEVEL1] Interchange vectors CX and CY.
Synopsis
Definition
Options
Cx
Cy
Authors
Further Details
See Also
subroutine cswap(n,cx,incx,cy,incy)
.. Scalar Arguments .. integer,intent(in) :: incx,incy,n .. .. Array Arguments .. complex,intent(inout) :: cx(*),cy(*) ..
CSWAP interchanges two vectors.
N is INTEGER number of elements in input vector(s)
CX is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of CX
CY is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
INCY is INTEGER storage spacing between elements of CY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | cswap (3m_blas) | July 20, 2023 |
csymm(3f) - [BLAS:COMPLEX_BLAS_LEVEL3] C:=alpha*A*B+beta*C, A symmetric, B, C rectangular.
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine csymm(side,uplo,m,n,alpha,a,lda,b,ldb,beta,c,ldc)
.. Scalar Arguments .. complex,intent(in) :: alpha,beta integer,intent(in) :: lda,ldb,ldc,m,n character,intent(in) :: side,uplo .. .. Array Arguments .. complex,intent(in) :: a(lda,*),b(ldb,*) complex,intent(inout) :: c(ldc,*) ..
CSYMM performs one of the matrix-matrix operations
C := alpha*A*B + beta*C,or
C := alpha*B*A + beta*C,where alpha and beta are scalars, A is a symmetric matrix and B and C are m by n matrices.
SIDE is CHARACTER*1 On entry, SIDE specifies whether the symmetric matrix A appears on the left or right in the operation as follows:
SIDE = ’L’ or ’l’ C := alpha*A*B + beta*C,SIDE = ’R’ or ’r’ C := alpha*B*A + beta*C,
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the symmetric matrix A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of the symmetric matrix is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of the symmetric matrix is to be referenced.
M is INTEGER On entry, M specifies the number of rows of the matrix C. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix C. N must be at least zero.
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha.
A is COMPLEX array, dimension ( LDA, ka ), where ka is m when SIDE = ’L’ or ’l’ and is n otherwise. Before entry with SIDE = ’L’ or ’l’, the m by m part of the array A must contain the symmetric matrix, such that when UPLO = ’U’ or ’u’, the leading m by m upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = ’L’ or ’l’, the leading m by m lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced. Before entry with SIDE = ’R’ or ’r’, the n by n part of the array A must contain the symmetric matrix, such that when UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When SIDE = ’L’ or ’l’ then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, n ).
B is COMPLEX array, dimension ( LDB, N ) Before entry, the leading m by n part of the array B must contain the matrix B.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
BETA is COMPLEX On entry, BETA specifies the scalar beta. When BETA is supplied as zero then C need not be set on input.
C is COMPLEX array, dimension ( LDC, N ) Before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry. On exit, the array C is overwritten by the m by n updated matrix.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | csymm (3m_blas) | July 20, 2023 |
csyr2k(3f) - [BLAS:COMPLEX_BLAS_LEVEL3] C:=alpha*A*TRANSPOSE(B)+alpha*B*TRANSPOSE(A)+beta*C, C symmetric.
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine csyr2k(uplo,trans,n,k,alpha,a,lda,b,ldb,beta,c,ldc)
.. Scalar Arguments .. complex,intent(in) :: alpha,beta integer,intent(in) :: k,lda,ldb,ldc,n character,intent(in) :: trans,uplo .. .. Array Arguments .. complex,intent(in) :: a(lda,*),b(ldb,*) complex,intent(inout) :: c(ldc,*) ..
CSYR2K performs one of the symmetric rank 2k operations
C := alpha*A*B**T + alpha*B*A**T + beta*C,or
C := alpha*A**T*B + alpha*B**T*A + beta*C,where alpha and beta are scalars, C is an n by n symmetric matrix and A and B are n by k matrices in the first case and k by n matrices in the second case.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array C is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of C is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of C is to be referenced.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ C := alpha*A*B**T + alpha*B*A**T + beta*C.TRANS = ’T’ or ’t’ C := alpha*A**T*B + alpha*B**T*A + beta*C.
N is INTEGER On entry, N specifies the order of the matrix C. N must be at least zero.
K is INTEGER On entry with TRANS = ’N’ or ’n’, K specifies the number of columns of the matrices A and B, and on entry with TRANS = ’T’ or ’t’, K specifies the number of rows of the matrices A and B. K must be at least zero.
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha.
A is COMPLEX array, dimension ( LDA, ka ), where ka is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array A must contain the matrix A, otherwise the leading k by n part of the array A must contain the matrix A.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDA must be at least max( 1, n ), otherwise LDA must be at least max( 1, k ).
B is COMPLEX array, dimension ( LDB, kb ), where kb is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array B must contain the matrix B, otherwise the leading k by n part of the array B must contain the matrix B.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDB must be at least max( 1, n ), otherwise LDB must be at least max( 1, k ).
BETA is COMPLEX On entry, BETA specifies the scalar beta.
C is COMPLEX array, dimension ( LDC, N ) Before entry with UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array C must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of C is not referenced. On exit, the upper triangular part of the array C is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array C must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of C is not referenced. On exit, the lower triangular part of the array C is overwritten by the lower triangular part of the updated matrix.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, n ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | csyr2k (3m_blas) | July 20, 2023 |
csyrk(3f) - [BLAS:COMPLEX_BLAS_LEVEL3] C:=alpha*A*TRANSPOSE(A)+beta*C, C symmetric.
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine csyrk(uplo,trans,n,k,alpha,a,lda,beta,c,ldc)
.. Scalar Arguments .. complex,intent(in) :: alpha,beta integer,intent(in) :: k,lda,ldc,n character,intent(in) :: trans,uplo .. .. Array Arguments .. complex,intent(in) :: a(lda,*) complex,intent(inout) :: c(ldc,*) ..
CSYRK performs one of the symmetric rank k operations
C := alpha*A*A**T + beta*C,or
C := alpha*A**T*A + beta*C,where alpha and beta are scalars, C is an n by n symmetric matrix and A is an n by k matrix in the first case and a k by n matrix in the second case.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array C is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of C is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of C is to be referenced.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ C := alpha*A*A**T + beta*C.TRANS = ’T’ or ’t’ C := alpha*A**T*A + beta*C.
N is INTEGER On entry, N specifies the order of the matrix C. N must be at least zero.
K is INTEGER On entry with TRANS = ’N’ or ’n’, K specifies the number of columns of the matrix A, and on entry with TRANS = ’T’ or ’t’, K specifies the number of rows of the matrix A. K must be at least zero.
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha.
A is COMPLEX array, dimension ( LDA, ka ), where ka is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array A must contain the matrix A, otherwise the leading k by n part of the array A must contain the matrix A.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDA must be at least max( 1, n ), otherwise LDA must be at least max( 1, k ).
BETA is COMPLEX On entry, BETA specifies the scalar beta.
C is COMPLEX array, dimension ( LDC, N ) Before entry with UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array C must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of C is not referenced. On exit, the upper triangular part of the array C is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array C must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of C is not referenced. On exit, the lower triangular part of the array C is overwritten by the lower triangular part of the updated matrix.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, n ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | csyrk (3m_blas) | July 20, 2023 |
ctbmv(3f) - [BLAS:COMPLEX_BLAS_LEVEL2] CX := A*CX, A is a triangular band matrix.
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine ctbmv(uplo,trans,diag,n,k,a,lda,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,k,lda,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. complex,intent(in) :: a(lda,*) complex,intent(inout) :: x(*) ..
CTBMV performs one of the matrix-vector operations
x := A*x, or x := A**T*x, or x := A**H*x,where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular band matrix, with ( k + 1 ) diagonals.
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.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ x := A*x.TRANS = ’T’ or ’t’ x := A**T*x.
TRANS = ’C’ or ’c’ x := A**H*x.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
K is INTEGER On entry with UPLO = ’U’ or ’u’, K specifies the number of super-diagonals of the matrix A. On entry with UPLO = ’L’ or ’l’, K specifies the number of sub-diagonals of the matrix A. K must satisfy 0 .le. K.
A is COMPLEX array, dimension ( LDA, N ). Before entry with UPLO = ’U’ or ’u’, the leading ( k + 1 ) by n part of the array A must contain the upper triangular band part of the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row ( k + 1 ) of the array, the first super-diagonal starting at position 2 in row k, and so on. The top left k by k triangle of the array A is not referenced. The following program segment will transfer an upper triangular band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = K + 1 - J DO 10, I = MAX( 1, J - K ), J A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Before entry with UPLO = ’L’ or ’l’, the leading ( k + 1 ) by n part of the array A must contain the lower triangular band part of the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row 1 of the array, the first sub-diagonal starting at position 1 in row 2, and so on. The bottom right k by k triangle of the array A is not referenced. The following program segment will transfer a lower triangular band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = 1 - J DO 10, I = J, MIN( N, J + K ) A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Note that when DIAG = ’U’ or ’u’ the elements of the array A corresponding to the diagonal elements of the matrix are not referenced, but are assumed to be unity.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least ( k + 1 ).
X is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x. On exit, X is overwritten with the transformed vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ctbmv (3m_blas) | July 20, 2023 |
ctbsv(3f) - [BLAS:COMPLEX_BLAS_LEVEL2] CX := INVERSE(A)*CX, where A is a triangular band matrix.
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine ctbsv(uplo,trans,diag,n,k,a,lda,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,k,lda,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. complex,intent(in) :: a(lda,*) complex,intent(inout) :: x(*) ..
CTBSV solves one of the systems of equations
A*x = b, or A**T*x = b, or A**H*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 band matrix, with ( k + 1 ) diagonals.
No test for singularity or near-singularity is included in this routine. Such tests must be performed before calling this routine.
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.
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**H*x = b.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
K is INTEGER On entry with UPLO = ’U’ or ’u’, K specifies the number of super-diagonals of the matrix A. On entry with UPLO = ’L’ or ’l’, K specifies the number of sub-diagonals of the matrix A. K must satisfy 0 .le. K.
A is COMPLEX array, dimension ( LDA, N ) Before entry with UPLO = ’U’ or ’u’, the leading ( k + 1 ) by n part of the array A must contain the upper triangular band part of the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row ( k + 1 ) of the array, the first super-diagonal starting at position 2 in row k, and so on. The top left k by k triangle of the array A is not referenced. The following program segment will transfer an upper triangular band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = K + 1 - J DO 10, I = MAX( 1, J - K ), J A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Before entry with UPLO = ’L’ or ’l’, the leading ( k + 1 ) by n part of the array A must contain the lower triangular band part of the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row 1 of the array, the first sub-diagonal starting at position 1 in row 2, and so on. The bottom right k by k triangle of the array A is not referenced. The following program segment will transfer a lower triangular band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = 1 - J DO 10, I = J, MIN( N, J + K ) A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Note that when DIAG = ’U’ or ’u’ the elements of the array A corresponding to the diagonal elements of the matrix are not referenced, but are assumed to be unity.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least ( k + 1 ).
X is COMPLEX 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.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ctbsv (3m_blas) | July 20, 2023 |
ctpmv(3f) - [BLAS:COMPLEX_BLAS_LEVEL2] CX := A*CX, A is a packed triangular band matrix.
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine ctpmv(uplo,trans,diag,n,ap,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. complex,intent(in) :: ap(*) complex,intent(inout) :: x(*) ..
CTPMV performs one of the matrix-vector operations x := A*x, or x := A**T*x, or x := A**H*x,where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix, supplied in packed form.
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.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ x := A*x.TRANS = ’T’ or ’t’ x := A**T*x.
TRANS = ’C’ or ’c’ x := A**H*x.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
AP is COMPLEX array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. Note that when DIAG = ’U’ or ’u’, the diagonal elements of A are not referenced, but are assumed to be unity.
X is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x. On exit, X is overwritten with the transformed vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ctpmv (3m_blas) | July 20, 2023 |
ctpsv(3f) - [BLAS:COMPLEX_BLAS_LEVEL2] CX := INVERSE(A)*CX, where A is a packed triangular band matrix.
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine ctpsv(uplo,trans,diag,n,ap,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. complex,intent(in) :: ap(*) complex,intent(inout) :: x(*) ..
CTPSV solves one of the systems of equations
A*x = b, or A**T*x = b, or A**H*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, supplied in packed form.
No test for singularity or near-singularity is included in this routine. Such tests must be performed before calling this routine.
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.
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**H*x = b.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
AP is COMPLEX array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. Note that when DIAG = ’U’ or ’u’, the diagonal elements of A are not referenced, but are assumed to be unity.
X is COMPLEX 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.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ctpsv (3m_blas) | July 20, 2023 |
ctrmm(3f) - [BLAS:COMPLEX_BLAS_LEVEL3] B:=A*B or B:=B*A, A triangular, B rectangular.
Synopsis
Definition
Options
B
Authors
Further Details
See Also
subroutine ctrmm(side,uplo,transa,diag,m,n,alpha,a,lda,b,ldb)
.. Scalar Arguments .. complex,intent(in) :: alpha integer,intent(in) :: lda,ldb,m,n character,intent(in) :: diag,side,transa,uplo .. .. Array Arguments .. complex,intent(in) :: a(lda,*) complex,intent(inout) :: b(ldb,*) ..
CTRMM performs one of the matrix-matrix operations
B := alpha*op( A )*B, or B := alpha*B*op( A )where alpha is a scalar, B is an m by n matrix, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of
op( A ) = A or op( A ) = A**T or op( A ) = A**H.
SIDE is CHARACTER*1 On entry, SIDE specifies whether op( A ) multiplies B from the left or right as follows:
SIDE = ’L’ or ’l’ B := alpha*op( A )*B.SIDE = ’R’ or ’r’ B := alpha*B*op( A ).
UPLO is CHARACTER*1 On entry, UPLO specifies whether the matrix A 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.
TRANSA is CHARACTER*1 On entry, TRANSA specifies the form of op( A ) to be used in the matrix multiplication as follows:
TRANSA = ’N’ or ’n’ op( A ) = A.TRANSA = ’T’ or ’t’ op( A ) = A**T.
TRANSA = ’C’ or ’c’ op( A ) = A**H.
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.
M is INTEGER On entry, M specifies the number of rows of B. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of B. N must be at least zero.
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha. When alpha is zero then A is not referenced and B need not be set before entry.
A is COMPLEX array, dimension ( LDA, k ), where k is m when SIDE = ’L’ or ’l’ and is n when SIDE = ’R’ or ’r’. Before entry with UPLO = ’U’ or ’u’, the leading k by k 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 k by k 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.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When SIDE = ’L’ or ’l’ then LDA must be at least max( 1, m ), when SIDE = ’R’ or ’r’ then LDA must be at least max( 1, n ).
B is COMPLEX array, dimension ( LDB, N ). Before entry, the leading m by n part of the array B must contain the matrix B, and on exit is overwritten by the transformed matrix.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ctrmm (3m_blas) | July 20, 2023 |
ctrmv(3f) - [BLAS:COMPLEX_BLAS_LEVEL2] CX := A*CX, A is a triangular matrix.
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine ctrmv(uplo,trans,diag,n,a,lda,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,lda,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. complex,intent(in) :: a(lda,*) complex,intent(inout) :: x(*) ..
CTRMV performs one of the matrix-vector operations
x := A*x, or x := A**T*x, or x := A**H*x,where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix.
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.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ x := A*x.TRANS = ’T’ or ’t’ x := A**T*x.
TRANS = ’C’ or ’c’ x := A**H*x.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
A is COMPLEX 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.
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 ).
X is COMPLEX array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x. On exit, X is overwritten with the transformed vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ctrmv (3m_blas) | July 20, 2023 |
ctrsm(3f) - [BLAS:COMPLEX_BLAS_LEVEL3] B:=INVERSE(A)*C or B:=C*INVERSE(A), B, C rectangular, A triangular.
Synopsis
Definition
Options
B
Authors
Further Details
See Also
subroutine ctrsm(side,uplo,transa,diag,m,n,alpha,a,lda,b,ldb)
.. Scalar Arguments .. complex,intent(in) :: alpha integer,intent(in) :: lda,ldb,m,n character,intent(in) :: diag,side,transa,uplo .. .. Array Arguments .. complex,intent(in) :: a(lda,*) complex,intent(inout) :: b(ldb,*) ..
CTRSM solves one of the matrix equations
op( A )*X = alpha*B, or X*op( A ) = alpha*B,where alpha is a scalar, X and B are m by n matrices, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of
op( A ) = A or op( A ) = A**T or op( A ) = A**H.The matrix X is overwritten on B.
SIDE is CHARACTER*1 On entry, SIDE specifies whether op( A ) appears on the left or right of X as follows:
SIDE = ’L’ or ’l’ op( A )*X = alpha*B.SIDE = ’R’ or ’r’ X*op( A ) = alpha*B.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the matrix A 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.
TRANSA is CHARACTER*1 On entry, TRANSA specifies the form of op( A ) to be used in the matrix multiplication as follows:
TRANSA = ’N’ or ’n’ op( A ) = A.TRANSA = ’T’ or ’t’ op( A ) = A**T.
TRANSA = ’C’ or ’c’ op( A ) = A**H.
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.
M is INTEGER On entry, M specifies the number of rows of B. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of B. N must be at least zero.
ALPHA is COMPLEX On entry, ALPHA specifies the scalar alpha. When alpha is zero then A is not referenced and B need not be set before entry.
A is COMPLEX array, dimension ( LDA, k ), where k is m when SIDE = ’L’ or ’l’ and k is n when SIDE = ’R’ or ’r’. Before entry with UPLO = ’U’ or ’u’, the leading k by k 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 k by k 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.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When SIDE = ’L’ or ’l’ then LDA must be at least max( 1, m ), when SIDE = ’R’ or ’r’ then LDA must be at least max( 1, n ).
B is COMPLEX array, dimension ( LDB, N ) Before entry, the leading m by n part of the array B must contain the right-hand side matrix B, and on exit is overwritten by the solution matrix X.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ctrsm (3m_blas) | July 20, 2023 |
ctrsv(3f) - [BLAS:COMPLEX_BLAS_LEVEL2] CX := INVERSE(A)*CX, where A is a triangular matrix.
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine ctrsv(uplo,trans,diag,n,a,lda,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,lda,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. complex,intent(in) :: a(lda,*) complex,intent(inout) :: x(*) ..
CTRSV solves one of the systems of equations
A*x = b, or A**T*x = b, or A**H*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.
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.
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**H*x = b.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
A is COMPLEX 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.
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 ).
X is COMPLEX 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.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ctrsv (3m_blas) | July 20, 2023 |
dasum(3f) - [BLAS:DOUBLE_BLAS_LEVEL1] takes the sum of the absolute values.
Synopsis
Definition
Options
Authors
Further Details
See Also
double precision function dasum(n,dx,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,n .. .. Array Arguments .. double precision,intent(in) :: dx(*) ..
DASUM takes the sum of the absolute values.
N is INTEGER number of elements in input vector(s)
DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of DX
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
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(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dasum (3m_blas) | July 20, 2023 |
daxpy(3f) - [BLAS:DOUBLE_BLAS_LEVEL1] constant times a vector plus a vector.
Synopsis
Definition
Options
Dy
Authors
Further Details
See Also
subroutine daxpy(n,da,dx,incx,dy,incy)
.. Scalar Arguments .. double precision,intent(in) :: da integer,intent(in) :: incx,incy,n .. .. Array Arguments .. double precision,intent(in) :: dx(*) double precision,intent(inout) :: dy(*) ..
DAXPY constant times a vector plus a vector. uses unrolled loops for increments equal to one.
N is INTEGER number of elements in input vector(s)
DA is DOUBLE PRECISION On entry, DA specifies the scalar alpha.
DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of DX
DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
INCY is INTEGER storage spacing between elements of DY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | daxpy (3m_blas) | July 20, 2023 |
dcabs1(3f) - [BLAS:DOUBLE_BLAS_LEVEL1] DCABS1 computes |Re(.)| + |Im(.)| of a double complex number
Synopsis
Definition
Options
Authors
See Also
double precision function dcabs1(z)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: Z ..
DCABS1 computes |Re(.)| + |Im(.)| of a double complex number
Z is complex(kind=real64)
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dcabs1 (3m_blas) | July 20, 2023 |
dcopy(3f) - [BLAS:DOUBLE_BLAS_LEVEL1] copies elements of a vector, x, to a vector, y.
Synopsis
Definition
Options
Authors
Further Details
See Also
subroutine dcopy(n,dx,incx,dy,incy)
.. Scalar Arguments .. integer,intent(in) :: incx,incy,n .. .. Array Arguments .. double precision,intent(in) :: dx(*) double precision,intent(out) :: dy(*) ..
DCOPY copies a vector, x, to a vector, y. uses unrolled loops for increments equal to 1.
N is INTEGER number of elements in input vector(s)
DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of DX
DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
INCY is INTEGER storage spacing between elements of DY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dcopy (3m_blas) | July 20, 2023 |
ddot(3f) - [BLAS:DOUBLE_BLAS_LEVEL1] forms the dot product of two vectors.
Synopsis
Definition
Options
Authors
Further Details
See Also
double precision function ddot(n,dx,incx,dy,incy)
.. Scalar Arguments .. integer,intent(in) :: incx,incy,n .. .. Array Arguments .. double precision,intent(in) :: dx(*),dy(*) ..
DDOT forms the dot product of two vectors. uses unrolled loops for increments equal to one.
N is INTEGER number of elements in input vector(s)
DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of DX
DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
INCY is INTEGER storage spacing between elements of DY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ddot (3m_blas) | July 20, 2023 |
dgbmv(3f) - [BLAS:DOUBLE_BLAS_LEVEL2]
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine dgbmv(trans,m,n,kl,ku,alpha,a,lda,x,incx,beta,y,incy)
.. Scalar Arguments .. double precision,intent(in) :: alpha,beta integer,intent(in) :: incx,incy,kl,ku,lda,m,n character,intent(in) :: trans .. .. Array Arguments .. double precision,intent(in) :: a(lda,*),x(*) double precision,intent(inout) :: y(*) ..
DGBMV performs one of the matrix-vector operations
y := alpha*A*x + beta*y, or y := alpha*A**T*x + beta*y,where alpha and beta are scalars, x and y are vectors and A is an m by n band matrix, with kl sub-diagonals and ku super-diagonals.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ y := alpha*A*x + beta*y.TRANS = ’T’ or ’t’ y := alpha*A**T*x + beta*y.
TRANS = ’C’ or ’c’ y := alpha*A**T*x + beta*y.
M is INTEGER On entry, M specifies the number of rows of the matrix A. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix A. N must be at least zero.
KL is INTEGER On entry, KL specifies the number of sub-diagonals of the matrix A. KL must satisfy 0 .le. KL.
KU is INTEGER On entry, KU specifies the number of super-diagonals of the matrix A. KU must satisfy 0 .le. KU.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha.
A is DOUBLE PRECISION array, dimension ( LDA, N ) Before entry, the leading ( kl + ku + 1 ) by n part of the array A must contain the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row ( ku + 1 ) of the array, the first super-diagonal starting at position 2 in row ku, the first sub-diagonal starting at position 1 in row ( ku + 2 ), and so on. Elements in the array A that do not correspond to elements in the band matrix (such as the top left ku by ku triangle) are not referenced. The following program segment will transfer a band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N K = KU + 1 - J DO 10, I = MAX( 1, J - KU ), MIN( M, J + KL ) A( K + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least ( kl + ku + 1 ).
X is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ) when TRANS = ’N’ or ’n’ and at least ( 1 + ( m - 1 )*abs( INCX ) ) otherwise. Before entry, the incremented array X must contain the vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is DOUBLE PRECISION. On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input.
Y is DOUBLE PRECISION array, dimension at least ( 1 + ( m - 1 )*abs( INCY ) ) when TRANS = ’N’ or ’n’ and at least ( 1 + ( n - 1 )*abs( INCY ) ) otherwise. Before entry, the incremented array Y must contain the vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dgbmv (3m_blas) | July 20, 2023 |
dgemm(3f) - [BLAS:DOUBLE_BLAS_LEVEL3]
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine dgemm(transa,transb,m,n,k,alpha,a,lda,b,ldb,beta,c,ldc)
.. Scalar Arguments .. DOUBLE PRECISION,intent(in) :: ALPHA,BETA integer,intent(in) :: k,lda,ldb,ldc,m,n character,intent(in) :: transa,transb .. .. Array Arguments .. double precision,intent(in) :: a(lda,*),b(ldb,*) double precision,intent(inout) :: c(ldc,*) ..
DGEMM performs one of the matrix-matrix operations
C := alpha*op( A )*op( B ) + beta*C,where op( X ) is one of
op( X ) = X or op( X ) = X**T,alpha and beta are scalars, and A, B and C are matrices, with op( A ) an m by k matrix, op( B ) a k by n matrix and C an m by n matrix.
TRANSA is CHARACTER*1 On entry, TRANSA specifies the form of op( A ) to be used in the matrix multiplication as follows:
TRANSA = ’N’ or ’n’, op( A ) = A.TRANSA = ’T’ or ’t’, op( A ) = A**T.
TRANSA = ’C’ or ’c’, op( A ) = A**T.
TRANSB is CHARACTER*1 On entry, TRANSB specifies the form of op( B ) to be used in the matrix multiplication as follows:
TRANSB = ’N’ or ’n’, op( B ) = B.TRANSB = ’T’ or ’t’, op( B ) = B**T.
TRANSB = ’C’ or ’c’, op( B ) = B**T.
M is INTEGER On entry, M specifies the number of rows of the matrix op( A ) and of the matrix C. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix op( B ) and the number of columns of the matrix C. N must be at least zero.
K is INTEGER On entry, K specifies the number of columns of the matrix op( A ) and the number of rows of the matrix op( B ). K must be at least zero.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha.
A is DOUBLE PRECISION array, dimension ( LDA, ka ), where ka is k when TRANSA = ’N’ or ’n’, and is m otherwise. Before entry with TRANSA = ’N’ or ’n’, the leading m by k part of the array A must contain the matrix A, otherwise the leading k by m part of the array A must contain the matrix A.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANSA = ’N’ or ’n’ then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, k ).
B is DOUBLE PRECISION array, dimension ( LDB, kb ), where kb is n when TRANSB = ’N’ or ’n’, and is k otherwise. Before entry with TRANSB = ’N’ or ’n’, the leading k by n part of the array B must contain the matrix B, otherwise the leading n by k part of the array B must contain the matrix B.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. When TRANSB = ’N’ or ’n’ then LDB must be at least max( 1, k ), otherwise LDB must be at least max( 1, n ).
BETA is DOUBLE PRECISION. On entry, BETA specifies the scalar beta. When BETA is supplied as zero then C need not be set on input.
C is DOUBLE PRECISION array, dimension ( LDC, N ) Before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry. On exit, the array C is overwritten by the m by n matrix ( alpha*op( A )*op( B ) + beta*C ).
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dgemm (3m_blas) | July 20, 2023 |
dgemv(3f) - [BLAS:DOUBLE_BLAS_LEVEL2]
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine dgemv(trans,m,n,alpha,a,lda,x,incx,beta,y,incy)
.. Scalar Arguments .. double precision,intent(in) :: alpha,beta integer,intent(in) :: incx,incy,lda,m,n character,intent(in) :: trans .. .. Array Arguments .. double precision,intent(in) :: a(lda,*),x(*) double precision,intent(inout) :: y(*) ..
DGEMV performs one of the matrix-vector operations
y := alpha*A*x + beta*y, or y := alpha*A**T*x + beta*y,where alpha and beta are scalars, x and y are vectors and A is an m by n matrix.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ y := alpha*A*x + beta*y.TRANS = ’T’ or ’t’ y := alpha*A**T*x + beta*y.
TRANS = ’C’ or ’c’ y := alpha*A**T*x + beta*y.
M is INTEGER On entry, M specifies the number of rows of the matrix A. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix A. N must be at least zero.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha.
A is DOUBLE PRECISION array, dimension ( LDA, N ) Before entry, the leading m by n part of the array A must contain the matrix of coefficients.
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, m ).
X is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ) when TRANS = ’N’ or ’n’ and at least ( 1 + ( m - 1 )*abs( INCX ) ) otherwise. Before entry, the incremented array X must contain the vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is DOUBLE PRECISION. On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input.
Y is DOUBLE PRECISION array, dimension at least ( 1 + ( m - 1 )*abs( INCY ) ) when TRANS = ’N’ or ’n’ and at least ( 1 + ( n - 1 )*abs( INCY ) ) otherwise. Before entry with BETA non-zero, the incremented array Y must contain the vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dgemv (3m_blas) | July 20, 2023 |
dger(3f) - [BLAS:DOUBLE_BLAS_LEVEL2]
Synopsis
Definition
Options
A
Authors
Further Details
See Also
subroutine dger(m,n,alpha,x,incx,y,incy,a,lda)
.. Scalar Arguments .. double precision,intent(in) :: alpha integer,intent(in) :: incx,incy,lda,m,n .. .. Array Arguments .. double precision,intent(in) :: x(*),y(*) double precision,intent(inout) :: a(lda,*) ..
DGER performs the rank 1 operation
A := alpha*x*y**T + A,where alpha is a scalar, x is an m element vector, y is an n element vector and A is an m by n matrix.
M is INTEGER On entry, M specifies the number of rows of the matrix A. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix A. N must be at least zero.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha.
X is DOUBLE PRECISION array, dimension at least ( 1 + ( m - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the m element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
Y is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
A is DOUBLE PRECISION array, dimension ( LDA, N ) Before entry, the leading m by n part of the array A must contain the matrix of coefficients. On exit, A is overwritten by the updated matrix.
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, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dger (3m_blas) | July 20, 2023 |
dnrm2(3f) - [BLAS:SINGLE_BLAS_LEVEL1] returns the euclidean norm of a vector via the function name
Synopsis
Definition
Options
Authors
Further Details
See Also
double precision function dnrm2(n,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx, n .. .. Array Arguments .. real(wp),intent(in) :: x(*) ..
DNRM2 returns the euclidean norm of a vector via the function name, so that
DNRM2 := sqrt( x’*x )
number of elements in input vector(s)
X is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER, storage spacing between elements of X
If INCX > 0, X(1+(i-1)*INCX) = x(i) for 1 <= i <= n If INCX < 0, X(1-(n-i)*INCX) = x(i) for 1 <= i <= n If INCX = 0, x isn’t a vector so there is no need to call this subroutine. If you call it anyway, it will count x(1) in the vector norm N times.
o Edward Anderson, Lockheed Martin date:August 2016\par Contributors:
Weslley Pereira, University of Colorado Denver, USA
Anderson E. (2017) Algorithm 978: Safe Scaling in the Level 1 BLAS ACM Trans Math Softw 44:1--28 https://doi.org/10.1145/3061665
Blue, James L. (1978) A Portable Fortran Program to Find the Euclidean Norm of a Vector ACM Trans Math Softw 4:15--23 https://doi.org/10.1145/355769.355771
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dnrm2 (3m_blas) | July 20, 2023 |
drot(3f) - [BLAS:SINGLE_BLAS_LEVEL1] DROT applies a plane rotation.
Synopsis
Definition
Options
Authors
Further Details
See Also
subroutine drot(n,dx,incx,dy,incy,c,s) applies a plane rotation.
.. Scalar Arguments .. double precision,intent(in) :: c,s integer,intent(in) :: incx,incy,n .. .. Array Arguments .. double precision,intent(inout) :: dx(*),dy(*) ..
DROT applies a plane rotation.
number of elements in input vector(s)
array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
storage spacing between elements of DX
DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
storage spacing between elements of DY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017\ingroup double_blas_level1
jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | drot (3m_blas) | July 20, 2023 |
drotg(3f) - [BLAS:SINGLE_BLAS_LEVEL1] constructs a plane rotation
Synopsis
Definition
Options
Authors
Further Details
See Also
subroutine DROTG( a, b, c, s )
.. Scalar Arguments .. real(wp),intent(inout) :: a, b real(wp),intent(out) :: c, s
DROTG constructs a plane rotation
[ c s ] [ a ] = [ r ] [ -s c ] [ b ] [ 0 ]satisfying c**2 + s**2 = 1.
The computation uses the formulas
sigma = sgn(a) if |a| > |b| = sgn(b) if |b| >= |a| r = sigma*sqrt( a**2 + b**2 ) c = 1; s = 0 if r = 0 c = a/r; s = b/r if r != 0The subroutine also computes
z = s if |a| > |b|, = 1/c if |b| >= |a| and c != 0 = 1 if c = 0This allows c and s to be reconstructed from z as follows:
If z = 1, set c = 0, s = 1. If |z| < 1, set c = sqrt(1 - z**2) and s = z. If |z| > 1, set c = 1/z and s = sqrt( 1 - c**2).
On entry, the scalar a. On exit, the scalar r.
On entry, the scalar b. On exit, the scalar z.
The scalar c.
The scalar s.
o Edward Anderson, Lockheed Martin \par Contributors:Weslley Pereira, University of Colorado Denver, USA
\ingroup single_blas_level1
Anderson E. (2017) Algorithm 978: Safe Scaling in the Level 1 BLAS ACM Trans Math Softw 44:1--28 https://doi.org/10.1145/3061665
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | drotg (3m_blas) | July 20, 2023 |
drotm(3f) - [BLAS:SINGLE_BLAS_LEVEL1] Apply the Modified Givens Transformation, H, to the 2 by N matrix
Synopsis
Definition
Options
Authors
See Also
subroutine drotm(n,dx,incx,dy,incy,dparam)
.. Scalar Arguments .. integer,intent(in) :: incx,incy,n .. .. Array Arguments .. double precision,intent(in) :: dparam(5) double precision,intent(inout) :: dx(*),dy(*) ..
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.D0SEE DROTMG FOR A DESCRIPTION OF DATA STORAGE IN DPARAM.(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).
number of elements in input vector(s)
DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
storage spacing between elements of DX
DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
storage spacing between elements of DY
array, dimension (5)
DPARAM(1)=DFLAG DPARAM(2)=DH11 DPARAM(3)=DH21 DPARAM(4)=DH12 DPARAM(5)=DH22
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017\ingroup double_blas_level1
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | drotm (3m_blas) | July 20, 2023 |
drotmg(3f) - [BLAS:DOUBLE_BLAS_LEVEL1]
Synopsis
Definition
Options
Authors
See Also
subroutine drotmg(dd1,dd2,dx1,dy1,dparam)
.. Scalar Arguments .. double precision,intent(inout) :: dd1,dd2,dx1 double precision,intent(in) :: dy1 .. .. Array Arguments .. double precision,intent(out) :: dparam(5) ..
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.D0LOCATIONS 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.)(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).
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.
DD1
DD1 is DOUBLE PRECISIONDD2
DD2 is DOUBLE PRECISIONDX1
DX1 is DOUBLE PRECISIONDY1
DY1 is DOUBLE PRECISION
DPARAM is DOUBLE PRECISION array, dimension (5) DPARAM(1)=DFLAG DPARAM(2)=DH11 DPARAM(3)=DH21 DPARAM(4)=DH12 DPARAM(5)=DH22
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | drotmg (3m_blas) | July 20, 2023 |
dsbmv(3f) - [BLAS:DOUBLE_BLAS_LEVEL2]
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine dsbmv(uplo,n,k,alpha,a,lda,x,incx,beta,y,incy)
.. Scalar Arguments .. double precision,intent(in) :: alpha,beta integer,intent(in) :: incx,incy,k,lda,n character,intent(in) :: uplo .. .. Array Arguments .. double precision,intent(in) :: a(lda,*),x(*) double precision,intent(inout) :: y(*) ..
DSBMV performs the matrix-vector operation
y := alpha*A*x + beta*y,where alpha and beta are scalars, x and y are n element vectors and A is an n by n symmetric band matrix, with k super-diagonals.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the band matrix A is being supplied as follows:
UPLO = ’U’ or ’u’ The upper triangular part of A is being supplied.UPLO = ’L’ or ’l’ The lower triangular part of A is being supplied.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
K is INTEGER On entry, K specifies the number of super-diagonals of the matrix A. K must satisfy 0 .le. K.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha.
A is DOUBLE PRECISION array, dimension ( LDA, N ) Before entry with UPLO = ’U’ or ’u’, the leading ( k + 1 ) by n part of the array A must contain the upper triangular band part of the symmetric matrix, supplied column by column, with the leading diagonal of the matrix in row ( k + 1 ) of the array, the first super-diagonal starting at position 2 in row k, and so on. The top left k by k triangle of the array A is not referenced. The following program segment will transfer the upper triangular part of a symmetric band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = K + 1 - J DO 10, I = MAX( 1, J - K ), J A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Before entry with UPLO = ’L’ or ’l’, the leading ( k + 1 ) by n part of the array A must contain the lower triangular band part of the symmetric matrix, supplied column by column, with the leading diagonal of the matrix in row 1 of the array, the first sub-diagonal starting at position 1 in row 2, and so on. The bottom right k by k triangle of the array A is not referenced. The following program segment will transfer the lower triangular part of a symmetric band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = 1 - J DO 10, I = J, MIN( N, J + K ) A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least ( k + 1 ).
X is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is DOUBLE PRECISION. On entry, BETA specifies the scalar beta.
Y is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dsbmv (3m_blas) | July 20, 2023 |
dscal(3f) - [BLAS:DOUBLE_BLAS_LEVEL1] scales a vector by a constant.
Synopsis
Definition
Options
Authors
Further Details
See Also
subroutine dscal(n,da,dx,incx)
.. Scalar Arguments .. double precision,intent(in) :: da integer,intent(in) :: incx,n .. .. Array Arguments .. double precision,intent(inout) :: dx(*) ..
DSCAL scales a vector by a constant. uses unrolled loops for increment equal to 1.
number of elements in input vector(s)
On entry, DA specifies the scalar alpha.
array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
storage spacing between elements of DX
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
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(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dscal (3m_blas) | July 20, 2023 |
dsdot(3f) - [BLAS:DOUBLE_BLAS_LEVEL1]
Synopsis
Definition
Options
Return
Authors
Further Details
References
See Also
double precision function dsdot(n,sx,incx,sy,incy)
.. Scalar Arguments .. integer,intent(in) :: incx,incy,n .. .. Array Arguments .. real,intent(in) :: sx(*),sy(*) ..
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.
N number of elements in input vector(s) SX array, dimension(N) single precision vector with N elements INCX storage spacing between elements of SX SY array, dimension(N) single precision vector with N elements INCY storage spacing between elements of SY
DSDOT dot product (zero if N.LE.0)
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Lawson, C. L., (JPL), Hanson, R. J., (SNLA), Kincaid, D. R., (U. of Texas), Krogh, F. T., (JPL)
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.
1979-10-01 DATE WRITTEN 1989-08-31 Modified array declarations. (WRB) 1989-08-31 REVISION DATE from Version 3.2 1989-12-14 Prologue converted to Version 4.0 format. (BAB) 1992-03-10 Corrected definition of LX in DESCRIPTION. (WRB) 1992-05-01 Reformatted the REFERENCES section. (WRB) 1907-01-18 Reformat to LAPACK style (JL)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dsdot (3m_blas) | July 20, 2023 |
dspmv(3f) - [BLAS:DOUBLE_BLAS_LEVEL2]
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine dspmv(uplo,n,alpha,ap,x,incx,beta,y,incy)
.. Scalar Arguments .. double precision,intent(in) :: alpha,beta integer,intent(in) :: incx,incy,n character,intent(in) :: uplo .. .. Array Arguments .. double precision,intent(in) :: ap(*),x(*) double precision,intent(inout) :: y(*) ..
DSPMV performs the matrix-vector operation
y := alpha*A*x + beta*y,where alpha and beta are scalars, x and y are n element vectors and A is an n by n symmetric matrix, supplied in packed form.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the matrix A is supplied in the packed array AP as follows:
UPLO = ’U’ or ’u’ The upper triangular part of A is supplied in AP.UPLO = ’L’ or ’l’ The lower triangular part of A is supplied in AP.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha.
AP is DOUBLE PRECISION array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on.
X is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is DOUBLE PRECISION. On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input.
Y is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dspmv (3m_blas) | July 20, 2023 |
dspr(3f) - [BLAS:DOUBLE_BLAS_LEVEL2]
Synopsis
Description
Options
Ap
Authors
Further Details
See Also
subroutine dspr(uplo,n,alpha,x,incx,ap)
.. Scalar Arguments .. double precision,intent(in) :: alpha integer,intent(in) :: incx,n character,intent(in) :: uplo .. .. Array Arguments .. double precision,intent(inout) :: ap(*) double precision,intent(in) :: x(*) ..
DSPR performs the symmetric rank 1 operation
A := alpha*x*x**T + A,where alpha is a real scalar, x is an n element vector and A is an n by n symmetric matrix, supplied in packed form.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the matrix A is supplied in the packed array AP as follows:
UPLO = ’U’ or ’u’ The upper triangular part of A is supplied in AP.UPLO = ’L’ or ’l’ The lower triangular part of A is supplied in AP.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha.
X is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
AP is DOUBLE PRECISION array, dimension at least ( ( n*( n + 1 ) )/2 ).
Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. On exit, the array AP is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. On exit, the array AP is overwritten by the lower triangular part of the updated matrix.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dspr (3m_blas) | July 20, 2023 |
dspr2(3f) - [BLAS:DOUBLE_BLAS_LEVEL2]
Synopsis
Definition
Options
Ap
Authors
Further Details
See Also
subroutine dspr2(uplo,n,alpha,x,incx,y,incy,ap)
.. Scalar Arguments .. double precision,intent(in) :: alpha integer,intent(in) :: incx,incy,n character,intent(in) :: uplo .. .. Array Arguments .. double precision,intent(inout) :: ap(*) double precision,intent(in) :: x(*),y(*) ..
DSPR2 performs the symmetric rank 2 operation
A := alpha*x*y**T + alpha*y*x**T + A,where alpha is a scalar, x and y are n element vectors and A is an n by n symmetric matrix, supplied in packed form.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the matrix A is supplied in the packed array AP as follows:
UPLO = ’U’ or ’u’ The upper triangular part of A is supplied in AP.UPLO = ’L’ or ’l’ The lower triangular part of A is supplied in AP.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha.
X is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
Y is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
AP is DOUBLE PRECISION array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. On exit, the array AP is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. On exit, the array AP is overwritten by the lower triangular part of the updated matrix.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dspr2 (3m_blas) | July 20, 2023 |
dswap(3f) - [BLAS:DOUBLE_BLAS_LEVEL1] interchanges two vectors.
Synopsis
Definition
Options
Dx
Dy
Authors
Further Details
See Also
subroutine dswap(n,dx,incx,dy,incy)
.. Scalar Arguments .. integer,intent(in) :: incx,incy,n .. .. Array Arguments .. double precision,intent(inout) :: dx(*),dy(*) ..
DSWAP interchanges two vectors. uses unrolled loops for increments equal to 1.
N is INTEGER number of elements in input vector(s)
DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of DX
DY is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
INCY is INTEGER storage spacing between elements of DY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dswap (3m_blas) | July 20, 2023 |
dsymm(3f) - [BLAS:DOUBLE_BLAS_LEVEL3]
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine dsymm(side,uplo,m,n,alpha,a,lda,b,ldb,beta,c,ldc)
.. Scalar Arguments .. double precision,intent(in) :: alpha,beta integer,intent(in) :: lda,ldb,ldc,m,n character,intent(in) :: side,uplo .. .. Array Arguments .. double precision,intent(in) :: a(lda,*),b(ldb,*) double precision,intent(inout) :: c(ldc,*) ..
DSYMM performs one of the matrix-matrix operations
C := alpha*A*B + beta*C,or
C := alpha*B*A + beta*C,where alpha and beta are scalars, A is a symmetric matrix and B and C are m by n matrices.
SIDE is CHARACTER*1 On entry, SIDE specifies whether the symmetric matrix A appears on the left or right in the operation as follows:
SIDE = ’L’ or ’l’ C := alpha*A*B + beta*C,SIDE = ’R’ or ’r’ C := alpha*B*A + beta*C,
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the symmetric matrix A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of the symmetric matrix is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of the symmetric matrix is to be referenced.
M is INTEGER On entry, M specifies the number of rows of the matrix C. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix C. N must be at least zero.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha.
A is DOUBLE PRECISION array, dimension ( LDA, ka ), where ka is m when SIDE = ’L’ or ’l’ and is n otherwise.
Before entry with SIDE = ’L’ or ’l’, the m by m part of the array A must contain the symmetric matrix, such that when UPLO = ’U’ or ’u’, the leading m by m upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = ’L’ or ’l’, the leading m by m lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced. Before entry with SIDE = ’R’ or ’r’, the n by n part of the array A must contain the symmetric matrix, such that when UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When SIDE = ’L’ or ’l’ then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, n ).
B is DOUBLE PRECISION array, dimension ( LDB, N ) Before entry, the leading m by n part of the array B must contain the matrix B.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
BETA is DOUBLE PRECISION. On entry, BETA specifies the scalar beta. When BETA is supplied as zero then C need not be set on input.
C is DOUBLE PRECISION array, dimension ( LDC, N ) Before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry. On exit, the array C is overwritten by the m by n updated matrix.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dsymm (3m_blas) | July 20, 2023 |
dsymv(3f) - [BLAS:DOUBLE_BLAS_LEVEL2]
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine dsymv(uplo,n,alpha,a,lda,x,incx,beta,y,incy)
.. Scalar Arguments .. double precision,intent(in) :: alpha,beta integer,intent(in) :: incx,incy,lda,n character,intent(in) :: uplo .. .. Array Arguments .. double precision,intent(in) :: a(lda,*),x(*) double precision,intent(inout) :: y(*) ..
DSYMV performs the matrix-vector operation y := alpha*A*x + beta*y,where alpha and beta are scalars, x and y are n element vectors and A is an n by n symmetric matrix.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of A is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of A is to be referenced.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha.
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 part of the symmetric 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 part of the symmetric matrix and the strictly upper triangular part of A is not referenced.
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 ).
X is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is DOUBLE PRECISION. On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input.
Y is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dsymv (3m_blas) | July 20, 2023 |
dsyr(3f) - [BLAS:DOUBLE_BLAS_LEVEL3]
Synopsis
Definition
Options
A
Authors
Further Details
See Also
subroutine dsyr(uplo,n,alpha,x,incx,a,lda)
.. Scalar Arguments .. double precision,intent(in) :: alpha integer,intent(in) :: incx,lda,n character,intent(in) :: uplo .. .. Array Arguments .. double precision,intent(inout) :: a(lda,*) double precision,intent(in) :: x(*) ..
DSYR performs the symmetric rank 1 operation
A := alpha*x*x**T + A,where alpha is a real scalar, x is an n element vector and A is an n by n symmetric matrix.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of A is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of A is to be referenced.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha.
X is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
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 part of the symmetric matrix and the strictly lower triangular part of A is not referenced. On exit, the upper triangular part of the array A is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced. On exit, the lower triangular part of the array A is overwritten by the lower triangular part of the updated matrix.
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 ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016\ingroup double_blas_level2
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dsyr (3m_blas) | July 20, 2023 |
dsyr2(3f) - [BLAS:DOUBLE_BLAS_LEVEL2]
Synopsis
Definition
Options
A
Authors
Further Details
See Also
subroutine dsyr2(uplo,n,alpha,x,incx,y,incy,a,lda)
.. Scalar Arguments .. double precision,intent(in) :: alpha integer,intent(in) :: incx,incy,lda,n character,intent(in) :: uplo .. .. Array Arguments .. double precision,intent(inout) :: a(lda,*) double precision,intent(in) :: x(*),y(*) ..
DSYR2 performs the symmetric rank 2 operation
A := alpha*x*y**T + alpha*y*x**T + A,where alpha is a scalar, x and y are n element vectors and A is an n by n symmetric matrix.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of A is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of A is to be referenced.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha.
X is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
Y is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
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 part of the symmetric matrix and the strictly lower triangular part of A is not referenced. On exit, the upper triangular part of the array A is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced. On exit, the lower triangular part of the array A is overwritten by the lower triangular part of the updated matrix.
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 ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dsyr2 (3m_blas) | July 20, 2023 |
dsyr2k(3f) - [BLAS:DOUBLE_BLAS_LEVEL3]
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine dsyr2k(uplo,trans,n,k,alpha,a,lda,b,ldb,beta,c,ldc)
.. Scalar Arguments .. double precision,intent(in) :: alpha,beta integer,intent(in) :: k,lda,ldb,ldc,n character,intent(in) :: trans,uplo .. .. Array Arguments .. double precision,intent(in) :: a(lda,*),b(ldb,*) double precision,intent(inout) :: c(ldc,*) ..
DSYR2K performs one of the symmetric rank 2k operations
C := alpha*A*B**T + alpha*B*A**T + beta*C,or
C := alpha*A**T*B + alpha*B**T*A + beta*C,where alpha and beta are scalars, C is an n by n symmetric matrix and A and B are n by k matrices in the first case and k by n matrices in the second case.
On entry, UPLO specifies whether the upper or lower triangular part of the array C is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of C is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of C is to be referenced.
On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ C := alpha*A*B**T + alpha*B*A**T + beta*C.TRANS = ’T’ or ’t’ C := alpha*A**T*B + alpha*B**T*A + beta*C.
TRANS = ’C’ or ’c’ C := alpha*A**T*B + alpha*B**T*A + beta*C.
On entry, N specifies the order of the matrix C. N must be at least zero.
K is INTEGER On entry with TRANS = ’N’ or ’n’, K specifies the number of columns of the matrices A and B, and on entry with TRANS = ’T’ or ’t’ or ’C’ or ’c’, K specifies the number of rows of the matrices A and B. K must be at least zero.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha.
A is DOUBLE PRECISION array, dimension ( LDA, ka ), where ka is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array A must contain the matrix A, otherwise the leading k by n part of the array A must contain the matrix A.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared
in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDA must be at least max( 1, n ), otherwise LDA must be at least max( 1, k ).
B is DOUBLE PRECISION array, dimension ( LDB, kb ), where kb is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array B must contain the matrix B, otherwise the leading k by n part of the array B must contain the matrix B.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDB must be at least max( 1, n ), otherwise LDB must be at least max( 1, k ).
BETA is DOUBLE PRECISION. On entry, BETA specifies the scalar beta.
C is DOUBLE PRECISION array, dimension ( LDC, N ) Before entry with UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array C must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of C is not referenced. On exit, the upper triangular part of the array C is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array C must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of C is not referenced. On exit, the lower triangular part of the array C is overwritten by the lower triangular part of the updated matrix.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, n ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dsyr2k (3m_blas) | July 20, 2023 |
dsyrk(3f) - [BLAS:DOUBLE_BLAS_LEVEL3]
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine dsyrk(uplo,trans,n,k,alpha,a,lda,beta,c,ldc)
.. Scalar Arguments .. double precision,intent(in) :: alpha,beta integer,intent(in) :: k,lda,ldc,n character,intent(in) :: trans,uplo .. .. Array Arguments .. double precision,intent(in) :: a(lda,*) double precision,intent(inout) :: c(ldc,*) ..
DSYRK performs one of the symmetric rank k operations
C := alpha*A*A**T + beta*C,or
C := alpha*A**T*A + beta*C,where alpha and beta are scalars, C is an n by n symmetric matrix and A is an n by k matrix in the first case and a k by n matrix in the second case.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array C is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of C is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of C is to be referenced.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ C := alpha*A*A**T + beta*C.TRANS = ’T’ or ’t’ C := alpha*A**T*A + beta*C.
TRANS = ’C’ or ’c’ C := alpha*A**T*A + beta*C.
N is INTEGER On entry, N specifies the order of the matrix C. N must be at least zero.
K is INTEGER On entry with TRANS = ’N’ or ’n’, K specifies the number of columns of the matrix A, and on entry with TRANS = ’T’ or ’t’ or ’C’ or ’c’, K specifies the number of rows of the matrix A. K must be at least zero.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha.
A is DOUBLE PRECISION array, dimension ( LDA, ka ), where ka is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array A must contain the matrix A, otherwise the leading k by n part of the array A must contain the matrix A.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDA must be at least max( 1, n ), otherwise LDA must be at least max( 1, k ).
BETA is DOUBLE PRECISION. On entry, BETA specifies the scalar beta.
C is DOUBLE PRECISION array, dimension ( LDC, N ) Before entry with UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array C must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of C is not referenced. On exit, the upper triangular part of the array C is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array C must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of C is not referenced. On exit, the lower triangular part of the array C is overwritten by the lower triangular part of the updated matrix.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, n ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016\ingroup double_blas_level3
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dsyrk (3m_blas) | July 20, 2023 |
dtbmv(3f) - [BLAS:DOUBLE_BLAS_LEVEL3]
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine dtbmv(uplo,trans,diag,n,k,a,lda,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,k,lda,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. double precision,intent(in) :: a(lda,*) double precision,intent(inout) :: x(*) ..
DTBMV performs one of the matrix-vector operations
x := A*x, or x := A**T*x,where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular band matrix, with ( k + 1 ) diagonals.
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.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ x := A*x.TRANS = ’T’ or ’t’ x := A**T*x.
TRANS = ’C’ or ’c’ x := A**T*x.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
K is INTEGER On entry with UPLO = ’U’ or ’u’, K specifies the number of super-diagonals of the matrix A. On entry with UPLO = ’L’ or ’l’, K specifies the number of sub-diagonals of the matrix A. K must satisfy 0 .le. K.
A is DOUBLE PRECISION array, dimension ( LDA, N ) Before entry with UPLO = ’U’ or ’u’, the leading ( k + 1 ) by n part of the array A must contain the upper triangular band part of the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row ( k + 1 ) of the array, the first super-diagonal starting at position 2 in row k, and so on. The top left k by k triangle of the array A is not referenced. The following program segment will transfer an upper triangular band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = K + 1 - J DO 10, I = MAX( 1, J - K ), J A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Before entry with UPLO = ’L’ or ’l’, the leading ( k + 1 ) by n part of the array A must contain the lower triangular band part of the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row 1 of the array, the first sub-diagonal starting at position 1 in row 2, and so on. The bottom right k by k triangle of the array A is not referenced. The following program segment will transfer a lower triangular band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = 1 - J DO 10, I = J, MIN( N, J + K ) A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Note that when DIAG = ’U’ or ’u’ the elements of the array A corresponding to the diagonal elements of the matrix are not referenced, but are assumed to be unity.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least ( k + 1 ).
X is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x. On exit, X is overwritten with the transformed vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016\ingroup double_blas_level2
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dtbmv (3m_blas) | July 20, 2023 |
dtbsv(3f) - [BLAS:DOUBLE_BLAS_LEVEL3]
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine dtbsv(uplo,trans,diag,n,k,a,lda,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,k,lda,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. double precision,intent(in) :: a(lda,*) double precision,intent(inout) :: x(*) ..
DTBSV 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 band matrix, with ( k + 1 ) diagonals.
No test for singularity or near-singularity is included in this routine. Such tests must be performed before calling this routine.
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.
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.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
K is INTEGER On entry with UPLO = ’U’ or ’u’, K specifies the number of super-diagonals of the matrix A. On entry with UPLO = ’L’ or ’l’, K specifies the number of sub-diagonals of the matrix A. K must satisfy 0 .le. K.
A is DOUBLE PRECISION array, dimension ( LDA, N ) Before entry with UPLO = ’U’ or ’u’, the leading ( k + 1 ) by n part of the array A must contain the upper triangular band part of the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row ( k + 1 ) of the array, the first super-diagonal starting at position 2 in row k, and so on. The top left k by k triangle of the array A is not referenced. The following program segment will transfer an upper triangular band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = K + 1 - J DO 10, I = MAX( 1, J - K ), J A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Before entry with UPLO = ’L’ or ’l’, the leading ( k + 1 ) by n part of the array A must contain the lower triangular band part of the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row 1 of the array, the first sub-diagonal starting at position 1 in row 2, and so on. The bottom right k by k triangle of the array A is not referenced. The following program segment will transfer a lower triangular band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = 1 - J DO 10, I = J, MIN( N, J + K ) A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Note that when DIAG = ’U’ or ’u’ the elements of the array A corresponding to the diagonal elements of the matrix are not referenced, but are assumed to be unity.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least ( k + 1 ).
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.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016\ingroup double_blas_level2
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dtbsv (3m_blas) | July 20, 2023 |
dtpmv(3f) - [BLAS:DOUBLE_BLAS_LEVEL3]
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine dtpmv(uplo,trans,diag,n,ap,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. double precision,intent(in) :: ap(*) double precision,intent(inout) :: x(*) ..
DTPMV performs one of the matrix-vector operations
x := A*x, or x := A**T*x,where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix, supplied in packed form.
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.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ x := A*x.TRANS = ’T’ or ’t’ x := A**T*x.
TRANS = ’C’ or ’c’ x := A**T*x.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
AP is DOUBLE PRECISION array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. Note that when DIAG = ’U’ or ’u’, the diagonal elements of A are not referenced, but are assumed to be unity.
X is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x. On exit, X is overwritten with the transformed vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016\ingroup double_blas_level2
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dtpmv (3m_blas) | July 20, 2023 |
dtpsv(3f) - [BLAS:DOUBLE_BLAS_LEVEL2]
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine dtpsv(uplo,trans,diag,n,ap,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. double precision,intent(in) :: ap(*) double precision,intent(inout) :: x(*) ..
DTPSV 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, supplied in packed form.
No test for singularity or near-singularity is included in this routine. Such tests must be performed before calling this routine.
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.
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.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
AP is DOUBLE PRECISION array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. Note that when DIAG = ’U’ or ’u’, the diagonal elements of A are not referenced, but are assumed to be unity.
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.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dtpsv (3m_blas) | July 20, 2023 |
dtrmm(3f) - [BLAS:DOUBLE_BLAS_LEVEL3]
Synopsis
Definition
Options
B
Authors
Further Details
See Also
subroutine dtrmm(side,uplo,transa,diag,m,n,alpha,a,lda,b,ldb)
.. Scalar Arguments .. double precision,intent(in) :: alpha integer,intent(in) :: lda,ldb,m,n character,intent(in) :: diag,side,transa,uplo .. .. Array Arguments .. double precision,intent(in) :: a(lda,*) double precision,intent(inout) :: b(ldb,*) ..
DTRMM performs one of the matrix-matrix operations
B := alpha*op( A )*B, or B := alpha*B*op( A ),where alpha is a scalar, B is an m by n matrix, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of
op( A ) = A or op( A ) = A**T.
SIDE is CHARACTER*1 On entry, SIDE specifies whether op( A ) multiplies B from the left or right as follows:
SIDE = ’L’ or ’l’ B := alpha*op( A )*B.SIDE = ’R’ or ’r’ B := alpha*B*op( A ).
UPLO is CHARACTER*1 On entry, UPLO specifies whether the matrix A 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.
TRANSA is CHARACTER*1 On entry, TRANSA specifies the form of op( A ) to be used in the matrix multiplication as follows:
TRANSA = ’N’ or ’n’ op( A ) = A.TRANSA = ’T’ or ’t’ op( A ) = A**T.
TRANSA = ’C’ or ’c’ op( A ) = A**T.
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.
M is INTEGER On entry, M specifies the number of rows of B. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of B. N must be at least zero.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha. When alpha is zero then A is not referenced and B need not be set before entry.
A is DOUBLE PRECISION array, dimension ( LDA, k ), where k is m when SIDE = ’L’ or ’l’ and is n when SIDE = ’R’ or ’r’. Before entry with UPLO = ’U’ or ’u’, the leading k by k 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 k by k 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.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When SIDE = ’L’ or ’l’ then LDA must be at least max( 1, m ), when SIDE = ’R’ or ’r’ then LDA must be at least max( 1, n ).
B is DOUBLE PRECISION array, dimension ( LDB, N ) Before entry, the leading m by n part of the array B must contain the matrix B, and on exit is overwritten by the transformed matrix.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dtrmm (3m_blas) | July 20, 2023 |
dtrmv(3f) - [BLAS:DOUBLE_BLAS_LEVEL2]
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine dtrmv(uplo,trans,diag,n,a,lda,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,lda,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. double precision,intent(in) :: a(lda,*) double precision,intent(inout) :: x(*) ..
DTRMV performs one of the matrix-vector operations
x := A*x, or x := A**T*x,where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix.
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.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ x := A*x.TRANS = ’T’ or ’t’ x := A**T*x.
TRANS = ’C’ or ’c’ x := A**T*x.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
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.
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 ).
X is DOUBLE PRECISION array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x. On exit, X is overwritten with the transformed vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dtrmv (3m_blas) | July 20, 2023 |
dtrsm(3f) - [BLAS:DOUBLE_BLAS_LEVEL3]
Synopsis
Definition
Options
B
Authors
Further Details
See Also
subroutine dtrsm(side,uplo,transa,diag,m,n,alpha,a,lda,b,ldb)
.. Scalar Arguments .. double precision,intent(in) :: alpha integer,intent(in) :: lda,ldb,m,n character,intent(in) :: diag,side,transa,uplo .. .. Array Arguments .. double precision,intent(in) :: a(lda,*) double precision,intent(inout) :: b(ldb,*) ..
DTRSM solves one of the matrix equations
op( A )*X = alpha*B, or X*op( A ) = alpha*B,where alpha is a scalar, X and B are m by n matrices, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of
op( A ) = A or op( A ) = A**T.The matrix X is overwritten on B.
SIDE is CHARACTER*1 On entry, SIDE specifies whether op( A ) appears on the left or right of X as follows:
SIDE = ’L’ or ’l’ op( A )*X = alpha*B.SIDE = ’R’ or ’r’ X*op( A ) = alpha*B.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the matrix A 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.
TRANSA is CHARACTER*1 On entry, TRANSA specifies the form of op( A ) to be used in the matrix multiplication as follows:
TRANSA = ’N’ or ’n’ op( A ) = A.TRANSA = ’T’ or ’t’ op( A ) = A**T.
TRANSA = ’C’ or ’c’ op( A ) = A**T.
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.
M is INTEGER On entry, M specifies the number of rows of B. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of B. N must be at least zero.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha. When alpha is zero then A is not referenced and B need not be set before entry.
A is DOUBLE PRECISION array, dimension ( LDA, k ),
where k is m when SIDE = ’L’ or ’l’ and k is n when SIDE = ’R’ or ’r’.Before entry with UPLO = ’U’ or ’u’, the leading k by k 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 k by k 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.
On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When SIDE = ’L’ or ’l’ then LDA must be at least max( 1, m ), when SIDE = ’R’ or ’r’ then LDA must be at least max( 1, n ).
Before entry, the leading m by n part of the array B must contain the right-hand side matrix B, and on exit is overwritten by the solution matrix X.
On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dtrsm (3m_blas) | July 20, 2023 |
dtrsv(3f) - [BLAS:DOUBLE_BLAS_LEVEL1]
Synopsis
Definition
Options
X
Authors
See Also
subroutine dtrsv(uplo,trans,diag,n,a,lda,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,lda,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. double precision,intent(in) :: a(lda,*) double precision,intent(inout) :: x(*) ..
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.
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.
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.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
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.
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 ).
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.
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.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dtrsv (3m_blas) | July 20, 2023 |
dzasum(3f) - [BLAS:DOUBLE_BLAS_LEVEL1]
Synopsis
Definition
Options
Zx
Authors
Further Details
See Also
double precision function dzasum(n,zx,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,n .. .. Array Arguments .. complex(kind=real64),intent(inout) :: zx(*) ..
DZASUM takes the sum of the (|Re(.)| + |Im(.)|)’s of a complex vector and returns a double precision result.
N is INTEGER number of elements in input vector(s)
ZX is complex(kind=real64) array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of ZX
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, 3/11/78. modified 3/93 to return if incx .le. 0. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dzasum (3m_blas) | July 20, 2023 |
dznrm2(3f) - [BLAS:SINGLE_BLAS_LEVEL1]
Synopsis
Definition
Options
Authors
Further Details
See Also
double precision function dznrm2(n,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx, n ..
DZNRM2 returns the euclidean norm of a vector via the function name, so that
DZNRM2 := sqrt( x**H*x )
number of elements in input vector(s)
array, dimension (N) complex vector with N elements
INCX is INTEGER, storage spacing between elements of X
If INCX > 0, X(1+(i-1)*INCX) = x(i) for 1 <= i <= n If INCX < 0, X(1-(n-i)*INCX) = x(i) for 1 <= i <= n If INCX = 0, x isn’t a vector so there is no need to callthis subroutine. If you call it anyway, it will count x(1) in the vector norm N times.
o Edward Anderson, Lockheed Martin date:August 2016\par Contributors:
Weslley Pereira, University of Colorado Denver, USA
Anderson E. (2017) Algorithm 978: Safe Scaling in the Level 1 BLAS ACM Trans Math Softw 44:1--28 https://doi.org/10.1145/3061665
Blue, James L. (1978) A Portable Fortran Program to Find the Euclidean Norm of a Vector ACM Trans Math Softw 4:15--23 https://doi.org/10.1145/355769.355771
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | dznrm2 (3m_blas) | July 20, 2023 |
icamax(3f) -- [BLAS:AUX_BLAS] Return index of maximum "absolute value" in CX.
Synopsis
Definition
Options
Authors
Further Details
See Also
integer function icamax(n,cx,incx)
.. scalar arguments .. integer,intent(in) :: incx,n .. .. array arguments .. complex,intent(in) :: cx(*) ..
ICAMAX finds the index of the first element having maximum |Re(.)| + |Im(.)|
N is INTEGER number of elements in input vector(s)
CX is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of CX
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
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(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | icamax (3m_blas) | July 20, 2023 |
idamax(3f) - [BLAS:AUX_BLAS]
Synopsis
Definition
Options
Authors
Further Details
See Also
integer function idamax(n,dx,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,n .. .. Array Arguments .. double precision,intent(in) :: dx(*) ..
IDAMAX finds the index of the first element having maximum absolute value.
N is INTEGER number of elements in input vector(s)
DX is DOUBLE PRECISION array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of DX
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
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(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | idamax (3m_blas) | July 20, 2023 |
isamax(3f) - [BLAS:AUX_BLAS] Return index of maximum absolute value in SX.
Synopsis
Definition
Options
Authors
Further Details
See Also
integer function isamax(n,sx,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,n .. .. Array Arguments .. real,intent(in) :: sx(*) ..
ISAMAX finds the index of the first element having maximum absolute value.
N is INTEGER number of elements in input vector(s)
SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of SX
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
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(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | isamax (3m_blas) | July 20, 2023 |
izamax(3f) - [BLAS:AUX_BLAS]
Synopsis
Definition
Options
Returns
Authors
Further Details
See Also
integer function izamax(n,zx,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,n .. .. Array Arguments .. complex(kind=real64),intent(in) :: zx(*) ..
IZAMAX finds the index of the first element having maximum |Re(.)|
o |Im(.)|
N number of elements in input vector(s) ZX array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) INCX storage spacing between elements of ZX
IZAMAX index of the first element having maximum
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, 1/15/85. modified 3/93 to return if incx .le. 0. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | izamax (3m_blas) | July 20, 2023 |
lsame(3f) - [BLAS:AUX_BLAS] compare two letters ignoring case
Synopsis
Definition
Options
Authors
See Also
logical function lsame(ca,cb)
.. Scalar Arguments .. character(len=1),intent(in) :: ca,cb ..
LSAME returns .TRUE. if CA is the same letter as CB regardless of case.
CA is CHARACTER*1
CB is CHARACTER*1 CA and CB specify the single characters to be compared.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | lsame (3m_blas) | July 20, 2023 |
sasum(3f) - [BLAS:SINGLE_BLAS_LEVEL1] SASUM:=sum of absolute values of SX.
Synopsis
Definition
Options
Authors
Further Details
See Also
real function sasum(n,sx,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,n .. .. Array Arguments .. real,intent(in) :: sx(*) ..
SASUM takes the sum of the absolute values. uses unrolled loops for increment equal to one.
N is INTEGER number of elements in input vector(s)
SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of SX
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
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(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | sasum (3m_blas) | July 20, 2023 |
saxpy(3f) - [BLAS:SINGLE_BLAS_LEVEL1] SY:=SY+SA*SX (constant times a vector plus a vector)
Synopsis
Definition
Options
Authors
Further Details
See Also
subroutine saxpy(n,sa,sx,incx,sy,incy)
.. Scalar Arguments .. real,intent(in) :: sa integer,intent(in) :: incx,incy,n .. .. Array Arguments .. real,intent(in) :: sx(*) real,intent(inout) :: sy(*) ..
SAXPY constant times a vector plus a vector. uses unrolled loops for increments equal to one.
number of elements in input vector(s)
On entry, SA specifies the scalar alpha.
SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
storage spacing between elements of SX
SY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
storage spacing between elements of SY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | saxpy (3m_blas) | July 20, 2023 |
scabs1(3f) - [BLAS:SINGLE_BLAS_LEVEL1]
Synopsis
Definition
Options
Authors
See Also
elemental real function scabs1(z)
.. Scalar Arguments .. complex,intent(in) :: z ..
SCABS1 computes |Re(.)| + |Im(.)| of a complex number
Z is COMPLEX
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | scabs1 (3m_blas) | July 20, 2023 |
scasum(3f) - [BLAS:SINGLE_BLAS_LEVEL1] SCASUM:=SUM(I=1 to N) ABS(REAL(CX(I)))+ABS(AIMAG(CX(I))).
Synopsis
Definition
Options
Cx
Authors
Further Details
See Also
real function scasum(n,cx,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,n .. .. Array Arguments .. complex,intent(inout) :: cx(*) ..
SCASUM takes the sum of the (|Re(.)| + |Im(.)|)’s of a complex vector and returns a single precision result.
N is INTEGER number of elements in input vector(s)
CX is COMPLEX array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of SX
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
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(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | scasum (3m_blas) | July 20, 2023 |
scnrm2(3f) - [BLAS:SINGLE_BLAS_LEVEL1] SCNRM2:= square root of sum of magnitudes of entries of CX.
Synopsis
Definition
Options
Authors
Further Details
See Also
real function scnrm2(n,x,incx)
.. .. Scalar Arguments .. integer,intent(in) :: incx, n .. .. Array Arguments .. complex(wp),intent(in) :: x(*) ..
SCNRM2 returns the euclidean norm of a vector via the function name, so that
SCNRM2 := sqrt( x**H*x )
N is INTEGER number of elements in input vector(s)
X is COMPLEX array, dimension (N) complex vector with N elements
INCX is INTEGER, storage spacing between elements of X If INCX > 0, X(1+(i-1)*INCX) = x(i) for 1 <= i <= n If INCX < 0, X(1-(n-i)*INCX) = x(i) for 1 <= i <= n If INCX = 0, x isn’t a vector so there is no need to call this subroutine. If you call it anyway, it will count x(1) in the vector norm N times.
o Edward Anderson, Lockheed Martin date:August 2016\par Contributors:
Weslley Pereira, University of Colorado Denver, USA
Anderson E. (2017) Algorithm 978: Safe Scaling in the Level 1 BLAS ACM Trans Math Softw 44:1--28 https://doi.org/10.1145/3061665
Blue, James L. (1978) A Portable Fortran Program to Find the Euclidean Norm of a Vector ACM Trans Math Softw 4:15--23 https://doi.org/10.1145/355769.355771
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | scnrm2 (3m_blas) | July 20, 2023 |
scopy(3f) - [BLAS:SINGLE_BLAS_LEVEL1] SY:=SX
Synopsis
Definition
Options
Authors
Further Details
See Also
subroutine scopy(n,sx,incx,sy,incy)
.. Scalar Arguments .. integer,intent(in) :: incx,incy,n .. .. Array Arguments .. real,intent(in) :: sx(*) real,intent(out) :: sy(*) ..
SCOPY copies a vector, x, to a vector, y. uses unrolled loops for increments equal to 1.
N is INTEGER number of elements in input vector(s)
SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of SX
SY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
INCY is INTEGER storage spacing between elements of SY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | scopy (3m_blas) | July 20, 2023 |
sdot(3f) - [BLAS:SINGLE_BLAS_LEVEL1] SDOT := SUM SX * SY (vector dot product)
Synopsis
Definition
Options
Authors
Further Details
See Also
real function sdot(n,sx,incx,sy,incy)
.. Scalar Arguments .. integer,intent(in) :: incx,incy,n .. .. Array Arguments .. real,intent(in) :: sx(*),sy(*) ..
SDOT forms the dot product of two vectors. uses unrolled loops for increments equal to one.
N is INTEGER number of elements in input vector(s)
SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of SX
SY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
INCY is INTEGER storage spacing between elements of SY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | sdot (3m_blas) | July 20, 2023 |
sdsdot(3f) - [BLAS:SINGLE_BLAS_LEVEL1] Compute the inner product of two vectors with extended precision accumulation. SDSDOT := SUM SX * SY (accumulated double precision, returned single)
Synopsis
Definition
Options
Authors
Further Details
See Also
real function sdsdot(n,sb,sx,incx,sy,incy)
.. Scalar Arguments .. real,intent(in) :: sb integer,intent(in) :: incx,incy,n .. .. Array Arguments .. real,intent(in) :: sx(*),sy(*) ..
Compute the inner product of two vectors with extended precision accumulation.
Returns S.P. result with dot product accumulated in D.P. SDSDOT = SB + 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.
N is INTEGER number of elements in input vector(s)
SB is REAL single precision scalar to be added to inner product
SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) single precision vector with N elements
INCX is INTEGER storage spacing between elements of SX
SY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) single precision vector with N elements
INCY is INTEGER storage spacing between elements of SY
o Lawson, C. L., (JPL), Hanson, R. J., (SNLA), o Kincaid, D. R., (U. of Texas), Krogh, F. T., (JPL) o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
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 890531 Changed all specific intrinsics to generic. (WRB) 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 coding style
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | sdsdot (3m_blas) | July 20, 2023 |
sgbmv(3f) - [BLAS:SINGLE_BLAS_LEVEL2] SY:=alpha*A*SX+beta*SY, A a band matrix.
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine sgbmv(trans,m,n,kl,ku,alpha,a,lda,x,incx,beta,y,incy)
.. Scalar Arguments .. real,intent(in) :: alpha,beta integer,intent(in) :: incx,incy,kl,ku,lda,m,n character(len=1),intent(in) :: trans .. .. Array Arguments .. real,intent(in) :: a(lda,*),x(*) real,intent(inout) :: y(*) ..
SGBMV performs one of the matrix-vector operations
y := alpha*A*x + beta*y, or y := alpha*A**T*x + beta*y,where alpha and beta are scalars, x and y are vectors and A is an m by n band matrix, with kl sub-diagonals and ku super-diagonals.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ y := alpha*A*x + beta*y.TRANS = ’T’ or ’t’ y := alpha*A**T*x + beta*y.
TRANS = ’C’ or ’c’ y := alpha*A**T*x + beta*y.
M is INTEGER On entry, M specifies the number of rows of the matrix A. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix A. N must be at least zero.
KL is INTEGER On entry, KL specifies the number of sub-diagonals of the matrix A. KL must satisfy 0 .le. KL.
KU is INTEGER On entry, KU specifies the number of super-diagonals of the matrix A. KU must satisfy 0 .le. KU.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
A is REAL array, dimension ( LDA, N ) Before entry, the leading ( kl + ku + 1 ) by n part of the array A must contain the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row ( ku + 1 ) of the array, the first super-diagonal starting at position 2 in row ku, the first sub-diagonal starting at position 1 in row ( ku + 2 ), and so on. Elements in the array A that do not correspond to elements in the band matrix (such as the top left ku by ku triangle) are not referenced. The following program segment will transfer a band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N K = KU + 1 - J DO 10, I = MAX( 1, J - KU ), MIN( M, J + KL ) A( K + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least ( kl + ku + 1 ).
X is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ) when TRANS = ’N’ or ’n’ and at least ( 1 + ( m - 1 )*abs( INCX ) ) otherwise. Before entry, the incremented array X must contain the vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is REAL On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input.
Y is REAL array, dimension at least ( 1 + ( m - 1 )*abs( INCY ) ) when TRANS = ’N’ or ’n’ and at least ( 1 + ( n - 1 )*abs( INCY ) ) otherwise. Before entry, the incremented array Y must contain the vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | sgbmv (3m_blas) | July 20, 2023 |
sgemm(3f) - [BLAS:SINGLE_BLAS_LEVEL3] C:=alpha*A*B+beta*C, A, B, C rectangular.
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine sgemm(transa,transb,m,n,k,alpha,a,lda,b,ldb,beta,c,ldc)
.. Scalar Arguments .. real,intent(in) :: alpha,beta integer,intent(in) :: k,lda,ldb,ldc,m,n character,intent(in) :: transa,transb .. .. Array Arguments .. real,intent(in) :: a(lda,*),b(ldb,*) real,intent(inout) :: c(ldc,*) ..
SGEMM performs one of the matrix-matrix operations
C := alpha*op( A )*op( B ) + beta*C,where op( X ) is one of
op( X ) = X or op( X ) = X**T,alpha and beta are scalars, and A, B and C are matrices, with op( A ) an m by k matrix, op( B ) a k by n matrix and C an m by n matrix.
TRANSA is CHARACTER*1 On entry, TRANSA specifies the form of op( A ) to be used in the matrix multiplication as follows:
TRANSA = ’N’ or ’n’, op( A ) = A.TRANSA = ’T’ or ’t’, op( A ) = A**T.
TRANSA = ’C’ or ’c’, op( A ) = A**T.
TRANSB is CHARACTER*1 On entry, TRANSB specifies the form of op( B ) to be used in the matrix multiplication as follows:
TRANSB = ’N’ or ’n’, op( B ) = B.TRANSB = ’T’ or ’t’, op( B ) = B**T.
TRANSB = ’C’ or ’c’, op( B ) = B**T.
M is INTEGER On entry, M specifies the number of rows of the matrix op( A ) and of the matrix C. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix op( B ) and the number of columns of the matrix C. N must be at least zero.
K is INTEGER On entry, K specifies the number of columns of the matrix op( A ) and the number of rows of the matrix op( B ). K must be at least zero.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
A is REAL array, dimension ( LDA, ka ), where ka is k when TRANSA = ’N’ or ’n’, and is m otherwise.
Before entry with TRANSA = ’N’ or ’n’, the leading m by k part of the array A must contain the matrix A, otherwise the leading k by m part of the array A must contain the matrix A.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANSA = ’N’ or ’n’ then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, k ).
B is REAL array, dimension ( LDB, kb ), where kb is n when TRANSB = ’N’ or ’n’, and is k otherwise.
Before entry with TRANSB = ’N’ or ’n’, the leading k by n part of the array B must contain the matrix B, otherwise the leading n by k part of the array B must contain the matrix B.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. When TRANSB = ’N’ or ’n’ then LDB must be at least max( 1, k ), otherwise LDB must be at least max( 1, n ).
BETA is REAL On entry, BETA specifies the scalar beta. When BETA is supplied as zero then C need not be set on input.
C is REAL array, dimension ( LDC, N )
Before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry.On exit, the array C is overwritten by the m by n matrix ( alpha*op( A )*op( B ) + beta*C ).
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | sgemm (3m_blas) | July 20, 2023 |
sgemv(3f) - [BLAS:SINGLE_BLAS_LEVEL2] SY:=alpha*A*SX+beta*SY, A a rectangular matrix.
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine sgemv(trans,m,n,alpha,a,lda,x,incx,beta,y,incy)
.. Scalar Arguments .. real,intent(in) :: alpha,beta integer,intent(in) :: incx,incy,lda,m,n character,intent(in) :: trans .. .. Array Arguments .. real,intent(in) :: a(lda,*),x(*) real,intent(inout) :: y(*) ..
SGEMV performs one of the matrix-vector operations
y := alpha*A*x + beta*y, or y := alpha*A**T*x + beta*y,where alpha and beta are scalars, x and y are vectors and A is an m by n matrix.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ y := alpha*A*x + beta*y.TRANS = ’T’ or ’t’ y := alpha*A**T*x + beta*y.
TRANS = ’C’ or ’c’ y := alpha*A**T*x + beta*y.
M is INTEGER On entry, M specifies the number of rows of the matrix A. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix A. N must be at least zero.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
A is REAL array, dimension ( LDA, N ) Before entry, the leading m by n part of the array A must contain the matrix of coefficients.
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, m ).
X is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ) when TRANS = ’N’ or ’n’ and at least ( 1 + ( m - 1 )*abs( INCX ) ) otherwise. Before entry, the incremented array X must contain the vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is REAL On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input.
Y is REAL array, dimension at least ( 1 + ( m - 1 )*abs( INCY ) ) when TRANS = ’N’ or ’n’ and at least ( 1 + ( n - 1 )*abs( INCY ) ) otherwise. Before entry with BETA non-zero, the incremented array Y must contain the vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | sgemv (3m_blas) | July 20, 2023 |
sger(3f) - [BLAS:SINGLE_BLAS_LEVEL2] A:=A+alpha*SX*TRANSPOSE(SY), rank 1 update, A a rectangular matrix.
Synopsis
Definition
Options
A
Authors
Further Details
See Also
subroutine sger(m,n,alpha,x,incx,y,incy,a,lda)
.. Scalar Arguments .. real,intent(in) :: alpha integer,intent(in) :: incx,incy,lda,m,n .. .. Array Arguments .. real,intent(in) :: x(*),y(*) real,intent(inout) :: a(lda,*) ..
SGER performs the rank 1 operation
A := alpha*x*y**T + A,where alpha is a scalar, x is an m element vector, y is an n element vector and A is an m by n matrix.
M is INTEGER On entry, M specifies the number of rows of the matrix A. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix A. N must be at least zero.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
X is REAL array, dimension at least ( 1 + ( m - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the m element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
Y is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
A is REAL array, dimension ( LDA, N ) Before entry, the leading m by n part of the array A must contain the matrix of coefficients. On exit, A is overwritten by the updated matrix.
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, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | sger (3m_blas) | July 20, 2023 |
snrm2(3f) - [BLAS:SINGLE_BLAS_LEVEL1] SNRM2 := square root of sum of SX(I)**2
Synopsis
Definition
Options
Authors
Further Details
See Also
real function snrm2(n,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx, n .. .. Array Arguments .. real(wp),intent(in) :: x(*) ..
SNRM2 returns the euclidean norm of a vector via the function name, so that
SNRM2 := sqrt( x’*x ).
N is INTEGER number of elements in input vector(s)
X is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER, storage spacing between elements of X If INCX > 0, X(1+(i-1)*INCX) = x(i) for 1 <= i <= n If INCX < 0, X(1-(n-i)*INCX) = x(i) for 1 <= i <= n If INCX = 0, x isn’t a vector so there is no need to call this subroutine. If you call it anyway, it will count x(1) in the vector norm N times.
o Edward Anderson, Lockheed Martin date:August 2016\par Contributors:
Weslley Pereira, University of Colorado Denver, USA
Anderson E. (2017) Algorithm 978: Safe Scaling in the Level 1 BLAS ACM Trans Math Softw 44:1--28 https://doi.org/10.1145/3061665
Blue, James L. (1978) A Portable Fortran Program to Find the Euclidean Norm of a Vector ACM Trans Math Softw 4:15--23 https://doi.org/10.1145/355769.355771
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | snrm2 (3m_blas) | July 20, 2023 |
srotg(3f) - [BLAS:SINGLE_BLAS_LEVEL1] Generate Given’s rotation.
Synopsis
Definition
Options
A
B
Authors
Further Details
See Also
subroutine srotg( a, b, c, s )
.. Scalar Arguments .. real(wp),intent(inout) :: a, b real(wp),intent(out) :: c, s .. .. Local Scalars .. real(wp) :: anorm, bnorm, scl, sigma, r, z ..
SROTG constructs a plane rotation
[ c s ] [ a ] = [ r ] [ -s c ] [ b ] [ 0 ]satisfying c**2 + s**2 = 1.
The computation uses the formulas
sigma = sgn(a) if |a| > |b| = sgn(b) if |b| >= |a| r = sigma*sqrt( a**2 + b**2 ) c = 1; s = 0 if r = 0 c = a/r; s = b/r if r != 0The subroutine also computes
z = s if |a| > |b|, = 1/c if |b| >= |a| and c != 0 = 1 if c = 0This allows c and s to be reconstructed from z as follows:
If z = 1, set c = 0, s = 1. If |z| < 1, set c = sqrt(1 - z**2) and s = z. If |z| > 1, set c = 1/z and s = sqrt( 1 - c**2).
A is REAL On entry, the scalar a. On exit, the scalar r.
B is REAL On entry, the scalar b. On exit, the scalar z.
C is REAL The scalar c.
S is REAL The scalar s.
o Edward Anderson, Lockheed Martin \par Contributors:Weslley Pereira, University of Colorado Denver, USA
Anderson E. (2017) Algorithm 978: Safe Scaling in the Level 1 BLAS ACM Trans Math Softw 44:1--28 https://doi.org/10.1145/3061665
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | srotg (3m_blas) | July 20, 2023 |
srotm(3f) - [BLAS:SINGLE_BLAS_LEVEL1] Apply a modified Given’s rotation.
Synopsis
Definition
Options
Sx
Sy
Authors
See Also
subroutine srotm(n,sx,incx,sy,incy,sparam)
.. Scalar Arguments .. integer,intent(in) :: incx,incy,n .. .. Array Arguments .. real,intent(in) :: sparam(5) real,intent(inout) :: sx(*),sy(*) ..
APPLY THE MODIFIED GIVENS TRANSFORMATION, H, TO THE 2 BY N MATRIX
(SX**T) , WHERE **T INDICATES TRANSPOSE. THE ELEMENTS OF SX ARE IN (SX**T)
SX(LX+I*INCX), I = 0 TO N-1, WHERE LX = 1 IF INCX .GE. 0, ELSE LX = (-INCX)*N, AND SIMILARLY FOR SY USING USING LY AND INCY. WITH SPARAM(1)=SFLAG, H HAS ONE OF THE FOLLOWING FORMS..
SFLAG=-1.E0 SFLAG=0.E0 SFLAG=1.E0 SFLAG=-2.E0(SH11 SH12) (1.E0 SH12) (SH11 1.E0) (1.E0 0.E0) H=( ) ( ) ( ) ( ) (SH21 SH22), (SH21 1.E0), (-1.E0 SH22), (0.E0 1.E0).
SEE SROTMG FOR A DESCRIPTION OF DATA STORAGE IN SPARAM.
N is INTEGER number of elements in input vector(s)
SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of SX
SY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
INCY is INTEGER storage spacing between elements of SY
SPARAM is REAL array, dimension (5) SPARAM(1)=SFLAG SPARAM(2)=SH11 SPARAM(3)=SH21 SPARAM(4)=SH12 SPARAM(5)=SH22
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | srotm (3m_blas) | July 20, 2023 |
srotmg(3f) - [BLAS:SINGLE_BLAS_LEVEL1] Generate a modified Given’s rotation.
Synopsis
Definition
Options
Authors
See Also
subroutine srotmg(sd1,sd2,sx1,sy1,sparam)
.. Scalar Arguments .. real,intent(inout) :: sd1,sd2,sx1 real,intent(in) :: sy1 .. .. Array Arguments .. real,intent(out) :: sparam(5) ..
Construct the modified Givens Transformation Matrix H which zeros the second component of the 2-vector
(sqrt(sd1)*sx1,sqrt(sd2)*>sy2)**t.with sparam(1)=sflag, H has one of the following forms..
SFLAG=-1.E0 SFLAG=0.E0 SFLAG=1.E0 SFLAG=-2.E0locations 2-4 of SPARAM contain SH11,SH21,SH12, and SH22 respectively. (values of 1.e0, -1.e0, or 0.e0 implied by the value of SPARAM(1) are not stored in SPARAM.)(SH11 SH12) (1.E0 SH12) (SH11 1.E0) (1.E0 0.E0) H=( ) ( ) ( ) ( ) (SH21 SH22), (SH21 1.E0), (-1.E0 SH22), (0.E0 1.E0).
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 SD1 and SD2. All actual scaling of data is done using GAM.
SD1
SD1 is REALSD2
SD2 is REALSX1
SX1 is REALSY1
SY1 is REAL
SPARAM is REAL array, dimension (5) SPARAM(1)=SFLAG SPARAM(2)=SH11 SPARAM(3)=SH21 SPARAM(4)=SH12 SPARAM(5)=SH22
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | srotmg (3m_blas) | July 20, 2023 |
ssbmv(3f) - [BLAS:SINGLE_BLAS_LEVEL2] SY:=alpha*A*SX+beta*SY, A a symmetric band matrix.
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine ssbmv(uplo,n,k,alpha,a,lda,x,incx,beta,y,incy)
.. Scalar Arguments .. real,intent(in) :: alpha,beta integer,intent(in) :: incx,incy,k,lda,n character,intent(in) :: uplo .. .. Array Arguments .. real,intent(in) :: a(lda,*),x(*) real,intent(inout) :: y(*) ..
SSBMV performs the matrix-vector operation
y := alpha*A*x + beta*y,where alpha and beta are scalars, x and y are n element vectors and A is an n by n symmetric band matrix, with k super-diagonals.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the band matrix A is being supplied as follows:
UPLO = ’U’ or ’u’ The upper triangular part of A is being supplied.UPLO = ’L’ or ’l’ The lower triangular part of A is being supplied.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
K is INTEGER On entry, K specifies the number of super-diagonals of the matrix A. K must satisfy 0 .le. K.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
A is REAL array, dimension ( LDA, N ) Before entry with UPLO = ’U’ or ’u’, the leading ( k + 1 ) by n part of the array A must contain the upper triangular band part of the symmetric matrix, supplied column by column, with the leading diagonal of the matrix in row ( k + 1 ) of the array, the first super-diagonal starting at position 2 in row k, and so on. The top left k by k triangle of the array A is not referenced. The following program segment will transfer the upper triangular part of a symmetric band matrix from conventional full matrix storage to band storage:
> DO 20, J = 1, N > M = K + 1 - J > DO 10, I = MAX( 1, J - K ), J > A( M + I, J ) = matrix( I, J ) > 10 CONTINUE > 20 CONTINUEBefore entry with UPLO = ’L’ or ’l’, the leading ( k + 1 ) by n part of the array A must contain the lower triangular band part of the symmetric matrix, supplied column by column, with the leading diagonal of the matrix in row 1 of the array, the first sub-diagonal starting at position 1 in row 2, and so on. The bottom right k by k triangle of the array A is not referenced. The following program segment will transfer the lower triangular part of a symmetric band matrix from conventional full matrix storage to band storage:
> DO 20, J = 1, N > M = 1 - J > DO 10, I = J, MIN( N, J + K ) > A( M + I, J ) = matrix( I, J ) > 10 CONTINUE > 20 CONTINUE
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least ( k + 1 ).
X is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is REAL On entry, BETA specifies the scalar beta.
Y is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ssbmv (3m_blas) | July 20, 2023 |
sscal(3f) - [BLAS:SINGLE_BLAS_LEVEL1] SX:=SA*SX.
Synopsis
Definition
Options
Sx
Authors
Further Details
See Also
subroutine sscal(n,sa,sx,incx)
.. Scalar Arguments .. real,intent(in) :: sa integer,intent(in) :: incx,n .. .. Array Arguments .. real,intent(inout) :: sx(*) ..
SSCAL scales a vector by a constant. uses unrolled loops for increment equal to 1.
N is INTEGER number of elements in input vector(s)
SA is REAL On entry, SA specifies the scalar alpha.
SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of SX
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
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(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | sscal (3m_blas) | July 20, 2023 |
sspmv(3f) - [BLAS:SINGLE_BLAS_LEVEL2] SY:=alpha*A*SX+beta*SY, A a packed symmetric matrix.
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine sspmv(uplo,n,alpha,ap,x,incx,beta,y,incy)
.. Scalar Arguments .. real,intent(in) :: alpha,beta integer,intent(in) :: incx,incy,n character,intent(in) :: uplo .. .. Array Arguments .. real,intent(in) :: ap(*),x(*) real,intent(inout) :: y(*) ..
SSPMV performs the matrix-vector operation
y := alpha*A*x + beta*y,where alpha and beta are scalars, x and y are n element vectors and A is an n by n symmetric matrix, supplied in packed form.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the matrix A is supplied in the packed array AP as follows:
UPLO = ’U’ or ’u’ The upper triangular part of A is supplied in AP.UPLO = ’L’ or ’l’ The lower triangular part of A is supplied in AP.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
AP is REAL array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on.
X is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is REAL On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input.
Y is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | sspmv (3m_blas) | July 20, 2023 |
sspr(3f) - [BLAS:SINGLE_BLAS_LEVEL2] A:=A+alpha*SX*TRANSPOSE(SX), A a packed symmetric matrix.
Synopsis
Definition
Options
Ap
Authors
Further Details
See Also
subroutine sspr(uplo,n,alpha,x,incx,ap)
.. Scalar Arguments .. real,intent(in) :: alpha integer,intent(in) :: incx,n character,intent(in) :: uplo .. .. Array Arguments .. real,intent(in) :: x(*) real,intent(inout) :: ap(*) ..
SSPR performs the symmetric rank 1 operation
A := alpha*x*x**T + A,where alpha is a real scalar, x is an n element vector and A is an n by n symmetric matrix, supplied in packed form.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the matrix A is supplied in the packed array AP as follows:
UPLO = ’U’ or ’u’ The upper triangular part of A is supplied in AP.UPLO = ’L’ or ’l’ The lower triangular part of A is supplied in AP.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
X is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
AP is REAL array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. On exit, the array AP is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. On exit, the array AP is overwritten by the lower triangular part of the updated matrix.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | sspr (3m_blas) | July 20, 2023 |
sspr2(3f) - [BLAS:SINGLE_BLAS_LEVEL2] A:=A+alpha*SX*TRANSPOSE(SY)+alpha*SY*TRANSPOSE(SX), A packed symmetric.
Synopsis
Definition
Options
Ap
Authors
Further Details
See Also
subroutine sspr2(uplo,n,alpha,x,incx,y,incy,ap)
.. Scalar Arguments .. real,intent(in) :: alpha integer,intent(in) :: incx,incy,n character,intent(in) :: uplo .. .. Array Arguments .. real,intent(in) :: x(*),y(*) real,intent(inout) :: ap(*) ..
SSPR2 performs the symmetric rank 2 operation
A := alpha*x*y**T + alpha*y*x**T + A,where alpha is a scalar, x and y are n element vectors and A is an n by n symmetric matrix, supplied in packed form.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the matrix A is supplied in the packed array AP as follows:
UPLO = ’U’ or ’u’ The upper triangular part of A is supplied in AP.UPLO = ’L’ or ’l’ The lower triangular part of A is supplied in AP.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
X is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
Y is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
AP is REAL array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. On exit, the array AP is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular part of the symmetric matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. On exit, the array AP is overwritten by the lower triangular part of the updated matrix.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | sspr2 (3m_blas) | July 20, 2023 |
sswap(3f) - [BLAS:SINGLE_BLAS_LEVEL1] Interchange vectors SX and SY.
Synopsis
Definition
Options
Sx
Sy
Authors
Further Details
See Also
subroutine sswap(n,sx,incx,sy,incy)
.. Scalar Arguments .. integer,intent(in) :: incx,incy,n .. .. Array Arguments .. real,intent(inout) :: sx(*),sy(*) ..
SSWAP interchanges two vectors. uses unrolled loops for increments equal to 1.
N is INTEGER number of elements in input vector(s)
SX is REAL array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of SX
SY is REAL array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
INCY is INTEGER storage spacing between elements of SY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, linpack, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | sswap (3m_blas) | July 20, 2023 |
ssymm(3f) - [BLAS:SINGLE_BLAS_LEVEL3] C:=alpha*A*B+beta*C, A symmetric, B, C rectangular.
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine ssymm(side,uplo,m,n,alpha,a,lda,b,ldb,beta,c,ldc)
.. Scalar Arguments .. real,intent(in) :: alpha,beta integer,intent(in) :: lda,ldb,ldc,m,n character,intent(in) :: side,uplo .. .. Array Arguments .. real,intent(in) :: a(lda,*),b(ldb,*) real,intent(inout) :: c(ldc,*) ..
SSYMM performs one of the matrix-matrix operations
C := alpha*A*B + beta*C,or
C := alpha*B*A + beta*C,where alpha and beta are scalars, A is a symmetric matrix and B and C are m by n matrices.
SIDE is CHARACTER*1 On entry, SIDE specifies whether the symmetric matrix A appears on the left or right in the operation as follows:
SIDE = ’L’ or ’l’ C := alpha*A*B + beta*C,SIDE = ’R’ or ’r’ C := alpha*B*A + beta*C,
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the symmetric matrix A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of the symmetric matrix is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of the symmetric matrix is to be referenced.
M is INTEGER On entry, M specifies the number of rows of the matrix C. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix C. N must be at least zero.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
A is REAL array, dimension ( LDA, ka ), where ka is m when SIDE = ’L’ or ’l’ and is n otherwise. Before entry with SIDE = ’L’ or ’l’, the m by m part of the array A must contain the symmetric matrix, such that when UPLO = ’U’ or ’u’, the leading m by m upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = ’L’ or ’l’, the leading m by m lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced. Before entry with SIDE = ’R’ or ’r’, the n by n part of the array A must contain the symmetric matrix, such that when UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When SIDE = ’L’ or ’l’ then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, n ).
B is REAL array, dimension ( LDB, N ) Before entry, the leading m by n part of the array B must contain the matrix B.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
BETA is REAL On entry, BETA specifies the scalar beta. When BETA is supplied as zero then C need not be set on input.
C is REAL array, dimension ( LDC, N ) Before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry. On exit, the array C is overwritten by the m by n updated matrix.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ssymm (3m_blas) | July 20, 2023 |
ssymv(3f) - [BLAS:SINGLE_BLAS_LEVEL2] SY:=alpha*A*SX+beta*SY, A a symmetric matrix.
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine ssymv(uplo,n,alpha,a,lda,x,incx,beta,y,incy)
.. Scalar Arguments .. real,intent(in) :: alpha,beta integer,intent(in) :: incx,incy,lda,n character,intent(in) :: uplo .. .. Array Arguments .. real,intent(in) :: a(lda,*),x(*) real,intent(inout) :: y(*) ..
SSYMV performs the matrix-vector operation
y := alpha*A*x + beta*y,where alpha and beta are scalars, x and y are n element vectors and A is an n by n symmetric matrix.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of A is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of A is to be referenced.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
A is REAL 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 part of the symmetric 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 part of the symmetric matrix and the strictly upper triangular part of A is not referenced.
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 ).
X is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is REAL On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input.
Y is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ssymv (3m_blas) | July 20, 2023 |
ssyr(3f) - [BLAS:SINGLE_BLAS_LEVEL2] A:=A+alpha*SX*TRANSPOSE(SX), A a symmetric matrix.
Synopsis
Definition
Options
A
Authors
Further Details
See Also
subroutine ssyr(uplo,n,alpha,x,incx,a,lda)
.. Scalar Arguments .. real,intent(in) :: alpha integer,intent(in) :: incx,lda,n character,intent(in) :: uplo .. .. Array Arguments .. real,intent(in) :: x(*) real,intent(inout) :: a(lda,*) ..
SSYR performs the symmetric rank 1 operation
A := alpha*x*x**T + A,where alpha is a real scalar, x is an n element vector and A is an n by n symmetric matrix.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of A is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of A is to be referenced.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
X is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
A is REAL 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 part of the symmetric matrix and the strictly lower triangular part of A is not referenced. On exit, the upper triangular part of the array A is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced. On exit, the lower triangular part of the array A is overwritten by the lower triangular part of the updated matrix.
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 ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ssyr (3m_blas) | July 20, 2023 |
ssyr2(3f) - [BLAS:SINGLE_BLAS_LEVEL2] A:=A+alpha*SX*TRANSPOSE(SY)+alpha*SY*TRANSPOSE(SX), A a symmetric
Synopsis
Definition
Options
A
Authors
Further Details
See Also
subroutine ssyr2(uplo,n,alpha,x,incx,y,incy,a,lda)
.. Scalar Arguments .. real,intent(in) :: alpha integer,intent(in) :: incx,incy,lda,n character,intent(in) :: uplo .. .. Array Arguments .. real,intent(in) :: x(*),y(*) real,intent(inout) :: a(lda,*) ..
SSYR2 performs the symmetric rank 2 operation
A := alpha*x*y**T + alpha*y*x**T + A,where alpha is a scalar, x and y are n element vectors and A is an n by n symmetric matrix.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of A is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of A is to be referenced.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
X is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
Y is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
A is REAL 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 part of the symmetric matrix and the strictly lower triangular part of A is not referenced. On exit, the upper triangular part of the array A is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced. On exit, the lower triangular part of the array A is overwritten by the lower triangular part of the updated matrix.
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 ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ssyr2 (3m_blas) | July 20, 2023 |
ssyr2k(3f) - [BLAS:SINGLE_BLAS_LEVEL3] C:=alpha*A*TRANSPOSE(B)+alpha*B*TRANSPOSE(A)+beta*C, C symmetric.
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine ssyr2k(uplo,trans,n,k,alpha,a,lda,b,ldb,beta,c,ldc)
.. Scalar Arguments .. real,intent(in) :: alpha,beta integer,intent(in) :: k,lda,ldb,ldc,n character,intent(in) :: trans,uplo .. .. Array Arguments .. real,intent(in) :: a(lda,*),b(ldb,*) real,intent(inout) :: c(ldc,*) ..
SSYR2K performs one of the symmetric rank 2k operations
C := alpha*A*B**T + alpha*B*A**T + beta*C,or
C := alpha*A**T*B + alpha*B**T*A + beta*C,where alpha and beta are scalars, C is an n by n symmetric matrix and A and B are n by k matrices in the first case and k by n matrices in the second case.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array C is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of C is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of C is to be referenced.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ C := alpha*A*B**T + alpha*B*A**T + beta*C.TRANS = ’T’ or ’t’ C := alpha*A**T*B + alpha*B**T*A + beta*C.
TRANS = ’C’ or ’c’ C := alpha*A**T*B + alpha*B**T*A + beta*C.
N is INTEGER On entry, N specifies the order of the matrix C. N must be at least zero.
K is INTEGER On entry with TRANS = ’N’ or ’n’, K specifies the number of columns of the matrices A and B, and on entry with TRANS = ’T’ or ’t’ or ’C’ or ’c’, K specifies the number of rows of the matrices A and B. K must be at least zero.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
A is REAL array, dimension ( LDA, ka ), where ka is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array A must contain the matrix A, otherwise the leading k by n part of the array A must contain the matrix A.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDA must be at least max( 1, n ), otherwise LDA must be at least max( 1, k ).
B is REAL array, dimension ( LDB, kb ), where kb is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array B must contain the matrix B, otherwise the leading k by n part of the array B must contain the matrix B.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDB must be at least max( 1, n ), otherwise LDB must be at least max( 1, k ).
BETA is REAL On entry, BETA specifies the scalar beta.
C is REAL array, dimension ( LDC, N ) Before entry with UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array C must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of C is not referenced. On exit, the upper triangular part of the array C is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array C must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of C is not referenced. On exit, the lower triangular part of the array C is overwritten by the lower triangular part of the updated matrix.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, n ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ssyr2k (3m_blas) | July 20, 2023 |
ssyrk(3f) - [BLAS:SINGLE_BLAS_LEVEL3] C:=alpha*A*TRANSPOSE(A)+beta*C, C symmetric.
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine ssyrk(uplo,trans,n,k,alpha,a,lda,beta,c,ldc)
.. Scalar Arguments .. real,intent(in) :: alpha,beta integer,intent(in) :: k,lda,ldc,n character,intent(in) :: trans,uplo .. .. Array Arguments .. real,intent(in) :: a(lda,*) real,intent(inout) :: c(ldc,*) ..
SSYRK performs one of the symmetric rank k operations
C := alpha*A*A**T + beta*C,or
C := alpha*A**T*A + beta*C,where alpha and beta are scalars, C is an n by n symmetric matrix and A is an n by k matrix in the first case and a k by n matrix in the second case.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array C is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of C is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of C is to be referenced.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ C := alpha*A*A**T + beta*C.TRANS = ’T’ or ’t’ C := alpha*A**T*A + beta*C.
TRANS = ’C’ or ’c’ C := alpha*A**T*A + beta*C.
N is INTEGER On entry, N specifies the order of the matrix C. N must be at least zero.
K is INTEGER On entry with TRANS = ’N’ or ’n’, K specifies the number
of columns of the matrix A, and on entry with TRANS = ’T’ or ’t’ or ’C’ or ’c’, K specifies the number of rows of the matrix A. K must be at least zero.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha.
A is REAL array, dimension ( LDA, ka ), where ka is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array A must contain the matrix A, otherwise the leading k by n part of the array A must contain the matrix A.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDA must be at least max( 1, n ), otherwise LDA must be at least max( 1, k ).
BETA is REAL On entry, BETA specifies the scalar beta.
C is REAL array, dimension ( LDC, N ) Before entry with UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array C must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of C is not referenced. On exit, the upper triangular part of the array C is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array C must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of C is not referenced. On exit, the lower triangular part of the array C is overwritten by the lower triangular part of the updated matrix.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, n ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ssyrk (3m_blas) | July 20, 2023 |
stbmv(3f) - [BLAS:SINGLE_BLAS_LEVEL2] SX:=A*SX, A a triangular band matrix.
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine stbmv(uplo,trans,diag,n,k,a,lda,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,k,lda,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. real,intent(in) :: a(lda,*) real,intent(inout) :: x(*) ..
STBMV performs one of the matrix-vector operations
x := A*x, or x := A**T*x,where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular band matrix, with ( k + 1 ) diagonals.
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.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ x := A*x.TRANS = ’T’ or ’t’ x := A**T*x.
TRANS = ’C’ or ’c’ x := A**T*x.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
K is INTEGER On entry with UPLO = ’U’ or ’u’, K specifies the number of super-diagonals of the matrix A. On entry with UPLO = ’L’ or ’l’, K specifies the number of sub-diagonals of the matrix A. K must satisfy 0 .le. K.
A is REAL array, dimension ( LDA, N ) Before entry with UPLO = ’U’ or ’u’, the leading ( k + 1 ) by n part of the array A must contain the upper triangular band part of the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row ( k + 1 ) of the array, the first super-diagonal starting at position 2 in row k, and so on. The top left k by k triangle of the array A is not referenced. The following program segment will transfer an upper triangular band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = K + 1 - J DO 10, I = MAX( 1, J - K ), J A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Before entry with UPLO = ’L’ or ’l’, the leading ( k + 1 ) by n part of the array A must contain the lower triangular band part of the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row 1 of the array, the first sub-diagonal starting at position 1 in row 2, and so on. The bottom right k by k triangle of the array A is not referenced. The following program segment will transfer a lower triangular band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = 1 - J DO 10, I = J, MIN( N, J + K ) A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Note that when DIAG = ’U’ or ’u’ the elements of the array A corresponding to the diagonal elements of the matrix are not referenced, but are assumed to be unity.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least ( k + 1 ).
X is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x. On exit, X is overwritten with the transformed vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | stbmv (3m_blas) | July 20, 2023 |
stbsv(3f) - [BLAS:SINGLE_BLAS_LEVEL2] SX:=INVERSE(A)*SX, A a triangular band matrix.
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine stbsv(uplo,trans,diag,n,k,a,lda,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,k,lda,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. real,intent(in) :: a(lda,*) real,intent(inout) :: x(*) ..
STBSV 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 band matrix, with ( k + 1 ) diagonals.
No test for singularity or near-singularity is included in this routine. Such tests must be performed before calling this routine.
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.
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.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
K is INTEGER On entry with UPLO = ’U’ or ’u’, K specifies the number of super-diagonals of the matrix A. On entry with UPLO = ’L’ or ’l’, K specifies the number of sub-diagonals of the matrix A. K must satisfy 0 .le. K.
A is REAL array, dimension ( LDA, N ) Before entry with UPLO = ’U’ or ’u’, the leading ( k + 1 ) by n part of the array A must contain the upper triangular band part of the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row ( k + 1 ) of the array, the first super-diagonal starting at position 2 in row k, and so on. The top left k by k triangle of the array A is not referenced. The following program segment will transfer an upper triangular band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = K + 1 - J DO 10, I = MAX( 1, J - K ), J A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Before entry with UPLO = ’L’ or ’l’, the leading ( k + 1 ) by n part of the array A must contain the lower triangular band part of the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row 1 of the array, the first sub-diagonal starting at position 1 in row 2, and so on. The bottom right k by k triangle of the array A is not referenced. The following program segment will transfer a lower triangular band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = 1 - J DO 10, I = J, MIN( N, J + K ) A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Note that when DIAG = ’U’ or ’u’ the elements of the array A corresponding to the diagonal elements of the matrix are not referenced, but are assumed to be unity.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least ( k + 1 ).
X is REAL 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.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | stbsv (3m_blas) | July 20, 2023 |
stpmv(3f) - [BLAS:SINGLE_BLAS_LEVEL2] SX:=A*SX, A a packed symmetric matrix.
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine stpmv(uplo,trans,diag,n,ap,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. real,intent(in) :: ap(*) real,intent(inout) :: x(*) ..
STPMV performs one of the matrix-vector operations
x := A*x, or x := A**T*x,where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix, supplied in packed form.
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.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ x := A*x.TRANS = ’T’ or ’t’ x := A**T*x.
TRANS = ’C’ or ’c’ x := A**T*x.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
AP is REAL array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. Note that when DIAG = ’U’ or ’u’, the diagonal elements of A are not referenced, but are assumed to be unity.
X is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x. On exit, X is overwritten with the transformed vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | stpmv (3m_blas) | July 20, 2023 |
stpsv(3f) - [BLAS:SINGLE_BLAS_LEVEL2] SX:=INVERSE(A)*SX, A a packed symmetric matrix.
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine stpsv(uplo,trans,diag,n,ap,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. real,intent(in) :: ap(*) real,intent(inout) :: x(*) ..
STPSV 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, supplied in packed form.
No test for singularity or near-singularity is included in this routine. Such tests must be performed before calling this routine.
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.
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.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
AP is REAL array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. Note that when DIAG = ’U’ or ’u’, the diagonal elements of A are not referenced, but are assumed to be unity.
X is REAL 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.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | stpsv (3m_blas) | July 20, 2023 |
strmm(3f) - [BLAS:SINGLE_BLAS_LEVEL3] B:=A*B or B:=B*A, A triangular, B rectangular.
Synopsis
Definition
Options
B
Authors
Further Details
See Also
subroutine strmm(side,uplo,transa,diag,m,n,alpha,a,lda,b,ldb)
.. Scalar Arguments .. real,intent(in) :: alpha integer,intent(in) :: lda,ldb,m,n character,intent(in) :: diag,side,transa,uplo .. .. Array Arguments .. real,intent(in) :: a(lda,*) real,intent(inout) :: b(ldb,*) ..
STRMM performs one of the matrix-matrix operations
B := alpha*op( A )*B, or B := alpha*B*op( A ),where alpha is a scalar, B is an m by n matrix, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of
op( A ) = A or op( A ) = A**T.
SIDE is CHARACTER*1 On entry, SIDE specifies whether op( A ) multiplies B from the left or right as follows:
SIDE = ’L’ or ’l’ B := alpha*op( A )*B.SIDE = ’R’ or ’r’ B := alpha*B*op( A ).
UPLO is CHARACTER*1 On entry, UPLO specifies whether the matrix A 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.
TRANSA is CHARACTER*1 On entry, TRANSA specifies the form of op( A ) to be used in the matrix multiplication as follows:
TRANSA = ’N’ or ’n’ op( A ) = A.TRANSA = ’T’ or ’t’ op( A ) = A**T.
TRANSA = ’C’ or ’c’ op( A ) = A**T.
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.
M is INTEGER On entry, M specifies the number of rows of B. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of B. N must be at least zero.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha. When alpha is zero then A is not referenced and B need not be set before entry.
A is REAL array, dimension ( LDA, k ), where k is m when SIDE = ’L’ or ’l’ and is n when SIDE = ’R’ or ’r’. Before entry with UPLO = ’U’ or ’u’, the leading k by k 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 k by k 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.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When SIDE = ’L’ or ’l’ then LDA must be at least max( 1, m ), when SIDE = ’R’ or ’r’ then LDA must be at least max( 1, n ).
B is REAL array, dimension ( LDB, N ) Before entry, the leading m by n part of the array B must contain the matrix B, and on exit is overwritten by the transformed matrix.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | strmm (3m_blas) | July 20, 2023 |
strmv(3f) - [BLAS:SINGLE_BLAS_LEVEL2] SX:=A*SX, A a triangular matrix.
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine strmv(uplo,trans,diag,n,a,lda,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,lda,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. real,intent(in) :: a(lda,*) real,intent(inout) :: x(*) ..
STRMV performs one of the matrix-vector operations
x := A*x, or x := A**T*x,
where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix.
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.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ x := A*x.TRANS = ’T’ or ’t’ x := A**T*x.
TRANS = ’C’ or ’c’ x := A**T*x.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
A is REAL 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.
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 ).
X is REAL array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x. On exit, X is overwritten with the transformed vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | strmv (3m_blas) | July 20, 2023 |
strsm(3f) - [BLAS:SINGLE_BLAS_LEVEL3] B:=INVERSE(A)*C or B:=C*INVERSE(A), B, C rectangular, A triangular.
Synopsis
Definition
Options
B
Authors
Further Details
See Also
subroutine strsm(side,uplo,transa,diag,m,n,alpha,a,lda,b,ldb)
.. Scalar Arguments .. real,intent(in) :: alpha integer,intent(in) :: lda,ldb,m,n character,intent(in) :: diag,side,transa,uplo .. .. Array Arguments .. real,intent(in) :: a(lda,*) real,intent(inout) :: b(ldb,*) ..
STRSM solves one of the matrix equations
op( A )*X = alpha*B, or X*op( A ) = alpha*B,where alpha is a scalar, X and B are m by n matrices, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of
op( A ) = A or op( A ) = A**T.The matrix X is overwritten on B.
SIDE is CHARACTER*1 On entry, SIDE specifies whether op( A ) appears on the left or right of X as follows:
SIDE = ’L’ or ’l’ op( A )*X = alpha*B.SIDE = ’R’ or ’r’ X*op( A ) = alpha*B.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the matrix A 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.
TRANSA is CHARACTER*1 On entry, TRANSA specifies the form of op( A ) to be used in the matrix multiplication as follows:
TRANSA = ’N’ or ’n’ op( A ) = A.TRANSA = ’T’ or ’t’ op( A ) = A**T.
TRANSA = ’C’ or ’c’ op( A ) = A**T.
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.
M is INTEGER On entry, M specifies the number of rows of B. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of B. N must be at least zero.
ALPHA is REAL On entry, ALPHA specifies the scalar alpha. When alpha is zero then A is not referenced and B need not be set before entry.
A is REAL array, dimension ( LDA, k ), where k is m when SIDE = ’L’ or ’l’ and k is n when SIDE = ’R’ or ’r’. Before entry with UPLO = ’U’ or ’u’, the leading k by k 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 k by k 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.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When SIDE = ’L’ or ’l’ then LDA must be at least max( 1, m ), when SIDE = ’R’ or ’r’ then LDA must be at least max( 1, n ).
B is REAL array, dimension ( LDB, N ) Before entry, the leading m by n part of the array B must contain the right-hand side matrix B, and on exit is overwritten by the solution matrix X.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | strsm (3m_blas) | July 20, 2023 |
strsv(3f) - [BLAS:SINGLE_BLAS_LEVEL2] SX:=INVERSE(A)*SX, A a triangular matrix.
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine strsv(uplo,trans,diag,n,a,lda,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,lda,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. real,intent(in) :: a(lda,*) real,intent(inout) :: x(*) ..
STRSV 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.
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.
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.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
A is REAL 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.
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 ).
X is REAL 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.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | strsv (3m_blas) | July 20, 2023 |
xerbla(3f) - [BLAS:AUX_BLAS] error handler routine for the BLAS/LAPACK routines
Synopsis
Definition
Options
Authors
See Also
subroutine xerbla( srname, info )
.. Scalar Arguments .. character(len=*),intent(in) :: srname integer,intent(in) :: info ..
XERBLA is an error handler for the LAPACK routines. It is called by an LAPACK routine if an input parameter has an invalid value. A message is printed and execution stops.
Installers may consider modifying the STOP statement in order to call system-specific exception-handling facilities.
SRNAME is character(len=*),intent(in) The name of the routine which called XERBLA.
INFO is integer,intent(in) The position of the invalid parameter in the parameter list of the calling routine.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | xerbla (3m_blas) | July 20, 2023 |
xerbla_array(3f) - [BLAS:AUX_BLAS] call XERBLA(3f) with an array of characters instead of a string
Synopsis
Definition
Options
Authors
See Also
subroutine xerbla_array(srname_array, srname_len, info)
.. Scalar Arguments .. integer srname_len, info .. .. Array Arguments .. character(*) srname_array(srname_len) ..
XERBLA_ARRAY assists other languages in calling XERBLA, the LAPACK and BLAS error handler. Rather than taking a Fortran string argument as the function’s name, XERBLA_ARRAY takes an array of single characters along with the array’s length. XERBLA_ARRAY then copies up to 32 characters of that array into a Fortran string and passes that to XERBLA. If called with a non-positive SRNAME_LEN, XERBLA_ARRAY will call XERBLA with a string of all blank characters.
Say some macro or other device makes XERBLA_ARRAY available to C99 by a name lapack_xerbla and with a common Fortran calling convention. Then a C99 program could invoke XERBLA via: { int flen = strlen(__func__); lapack_xerbla(__func__, &flen, &info); }
Providing XERBLA_ARRAY is not necessary for intercepting LAPACK errors. XERBLA_ARRAY calls XERBLA.
SRNAME_ARRAY is CHARACTER(*) array, dimension (SRNAME_LEN) The name of the routine which called XERBLA_ARRAY.
SRNAME_LEN is INTEGER The length of the name in SRNAME_ARRAY.
INFO is INTEGER The position of the invalid parameter in the parameter list of the calling routine.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | xerbla_array (3m_blas) | July 20, 2023 |
zaxpy(3f) - [BLAS:COMPLEX16_BLAS_LEVEL1] ZY := ZY+ZA*ZX complex constant times a complex vector plus a complex vector.
Synopsis
Definition
Options
Authors
Further Details
See Also
subroutine zaxpy(n,za,zx,incx,zy,incy)
! .. Scalar Arguments .. complex(kind=real64),intent(in) :: za integer,intent(in) :: incx,incy,n ! .. ! .. Array Arguments .. complex(kind=real64),intent(in) :: zx(*) complex(kind=real64),intent(inout) :: zy(*) ! ..
ZAXPY constant times a vector plus a vector.
ZY := ZY+ZA*ZX
N number of elements in input vector(s) ZA On entry, ZA specifies the scalar alpha. ZX ZX is complex(kind=real64) array, dimension ( 1 + ( N - 1 )*abs( INCX ) ) INCX storage spacing between elements of ZX ZY ZY is complex(kind=real64) array, dimension ( 1 + ( N - 1 )*abs( INCY ) ) INCY storage spacing between elements of ZY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zaxpy (3m_blas) | July 20, 2023 |
zcopy(3f) - [BLAS:COMPLEX16_BLAS_LEVEL1]
Synopsis
Definition
Options
Authors
Further Details
See Also
subroutine zcopy(n,zx,incx,zy,incy)
.. Scalar Arguments .. integer,intent(in) :: incx,incy,n .. .. Array Arguments .. complex(kind=real64),intent(in) :: ZX(*) complex(kind=real64),intent(out) :: ZY(*) ..
ZCOPY copies a vector, x, to a vector, y.
N is INTEGER number of elements in input vector(s)
ZX is complex(kind=real64) array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of ZX
ZY is complex(kind=real64) array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
INCY is INTEGER storage spacing between elements of ZY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, linpack, 4/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zcopy (3m_blas) | July 20, 2023 |
zdotc(3f) - [BLAS:COMPLEX16_BLAS_LEVEL1]
Synopsis
Definition
Options
Authors
Further Details
See Also
complex(kind=real64) function zdotc(n,zx,incx,zy,incy)
.. Scalar Arguments .. integer,intent(in) :: incx,incy,n .. .. Array Arguments .. complex(kind=real64),intent(in) :: zx(*),zy(*) ..
ZDOTC forms the dot product of two complex vectors ZDOTC = X^H * Y
N is INTEGER number of elements in input vector(s)
ZX is complex(kind=real64) array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of ZX
ZY is complex(kind=real64) array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
INCY is INTEGER storage spacing between elements of ZY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zdotc (3m_blas) | July 20, 2023 |
zdotu(3f) - [BLAS:COMPLEX16_BLAS_LEVEL1]
Synopsis
Definition
Options
Authors
Further Details
See Also
complex(kind=real64) function zdotu(n,zx,incx,zy,incy)
.. Scalar Arguments .. integer,intent(in) :: incx,incy,n .. .. Array Arguments .. complex(kind=real64),intent(in) :: zx(*),zy(*) ..
ZDOTU forms the dot product of two complex vectors ZDOTU = X^T * Y
N is INTEGER number of elements in input vector(s)
ZX is complex(kind=real64) array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of ZX
ZY is complex(kind=real64) array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
INCY is INTEGER storage spacing between elements of ZY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zdotu (3m_blas) | July 20, 2023 |
zdrot(3f) - [BLAS:COMPLEX16_BLAS_LEVEL1]
Synopsis
Definition
Options
Zx
Zy
Authors
See Also
subroutine zdrot( n, zx, incx, zy, incy, c, s )
.. Scalar Arguments .. integer,intent(in) :: incx, incy, n double precision,intent(in) :: c, s .. .. Array Arguments .. complex(kind=real64),intent(inout) :: zx( * ), zy( * ) ..
Applies a plane rotation, where the cos and sin (c and s) are real and the vectors cx and cy are complex. jack dongarra, linpack, 3/11/78.
N is INTEGER On entry, N specifies the order of the vectors cx and cy. N must be at least zero.
ZX is complex(kind=real64) array, dimension at least ( 1 + ( N - 1 )*abs( INCX ) ). Before entry, the incremented array ZX must contain the n element vector cx. On exit, ZX is overwritten by the updated vector cx.
INCX is INTEGER On entry, INCX specifies the increment for the elements of ZX. INCX must not be zero.
ZY is complex(kind=real64) array, dimension at least ( 1 + ( N - 1 )*abs( INCY ) ). Before entry, the incremented array ZY must contain the n element vector cy. On exit, ZY is overwritten by the updated vector cy.
INCY is INTEGER On entry, INCY specifies the increment for the elements of ZY. INCY must not be zero.
C is DOUBLE PRECISION On entry, C specifies the cosine, cos.
S is DOUBLE PRECISION On entry, S specifies the sine, sin.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zdrot (3m_blas) | July 20, 2023 |
zdscal(3f) - [BLAS:COMPLEX16_BLAS_LEVEL1]
Synopsis
Definition
Options
Zx
Authors
Further Details
See Also
subroutine zdscal(n,da,zx,incx)
.. Scalar Arguments .. double precision,intent(in) :: da integer,intent(in) :: incx,n .. .. Array Arguments .. complex(kind=real64),intent(inout) :: zx(*) ..
ZDSCAL scales a vector by a constant.
N is INTEGER number of elements in input vector(s)
DA is DOUBLE PRECISION On entry, DA specifies the scalar alpha.
ZX is complex(kind=real64) array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of ZX
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, 3/11/78. modified 3/93 to return if incx .le. 0. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zdscal (3m_blas) | July 20, 2023 |
zgbmv(3f) - [BLAS:COMPLEX_16_BLAS_LEVEL2]
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine zgbmv(trans,m,n,kl,ku,alpha,a,lda,x,incx,beta,y,incy)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: alpha,beta integer,intent(in) :: incx,incy,kl,ku,lda,m,n character,intent(in) :: trans .. .. Array Arguments .. complex(kind=real64),intent(in) :: a(lda,*),x(*) complex(kind=real64),intent(inout) :: y(*) ..
ZGBMV performs one of the matrix-vector operations
y := alpha*A*x + beta*y, or y := alpha*A**T*x + beta*y, orwhere alpha and beta are scalars, x and y are vectors and A is an m by n band matrix, with kl sub-diagonals and ku super-diagonals.y := alpha*A**H*x + beta*y,
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ y := alpha*A*x + beta*y.TRANS = ’T’ or ’t’ y := alpha*A**T*x + beta*y.
TRANS = ’C’ or ’c’ y := alpha*A**H*x + beta*y.
M is INTEGER On entry, M specifies the number of rows of the matrix A. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix A. N must be at least zero.
KL is INTEGER On entry, KL specifies the number of sub-diagonals of the matrix A. KL must satisfy 0 .le. KL.
KU is INTEGER On entry, KU specifies the number of super-diagonals of the matrix A. KU must satisfy 0 .le. KU.
ALPHA is complex(kind=real64) On entry, ALPHA specifies the scalar alpha.
A is complex(kind=real64) array, dimension ( LDA, N ) Before entry, the leading ( kl + ku + 1 ) by n part of the array A must contain the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row ( ku + 1 ) of the array, the first super-diagonal starting at position 2 in row ku, the first sub-diagonal starting at position 1 in row ( ku + 2 ), and so on. Elements in the array A that do not correspond to elements in the band matrix (such as the top left ku by ku triangle) are not referenced. The following program segment will transfer a band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N K = KU + 1 - J DO 10, I = MAX( 1, J - KU ), MIN( M, J + KL ) A( K + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least ( kl + ku + 1 ).
X is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ) when TRANS = ’N’ or ’n’ and at least ( 1 + ( m - 1 )*abs( INCX ) ) otherwise. Before entry, the incremented array X must contain the vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is complex(kind=real64) On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input.
Y is complex(kind=real64) array, dimension at least ( 1 + ( m - 1 )*abs( INCY ) ) when TRANS = ’N’ or ’n’ and at least ( 1 + ( n - 1 )*abs( INCY ) ) otherwise. Before entry, the incremented array Y must contain the vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zgbmv (3m_blas) | July 20, 2023 |
zgemm(3f) - [BLAS:COMPLEX16_BLAS_LEVEL3]
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine zgemm(transa,transb,m,n,k,alpha,a,lda,b,ldb,beta,c,ldc)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: alpha,beta integer,intent(in) :: k,lda,ldb,ldc,m,n character,intent(in) :: transa,transb .. .. Array Arguments .. complex(kind=real64),intent(in) :: a(lda,*),b(ldb,*) complex(kind=real64),intent(inout) :: c(ldc,*) ..
ZGEMM performs one of the matrix-matrix operations
C := alpha*op( A )*op( B ) + beta*C,where op( X ) is one of
op( X ) = X or op( X ) = X**T or op( X ) = X**H,alpha and beta are scalars, and A, B and C are matrices, with op( A ) an m by k matrix, op( B ) a k by n matrix and C an m by n matrix.
TRANSA is CHARACTER*1 On entry, TRANSA specifies the form of op( A ) to be used in the matrix multiplication as follows:
TRANSA = ’N’ or ’n’, op( A ) = A.TRANSA = ’T’ or ’t’, op( A ) = A**T.
TRANSA = ’C’ or ’c’, op( A ) = A**H.
TRANSB is CHARACTER*1 On entry, TRANSB specifies the form of op( B ) to be used in the matrix multiplication as follows:
TRANSB = ’N’ or ’n’, op( B ) = B.TRANSB = ’T’ or ’t’, op( B ) = B**T.
TRANSB = ’C’ or ’c’, op( B ) = B**H.
M is INTEGER On entry, M specifies the number of rows of the matrix op( A ) and of the matrix C. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix op( B ) and the number of columns of the matrix C. N must be at least zero.
K is INTEGER On entry, K specifies the number of columns of the matrix op( A ) and the number of rows of the matrix op( B ). K must be at least zero.
ALPHA is complex(kind=real64) On entry, ALPHA specifies the scalar alpha.
A is complex(kind=real64) array, dimension ( LDA, ka ), where ka is k when TRANSA = ’N’ or ’n’, and is m otherwise. Before entry with TRANSA = ’N’ or ’n’, the leading m by k part of the array A must contain the matrix A, otherwise the leading k by m part of the array A must contain the matrix A.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANSA = ’N’ or ’n’ then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, k ).
B is complex(kind=real64) array, dimension ( LDB, kb ), where kb is n when TRANSB = ’N’ or ’n’, and is k otherwise. Before entry with TRANSB = ’N’ or ’n’, the leading k by n part of the array B must contain the matrix B, otherwise the leading n by k part of the array B must contain the matrix B.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. When TRANSB = ’N’ or ’n’ then LDB must be at least max( 1, k ), otherwise LDB must be at least max( 1, n ).
BETA is complex(kind=real64) On entry, BETA specifies the scalar beta. When BETA is supplied as zero then C need not be set on input.
C is complex(kind=real64) array, dimension ( LDC, N ) Before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry. On exit, the array C is overwritten by the m by n matrix ( alpha*op( A )*op( B ) + beta*C ).
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zgemm (3m_blas) | July 20, 2023 |
zgemv(3f) - [BLAS:COMPLEX_16_BLAS_LEVEL2]
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine zgemv(trans,m,n,alpha,a,lda,x,incx,beta,y,incy)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: alpha,beta integer,intent(in) :: incx,incy,lda,m,n character,intent(in) :: trans .. .. Array Arguments .. complex(kind=real64),intent(in) :: a(lda,*),x(*) complex(kind=real64),intent(inout) :: y(*) ..
ZGEMV performs one of the matrix-vector operations
y := alpha*A*x + beta*y, or y := alpha*A**T*x + beta*y, orwhere alpha and beta are scalars, x and y are vectors and A is an m by n matrix.y := alpha*A**H*x + beta*y,
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ y := alpha*A*x + beta*y.TRANS = ’T’ or ’t’ y := alpha*A**T*x + beta*y.
TRANS = ’C’ or ’c’ y := alpha*A**H*x + beta*y.
M is INTEGER On entry, M specifies the number of rows of the matrix A. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix A. N must be at least zero.
ALPHA is complex(kind=real64) On entry, ALPHA specifies the scalar alpha.
A is complex(kind=real64) array, dimension ( LDA, N ) Before entry, the leading m by n part of the array A must contain the matrix of coefficients.
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, m ).
X is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ) when TRANS = ’N’ or ’n’ and at least ( 1 + ( m - 1 )*abs( INCX ) ) otherwise. Before entry, the incremented array X must contain the vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is complex(kind=real64) On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input.
Y is complex(kind=real64) array, dimension at least ( 1 + ( m - 1 )*abs( INCY ) ) when TRANS = ’N’ or ’n’ and at least ( 1 + ( n - 1 )*abs( INCY ) ) otherwise. Before entry with BETA non-zero, the incremented array Y must contain the vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zgemv (3m_blas) | July 20, 2023 |
zgerc(3f) - [BLAS:COMPLEX_16_BLAS_LEVEL2]
Synopsis
Definition
Options
A
Authors
Further Details
See Also
subroutine zgerc(m,n,alpha,x,incx,y,incy,a,lda)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: alpha integer,intent(in) :: incx,incy,lda,m,n .. .. Array Arguments .. complex(kind=real64),intent(in) :: x(*),y(*) complex(kind=real64),intent(inout) :: a(lda,*) ..
ZGERC performs the rank 1 operation
A := alpha*x*y**H + A,where alpha is a scalar, x is an m element vector, y is an n element vector and A is an m by n matrix.
M is INTEGER On entry, M specifies the number of rows of the matrix A. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix A. N must be at least zero.
ALPHA is complex(kind=real64) On entry, ALPHA specifies the scalar alpha.
X is complex(kind=real64) array, dimension at least ( 1 + ( m - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the m element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
Y is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
A is complex(kind=real64) array, dimension ( LDA, N ) Before entry, the leading m by n part of the array A must contain the matrix of coefficients. On exit, A is overwritten by the updated matrix.
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, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zgerc (3m_blas) | July 20, 2023 |
zgeru(3f) - [BLAS:COMPLEX_16_BLAS_LEVEL2]
Synopsis
Definition
Options
Authors
Further Details
See Also
subroutine zgeru(m,n,alpha,x,incx,y,incy,a,lda)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: alpha integer,intent(in) :: incx,incy,lda,m,n .. .. Array Arguments .. complex(kind=real64),intent(in) :: x(*),y(*) complex(kind=real64),intent(inout) :: a(lda,*) ..
ZGERU performs the rank 1 operation
A := alpha*x*y**T + A,where alpha is a scalar, x is an m element vector, y is an n element vector and A is an m by n matrix.
M On entry, M specifies the number of rows of the matrix A. M must be at least zero. N On entry, N specifies the number of columns of the matrix A. N must be at least zero. ALPHA On entry, ALPHA specifies the scalar alpha. X array, dimension at least ( 1 + ( m - 1 )*abs( INCX ) ).Before entry, the incremented array X must contain the m element vector x.
INCX On entry, INCX specifies the increment for the elements of X. INCX must not be zero. Y array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ).Before entry, the incremented array Y must contain the n element vector y.
INCY On entry, INCY specifies the increment for the elements of Y. INCY must not be zero. A array, dimension ( LDA, N ) Before entry, the leading m by n part of the array A must contain the matrix of coefficients. On exit, A is overwritten by the updated matrix. LDA On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zgeru (3m_blas) | July 20, 2023 |
zhbmv(3f) - [BLAS:COMPLEX_16_BLAS_LEVEL2]
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine zhbmv(uplo,n,k,alpha,a,lda,x,incx,beta,y,incy)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: alpha,beta integer,intent(in) :: incx,incy,k,lda,n character,intent(in) :: uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: a(lda,*),x(*) complex(kind=real64),intent(inout) :: y(*) ..
ZHBMV performs the matrix-vector operation
y := alpha*A*x + beta*y,where alpha and beta are scalars, x and y are n element vectors and A is an n by n hermitian band matrix, with k super-diagonals.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the band matrix A is being supplied as follows:
UPLO = ’U’ or ’u’ The upper triangular part of A is being supplied.UPLO = ’L’ or ’l’ The lower triangular part of A is being supplied.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
K is INTEGER On entry, K specifies the number of super-diagonals of the matrix A. K must satisfy 0 .le. K.
ALPHA is complex(kind=real64) On entry, ALPHA specifies the scalar alpha.
A is complex(kind=real64) array, dimension ( LDA, N ) Before entry with UPLO = ’U’ or ’u’, the leading ( k + 1 ) by n part of the array A must contain the upper triangular band part of the hermitian matrix, supplied column by column, with the leading diagonal of the matrix in row ( k + 1 ) of the array, the first super-diagonal starting at position 2 in row k, and so on. The top left k by k triangle of the array A is not referenced. The following program segment will transfer the upper triangular part of a hermitian band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = K + 1 - J DO 10, I = MAX( 1, J - K ), J A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Before entry with UPLO = ’L’ or ’l’, the leading ( k + 1 ) by n part of the array A must contain the lower triangular band part of the hermitian matrix, supplied column by column, with the leading diagonal of the matrix in row 1 of the array, the first sub-diagonal starting at position 1 in row 2, and so on. The bottom right k by k triangle of the array A is not referenced. The following program segment will transfer the lower triangular part of a hermitian band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = 1 - J DO 10, I = J, MIN( N, J + K ) A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Note that the imaginary parts of the diagonal elements need not be set and are assumed to be zero.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least ( k + 1 ).
X is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is complex(kind=real64) On entry, BETA specifies the scalar beta.
Y is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zhbmv (3m_blas) | July 20, 2023 |
zhemm(3f) - [BLAS:COMPLEX16_BLAS_LEVEL3]
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine zhemm(side,uplo,m,n,alpha,a,lda,b,ldb,beta,c,ldc)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: alpha,beta integer,intent(in) :: lda,ldb,ldc,m,n character,intent(in) :: side,uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: a(lda,*),b(ldb,*) complex(kind=real64),intent(inout) :: c(ldc,*) ..
ZHEMM performs one of the matrix-matrix operations
C := alpha*A*B + beta*C,or
C := alpha*B*A + beta*C,where alpha and beta are scalars, A is an hermitian matrix and B and C are m by n matrices.
SIDE is CHARACTER*1 On entry, SIDE specifies whether the hermitian matrix A appears on the left or right in the operation as follows:
SIDE = ’L’ or ’l’ C := alpha*A*B + beta*C,SIDE = ’R’ or ’r’ C := alpha*B*A + beta*C,
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the hermitian matrix A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of the hermitian matrix is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of the hermitian matrix is to be referenced.
M is INTEGER On entry, M specifies the number of rows of the matrix C. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix C. N must be at least zero.
ALPHA is complex(kind=real64) On entry, ALPHA specifies the scalar alpha.
A is complex(kind=real64) array, dimension ( LDA, ka ), where ka is m when SIDE = ’L’ or ’l’ and is n otherwise. Before entry with SIDE = ’L’ or ’l’, the m by m part of the array A must contain the hermitian matrix, such that when UPLO = ’U’ or ’u’, the leading m by m upper triangular part of the array A must contain the upper triangular part of the hermitian matrix and the strictly lower triangular part of A is not referenced, and when UPLO = ’L’ or ’l’, the leading m by m lower triangular part of the array A must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of A is not referenced. Before entry with SIDE = ’R’ or ’r’, the n by n part of the array A must contain the hermitian matrix, such that when UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array A must contain the upper triangular part of the hermitian matrix and the strictly lower triangular part of A is not referenced, and when UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array A must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of A is not referenced. Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When SIDE = ’L’ or ’l’ then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, n ).
B is complex(kind=real64) array, dimension ( LDB, N ) Before entry, the leading m by n part of the array B must contain the matrix B.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
BETA is complex(kind=real64) On entry, BETA specifies the scalar beta. When BETA is supplied as zero then C need not be set on input.
C is complex(kind=real64) array, dimension ( LDC, N ) Before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry. On exit, the array C is overwritten by the m by n updated matrix.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zhemm (3m_blas) | July 20, 2023 |
zhemv(3f) - [BLAS:COMPLEX_16_BLAS_LEVEL2]
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine zhemv(uplo,n,alpha,a,lda,x,incx,beta,y,incy)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: alpha,beta integer,intent(in) :: incx,incy,lda,n character,intent(in) :: uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: a(lda,*),x(*) complex(kind=real64),intent(inout) :: y(*) ..
ZHEMV performs the matrix-vector operation y := alpha*A*x + beta*y,where alpha and beta are scalars, x and y are n element vectors and A is an n by n hermitian matrix.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of A is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of A is to be referenced.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is complex(kind=real64) On entry, ALPHA specifies the scalar alpha.
A is complex(kind=real64) 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 part of the hermitian 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 part of the hermitian matrix and the strictly upper triangular part of A is not referenced. Note that the imaginary parts of the diagonal elements need not be set and are assumed to be zero.
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 ).
X is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is complex(kind=real64) On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input.
Y is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zhemv (3m_blas) | July 20, 2023 |
zher(3f) - [BLAS:COMPLEX_16_BLAS_LEVEL2]
Synopsis
Definition
Options
A
Authors
Further Details
See Also
subroutine zher(uplo,n,alpha,x,incx,a,lda)
.. Scalar Arguments .. double precision,intent(in) :: alpha integer ,intent(in) :: incx,lda,n character,intent(in) :: uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: x(*) complex(kind=real64),intent(inout) :: a(lda,*) ..
ZHER performs the hermitian rank 1 operation
A := alpha*x*x**H + A,where alpha is a real scalar, x is an n element vector and A is an n by n hermitian matrix.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of A is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of A is to be referenced.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha.
X is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
A is complex(kind=real64) 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 part of the hermitian matrix and the strictly lower triangular part of A is not referenced. On exit, the upper triangular part of the array A is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array A must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of A is not referenced. On exit, the lower triangular part of the array A is overwritten by the lower triangular part of the updated matrix. Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero, and on exit they are set to zero.
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 ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zher (3m_blas) | July 20, 2023 |
zher2(3f) - [BLAS:COMPLEX_16_BLAS_LEVEL2]
Synopsis
Definition
Options
A
Authors
Further Details
See Also
subroutine zher2(uplo,n,alpha,x,incx,y,incy,a,lda)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: alpha integer,intent(in) :: incx,incy,lda,n character,intent(in) :: uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: x(*),y(*) complex(kind=real64),intent(inout) :: a(lda,*) ..
ZHER2 performs the hermitian rank 2 operation
A := alpha*x*y**H + conjg( alpha )*y*x**H + A,where alpha is a scalar, x and y are n element vectors and A is an n by n hermitian matrix.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of A is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of A is to be referenced.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is complex(kind=real64) On entry, ALPHA specifies the scalar alpha.
X is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
Y is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
A is complex(kind=real64) 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 part of the hermitian matrix and the strictly lower triangular part of A is not referenced. On exit, the upper triangular part of the array A is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array A must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of A is not referenced. On exit, the lower triangular part of the array A is overwritten by the lower triangular part of the updated matrix. Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero, and on exit they are set to zero.
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 ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zher2 (3m_blas) | July 20, 2023 |
zher2k(3f) - [BLAS:COMPLEX16_BLAS_LEVEL3]
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine zher2k(uplo,trans,n,k,alpha,a,lda,b,ldb,beta,c,ldc)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: alpha double precision,intent(in) :: beta integer ,intent(in) ::k,lda,ldb,ldc,n character,intent(in) :: trans,uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: a(lda,*),b(ldb,*) complex(kind=real64),intent(inout) :: c(ldc,*) ..
ZHER2K performs one of the hermitian rank 2k operations
C := alpha*A*B**H + conjg( alpha )*B*A**H + beta*C,or
C := alpha*A**H*B + conjg( alpha )*B**H*A + beta*C,where alpha and beta are scalars with beta real, C is an n by n hermitian matrix and A and B are n by k matrices in the first case and k by n matrices in the second case.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array C is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of C is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of C is to be referenced.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ C := alpha*A*B**H + conjg( alpha )*B*A**H + beta*C.TRANS = ’C’ or ’c’ C := alpha*A**H*B + conjg( alpha )*B**H*A + beta*C.
N is INTEGER On entry, N specifies the order of the matrix C. N must be at least zero.
K is INTEGER On entry with TRANS = ’N’ or ’n’, K specifies the number of columns of the matrices A and B, and on entry with TRANS = ’C’ or ’c’, K specifies the number of rows of the matrices A and B. K must be at least zero.
ALPHA is complex(kind=real64) . On entry, ALPHA specifies the scalar alpha.
A is complex(kind=real64) array, dimension ( LDA, ka ), where ka is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array A must contain the matrix A, otherwise the leading k by n part of the array A must contain the matrix A.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDA must be at least max( 1, n ), otherwise LDA must be at least max( 1, k ).
B is complex(kind=real64) array, dimension ( LDB, kb ), where kb is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array B must contain the matrix B, otherwise the leading k by n part of the array B must contain the matrix B.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDB must be at least max( 1, n ), otherwise LDB must be at least max( 1, k ). Unchanged on exit.
BETA is DOUBLE PRECISION . On entry, BETA specifies the scalar beta.
C is complex(kind=real64) array, dimension ( LDC, N ) Before entry with UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array C must contain the upper triangular part of the hermitian matrix and the strictly lower triangular part of C is not referenced. On exit, the upper triangular part of the array C is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array C must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of C is not referenced. On exit, the lower triangular part of the array C is overwritten by the lower triangular part of the updated matrix. Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero, and on exit they are set to zero.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, n ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
-- Modified 8-Nov-93 to set C(J,J) to DBLE( C(J,J) ) when BETA = 1. Ed Anderson, Cray Research Inc.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zher2k (3m_blas) | July 20, 2023 |
zherk(3f) - [BLAS:COMPLEX16_BLAS_LEVEL3]
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine zherk(uplo,trans,n,k,alpha,a,lda,beta,c,ldc)
.. Scalar Arguments .. double precision,intent(in) :: alpha,beta integer,intent(in) :: k,lda,ldc,n character,intent(in) :: trans,uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: a(lda,*) complex(kind=real64),intent(inout) :: c(ldc,*) ..
ZHERK performs one of the hermitian rank k operations
C := alpha*A*A**H + beta*C,or
C := alpha*A**H*A + beta*C,where alpha and beta are real scalars, C is an n by n hermitian matrix and A is an n by k matrix in the first case and a k by n matrix in the second case.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array C is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of C is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of C is to be referenced.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ C := alpha*A*A**H + beta*C.TRANS = ’C’ or ’c’ C := alpha*A**H*A + beta*C.
N is INTEGER On entry, N specifies the order of the matrix C. N must be at least zero.
K is INTEGER On entry with TRANS = ’N’ or ’n’, K specifies the number of columns of the matrix A, and on entry with TRANS = ’C’ or ’c’, K specifies the number of rows of the matrix A. K must be at least zero.
ALPHA is DOUBLE PRECISION . On entry, ALPHA specifies the scalar alpha.
A is complex(kind=real64) array, dimension ( LDA, ka ), where ka is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array A must contain the matrix A, otherwise the leading k by n part of the array A must contain the matrix A.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDA must be at least max( 1, n ), otherwise LDA must be at least max( 1, k ).
BETA is DOUBLE PRECISION. On entry, BETA specifies the scalar beta.
C is complex(kind=real64) array, dimension ( LDC, N ) Before entry with UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array C must contain the upper triangular part of the hermitian matrix and the strictly lower triangular part of C is not referenced. On exit, the upper triangular part of the array C is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array C must contain the lower triangular part of the hermitian matrix and the strictly upper triangular part of C is not referenced. On exit, the lower triangular part of the array C is overwritten by the lower triangular part of the updated matrix. Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero, and on exit they are set to zero.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, n ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
-- Modified 8-Nov-93 to set C(J,J) to DBLE( C(J,J) ) when BETA = 1. Ed Anderson, Cray Research Inc.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zherk (3m_blas) | July 20, 2023 |
zhpmv(3f) - [BLAS:COMPLEX_16_BLAS_LEVEL2]
Synopsis
Definition
Options
Y
Authors
Further Details
See Also
subroutine zhpmv(uplo,n,alpha,ap,x,incx,beta,y,incy)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: alpha,beta integer,intent(in) :: incx,incy,n character,intent(in) :: uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: ap(*),x(*) complex(kind=real64),intent(inout) :: y(*) ..
ZHPMV performs the matrix-vector operation
y := alpha*A*x + beta*y,where alpha and beta are scalars, x and y are n element vectors and A is an n by n hermitian matrix, supplied in packed form.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the matrix A is supplied in the packed array AP as follows:
UPLO = ’U’ or ’u’ The upper triangular part of A is supplied in AP.UPLO = ’L’ or ’l’ The lower triangular part of A is supplied in AP.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is complex(kind=real64) On entry, ALPHA specifies the scalar alpha.
AP is complex(kind=real64) array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular part of the hermitian matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular part of the hermitian matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. Note that the imaginary parts of the diagonal elements need not be set and are assumed to be zero.
X is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
BETA is complex(kind=real64) On entry, BETA specifies the scalar beta. When BETA is supplied as zero then Y need not be set on input.
Y is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y. On exit, Y is overwritten by the updated vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zhpmv (3m_blas) | July 20, 2023 |
zhpr(3f) - [BLAS:COMPLEX_16_BLAS_LEVEL2]
Synopsis
Definition
Options
Ap
Authors
Further Details
See Also
subroutine zhpr(uplo,n,alpha,x,incx,ap)
.. Scalar Arguments .. double precision ,intent(in) :: alpha integer ,intent(in) :: incx,n character,intent(in) :: uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: x(*) complex(kind=real64),intent(inout) :: ap(*) ..
ZHPR performs the hermitian rank 1 operation
A := alpha*x*x**H + A,where alpha is a real scalar, x is an n element vector and A is an n by n hermitian matrix, supplied in packed form.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the matrix A is supplied in the packed array AP as follows:
UPLO = ’U’ or ’u’ The upper triangular part of A is supplied in AP.UPLO = ’L’ or ’l’ The lower triangular part of A is supplied in AP.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is DOUBLE PRECISION. On entry, ALPHA specifies the scalar alpha.
X is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
AP is complex(kind=real64) array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular part of the hermitian matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. On exit, the array AP is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular part of the hermitian matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. On exit, the array AP is overwritten by the lower triangular part of the updated matrix. Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero, and on exit they are set to zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zhpr (3m_blas) | July 20, 2023 |
zhpr2(3f) - [BLAS:COMPLEX_16_BLAS_LEVEL2]
Synopsis
Definition
Options
Ap
Authors
Further Details
See Also
subroutine zhpr2(uplo,n,alpha,x,incx,y,incy,ap)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: alpha integer,intent(in) :: incx,incy,n character,intent(in) :: uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: x(*),y(*) complex(kind=real64),intent(inout) :: ap(*) ..
ZHPR2 performs the hermitian rank 2 operation
A := alpha*x*y**H + conjg( alpha )*y*x**H + A,where alpha is a scalar, x and y are n element vectors and A is an n by n hermitian matrix, supplied in packed form.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the matrix A is supplied in the packed array AP as follows:
UPLO = ’U’ or ’u’ The upper triangular part of A is supplied in AP.UPLO = ’L’ or ’l’ The lower triangular part of A is supplied in AP.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
ALPHA is complex(kind=real64) On entry, ALPHA specifies the scalar alpha.
X is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
Y is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCY ) ). Before entry, the incremented array Y must contain the n element vector y.
INCY is INTEGER On entry, INCY specifies the increment for the elements of Y. INCY must not be zero.
AP is complex(kind=real64) array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular part of the hermitian matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. On exit, the array AP is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular part of the hermitian matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. On exit, the array AP is overwritten by the lower triangular part of the updated matrix. Note that the imaginary parts of the diagonal elements need not be set, they are assumed to be zero, and on exit they are set to zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zhpr2 (3m_blas) | July 20, 2023 |
zrotg(3f) - [BLAS:COMPLEX16_BLAS_LEVEL1] constructs a plane rotation
Synopsis
Definition
Options
A
Authors
Further Details
See Also
subroutine zrotg( a, b, c, s )
.. Scalar Arguments .. real(wp),intent(out) :: c complex(wp),intent(in) :: b complex(wp),intent(out) :: s complex(wp),intent(inout) :: a ..
ZROTG constructs a plane rotation
[ c s ] [ a ] = [ r ] [ -conjg(s) c ] [ b ] [ 0 ]where c is real, s ic complex, and c**2 + conjg(s)*s = 1.
The computation uses the formulas
|x| = sqrt( Re(x)**2 + Im(x)**2 ) sgn(x) = x / |x| if x /= 0 = 1 if x = 0 c = |a| / sqrt(|a|**2 + |b|**2) s = sgn(a) * conjg(b) / sqrt(|a|**2 + |b|**2)When a and b are real and r /= 0, the formulas simplify to
r = sgn(a)*sqrt(|a|**2 + |b|**2) c = a / r s = b / rthe same as in ZROTG when |a| > |b|. When |b| >= |a|, the sign of c and s will be different from those computed by ZROTG if the signs of a and b are not the same.
A is DOUBLE COMPLEX On entry, the scalar a. On exit, the scalar r.
B is DOUBLE COMPLEX The scalar b.
C is DOUBLE PRECISION The scalar c.
S is DOUBLE PRECISION The scalar s.
o Edward Anderson, Lockheed Martin \par Contributors:Weslley Pereira, University of Colorado Denver, USA
Anderson E. (2017) Algorithm 978: Safe Scaling in the Level 1 BLAS ACM Trans Math Softw 44:1--28 https://doi.org/10.1145/3061665
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zrotg (3m_blas) | July 20, 2023 |
zscal(3f) - [BLAS:COMPLEX16_BLAS_LEVEL1]
Synopsis
Definition
Options
Zx
Authors
Further Details
See Also
subroutine zscal(n,za,zx,incx)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: za integer,intent(in) :: incx,n .. .. Array Arguments .. complex(kind=real64),intent(inout) :: zx(*) ..
ZSCAL scales a vector by a constant.
N is INTEGER number of elements in input vector(s)
ZA is complex(kind=real64) On entry, ZA specifies the scalar alpha.
ZX is complex(kind=real64) array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of ZX
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, 3/11/78. modified 3/93 to return if incx .le. 0. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zscal (3m_blas) | July 20, 2023 |
zswap(3f) - [BLAS:COMPLEX16_BLAS_LEVEL1]
Synopsis
Definition
Options
Zx
Zy
Authors
Further Details
See Also
subroutine zswap(n,zx,incx,zy,incy)
.. Scalar Arguments .. integer,intent(in) :: incx,incy,n .. .. Array Arguments .. complex(kind=real64),intent(inout) :: zx(*),zy(*) ..
ZSWAP interchanges two vectors.
N is INTEGER number of elements in input vector(s)
ZX is complex(kind=real64) array, dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX is INTEGER storage spacing between elements of ZX
ZY is complex(kind=real64) array, dimension ( 1 + ( N - 1 )*abs( INCY ) )
INCY is INTEGER storage spacing between elements of ZY
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:November 2017
jack dongarra, 3/11/78. modified 12/3/93, array(1) declarations changed to array(*)
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zswap (3m_blas) | July 20, 2023 |
zsymm(3f) - [BLAS:COMPLEX16_BLAS_LEVEL3]
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine zsymm(side,uplo,m,n,alpha,a,lda,b,ldb,beta,c,ldc)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: alpha,beta integer,intent(in) :: lda,ldb,ldc,m,n character,intent(in) :: side,uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: a(lda,*),b(ldb,*) complex(kind=real64),intent(inout) :: c(ldc,*) ..
ZSYMM performs one of the matrix-matrix operations
C := alpha*A*B + beta*C,or
C := alpha*B*A + beta*C,where alpha and beta are scalars, A is a symmetric matrix and B and C are m by n matrices.
SIDE is CHARACTER*1 On entry, SIDE specifies whether the symmetric matrix A appears on the left or right in the operation as follows:
SIDE = ’L’ or ’l’ C := alpha*A*B + beta*C,SIDE = ’R’ or ’r’ C := alpha*B*A + beta*C,
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the symmetric matrix A is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of the symmetric matrix is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of the symmetric matrix is to be referenced.
M is INTEGER On entry, M specifies the number of rows of the matrix C. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of the matrix C. N must be at least zero.
ALPHA is complex(kind=real64) On entry, ALPHA specifies the scalar alpha.
A is complex(kind=real64) array, dimension ( LDA, ka ), where ka is m when SIDE = ’L’ or ’l’ and is n otherwise. Before entry with SIDE = ’L’ or ’l’, the m by m part of the array A must contain the symmetric matrix, such that when UPLO = ’U’ or ’u’, the leading m by m upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = ’L’ or ’l’, the leading m by m lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced. Before entry with SIDE = ’R’ or ’r’, the n by n part of the array A must contain the symmetric matrix, such that when UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array A must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of A is not referenced, and when UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array A must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of A is not referenced.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When SIDE = ’L’ or ’l’ then LDA must be at least max( 1, m ), otherwise LDA must be at least max( 1, n ).
B is complex(kind=real64) array, dimension ( LDB, N ) Before entry, the leading m by n part of the array B must contain the matrix B.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
BETA is complex(kind=real64) On entry, BETA specifies the scalar beta. When BETA is supplied as zero then C need not be set on input.
C is complex(kind=real64) array, dimension ( LDC, N ) Before entry, the leading m by n part of the array C must contain the matrix C, except when beta is zero, in which case C need not be set on entry. On exit, the array C is overwritten by the m by n updated matrix.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zsymm (3m_blas) | July 20, 2023 |
zsyr2k(3f) - [BLAS:COMPLEX16_BLAS_LEVEL3]
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine zsyr2k(uplo,trans,n,k,alpha,a,lda,b,ldb,beta,c,ldc)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: alpha,beta integer,intent(in) :: k,lda,ldb,ldc,n character,intent(in) :: trans,uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: a(lda,*),b(ldb,*) complex(kind=real64),intent(inout) :: c(ldc,*) ..
ZSYR2K performs one of the symmetric rank 2k operations
C := alpha*A*B**T + alpha*B*A**T + beta*C,or
C := alpha*A**T*B + alpha*B**T*A + beta*C,where alpha and beta are scalars, C is an n by n symmetric matrix and A and B are n by k matrices in the first case and k by n matrices in the second case.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array C is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of C is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of C is to be referenced.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ C := alpha*A*B**T + alpha*B*A**T + beta*C.TRANS = ’T’ or ’t’ C := alpha*A**T*B + alpha*B**T*A + beta*C.
N is INTEGER On entry, N specifies the order of the matrix C. N must be at least zero.
K is INTEGER On entry with TRANS = ’N’ or ’n’, K specifies the number of columns of the matrices A and B, and on entry with TRANS = ’T’ or ’t’, K specifies the number of rows of the matrices A and B. K must be at least zero.
ALPHA is complex(kind=real64) On entry, ALPHA specifies the scalar alpha.
A is complex(kind=real64) array, dimension ( LDA, ka ), where ka is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array A must contain the matrix A, otherwise the leading k by n part of the array A must contain the matrix A.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDA must be at least max( 1, n ), otherwise LDA must be at least max( 1, k ).
B is complex(kind=real64) array, dimension ( LDB, kb ), where kb is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array B must contain the matrix B, otherwise the leading k by n part of the array B must contain the matrix B.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDB must be at least max( 1, n ), otherwise LDB must be at least max( 1, k ).
BETA is complex(kind=real64) On entry, BETA specifies the scalar beta.
C is complex(kind=real64) array, dimension ( LDC, N ) Before entry with UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array C must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of C is not referenced. On exit, the upper triangular part of the array C is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array C must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of C is not referenced. On exit, the lower triangular part of the array C is overwritten by the lower triangular part of the updated matrix.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, n ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zsyr2k (3m_blas) | July 20, 2023 |
zsyrk(3f) - [BLAS:COMPLEX16_BLAS_LEVEL3]
Synopsis
Definition
Options
C
Authors
Further Details
See Also
subroutine zsyrk(uplo,trans,n,k,alpha,a,lda,beta,c,ldc)
.. Scalar Arguments .. complex(kind=real64),intent(inout) :: alpha,beta integer,intent(in) :: k,lda,ldc,n character,intent(in) :: trans,uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: a(lda,*) complex(kind=real64),intent(inout) :: c(ldc,*) ..
ZSYRK performs one of the symmetric rank k operations
C := alpha*A*A**T + beta*C,or
C := alpha*A**T*A + beta*C,where alpha and beta are scalars, C is an n by n symmetric matrix and A is an n by k matrix in the first case and a k by n matrix in the second case.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the upper or lower triangular part of the array C is to be referenced as follows:
UPLO = ’U’ or ’u’ Only the upper triangular part of C is to be referenced.UPLO = ’L’ or ’l’ Only the lower triangular part of C is to be referenced.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ C := alpha*A*A**T + beta*C.TRANS = ’T’ or ’t’ C := alpha*A**T*A + beta*C.
N is INTEGER On entry, N specifies the order of the matrix C. N must be at least zero.
K is INTEGER On entry with TRANS = ’N’ or ’n’, K specifies the number of columns of the matrix A, and on entry with TRANS = ’T’ or ’t’, K specifies the number of rows of the matrix A. K must be at least zero.
ALPHA is complex(kind=real64) On entry, ALPHA specifies the scalar alpha.
A is complex(kind=real64) array, dimension ( LDA, ka ), where ka is k when TRANS = ’N’ or ’n’, and is n otherwise. Before entry with TRANS = ’N’ or ’n’, the leading n by k part of the array A must contain the matrix A, otherwise the leading k by n part of the array A must contain the matrix A.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When TRANS = ’N’ or ’n’ then LDA must be at least max( 1, n ), otherwise LDA must be at least max( 1, k ).
BETA is complex(kind=real64) On entry, BETA specifies the scalar beta.
C is complex(kind=real64) array, dimension ( LDC, N ) Before entry with UPLO = ’U’ or ’u’, the leading n by n upper triangular part of the array C must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of C is not referenced. On exit, the upper triangular part of the array C is overwritten by the upper triangular part of the updated matrix. Before entry with UPLO = ’L’ or ’l’, the leading n by n lower triangular part of the array C must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of C is not referenced. On exit, the lower triangular part of the array C is overwritten by the lower triangular part of the updated matrix.
LDC is INTEGER On entry, LDC specifies the first dimension of C as declared in the calling (sub) program. LDC must be at least max( 1, n ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | zsyrk (3m_blas) | July 20, 2023 |
ztbmv(3f) - [BLAS:COMPLEX_16_BLAS_LEVEL2]
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine ztbmv(uplo,trans,diag,n,k,a,lda,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,k,lda,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: a(lda,*) complex(kind=real64),intent(inout) :: x(*) ..
ZTBMV performs one of the matrix-vector operations
x := A*x, or x := A**T*x, or x := A**H*x,where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular band matrix, with ( k + 1 ) diagonals.
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.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ x := A*x.TRANS = ’T’ or ’t’ x := A**T*x.
TRANS = ’C’ or ’c’ x := A**H*x.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
K is INTEGER On entry with UPLO = ’U’ or ’u’, K specifies the number of super-diagonals of the matrix A. On entry with UPLO = ’L’ or ’l’, K specifies the number of sub-diagonals of the matrix A. K must satisfy 0 .le. K.
A is complex(kind=real64) array, dimension ( LDA, N ). Before entry with UPLO = ’U’ or ’u’, the leading ( k + 1 ) by n part of the array A must contain the upper triangular band part of the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row ( k + 1 ) of the array, the first super-diagonal starting at position 2 in row k, and so on. The top left k by k triangle of the array A is not referenced. The following program segment will transfer an upper triangular band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = K + 1 - J DO 10, I = MAX( 1, J - K ), J A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Before entry with UPLO = ’L’ or ’l’, the leading ( k + 1 ) by n part of the array A must contain the lower triangular band part of the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row 1 of the array, the first sub-diagonal starting at position 1 in row 2, and so on. The bottom right k by k triangle of the array A is not referenced. The following program segment will transfer a lower triangular band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = 1 - J DO 10, I = J, MIN( N, J + K ) A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Note that when DIAG = ’U’ or ’u’ the elements of the array A corresponding to the diagonal elements of the matrix are not referenced, but are assumed to be unity.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least ( k + 1 ).
X is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x. On exit, X is overwritten with the transformed vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ztbmv (3m_blas) | July 20, 2023 |
ztbsv(3f) - [BLAS:COMPLEX_16_BLAS_LEVEL2]
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine ztbsv(uplo,trans,diag,n,k,a,lda,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,k,lda,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: a(lda,*) complex(kind=real64),intent(inout) :: x(*) ..
ZTBSV solves one of the systems of equations
A*x = b, or A**T*x = b, or A**H*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 band matrix, with ( k + 1 ) diagonals.
No test for singularity or near-singularity is included in this routine. Such tests must be performed before calling this routine.
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.
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**H*x = b.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
K is INTEGER On entry with UPLO = ’U’ or ’u’, K specifies the number of super-diagonals of the matrix A. On entry with UPLO = ’L’ or ’l’, K specifies the number of sub-diagonals of the matrix A. K must satisfy 0 .le. K.
A is complex(kind=real64) array, dimension ( LDA, N ) Before entry with UPLO = ’U’ or ’u’, the leading ( k + 1 ) by n part of the array A must contain the upper triangular band part of the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row ( k + 1 ) of the array, the first super-diagonal starting at position 2 in row k, and so on. The top left k by k triangle of the array A is not referenced. The following program segment will transfer an upper triangular band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = K + 1 - J DO 10, I = MAX( 1, J - K ), J A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Before entry with UPLO = ’L’ or ’l’, the leading ( k + 1 ) by n part of the array A must contain the lower triangular band part of the matrix of coefficients, supplied column by column, with the leading diagonal of the matrix in row 1 of the array, the first sub-diagonal starting at position 1 in row 2, and so on. The bottom right k by k triangle of the array A is not referenced. The following program segment will transfer a lower triangular band matrix from conventional full matrix storage to band storage:
DO 20, J = 1, N M = 1 - J DO 10, I = J, MIN( N, J + K ) A( M + I, J ) = matrix( I, J )
10 CONTINUE 20 CONTINUE Note that when DIAG = ’U’ or ’u’ the elements of the array A corresponding to the diagonal elements of the matrix are not referenced, but are assumed to be unity.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. LDA must be at least ( k + 1 ).
X is complex(kind=real64) 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.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ztbsv (3m_blas) | July 20, 2023 |
ztpmv(3f) - [BLAS:COMPLEX_16_BLAS_LEVEL2]
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine ztpmv(uplo,trans,diag,n,ap,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: ap(*) complex(kind=real64),intent(inout) :: x(*) ..
ZTPMV performs one of the matrix-vector operations
x := A*x, or x := A**T*x, or x := A**H*x,where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix, supplied in packed form.
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.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ x := A*x.TRANS = ’T’ or ’t’ x := A**T*x.
TRANS = ’C’ or ’c’ x := A**H*x.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
AP is complex(kind=real64) array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. Note that when DIAG = ’U’ or ’u’, the diagonal elements of A are not referenced, but are assumed to be unity.
X is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x. On exit, X is overwritten with the transformed vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ztpmv (3m_blas) | July 20, 2023 |
ztpsv(3f) - [BLAS:COMPLEX_16_BLAS_LEVEL2]
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine ztpsv(uplo,trans,diag,n,ap,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: ap(*) complex(kind=real64),intent(inout) :: x(*) ..
ZTPSV solves one of the systems of equations
A*x = b, or A**T*x = b, or A**H*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, supplied in packed form.
No test for singularity or near-singularity is included in this routine. Such tests must be performed before calling this routine.
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.
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**H*x = b.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
AP is complex(kind=real64) array, dimension at least ( ( n*( n + 1 ) )/2 ). Before entry with UPLO = ’U’ or ’u’, the array AP must contain the upper triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 1, 2 ) and a( 2, 2 ) respectively, and so on. Before entry with UPLO = ’L’ or ’l’, the array AP must contain the lower triangular matrix packed sequentially, column by column, so that AP( 1 ) contains a( 1, 1 ), AP( 2 ) and AP( 3 ) contain a( 2, 1 ) and a( 3, 1 ) respectively, and so on. Note that when DIAG = ’U’ or ’u’, the diagonal elements of A are not referenced, but are assumed to be unity.
X is complex(kind=real64) 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.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ztpsv (3m_blas) | July 20, 2023 |
ztrmm(3f) - [BLAS:COMPLEX16_BLAS_LEVEL3]
Synopsis
Definition
Options
B
Authors
Further Details
See Also
subroutine ztrmm(side,uplo,transa,diag,m,n,alpha,a,lda,b,ldb)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: alpha integer,intent(in) :: lda,ldb,m,n character,intent(in) :: diag,side,transa,uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: a(lda,*) complex(kind=real64),intent(inout) :: b(ldb,*) ..
ZTRMM performs one of the matrix-matrix operations
B := alpha*op( A )*B, or B := alpha*B*op( A )where alpha is a scalar, B is an m by n matrix, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of
op( A ) = A or op( A ) = A**T or op( A ) = A**H.
SIDE is CHARACTER*1 On entry, SIDE specifies whether op( A ) multiplies B from the left or right as follows:
SIDE = ’L’ or ’l’ B := alpha*op( A )*B.SIDE = ’R’ or ’r’ B := alpha*B*op( A ).
UPLO is CHARACTER*1 On entry, UPLO specifies whether the matrix A 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.
TRANSA is CHARACTER*1 On entry, TRANSA specifies the form of op( A ) to be used in the matrix multiplication as follows:
TRANSA = ’N’ or ’n’ op( A ) = A.TRANSA = ’T’ or ’t’ op( A ) = A**T.
TRANSA = ’C’ or ’c’ op( A ) = A**H.
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.
M is INTEGER On entry, M specifies the number of rows of B. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of B. N must be at least zero.
ALPHA is complex(kind=real64) On entry, ALPHA specifies the scalar alpha. When alpha is zero then A is not referenced and B need not be set before entry.
A is complex(kind=real64) array, dimension ( LDA, k ), where k is m when SIDE = ’L’ or ’l’ and is n when SIDE = ’R’ or ’r’. Before entry with UPLO = ’U’ or ’u’, the leading k by k 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 k by k 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.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When SIDE = ’L’ or ’l’ then LDA must be at least max( 1, m ), when SIDE = ’R’ or ’r’ then LDA must be at least max( 1, n ).
B is complex(kind=real64) array, dimension ( LDB, N ). Before entry, the leading m by n part of the array B must contain the matrix B, and on exit is overwritten by the transformed matrix.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ztrmm (3m_blas) | July 20, 2023 |
ztrmv(3f) - [BLAS:COMPLEX_16_BLAS_LEVEL2]
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine ztrmv(uplo,trans,diag,n,a,lda,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,lda,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: a(lda,*) complex(kind=real64),intent(inout) :: x(*) ..
ZTRMV performs one of the matrix-vector operations
x := A*x, or x := A**T*x, or x := A**H*x,where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix.
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.
TRANS is CHARACTER*1 On entry, TRANS specifies the operation to be performed as follows:
TRANS = ’N’ or ’n’ x := A*x.TRANS = ’T’ or ’t’ x := A**T*x.
TRANS = ’C’ or ’c’ x := A**H*x.
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.
N is INTEGER On entry, N specifies the order of the matrix A. N must be at least zero.
A is complex(kind=real64) 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.
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 ).
X is complex(kind=real64) array, dimension at least ( 1 + ( n - 1 )*abs( INCX ) ). Before entry, the incremented array X must contain the n element vector x. On exit, X is overwritten with the transformed vector x.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 2 Blas routine. The vector and matrix arguments are not referenced when N = 0, or M = 0
-- 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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ztrmv (3m_blas) | July 20, 2023 |
ztrsm(3f) - [BLAS:COMPLEX_16_BLAS_LEVEL3]
Synopsis
Definition
Options
B
Authors
Further Details
See Also
subroutine ztrsm(side,uplo,transa,diag,m,n,alpha,a,lda,b,ldb)
.. Scalar Arguments .. complex(kind=real64),intent(in) :: alpha integer,intent(in) :: lda,ldb,m,n character,intent(in) :: diag,side,transa,uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: a(lda,*) complex(kind=real64),intent(inout) :: b(ldb,*) ..
ZTRSM solves one of the matrix equations
op( A )*X = alpha*B, or X*op( A ) = alpha*B,where alpha is a scalar, X and B are m by n matrices, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of
op( A ) = A or op( A ) = A**T or op( A ) = A**H.The matrix X is overwritten on B.
SIDE is CHARACTER*1 On entry, SIDE specifies whether op( A ) appears on the left or right of X as follows:
SIDE = ’L’ or ’l’ op( A )*X = alpha*B.SIDE = ’R’ or ’r’ X*op( A ) = alpha*B.
UPLO is CHARACTER*1 On entry, UPLO specifies whether the matrix A 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.
TRANSA is CHARACTER*1 On entry, TRANSA specifies the form of op( A ) to be used in the matrix multiplication as follows:
TRANSA = ’N’ or ’n’ op( A ) = A.TRANSA = ’T’ or ’t’ op( A ) = A**T.
TRANSA = ’C’ or ’c’ op( A ) = A**H.
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.
M is INTEGER On entry, M specifies the number of rows of B. M must be at least zero.
N is INTEGER On entry, N specifies the number of columns of B. N must be at least zero.
ALPHA is complex(kind=real64) On entry, ALPHA specifies the scalar alpha. When alpha is zero then A is not referenced and B need not be set before entry.
A is complex(kind=real64) array, dimension ( LDA, k ), where k is m when SIDE = ’L’ or ’l’ and k is n when SIDE = ’R’ or ’r’. Before entry with UPLO = ’U’ or ’u’, the leading k by k 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 k by k 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.
LDA is INTEGER On entry, LDA specifies the first dimension of A as declared in the calling (sub) program. When SIDE = ’L’ or ’l’ then LDA must be at least max( 1, m ), when SIDE = ’R’ or ’r’ then LDA must be at least max( 1, n ).
B is complex(kind=real64) array, dimension ( LDB, N ) Before entry, the leading m by n part of the array B must contain the right-hand side matrix B, and on exit is overwritten by the solution matrix X.
LDB is INTEGER On entry, LDB specifies the first dimension of B as declared in the calling (sub) program. LDB must be at least max( 1, m ).
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
Level 3 Blas routine.
-- Written on 8-February-1989. Jack Dongarra, Argonne National Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms Group Ltd.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ztrsm (3m_blas) | July 20, 2023 |
ztrsv(3f) - [BLAS:COMPLEX16_BLAS_LEVEL2]
Synopsis
Definition
Options
X
Authors
Further Details
See Also
subroutine ztrsv(uplo,trans,diag,n,a,lda,x,incx)
.. Scalar Arguments .. integer,intent(in) :: incx,lda,n character,intent(in) :: diag,trans,uplo .. .. Array Arguments .. complex(kind=real64),intent(in) :: a(lda,*) complex(kind=real64),intent(inout) :: x(*) ..
ZTRSV solves one of the systems of equations
A*x = b, or A**T*x = b, or A**H*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.
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.
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**H*x = b.
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.
On entry, N specifies the order of the matrix A. N must be at least zero.
A is complex(kind=real64) 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.
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 ).
X is complex(kind=real64) 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.
INCX is INTEGER On entry, INCX specifies the increment for the elements of X. INCX must not be zero.
o Univ. of Tennessee o Univ. of California Berkeley o Univ. of Colorado Denver o NAG Ltd. date:December 2016
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.
Online html documentation available at http://www.netlib.org/lapack/explore-html/
Nemo Release 3.1 | ztrsv (3m_blas) | July 20, 2023 |