Portability | portable |
---|---|
Stability | experimental |
Maintainer | [email protected] |
Control.ERNet.Blocks.Real.LFT
Contents
Description
A protocol for sending a real number using a stream of LFT digits based on the work of Potts and Edalat (1997).
- data QALFTRealQ = QALFTRealQ Int
- data QALFTRealA = QALFTRealA [LFTDigit]
- data LFTDigit
- = LFT_L
- | LFT_M
- | LFT_R
- | LFT_SG_ZER
- | LFT_SG_INF
- | LFT_SG_POS
- | LFT_SG_NEG
- lftDigit2Tensor :: LFTDigit -> LFTTensor
- chTLFTReal :: ChannelType
- lftRealNumberIncremProcess :: (Channel sIn sOut sInAnyProt sOutAnyProt, ERIntApprox ra, Typeable ra) => ERProcessName -> (EffortIndex -> ra) -> ERProcess sInAnyProt sOutAnyProt
- lftRealNumberBufferForkProcess :: Channel sIn sOut sInAnyProt sOutAnyProt => ERProcessName -> ERProcess sInAnyProt sOutAnyProt
- data LFTTensor = LFTTensor {
- lftTNSrank :: Int
- lftTNScoeffs :: Map [Bool] Integer
- lftConst :: Integer -> Integer -> LFTTensor
- lftMatrix :: Integer -> Integer -> Integer -> Integer -> LFTTensor
- lftTensorBinary :: Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> LFTTensor
- lftTensorInfo :: ERApprox ra => Granularity -> LFTTensor -> ExtInterval ra
- lftTensorIsPositive :: LFTTensor -> Bool
- lftTensorCompose :: LFTTensor -> Int -> LFTTensor -> LFTTensor
- lftTensorComposeUnary :: LFTTensor -> LFTTensor -> LFTTensor
protocol
data QALFTRealQ Source
Constructors
QALFTRealQ Int |
data QALFTRealA Source
Constructors
QALFTRealA [LFTDigit] |
Constructors
LFT_L | |
LFT_M | |
LFT_R | |
LFT_SG_ZER | |
LFT_SG_INF | |
LFT_SG_POS | |
LFT_SG_NEG |
lftDigit2Tensor :: LFTDigit -> LFTTensorSource
Interpret the LFT digits as LFTs.
processes
lftRealNumberIncremProcessSource
Arguments
:: (Channel sIn sOut sInAnyProt sOutAnyProt, ERIntApprox ra, Typeable ra) | |
=> ERProcessName | |
-> (EffortIndex -> ra) | the number to represent; intersection of this sequence has to converge to a singleton |
-> ERProcess sInAnyProt sOutAnyProt |
A process communicating a real number to a single client incrementally digit by digit.
lftRealNumberBufferForkProcess :: Channel sIn sOut sInAnyProt sOutAnyProt => ERProcessName -> ERProcess sInAnyProt sOutAnyProtSource
A process that receives a real number incrementally digit by digit and makes it available to multiple clients incrementally or non-incrementally.
arithmetic
A multi-dimensional linear fractional transformation with integer coefficients.
Constructors
LFTTensor | |
Fields
|
lftConst :: Integer -> Integer -> LFTTensorSource
Constructor for a 0-ary LFT with integer coefficients.
lftMatrix :: Integer -> Integer -> Integer -> Integer -> LFTTensorSource
Constructor for a unary LFT with integer coefficients.
lftTensorBinary :: Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> Integer -> LFTTensorSource
Constructor for a binary LFT with integer coefficients.
lftTensorInfo :: ERApprox ra => Granularity -> LFTTensor -> ExtInterval raSource
Work out what interval is the image of the lft when all variables are given the value [0,oo]. The returned interval may be slightly bigger than the exact image due to rounding but it always contains the whole exact image.
lftTensorCompose :: LFTTensor -> Int -> LFTTensor -> LFTTensorSource
Compose two LFTs, ie substituting one into another using one of its variables.
lftTensorComposeUnary :: LFTTensor -> LFTTensor -> LFTTensorSource
Compose two unary LFTs, ie substituting one into the other.