Safe Haskell | None |
---|
- newtype T n a = Cons (Repr (Value n) a)
- consPrim :: Repr (Value n) a ~ Value n a => Value (Vector n a) -> T n a
- deconsPrim :: Repr (Value n) a ~ Value n a => T n a -> Value (Vector n a)
- class C a => C a where
- cons :: Positive n => Vector n a -> T n a
- undef :: Positive n => T n a
- zero :: Positive n => T n a
- phis :: Positive n => BasicBlock -> T n a -> CodeGenFunction r (T n a)
- addPhis :: Positive n => BasicBlock -> T n a -> T n a -> CodeGenFunction r ()
- shuffle :: (Positive n, Positive m) => ConstValue (Vector m Word32) -> T n a -> T n a -> CodeGenFunction r (T m a)
- extract :: Positive n => Value Word32 -> T n a -> CodeGenFunction r (T a)
- insert :: Positive n => Value Word32 -> T a -> T n a -> CodeGenFunction r (T n a)
- type Value n = Compose Value (Vector n)
- map :: (Positive n, C a, C b) => (T a -> CodeGenFunction r (T b)) -> T n a -> CodeGenFunction r (T n b)
- zip :: T n a -> T n b -> T n (a, b)
- zip3 :: T n a -> T n b -> T n c -> T n (a, b, c)
- unzip :: T n (a, b) -> (T n a, T n b)
- unzip3 :: T n (a, b, c) -> (T n a, T n b, T n c)
- replicate :: (Positive n, C a) => T a -> CodeGenFunction r (T n a)
- iterate :: (Positive n, C a) => (T a -> CodeGenFunction r (T a)) -> T a -> CodeGenFunction r (T n a)
- take :: (Positive n, Positive m, C a) => T n a -> CodeGenFunction r (T m a)
- takeRev :: (Positive n, Positive m, C a) => T n a -> CodeGenFunction r (T m a)
- lift1 :: (Repr (Value n) a -> Repr (Value n) b) -> T n a -> T n b
- modify :: (Positive n, C a) => Value Word32 -> (T a -> CodeGenFunction r (T a)) -> T n a -> CodeGenFunction r (T n a)
- assemble :: (Positive n, C a) => [T a] -> CodeGenFunction r (T n a)
- dissect :: (Positive n, C a) => T n a -> CodeGenFunction r [T a]
- dissectList :: (Positive n, C a) => T n a -> [CodeGenFunction r (T a)]
- reverse :: (Positive n, C a) => T n a -> CodeGenFunction r (T n a)
- rotateUp :: (Positive n, C a) => T n a -> CodeGenFunction r (T n a)
- rotateDown :: (Positive n, C a) => T n a -> CodeGenFunction r (T n a)
- shiftUp :: (Positive n, C a) => T a -> T n a -> CodeGenFunction r (T a, T n a)
- shiftDown :: (Positive n, C a) => T a -> T n a -> CodeGenFunction r (T a, T n a)
- shiftUpMultiZero :: (Positive n, C a) => Int -> T n a -> CodeGenFunction r (T n a)
- shiftDownMultiZero :: (Positive n, C a) => Int -> T n a -> CodeGenFunction r (T n a)
- shiftUpMultiUndef :: (Positive n, C a) => Int -> T n a -> CodeGenFunction r (T n a)
- shiftDownMultiUndef :: (Positive n, C a) => Int -> T n a -> CodeGenFunction r (T n a)
- undefPrimitive :: (Positive n, IsPrimitive al, Repr (Value n) a ~ Value n al) => T n a
- shufflePrimitive :: (Positive n, Positive m, IsPrimitive al, Repr Value a ~ Value al, Repr (Value n) a ~ Value n al, Repr (Value m) a ~ Value m al) => ConstValue (Vector m Word32) -> T n a -> T n a -> CodeGenFunction r (T m a)
- extractPrimitive :: (Positive n, IsPrimitive al, Repr Value a ~ Value al, Repr (Value n) a ~ Value n al) => Value Word32 -> T n a -> CodeGenFunction r (T a)
- insertPrimitive :: (Positive n, IsPrimitive al, Repr Value a ~ Value al, Repr (Value n) a ~ Value n al) => Value Word32 -> T a -> T n a -> CodeGenFunction r (T n a)
- shuffleMatchTraversable :: (Positive n, C a, Traversable f) => ConstValue (Vector n Word32) -> f (T n a) -> CodeGenFunction r (f (T n a))
- insertTraversable :: (Positive n, C a, Traversable f, Applicative f) => Value Word32 -> f (T a) -> f (T n a) -> CodeGenFunction r (f (T n a))
- extractTraversable :: (Positive n, C a, Traversable f) => Value Word32 -> f (T n a) -> CodeGenFunction r (f (T a))
- class C a => IntegerConstant a where
- fromInteger' :: Positive n => Integer -> T n a
- class IntegerConstant a => RationalConstant a where
- fromRational' :: Positive n => Rational -> T n a
- class (Additive a, C a) => Additive a where
- class (PseudoRing a, Additive a) => PseudoRing a where
- class (Field a, PseudoRing a) => Field a where
- class (PseudoModule v, PseudoRing (Scalar v), Additive v) => PseudoModule v where
- class (Real a, Additive a) => Real a where
- class (Fraction a, Real a) => Fraction a where
- truncate :: Positive n => T n a -> CodeGenFunction r (T n a)
- fraction :: Positive n => T n a -> CodeGenFunction r (T n a)
- class (Algebraic a, Field a) => Algebraic a where
- sqrt :: Positive n => T n a -> CodeGenFunction r (T n a)
- class (Transcendental a, Algebraic a) => Transcendental a where
- class (FloatingComparison a, Comparison a) => FloatingComparison a where
- fcmp :: Positive n => FPPredicate -> T n a -> T n a -> CodeGenFunction r (T n Bool)
- class C a => Select a where
- class (Comparison a, C a) => Comparison a where
- cmp :: Positive n => CmpPredicate -> T n a -> T n a -> CodeGenFunction r (T n Bool)
- class (Logic a, C a) => Logic a where
- class BitShift a where
Documentation
Positive n => C (T n) | |
(Positive n, C a) => Phi (T n a) | |
(Positive n, C a) => Zero (T n a) | |
(Positive n, C a) => Undefined (T n a) | |
(Positive n, Transcendental a) => Transcendental (T n a) | |
(Positive n, Algebraic a) => Algebraic (T n a) | |
(Positive n, Logic a) => Logic (T n a) | |
(Positive n, FloatingComparison a) => FloatingComparison (T n a) | |
(Positive n, Comparison a) => Comparison (T n a) | |
(Positive n, Fraction a) => Fraction (T n a) | |
(Positive n, Real a) => Real (T n a) | |
(Positive n, RationalConstant a) => RationalConstant (T n a) | |
(Positive n, Field a) => Field (T n a) | |
(Positive n, IntegerConstant a) => IntegerConstant (T n a) | |
(Positive n, PseudoModule a) => PseudoModule (T n a) | |
(Positive n, PseudoRing a) => PseudoRing (T n a) | |
(Positive n, Additive a) => Additive (T n a) | |
C n a => C (T n a) |
cons :: Positive n => Vector n a -> T n aSource
undef :: Positive n => T n aSource
zero :: Positive n => T n aSource
phis :: Positive n => BasicBlock -> T n a -> CodeGenFunction r (T n a)Source
addPhis :: Positive n => BasicBlock -> T n a -> T n a -> CodeGenFunction r ()Source
shuffle :: (Positive n, Positive m) => ConstValue (Vector m Word32) -> T n a -> T n a -> CodeGenFunction r (T m a)Source
extract :: Positive n => Value Word32 -> T n a -> CodeGenFunction r (T a)Source
insert :: Positive n => Value Word32 -> T a -> T n a -> CodeGenFunction r (T n a)Source
map :: (Positive n, C a, C b) => (T a -> CodeGenFunction r (T b)) -> T n a -> CodeGenFunction r (T n b)Source
iterate :: (Positive n, C a) => (T a -> CodeGenFunction r (T a)) -> T a -> CodeGenFunction r (T n a)Source
modify :: (Positive n, C a) => Value Word32 -> (T a -> CodeGenFunction r (T a)) -> T n a -> CodeGenFunction r (T n a)Source
dissectList :: (Positive n, C a) => T n a -> [CodeGenFunction r (T a)]Source
rotateUp :: (Positive n, C a) => T n a -> CodeGenFunction r (T n a)Source
Rotate one element towards the higher elements.
I don't want to call it rotateLeft or rotateRight, because there is no prefered layout for the vector elements. In Intel's instruction manual vector elements are indexed like the bits, that is from right to left. However, when working with Haskell list and enumeration syntax, the start index is left.
rotateDown :: (Positive n, C a) => T n a -> CodeGenFunction r (T n a)Source
shiftUpMultiZero :: (Positive n, C a) => Int -> T n a -> CodeGenFunction r (T n a)Source
shiftDownMultiZero :: (Positive n, C a) => Int -> T n a -> CodeGenFunction r (T n a)Source
shiftUpMultiUndef :: (Positive n, C a) => Int -> T n a -> CodeGenFunction r (T n a)Source
shiftDownMultiUndef :: (Positive n, C a) => Int -> T n a -> CodeGenFunction r (T n a)Source
undefPrimitive :: (Positive n, IsPrimitive al, Repr (Value n) a ~ Value n al) => T n aSource
shufflePrimitive :: (Positive n, Positive m, IsPrimitive al, Repr Value a ~ Value al, Repr (Value n) a ~ Value n al, Repr (Value m) a ~ Value m al) => ConstValue (Vector m Word32) -> T n a -> T n a -> CodeGenFunction r (T m a)Source
extractPrimitive :: (Positive n, IsPrimitive al, Repr Value a ~ Value al, Repr (Value n) a ~ Value n al) => Value Word32 -> T n a -> CodeGenFunction r (T a)Source
insertPrimitive :: (Positive n, IsPrimitive al, Repr Value a ~ Value al, Repr (Value n) a ~ Value n al) => Value Word32 -> T a -> T n a -> CodeGenFunction r (T n a)Source
shuffleMatchTraversable :: (Positive n, C a, Traversable f) => ConstValue (Vector n Word32) -> f (T n a) -> CodeGenFunction r (f (T n a))Source
insertTraversable :: (Positive n, C a, Traversable f, Applicative f) => Value Word32 -> f (T a) -> f (T n a) -> CodeGenFunction r (f (T n a))Source
extractTraversable :: (Positive n, C a, Traversable f) => Value Word32 -> f (T n a) -> CodeGenFunction r (f (T a))Source
class C a => IntegerConstant a whereSource
fromInteger' :: Positive n => Integer -> T n aSource
class IntegerConstant a => RationalConstant a whereSource
fromRational' :: Positive n => Rational -> T n aSource
class (PseudoRing a, Additive a) => PseudoRing a whereSource
class (Field a, PseudoRing a) => Field a whereSource
class (PseudoModule v, PseudoRing (Scalar v), Additive v) => PseudoModule v whereSource
class (Transcendental a, Algebraic a) => Transcendental a whereSource
class (FloatingComparison a, Comparison a) => FloatingComparison a whereSource
fcmp :: Positive n => FPPredicate -> T n a -> T n a -> CodeGenFunction r (T n Bool)Source
class (Comparison a, C a) => Comparison a whereSource
cmp :: Positive n => CmpPredicate -> T n a -> T n a -> CodeGenFunction r (T n Bool)Source