feldspar-language-0.3.1: A functional embedded language for DSP and parallelismSource codeContentsIndex
Feldspar.Range
Description
Ranged values
Synopsis
data Ord a => Range a = Range {
lowerBound :: Maybe a
upperBound :: Maybe a
}
rangeOp :: Ord a => (Range a -> Range a) -> Range a -> Range a
rangeOp2 :: Ord a => (Range a -> Range a -> Range a) -> Range a -> Range a -> Range a
mapMonotonic :: (Ord a, Ord b) => (a -> b) -> Range a -> Range b
rangeMul :: (Ord a, Num a) => Range a -> Range a -> Range a
emptyRange :: (Ord a, Num a) => Range a
fullRange :: Ord a => Range a
range :: Ord a => a -> a -> Range a
rangeByRange :: Ord a => Range a -> Range a -> Range a
singletonRange :: Ord a => a -> Range a
naturalRange :: (Ord a, Num a) => Range a
negativeRange :: (Ord a, Num a) => Range a
rangeSize :: (Ord a, Num a) => Range a -> Maybe a
isEmpty :: Ord a => Range a -> Bool
isFull :: Ord a => Range a -> Bool
isBounded :: Ord a => Range a -> Bool
isSingleton :: Ord a => Range a -> Bool
isSubRangeOf :: Ord a => Range a -> Range a -> Bool
isNatural :: (Ord a, Num a) => Range a -> Bool
isNegative :: (Ord a, Num a) => Range a -> Bool
inRange :: Ord a => a -> Range a -> Bool
rangeGap :: (Ord a, Num a) => Range a -> Range a -> Range a
(\/) :: Ord a => Range a -> Range a -> Range a
liftMaybe2 :: (a -> a -> a) -> Maybe a -> Maybe a -> Maybe a
(/\) :: Ord a => Range a -> Range a -> Range a
disjoint :: (Ord a, Num a) => Range a -> Range a -> Bool
rangeLess :: Ord a => Range a -> Range a -> Bool
rangeLessEq :: Ord a => Range a -> Range a -> Bool
rangeAddUnsigned :: (Ord a, Num a, Bounded a) => Range a -> Range a -> Range a
rangeAddSigned :: (Ord a, Num a, Bounded a, Bits a) => Range a -> Range a -> Range a
rangeSubUnsigned :: (Ord a, Num a, Bounded a) => Range a -> Range a -> Range a
rangeNegUnsigned :: (Ord a, Num a, Bounded a) => Range a -> Range a
rangeNegSigned :: (Ord a, Num a, Bounded a) => Range a -> Range a
rangeOrUnsignedCheap :: (Ord a, Num a, Bounded a) => Range a -> Range a -> Range a
minOrUnsigned :: (Ord a, Num a, Bits a) => a -> a -> a -> a -> a
maxOrUnsigned :: (Ord a, Num a, Bits a) => a -> a -> a -> a -> a
rangeOrUnsignedAccurate :: (Ord a, Num a, Bits a, Bounded a) => Range a -> Range a -> Range a
rangeAndUnsignedCheap :: (Ord a, Num a, Bounded a) => Range a -> Range a -> Range a
rangeXorUnsigned :: (Ord a, Num a, Bounded a) => Range a -> Range a -> Range a
rangeProp1 :: (Ord a, Bounded a) => (a -> a -> Range a) -> Range a -> Range a
rangeProp2 :: (Ord a, Bounded a) => (a -> a -> a -> a -> Range a) -> Range a -> Range a -> Range a
rangeMax :: Ord a => Range a -> Range a -> Range a
rangeMin :: Ord a => Range a -> Range a -> Range a
rangeMod :: (Num a, Ord a, Enum a) => Range a -> Range a -> Range a
rangeRem :: (Num a, Ord a, Enum a) => Range a -> Range a -> Range a
showBound :: Show a => Maybe a -> String
showRange :: (Show a, Ord a) => Range a -> String
prop_arith1 :: (forall a. Num a => a -> a) -> Range Int -> Property
prop_arith2 :: (forall a. Num a => a -> a -> a) -> Range Int -> Range Int -> Property
rangePropagationSafetyPre :: (Random a, Ord a, Show a, Bounded a, Random b, Ord b, Show b, Bounded b, Ord c) => (a -> b -> c) -> (Range a -> Range b -> Range c) -> (a -> b -> Bool) -> Range a -> Range b -> Property
rangePropSafety1 :: (Ord a, Show a, Random a, Bounded a, Ord b) => (a -> b) -> (Range a -> Range b) -> Range a -> Property
uppBound :: (Bounded a, Ord a) => Range a -> a
lowBound :: (Bounded a, Ord a) => Range a -> a
fromRange :: (Random a, Bounded a, Ord a) => Range a -> Gen a
Documentation
data Ord a => Range a Source
Constructors
Range
lowerBound :: Maybe a
upperBound :: Maybe a
show/hide Instances
Ord a => Eq (Range a)
(Ord a, Num a) => Num (Range a)
(Ord a, Show a) => Show (Range a)
(Arbitrary a, Ord a, Num a) => Arbitrary (Range a)
(Ord a, Num a) => Monoid (Range a)
Ord a => Set (Range a)
rangeOp :: Ord a => (Range a -> Range a) -> Range a -> Range aSource
rangeOp2 :: Ord a => (Range a -> Range a -> Range a) -> Range a -> Range a -> Range aSource
mapMonotonic :: (Ord a, Ord b) => (a -> b) -> Range a -> Range bSource
rangeMul :: (Ord a, Num a) => Range a -> Range a -> Range aSource
emptyRange :: (Ord a, Num a) => Range aSource
fullRange :: Ord a => Range aSource
range :: Ord a => a -> a -> Range aSource
rangeByRange :: Ord a => Range a -> Range a -> Range aSource
singletonRange :: Ord a => a -> Range aSource
naturalRange :: (Ord a, Num a) => Range aSource
negativeRange :: (Ord a, Num a) => Range aSource
rangeSize :: (Ord a, Num a) => Range a -> Maybe aSource
isEmpty :: Ord a => Range a -> BoolSource
isFull :: Ord a => Range a -> BoolSource
isBounded :: Ord a => Range a -> BoolSource
isSingleton :: Ord a => Range a -> BoolSource
isSubRangeOf :: Ord a => Range a -> Range a -> BoolSource
isNatural :: (Ord a, Num a) => Range a -> BoolSource
Checks whether a range is a sub-range of the natural numbers.
isNegative :: (Ord a, Num a) => Range a -> BoolSource
Checks whether a range is a sub-range of the negative numbers.
inRange :: Ord a => a -> Range a -> BoolSource
rangeGap :: (Ord a, Num a) => Range a -> Range a -> Range aSource
(\/) :: Ord a => Range a -> Range a -> Range aSource
liftMaybe2 :: (a -> a -> a) -> Maybe a -> Maybe a -> Maybe aSource
(/\) :: Ord a => Range a -> Range a -> Range aSource
disjoint :: (Ord a, Num a) => Range a -> Range a -> BoolSource
rangeLess :: Ord a => Range a -> Range a -> BoolSource
r1 `rangeLess` r2:

Checks if all elements of r1 are less than all elements of r2.

rangeLessEq :: Ord a => Range a -> Range a -> BoolSource
r1 `rangeLessEq` r2:

Checks if all elements of r1 are less than or equal to all elements of r2.

rangeAddUnsigned :: (Ord a, Num a, Bounded a) => Range a -> Range a -> Range aSource
rangeAddUnsigned correctly and accurately propagates range information through an unsigned addition. Code is borrowed from Hacker's Delight.
rangeAddSigned :: (Ord a, Num a, Bounded a, Bits a) => Range a -> Range a -> Range aSource
rangeAddSigned correctly and accurately propagates range information through a signed addition. Code is borrowed from Hacker's Delight.
rangeSubUnsigned :: (Ord a, Num a, Bounded a) => Range a -> Range a -> Range aSource
rangeSubUnsigned propagates range information through unsigned subtraction. Code is borrowed from Hacker's Delight
rangeNegUnsigned :: (Ord a, Num a, Bounded a) => Range a -> Range aSource
Propagates range information through unsigned negation. Code from Hacker's Delight
rangeNegSigned :: (Ord a, Num a, Bounded a) => Range a -> Range aSource
Propagates range information through signed negation. Code from Hacker's Delight.
rangeOrUnsignedCheap :: (Ord a, Num a, Bounded a) => Range a -> Range a -> Range aSource
Cheap and inaccurate range propagation for .|. on unsigned numbers. Code from Hacker's Delight
minOrUnsigned :: (Ord a, Num a, Bits a) => a -> a -> a -> a -> aSource
Accurate lower bound for .|. on unsigned numbers.
maxOrUnsigned :: (Ord a, Num a, Bits a) => a -> a -> a -> a -> aSource
Accurate upper bound for .|. on unsigned numbers.
rangeOrUnsignedAccurate :: (Ord a, Num a, Bits a, Bounded a) => Range a -> Range a -> Range aSource
rangeAndUnsignedCheap :: (Ord a, Num a, Bounded a) => Range a -> Range a -> Range aSource
Cheap and inaccurate range propagation for .&. on unsigned numbers. Code from Hacker's Delight
rangeXorUnsigned :: (Ord a, Num a, Bounded a) => Range a -> Range a -> Range aSource
Range propagation for xor on unsigned numbers. Code from Hacker's Delight
rangeProp1 :: (Ord a, Bounded a) => (a -> a -> Range a) -> Range a -> Range aSource
Auxiliary function for writing range propagation functions. Especially suitable for the code borrowed from Hacker's Delight.
rangeProp2 :: (Ord a, Bounded a) => (a -> a -> a -> a -> Range a) -> Range a -> Range a -> Range aSource
Auxiliary function for writing range propagation functions for two argument functions. Especially suitable for the code borrowed from Hacker's Delight.
rangeMax :: Ord a => Range a -> Range a -> Range aSource
Propagates range information through max.
rangeMin :: Ord a => Range a -> Range a -> Range aSource
Analogous to rangeMax
rangeMod :: (Num a, Ord a, Enum a) => Range a -> Range a -> Range aSource
Propagates range information through mod. Note that we assume Haskell semantics for mod.
rangeRem :: (Num a, Ord a, Enum a) => Range a -> Range a -> Range aSource
Propagates range information through rem. Note that we assume Haskell semantics for rem.
showBound :: Show a => Maybe a -> StringSource
showRange :: (Show a, Ord a) => Range a -> StringSource
prop_arith1 :: (forall a. Num a => a -> a) -> Range Int -> PropertySource
prop_arith2 :: (forall a. Num a => a -> a -> a) -> Range Int -> Range Int -> PropertySource
rangePropagationSafetyPre :: (Random a, Ord a, Show a, Bounded a, Random b, Ord b, Show b, Bounded b, Ord c) => (a -> b -> c) -> (Range a -> Range b -> Range c) -> (a -> b -> Bool) -> Range a -> Range b -> PropertySource
rangePropSafety1 :: (Ord a, Show a, Random a, Bounded a, Ord b) => (a -> b) -> (Range a -> Range b) -> Range a -> PropertySource
uppBound :: (Bounded a, Ord a) => Range a -> aSource
lowBound :: (Bounded a, Ord a) => Range a -> aSource
fromRange :: (Random a, Bounded a, Ord a) => Range a -> Gen aSource
Produced by Haddock version 2.6.1