|
|
|
Description |
Ranged values
|
|
Synopsis |
|
data Ord a => Range a = Range {} | | 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 |
|
|
Constructors | | Instances | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Checks whether a range is a sub-range of the natural numbers.
|
|
|
Checks whether a range is a sub-range of the negative numbers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r1 `rangeLess` r2: Checks if all elements of r1 are less than all elements of r2.
|
|
|
r1 `rangeLessEq` r2: Checks if all elements of r1 are less than or equal to all elements of
r2.
|
|
|
rangeAddUnsigned correctly and accurately propagates range
information through an unsigned addition. Code is borrowed from
Hacker's Delight.
|
|
|
rangeAddSigned correctly and accurately propagates range
information through a signed addition. Code is borrowed from
Hacker's Delight.
|
|
|
rangeSubUnsigned propagates range information through unsigned
subtraction. Code is borrowed from Hacker's Delight
|
|
|
Propagates range information through unsigned negation. Code from
Hacker's Delight
|
|
|
Propagates range information through signed negation. Code from
Hacker's Delight.
|
|
|
Cheap and inaccurate range propagation for .|. on unsigned numbers.
Code from Hacker's Delight
|
|
|
Accurate lower bound for .|. on unsigned numbers.
|
|
|
Accurate upper bound for .|. on unsigned numbers.
|
|
|
|
|
Cheap and inaccurate range propagation for .&. on unsigned numbers.
Code from Hacker's Delight
|
|
|
Range propagation for xor on unsigned numbers.
Code from Hacker's Delight
|
|
|
Auxiliary function for writing range propagation
functions. Especially suitable for the code borrowed from Hacker's
Delight.
|
|
|
Auxiliary function for writing range propagation functions for
two argument functions. Especially suitable for the code borrowed
from Hacker's Delight.
|
|
|
Propagates range information through max.
|
|
|
Analogous to rangeMax
|
|
|
Propagates range information through mod.
Note that we assume Haskell semantics for mod.
|
|
|
Propagates range information through rem.
Note that we assume Haskell semantics for rem.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Produced by Haddock version 2.6.1 |