diff options
author | asau <asau> | 2012-05-29 16:38:01 +0000 |
---|---|---|
committer | asau <asau> | 2012-05-29 16:38:01 +0000 |
commit | 2e83fc65f7f1b9c6aff993968c630f2f92729977 (patch) | |
tree | aed95a2193cc7c4e9c00ea965d831b7ff081a5f5 /math/arpack | |
parent | e76681f0b4f145317130bd9b9c1e270876639f84 (diff) | |
download | pkgsrc-2e83fc65f7f1b9c6aff993968c630f2f92729977.tar.gz |
Import ARPACK 96 as math/arpack.
Contributed to pkgsrc-wip by Jason Bacon.
ARPACK is a collection of Fortran77 subroutines designed to solve large
scale eigenvalue problems.
The package is designed to compute a few eigenvalues and corresponding
eigenvectors of a general n by n matrix A. It is most appropriate for large
sparse or structured matrices A where structured means that a matrix-vector
product w <- Av requires order n rather than the usual order n**2 floating
point operations. This software is based upon an algorithmic variant of the
Arnoldi process called the Implicitly Restarted Arnoldi Method (IRAM). When
the matrix A is symmetric it reduces to a variant of the Lanczos process
called the Implicitly Restarted Lanczos Method (IRLM). These variants may be
viewed as a synthesis of the Arnoldi/Lanczos process with the Implicitly
Shifted QR technique that is suitable for large scale problems. For many
standard problems, a matrix factorization is not required. Only the action
of the matrix on a vector is needed. ARPACK software is capable of solving
large scale symmetric, nonsymmetric, and generalized eigenproblems from
significant application areas. The software is designed to compute a few (k)
eigenvalues with user specified features such as those of largest real part
or largest magnitude. Storage requirements are on the order of n*k locations.
No auxiliary storage is required. A set of Schur basis vectors for the desired
k-dimensional eigen-space is computed which is numerically orthogonal to working
precision. Numerically accurate eigenvectors are available on request.
Important Features:
o Reverse Communication Interface.
o Single and Double Precision Real Arithmetic Versions for Symmetric,
Non-symmetric, Standard or Generalized Problems.
o Single and Double Precision Complex Arithmetic Versions for Standard
or Generalized Problems.
o Routines for Banded Matrices - Standard or Generalized Problems.
o Routines for The Singular Value Decomposition.
o Example driver routines that may be used as templates to implement
numerous Shift-Invert strategies for all problem types, data types
and precision.
Diffstat (limited to 'math/arpack')
-rw-r--r-- | math/arpack/DESCR | 35 | ||||
-rw-r--r-- | math/arpack/Makefile | 29 | ||||
-rw-r--r-- | math/arpack/PLIST | 2 | ||||
-rw-r--r-- | math/arpack/buildlink3.mk | 14 | ||||
-rw-r--r-- | math/arpack/distinfo | 10 | ||||
-rw-r--r-- | math/arpack/patches/patch-ARmake.inc | 51 | ||||
-rw-r--r-- | math/arpack/patches/patch-UTIL_second.f | 16 |
7 files changed, 157 insertions, 0 deletions
diff --git a/math/arpack/DESCR b/math/arpack/DESCR new file mode 100644 index 00000000000..ded552c3db2 --- /dev/null +++ b/math/arpack/DESCR @@ -0,0 +1,35 @@ +ARPACK is a collection of Fortran77 subroutines designed to solve large +scale eigenvalue problems. + +The package is designed to compute a few eigenvalues and corresponding +eigenvectors of a general n by n matrix A. It is most appropriate for large +sparse or structured matrices A where structured means that a matrix-vector +product w <- Av requires order n rather than the usual order n**2 floating +point operations. This software is based upon an algorithmic variant of the +Arnoldi process called the Implicitly Restarted Arnoldi Method (IRAM). When +the matrix A is symmetric it reduces to a variant of the Lanczos process +called the Implicitly Restarted Lanczos Method (IRLM). These variants may be +viewed as a synthesis of the Arnoldi/Lanczos process with the Implicitly +Shifted QR technique that is suitable for large scale problems. For many +standard problems, a matrix factorization is not required. Only the action +of the matrix on a vector is needed. ARPACK software is capable of solving +large scale symmetric, nonsymmetric, and generalized eigenproblems from +significant application areas. The software is designed to compute a few (k) +eigenvalues with user specified features such as those of largest real part +or largest magnitude. Storage requirements are on the order of n*k locations. +No auxiliary storage is required. A set of Schur basis vectors for the desired +k-dimensional eigen-space is computed which is numerically orthogonal to working +precision. Numerically accurate eigenvectors are available on request. + +Important Features: + + o Reverse Communication Interface. + o Single and Double Precision Real Arithmetic Versions for Symmetric, + Non-symmetric, Standard or Generalized Problems. + o Single and Double Precision Complex Arithmetic Versions for Standard + or Generalized Problems. + o Routines for Banded Matrices - Standard or Generalized Problems. + o Routines for The Singular Value Decomposition. + o Example driver routines that may be used as templates to implement + numerous Shift-Invert strategies for all problem types, data types + and precision. diff --git a/math/arpack/Makefile b/math/arpack/Makefile new file mode 100644 index 00000000000..5d182b47028 --- /dev/null +++ b/math/arpack/Makefile @@ -0,0 +1,29 @@ +# $NetBSD: Makefile,v 1.1.1.1 2012/05/29 16:38:01 asau Exp $ + +DISTNAME= arpack96 +PKGNAME= arpack-96 +CATEGORIES= math +MASTER_SITES= http://www.caam.rice.edu/software/ARPACK/SRC/ +DISTFILES= arpack96.tar.gz patch.tar.gz + +MAINTAINER= jwbacon@tds.net +HOMEPAGE= http://www.caam.rice.edu/software/ARPACK/SRC/ +COMMENT= Library of subroutines to solve eigenvalue problems +LICENSE= original-bsd + +PKG_DESTDIR_SUPPORT= user-destdir + +WRKSRC= ${WRKDIR}/ARPACK +USE_LANGUAGES= fortran77 +MAKE_ENV+= WRKSRC=${WRKSRC} + +INSTALLATION_DIRS= lib + +# Patches must be extracted AFTER the main dist to overwrite files +post-extract: + cd ${WRKDIR} && ${TAR} -zxf ${DISTDIR}/patch.tar.gz + +do-install: + ${INSTALL_DATA} ${WRKSRC}/libarpack.a ${DESTDIR}${PREFIX}/lib + +.include "../../mk/bsd.pkg.mk" diff --git a/math/arpack/PLIST b/math/arpack/PLIST new file mode 100644 index 00000000000..c9496ace88b --- /dev/null +++ b/math/arpack/PLIST @@ -0,0 +1,2 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 2012/05/29 16:38:01 asau Exp $ +lib/libarpack.a diff --git a/math/arpack/buildlink3.mk b/math/arpack/buildlink3.mk new file mode 100644 index 00000000000..762787a3133 --- /dev/null +++ b/math/arpack/buildlink3.mk @@ -0,0 +1,14 @@ +# $NetBSD: buildlink3.mk,v 1.1.1.1 2012/05/29 16:38:01 asau Exp $ + +BUILDLINK_DEPMETHOD.arpack?= build + +BUILDLINK_TREE+= arpack + +.if !defined(ARPACK_BUILDLINK3_MK) +ARPACK_BUILDLINK3_MK:= + +BUILDLINK_API_DEPENDS.arpack+= arpack>=96 +BUILDLINK_PKGSRCDIR.arpack?= ../../math/arpack +.endif # ARPACK_BUILDLINK3_MK + +BUILDLINK_TREE+= -arpack diff --git a/math/arpack/distinfo b/math/arpack/distinfo new file mode 100644 index 00000000000..7f17e87057c --- /dev/null +++ b/math/arpack/distinfo @@ -0,0 +1,10 @@ +$NetBSD: distinfo,v 1.1.1.1 2012/05/29 16:38:01 asau Exp $ + +SHA1 (arpack96.tar.gz) = 3f91de2b39b484bc8365f8048c9eb109e0306e1c +RMD160 (arpack96.tar.gz) = 3d1c1c307223961506066f895b7ab291861e73fe +Size (arpack96.tar.gz) = 636865 bytes +SHA1 (patch.tar.gz) = 9fc6db4180d516d834d959a5f079e63f174f98fa +RMD160 (patch.tar.gz) = 4ccda2de8dc04c9ecb0ea722f230f5dd5c981154 +Size (patch.tar.gz) = 226473 bytes +SHA1 (patch-ARmake.inc) = f3e11d5ef8f11c8c253a487baec5e0b18aa07a8c +SHA1 (patch-UTIL_second.f) = 6a9d03f815b6d73669e637f5bfae6e8d38df90fd diff --git a/math/arpack/patches/patch-ARmake.inc b/math/arpack/patches/patch-ARmake.inc new file mode 100644 index 00000000000..b6ecfd3f488 --- /dev/null +++ b/math/arpack/patches/patch-ARmake.inc @@ -0,0 +1,51 @@ +$NetBSD: patch-ARmake.inc,v 1.1.1.1 2012/05/29 16:38:01 asau Exp $ + +--- ARmake.inc.orig 1996-04-26 19:12:57.000000000 +0000 ++++ ARmake.inc +@@ -25,14 +25,14 @@ + # | other than your home directory. | + # %--------------------------------------% + # +-home = $(HOME)/ARPACK ++home = ${WRKSRC} + # + # %--------------------------------------% + # | The platform identifier to suffix to | + # | the end of library names | + # %--------------------------------------% + # +-PLAT = SUN4 ++# PLAT = SUN4 + # + # %------------------------------------------------------% + # | The directories to find the various pieces of ARPACK | +@@ -57,7 +57,7 @@ DIRS = $(BLASdir) $(LAPACKdir) $( + # | The name of the libraries to be created/linked to | + # %---------------------------------------------------% + # +-ARPACKLIB = $(home)/libarpack_$(PLAT).a ++ARPACKLIB = $(home)/libarpack.a + LAPACKLIB = + BLASLIB = + # +@@ -101,8 +101,9 @@ ALIBS = $(ARPACKLIB) $(LAPACKLIB) $(BLA + # | for your system. | + # %-----------------------------------------% + # +-FC = f77 +-FFLAGS = -O -cg89 ++# Provided by pkgsrc ++# FC = gfortran ++FFLAGS = -O -fPIC + + LDFLAGS = + CD = cd +@@ -112,7 +113,7 @@ ECHO = echo + LN = ln + LNFLAGS = -s + +-MAKE = /bin/make ++# MAKE = /bin/make + + RM = rm + RMFLAGS = -f diff --git a/math/arpack/patches/patch-UTIL_second.f b/math/arpack/patches/patch-UTIL_second.f new file mode 100644 index 00000000000..7423a03927b --- /dev/null +++ b/math/arpack/patches/patch-UTIL_second.f @@ -0,0 +1,16 @@ +$NetBSD: patch-UTIL_second.f,v 1.1.1.1 2012/05/29 16:38:01 asau Exp $ + +--- UTIL/second.f.orig 1995-10-02 18:56:44.000000000 +0000 ++++ UTIL/second.f +@@ -20,8 +20,9 @@ + REAL TARRAY( 2 ) + * .. + * .. External Functions .. +- REAL ETIME +- EXTERNAL ETIME ++* ETIME is intrinsic, so this causes undefined reference errors in newer gcc ++* REAL ETIME ++* EXTERNAL ETIME + * .. + * .. Executable Statements .. + * |