BLAS2

Description

The Level 2 Basic Linear Algebra Subroutines (BLAS) perform matrix-vector operations.

Increment arguments for vectors

The description of a vector consists of the name of the array (x or y) followed by the storage spacing (increment) in the array of vector elements (incx or incy). The increment can be positive or negative. When a vector x consists of n elements, the corresponding actual array arguments must be of length at least 1+(n-1)*|incx|. For a negative increment, the first element of x is assumed to be x(1+(n-1)*|incx|.

Table of Level 2 BLAS routines

The following table describes these routines. This table is in alphabetic order, except that each Hermitian matrix routine (any routine whose name begins with CH or ZH) is grouped next to equivalent symmetric matrix routines (whose names begin with SS, DS, CS, or ZS). This is because the Hermitian property is a type of symmetry. For more information, see the individual man pages.

Purpose

Operation

Name

Performs a Hermitian banded matrix-vector multiply

y := alpha*A*x + beta*y
where A is an n x n Hermitian band matrix

CHBMV, ZHBMV

Performs a Hermitian matrix-vector multiply

y := alpha*A*x + beta*y
where A is an n x n Hermitian matrix

CHEMV, ZHEMV

Performs a Hermitian rank 1 update

A := alpha*x*x**H + A
where A is an n x n Hermitian matrix

CHER, ZHER

Performs a Hermitian rank 2 update

A := alpha*x*y**H + conjg(alpha)*y*x**H + A
where A is an n x n Hermitian matrix

CHER2, ZHER2

Performs a Hermitian packed matrix-vector multiply

y := alpha*A*x + beta*y
where A is an n x n Hermitian packed matrix

CHPMV, ZHPMV

Performs a Hermitian packed rank 1 update of a matrix

A := alpha*x*x**H + A
where A is an n x n Hermitian packed matrix

CHPR, ZHPR

Performs a Hermitian packed rank 2 update of a matrix

A := alpha*x*y**H + conjg(alpha)*y*x**H + A
where A is an n x n Hermitian packed matrix

CHPR2, ZHPR2

Performs a banded matrix-vector multiply

y := alpha*A*x + beta*y
or
y := alpha*A**T*x + beta*y
or
y := alpha*A**H*x + beta*y
where A is an m x n band matrix

SGBMV, DGBMV, CGBMV, ZGBMV

Performs a matrix-vector multiply

y := alpha*A*x + beta*y
or
y := alpha*A**T*x + beta*y
or
y := alpha*A**H*x + beta*y
where A is an m x n matrix

SGEMV, DGEMV, CGEMV, ZGEMV

Performs a rank 1 update of a matrix

A := alpha*x*y**T + A
where A is an m x n matrix

SGER, DGER

Performs a conjugated rank 1 update of a matrix

A := alpha*x*y**T + A
where A is an m x n matrix

CGERC, ZGERC

Performs a unconjugated rank 1 update of a matrix

A := alpha*x*y**T + A
where A is an m x n matrix

CGERU, ZGERU

Performs a symmetric banded matrix-vector multiply

y := alpha*A*x + beta*y
where A is an n x n symmetric band matrix

SSBMV, DSBMV

Performs a symmetric packed matrix-vector multiply

y := alpha*A*x + beta*y
where A is an n x n symmetric packed matrix

SSPMV, DSPMV

Performs a symmetric packed rank 1 update of a matrix

A := alpha*x*x**T + A
where A is an n x n symmetric packed matrix

SSPR, DSPR

Performs a symmetric packed rank 2 update of a matrix

A := alpha*x*y**T + alpha*y*x**T + A
where A is an n x n symmetric packed matrix

SSPR2, DSPR2

Performs a symmetric matrix-vector multiply

y := alpha*A*x + beta*y
where A is an n x n symmetric matrix

SSYMV, DSYMV

Performs a symmetric rank 1 update of a matrix

A := alpha*x*x**T + A
where A is an n x n symmetric matrix

SSYR, DSYR

Performs a triangular banded matrix-vector multiply

x := A*x
or
x := A**T*x
or
x := A**H*x
where A is an n x n triangular band matrix

STBMV, DTBMV, CTBMV, ZTBMV

Solves triangular banded matrix equations

A*x = b
or
A**T*x = b
or
A**H*x = b
where A is an n x n triangular band matrix

STBSV, DTBSV, CTBSV, ZTBSV

Performs a triangular packed matrix-vector multiply

x := A*x
or
x := A**T*x
or
x := A**H*x
where A is an n x n triangular packed matrix

STPMV, DTPMV, CTPMV, ZTPMV

Solves triangular packed matrix equations

A*x = b
or
A**T*x = b
or
A**H*x = b
where A is an n x n triangular packed matrix

STPSV, DTPSV, CTPSV, ZTPSV

Performs a triangular matrix-vector multiply

x := A*x
or
x := A**T*x
or
x := A**H*x
where A is an n x n triangular matrix

STRMV, DTRMV, CTRMV, ZTRMV

Solves triangular matrix equations

A*x = b
or
A**T*x = b
or
A**H*x = b
where A is an n x n triangular matrix

STRSV, DTRSV, CTRSV, ZTRSV

Environment Variables

CRAYBLAS_LEVEL2_LEGACY

    When set to 1, it entirely disables the CrayBLAS framework for
    BLAS Level 2 calls, resulting in all BLAS calls to fallback to
    the basis code. When CRAYBLAS_LEVEL2_LEGACY=1, none of the other
    environment variables in this section will be checked by BLAS
    Level 2 routines, as this is a top-level disable switch.

    Default: 0

CRAYBLAS_ABORT_ON_ERROR

    When an invalid call to a BLAS routine is made, the library
    prints an error message to the stdout stream and then calls the
    abort() function to stop program execution, as it is the likely
    case that a bug is present and the results would be invalid.
    Setting CRAYBLAS_ABORT_ON_ERROR=0 will cause the library only to
    report an error to the stdout stream and return from the BLAS
    call. This option is provided for codes that can tolerate invalid
    BLAS calls without the need to abort. This option is available
    even when any of the CRAYBLAS_LEVELn_LEGACY options are set.

    Default: 1

CRAYBLAS_PROFILING_VERBOSITY

    This environment variable causes CrayBLAS routines to report
    their routine name and argument values, and optionally runtime in
    seconds to stdout. When CRAYBLAS_PROFILING_VERBOSITY=1, only the
    routine name and argument values and printed. To also print the
    runtime in seconds, set CRAYBLAS_PROFILING_VERBOSITY=2. The run
    times reported do NOT include the time it takes to print the
    information to the output stream. However, other times outside of
    the BLAS calls may be skewed as the calls will take some time to
    print this information. This option is available even when any of
    the CRAYBLAS_LEVELn_LEGACY options are set.

    Default: not set