aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludovic.courtes@inria.fr>2018-01-30 15:35:54 +0100
committerLudovic Courtès <ludo@gnu.org>2018-01-30 16:21:43 +0100
commitea5624739855f1770c960859e73d3758a95b7282 (patch)
tree82daf4d9ac6d794b375f603e92eb97bd1fa4f6f3
parent4b0bf9909774d47ca21ff3b537a0895c1209aa5e (diff)
downloadguix-ea5624739855f1770c960859e73d3758a95b7282.tar
guix-ea5624739855f1770c960859e73d3758a95b7282.tar.gz
gnu: fftw: Add "fftw-avx" optimized variant.
* gnu/packages/algebra.scm (fftw-avx): New variable.
-rw-r--r--gnu/packages/algebra.scm23
1 files changed, 23 insertions, 0 deletions
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 2c508b6e35..e86f8367aa 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -589,6 +589,29 @@ cosine/ sine transforms or DCT/DST).")
(base32
"0wsms8narnbhfsa8chdflv2j9hzspvflblnqdn7hw8x5xdzrnq1v"))))))
+(define-public fftw-avx
+ (package
+ (inherit fftw-3.3.7)
+ (name "fftw-avx")
+ (arguments
+ (substitute-keyword-arguments (package-arguments fftw-3.3.7)
+ ((#:configure-flags flags ''())
+ ;; Enable AVX & co. See details at:
+ ;; <http://fftw.org/fftw3_doc/Installation-on-Unix.html>.
+ `(append '("--enable-avx" "--enable-avx2" "--enable-avx512"
+ "--enable-avx-128-fma")
+ ,flags))
+ ((#:substitutable? _ #f)
+ ;; To run the tests, we must have a CPU that supports all these
+ ;; extensions. Since we cannot be sure that machines in the build
+ ;; farm support them, disable substitutes altogether.
+ #f)
+ ((#:phases _)
+ ;; Since we're not providing binaries, let '-mtune=native' through.
+ '%standard-phases)))
+ (synopsis "Computing the discrete Fourier transform (AVX2-optimized)")
+ (supported-systems '("x86_64-linux"))))
+
(define-public eigen
(package
(name "eigen")