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

Safe HaskellNone

Feldspar.Core.Constructs

Contents

Synopsis

Domain

Front end

newtype Data a Source

Constructors

Data 

Instances

Typeable1 Data 
Type a => Eq (Data a) 
(Num (Data a), Fraction a) => Fractional (Data a) 
Numeric a => Num (Data a) 
Type a => Show (Data a) 
Type a => Annotatable (Data a) 
Testable (Data Bool) 
(Type a, Arbitrary a) => Arbitrary (Data a) 
Type a => Syntactic (Data a) 
Type a => Sized (Data [a]) 
Type a => Indexed (Data [a]) 
(Syntactic (Data a), ~ (* -> *) (Domain (Data a)) FeldDomainAll, Type (Internal (Data a)), Type a) => Syntax (Data a) 
(Syntax (Dynamic (Data a)), Type a) => Splittable (Data a) 
Fixable (Data Float) 
(Syntax (Data a), Type a) => ElemWise (Data a) 
(Type a, Type b) => CollMap (Data [a]) (Data [b]) 
Wrap (Data a) (Data a)

Basic instances to handle Data a input and output. Other instances are located in the concerned libraries.

Type a => Wrap (Vector (Data a)) (Data [a]) 
Unit w => Wrap (BitVector w) (Data [w]) 
Type a => Wrap (Matrix a) (Data [[a]]) 
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)) 
Wrap t u => Wrap (Data a -> t) (Data a -> u) 
(Wrap t u, Type a, Nat s) => Wrap (Vector1 a -> t) (Data' s [a] -> u) 
(Wrap t u, Type a, Nat row, Nat col) => Wrap (Matrix a -> t) (Data' (row, col) [[a]] -> u) 

class (Syntactic a, Domain a ~ FeldDomainAll, Type (Internal a)) => Syntax a Source

Specialization of the Syntactic class for the Feldspar domain

Instances

Syntax () 
(Syntactic (Data a), ~ (* -> *) (Domain (Data a)) FeldDomainAll, Type (Internal (Data a)), Type a) => Syntax (Data a) 
(Syntactic (Future a), ~ (* -> *) (Domain (Future a)) FeldDomainAll, Type (Internal (Future a)), Syntax a) => Syntax (Future a) 
(Syntactic (Ref a), ~ (* -> *) (Domain (Ref a)) FeldDomainAll, Type (Internal (Ref a)), Syntax a) => Syntax (Ref a) 
(Syntactic (IVar a), ~ (* -> *) (Domain (IVar a)) FeldDomainAll, Type (Internal (IVar a)), Syntax a) => Syntax (IVar a) 
(Syntactic (Vector a), ~ (* -> *) (Domain (Vector a)) FeldDomainAll, Type (Internal (Vector a)), Syntax a) => Syntax (Vector a) 
(Syntactic (BitVector a), ~ (* -> *) (Domain (BitVector a)) FeldDomainAll, Type (Internal (BitVector a)), Unit a) => Syntax (BitVector a) 
(Syntactic (Fix a), ~ (* -> *) (Domain (Fix a)) FeldDomainAll, Type (Internal (Fix a)), Type a) => Syntax (Fix a) 
(Syntactic (Option a), ~ (* -> *) (Domain (Option a)) FeldDomainAll, Type (Internal (Option a)), Syntax a) => Syntax (Option a) 
(Syntactic (PushVector a), ~ (* -> *) (Domain (PushVector a)) FeldDomainAll, Type (Internal (PushVector a)), Syntax a) => Syntax (PushVector a) 
(Syntactic (a, b), ~ (* -> *) (Domain (a, b)) FeldDomainAll, Type (Internal (a, b)), Syntax a, Syntax b) => Syntax (a, b) 
(Syntactic (Data' s a), ~ (* -> *) (Domain (Data' s a)) FeldDomainAll, Type (Internal (Data' s a)), Type a) => Syntax (Data' s a) 
(Syntactic (Vector sh a), ~ (* -> *) (Domain (Vector sh a)) FeldDomainAll, Type (Internal (Vector sh a)), Shape sh, Syntax a) => Syntax (Vector sh a) 
(Syntactic (a, b, c), ~ (* -> *) (Domain (a, b, c)) FeldDomainAll, Type (Internal (a, b, c)), Syntax a, Syntax b, Syntax c) => Syntax (a, b, c) 
(Syntactic (a, b, c, d), ~ (* -> *) (Domain (a, b, c, d)) FeldDomainAll, Type (Internal (a, b, c, d)), Syntax a, Syntax b, Syntax c, Syntax d) => Syntax (a, b, c, d) 
(Syntactic (a, b, c, d, e), ~ (* -> *) (Domain (a, b, c, d, e)) FeldDomainAll, Type (Internal (a, b, c, d, e)), Syntax a, Syntax b, Syntax c, Syntax d, Syntax e) => Syntax (a, b, c, d, e) 
(Syntactic (a, b, c, d, e, f), ~ (* -> *) (Domain (a, b, c, d, e, f)) FeldDomainAll, Type (Internal (a, b, c, d, e, f)), Syntax a, Syntax b, Syntax c, Syntax d, Syntax e, Syntax f) => Syntax (a, b, c, d, e, f) 
(Syntactic (a, b, c, d, e, f, g), ~ (* -> *) (Domain (a, b, c, d, e, f, g)) FeldDomainAll, Type (Internal (a, b, c, d, e, f, g)), Syntax a, Syntax b, Syntax c, Syntax d, Syntax e, Syntax f, Syntax g) => Syntax (a, b, c, d, e, f, g) 

sugarSymF :: (ApplySym sig b dom, SyntacticN c b, InjectC (feature :|| Type) dom (DenResult sig), Type (DenResult sig)) => feature sig -> cSource