Safe Haskell | None |
---|
- 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
Cons (VectorValueOf n a) |
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
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
fromInteger' :: Positive n => Integer -> T n aSource
class (RationalConstant a, IntegerConstant a) => RationalConstant a whereSource
fromRational' :: Positive n => Rational -> T n aSource
RationalConstant Double | |
RationalConstant Float | |
(Flags flags, MultiVector a, RationalConstant a) => RationalConstant (Number flags a) |
class (PseudoRing a, Additive a) => PseudoRing a whereSource
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
class (Transcendental a, Algebraic a) => Transcendental a whereSource
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
Transcendental Double | |
Transcendental Float | |
(Flags flags, MultiVector a, Transcendental a) => Transcendental (Number flags a) |
class (FloatingComparison a, Comparison a) => FloatingComparison a whereSource
fcmp :: Positive n => FPPredicate -> T n a -> T n a -> CodeGenFunction r (T n Bool)Source
FloatingComparison Float | |
(Flags flags, MultiVector a, FloatingComparison a) => FloatingComparison (Number flags a) |
class (Select a, C a) => Select a whereSource
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
cmp :: Positive n => CmpPredicate -> T n a -> T n a -> CodeGenFunction r (T n Bool)Source