Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell98 |
Synopsis
- data NoNaNs = NoNaNs
- data NoInfs = NoInfs
- data NoSignedZeros = NoSignedZeros
- data AllowReciprocal = AllowReciprocal
- data Fast = Fast
- class Flags flags where
- setFlags :: IsFloating a => Proxy flags -> Bool -> Value a -> CodeGenFunction r ()
- newtype Number flags a = Number {
- deconsNumber :: a
- getNumber :: flags -> Number flags a -> a
- nvNumber :: T a -> T (Number flags a)
- nvDenumber :: T (Number flags a) -> T a
- mvNumber :: T a -> T (Number flags a)
- mvDenumber :: T (Number flags a) -> T a
- class C a => NiceValue a where
- setNiceValueFlags, setMultiValueFlags :: Flags flags => Proxy flags -> Bool -> T (Number flags a) -> CodeGenFunction r ()
- attachNiceValueFlags :: (Flags flags, NiceValue a) => Id (CodeGenFunction r (T (Number flags a)))
- attachMultiValueFlags :: (Flags flags, NiceValue a) => Id (CodeGenFunction r (T (Number flags a)))
- liftNumberM :: (m ~ CodeGenFunction r, Flags flags, NiceValue b) => (T a -> m (T b)) -> T (Number flags a) -> m (T (Number flags b))
- liftNumberM2 :: (m ~ CodeGenFunction r, Flags flags, NiceValue c) => (T a -> T b -> m (T c)) -> T (Number flags a) -> T (Number flags b) -> m (T (Number flags c))
- nvecNumber :: T n a -> T n (Number flags a)
- nvecDenumber :: T n (Number flags a) -> T n a
- mvecNumber :: T n a -> T n (Number flags a)
- mvecDenumber :: T n (Number flags a) -> T n a
- class (NiceValue a, C a) => NiceVector a where
- setNiceVectorFlags, setMultiVectorFlags :: (Flags flags, Positive n) => Proxy flags -> Bool -> T n (Number flags a) -> CodeGenFunction r ()
- attachNiceVectorFlags :: (Positive n, Flags flags, NiceVector a) => Id (CodeGenFunction r (T n (Number flags a)))
- liftNiceVectorM :: (m ~ CodeGenFunction r, Positive n, Flags flags, NiceVector b) => (T n a -> m (T n b)) -> T n (Number flags a) -> m (T n (Number flags b))
- liftNiceVectorM2 :: (m ~ CodeGenFunction r, Positive n, Flags flags, NiceVector c) => (T n a -> T n b -> m (T n c)) -> T n (Number flags a) -> T n (Number flags b) -> m (T n (Number flags c))
- attachMultiVectorFlags :: (Positive n, Flags flags, NiceVector a) => Id (CodeGenFunction r (T n (Number flags a)))
- liftMultiVectorM :: (m ~ CodeGenFunction r, Positive n, Flags flags, NiceVector b) => (T n a -> m (T n b)) -> T n (Number flags a) -> m (T n (Number flags b))
- liftMultiVectorM2 :: (m ~ CodeGenFunction r, Positive n, Flags flags, NiceVector c) => (T n a -> T n b -> m (T n c)) -> T n (Number flags a) -> T n (Number flags b) -> m (T n (Number flags c))
- class Tuple a where
- setTupleFlags :: Flags flags => Proxy flags -> Bool -> a -> CodeGenFunction r ()
- newtype Context flags a = Context a
- attachTupleFlags :: (Flags flags, Tuple a) => Id (CodeGenFunction r (Context flags a))
- liftContext :: (Flags flags, Tuple b) => (a -> CodeGenFunction r b) -> Context flags a -> CodeGenFunction r (Context flags b)
- liftContext2 :: (Flags flags, Tuple c) => (a -> b -> CodeGenFunction r c) -> Context flags a -> Context flags b -> CodeGenFunction r (Context flags c)
Documentation
data NoSignedZeros Source #
Instances
Show NoSignedZeros Source # | |
Defined in LLVM.Extra.FastMath showsPrec :: Int -> NoSignedZeros -> ShowS # show :: NoSignedZeros -> String # showList :: [NoSignedZeros] -> ShowS # | |
Eq NoSignedZeros Source # | |
Defined in LLVM.Extra.FastMath (==) :: NoSignedZeros -> NoSignedZeros -> Bool # (/=) :: NoSignedZeros -> NoSignedZeros -> Bool # | |
Flags NoSignedZeros Source # | |
Defined in LLVM.Extra.FastMath setFlags :: IsFloating a => Proxy NoSignedZeros -> Bool -> Value a -> CodeGenFunction r () Source # |
data AllowReciprocal Source #
Instances
Show AllowReciprocal Source # | |
Defined in LLVM.Extra.FastMath showsPrec :: Int -> AllowReciprocal -> ShowS # show :: AllowReciprocal -> String # showList :: [AllowReciprocal] -> ShowS # | |
Eq AllowReciprocal Source # | |
Defined in LLVM.Extra.FastMath (==) :: AllowReciprocal -> AllowReciprocal -> Bool # (/=) :: AllowReciprocal -> AllowReciprocal -> Bool # | |
Flags AllowReciprocal Source # | |
Defined in LLVM.Extra.FastMath setFlags :: IsFloating a => Proxy AllowReciprocal -> Bool -> Value a -> CodeGenFunction r () Source # |
class Flags flags where Source #
Instances
Flags AllowReciprocal Source # | |
Defined in LLVM.Extra.FastMath setFlags :: IsFloating a => Proxy AllowReciprocal -> Bool -> Value a -> CodeGenFunction r () Source # | |
Flags Fast Source # | |
Defined in LLVM.Extra.FastMath | |
Flags NoInfs Source # | |
Defined in LLVM.Extra.FastMath | |
Flags NoNaNs Source # | |
Defined in LLVM.Extra.FastMath | |
Flags NoSignedZeros Source # | |
Defined in LLVM.Extra.FastMath setFlags :: IsFloating a => Proxy NoSignedZeros -> Bool -> Value a -> CodeGenFunction r () Source # | |
(Flags f0, Flags f1) => Flags (f0, f1) Source # | |
Defined in LLVM.Extra.FastMath | |
(Flags f0, Flags f1, Flags f2) => Flags (f0, f1, f2) Source # | |
Defined in LLVM.Extra.FastMath | |
(Flags f0, Flags f1, Flags f2, Flags f3) => Flags (f0, f1, f2, f3) Source # | |
Defined in LLVM.Extra.FastMath | |
(Flags f0, Flags f1, Flags f2, Flags f3, Flags f4) => Flags (f0, f1, f2, f3, f4) Source # | |
Defined in LLVM.Extra.FastMath |
newtype Number flags a Source #
Number | |
|
Instances
class C a => NiceValue a where Source #
setNiceValueFlags :: Flags flags => Proxy flags -> Bool -> T (Number flags a) -> CodeGenFunction r () Source #
setMultiValueFlags :: Flags flags => Proxy flags -> Bool -> T (Number flags a) -> CodeGenFunction r () Source #
Deprecated: use setNiceValueFlags instead
Instances
NiceValue Double Source # | |
Defined in LLVM.Extra.FastMath setNiceValueFlags :: Flags flags => Proxy flags -> Bool -> T (Number flags Double) -> CodeGenFunction r () Source # setMultiValueFlags :: Flags flags => Proxy flags -> Bool -> T (Number flags Double) -> CodeGenFunction r () Source # | |
NiceValue Float Source # | |
Defined in LLVM.Extra.FastMath setNiceValueFlags :: Flags flags => Proxy flags -> Bool -> T (Number flags Float) -> CodeGenFunction r () Source # setMultiValueFlags :: Flags flags => Proxy flags -> Bool -> T (Number flags Float) -> CodeGenFunction r () Source # |
attachNiceValueFlags :: (Flags flags, NiceValue a) => Id (CodeGenFunction r (T (Number flags a))) Source #
attachMultiValueFlags :: (Flags flags, NiceValue a) => Id (CodeGenFunction r (T (Number flags a))) Source #
Deprecated: Use attachNiceValueFlags instead.
liftNumberM :: (m ~ CodeGenFunction r, Flags flags, NiceValue b) => (T a -> m (T b)) -> T (Number flags a) -> m (T (Number flags b)) Source #
liftNumberM2 :: (m ~ CodeGenFunction r, Flags flags, NiceValue c) => (T a -> T b -> m (T c)) -> T (Number flags a) -> T (Number flags b) -> m (T (Number flags c)) Source #
class (NiceValue a, C a) => NiceVector a where Source #
setNiceVectorFlags :: (Flags flags, Positive n) => Proxy flags -> Bool -> T n (Number flags a) -> CodeGenFunction r () Source #
setMultiVectorFlags :: (Flags flags, Positive n) => Proxy flags -> Bool -> T n (Number flags a) -> CodeGenFunction r () Source #
Deprecated: use setNiceVectorFlags instead
Instances
NiceVector Double Source # | |
Defined in LLVM.Extra.FastMath setNiceVectorFlags :: (Flags flags, Positive n) => Proxy flags -> Bool -> T n (Number flags Double) -> CodeGenFunction r () Source # setMultiVectorFlags :: (Flags flags, Positive n) => Proxy flags -> Bool -> T n (Number flags Double) -> CodeGenFunction r () Source # | |
NiceVector Float Source # | |
Defined in LLVM.Extra.FastMath setNiceVectorFlags :: (Flags flags, Positive n) => Proxy flags -> Bool -> T n (Number flags Float) -> CodeGenFunction r () Source # setMultiVectorFlags :: (Flags flags, Positive n) => Proxy flags -> Bool -> T n (Number flags Float) -> CodeGenFunction r () Source # |
attachNiceVectorFlags :: (Positive n, Flags flags, NiceVector a) => Id (CodeGenFunction r (T n (Number flags a))) Source #
liftNiceVectorM :: (m ~ CodeGenFunction r, Positive n, Flags flags, NiceVector b) => (T n a -> m (T n b)) -> T n (Number flags a) -> m (T n (Number flags b)) Source #
liftNiceVectorM2 :: (m ~ CodeGenFunction r, Positive n, Flags flags, NiceVector c) => (T n a -> T n b -> m (T n c)) -> T n (Number flags a) -> T n (Number flags b) -> m (T n (Number flags c)) Source #
attachMultiVectorFlags :: (Positive n, Flags flags, NiceVector a) => Id (CodeGenFunction r (T n (Number flags a))) Source #
Deprecated: Use attachNiceVectorFlags instead.
liftMultiVectorM :: (m ~ CodeGenFunction r, Positive n, Flags flags, NiceVector b) => (T n a -> m (T n b)) -> T n (Number flags a) -> m (T n (Number flags b)) Source #
Deprecated: Use liftNiceVectorM instead.
liftMultiVectorM2 :: (m ~ CodeGenFunction r, Positive n, Flags flags, NiceVector c) => (T n a -> T n b -> m (T n c)) -> T n (Number flags a) -> T n (Number flags b) -> m (T n (Number flags c)) Source #
Deprecated: Use liftNiceVectorM2 instead.
setTupleFlags :: Flags flags => Proxy flags -> Bool -> a -> CodeGenFunction r () Source #
Instances
IsFloating a => Tuple (Value a) Source # | |
Defined in LLVM.Extra.FastMath setTupleFlags :: Flags flags => Proxy flags -> Bool -> Value a -> CodeGenFunction r () Source # |
newtype Context flags a Source #
Context a |
Instances
attachTupleFlags :: (Flags flags, Tuple a) => Id (CodeGenFunction r (Context flags a)) Source #
liftContext :: (Flags flags, Tuple b) => (a -> CodeGenFunction r b) -> Context flags a -> CodeGenFunction r (Context flags b) Source #
liftContext2 :: (Flags flags, Tuple c) => (a -> b -> CodeGenFunction r c) -> Context flags a -> Context flags b -> CodeGenFunction r (Context flags c) Source #