shady-gen-0.5.1: Functional GPU programming - DSEL & compiler

Stabilityexperimental
Maintainerconal@conal.net

Shady.Language.Operator

Description

Known constants

Synopsis

Documentation

data Op whereSource

Constructors

Lit :: Show a => a -> Op a 
And :: IsNat n => Op (Binop (Vec n Bool)) 
Or :: IsNat n => Op (Binop (Vec n Bool)) 
Not :: IsNat n => Op (Unop (Vec n Bool)) 
EqualV :: (IsNat n, IsScalar a, Eq a) => Nat n -> Op (Vec n a -> Vec n a -> Vec n Bool) 
AllV :: IsNat n => Op (Vec n Bool -> B1) 
AnyV :: IsNat n => Op (Vec n Bool -> B1) 
Equal :: Eq (Vec n a) => Op (Pred2 (Vec n a)) 
Lt :: (IsNat n, IsScalar a, Ord a) => Nat n -> Op (Vec n a -> Vec n a -> Vec n Bool) 
Le :: (IsNat n, IsScalar a, Ord a) => Nat n -> Op (Vec n a -> Vec n a -> Vec n Bool) 
Min :: (IsNat n, IsScalar a, Ord a) => Op (Binop (Vec n a)) 
Max :: (IsNat n, IsScalar a, Ord a) => Op (Binop (Vec n a)) 
Negate :: (IsNat n, IsScalar a, Num a) => Op (Unop (Vec n a)) 
Add :: (IsNat n, IsScalar a, Num a) => Op (Binop (Vec n a)) 
Sub :: (IsNat n, IsScalar a, Num a) => Op (Binop (Vec n a)) 
Mul :: (IsNat n, IsScalar a, Num a) => Op (Binop (Vec n a)) 
Abs :: (IsNat n, IsScalar a, Num a) => Op (Unop (Vec n a)) 
Signum :: (IsNat n, IsScalar a, Num a) => Op (Unop (Vec n a)) 
Quot :: (IsNat n, IsScalar a, Integral a) => Op (Binop (Vec n a)) 
Rem :: (IsNat n, IsScalar a, Integral a) => Op (Binop (Vec n a)) 
Div :: (IsNat n, IsScalar a, Integral a) => Op (Binop (Vec n a)) 
Mod :: (IsNat n, IsScalar a, Integral a) => Op (Binop (Vec n a)) 
Recip :: (IsNat n, IsScalar a, Fractional a) => Op (Unop (Vec n a)) 
Divide :: (IsNat n, IsScalar a, Fractional a) => Op (Binop (Vec n a)) 
Sqrt :: (IsNat n, IsScalar a, Floating a) => Op (Unop (Vec n a)) 
Exp :: (IsNat n, IsScalar a, Floating a) => Op (Unop (Vec n a)) 
Log :: (IsNat n, IsScalar a, Floating a) => Op (Unop (Vec n a)) 
Sin :: (IsNat n, IsScalar a, Floating a) => Op (Unop (Vec n a)) 
Cos :: (IsNat n, IsScalar a, Floating a) => Op (Unop (Vec n a)) 
Asin :: (IsNat n, IsScalar a, Floating a) => Op (Unop (Vec n a)) 
Atan :: (IsNat n, IsScalar a, Floating a) => Op (Unop (Vec n a)) 
Acos :: (IsNat n, IsScalar a, Floating a) => Op (Unop (Vec n a)) 
Sinh :: (IsNat n, IsScalar a, Floating a) => Op (Unop (Vec n a)) 
Cosh :: (IsNat n, IsScalar a, Floating a) => Op (Unop (Vec n a)) 
Asinh :: (IsNat n, IsScalar a, Floating a) => Op (Unop (Vec n a)) 
Atanh :: (IsNat n, IsScalar a, Floating a) => Op (Unop (Vec n a)) 
Acosh :: (IsNat n, IsScalar a, Floating a) => Op (Unop (Vec n a)) 
Truncate :: IsNat n => Op (Unop (Vec n R)) 
Round :: IsNat n => Op (Unop (Vec n R)) 
Ceiling :: IsNat n => Op (Unop (Vec n R)) 
Floor :: IsNat n => Op (Unop (Vec n R)) 
FMod :: (IsNat n, IsScalar a, FMod a) => Op (Binop (Vec n a)) 
VVec2 :: IsScalar a => Op (One a -> One a -> Two a) 
VVec3 :: IsScalar a => Op (One a -> One a -> One a -> Three a) 
VVec4 :: IsScalar a => Op (One a -> One a -> One a -> One a -> Four a) 
Dot :: IsNat n => Op (Vec n R -> Vec n R -> R1) 
Swizzle :: (IsNat n, IsNat m, IsScalar a) => Vec n (Index m) -> Op (Vec m a -> Vec n a) 
Unit :: Op () 
Pair :: Op (a -> b -> (a, b)) 
Fst :: Op ((a, b) -> a) 
Snd :: Op ((a, b) -> b) 
If :: HasType a => Op (B1 -> Binop a) 
Cat :: (IsNat m, IsNat n, IsNat (m :+: n), IsScalar a) => Nat m -> Nat n -> VectorT (m :+: n) a -> Op (Vec m a -> Vec n a -> Vec (m :+: n) a) 
UniformV :: IsNat n => VectorT n a -> Op (One a -> Vec n a) 
Scale :: (IsNat n, Num a, IsScalar a) => Op (One a -> Unop (Vec n a)) 
Texture :: IsNat n => Nat n -> Op (Sampler n -> Vec n R -> R4) 

Instances

SynEq Op 
Show (Op t) 

data OpInfo a Source

Constructors

OpInfo 

Fields

oiName :: String
 
oiVal :: a
 
oiFix :: Fixity
 

info :: Op a -> OpInfo aSource

opExpr :: Op z -> [Expr] -> ExprSource

Operator application

opVal :: Op a -> aSource

opEq :: Op a -> Op b -> BoolSource