Copyright | (c) Michal Konecny |
---|---|
License | BSD3 |
Maintainer | mikkonecny@gmail.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell98 |
A type for roughly measuring the accuracy of an enclosure.
- data Accuracy
- bits :: ConvertibleExactly t Accuracy => t -> Accuracy
- fromAccuracy :: Accuracy -> Integer
- class HasAccuracy a where
- class HasAccuracyGuide a where
- class HasAccuracyGuide a => CanSetAccuracyGuide a where
- adjustAccuracyGuide :: CanSetAccuracyGuide a => (Accuracy -> Accuracy) -> a -> a
- getFiniteAccuracy :: (HasAccuracy t, HasPrecision t) => t -> Accuracy
- ac2prec :: Accuracy -> Precision
- class CanReduceSizeUsingAccuracyGuide t where
- specCanReduceSizeUsingAccuracyGuide :: (CanReduceSizeUsingAccuracyGuide t, HasEqCertainly t t, Arbitrary t, Show t) => T t -> Spec
- iterateUntilAccurate :: HasAccuracy t => Accuracy -> (Precision -> Maybe t) -> [(Precision, Maybe t)]
- convergentList2CauchySeq :: HasAccuracy t => [t] -> Accuracy -> t
- seqByPrecision2CauchySeq :: HasAccuracy t => (Precision -> t) -> Accuracy -> t
- setPrecisionAtLeastAccuracy :: CanSetPrecision t => Accuracy -> t -> t
- class HasApproximate t where
- type Approximate t
Documentation
A non-negative Double value to serve as an error bound. Arithmetic is rounded towards +infinity.
fromAccuracy :: Accuracy -> Integer Source #
class HasAccuracy a where Source #
getAccuracy :: a -> Accuracy Source #
HasAccuracy Bool Source # | |
HasAccuracy Int Source # | |
HasAccuracy Integer Source # | |
HasAccuracy Rational Source # | |
HasAccuracy Dyadic Source # | |
HasAccuracy ErrorBound Source # | |
HasAccuracy MPBall Source # | |
HasAccuracy t => HasAccuracy [t] Source # | |
HasAccuracy t => HasAccuracy (Maybe t) Source # | |
HasAccuracy t => HasAccuracy (Complex t) Source # | |
(HasAccuracy a, SuitableForCE es) => HasAccuracy (CollectErrors es a) Source # | |
class HasAccuracyGuide a => CanSetAccuracyGuide a where Source #
setAccuracyGuide :: Accuracy -> a -> a Source #
adjustAccuracyGuide :: CanSetAccuracyGuide a => (Accuracy -> Accuracy) -> a -> a Source #
getFiniteAccuracy :: (HasAccuracy t, HasPrecision t) => t -> Accuracy Source #
Return accuracy, except when the element is Exact, return its nominal Precision dressed as Accuracy. This function is useful when we have a convergent sequence where all elements happen to be actually equal to the limit and we need the property that the sequence elements keep improving.
class CanReduceSizeUsingAccuracyGuide t where Source #
reduceSizeUsingAccuracyGuide :: Accuracy -> t -> t Source #
specCanReduceSizeUsingAccuracyGuide :: (CanReduceSizeUsingAccuracyGuide t, HasEqCertainly t t, Arbitrary t, Show t) => T t -> Spec Source #
iterateUntilAccurate :: HasAccuracy t => Accuracy -> (Precision -> Maybe t) -> [(Precision, Maybe t)] Source #
convergentList2CauchySeq :: HasAccuracy t => [t] -> Accuracy -> t Source #
seqByPrecision2CauchySeq :: HasAccuracy t => (Precision -> t) -> Accuracy -> t Source #
setPrecisionAtLeastAccuracy :: CanSetPrecision t => Accuracy -> t -> t Source #
Change the precision so that it is at least as high as the supplied accuracy (assuming the accuracy is finite).
class HasApproximate t where Source #
An unsafe approximation of an enclosure or exact value, useful mainly for showing something brief and readable to humans.
type Approximate t Source #
getApproximate :: Accuracy -> t -> Approximate t Source #