From 5c58c6edda07e99337216cc84871b370d34b227d Mon Sep 17 00:00:00 2001 From: jtb Date: Tue, 29 Apr 2003 22:48:45 +0000 Subject: 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. --- math/fftw/DESCR | 11 +++++++++-- math/fftw/Makefile | 23 +++++++++++++++-------- math/fftw/PLIST | 42 +++++++++++++++++++++--------------------- math/fftw/buildlink2.mk | 10 +++++----- math/fftw/distinfo | 11 ++++++----- math/fftw/patches/patch-aa | 16 ---------------- math/fftw/patches/patch-ab | 44 -------------------------------------------- 7 files changed, 56 insertions(+), 101 deletions(-) delete mode 100644 math/fftw/patches/patch-aa delete mode 100644 math/fftw/patches/patch-ab (limited to 'math/fftw') 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* -- cgit v1.2.3