Presentation:
The BLAS (Basic Linear Algebra Subprograms) are routines that provide standard building blocks for performing basic vector and matrix operations. The Level 1 BLAS perform scalar, vector and vectorvector operations, the Level 2 BLAS perform matrixvector operations, and the Level 3 BLAS perform matrixmatrix operations. Because the BLAS are efficient, portable, and widely available, they are commonly used in the development of high quality linear algebra software, LAPACK for example.
Acknowledgments:
This material is based upon work supported by the National Science Foundation under Grant No. ASC9313958 and DOE Grant No. DEFG0394ER25219. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF) or the Department of Energy (DOE).
History
Discover the great history behind BLAS. On April 2004 an oral history interview was conducted as part of the SIAM project on the history of software for scientific computing and numerical analysis. This interview is being conducted with Professor Jack Dongarra in his office at the University of Tennessee. The interviewer is Thomas Haigh. 
Software:
Licensing:
The reference BLAS is a freelyavailable software package. It is available from netlib via anonymous ftp and the World Wide Web. Thus, it can be included in commercial software packages (and has been). We only ask that proper credit be given to the authors.
Like all software, it is copyrighted. It is not trademarked, but we do ask the following:

If you modify the source for these routines we ask that you change the name of the routine and comment the changes made to the original.

We will gladly answer any questions regarding the software. If a modification is done, however, it is the responsibility of the person who modified the routine to provide support.
Level 3 BLAS tuned for single processors with caches

Downlaod ssgemmbased.tgz

Written by Kagstrom B., Ling P., and Van Loan C.

High Performance GEMMBased Level3 BLAS Webpage  Fortran (High Performance Computing II, 1991, NorthHolland)
Extended precision Level 2 BLAS routines

Download ecblas2.f
BLAS for windows
The reference BLAS is included inside the LAPACK package. Please refer tools built under Windows using Cmake the crossplatform, opensource build system. The new build system was developed in collaboration with Kitware Inc.
A dedicated website (http://icl.cs.utk.edu/lapackforwindows/lapack/) is available for Windows users.

You will find information about your configuration need.

You will be able to download BLAS prebuilt libraries.
GIT Access
The LAPACK GIT (http://github.com/ReferenceLAPACK) repositories are to open for readonly for our users. The latest version of BLAS is included in LAPACK package.
We currently have three GIT respositories:

lapack  LAPACK development repository : http://github.com/ReferenceLAPACK/lapack

lapackrelease  LAPACK official release branches : http://github.com/ReferenceLAPACK/lapackrelease

lapackwww  LAPACK website : http://github.com/ReferenceLAPACK/lapackwww
Please use our LAPACK development repository to get the latest bug fixed, submit issues or pull requests.
Support
If you have any issue (install, performance), just post your questions on the the LAPACK User Forum. You can also send us an email at lapack@cs.utk.edu
Documentation
BLAS Technical Forum
The BLAS Technical Forum standard is a specification of a set of kernel routines for linear algebra, historically called the Basic Linear Algebra Subprograms. http://www.netlib.org/blas/blastforum/
Optimized BLAS Library
Machinespecific optimized BLAS libraries are available for a variety of computer architectures. These optimized BLAS libraries are provided by the computer vendor or by an independent software vendor (ISV) . For further details, please see our FAQs.
Alternatively, the user can download ATLAS to automatically generate an optimized BLAS library for his architecture. Some prebuilt optimized BLAS libraries are also available from the ATLAS site.
If all else fails, the user can download a Fortran77 reference implementation of the BLAS from netlib. However, keep in mind that this is a reference implementation and is not optimized.
BLAS vendor library List Last updated: July 20, 2005
BLAS Routines
LEVEL 1

SINGLE

SROTG  setup Givens rotation

SROTMG  setup modified Givens rotation

SROT  apply Givens rotation

SROTM  apply modified Givens rotation

SSWAP  swap x and y

SSCAL  x = a*x

SCOPY  copy x into y

SAXPY  y = a*x + y

SDOT  dot product

SDSDOT  dot product with extended precision accumulation

SNRM2  Euclidean norm

SCNRM2 Euclidean norm

SASUM  sum of absolute values

ISAMAX  index of max abs value


DOUBLE

DROTG  setup Givens rotation

DROTMG  setup modified Givens rotation

DROT  apply Givens rotation

DROTM  apply modified Givens rotation

DSWAP  swap x and y

DSCAL  x = a*x

DCOPY  copy x into y

DAXPY  y = a*x + y

DDOT  dot product

DSDOT  dot product with extended precision accumulation

DNRM2  Euclidean norm

DZNRM2  Euclidean norm

DASUM  sum of absolute values

IDAMAX  index of max abs value


COMPLEX

DOUBLE COMLPEX
LEVEL 2

Single

SGEMV  matrix vector multiply

SGBMV  banded matrix vector multiply

SSYMV  symmetric matrix vector multiply

SSBMV  symmetric banded matrix vector multiply

SSPMV  symmetric packed matrix vector multiply

STRMV  triangular matrix vector multiply

STBMV  triangular banded matrix vector multiply

STPMV  triangular packed matrix vector multiply

STRSV  solving triangular matrix problems

STBSV  solving triangular banded matrix problems

STPSV  solving triangular packed matrix problems

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

SSYR  performs the symmetric rank 1 operation A := alpha*x*x' + A

SSPR  symmetric packed rank 1 operation A := alpha*x*x' + A

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

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


Double

DGEMV  matrix vector multiply

DGBMV  banded matrix vector multiply

DSYMV  symmetric matrix vector multiply

DSBMV  symmetric banded matrix vector multiply

DSPMV  symmetric packed matrix vector multiply

DTRMV  triangular matrix vector multiply

DTBMV  triangular banded matrix vector multiply

DTPMV  triangular packed matrix vector multiply

DTRSV  solving triangular matrix problems

DTBSV  solving triangular banded matrix problems

DTPSV  solving triangular packed matrix problems

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

DSYR  performs the symmetric rank 1 operation A := alpha*x*x' + A

DSPR  symmetric packed rank 1 operation A := alpha*x*x' + A

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

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


Complex

CGEMV  matrix vector multiply

CGBMV  banded matrix vector multiply

CHEMV  hermitian matrix vector multiply

CHBMV  hermitian banded matrix vector multiply

CHPMV  hermitian packed matrix vector multiply

CTRMV  triangular matrix vector multiply

CTBMV  triangular banded matrix vector multiply

CTPMV  triangular packed matrix vector multiply

CTRSV  solving triangular matrix problems

CTBSV  solving triangular banded matrix problems

CTPSV  solving triangular packed matrix problems

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

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

CHER  hermitian rank 1 operation A := alpha*x*conjg(x') + A

CHPR  hermitian packed rank 1 operation A := alpha*x*conjg( x' ) + A

CHER2  hermitian rank 2 operation

CHPR2  hermitian packed rank 2 operation


Double Complex

ZGEMV  matrix vector multiply

ZGBMV  banded matrix vector multiply

ZHEMV  hermitian matrix vector multiply

ZHBMV  hermitian banded matrix vector multiply

ZHPMV  hermitian packed matrix vector multiply

ZTRMV  triangular matrix vector multiply

ZTBMV  triangular banded matrix vector multiply

ZTPMV  triangular packed matrix vector multiply

ZTRSV  solving triangular matrix problems

ZTBSV  solving triangular banded matrix problems

ZTPSV  solving triangular packed matrix problems

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

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

ZHER  hermitian rank 1 operation A := alpha*x*conjg(x') + A

ZHPR  hermitian packed rank 1 operation A := alpha*x*conjg( x' ) + A

ZHER2  hermitian rank 2 operation

ZHPR2  hermitian packed rank 2 operation

LEVEL 3

Single

Double

Complex

CGEMM  matrix matrix multiply

CSYMM  symmetric matrix matrix multiply

CHEMM  hermitian matrix matrix multiply

CSYRK  symmetric rankk update to a matrix

CHERK  hermitian rankk update to a matrix

CSYR2K  symmetric rank2k update to a matrix

CHER2K  hermitian rank2k update to a matrix

CTRMM  triangular matrix matrix multiply

CTRSM  solving triangular matrix with multiple right hand sides


Double Complex

ZGEMM  matrix matrix multiply

ZSYMM  symmetric matrix matrix multiply

ZHEMM  hermitian matrix matrix multiply

ZSYRK  symmetric rankk update to a matrix

ZHERK  hermitian rankk update to a matrix

ZSYR2K  symmetric rank2k update to a matrix

ZHER2K  hermitian rank2k update to a matrix

ZTRMM  triangular matrix matrix multiply

ZTRSM  solving triangular matrix with multiple right hand sides

Extended precision Level 2 BLAS routines

SUBROUTINE ECGEMV ( TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY )

SUBROUTINE ECGBMV ( TRANS, M, N, KL, KU, ALPHA, A, LDA, X, INCX, BETA, Y, INCY )

SUBROUTINE ECHEMV ( UPLO, N, ALPHA, A, LDA, X, INCX,BETA, Y, INCY )

SUBROUTINE ECHBMV ( UPLO, N, K, ALPHA, A, LDA, X, INCX,BETA, Y, INCY )

SUBROUTINE ECHPMV ( UPLO, N, ALPHA, AP, X, INCX, BETA, Y, INCY )

SUBROUTINE ECTRMV ( UPLO, TRANS, DIAG, N, A, LDA, X, INCX )

SUBROUTINE ECTBMV ( UPLO, TRANS, DIAG, N, K, A, LDA, X, INCX )

SUBROUTINE ECTPMV ( UPLO, TRANS, DIAG, N, AP, X, INCX )

SUBROUTINE ECTRSV ( UPLO, TRANS, DIAG, N, A, LDA, X, INCX )

SUBROUTINE ECTBSV ( UPLO, TRANS, DIAG, N, K, A, LDA, X, INCX )

SUBROUTINE ECTPSV ( UPLO, TRANS, DIAG, N, AP, X, INCX )

SUBROUTINE ECGERU ( M, N, ALPHA, X, INCX, Y, INCY, A, LDA )

SUBROUTINE ECGERC ( M, N, ALPHA, X, INCX, Y, INCY, A, LDA )

SUBROUTINE ECHER ( UPLO, N, ALPHA, X, INCX, A, LDA )

SUBROUTINE ECHPR ( UPLO, N, ALPHA, X, INCX, AP )

SUBROUTINE ECHER2 ( UPLO, N, ALPHA, X, INCX, Y, INCY, A, LDA )

SUBROUTINE ECHPR2 ( UPLO, N, ALPHA, X, INCX, Y, INCY, AP )