summaryrefslogtreecommitdiff
path: root/math/fftw
diff options
context:
space:
mode:
authorjtb <jtb@pkgsrc.org>2003-04-29 22:48:45 +0000
committerjtb <jtb@pkgsrc.org>2003-04-29 22:48:45 +0000
commit4c53ffc22a432030056aa343464ce73617790dda (patch)
treec834ed94e993120e9b7550632b1b271410cbf1c6 /math/fftw
parent0df227cfc5bb54444c5a023c92f00779b7a16aeb (diff)
downloadpkgsrc-4c53ffc22a432030056aa343464ce73617790dda.tar.gz
Update to version 3.0.
Major goals of this release: * Speed: often 20% or more faster than FFTW 2.x, even without SIMD (see below). * Complete rewrite, to make it easier to add new algorithms and transforms. * New API, to support more general semantics. Other enhancements: * SIMD acceleration on supporting CPUs (SSE, SSE2, 3DNow!, and AltiVec). (With special thanks to Franz Franchetti for many experimental prototypes and to Stefan Kral for the vectorizing generator from fftwgel.) * True in-place 1d transforms of large sizes (as well as compressed twiddle tables for additional memory/cache savings). * More arbitrary placement of real & imaginary data, e.g. including interleaved (as in FFTW 2.x) as well as separate real/imag arrays. * Efficient prime-size transforms of real data. * Multidimensional transforms can operate on a subset of a larger matrix, and/or transform selected dimensions of a multidimensional array. * By popular demand, simultaneous linking to double precision (fftw), single precision (fftwf), and long-double precision (fftwl) versions of FFTW is now supported. * Cycle counters (on all modern CPUs) are exploited to speed planning. * Efficient transforms of real even/odd arrays, a.k.a. discrete cosine/sine transforms (types I-IV). (Currently work via pre/post processing of real transforms, ala FFTPACK, so are not optimal.) * DHTs (Discrete Hartley Transforms), again via post-processing of real transforms (and thus suboptimal, for now). * Support for linking to just those parts of FFTW that you need, greatly reducing the size of statically linked programs when only a limited set of transform sizes/types are required. * Canonical global wisdom file (/etc/fftw/wisdom) on Unix, along with a command-line tool (fftw-wisdom) to generate/update it. * Fortran API can be used with both g77 and non-g77 compilers simultaneously. * Multi-threaded version has optional OpenMP support. * Authors' good looks have greatly improved with age.
Diffstat (limited to 'math/fftw')
-rw-r--r--math/fftw/DESCR11
-rw-r--r--math/fftw/Makefile23
-rw-r--r--math/fftw/PLIST42
-rw-r--r--math/fftw/buildlink2.mk10
-rw-r--r--math/fftw/distinfo11
-rw-r--r--math/fftw/patches/patch-aa16
-rw-r--r--math/fftw/patches/patch-ab44
7 files changed, 56 insertions, 101 deletions
diff --git a/math/fftw/DESCR b/math/fftw/DESCR
index 970c711ba28..72ebaaaca3c 100644
--- a/math/fftw/DESCR
+++ b/math/fftw/DESCR
@@ -1,2 +1,9 @@
-This is FFTW, v. 2.0. FFTW is a collection of fast C routines to
-compute the Discrete Fourier Transform in one or more dimensions.
+FFTW is a free collection of fast C routines for computing the
+Discrete Fourier Transform in one or more dimensions. It includes
+complex, real, symmetric, and parallel transforms, and can handle
+arbitrary array sizes efficiently. FFTW is typically faster than
+other publically-available FFT implementations, and is even
+competitive with vendor-tuned libraries. (See our web page for
+extensive benchmarks.) To achieve this performance, FFTW uses novel
+code-generation and runtime self-optimization techniques (along with
+many other tricks).
diff --git a/math/fftw/Makefile b/math/fftw/Makefile
index e38b5a62816..b1fbddb9aeb 100644
--- a/math/fftw/Makefile
+++ b/math/fftw/Makefile
@@ -1,22 +1,29 @@
-# $NetBSD: Makefile,v 1.6 2002/02/18 15:14:29 seb Exp $
+# $NetBSD: Makefile,v 1.7 2003/04/29 22:48:45 jtb Exp $
-DISTNAME= fftw-2.1.3
+PKGNAME= fftw-3.0
CATEGORIES= math
-MASTER_SITES= ftp://ftp.fftw.org/pub/fftw/
+MASTER_SITES= ftp://ftp.fftw.org/pub/fftw/ \
+ http://www.fftw.org/
+
+.if (${MACHINE_ARCH} == "i386")
+DISTNAME= fftw-3.0
+.else
+DISTNAME= fftw-3.0-fma
+.endif
MAINTAINER= root@garbled.net
HOMEPAGE= http://www.fftw.org/
COMMENT= Collection of fast C routines to compute DFTs
+USE_LIBTOOL= yes
+LIBTOOL_OVERRIDE= ${WRKSRC}/libtool
+PKGCONFIG_OVERRIDE+= ${WRKSRC}/fftw.pc.in
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --enable-shared
-.if ${MACHINE_ARCH} == "i386"
-CONFIGURE_ARGS+= --enable-i386-hacks
-.endif
USE_FORTRAN= yes
USE_GMAKE= yes
-INFO_FILES= fftw.info
-TEXINFO_OVERRIDE= YES
+INFO_FILES= fftw3.info
+TEXINFO_OVERRIDE= yes
.include "../../mk/texinfo.mk"
.include "../../mk/bsd.pkg.mk"
diff --git a/math/fftw/PLIST b/math/fftw/PLIST
index 27d89febea3..46183b27692 100644
--- a/math/fftw/PLIST
+++ b/math/fftw/PLIST
@@ -1,21 +1,21 @@
-@comment $NetBSD: PLIST,v 1.2 2002/02/18 15:14:29 seb Exp $
-@unexec ${INSTALL_INFO} --delete %D/info/fftw.info %D/info/dir
-info/fftw.info
-info/fftw.info-1
-info/fftw.info-2
-info/fftw.info-3
-info/fftw.info-4
-info/fftw.info-5
-@exec ${INSTALL_INFO} %D/info/fftw.info %D/info/dir
-include/fftw.h
-include/rfftw.h
-lib/libfftw.a
-lib/libfftw.la
-lib/libfftw.so
-lib/libfftw.so.2
-lib/libfftw.so.2.5
-lib/librfftw.a
-lib/librfftw.la
-lib/librfftw.so
-lib/librfftw.so.2
-lib/librfftw.so.2.5
+@comment $NetBSD: PLIST,v 1.3 2003/04/29 22:48:45 jtb Exp $
+bin/fftw-wisdom
+bin/fftw-wisdom-to-conf
+include/fftw3.f
+include/fftw3.h
+@unexec ${INSTALL_INFO} --delete --info-dir=%D/info %D/info/fftw3.info
+info/fftw3.info
+@exec ${INSTALL_INFO} --info-dir=%D/info %D/info/fftw3.info
+info/fftw3.info-1
+info/fftw3.info-2
+info/fftw3.info-3
+info/fftw3.info-4
+info/fftw3.info-5
+lib/libfftw3.a
+lib/libfftw3.la
+lib/libfftw3.so
+lib/libfftw3.so.3
+lib/libfftw3.so.${PKGVERSION}
+lib/pkgconfig/fftw3.pc
+man/man1/fftw-wisdom-to-conf.1
+man/man1/fftw-wisdom.1
diff --git a/math/fftw/buildlink2.mk b/math/fftw/buildlink2.mk
index 629f5a311e9..b558b0b7eed 100644
--- a/math/fftw/buildlink2.mk
+++ b/math/fftw/buildlink2.mk
@@ -1,4 +1,4 @@
-# $NetBSD: buildlink2.mk,v 1.2 2002/12/14 18:14:02 jmmv Exp $
+# $NetBSD: buildlink2.mk,v 1.3 2003/04/29 22:48:46 jtb Exp $
#
# This Makefile fragment is included by packages that use fftw.
#
@@ -9,14 +9,14 @@
FFTW_BUILDLINK2_MK= # defined
BUILDLINK_PACKAGES+= fftw
-BUILDLINK_DEPENDS.fftw?= fftw>=2.1.3
+BUILDLINK_DEPENDS.fftw?= fftw>=3.0
BUILDLINK_PKGSRCDIR.fftw?= ../../math/fftw
EVAL_PREFIX+= BUILDLINK_PREFIX.fftw=fftw
BUILDLINK_PREFIX.fftw_DEFAULT= ${LOCALBASE}
-BUILDLINK_FILES.fftw+= include/fftw.h
-BUILDLINK_FILES.fftw+= include/rfftw.h
-BUILDLINK_FILES.fftw+= lib/libfftw.*
+BUILDLINK_FILES.fftw+= include/fftw3.f
+BUILDLINK_FILES.fftw+= include/fftw3.h
+BUILDLINK_FILES.fftw+= lib/libfftw3.*
BUILDLINK_FILES.fftw+= lib/librfftw.*
BUILDLINK_TARGETS+= fftw-buildlink
diff --git a/math/fftw/distinfo b/math/fftw/distinfo
index 298e01ff6e9..c24941755e2 100644
--- a/math/fftw/distinfo
+++ b/math/fftw/distinfo
@@ -1,6 +1,7 @@
-$NetBSD: distinfo,v 1.3 2001/04/27 22:22:22 jtb Exp $
+$NetBSD: distinfo,v 1.4 2003/04/29 22:48:46 jtb Exp $
-SHA1 (fftw-2.1.3.tar.gz) = 5796f2f904f66630024bf130880ec845333cda18
-Size (fftw-2.1.3.tar.gz) = 1139406 bytes
-SHA1 (patch-aa) = 7a451f7aa2d4fe0e5134d014006c63d077951726
-SHA1 (patch-ab) = 64fdc5b9a8d6da22714ec0f05ff7716bfcbc696a
+SHA1 (fftw-3.0.tar.gz) = a4f33bdc975b24884c56c227e1ec02fa42185cac
+Size (fftw-3.0.tar.gz) = 1951812 bytes
+
+SHA1 (fftw-3.0-fma.tar.gz) = a0b5cc3ce30d4570d0b8971e3bd318bacd80dffa
+Size (fftw-3.0-fma.tar.gz) = 1964699 bytes
diff --git a/math/fftw/patches/patch-aa b/math/fftw/patches/patch-aa
deleted file mode 100644
index f1e2ce75479..00000000000
--- a/math/fftw/patches/patch-aa
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD: patch-aa,v 1.1 2001/03/03 07:33:47 toshii Exp $
-
---- doc/fftw.texi.orig Sat Mar 3 16:17:10 2001
-+++ doc/fftw.texi
-@@ -5,6 +5,11 @@
- @settitle FFTW
- @c %**end of header
-
-+@dircategory Libraries
-+@direntry
-+* FFTW: (fftw). Collection of fast C routines to compute DFTs.
-+@end direntry
-+
- @include version.texi
- @setchapternewpage odd
- @c define constant index (ct)
diff --git a/math/fftw/patches/patch-ab b/math/fftw/patches/patch-ab
deleted file mode 100644
index 8d4fd83be3d..00000000000
--- a/math/fftw/patches/patch-ab
+++ /dev/null
@@ -1,44 +0,0 @@
-$NetBSD: patch-ab,v 1.1 2001/04/27 22:22:23 jtb Exp $
-
---- configure.orig Mon Nov 8 01:45:45 1999
-+++ configure
-@@ -2215,6 +2215,7 @@
- int main() {
- foobar();
- ; return 0; }
-+void MAIN__(void){abort();}
- EOF
- if { (eval echo configure:2220: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
-@@ -2230,6 +2231,7 @@
- int main() {
- foobar_();
- ; return 0; }
-+void MAIN__(void){abort();}
- EOF
- if { (eval echo configure:2235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
-@@ -2245,6 +2247,7 @@
- int main() {
- FOOBAR();
- ; return 0; }
-+void MAIN__(void){abort();}
- EOF
- if { (eval echo configure:2250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
-@@ -2260,6 +2263,7 @@
- int main() {
- FOOBAR_();
- ; return 0; }
-+void MAIN__(void){abort();}
- EOF
- if { (eval echo configure:2265: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
-@@ -2337,6 +2341,7 @@
- int main() {
- $mangle_try();
- ; return 0; }
-+void MAIN__(void){abort();}
- EOF
- if { (eval echo configure:2342: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*