Following routines are very well tested.

MBLAS LEVEL 1 Routines

Routine name

Description

Example

BLAS corresopndant

Crotg

Determines a double complex Givens rotation.

 

crotg, zrotg

Cscal

scales a vector by a constant

 

cscal, zscal

Rrotg

Construct givens plane rotation.

srotg, drotg

Rrot

applies a plane rotation.

 

srot, drot

Rrotm

apply the modified givens transformation.

srotm, drotm

CRrot

applies a plane rotation.

 

csrot, zdrot

Cswap

interchanges two vectors.

cswap, zswap

Rswap

interchanges two vectors.

sswap, dswap

CRscal

scales a complex vector by a real constant.

csscal, zdscal

Rscal

scales a vector by a constant.

sscal, dscal

Ccopy

copies a vector x to a vector y.

ccopy, zcopy

Rcopy

copies a vector x to a vector y.

scopy, dcopy

Caxpy

constant times a vector plus a vector.

caxpy, zaxpy

Raxpy

constant times a vector plus a vector.

saxpy, daxpy

Rdot

forms the dot product of two vectors

sdot, ddot

Cdotc

forms the dot product of two vectors

cdotc, zdotc

Cdotu

forms the dot product of two vectors

cdotu, zdotu

RCnrm2

the euclidean norm of a vector

scnrm2, dznrm2

Rnrm2

the euclidean norm of a vector

snrm2, dnrm2

RCasum

takes the sum of the absolute values of a complex vector and returns real result.

scasum, dzasum

Rasum

takes the sum of the absolute values

sasum, dasum

iCasum

finds the index of element having max. absolute value.

icamax, izamax

iRamax

finds the index of element having max. absolute value.

isamax, idamax

RCabs1

computes absolute value of a complex number

scabs1, dzabs1

Mlsame

returns TRUE when two characteres are the same

lsame

Mxerbla

an error handler for the MPACK routines.

xerbla

MBLAS LEVEL 2 Routines

Routine name

Description

Example

BLAS corresopndant

Cgemv

y := alpha*A*x + beta*y, y := alpha*A'*x + beta*y, or y := alpha*conjg( A' )*x + beta*y

cgemv, zgemv

Rgemv

y := alpha*A*x + beta*y, y := alpha*A'*x + beta*y

sgemv, dgemv

Cgbmv

(Banded version) y := alpha*A*x + beta*y, y := alpha*A'*x + beta*y, or y := alpha*conjg( A' )*x + beta*y

cgbmv, zgbmv

Rgbmv

(Banded version) y := alpha*A*x + beta*y, y := alpha*A'*x + beta*y

sgbmv, dgbmv

Chemv

y := alpha*A*x + beta*y, where A is an hermitian

chemv, zhemv

Chbmv

(Banded version)y := alpha*A*x + beta*y, where A is an hermitian

chbmv, zhbmv

Chpmv

(Packed version)y := alpha*A*x + beta*y, where A is an hermitian

chpmv, zhpmv

Rsymv

y := alpha*A*x + beta*y, where A is a symmetric

ssymv, dsymv

Rsbmv

(Banded version)y := alpha*A*x + beta*y, where A is a symmetric

ssbmv, ssbmv

Rspmv

(Packed version)y := alpha*A*x + beta*y, where A is a symmetric

sspmv, dspmv

Ctrmv

x := A*x, or x := A'*x, or x := conjg( A' )*x

ctrmv, ztrmv

Cgemv

y := alpha*A*x + beta*y, or y := alpha*A'*x + beta*y, or y := alpha*conjg( A' )*x + beta*y

cgemv, zgemv

Cgemv

y := alpha*A*x + beta*y, or y := alpha*A'*x + beta*y, or y := alpha*conjg( A' )*x + beta*y

cgemv, zgemv

Rgemv

y := alpha*A*x + beta*y, or y := alpha*A'*x + beta*y

sgemv, dgemv

Cgbmv

(Banded version)y := alpha*A*x + beta*y, or y := alpha*A'*x + beta*y, or y := alpha*conjg( A' )*x + beta*y,

cgbmv, zgbmv

Rgbmv

(Banded version) y := alpha*A*x + beta*y, or y := alpha*A'*x + beta*y,

sgbmv, dgbmv

Chemv

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

chemv, zhemv

Chbmv

(Banded version)y := alpha*A*x + beta*y A is an Hermitian

chbmv, zhbmv

Chpmv

(Packed) y := alpha*A*x + beta*y, A is an hermitian

chpmv, zhpmv

Rsymv

y := alpha*A*x + beta*y, A is a symmetric

ssymv, dsymv

Rsbmv

(Banded version)y := alpha*A*x + beta*y, A is symmetric

ssbmv, dsbmv

Rspmv

(Packed)y := alpha*A*x + beta*y, A is a symmetric

sspmv, dspmv

Ctrmv

x := A*x, or x := A'*x, or x := conjg( A' )*x

ctrmv, ztrmv

Rtrmv

x := A*x, or x := A'*x

strmv, dtrmv

Ctbmv

(Banded version) x := A*x, or x := A'*x, or x := conjg( A' )*x, A is a triangular matrix

ctbmv, ztbmv

Ctpmv

(Packed version) x := A*x, or x := A'*x, or x := conjg( A' )*x,

ctpmv, ztpmv

Rtpmv

(Packed version) x := A*x, or x := A'*x, where A is a triangular matrix

stpmv, dtpmv

Rtpmv

(Packed version)x := A*x, or x := A'*x, where A is a triangular matrix

stpmv, dtpmv

Ctrsv

solves A*x = b, or A'*x = b, or conjg( A' )*x = b , where A is a triangular

ctrsv, ztrsv

Rtrsv

solves A*x = b, or A'*x = b, where A is a triangular

strsv, dtrsv

Ctbsv

(Banded version)solves A*x = b, or A'*x = b, or conjg( A' )*x = b, where A is a trianglar

ctbsv, ztbsv

Rtbsv

(Banded version)solves A*x = b, or A'*x = b, where A is a trianglar

stbsv, dtbsv

Ctpsv

(Packed version) x := A*x, or x := A'*x, conjg( A' )*x = where A is a triangular

ctpsv, ztpsv

Rtpsv

(Packed version) x := A*x, or x := A'*x where A is a triangular

stpsv, dtpsv

Rger

A := alpha*x*y' + A

sger, dger

Cgeru

A := alpha*x*y' + A

cgeru, zgeru

Cgerc

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

cgerc, zgerc

Cher

A := alpha*x*conjg( x' ) + A, where A is a hermitian

cher, zher

Chpr

(Packed version) A := alpha*x*conjg( x' ) + A, A is a hermitian

chpr, zhpr

Cher2

A := alpha*x*conjg( y' ) + conjg( alpha )*y*conjg( x' ) + A,where A is a hermitian

cher2, zher2

Chpr2

(Packed version) A := alpha*x*conjg( y' ) + conjg( alpha )*y*conjg( x' ) + A,where A is a hermitian

chpr2, zhpr2

Rsyr

A := alpha*x*x' + A, A is a symmetric

ssyr, dsyr

Rspr

(Packed version)A := alpha*x*x' + A, A is a symmetric

sspr, dspr

Rsyr2

A := alpha*x*y' + alpha*y*x' + A, where A is a symmetric

ssyr2, dsyr2

Rspr2

(Packed version) A := alpha*x*y' + alpha*y*x' + A, is a symmetric

sspr2, dspr2

MBLAS LEVEL 3 Routines

Routine name

Description

Example

BLAS corresopndant

Cgemm

C := alpha*op( A )*op( B ) + beta*C

cgemm, zgemm

Rgemm

C := alpha*op( A )*op( B ) + beta*C

sgemm, dgemm

Csymm

C := alpha*A*B + beta*C, or C := alpha*B*A + beta*C, A is a symmetric

csymm, zsymm

Rsymm

C := alpha*A*B + beta*C, or C := alpha*B*A + beta*C, A is a symmetric

ssymm, dsymm

Chemm

C := alpha*A*B + beta*C, or C := alpha*B*A + beta*C, A is an hermitian

chemm, zhemm

Csyrk

C := alpha*A*A' + beta*C, or C := alpha*A'*A + beta*C, C is a symmetric

csyrk, zsyrk

Rsyrk

C := alpha*A*A' + beta*C, or C := alpha*A'*A + beta*C, C is a symmetric

ssyrk, dsyrk

Cherk

C := alpha*A*conjg( A' ) + beta*C, or C := alpha*conjg( A' )*A + beta*C, C is an hermitian

cherk, zherk

Csyr2k

C := alpha*A*B' + alpha*B*A' + beta*C, or C := alpha*A'*B + alpha*B'*A + beta*C, where C is a symmetric

csyr2k, zsyr2k

Rsyr2k

C := alpha*A*B' + alpha*B*A' + beta*C, or C := alpha*A'*B + alpha*B'*A + beta*C, where C is a symmetric

ssyr2k, dsyr2k

Cher2k

C := alpha*A*B' + alpha*B*A' + beta*C, or C := alpha*A'*B + alpha*B'*A + beta*C, where C is an hermitian

cher2k, zher2k

Ctrmm

B := alpha*op( A )*B, or B := alpha*B*op(A)

ctrmm, ztrmm

Rtrmm

B := alpha*op( A )*B, or B := alpha*B*op(A)

strmm, dtrmm

Ctrsm

op( A )*X = alpha*B, or X*op( A ) = alpha*B

ctrsm, ztrsm

Rtrsm

op( A )*X = alpha*B, or X*op( A ) = alpha*B

strsm, dtrsm


$Id: mblas_routines.html,v 1.3 2009/12/22 09:15:41 nakatamaho Exp $