Safe Haskell | None |
---|
LLVM.Extra.Multi.Vector
- newtype T n a = Cons (VectorValueOf n a)
- consPrim :: VectorValueOf n a ~ Value n a => Value (Vector n a) -> T n a
- deconsPrim :: VectorValueOf 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
- phi :: Positive n => BasicBlock -> T n a -> CodeGenFunction r (T n a)
- addPhi :: 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 a = Value (Vector n a)
- 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 :: (VectorValueOf n a -> VectorValueOf 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, VectorValueOf n a ~ Value n al) => T n a
- shufflePrimitive :: (Positive n, Positive m, IsPrimitive al, ValueOf a ~ Value al, VectorValueOf n a ~ Value n al, VectorValueOf 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, ValueOf a ~ Value al, VectorValueOf n a ~ Value n al) => Value Word32 -> T n a -> CodeGenFunction r (T a)
- insertPrimitive :: (Positive n, IsPrimitive al, ValueOf a ~ Value al, VectorValueOf 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 (IntegerConstant a, C a) => IntegerConstant a where
- fromInteger' :: Positive n => Integer -> T n a
- class (RationalConstant a, 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 (Select a, 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, C a) => BitShift a where
Documentation
Constructors
Cons (VectorValueOf n a) |
Instances
Positive n => C (T n) | |
(Positive n, C a) => Zero (T n a) | |
(Positive n, C a) => Undefined (T n a) | |
(Positive n, C a) => Phi (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) | |
(Positive n, C a, C (VectorValueOf n a)) => C (T n a) |
deconsPrim :: VectorValueOf n a ~ Value n a => T n a -> Value (Vector n a)Source
Methods
cons :: Positive n => Vector n a -> T n aSource
undef :: Positive n => T n aSource
zero :: Positive n => T n aSource
phi :: Positive n => BasicBlock -> T n a -> CodeGenFunction r (T n a)Source
addPhi :: 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
lift1 :: (VectorValueOf n a -> VectorValueOf n b) -> T n a -> T n bSource
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, VectorValueOf n a ~ Value n al) => T n aSource
shufflePrimitive :: (Positive n, Positive m, IsPrimitive al, ValueOf a ~ Value al, VectorValueOf n a ~ Value n al, VectorValueOf 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, ValueOf a ~ Value al, VectorValueOf n a ~ Value n al) => Value Word32 -> T n a -> CodeGenFunction r (T a)Source
insertPrimitive :: (Positive n, IsPrimitive al, ValueOf a ~ Value al, VectorValueOf 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 (IntegerConstant a, C a) => IntegerConstant a whereSource
Methods
fromInteger' :: Positive n => Integer -> T n aSource
Instances
class (RationalConstant a, IntegerConstant a) => RationalConstant a whereSource
Methods
fromRational' :: Positive n => Rational -> T n aSource
Instances
RationalConstant Double | |
RationalConstant Float | |
(Flags flags, MultiVector a, RationalConstant a) => RationalConstant (Number flags a) |
class (PseudoRing a, Additive a) => PseudoRing a whereSource
Instances
PseudoRing Double | |
PseudoRing Float | |
(Flags flags, MultiVector a, PseudoRing a) => PseudoRing (Number flags a) |
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
Transcendental Double | |
Transcendental Float | |
(Flags flags, MultiVector a, Transcendental a) => Transcendental (Number flags a) |
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
FloatingComparison Float | |
(Flags flags, MultiVector a, FloatingComparison a) => FloatingComparison (Number flags a) |
class (Select a, C a) => Select a whereSource
Instances
Select Bool | |
Select Double | |
Select Float | |
Select Int | |
Select Int8 | |
Select Int16 | |
Select Int32 | |
Select Int64 | |
Select Word | |
Select Word8 | |
Select Word16 | |
Select Word32 | |
Select Word64 | |
(Select a, Select b) => Select (a, b) | |
(Flags flags, MultiVector a, Select a) => Select (Number flags a) | |
(Select a, Select b, Select c) => Select (a, b, c) |
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
Instances