llvm-tf-3.0.3.1.3: Bindings to the LLVM compiler toolkit using type families.

Safe HaskellNone
LanguageHaskell98

LLVM.Util.Arithmetic

Contents

Synopsis

Documentation

type TValue r a = CodeGenFunction r (Value a) Source #

Synonym for CodeGenFunction r (Value a).

(%==) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a) infix 4 Source #

Comparison functions.

(%/=) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a) infix 4 Source #

Comparison functions.

(%<) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a) infix 4 Source #

Comparison functions.

(%<=) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a) infix 4 Source #

Comparison functions.

(%>) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a) infix 4 Source #

Comparison functions.

(%>=) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a) infix 4 Source #

Comparison functions.

(%&&) :: TValue r Bool -> TValue r Bool -> TValue r Bool infixr 3 Source #

Lazy and.

(%||) :: TValue r Bool -> TValue r Bool -> TValue r Bool infixr 2 Source #

Lazy or.

(?) :: IsFirstClass a => TValue r Bool -> (TValue r a, TValue r a) -> TValue r a infix 0 Source #

Conditional, returns first element of the pair when condition is true, otherwise second.

(??) :: (IsFirstClass a, CmpRet a) => TValue r (CmpResult a) -> (TValue r a, TValue r a) -> TValue r a infix 0 Source #

retrn :: Ret (Value a) r => TValue r a -> CodeGenFunction r () Source #

Return a value from an arithFunction.

set :: TValue r a -> CodeGenFunction r (TValue r a) Source #

Use x <- set $ ... to make a binding.

class ArithFunction r z a b | a -> b r z, b r z -> a Source #

Minimal complete definition

arithFunction'

Instances

ArithFunction r z b0 b1 => ArithFunction r z (CodeGenFunction r a -> b0) (a -> b1) Source # 

Methods

arithFunction' :: (CodeGenFunction r a -> b0) -> a -> b1

Ret a r => ArithFunction r a (CodeGenFunction r a) (CodeGenFunction r ()) Source # 

arithFunction :: ArithFunction r z a b => a -> b Source #

Unlift a function with TValue to have Value arguments.

class ToArithFunction r a b | a r -> b, b -> a r Source #

Minimal complete definition

toArithFunction'

Instances

ToArithFunction r (IO b) (CodeGenFunction r (Value b)) Source # 
ToArithFunction r b0 b1 => ToArithFunction r (a -> b0) (CodeGenFunction r (Value a) -> b1) Source # 

Methods

toArithFunction' :: CodeGenFunction r (Call (a -> b0)) -> CodeGenFunction r (Value a) -> b1

toArithFunction :: ToArithFunction r f g => Function f -> g Source #

Lift a function from having Value arguments to having TValue arguments.

recursiveFunction :: (IsFunction f, FunctionArgs f, code ~ FunctionCodeGen f, ArithFunction r1 z arith code, ToArithFunction r0 f g) => (g -> arith) -> CodeGenModule (Function f) Source #

Define a recursive arithFunction, gets passed itself as the first argument.

Orphan instances

(IsArithmetic a, CmpRet a, Num a, IsConst a) => Enum (TValue r a) Source # 

Methods

succ :: TValue r a -> TValue r a #

pred :: TValue r a -> TValue r a #

toEnum :: Int -> TValue r a #

fromEnum :: TValue r a -> Int #

enumFrom :: TValue r a -> [TValue r a] #

enumFromThen :: TValue r a -> TValue r a -> [TValue r a] #

enumFromTo :: TValue r a -> TValue r a -> [TValue r a] #

enumFromThenTo :: TValue r a -> TValue r a -> TValue r a -> [TValue r a] #

Eq (TValue r a) Source # 

Methods

(==) :: TValue r a -> TValue r a -> Bool #

(/=) :: TValue r a -> TValue r a -> Bool #

(CmpRet a, CallIntrinsic a, Floating a, IsConst a, IsFloating a) => Floating (TValue r a) Source # 

Methods

pi :: TValue r a #

exp :: TValue r a -> TValue r a #

log :: TValue r a -> TValue r a #

sqrt :: TValue r a -> TValue r a #

(**) :: TValue r a -> TValue r a -> TValue r a #

logBase :: TValue r a -> TValue r a -> TValue r a #

sin :: TValue r a -> TValue r a #

cos :: TValue r a -> TValue r a #

tan :: TValue r a -> TValue r a #

asin :: TValue r a -> TValue r a #

acos :: TValue r a -> TValue r a #

atan :: TValue r a -> TValue r a #

sinh :: TValue r a -> TValue r a #

cosh :: TValue r a -> TValue r a #

tanh :: TValue r a -> TValue r a #

asinh :: TValue r a -> TValue r a #

acosh :: TValue r a -> TValue r a #

atanh :: TValue r a -> TValue r a #

log1p :: TValue r a -> TValue r a #

expm1 :: TValue r a -> TValue r a #

log1pexp :: TValue r a -> TValue r a #

log1mexp :: TValue r a -> TValue r a #

(CmpRet a, Fractional a, IsConst a, IsFloating a) => Fractional (TValue r a) Source # 

Methods

(/) :: TValue r a -> TValue r a -> TValue r a #

recip :: TValue r a -> TValue r a #

fromRational :: Rational -> TValue r a #

(CmpRet a, Num a, IsConst a, IsInteger a) => Integral (TValue r a) Source # 

Methods

quot :: TValue r a -> TValue r a -> TValue r a #

rem :: TValue r a -> TValue r a -> TValue r a #

div :: TValue r a -> TValue r a -> TValue r a #

mod :: TValue r a -> TValue r a -> TValue r a #

quotRem :: TValue r a -> TValue r a -> (TValue r a, TValue r a) #

divMod :: TValue r a -> TValue r a -> (TValue r a, TValue r a) #

toInteger :: TValue r a -> Integer #

(IsArithmetic a, CmpRet a, Num a, IsConst a) => Num (TValue r a) Source # 

Methods

(+) :: TValue r a -> TValue r a -> TValue r a #

(-) :: TValue r a -> TValue r a -> TValue r a #

(*) :: TValue r a -> TValue r a -> TValue r a #

negate :: TValue r a -> TValue r a #

abs :: TValue r a -> TValue r a #

signum :: TValue r a -> TValue r a #

fromInteger :: Integer -> TValue r a #

Ord (TValue r a) Source # 

Methods

compare :: TValue r a -> TValue r a -> Ordering #

(<) :: TValue r a -> TValue r a -> Bool #

(<=) :: TValue r a -> TValue r a -> Bool #

(>) :: TValue r a -> TValue r a -> Bool #

(>=) :: TValue r a -> TValue r a -> Bool #

max :: TValue r a -> TValue r a -> TValue r a #

min :: TValue r a -> TValue r a -> TValue r a #

(IsArithmetic a, CmpRet a, Num a, IsConst a) => Real (TValue r a) Source # 

Methods

toRational :: TValue r a -> Rational #

(CmpRet a, CallIntrinsic a, RealFloat a, IsConst a, IsFloating a) => RealFloat (TValue r a) Source # 

Methods

floatRadix :: TValue r a -> Integer #

floatDigits :: TValue r a -> Int #

floatRange :: TValue r a -> (Int, Int) #

decodeFloat :: TValue r a -> (Integer, Int) #

encodeFloat :: Integer -> Int -> TValue r a #

exponent :: TValue r a -> Int #

significand :: TValue r a -> TValue r a #

scaleFloat :: Int -> TValue r a -> TValue r a #

isNaN :: TValue r a -> Bool #

isInfinite :: TValue r a -> Bool #

isDenormalized :: TValue r a -> Bool #

isNegativeZero :: TValue r a -> Bool #

isIEEE :: TValue r a -> Bool #

atan2 :: TValue r a -> TValue r a -> TValue r a #

(CmpRet a, Fractional a, IsConst a, IsFloating a) => RealFrac (TValue r a) Source # 

Methods

properFraction :: Integral b => TValue r a -> (b, TValue r a) #

truncate :: Integral b => TValue r a -> b #

round :: Integral b => TValue r a -> b #

ceiling :: Integral b => TValue r a -> b #

floor :: Integral b => TValue r a -> b #