AERN-Net-0.2.1.1: Compositional lazy dataflow networks for exact real number computation

Portabilityportable
Stabilityexperimental
Maintainermik@konecny.aow.cz

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

Synopsis

protocol

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

data LFTTensor Source

A multi-dimensional linear fractional transformation with integer coefficients.

Constructors

LFTTensor 

Fields

lftTNSrank :: Int
 
lftTNScoeffs :: Map [Bool] Integer

the first Bool indicates whether or not the term is in the numerator of the LFT

Instances

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.