Copyright | (c) Michal Konecny |
---|---|
License | BSD3 |
Maintainer | mikkonecny@gmail.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell98 |
AERN2.Sequence
Contents
Description
A type of fast convergent sequences parametrised by the arrow in which the elements of the sequence are queried
- module AERN2.AccuracySG
- data SequenceP a = SequenceP {
- unSequenceP :: a
- pSeq :: a -> SequenceP a
- class (Show a, Show (EnsureNoCN a), Show (EnsureCN a), HasAccuracy a, CanAdjustToAccuracySG a, CanEnsureCN a, CanEnsureCN (EnsureCN a), HasAccuracy (EnsureNoCN a), CanIntersectCNSameType a) => SuitableForSeq a
- type SequenceA to a = QA to (SequenceP a)
- type Sequence a = SequenceA (->) a
- newSeq :: (QAArrow to, SuitableForSeq a) => a -> String -> [AnyProtocolQA to] -> ((Maybe (QAId to), Maybe (QAId to)) -> AccuracySG `to` a) -> SequenceA to a
- newSeqSimple :: (QAArrow to, SuitableForSeq a) => a -> ((Maybe (QAId to), Maybe (QAId to)) -> AccuracySG `to` a) -> SequenceA to a
- seqName :: SequenceA to a -> String
- seqId :: SequenceA to a -> Maybe (QAId to)
- seqSources :: SequenceA to a -> [QAId to]
- seqRename :: (String -> String) -> SequenceA to a -> SequenceA to a
- seqWithAccuracy :: QAArrow to => SequenceA to a -> Maybe (QAId to) -> AccuracySG `to` a
- (?) :: QAArrow to => QA to p -> Q p `to` A p
- seqWithAccuracyA :: QAArrow to => Maybe (QAId to) -> (SequenceA to a, AccuracySG) `to` a
- seqsWithAccuracyA :: QAArrow to => Maybe (QAId to) -> ([SequenceA to a], AccuracySG) `to` [a]
- (-:-) :: (QAArrow to, QAProtocolCacheable p) => QA to p `to` QA to p
- (-:-||) :: (QAArrow to, QAProtocolCacheable p) => QA to p `to` QA to p
- (-:-|) :: (QAArrow to, QAProtocolCacheable p) => QA to p `to` QA to p
- data SequenceAtAccuracy a = SequenceAtAccuracy (Sequence a) AccuracySG
- convergentList2SequenceA :: (QAArrow to, SuitableForSeq a) => String -> [a] -> SequenceA to a
- seqByPrecision2SequenceA :: (QAArrow to, SuitableForSeq a) => String -> (Precision -> a) -> SequenceA to a
- pick :: QAArrow to => Maybe (QAId to) -> [SequenceA to (Maybe a)] `to` a
- unaryOp :: (QAArrow to, SuitableForSeq a, SuitableForSeq b) => String -> (a -> b) -> (Maybe (QAId to) -> SequenceA to a -> AccuracySG `to` (AccuracySG, Maybe a)) -> SequenceA to a -> SequenceA to b
- binaryOp :: (QAArrow to, SuitableForSeq a, SuitableForSeq b, SuitableForSeq c) => String -> (a -> b -> c) -> (Maybe (QAId to) -> SequenceA to a -> SequenceA to b -> AccuracySG `to` ((AccuracySG, Maybe a), (AccuracySG, Maybe b))) -> SequenceA to a -> SequenceA to b -> SequenceA to c
- binaryOpWithPureArg :: (QAArrow to, SuitableForSeq a, SuitableForSeq b) => String -> (a -> t -> b) -> (Maybe (QAId to) -> SequenceA to a -> t -> AccuracySG `to` (AccuracySG, Maybe a)) -> SequenceA to a -> t -> SequenceA to b
- getSeqFnNormLog :: (QAArrow to, CanEnsureCN v, HasNorm (EnsureNoCN v)) => Maybe (QAId to) -> SequenceA to a -> (a -> v) -> AccuracySG `to` (Maybe Integer, a)
- getInitQ1FromSimple :: Arrow to => (AccuracySG `to` q) -> Maybe (QAId to) -> r1 -> AccuracySG `to` (q, Maybe a)
- getInitQ1TFromSimple :: Arrow to => (AccuracySG `to` q) -> Maybe (QAId to) -> r1 -> t -> AccuracySG `to` (q, Maybe a)
- getInitQ1Q2FromSimple :: Arrow to => (AccuracySG `to` (q, q)) -> Maybe (QAId to) -> r1 -> r2 -> AccuracySG `to` ((q, Maybe a), (q, Maybe b))
Documentation
module AERN2.AccuracySG
The protocol and type of fast converging sequences
Constructors
SequenceP | |
Fields
|
Instances
class (Show a, Show (EnsureNoCN a), Show (EnsureCN a), HasAccuracy a, CanAdjustToAccuracySG a, CanEnsureCN a, CanEnsureCN (EnsureCN a), HasAccuracy (EnsureNoCN a), CanIntersectCNSameType a) => SuitableForSeq a Source #
Instances
newSeq :: (QAArrow to, SuitableForSeq a) => a -> String -> [AnyProtocolQA to] -> ((Maybe (QAId to), Maybe (QAId to)) -> AccuracySG `to` a) -> SequenceA to a Source #
newSeqSimple :: (QAArrow to, SuitableForSeq a) => a -> ((Maybe (QAId to), Maybe (QAId to)) -> AccuracySG `to` a) -> SequenceA to a Source #
seqSources :: SequenceA to a -> [QAId to] Source #
seqWithAccuracy :: QAArrow to => SequenceA to a -> Maybe (QAId to) -> AccuracySG `to` a Source #
Get an approximation of the limit with at least the specified accuracy.
(A specialisation of qaMakeQuery
for Cauchy sequences.)
(?) :: QAArrow to => QA to p -> Q p `to` A p infix 1 Source #
An infix synonym of qaMakeQuery
with no source
seqWithAccuracyA :: QAArrow to => Maybe (QAId to) -> (SequenceA to a, AccuracySG) `to` a Source #
seqsWithAccuracyA :: QAArrow to => Maybe (QAId to) -> ([SequenceA to a], AccuracySG) `to` [a] Source #
(-:-) :: (QAArrow to, QAProtocolCacheable p) => QA to p `to` QA to p infix 0 Source #
An infix synonym of qaRegister
(-:-||) :: (QAArrow to, QAProtocolCacheable p) => QA to p `to` QA to p infix 0 Source #
An infix synonym of qaRegister
(-:-|) :: (QAArrow to, QAProtocolCacheable p) => QA to p `to` QA to p infix 0 Source #
An infix synonym of qaRegister
data SequenceAtAccuracy a Source #
SequenceAtAccuracy exists only so that we can QuickCheck that Sequence satisfies properties whose statement relies on an instance of HasEqCertainly. Sequence is not an instance but SequenceAtAccuracy is.
Constructors
SequenceAtAccuracy (Sequence a) AccuracySG |
Instances
Show a => Show (SequenceAtAccuracy a) Source # | |
(HasOrderAsymmetric a b, SuitableForSeq a, SuitableForSeq b, SuitableForSeq (OrderCompareType a b)) => HasOrderAsymmetric (SequenceAtAccuracy a) (SequenceAtAccuracy b) Source # | |
(HasEqAsymmetric a b, SuitableForSeq a, SuitableForSeq b, SuitableForSeq (EqCompareType a b)) => HasEqAsymmetric (SequenceAtAccuracy a) (SequenceAtAccuracy b) Source # | |
type OrderCompareType (SequenceAtAccuracy a) (SequenceAtAccuracy b) Source # | |
type EqCompareType (SequenceAtAccuracy a) (SequenceAtAccuracy b) Source # | |
convergentList2SequenceA :: (QAArrow to, SuitableForSeq a) => String -> [a] -> SequenceA to a Source #
seqByPrecision2SequenceA :: (QAArrow to, SuitableForSeq a) => String -> (Precision -> a) -> SequenceA to a Source #
selecting one of several staged computations
auxiliary functions for making new sequence operations
unaryOp :: (QAArrow to, SuitableForSeq a, SuitableForSeq b) => String -> (a -> b) -> (Maybe (QAId to) -> SequenceA to a -> AccuracySG `to` (AccuracySG, Maybe a)) -> SequenceA to a -> SequenceA to b Source #
binaryOp :: (QAArrow to, SuitableForSeq a, SuitableForSeq b, SuitableForSeq c) => String -> (a -> b -> c) -> (Maybe (QAId to) -> SequenceA to a -> SequenceA to b -> AccuracySG `to` ((AccuracySG, Maybe a), (AccuracySG, Maybe b))) -> SequenceA to a -> SequenceA to b -> SequenceA to c Source #
binaryOpWithPureArg :: (QAArrow to, SuitableForSeq a, SuitableForSeq b) => String -> (a -> t -> b) -> (Maybe (QAId to) -> SequenceA to a -> t -> AccuracySG `to` (AccuracySG, Maybe a)) -> SequenceA to a -> t -> SequenceA to b Source #
getSeqFnNormLog :: (QAArrow to, CanEnsureCN v, HasNorm (EnsureNoCN v)) => Maybe (QAId to) -> SequenceA to a -> (a -> v) -> AccuracySG `to` (Maybe Integer, a) Source #
Arguments
:: Arrow to | |
=> (AccuracySG `to` q) | |
-> Maybe (QAId to) | my id |
-> r1 | |
-> AccuracySG `to` (q, Maybe a) |
Arguments
:: Arrow to | |
=> (AccuracySG `to` q) | |
-> Maybe (QAId to) | my id |
-> r1 | |
-> t | |
-> AccuracySG `to` (q, Maybe a) |
getInitQ1Q2FromSimple Source #
Arguments
:: Arrow to | |
=> (AccuracySG `to` (q, q)) | |
-> Maybe (QAId to) | my id |
-> r1 | |
-> r2 | |
-> AccuracySG `to` ((q, Maybe a), (q, Maybe b)) |