LAPACK

From CBLFS
Revision as of 07:33, 29 February 2008 by Weibullguy (talk | contribs)
Jump to navigationJump to search
Download Source: http://cross-lfs.org/~arowland/tarballs/l/lapack-lite-autotooled-3.1.1.tar.bz2

Introduction to LAPACK

LAPACK is a Linear Algebra PACKage that provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers. Dense and banded matrices are handled, but not general sparse matrices. In all areas, similar functionality is provided for real and complex matrices, in both single and double precision. LAPACK routines are written so that as much as possible of the computation is performed by calls to the BLAS.

LAPACK libraries can also be obtained from ATLAS or the microprocessor vendor's math library, such as AMD's ACML.

Project Homepage: http://www.netlib.org/lapack/

Caution.png

Note

These instructions use a source package that has been processed by GNU Autotools by a third party.

Dependencies

Required

One of the following is required to build LAPACK:

  • GCC-3.3 built with F77 support
  • GCC built with gfortran support

Recommended

Either BLAS or ACML are recommended otherwise LAPACK will install an unoptimized version of this library.

Configuration Information

Caution.png

Note

Do not remove the source tree if you plan to build the LAPACK 95 interface.

Non-Multilib

First we create a make.inc to use in our build. Please note that these seds presumes you have CFLAGS and LDFLAGS set.

If you are using gfortran:

sed -e "s:g77:gfortran:" \
    -e "s:-funroll-all-loops -O3:${CFLAGS} $(pkg-config --cflags blas):" \
    -e "s:LOADOPTS =:LOADOPTS = ${LDFLAGS} $(pkg-config --cflags blas):" \
    -e "s:../../blas\$(PLAT).a:$(pkg-config --libs blas):" \
    -e "s:lapack\$(PLAT).a:SRC/.libs/liblapack.a:" make.inc.example > make.inc

If you are using g77:

sed -e "s:-funroll-all-loops -O3:${CFLAGS} $(pkg-config --cflags blas):" \
    -e "s:LOADOPTS =:LOADOPTS = ${LDFLAGS} $(pkg-config --cflags blas):" \
    -e "s:../../blas\$(PLAT).a:$(pkg-config --libs blas):" \
    -e "s:lapack\$(PLAT).a:SRC/.libs/liblapack.a:" make.inc.example > make.inc

Compile the LAPACK libraries:

./configure --libdir=/usr/lib/lapack/reference --with-blas="$(pkg-config --libs blas)" &&
make

Install the libraries:

make install

Install the documentation that comes with the LAPACK library:

install -v -m755 -d /usr/share/doc/LAPACK-3.1.1/html &&
install -v INSTALL/lawn81.{pdf,ps} /usr/share/doc/LAPACK-3.1.1/ &&
for doc in html/*.html; do
  cp -v $doc /usr/share/doc/LAPACK-3.1.1/html
done

Multilib

32Bit

First we create a make.inc to use in our build. Please note that these seds presumes you have CFLAGS and LDFLAGS set.

If you are using gfortran:

sed -e "s:g77:gfortran:" \
    -e "s:-funroll-all-loops -O3:${BUILD32} $(pkg-config --cflags blas):" \
    -e "s:LOADOPTS =:LOADOPTS = ${LD_BUILD32} $(pkg-config --cflags blas):" \
    -e "s:../../blas\$(PLAT).a:$(pkg-config --libs blas):" \
    -e "s:lapack\$(PLAT).a:SRC/.libs/liblapack.a:" make.inc.example > make.inc

If you are using g77:

sed -e "s:-funroll-all-loops -O3:${BUILD32} $(pkg-config --cflags blas):" \
    -e "s:LOADOPTS =:LOADOPTS = ${LD_BUILD32} $(pkg-config --cflags blas):" \
    -e "s:../../blas\$(PLAT).a:$(pkg-config --libs blas):" \
    -e "s:lapack\$(PLAT).a:SRC/.libs/liblapack.a:" make.inc.example > make.inc

Compile the LAPACK libraries:

./configure --libdir=/usr/lib/lapack/reference --with-blas="$(pkg-config --libs blas)" &&
make

Install the libraries:

make install

N32

First we create a make.inc to use in our build. Please note that these seds presumes you have CFLAGS and LDFLAGS set.

If you are using gfortran:

sed -e "s:g77:gfortran:" \
    -e "s:-funroll-all-loops -O3:${BUILDN32} $(pkg-config --cflags blas):" \
    -e "s:LOADOPTS =:LOADOPTS = ${LD_BUILDN32} $(pkg-config --cflags blas):" \
    -e "s:../../blas\$(PLAT).a:$(pkg-config --libs blas):" \
    -e "s:lapack\$(PLAT).a:SRC/.libs/liblapack.a:" make.inc.example > make.inc

If you are using g77:

sed -e "s:-funroll-all-loops -O3:${BUILDN32} $(pkg-config --cflags blas):" \
    -e "s:LOADOPTS =:LOADOPTS = ${LD_BUILDN32} $(pkg-config --cflags blas):" \
    -e "s:../../blas\$(PLAT).a:$(pkg-config --libs blas):" \
    -e "s:lapack\$(PLAT).a:SRC/.libs/liblapack.a:" make.inc.example > make.inc

Compile the LAPACK libraries:

./configure --libdir=/usr/lib32/lapack/reference --with-blas="$(pkg-config --libs blas)" &&
make

Install the libraries:

make install

64Bit

First we create a make.inc to use in our build. Please note that these seds presumes you have CFLAGS and LDFLAGS set.

If you are using gfortran:

sed -e "s:g77:gfortran:" \
    -e "s:-funroll-all-loops -O3:${BUILD64} $(pkg-config --cflags blas):" \
    -e "s:LOADOPTS =:LOADOPTS = ${LD_BUILD64} $(pkg-config --cflags blas):" \
    -e "s:../../blas\$(PLAT).a:$(pkg-config --libs blas):" \
    -e "s:lapack\$(PLAT).a:SRC/.libs/liblapack.a:" make.inc.example > make.inc

If you are using g77:

sed -e "s:-funroll-all-loops -O3:${BUILD64} $(pkg-config --cflags blas):" \
    -e "s:LOADOPTS =:LOADOPTS = ${LD_BUILD64} $(pkg-config --cflags blas):" \
    -e "s:../../blas\$(PLAT).a:$(pkg-config --libs blas):" \
    -e "s:lapack\$(PLAT).a:SRC/.libs/liblapack.a:" make.inc.example > make.inc

Compile the LAPACK libraries:

./configure --libdir=/usr/lib64/lapack/reference --with-blas="$(pkg-config --libs blas)" &&
make

Install the libraries:

make install

Install the documentation that comes with the LAPACK library:

install -v -m755 -d /usr/share/doc/LAPACK-3.1.1/html &&
install -v INSTALL/lawn81.{pdf,ps} /usr/share/doc/LAPACK-3.1.1/ &&
for doc in html/*.html; do
  cp -v $doc /usr/share/doc/LAPACK-3.1.1/html
done

Contents

Installed Libraries: liblapack.{a,la,so}

Short Description

liblapack.a Library containing the linear algebra functions.