Portability | portable |
---|---|
Stability | experimental |
Maintainer | mik@konecny.aow.cz |
Abstractions of the Box
datatype, often used to represent
sections of multi-dimensional function domains.
To be imported qualified, usually with prefix DBox.
VariableID(..) and DomainBox are usually imported separately and not qualified.
- class Ord varid => VariableID varid where
- newVarID :: Set varid -> varid
- defaultVar :: varid
- showVar :: varid -> String
- class VariableID varid => DomainBox box varid ira | box -> varid ira, varid ira -> box where
- noinfo :: box
- isNoinfo :: box -> Bool
- unary :: ira -> box
- singleton :: varid -> ira -> box
- toList :: box -> [(varid, ira)]
- fromList :: [(varid, ira)] -> box
- toAscList :: box -> [(varid, ira)]
- fromAscList :: [(varid, ira)] -> box
- toMap :: box -> Map varid ira
- fromMap :: Map varid ira -> box
- insert :: varid -> ira -> box -> box
- insertWith :: (ira -> ira -> ira) -> varid -> ira -> box -> box
- delete :: varid -> box -> box
- member :: varid -> box -> Bool
- notMember :: varid -> box -> Bool
- union :: box -> box -> box
- unionWith :: (ira -> ira -> ira) -> box -> box -> box
- keys :: box -> [varid]
- elems :: box -> [ira]
- map :: (ira -> ira) -> box -> box
- fold :: (ira -> a -> a) -> a -> box -> a
- foldWithKey :: (varid -> ira -> a -> a) -> a -> box -> a
- zipWith :: (ira -> ira -> a) -> box -> box -> [(varid, a)]
- intersectionWith :: (ira -> ira -> ira) -> box -> box -> box
- findWithDefault :: ira -> varid -> box -> ira
- lookup :: String -> varid -> box -> ira
- class DomainBox box varid ira => DomainIntBox box varid ira | box -> varid ira, varid ira -> box where
- compatible :: box -> box -> Bool
- unify :: String -> box -> box -> box
- bestSplit :: box -> (varid, ira)
- classifyPosition :: box -> box -> (Bool, Bool, Bool, Bool)
Documentation
class Ord varid => VariableID varid whereSource
A class abstracting a type of variable identifiers for axes in function domains, polynomials etc.
class VariableID varid => DomainBox box varid ira | box -> varid ira, varid ira -> box whereSource
A class abstracting a type of many-dimensional points or intervals.
constructor using defaultVar
singleton :: varid -> ira -> boxSource
toList :: box -> [(varid, ira)]Source
fromList :: [(varid, ira)] -> boxSource
toAscList :: box -> [(varid, ira)]Source
fromAscList :: [(varid, ira)] -> boxSource
toMap :: box -> Map varid iraSource
fromMap :: Map varid ira -> boxSource
insert :: varid -> ira -> box -> boxSource
insertWith :: (ira -> ira -> ira) -> varid -> ira -> box -> boxSource
delete :: varid -> box -> boxSource
member :: varid -> box -> BoolSource
notMember :: varid -> box -> BoolSource
union :: box -> box -> boxSource
unionWith :: (ira -> ira -> ira) -> box -> box -> boxSource
map :: (ira -> ira) -> box -> boxSource
fold :: (ira -> a -> a) -> a -> box -> aSource
foldWithKey :: (varid -> ira -> a -> a) -> a -> box -> aSource
zipWith :: (ira -> ira -> a) -> box -> box -> [(varid, a)]Source
intersectionWith :: (ira -> ira -> ira) -> box -> box -> boxSource
findWithDefault :: ira -> varid -> box -> iraSource
:: String | identification of caller location to use in error messages |
-> varid | |
-> box | |
-> ira |
Pick the extents of a single variable in a domain box. If there is no information for this variable, assume the variable ranges over the whole real line.
class DomainBox box varid ira => DomainIntBox box varid ira | box -> varid ira, varid ira -> box whereSource
A class abstracting a type of many-dimensional intervals.
compatible :: box -> box -> BoolSource
Check whether the two domains specify the same interval for each variable that they share.
:: String | identification of caller location to use in error messages |
-> box | |
-> box | |
-> box |
Assuming that two domains are compatible, take the most information from both of the domains about the ranges of variables.
bestSplit :: box -> (varid, ira)Source
Find the variable with the largest interval and return it together with the default splitting point in its domain.
ERIntApprox ira => DomainIntBox (Box ira) VarID ira |