Difference between revisions of "LAPACK"

From CBLFS
Jump to navigationJump to search
Line 51: Line 51:
 
Compile the LAPACK libraries:
 
Compile the LAPACK libraries:
  
  ./configure --libdir=/usr/lib/lapack/reference --with-blas="$(pkg-config --libs blas)" &&
+
  ./configure --prefix=/usr --libdir=/usr/lib/lapack/reference --with-blas="$(pkg-config --libs blas)" &&
 
  make
 
  make
  
Line 89: Line 89:
 
Compile the LAPACK libraries:
 
Compile the LAPACK libraries:
  
  ./configure --libdir=/usr/lib/lapack/reference --with-blas="$(pkg-config --libs blas)" &&
+
  ./configure --prefix=/usr --libdir=/usr/lib/lapack/reference --with-blas="$(pkg-config --libs blas)" &&
 
  make
 
  make
  
Line 117: Line 117:
 
Compile the LAPACK libraries:
 
Compile the LAPACK libraries:
  
  ./configure --libdir=/usr/lib32/lapack/reference --with-blas="$(pkg-config --libs blas)" &&
+
  ./configure --prefix=/usr --libdir=/usr/lib32/lapack/reference --with-blas="$(pkg-config --libs blas)" &&
 
  make
 
  make
  
Line 145: Line 145:
 
Compile the LAPACK libraries:
 
Compile the LAPACK libraries:
  
  ./configure --libdir=/usr/lib64/lapack/reference --with-blas="$(pkg-config --libs blas)" &&
+
  ./configure --prefix=/usr --libdir=/usr/lib64/lapack/reference --with-blas="$(pkg-config --libs blas)" &&
 
  make
 
  make
  

Revision as of 11:16, 29 February 2008

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 --prefix=/usr --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 --prefix=/usr --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 --prefix=/usr --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 --prefix=/usr --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.