llvm-extra-0.12.0.1: Utility functions for the llvm interface
Safe HaskellSafe-Inferred
LanguageHaskell98

LLVM.Extra.Multi.Class

Documentation

class C value where Source #

Associated Types

type Size value Source #

Methods

switch :: f T -> f (T (Size value)) -> f value Source #

Instances

Instances details
C T Source # 
Instance details

Defined in LLVM.Extra.Multi.Class

Associated Types

type Size T Source #

Methods

switch :: f T -> f (T0 (Size T)) -> f T Source #

Positive n => C (T n) Source # 
Instance details

Defined in LLVM.Extra.Multi.Class

Associated Types

type Size (T n) Source #

Methods

switch :: f T0 -> f (T (Size (T n))) -> f (T n) Source #

newtype Const a value Source #

Constructors

Const 

Fields

undef :: (C value, Size value ~ n, Positive n, C a) => value a Source #

zero :: (C value, Size value ~ n, Positive n, C a) => value a Source #

newtype Op0 r a value Source #

Constructors

Op0 

Fields

newtype Op1 r a b value Source #

Constructors

Op1 

Fields

newtype Op2 r a b c value Source #

Constructors

Op2 

Fields

add :: (Positive n, Additive a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a) Source #

sub :: (Positive n, Additive a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a) Source #

neg :: (Positive n, Additive a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a) Source #

mul :: (Positive n, PseudoRing a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a) Source #

fdiv :: (Positive n, Field a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a) Source #

scale :: (Positive n, PseudoModule v, n ~ Size value, C value) => value (Scalar v) -> value v -> CodeGenFunction r (value v) Source #

min :: (Positive n, Real a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a) Source #

max :: (Positive n, Real a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a) Source #

abs :: (Positive n, Real a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a) Source #

signum :: (Positive n, Real a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a) Source #

truncate :: (Positive n, Fraction a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a) Source #

fraction :: (Positive n, Fraction a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a) Source #

sqrt :: (Positive n, Algebraic a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a) Source #

pi :: (Positive n, Transcendental a, n ~ Size value, C value) => CodeGenFunction r (value a) Source #

sin :: (Positive n, Transcendental a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a) Source #

cos :: (Positive n, Transcendental a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a) Source #

exp :: (Positive n, Transcendental a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a) Source #

log :: (Positive n, Transcendental a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a) Source #

pow :: (Positive n, Transcendental a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a) Source #

cmp :: (Positive n, Comparison a, n ~ Size value, C value) => CmpPredicate -> value a -> value a -> CodeGenFunction r (value Bool) Source #

fcmp :: (Positive n, FloatingComparison a, n ~ Size value, C value) => FPPredicate -> value a -> value a -> CodeGenFunction r (value Bool) Source #

and :: (Positive n, Logic a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a) Source #

or :: (Positive n, Logic a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a) Source #

xor :: (Positive n, Logic a, n ~ Size value, C value) => value a -> value a -> CodeGenFunction r (value a) Source #

inv :: (Positive n, Logic a, n ~ Size value, C value) => value a -> CodeGenFunction r (value a) Source #