# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

PortSystem          1.0
PortGroup           compilers 1.0
PortGroup           github 1.0

github.setup        NFFT nfft 3.5.0
github.tarball_from releases

name                nfft-3
categories          math
license             GPL-2+
platforms           darwin
maintainers         nfft.org:jens openmaintainer
homepage            http://www.nfft.org/

description         Fast C routines to compute the Non-equispaced Discrete Fourier Transform
long_description    NFFT3 is a software library written in C for computing nonequispaced fast Fourier \n\
                    and related transformations. In detail, NFFT3 implements \n\
                    1) The nonequispaced fast Fourier transform (NFFT) \n\
                       - the forward transform (NFFT) \n\
                       - the adjoint transform (adjoint NFFT) \n\
                    2) Generalisations of the NFFT \n\
                       - to arbitrary knots in time and frequency domain (NNFFT) \n\
                       - to the sphere S^2 (NFSFT) \n\
                       - to the hyperbolic cross (NSFFT) \n\
                       - to real-valued data, i.e. (co)sine transforms, (NFCT, NFST) \n\
                       - to the rotation group (NFSOFT) \n\
                     3) Generalised inverses based on iterative methods, e.g. CGNR, CGNE \n\
                     4) Applications in \n\
                        - medical imaging \n\
                          * magnetic resonance imaging \n\
                          * computerised tomography \n\
                        - summation schemes \n\
                          * fast Gauss transform (FGT) \n\
                          * singular kernels \n\
                          * zonal kernels \n\
                        - polar FFT, discrete Radon transform, ridgelet transform

checksums           rmd160  f628d634eeffa5b9f27e28f18acf63aa59befb79 \
                    sha256  5f78a9d2a675aee7ace55c96bdf1b54f049e05a1dd50697757bdc609a8586a07 \
                    size    5175253

depends_lib         port:fftw-3

use_autoreconf      no
configure.args      --enable-shared --enable-static --enable-all
use_parallel_build  yes

test.run yes
test.target check

variant kaiserbessel description {compile with Kaiser-Bessel window (default)} conflicts gaussian bspline sinc {
    configure.args-append   --with-window=kaiserbessel
}

variant gaussian description {compile with Gaussian window} conflicts kaiserbessel bspline sinc {
    configure.args-append   --with-window=gaussian
}

variant bspline description {compile with B-Spline window} conflicts kaiserbessel gaussian sinc {
    configure.args-append   --with-window=bspline
}

variant sinc description {compile with Sinc window} conflicts kaiserbessel gaussian bspline {
    configure.args-append   --with-window=sinc
}

if {![variant_isset gaussian] && ![variant_isset bspline] && ![variant_isset sinc]} {
    default_variants-append +kaiserbessel
}
