Safe Haskell | None |
---|---|
Language | Haskell98 |
Synopsis
- newtype Half n = Half n
- class C sh => MultiCyclic sh where
- cyclicDimensions :: sh -> [CInt]
- data Symmetric symmetry shiftTime shiftSpectrum n = Symmetric (SymmetrySingleton symmetry) (ShiftSingleton shiftTime) (ShiftSingleton shiftSpectrum) n
- symmetric :: (Symmetry symmetry, Shift shiftTime, Shift shiftSpectrum) => n -> Symmetric symmetry shiftTime shiftSpectrum n
- symmetricLogicalSize :: Num n => Symmetric symmetry shiftTime shiftSpectrum n -> n
- class Symmetry symm where
- switchSymmetry :: f Even -> f Odd -> f symm
- data SymmetrySingleton symm where
- data Even
- data Odd
- class Shift shift where
- switchShift :: f Exact -> f Halfway -> f shift
- data ShiftSingleton shift where
- data Exact
- data Halfway
Documentation
Half n |
Instances
Eq n => Eq (Half n) Source # | |
Show n => Show (Half n) Source # | |
Integral n => C (Half n) Source # | |
Defined in Numeric.FFTW.Shape | |
Integral n => Indexed (Half n) Source # | |
Defined in Numeric.FFTW.Shape indices :: Half n -> [Index (Half n)] # offset :: Half n -> Index (Half n) -> Int # uncheckedOffset :: Half n -> Index (Half n) -> Int # unifiedOffset :: Checking check => Half n -> Index (Half n) -> Result check Int # inBounds :: Half n -> Index (Half n) -> Bool # sizeOffset :: Half n -> (Int, Index (Half n) -> Int) # uncheckedSizeOffset :: Half n -> (Int, Index (Half n) -> Int) # unifiedSizeOffset :: Checking check => Half n -> (Int, Index (Half n) -> Result check Int) # | |
Integral n => InvIndexed (Half n) Source # | |
NFData n => NFData (Half n) Source # | |
Defined in Numeric.FFTW.Shape | |
type Index (Half n) Source # | |
Defined in Numeric.FFTW.Shape |
class C sh => MultiCyclic sh where Source #
cyclicDimensions :: sh -> [CInt] Source #
Instances
MultiCyclic () Source # | |
Defined in Numeric.FFTW.Shape cyclicDimensions :: () -> [CInt] Source # | |
Integral n => MultiCyclic (Cyclic n) Source # | |
Defined in Numeric.FFTW.Shape cyclicDimensions :: Cyclic n -> [CInt] Source # | |
(MultiCyclic sh0, MultiCyclic sh1) => MultiCyclic (sh0, sh1) Source # | |
Defined in Numeric.FFTW.Shape cyclicDimensions :: (sh0, sh1) -> [CInt] Source # | |
(MultiCyclic sh0, MultiCyclic sh1, MultiCyclic sh2) => MultiCyclic (sh0, sh1, sh2) Source # | |
Defined in Numeric.FFTW.Shape cyclicDimensions :: (sh0, sh1, sh2) -> [CInt] Source # |
data Symmetric symmetry shiftTime shiftSpectrum n Source #
Shape for stored data of symmetric vectors.
Even is for Cosine transform, Odd for Sine transform.
shiftTime
refers to no or halfway shift of the data,
shiftSpectrum
refers to no or halfway shift of the Cosine or Sine spectrum.
0 means Exact, 1 means Halfway:
- Even 0 0: even around 0 and even around n-1.
- Even 1 0: even around -0.5 and even around n-0.5.
- Even 0 1: even around 0 and odd around n.
- Even 1 1: even around -0.5 and odd around n-0.5.
- Odd 0 0: odd around -1 and odd around n.
- Odd 1 0: odd around -0.5 and odd around n-0.5.
- Odd 0 1: odd around -1 and even around n-1.
- Odd 1 1: odd around -0.5 and even around n-0.5.
We could pad data of Even symmetric vectors,
but we cannot pad data of Odd symmetric vectors,
because !
would have to involve negate
.
Thus we provide no padding, at all.
Symmetric (SymmetrySingleton symmetry) (ShiftSingleton shiftTime) (ShiftSingleton shiftSpectrum) n |
Instances
Eq n => Eq (Symmetric symmetry shiftTime shiftSpectrum n) Source # | |
Show n => Show (Symmetric symmetry shiftTime shiftSpectrum n) Source # | |
(Symmetry symmetry, Shift shiftTime, Shift shiftSpectrum, Integral n) => C (Symmetric symmetry shiftTime shiftSpectrum n) Source # | |
Defined in Numeric.FFTW.Shape | |
(Symmetry symmetry, Shift shiftTime, Shift shiftSpectrum, Integral n) => Indexed (Symmetric symmetry shiftTime shiftSpectrum n) Source # | |
Defined in Numeric.FFTW.Shape indices :: Symmetric symmetry shiftTime shiftSpectrum n -> [Index (Symmetric symmetry shiftTime shiftSpectrum n)] # offset :: Symmetric symmetry shiftTime shiftSpectrum n -> Index (Symmetric symmetry shiftTime shiftSpectrum n) -> Int # uncheckedOffset :: Symmetric symmetry shiftTime shiftSpectrum n -> Index (Symmetric symmetry shiftTime shiftSpectrum n) -> Int # unifiedOffset :: Checking check => Symmetric symmetry shiftTime shiftSpectrum n -> Index (Symmetric symmetry shiftTime shiftSpectrum n) -> Result check Int # inBounds :: Symmetric symmetry shiftTime shiftSpectrum n -> Index (Symmetric symmetry shiftTime shiftSpectrum n) -> Bool # sizeOffset :: Symmetric symmetry shiftTime shiftSpectrum n -> (Int, Index (Symmetric symmetry shiftTime shiftSpectrum n) -> Int) # uncheckedSizeOffset :: Symmetric symmetry shiftTime shiftSpectrum n -> (Int, Index (Symmetric symmetry shiftTime shiftSpectrum n) -> Int) # unifiedSizeOffset :: Checking check => Symmetric symmetry shiftTime shiftSpectrum n -> (Int, Index (Symmetric symmetry shiftTime shiftSpectrum n) -> Result check Int) # | |
(Symmetry symmetry, Shift shiftTime, Shift shiftSpectrum, Integral n) => InvIndexed (Symmetric symmetry shiftTime shiftSpectrum n) Source # | |
Defined in Numeric.FFTW.Shape indexFromOffset :: Symmetric symmetry shiftTime shiftSpectrum n -> Int -> Index (Symmetric symmetry shiftTime shiftSpectrum n) # uncheckedIndexFromOffset :: Symmetric symmetry shiftTime shiftSpectrum n -> Int -> Index (Symmetric symmetry shiftTime shiftSpectrum n) # unifiedIndexFromOffset :: Checking check => Symmetric symmetry shiftTime shiftSpectrum n -> Int -> Result check (Index (Symmetric symmetry shiftTime shiftSpectrum n)) # | |
(Symmetry symmetry, Shift shiftTime, Shift shiftSpectrum, NFData n) => NFData (Symmetric symmetry shiftTime shiftSpectrum n) Source # | |
Defined in Numeric.FFTW.Shape | |
type Index (Symmetric symmetry shiftTime shiftSpectrum n) Source # | |
Defined in Numeric.FFTW.Shape |
symmetric :: (Symmetry symmetry, Shift shiftTime, Shift shiftSpectrum) => n -> Symmetric symmetry shiftTime shiftSpectrum n Source #
symmetricLogicalSize :: Num n => Symmetric symmetry shiftTime shiftSpectrum n -> n Source #
data SymmetrySingleton symm where Source #
Instances
Eq (SymmetrySingleton symm) Source # | |
Defined in Numeric.FFTW.Shape (==) :: SymmetrySingleton symm -> SymmetrySingleton symm -> Bool # (/=) :: SymmetrySingleton symm -> SymmetrySingleton symm -> Bool # | |
Show (SymmetrySingleton symm) Source # | |
Defined in Numeric.FFTW.Shape showsPrec :: Int -> SymmetrySingleton symm -> ShowS # show :: SymmetrySingleton symm -> String # showList :: [SymmetrySingleton symm] -> ShowS # | |
NFData (SymmetrySingleton symm) Source # | |
Defined in Numeric.FFTW.Shape rnf :: SymmetrySingleton symm -> () # |
data ShiftSingleton shift where Source #
Instances
Eq (ShiftSingleton shift) Source # | |
Defined in Numeric.FFTW.Shape (==) :: ShiftSingleton shift -> ShiftSingleton shift -> Bool # (/=) :: ShiftSingleton shift -> ShiftSingleton shift -> Bool # | |
Show (ShiftSingleton shift) Source # | |
Defined in Numeric.FFTW.Shape showsPrec :: Int -> ShiftSingleton shift -> ShowS # show :: ShiftSingleton shift -> String # showList :: [ShiftSingleton shift] -> ShowS # | |
NFData (ShiftSingleton shift) Source # | |
Defined in Numeric.FFTW.Shape rnf :: ShiftSingleton shift -> () # |