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

Safe HaskellNone
LanguageHaskell2010

Feldspar.Core

Contents

Description

The Feldspar core language

Synopsis

Reexported standard modules

data Complex a :: * -> *

Complex numbers are an algebraic type.

For a complex number z, abs z is a number with the magnitude of z, but oriented in the positive real direction, whereas signum z has the phase of z, but unit magnitude.

Constructors

!a :+ !a infix 6

forms a complex number from its real and imaginary rectangular components.

Instances

Eq a => Eq (Complex a) 
RealFloat a => Floating (Complex a) 
RealFloat a => Fractional (Complex a) 
Data a => Data (Complex a) 
RealFloat a => Num (Complex a) 
Read a => Read (Complex a) 
Show a => Show (Complex a) 
(RealFloat a, Arbitrary a) => Arbitrary (Complex a) 
(RealFloat a, CoArbitrary a) => CoArbitrary (Complex a) 
(RealFloat a, NFData a) => NFData (Complex a) 
(Default a, RealFloat a) => Default (Complex a) 
(Type a, RealFloat a) => Type (Complex a) 
(Type a, RealFloat a) => Numeric (Complex a) 
(Fraction a, RealFloat a) => Fraction (Complex a) 
(Fraction a, RealFloat a) => Floating (Complex a) 
(Eq a, RealFloat a) => Eq (Complex a) 
(Eq a) :=> (Eq (Complex a)) 
(Read a) :=> (Read (Complex a)) 
(RealFloat a) :=> (Num (Complex a)) 
(RealFloat a) :=> (Fractional (Complex a)) 
(RealFloat a) :=> (Floating (Complex a)) 
(Show a) :=> (Show (Complex a)) 
Typeable (* -> *) Complex 
type TargetType n (Complex a) = Complex (TargetType n a) 
type Size (Complex a) = AnySize 

module Data.Int

module Data.Word

Feldspar types

data Range a Source

A bounded range of values of type a

Constructors

Range 

Fields

lowerBound :: a
 
upperBound :: a
 

Instances

Eq a => Eq (Range a) 
BoundedInt a => Num (Range a)

Implements fromInteger as a singletonRange, and implements correct range propagation for arithmetic operations.

BoundedInt a => Ord (Range a) 
Show a => Show (Range a) 
BoundedInt a => Lattice (Range a) 
(BoundedInt a, BoundedInt b, BoundedInt c) => Num (Range a, Range b, Range c) 

type BoundedInt a = (BoundedSuper a, BoundedSuper (UnsignedRep a)) Source

Convenience alias for bounded integers

Frontend