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

Safe Haskell | None

Feldspar.Core

Contents

- Reexported standard modules
- Feldspar types
- Frontend

Description

The Feldspar core language

Synopsis

- data Complex a = !a :+ !a
- module Data.Int
- module Data.Word
- data Range a = Range {
  - lowerBound :: a
  - upperBound :: a
  }
- class (Ord a, Num a, Bounded a, Integral a, Bits a) => BoundedInt a
- module Feldspar.Core.Types
- module Feldspar.Core.Frontend
- module Feldspar.Core.Collection

# 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 | forms a complex number from its real and imaginary rectangular components.

Instances

Typeable1 Complex |
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) |
(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)) |

module Data.Int

module Data.Word

# Feldspar types

data Range a

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) |

class (Ord a, Num a, Bounded a, Integral a, Bits a) => BoundedInt a

Convenience alias for bounded integers

Instances

(Ord a, Num a, Bounded a, Integral a, Bits a) => BoundedInt a |

module Feldspar.Core.Types

# Frontend

module Feldspar.Core.Frontend

module Feldspar.Core.Collection