summaryrefslogtreecommitdiff
path: root/math/arpack
diff options
context:
space:
mode:
authorasau <asau>2012-05-29 16:38:01 +0000
committerasau <asau>2012-05-29 16:38:01 +0000
commit33e8bc9e8c754384b34e342a1f49201d953ac850 (patch)
treeaed95a2193cc7c4e9c00ea965d831b7ff081a5f5 /math/arpack
parentfd0a8ad8c70c20a6b42a5cf9f4fb7a446ed17912 (diff)
downloadpkgsrc-33e8bc9e8c754384b34e342a1f49201d953ac850.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/DESCR35
-rw-r--r--math/arpack/Makefile29
-rw-r--r--math/arpack/PLIST2
-rw-r--r--math/arpack/buildlink3.mk14
-rw-r--r--math/arpack/distinfo10
-rw-r--r--math/arpack/patches/patch-ARmake.inc51
-rw-r--r--math/arpack/patches/patch-UTIL_second.f16
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 ..
+ *