Safe Haskell | None |
---|
- module Data.Patch
- class Syntactic a where
- type Internal a1 :: *
- type SyntacticFeld a = (Syntactic a, Domain a ~ FeldDomainAll, Typeable (Internal a))
- type family Internal a1 :: *
- type FeldDomainAll = HODomain FeldSymbols Typeable Type
- data Data a
- class (Syntactic a, Domain a ~ FeldDomainAll, Type (Internal a)) => Syntax a
- reifyFeld :: SyntacticFeld a => BitWidth n -> a -> ASTF (Decor Info FeldDomain) (Internal a)
- showExpr :: SyntacticFeld a => a -> String
- printExpr :: SyntacticFeld a => a -> IO ()
- showAST :: SyntacticFeld a => a -> String
- drawAST :: SyntacticFeld a => a -> IO ()
- showDecor :: SyntacticFeld a => a -> String
- drawDecor :: SyntacticFeld a => a -> IO ()
- eval :: SyntacticFeld a => a -> Internal a
- evalTarget :: (SyntacticFeld a, BoundedInt (GenericInt U n), BoundedInt (GenericInt S n)) => BitWidth n -> a -> Internal a
- desugar :: Syntax a => a -> Data (Internal a)
- sugar :: Syntax a => Data (Internal a) -> a
- resugar :: (Syntax a, Syntax b, Internal a ~ Internal b) => a -> b
- (===>) :: Testable prop => Data Bool -> prop -> Property
- (===) :: Equal a => a -> a -> Property
- tData :: Patch a a -> Patch (Data a) (Data a)
- tArr1 :: Patch a a -> Patch (Data [a]) (Data [a])
- tArr2 :: Patch a a -> Patch (Data [[a]]) (Data [[a]])
- tM :: Patch a a -> Patch (M a) (M a)
- ilog2 :: Bits a => Data a -> Data Index
- nlz :: Bits a => Data a -> Data Index
Documentation
module Data.Patch
class Syntactic a
type Internal a1 :: *
type SyntacticFeld a = (Syntactic a, Domain a ~ FeldDomainAll, Typeable (Internal a))Source
type family Internal a1 :: *
Typeable1 Data | |
Type a => Eq (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]) | |
Type a => Syntax (Data a) | |
Fixable (Data Float) | |
Type a => ElemWise (Data a) | |
(Type a, Type b) => CollMap (Data [a]) (Data [b]) | |
Wrap (Data a) (Data a) | Basic instances to handle |
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
Syntax () | |
Type a => Syntax (Data a) | |
Syntax a => Syntax (Future a) | |
Syntax a => Syntax (Ref a) | |
Syntax a => Syntax (IVar a) | |
Syntax a => Syntax (Vector a) | |
Unit a => Syntax (BitVector a) | |
Type a => Syntax (Fix a) | |
Syntax a => Syntax (Option a) | |
Syntax a => Syntax (PushVector a) | |
(Syntax a, Syntax b) => Syntax (a, b) | |
Type a => Syntax (Data' s a) | |
(Shape sh, Syntax a) => Syntax (Vector sh a) | |
(Syntax a, Syntax b, Syntax c) => Syntax (a, b, c) | |
(Syntax a, Syntax b, Syntax c, Syntax d) => Syntax (a, b, c, d) | |
(Syntax a, Syntax b, Syntax c, Syntax d, Syntax e) => Syntax (a, b, c, d, e) | |
(Syntax a, Syntax b, Syntax c, Syntax d, Syntax e, Syntax f) => Syntax (a, b, c, d, e, f) | |
(Syntax a, Syntax b, Syntax c, Syntax d, Syntax e, Syntax f, Syntax g) => Syntax (a, b, c, d, e, f, g) |
reifyFeld :: SyntacticFeld a => BitWidth n -> a -> ASTF (Decor Info FeldDomain) (Internal a)Source
Reification and optimization of a Feldspar program
showExpr :: SyntacticFeld a => a -> StringSource
printExpr :: SyntacticFeld a => a -> IO ()Source
showAST :: SyntacticFeld a => a -> StringSource
drawAST :: SyntacticFeld a => a -> IO ()Source
showDecor :: SyntacticFeld a => a -> StringSource
Draw a syntax tree decorated with type and size information
drawDecor :: SyntacticFeld a => a -> IO ()Source
Draw a syntax tree decorated with type and size information
eval :: SyntacticFeld a => a -> Internal aSource
evalTarget :: (SyntacticFeld a, BoundedInt (GenericInt U n), BoundedInt (GenericInt S n)) => BitWidth n -> a -> Internal aSource