feldspar-language-0.3.1: A functional embedded language for DSP and parallelismSource codeContentsIndex
Feldspar.Core.Functions
Contents
Misc.
Loops
Bit manipulation
Description
Primitive and helper functions supported by Feldspar
Synopsis
noSizeProp :: a -> ()
noSizeProp2 :: a -> b -> ()
class (Eq a, Storable a) => Eq a where
(==) :: Data a -> Data a -> Data Bool
(/=) :: Data a -> Data a -> Data Bool
optEq :: (Storable a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data Bool
optNeq :: (Storable a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data Bool
class (Ord a, Eq a, Storable a) => Ord a where
(<) :: Data a -> Data a -> Data Bool
(>) :: Data a -> Data a -> Data Bool
(<=) :: Data a -> Data a -> Data Bool
(>=) :: Data a -> Data a -> Data Bool
min :: Data a -> Data a -> Data a
max :: Data a -> Data a -> Data a
optLT :: (Storable a, Ord a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data Bool
optGT :: (Storable a, Ord a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data Bool
optLTE :: (Storable a, Ord a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data Bool
optGTE :: (Storable a, Ord a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data Bool
optMin :: (Ord a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data a
optMax :: (Ord a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data a
not :: Data Bool -> Data Bool
(?) :: Computable a => Data Bool -> (a, a) -> a
(&&) :: Data Bool -> Data Bool -> Data Bool
(||) :: Data Bool -> Data Bool -> Data Bool
(&&*) :: Computable a => (a -> Data Bool) -> (a -> Data Bool) -> a -> Data Bool
(||*) :: Computable a => (a -> Data Bool) -> (a -> Data Bool) -> a -> Data Bool
class (Numeric a, Integral a, Ord a, Storable a) => Integral a where
quot :: Data a -> Data a -> Data a
rem :: Data a -> Data a -> Data a
div :: Data a -> Data a -> Data a
mod :: Data a -> Data a -> Data a
(^) :: Data a -> Data a -> Data a
optRem :: (Integral a, Size a ~ Range b, Ord b, Num b, Enum b) => Data a -> Data a -> Data a
optMod :: (Integral a, Size a ~ Range b, Ord b, Num b, Enum b) => Data a -> Data a -> Data a
optSignedExp :: (Integral a, Bits a, Storable a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data a
optExp :: (Integral a, Storable a) => Data a -> Data a -> Data a
for :: Computable a => Data Int -> Data Int -> a -> (Data Int -> a -> a) -> a
unfoldCore :: (Computable state, Storable a) => Data Length -> state -> (Data Int -> state -> (Data a, state)) -> (Data [a], state)
class (Num a, Storable a) => Numeric a where
fromIntegerNum :: Integer -> Data a
absNum :: Data a -> Data a
signumNum :: Data a -> Data a
addNum :: Data a -> Data a -> Data a
subNum :: Data a -> Data a -> Data a
mulNum :: Data a -> Data a -> Data a
absNum' :: (Numeric a, Num (Size a)) => Data a -> Data a
optAbs :: (Numeric a, Size a ~ Range b, Num b, Ord b) => Data a -> Data a
signumNum' :: (Numeric a, Num (Size a)) => Data a -> Data a
optSignum :: (Numeric a, Size a ~ Range b, Num b, Ord b) => Data a -> Data a
optAdd :: (Numeric a, Num (Size a)) => Data a -> Data a -> Data a
optSub :: (Numeric a, Num (Size a)) => Data a -> Data a -> Data a
optMul :: (Numeric a, Num (Size a)) => Data a -> Data a -> Data a
class (Fractional a, Storable a) => Fractional' a where
fromRationalFrac :: Rational -> Data a
divFrac :: Data a -> Data a -> Data a
class (Bits a, Storable a) => Bits a where
(.&.) :: Data a -> Data a -> Data a
(.|.) :: Data a -> Data a -> Data a
xor :: Data a -> Data a -> Data a
(⊕) :: Data a -> Data a -> Data a
complement :: Data a -> Data a
bit :: Data Int -> Data a
setBit :: Data a -> Data Int -> Data a
clearBit :: Data a -> Data Int -> Data a
complementBit :: Data a -> Data Int -> Data a
testBit :: Data a -> Data Int -> Data Bool
shiftL :: Data a -> Data Int -> Data a
(<<) :: Data a -> Data Int -> Data a
shiftR :: Data a -> Data Int -> Data a
(>>) :: Data a -> Data Int -> Data a
rotateL :: Data a -> Data Int -> Data a
rotateR :: Data a -> Data Int -> Data a
reverseBits :: Data a -> Data a
bitScan :: Data a -> Data Int
bitCount :: Data a -> Data Int
bitSize :: Data a -> Data Int
isSigned :: Data a -> Data Bool
optAnd :: (Bits a, Storable a) => Data a -> Data a -> Data a
optOr :: (Bits a, Storable a) => Data a -> Data a -> Data a
optXor :: (Bits a, Bits a, Storable a) => Data a -> Data a -> Data a
allOnes :: (Eq a, Bits a) => a -> Bool
optZero :: (a -> Data Int -> a) -> a -> Data Int -> a
scanLeft :: Bits b => b -> Int
countBits :: Bits b => b -> Int
revBits :: Bits b => b -> b
Misc.
noSizeProp :: a -> ()Source
noSizeProp2 :: a -> b -> ()Source
class (Eq a, Storable a) => Eq a whereSource
Methods
(==) :: Data a -> Data a -> Data BoolSource
(/=) :: Data a -> Data a -> Data BoolSource
show/hide Instances
optEq :: (Storable a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data BoolSource
optNeq :: (Storable a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data BoolSource
class (Ord a, Eq a, Storable a) => Ord a whereSource
Methods
(<) :: Data a -> Data a -> Data BoolSource
(>) :: Data a -> Data a -> Data BoolSource
(<=) :: Data a -> Data a -> Data BoolSource
(>=) :: Data a -> Data a -> Data BoolSource
min :: Data a -> Data a -> Data aSource
max :: Data a -> Data a -> Data aSource
show/hide Instances
optLT :: (Storable a, Ord a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data BoolSource
optGT :: (Storable a, Ord a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data BoolSource
optLTE :: (Storable a, Ord a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data BoolSource
optGTE :: (Storable a, Ord a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data BoolSource
optMin :: (Ord a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data aSource
optMax :: (Ord a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data aSource
not :: Data Bool -> Data BoolSource
(?) :: Computable a => Data Bool -> (a, a) -> aSource
Selects the elements of the pair depending on the condition
(&&) :: Data Bool -> Data Bool -> Data BoolSource
(||) :: Data Bool -> Data Bool -> Data BoolSource
(&&*) :: Computable a => (a -> Data Bool) -> (a -> Data Bool) -> a -> Data BoolSource
Lazy conjunction, second argument only run if necessary
(||*) :: Computable a => (a -> Data Bool) -> (a -> Data Bool) -> a -> Data BoolSource
Lazy disjunction, second argument only run if necessary
class (Numeric a, Integral a, Ord a, Storable a) => Integral a whereSource
Methods
quot :: Data a -> Data a -> Data aSource
rem :: Data a -> Data a -> Data aSource
div :: Data a -> Data a -> Data aSource
mod :: Data a -> Data a -> Data aSource
(^) :: Data a -> Data a -> Data aSource
show/hide Instances
optRem :: (Integral a, Size a ~ Range b, Ord b, Num b, Enum b) => Data a -> Data a -> Data aSource
optMod :: (Integral a, Size a ~ Range b, Ord b, Num b, Enum b) => Data a -> Data a -> Data aSource
optSignedExp :: (Integral a, Bits a, Storable a, Size a ~ Range b, Ord b, Num b) => Data a -> Data a -> Data aSource
optExp :: (Integral a, Storable a) => Data a -> Data a -> Data aSource
Loops
for :: Computable a => Data Int -> Data Int -> a -> (Data Int -> a -> a) -> aSource

For-loop

for start end init body:

  • start/end are the start/end indexes.
  • init is the starting state.
  • body computes the next state given the current loop index (ranging over [start .. end]) and the current state.
unfoldCore :: (Computable state, Storable a) => Data Length -> state -> (Data Int -> state -> (Data a, state)) -> (Data [a], state)Source

A sequential "unfolding" of an vector

unfoldCore l init step:

  • l is the length of the resulting vector.
  • init is the initial state.
  • step is a function computing a new element and the next state from the current index and current state. The index is the position of the new element in the output vector.
class (Num a, Storable a) => Numeric a whereSource
Methods
fromIntegerNum :: Integer -> Data aSource
absNum :: Data a -> Data aSource
signumNum :: Data a -> Data aSource
addNum :: Data a -> Data a -> Data aSource
subNum :: Data a -> Data a -> Data aSource
mulNum :: Data a -> Data a -> Data aSource
show/hide Instances
absNum' :: (Numeric a, Num (Size a)) => Data a -> Data aSource
optAbs :: (Numeric a, Size a ~ Range b, Num b, Ord b) => Data a -> Data aSource
signumNum' :: (Numeric a, Num (Size a)) => Data a -> Data aSource
optSignum :: (Numeric a, Size a ~ Range b, Num b, Ord b) => Data a -> Data aSource
optAdd :: (Numeric a, Num (Size a)) => Data a -> Data a -> Data aSource
optSub :: (Numeric a, Num (Size a)) => Data a -> Data a -> Data aSource
optMul :: (Numeric a, Num (Size a)) => Data a -> Data a -> Data aSource
class (Fractional a, Storable a) => Fractional' a whereSource
Methods
fromRationalFrac :: Rational -> Data aSource
divFrac :: Data a -> Data a -> Data aSource
show/hide Instances
Bit manipulation
class (Bits a, Storable a) => Bits a whereSource
The following class provides functions for bit level manipulation
Methods
(.&.) :: Data a -> Data a -> Data aSource
(.|.) :: Data a -> Data a -> Data aSource
xor :: Data a -> Data a -> Data aSource
(⊕) :: Data a -> Data a -> Data aSource
complement :: Data a -> Data aSource
bit :: Data Int -> Data aSource
setBit :: Data a -> Data Int -> Data aSource
clearBit :: Data a -> Data Int -> Data aSource
complementBit :: Data a -> Data Int -> Data aSource
testBit :: Data a -> Data Int -> Data BoolSource
shiftL :: Data a -> Data Int -> Data aSource
(<<) :: Data a -> Data Int -> Data aSource
shiftR :: Data a -> Data Int -> Data aSource
(>>) :: Data a -> Data Int -> Data aSource
rotateL :: Data a -> Data Int -> Data aSource
rotateR :: Data a -> Data Int -> Data aSource
reverseBits :: Data a -> Data aSource
bitScan :: Data a -> Data IntSource
Returns the number of leading zeroes for unsigned types. For signed types it returns the number of unnecessary sign bits
bitCount :: Data a -> Data IntSource
bitSize :: Data a -> Data IntSource
isSigned :: Data a -> Data BoolSource
show/hide Instances
optAnd :: (Bits a, Storable a) => Data a -> Data a -> Data aSource
optOr :: (Bits a, Storable a) => Data a -> Data a -> Data aSource
optXor :: (Bits a, Bits a, Storable a) => Data a -> Data a -> Data aSource
allOnes :: (Eq a, Bits a) => a -> BoolSource
optZero :: (a -> Data Int -> a) -> a -> Data Int -> aSource
scanLeft :: Bits b => b -> IntSource
countBits :: Bits b => b -> IntSource
revBits :: Bits b => b -> bSource
Produced by Haddock version 2.6.1