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