Safe Haskell | None |
---|
LLVM.Extra.Multi.Vector
- 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
Instances
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) |
Methods
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
Methods
fromInteger' :: Positive n => Integer -> T n aSource
class IntegerConstant a => RationalConstant a whereSource
Methods
fromRational' :: Positive n => Rational -> T n aSource
Instances
class (PseudoRing a, Additive a) => PseudoRing a whereSource
Instances
class (Field a, PseudoRing a) => Field a whereSource
class (PseudoModule v, PseudoRing (Scalar v), Additive v) => PseudoModule v whereSource
Instances
class (Transcendental a, Algebraic a) => Transcendental a whereSource
Methods
pi :: Positive n => CodeGenFunction r (T n a)Source
sin, log, exp, cos :: Positive n => T n a -> CodeGenFunction r (T n a)Source
pow :: Positive n => T n a -> T n a -> CodeGenFunction r (T n a)Source
Instances
class (FloatingComparison a, Comparison a) => FloatingComparison a whereSource
Methods
fcmp :: Positive n => FPPredicate -> T n a -> T n a -> CodeGenFunction r (T n Bool)Source
Instances
class (Comparison a, C a) => Comparison a whereSource
Methods
cmp :: Positive n => CmpPredicate -> T n a -> T n a -> CodeGenFunction r (T n Bool)Source