--- rpl/lapack/lapack/dla_gbamv.f 2011/07/22 07:38:06 1.5 +++ rpl/lapack/lapack/dla_gbamv.f 2011/11/21 20:42:53 1.6 @@ -1,16 +1,195 @@ +*> \brief \b DLA_GBAMV +* +* =========== DOCUMENTATION =========== +* +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ +* +*> \htmlonly +*> Download DLA_GBAMV + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> +*> [TXT] +*> \endhtmlonly +* +* Definition: +* =========== +* +* SUBROUTINE DLA_GBAMV( TRANS, M, N, KL, KU, ALPHA, AB, LDAB, X, +* INCX, BETA, Y, INCY ) +* +* .. Scalar Arguments .. +* DOUBLE PRECISION ALPHA, BETA +* INTEGER INCX, INCY, LDAB, M, N, KL, KU, TRANS +* .. +* .. Array Arguments .. +* DOUBLE PRECISION AB( LDAB, * ), X( * ), Y( * ) +* .. +* +* +*> \par Purpose: +* ============= +*> +*> \verbatim +*> +*> DLA_GBAMV 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, +*> "symbolically" zero components are not perturbed. A zero +*> entry is considered "symbolic" if all multiplications involved +*> in computing that entry have at least one zero multiplicand. +*> \endverbatim +* +* Arguments: +* ========== +* +*> \param[in] TRANS +*> \verbatim +*> 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. +*> \endverbatim +*> +*> \param[in] M +*> \verbatim +*> M is INTEGER +*> On entry, M specifies the number of rows of the matrix A. +*> M must be at least zero. +*> Unchanged on exit. +*> \endverbatim +*> +*> \param[in] N +*> \verbatim +*> N is INTEGER +*> On entry, N specifies the number of columns of the matrix A. +*> N must be at least zero. +*> Unchanged on exit. +*> \endverbatim +*> +*> \param[in] KL +*> \verbatim +*> KL is INTEGER +*> The number of subdiagonals within the band of A. KL >= 0. +*> \endverbatim +*> +*> \param[in] KU +*> \verbatim +*> KU is INTEGER +*> The number of superdiagonals within the band of A. KU >= 0. +*> \endverbatim +*> +*> \param[in] ALPHA +*> \verbatim +*> ALPHA is DOUBLE PRECISION +*> On entry, ALPHA specifies the scalar alpha. +*> Unchanged on exit. +*> \endverbatim +*> +*> \param[in] AB +*> \verbatim +*> AB is DOUBLE PRECISION array of DIMENSION ( LDAB, n ) +*> Before entry, the leading m by n part of the array AB must +*> contain the matrix of coefficients. +*> Unchanged on exit. +*> \endverbatim +*> +*> \param[in] LDAB +*> \verbatim +*> LDAB is INTEGER +*> On entry, LDA specifies the first dimension of AB as declared +*> in the calling (sub) program. LDAB must be at least +*> max( 1, m ). +*> Unchanged on exit. +*> \endverbatim +*> +*> \param[in] X +*> \verbatim +*> 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. +*> \endverbatim +*> +*> \param[in] INCX +*> \verbatim +*> INCX is INTEGER +*> On entry, INCX specifies the increment for the elements of +*> X. INCX must not be zero. +*> Unchanged on exit. +*> \endverbatim +*> +*> \param[in] BETA +*> \verbatim +*> 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. +*> \endverbatim +*> +*> \param[in,out] Y +*> \verbatim +*> 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. +*> \endverbatim +*> +*> \param[in] INCY +*> \verbatim +*> 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. +*> \endverbatim +* +* Authors: +* ======== +* +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. +* +*> \date November 2011 +* +*> \ingroup doubleGBcomputational +* +* ===================================================================== SUBROUTINE DLA_GBAMV( TRANS, M, N, KL, KU, ALPHA, AB, LDAB, X, $ INCX, BETA, Y, INCY ) * -* -- LAPACK routine (version 3.3.1) -- -* -- Contributed by James Demmel, Deaglan Halligan, Yozo Hida and -- -* -- Jason Riedy of Univ. of California Berkeley. -- -* -- June 2010 -- -* -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley and NAG Ltd. -- +* -- LAPACK computational routine (version 3.4.0) -- +* -- LAPACK is a software package provided by Univ. of Tennessee, -- +* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +* November 2011 * - IMPLICIT NONE -* .. * .. Scalar Arguments .. DOUBLE PRECISION ALPHA, BETA INTEGER INCX, INCY, LDAB, M, N, KL, KU, TRANS @@ -19,104 +198,6 @@ DOUBLE PRECISION AB( LDAB, * ), X( * ), Y( * ) * .. * -* Purpose -* ======= -* -* DLA_GBAMV 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, -* "symbolically" zero components are not perturbed. A zero -* entry is considered "symbolic" if all multiplications involved -* in computing that entry have at least one zero multiplicand. -* -* Arguments -* ========== -* -* TRANS (input) 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 (input) INTEGER -* On entry, M specifies the number of rows of the matrix A. -* M must be at least zero. -* Unchanged on exit. -* -* N (input) INTEGER -* On entry, N specifies the number of columns of the matrix A. -* N must be at least zero. -* Unchanged on exit. -* -* KL (input) INTEGER -* The number of subdiagonals within the band of A. KL >= 0. -* -* KU (input) INTEGER -* The number of superdiagonals within the band of A. KU >= 0. -* -* ALPHA (input) DOUBLE PRECISION -* On entry, ALPHA specifies the scalar alpha. -* Unchanged on exit. -* -* AB (input) DOUBLE PRECISION array of DIMENSION ( LDAB, n ) -* Before entry, the leading m by n part of the array AB must -* contain the matrix of coefficients. -* Unchanged on exit. -* -* LDAB (input) INTEGER -* On entry, LDA specifies the first dimension of AB as declared -* in the calling (sub) program. LDAB must be at least -* max( 1, m ). -* Unchanged on exit. -* -* X (input) 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 (input) INTEGER -* On entry, INCX specifies the increment for the elements of -* X. INCX must not be zero. -* Unchanged on exit. -* -* BETA (input) 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 (input/output) 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. -* -* INCY (input) INTEGER -* On entry, INCY specifies the increment for the elements of -* Y. INCY must not be zero. -* Unchanged on exit. -* -* -* Level 2 Blas routine. -* * ===================================================================== * * .. Parameters ..