Copyright | (c) Michal Konecny |
---|---|
License | BSD3 |
Maintainer | mikkonecny@gmail.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell98 |
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
SequenceP | |
|
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 #
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.
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 #
:: Arrow to | |
=> (AccuracySG `to` q) | |
-> Maybe (QAId to) | my id |
-> r1 | |
-> AccuracySG `to` (q, Maybe a) |
:: Arrow to | |
=> (AccuracySG `to` q) | |
-> Maybe (QAId to) | my id |
-> r1 | |
-> t | |
-> AccuracySG `to` (q, Maybe a) |
getInitQ1Q2FromSimple Source #
:: Arrow to | |
=> (AccuracySG `to` (q, q)) | |
-> Maybe (QAId to) | my id |
-> r1 | |
-> r2 | |
-> AccuracySG `to` ((q, Maybe a), (q, Maybe b)) |