SUPER_BLAS
Basic Linear Algebra Subprograms
in C
for SUPERLU
SUPER_BLAS
is C library which
is a version of the BLAS, or Basic Linear
Algebra Subprograms, written in C, and tailored for use with the
SUPERLU library.
The usual release of SUPER_BLAS does not include the
full set of BLAS routines. Most of the real level 1 routines
are included, except for SROTG and SSWAP, and DROTG and DSWAP.
However, only a few of the complex level 1 routines are included.
The situation for level 2 and level 3 is more sketchy.
Independent of its application with SUPERLU, the SUPER_BLAS
library may be useful for programmers using C and wishing to access
a set of BLAS routines.
Note, however, that to promote compatibility with FORTRAN,

all routine names are defined with a trailing underscore;

all arguments are passed by address;
The BLAS are a small core library of linear algebra utilities,
which can be highly optimized for various architectures. Software
that relies on the BLAS is thus highly portable, and will typically
run very efficiently. The LINPACK and LAPACK linear algebra
libraries make extensive use of the BLAS.
Languages:
SUPER_BLAS is available in
a C version.
Related Data and Programs:
BLAS1_D,
a C library which
contains basic linear algebra routines for vectorvector operations,
using double precision real arithmetic;
GSL,
C++ programs which
illustrate the use of the Gnu Scientific Library,
which includes functions to solve linear systems;
SUPERLU,
a C library which
applies a fast direct solution method to a sparse linear system.
Reference:

Jack Dongarra, Cleve Moler, Jim Bunch, Pete Stewart,
LINPACK User's Guide,
SIAM, 1979.

Charles Lawson, Richard Hanson, David Kincaid, Fred Krogh,
Basic Linear Algebra Subprograms for FORTRAN usage,
ACM Transactions on Mathematical Software,
Volume 5, Number 3, pages 308323, 1979.

Thomas Coleman, Charles Van Loan,
Handbook for Matrix Computations,
Society for Industrial and Applied Mathematics,
3600 University City Science Center,
Philadelphia, PA 191042688.

James Demmel, John Gilbert, Xiaoye Li,
SuperLU Users's Guide.
Source Code:
Examples and Tests:
SUPER_BLAS1_C_PRB is a set of tests for all the level 1
single precision complex BLAS routines available in SUPER_BLAS.
SUPER_BLAS1_D_PRB is a set of tests for all the level 1
double precision real BLAS routines available in SUPER_BLAS.
SUPER_BLAS1_S_PRB is a set of tests for all the level 1
single precision real BLAS routines available in SUPER_BLAS.
SUPER_BLAS1_Z_PRB is a set of tests for all the level 1
double precision complex BLAS routines available in SUPER_BLAS.
List of Routines:

C_ABS returns the absolute value of a complex number.

C_ABS1 returns the L1 norm of a complex number.

C_DIV carries out complex division.

C_EXP returns the result of complex exponentiation.

CAXPY adds a multiple of one complex vector to another.

CCOPY copies one complex vector to another.

CDOTC computes the conjugated dot product of two complex vectors.

CGEMV computes the product of a general matrix with a vector.

CGERC performs the rank 1 operation A := alpha*x*conjg( y' ) + A,

CHEMV performs the matrixvector operation y := alpha*A*x + beta*y,

CHER2 performs A := alpha*x*conjg( y' ) + conjg( alpha )*y*conjg( x' ) + A,

CLSOLVE solves a dense UNIT lower triangular system.

CMATVEC performs a dense matrixvector multiply: Mxvec = Mxvec + M * vec.

CSCAL scales a vector by a constant.

CTRSV solves a unit/nonunit upper or lower triangular linear system.

CUSOLVE solves a dense upper triangular system.

D_CNJG returns the complex conjugate of a complex number.

D_IMAG returns the imaginary part of a complex number.

DASUM returns the sum of the absolute values of the entries of a vector.

DAXPY adds a multiple of a vector to another vector.

DCABS1 returns the L1 norm of a complex number.

DCOPY copies one double precision vector to another.

DDOT computes the dot product of two double precision vectors.

DGEMV adds a general matrixvector product to a vector.

DGER performs the rank 1 operation A := alpha*x*y' + A,

DLSOLVE solves a dense UNIT lower triangular system.

DMATVEC performs a dense matrixvector multiply: Mxvec = Mxvec + M * vec.

DNRM2 returns the euclidean norm of a double precision vector.

DROT applies a plane rotation.

DSCAL multiplies a double precision vector by a constant.

DSYMV performs the symmetric matrixvector operation y := alpha*A*x + beta*y,

DSYR2 performs the symmetric rank 2 operation A := alpha*x*y' + alpha*y*x' + A,

DTRSV solves a unit or nonunit upper or lower triangular linear system.

DUSOLVE solves a dense upper triangular system.

DZASUM sums the absolute values of the entries of a double precision complex vector.

DZNRM2 returns the euclidean norm of a double precision complex vector.

ICAMAX returns the index of the entry of maximum absolute value in a complex vector.

IDAMAX returns the index of the entry of maximum absolute value in a double precision vector.

ISAMAX returns the index of the entry of maximum absolute value in a real vector.

IZAMAX returns the index of the entry of maximum absolute value in a double precision complex vector.

LSAME returns TRUE if CA is the same letter as CB regardless of case.

R_CNJG returns the complex conjugate of a complex number

R_IMAG returns the imaginary part of a complex number.

SASUM sums the absolute values of the entries of a real vector.

SAXPY adds a multiple of one vector to another.

SCASUM sums the absolute values of the entries of a complex vector.

SCNRM2 returns the euclidean norm of a complex vector.

SCOPY copies one real vector to another.

SDOT computes the dot product of two real vectors.

SGEMV adds a general matrixvector product to a vector.

SGER performs the rank 1 operation A := alpha*x*y' + A,

SLSOLVE solves a dense UNIT lower triangular system.

SMATVEC performs a dense matrixvector multiply: Mxvec = Mxvec + M * vec.

SNRM2 returns the euclidean norm of a real vector.

SP_IENV chooses machinedependent parameters for the local environment.

SROT applies a Givens plane rotation.

SSCAL scales a vector by a constant.

SSYMV performs the symmetric matrixvector operation y := alpha*A*x + beta*y.

SSYR2 performs the symmetric rank 2 operation A := alpha*x*y' + alpha*y*x' + A,

STRSV solves a unit/nonunit upper or lower triangular linear system.

SUSOLVE solves a dense upper triangular system.

XERBLA is an error handler for the LAPACK routines.

Z_ABS returns the absolute value of a double precision complex number.

Z_ABS1 returns the L1 norm of a double precision complex number.

Z_DIV carries out complex double precision division.

Z_EXP carries out complex double precision exponentiation.

ZAXPY adds a multiple of a complex double precision vector to another.

ZCOPY copies one double precision complex vector to another.

ZDOTC computes the conjugated dot product of two complex double precision vectors.

ZGEMV adds a general matrixvector product to a vector.

ZGERC performs the rank 1 operation A := alpha*x*conjg( y' ) + A,

ZHEMV adds a Hermitian matrixvector product to a vector.

ZHER2 performs a hermitian rank 2 update.

ZLSOLVE solves a dense UNIT lower triangular system.

ZMATVEC performs a dense matrixvector multiply:

ZSCAL scales a double precision complex vector by a constant.

ZTRSV solves a unit or nonunit, upper or lower triangular linear system.

ZUSOLVE solves a dense upper triangular system.
You can go up one level to
the C source codes.
Last revised on 01 April 2007.