la_geamv(3)

NAME
la_geamv - la_geamv: matrix-vector multiply |A| * |x|, general

SYNOPSIS

  Functions
subroutine cla_geamv (trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
CLA_GEAMV computes a matrix-vector product using a general matrix to calculate error bounds.
subroutine dla_geamv (trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
DLA_GEAMV computes a matrix-vector product using a general matrix to calculate error bounds.
subroutine sla_geamv (trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
SLA_GEAMV computes a matrix-vector product using a general matrix to calculate error bounds.
subroutine zla_geamv (trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
ZLA_GEAMV computes a matrix-vector product using a general matrix to calculate error bounds.

Detailed Description

Function Documentation

  subroutine cla_geamv (integer trans, integer m, integer n, real alpha, complex, dimension( lda, * ) a, integer lda, complex, dimension( * ) x, integer incx, real beta, real, dimension( * ) y, integer incy)

CLA_GEAMV computes a matrix-vector product using a general matrix to calculate error bounds.

Purpose:

    !>
    !> CLA_GEAMV  performs one of the matrix-vector operations
    !>
    !>         y := alpha*abs(A)*abs(x) + beta*abs(y),
    !>    or   y := alpha*abs(A)**T*abs(x) + beta*abs(y),
    !>
    !> where alpha and beta are scalars, x and y are vectors and A is an
    !> m by n matrix.
    !>
    !> This function is primarily used in calculating error bounds.
    !> To protect against underflow during evaluation, components in
    !> the resulting vector are perturbed away from zero by (N+1)
    !> times the underflow threshold.  To prevent unnecessarily large
    !> errors for block-structure embedded in general matrices,
    !>  zero components are not perturbed.  A zero
    !> entry is considered  if all multiplications involved
    !> in computing that entry have at least one zero multiplicand.
    !>

Parameters
    TRANS

    !>          TRANS is INTEGER
    !>           On entry, TRANS specifies the operation to be performed as
    !>           follows:
    !>
    !>             BLAS_NO_TRANS      y := alpha*abs(A)*abs(x) + beta*abs(y)
    !>             BLAS_TRANS         y := alpha*abs(A**T)*abs(x) + beta*abs(y)
    !>             BLAS_CONJ_TRANS    y := alpha*abs(A**T)*abs(x) + beta*abs(y)
    !>
    !>           Unchanged on exit.
    !>

    M

    !>          M is INTEGER
    !>           On entry, M specifies the number of rows of the matrix A.
    !>           M must be at least zero.
    !>           Unchanged on exit.
    !>

    N

    !>          N is INTEGER
    !>           On entry, N specifies the number of columns of the matrix A.
    !>           N must be at least zero.
    !>           Unchanged on exit.
    !>

    ALPHA

    !>          ALPHA is REAL
    !>           On entry, ALPHA specifies the scalar alpha.
    !>           Unchanged on exit.
    !>

    A

    !>          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.
    !>           Unchanged on exit.
    !>

    LDA

    !>          LDA is INTEGER
    !>           On entry, LDA specifies the first dimension of A as declared
    !>           in the calling (sub) program. LDA must be at least
    !>           max( 1, m ).
    !>           Unchanged on exit.
    !>

    X

    !>          X is COMPLEX array, dimension
    !>           ( 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.
    !>           Unchanged on exit.
    !>

    INCX

    !>          INCX is INTEGER
    !>           On entry, INCX specifies the increment for the elements of
    !>           X. INCX must not be zero.
    !>           Unchanged on exit.
    !>

    BETA

    !>          BETA is REAL
    !>           On entry, BETA specifies the scalar beta. When BETA is
    !>           supplied as zero then Y need not be set on input.
    !>           Unchanged on exit.
    !>

    Y

    !>          Y is REAL array, dimension
    !>           ( 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.
    !>           If either m or n is zero, then Y not referenced and the function
    !>           performs a quick return.
    !>

    INCY

    !>          INCY is INTEGER
    !>           On entry, INCY specifies the increment for the elements of
    !>           Y. INCY must not be zero.
    !>           Unchanged on exit.
    !>
    !>  Level 2 Blas routine.
    !>

Author
    Univ. of Tennessee

    Univ. of California Berkeley

    Univ. of Colorado Denver

    NAG Ltd.

Definition at line 175 of file cla_geamv.f.

  subroutine dla_geamv (integer trans, integer m, integer n, double precision alpha, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( * ) x, integer incx, double precision beta, double precision, dimension( * ) y, integer incy)

DLA_GEAMV computes a matrix-vector product using a general matrix to calculate error bounds.

Purpose:

    !>
    !> DLA_GEAMV  performs one of the matrix-vector operations
    !>
    !>         y := alpha*abs(A)*abs(x) + beta*abs(y),
    !>    or   y := alpha*abs(A)**T*abs(x) + beta*abs(y),
    !>
    !> where alpha and beta are scalars, x and y are vectors and A is an
    !> m by n matrix.
    !>
    !> This function is primarily used in calculating error bounds.
    !> To protect against underflow during evaluation, components in
    !> the resulting vector are perturbed away from zero by (N+1)
    !> times the underflow threshold.  To prevent unnecessarily large
    !> errors for block-structure embedded in general matrices,
    !>  zero components are not perturbed.  A zero
    !> entry is considered  if all multiplications involved
    !> in computing that entry have at least one zero multiplicand.
    !>

Parameters
    TRANS

    !>          TRANS is INTEGER
    !>           On entry, TRANS specifies the operation to be performed as
    !>           follows:
    !>
    !>             BLAS_NO_TRANS      y := alpha*abs(A)*abs(x) + beta*abs(y)
    !>             BLAS_TRANS         y := alpha*abs(A**T)*abs(x) + beta*abs(y)
    !>             BLAS_CONJ_TRANS    y := alpha*abs(A**T)*abs(x) + beta*abs(y)
    !>
    !>           Unchanged on exit.
    !>

    M

    !>          M is INTEGER
    !>           On entry, M specifies the number of rows of the matrix A.
    !>           M must be at least zero.
    !>           Unchanged on exit.
    !>

    N

    !>          N is INTEGER
    !>           On entry, N specifies the number of columns of the matrix A.
    !>           N must be at least zero.
    !>           Unchanged on exit.
    !>

    ALPHA

    !>          ALPHA is DOUBLE PRECISION
    !>           On entry, ALPHA specifies the scalar alpha.
    !>           Unchanged on exit.
    !>

    A

    !>          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.
    !>           Unchanged on exit.
    !>

    LDA

    !>          LDA is INTEGER
    !>           On entry, LDA specifies the first dimension of A as declared
    !>           in the calling (sub) program. LDA must be at least
    !>           max( 1, m ).
    !>           Unchanged on exit.
    !>

    X

    !>          X is DOUBLE PRECISION array, dimension
    !>           ( 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.
    !>           Unchanged on exit.
    !>

    INCX

    !>          INCX is INTEGER
    !>           On entry, INCX specifies the increment for the elements of
    !>           X. INCX must not be zero.
    !>           Unchanged on exit.
    !>

    BETA

    !>          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.
    !>           Unchanged on exit.
    !>

    Y

    !>          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.
    !>           If either m or n is zero, then Y not referenced and the function
    !>           performs a quick return.
    !>

    INCY

    !>          INCY is INTEGER
    !>           On entry, INCY specifies the increment for the elements of
    !>           Y. INCY must not be zero.
    !>           Unchanged on exit.
    !>
    !>  Level 2 Blas routine.
    !>

Author
    Univ. of Tennessee

    Univ. of California Berkeley

    Univ. of Colorado Denver

    NAG Ltd.

Definition at line 174 of file dla_geamv.f.

  subroutine sla_geamv (integer trans, integer m, integer n, real alpha, real, dimension( lda, * ) a, integer lda, real, dimension( * ) x, integer incx, real beta, real, dimension( * ) y, integer incy)

SLA_GEAMV computes a matrix-vector product using a general matrix to calculate error bounds.

Purpose:

    !>
    !> SLA_GEAMV  performs one of the matrix-vector operations
    !>
    !>         y := alpha*abs(A)*abs(x) + beta*abs(y),
    !>    or   y := alpha*abs(A)**T*abs(x) + beta*abs(y),
    !>
    !> where alpha and beta are scalars, x and y are vectors and A is an
    !> m by n matrix.
    !>
    !> This function is primarily used in calculating error bounds.
    !> To protect against underflow during evaluation, components in
    !> the resulting vector are perturbed away from zero by (N+1)
    !> times the underflow threshold.  To prevent unnecessarily large
    !> errors for block-structure embedded in general matrices,
    !>  zero components are not perturbed.  A zero
    !> entry is considered  if all multiplications involved
    !> in computing that entry have at least one zero multiplicand.
    !>

Parameters
    TRANS

    !>          TRANS is INTEGER
    !>           On entry, TRANS specifies the operation to be performed as
    !>           follows:
    !>
    !>             BLAS_NO_TRANS      y := alpha*abs(A)*abs(x) + beta*abs(y)
    !>             BLAS_TRANS         y := alpha*abs(A**T)*abs(x) + beta*abs(y)
    !>             BLAS_CONJ_TRANS    y := alpha*abs(A**T)*abs(x) + beta*abs(y)
    !>
    !>           Unchanged on exit.
    !>

    M

    !>          M is INTEGER
    !>           On entry, M specifies the number of rows of the matrix A.
    !>           M must be at least zero.
    !>           Unchanged on exit.
    !>

    N

    !>          N is INTEGER
    !>           On entry, N specifies the number of columns of the matrix A.
    !>           N must be at least zero.
    !>           Unchanged on exit.
    !>

    ALPHA

    !>          ALPHA is REAL
    !>           On entry, ALPHA specifies the scalar alpha.
    !>           Unchanged on exit.
    !>

    A

    !>          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.
    !>           Unchanged on exit.
    !>

    LDA

    !>          LDA is INTEGER
    !>           On entry, LDA specifies the first dimension of A as declared
    !>           in the calling (sub) program. LDA must be at least
    !>           max( 1, m ).
    !>           Unchanged on exit.
    !>

    X

    !>          X is REAL array, dimension
    !>           ( 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.
    !>           Unchanged on exit.
    !>

    INCX

    !>          INCX is INTEGER
    !>           On entry, INCX specifies the increment for the elements of
    !>           X. INCX must not be zero.
    !>           Unchanged on exit.
    !>

    BETA

    !>          BETA is REAL
    !>           On entry, BETA specifies the scalar beta. When BETA is
    !>           supplied as zero then Y need not be set on input.
    !>           Unchanged on exit.
    !>

    Y

    !>          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.
    !>           If either m or n is zero, then Y not referenced and the function
    !>           performs a quick return.
    !>

    INCY

    !>          INCY is INTEGER
    !>           On entry, INCY specifies the increment for the elements of
    !>           Y. INCY must not be zero.
    !>           Unchanged on exit.
    !>
    !>  Level 2 Blas routine.
    !>

Author
    Univ. of Tennessee

    Univ. of California Berkeley

    Univ. of Colorado Denver

    NAG Ltd.

Definition at line 174 of file sla_geamv.f.

  subroutine zla_geamv (integer trans, integer m, integer n, double precision alpha, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( * ) x, integer incx, double precision beta, double precision, dimension( * ) y, integer incy)

ZLA_GEAMV computes a matrix-vector product using a general matrix to calculate error bounds.

Purpose:

    !>
    !> ZLA_GEAMV  performs one of the matrix-vector operations
    !>
    !>         y := alpha*abs(A)*abs(x) + beta*abs(y),
    !>    or   y := alpha*abs(A)**T*abs(x) + beta*abs(y),
    !>
    !> where alpha and beta are scalars, x and y are vectors and A is an
    !> m by n matrix.
    !>
    !> This function is primarily used in calculating error bounds.
    !> To protect against underflow during evaluation, components in
    !> the resulting vector are perturbed away from zero by (N+1)
    !> times the underflow threshold.  To prevent unnecessarily large
    !> errors for block-structure embedded in general matrices,
    !>  zero components are not perturbed.  A zero
    !> entry is considered  if all multiplications involved
    !> in computing that entry have at least one zero multiplicand.
    !>

Parameters
    TRANS

    !>          TRANS is INTEGER
    !>           On entry, TRANS specifies the operation to be performed as
    !>           follows:
    !>
    !>             BLAS_NO_TRANS      y := alpha*abs(A)*abs(x) + beta*abs(y)
    !>             BLAS_TRANS         y := alpha*abs(A**T)*abs(x) + beta*abs(y)
    !>             BLAS_CONJ_TRANS    y := alpha*abs(A**T)*abs(x) + beta*abs(y)
    !>
    !>           Unchanged on exit.
    !>

    M

    !>          M is INTEGER
    !>           On entry, M specifies the number of rows of the matrix A.
    !>           M must be at least zero.
    !>           Unchanged on exit.
    !>

    N

    !>          N is INTEGER
    !>           On entry, N specifies the number of columns of the matrix A.
    !>           N must be at least zero.
    !>           Unchanged on exit.
    !>

    ALPHA

    !>          ALPHA is DOUBLE PRECISION
    !>           On entry, ALPHA specifies the scalar alpha.
    !>           Unchanged on exit.
    !>

    A

    !>          A is COMPLEX*16 array, dimension ( LDA, n )
    !>           Before entry, the leading m by n part of the array A must
    !>           contain the matrix of coefficients.
    !>           Unchanged on exit.
    !>

    LDA

    !>          LDA is INTEGER
    !>           On entry, LDA specifies the first dimension of A as declared
    !>           in the calling (sub) program. LDA must be at least
    !>           max( 1, m ).
    !>           Unchanged on exit.
    !>

    X

    !>          X is COMPLEX*16 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.
    !>           Unchanged on exit.
    !>

    INCX

    !>          INCX is INTEGER
    !>           On entry, INCX specifies the increment for the elements of
    !>           X. INCX must not be zero.
    !>           Unchanged on exit.
    !>

    BETA

    !>          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.
    !>           Unchanged on exit.
    !>

    Y

    !>          Y is DOUBLE PRECISION array, dimension
    !>           ( 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.
    !>           If either m or n is zero, then Y not referenced and the function
    !>           performs a quick return.
    !>

    INCY

    !>          INCY is INTEGER
    !>           On entry, INCY specifies the increment for the elements of
    !>           Y. INCY must not be zero.
    !>           Unchanged on exit.
    !>
    !>  Level 2 Blas routine.
    !>

Author
    Univ. of Tennessee

    Univ. of California Berkeley

    Univ. of Colorado Denver

    NAG Ltd.

Definition at line 175 of file zla_geamv.f.

Author

Generated automatically by Doxygen for LAPACK from the source code.