{-|
Module : Data.Number.ER.BasicTypes
Description : generic types for exact real number processing
Copyright : (c) Michal Konecny
License : BSD3
Maintainer : mik@konecny.aow.cz
Stability : experimental
Portability : portable
generic types for exact real number processing
-}moduleData.Number.ER.BasicTypeswhereimportqualifiedData.Number.ER.ExtendedIntegerasEIimportqualifiedData.MapasMap{-|
Precision represents an upper bound on the measure of
an approximation viewed as a set;
not to be confused with the precision of
an 'Data.Number.ER.Real.Base.Float.ERFloat' and similar.
In an approximation comprising a number of
instances of 'Data.Number.ER.Real.Base.ERRealBase',
we will refer to the bit-precision of these base components
as the 'Granularity' of the approximation.
-}typePrecision=EI.ExtendedInteger{-|
The bit size of the floating point numbers (or similar)
used internally in real number and function approximations.
-}typeGranularity=Intprec2gran::Precision->Granularityprec2gran=fromInteger.toInteger{-|
This type synonym should be used for funciton parameter(s)
that guide the convergence of the function's result to
a perfect (exact) result.
The name should remind us
that there is no universally valid relationship between
this integer the quality (precision) of the result.
The only condition usually assumed is that in the limit
when the effort index rises to infinity, the result
should be exact.
-}typeEffortIndex=IntegereffIx2gran::EffortIndex->GranularityeffIx2gran=fromInteger.toIntegereffIx2prec::EffortIndex->PrecisioneffIx2prec=fromInteger.toIntegereffIx2int::EffortIndex->InteffIx2int=fromInteger.toIntegerint2effIx::Int->EffortIndexint2effIx=fromInteger.toIntegerprec2effIx::Precision->EffortIndexprec2effIx=fromInteger.toIntegergran2effIx::Granularity->EffortIndexgran2effIx=fromInteger.toInteger{-|
A variable identifier for axes in function domains, polynomials etc.
-}typeVarID=IntdefaultVar::VarIDdefaultVar=0{-|
A many-dimensional point or interval.
-}typeBoxira=Map.MapVarIDira