feldspar-language-0.7: A functional embedded language for DSP and parallelism

Safe HaskellNone

Feldspar.Core.Constructs

Contents

Synopsis

Domain

type FeldSymbols = (Decor SourceInfo1 Identity :|| Type) :+: ((Condition :|| Type) :+: ((FFI :|| Type) :+: ((Literal :|| Type) :+: ((Select :|| Type) :+: ((Tuple :|| Type) :+: ((Array :|| Type) :+: ((BITS :|| Type) :+: ((COMPLEX :|| Type) :+: ((Conversion :|| Type) :+: ((EQ :|| Type) :+: ((Error :|| Type) :+: ((FLOATING :|| Type) :+: ((REALFLOAT :|| Type) :+: ((FRACTIONAL :|| Type) :+: ((FUTURE :|| Type) :+: ((INTEGRAL :|| Type) :+: ((Logic :|| Type) :+: ((Loop :|| Type) :+: ((NUM :|| Type) :+: ((NoInline :|| Type) :+: ((ORD :|| Type) :+: ((PropSize :|| Type) :+: ((Save :|| Type) :+: ((Switch :|| Type) :+: ((Trace :|| Type) :+: (Let :+: (ConditionM Mut :+: (LoopM Mut :+: (MONAD Mut :+: (Mutable :+: (MutableArray :+: (MutableReference :+: (MutableToPure :+: (MONAD Par :+: (ParFeature :+: Empty)))))))))))))))))))))))))))))))))))Source

newtype FeldDomain a Source

Constructors

FeldDomain 

Fields

getFeldDomain :: HODomain FeldSymbols Typeable Type a
 

Instances

Constrained FeldDomain 
Project sym FeldSymbols => Project sym FeldDomain 
TupleSat FeldDomain Type 
(InjectC sym FeldSymbols a, Typeable a) => InjectC sym FeldDomain a 
IsHODomain FeldDomain Typeable Type 

toFeld :: ASTF (HODomain FeldSymbols Typeable Type) a -> ASTF FeldDomain aSource

fromFeld :: ASTF FeldDomain a -> ASTF (HODomain FeldSymbols Typeable Type) aSource

Front end

newtype Data a Source

Constructors

Data 

Fields

unData :: ASTF FeldDomain a
 

Instances

Typeable1 Data 
Type a => Eq (Data a) 
Fraction a => Fractional (Data a) 
Numeric a => Num (Data a) 
Type a => Show (Data a) 
Testable (Data Bool) 
(Type a, Arbitrary a) => Arbitrary (Data a) 
Type a => Sized (Data [a]) 
Type a => Indexed (Data [a]) 
Type a => Syntactic (Data a) 
Fixable (Data Float) 
Type a => ElemWise (Data a) 
(Type a, Type b) => CollMap (Data [a]) (Data [b]) 
Numeric a => Mul (Data a) (Matrix a) 
Numeric a => Mul (Data a) (Vector1 a) 
Numeric a => Mul (Data a) (Data a) 
Numeric a => Mul (Vector1 a) (Matrix a) 
Numeric a => Mul (Vector1 a) (Vector1 a) 
Numeric a => Mul (Vector1 a) (Data a) 
Numeric a => Mul (Matrix a) (Matrix a) 
Numeric a => Mul (Matrix a) (Vector1 a) 
Numeric a => Mul (Matrix a) (Data a) 
Slice sl => Slice (:. sl (Data Length)) 
Shape sh => Shape (:. sh (Data Length)) 

class (SyntacticFeld a, Type (Internal a)) => Syntax a Source

Specialization of the Syntactic class for the Feldspar domain

Instances

sugarSymF :: (ApplySym sig b FeldDomain, SyntacticN c b, InjectC (feature :|| Type) (HODomain FeldSymbols Typeable Type) (DenResult sig), Type (DenResult sig)) => feature sig -> cSource