cabal-version:       >=1.10

Name:                vector-fftw

Version:             0.1.4.1
x-revision: 2
License:             BSD3
License-file:        LICENSE
Author:              Judah Jacobson
Maintainer:          Ben Gamari <ben@smart-cactus.org>
Copyright:           (c) Judah Jacobson, 2010
Category:            Math
Build-type:          Simple
Homepage:            http://hackage.haskell.org/package/vector-fftw
Synopsis:            A binding to the fftw library for one-dimensional vectors.
Description:         This package provides bindings to the fftw library for one-dimensional vectors.
                     It provides both high-level functions and more low-level manipulation of fftw plans.
                     .
                     We provide three different modules which wrap @fftw@'s operations:
                     .
                      - "Numeric.FFT.Vector.Unnormalized" contains the raw transforms;
                     .
                      - "Numeric.FFT.Vector.Invertible" scales the backwards transforms to be true inverses;
                     .
                      - "Numeric.FFT.Vector.Unitary" additionally scales all transforms to preserve the L2 (sum-of-squares) norm of the
                        input.
                     .
                     In addition, we provide @.Multi@ modules for each of these providing multi-dimensional
                     transforms.
Extra-Source-Files:  Changelog.md
Tested-With:         GHC == 8.10.7,
                     GHC == 9.0.2,
                     GHC == 9.2.4,
                     GHC == 9.4.5,
                     GHC == 9.6.5,
                     GHC == 9.8.2,
                     GHC == 9.10.1,
                     GHC == 9.12.1

source-repository head
    type:   git
    location: https://github.com/bgamari/vector-fftw


Library
  default-language: Haskell2010
  Exposed-modules:
        Numeric.FFT.Vector.Unnormalized
        Numeric.FFT.Vector.Unnormalized.Multi
        Numeric.FFT.Vector.Invertible
        Numeric.FFT.Vector.Invertible.Multi
        Numeric.FFT.Vector.Unitary
        Numeric.FFT.Vector.Unitary.Multi
        Numeric.FFT.Vector.Plan

  Other-modules:
        Numeric.FFT.Vector.Base

  Build-depends: base>=4.3 && < 4.22,
                 vector>=0.9 && < 0.14,
                 primitive>=0.6 && < 0.10,
                 storable-complex==0.2.*
  if os(windows)
    Extra-libraries: fftw3-3
  else
    Extra-libraries: fftw3

  default-extensions: ForeignFunctionInterface, RecordWildCards, BangPatterns, FlexibleInstances,
                ScopedTypeVariables
  ghc-options: -Wall

  Ghc-Options: -O2

test-suite properties
  default-language: Haskell2010
  ghc-options: -Wall -threaded
  type: exitcode-stdio-1.0
  hs-source-dirs: tests
  main-is: FFTProperties.hs
  build-depends: base,
                 QuickCheck,
                 test-framework,
                 test-framework-quickcheck2,
                 vector,
                 vector-fftw