/@      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?"$Misc facilities for HTML rendering. portable experimentalmik@konecny.aow.cz-Render HTML is a way that can be inlined in  Javascript strings etc. @Asome STM extras portable experimentalmik@konecny.aow.czBCDmini sign datatype portable experimentalmik@konecny.aow.czEFGgeneral purpose extras portable experimentalmik@konecny.aow.cz 7Compose as when defining the lexicographical ordering. 7Compose as when defining the lexicographical ordering. The lexicographical ordering. eg % concatWith "," ["a","b"] = "a,b" a connective eg / replicateSeveral [(2,"a"),(1,"b")] = "aab" eg 7 countDuplicates "aaba" = [(2,"a"),(1,"b"),(1,"a")] eg  allCombinations  [  (1,['a']),  (2,['b','c']),  (3,['d','e','f'])  ] =  [ ) [(1,'a'),(2,'b'),(3,'d')], ( [(1,'a'),(2,'b'),(3,'e')], ( [(1,'a'),(2,'b'),(3,'f')], ) [(1,'a'),(2,'c'),(3,'d')], ( [(1,'a'),(2,'c'),(3,'e')], ' [(1,'a'),(2,'c'),(3,'f')]  ] eg ! allPairsCombinationsEvenOdd  [  (1,('a0','a1'),  (2,('b0','b1'),  (3,('c0','c1')  ] =  ([ , [(1,'a0'),(2,'b0'),(3,'c0')], , [(1,'a0'),(2,'b1'),(3,'c1')], , [(1,'a1'),(2,'b1'),(3,'c0')], + [(1,'a1'),(2,'b0'),(3,'c1')]  ]  ,[ , [(1,'a0'),(2,'b0'),(3,'c1')], , [(1,'a0'),(2,'b1'),(3,'c0')], , [(1,'a1'),(2,'b0'),(3,'c0')], + [(1,'a1'),(2,'b1'),(3,'c1')]  ]  ) )the first value is even, the second odd base x "Directionally rounded versions of  +,*,sum,prod.  !"#how many initial lines to use how many final lines to use $%%HIJ KL !"#$%  ! "#$%   !"#$%some QuickCheck extras portable experimentalmik@konecny.aow.czMinteger with infinities portable experimentalmik@konecny.aow.cz&'()*+%the smallest integer i for which 2^i < = abs n ,&'()*+,&)('*+,&)(''()*+,2auxiliary types for exact real number processing portable experimentalmik@konecny.aow.cz -;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 9 when the effort index rises to infinity, the result  should be exact. .8The bit size of the floating point numbers (or similar) > used internally in real number and function approximations. /7Precision 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 . of the approximation. 0123456 -./0123456 /.0-123456 -./0123456(portions of many-dimensional domains portable experimentalmik@konecny.aow.cz-7:A class abstracting a type of many-dimensional intervals. 8/Check whether the two domains specify the same 4 interval for each variable that they share. 93Assuming that two domains are compatible, take the < most information from both of the domains about the  ranges of variables. <identification of caller location to use in error messages :,Find the variable with the largest interval @ and return it together with the default splitting point  in its domain. box considered for splitting Avariable with widest domain, its domain and default split point ;box to split direction to split in &point to split the domain of variable varid at, if absent use default <domain d1 domain d2 1Answers to these (mutually exclusive) questions:  is d1 outside and not touching d2?  is d1 outside and touching d2?  is d1 intersecting and not inside d2?  is d1 inside d2? =4A class linking two domain box types that share the 5 index type so that boxes of the two types can be  converted etc. >?@ABAA class abstracting a type of many-dimensional points, intervals 3 or anything indexed by a subset of dimensions. -More generally, this class abstracts most of  Data.Map.Map. CDEFconstructor using a GHIJKLMNOPQRSTUVWXYZ-for all variables that appear in both boxes, ; apply the function and add the result to the list [:For all variables that appear in either of the two boxes, ; apply the function and add the result to the list. HSupply the default value when the variable is missing from either box. \0For all variables that appear in the first box, ; apply the function and add the result to the list. LSupply the default value when the variable is missing from the second box. ]^7Pick the extents of a single variable in a domain box. A If there is no information for this variable, assume the 2 variable ranges over the whole real line. <identification of caller location to use in error messages _4A class abstracting a type of variable identifiers 3 for axes in function domains, polynomials etc. `abc-789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abc-_`abcBCDEFGHIJKLMNOPQRSTUVWXYZ[\]^=>?@A789:;<-789:;<89:;<=>?@A>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab`abc classes abstracting exact reals portable experimentalmik@konecny.aow.cz:dPA type whose elements are thought of as sets of approximations of real numbers. #Eg intervals of intervals, eg [[0,3],[1,2]] containing all intervals U whose left endpoint is between 0 and 1 and the right endpoint is between 2 and 3. > The upper bound interval can sometimes be anti-consistent,  eg [[0,3],[2,1]]C containing all intervals (consistent as well as anti-consistent) $ with a left endpoint between [0,2]$ and the right endpoint between [1,3]. e!safe inclusion of approximations f-safe negation of inclusion of approximations glike e but usable for types where e is only partially decidable h6A type whose elements represent sets that can be used L to approximate a recursive set of closed extended real number intervals  with arbitrary precision. BA type whose elements represent real *intervals* that can be used J to approximate a single extended real number with arbitrary precision. 3Sometimes, these types can be used to approximate D a closed extended real number interval with arbitrary precision. ( Nevetheless, this is not guaranteed. ijklpoint to split at interval to split +left and right, overlapping on a singleton mn<returns thin approximations of endpoints, in natural order o8make an interval from thin approximations of endpoints pImeet, usually constructing interval from approximations of its endpoints 9This does not need to be the meet of the real intervals > but it has to be a maximal element in the set of all 9 ira elements that are below the two parameters. qJA type whose elements represent some kind of nominal sets of real numbers 8 over which one can perform two kinds of arithmetic:   outer roundedG: arithmetic that approximates maximal extensions from outside (ie the x arithmetic)   inner roundedV: arithmetic that approximates maximal extensions from inside, potentially leading to c anti-consistent set specifications (eg intervals whose endpoints are not in the usual order) 'Another explanation of the difference:  outer;: the approximation contains all the number(s) of interest  * innerE: all numbers eligible for the approximation are numbers of interest _Ie inner rounded operations have the property that each real number admitted by the result can b be obtained as the exact result of the same operation performed on some real numbers admitted # by the operand approximations.  While in  outer rounded? operations it is desirable to make the result set as small as E possible in order to reduce the amount of bogus result numbers,  in  inner roundedH operations it is desirable to make the result set as large as possible ; to lose less of the genuinely feasible result numbers. 1Inner rounded arithmetic is useful eg for proving/disproving inclusions f(x) subset g(x) E where f and g are expressions using arithmetic extended to sets. N For proving the inclusion, we need an inner rounded approximation of g(x) U and for disproving the inclusion we need an inner rounded approximation of f(x). !This is an abstraction of Kaucher'#s extended interval arithmetic H [Kaucher, E.: Interval Analysis in the Extended Interval Space IR, ) Computing, Suppl. 2, 1980, pp. 33-49]. rinner rounded addition sinner rounded subtraction tinner rounded multiplication uinner rounded division v(increase or safely decrease granularity w.ensure granularity is not below the first arg x6A type whose elements represent sets that can be used K to approximate a single extended real number with arbitrary precision. Operations are safe- with respect to inclusion, which means that F for any numbers admitted by the operand approximations the result > of the operation is admitted by the result approximation. The sets can sometimes be anti-consistent - being smaller than , the empty set in the inclusion order. W This can be understood as indicating that not only there is no correct real number J approximated here, but some numbers (ie those in interior of the set) 0 are excluded more strongly than the others. - Prime examples of such sets are directed inverted intervals such as [2,1]. # Such sets arise naturally from  inner rounded operations - see q. yz=Precision is a measure of the set size. It can be infinite. The default interpretation: 5 If the diameter of the set is d, then the precision - should be near floor(- log_2 d). {9the lower the granularity the bigger the rounding errors |(increase or safely decrease granularity }.ensure granularity is not below the first arg ~Otrue if this approximation holds no information, ie it admits any real number 5the bottom approximation - it admits any real number 7true if this approximation admits only one real number =true iff this approximation admits at least one real number Otrue if this approximation is anti-consistent, which is a computational error 2 unless we used inner rounded operations =Toggle consistency - anti-consistency of the approximation. & Top is toggled with bottom. K Exact approximations are the only fixed points for this operation. ;true if this approximation is the most anti-consistent one :the top approximation - strongly rejects all real numbers -True iff the approximation excludes infinity E and, if anti-consistent, does not strongly exclude infinity. <an exact approximation admitting only the positive infinity (first arg is a subset of the second arg like  but usable for types where  is only partially decidable Ijoin; combining the information in two approximations of the same number HFirst component of result is the intersection and the second component: S measures precision improvement of the intersection relative to the first argument P is a positive number: 1 means no improvement, 2 means doubled precision, etc. &semantic semi-decidable equality test #semantic semi-decidable comparison 6semantic semi-decidable less-than-or-equal comparison syntactic equality test syntactic linear ordering safe approximate conversion %number of relevant decimals to show should show granularity -should show internal representation details the approximation to show >Assuming the arguments are singletons, equality is decidable. 'Assuming the arguments are singletons, <= is decidable. 'Assuming the arguments are singletons, < is decidable. This function converts 4 an effort index to a real number approximation. 1Useful when an effort index is used in a formula & mixed with real approximations. CReturn true if and only if the two intervals have equal endpoints. @Split an interval to a sequence of intervals whose union is the < original interval using a given sequence of cut points. H The cut points are expected to be in increasing order and contained C in the given interval. Violations of this rule are tolerated. an interval to be split 6approximations of the cut points in increasing order E Return the endpoints of the interval as well as the exact midpoint. E To be able to do this, there may be a need to increase granularity. D All three singleton intervals are set to the same new granularity. DThis produces a function that computes the maximal extension of the D given function. A maximal extension function has the property: F f(I) = { f(x) | x in I }. Here we get this property only for the  limit function for its - tending to infinity. C For finite effor indices the function may add *outer* rounding ' but it should be reasonably small. Ereturns an *outer* approximation of all extrema within the interval San *outer* rounding function behaving well on sequences that intersect to a point ^an outer rounding function behaving well on sequences that intersect to a non-empty interval DThis produces a function that computes the maximal extension of the D given function. A maximal extension function has the property: F f(I) = { f(x) | x in I }. Here we get this property only for the  limit function for its - tending to infinity. G For finite effor indices the function may include *inner* rounding ' but it should be reasonably small. Ereturns an *outer* approximation of all extrema within the interval San *outer* rounding function behaving well on sequences that intersect to a point ^an inner rounding function behaving well on sequences that intersect to a non-empty interval :defghijklmnopqrstuvwxyz{|}~:xyz{|}~qrstuvwhijklmnopdefg:defgefghijklmnopijklmnopqrstuvwrstuvwxyz{|}~yz{|}~4implementation of DomainBox based on Data.IntMap portable experimentalmik@konecny.aow.cz 3outer and inner approximations of approximations portable experimentalmik@konecny.aow.cz&A pair of approximations that form an interval in the lattice of  approximations. Eg outer = [1,4] inner = [3,2]% can be thought of as the set of all E generalised intervals where the left endpoint is between 1 and 3 6 and the right endpoint is between 2 and 4 (eg [1,4], [3,4],  [3,2], [3,3]).  N &(testing) generating values for tests portable experimentalmik@konecny.aow.cz %exact reals via convergent sequences portable experimentalmik@konecny.aow.cz 5A converging sequence of real number approximations. 8 Every finite subsequence has a non-empty intersection. " The limit should be a singleton. 2Using this operator, a unary funtion working over 6 approximations can be converted to one that works 6 over exact numbers represented through a sequence  of approximations. %The same as above, where f is binary 4Turn an arbitrary convergent sequence into one with > a guaranteed convergence rate - the precision (as defined  by RA.ERApprox.RA.getPrecision) of x_ix is at least ix. O(binGeomSeries n is the geometric series  [ n, 2n, 4n, 8n, ...]  Show function for ConvergRealSeq's with full arguments.  Show function for ConvergRealSeq's with all parameters fixed  except for number of digits PETake a converging sequence of partial functions F_i that operate on ^ real approximations and turn it into a function F that operates on converging sequences. B F looks for some members of the real approximation sequences B and an i so that F_i is defined for the chosen approximations  and returns its result. 8a sequence of partial functions based on approximations 1a starting index to use when searching sequences $a total function based on sequences   implementation of Taylor series portable experimentalmik@konecny.aow.cz"coefficients of the Taylor series function to estimate the n'th derivative between a and x centre of the Taylor Expansion "coefficients of the Taylor series function to estimate the n'th derivative between a and x Iuse this many elements of the series (+ account for error appropriately) centre of the Taylor Expansion Kmake all constants have this granularity, thus influencing rounding errors (A Taylor series for exponentiation. A Taylor series for sine.  A Taylor series for cosine. interval Newton method portablealphamik@konecny.aow.cza function and its derivative a starting point Pa lower bound of the absolute value of the derivative over the working interval number of iterations Bthe initial index to use for argument function and its derivative  the result Q5This auxiliary function returns the average of two ra's Modified Newton Method  Notes: D It has a cubic convergence speed, as opposed to the original Newton's & square convergence speed. ' It does not deal with multiple roots. D Per iteration, it makes two queries on the derivative, so it best N suits the cases where computation of the derivative is at most as . expensive as the function itself. a function and its derivative a starting point FThe minimum of absolute value of derivative over the working interval number of iterations XIt triggers the initial index to be called by the argument function and its derivative.  the result Ra function and its derivative a starting point FThe minimum of absolute value of derivative over the working interval XIt triggers the initial index to be called by the argument function and its derivative.  the result class abstracting floats portable experimentalmik@konecny.aow.cz9This class is an abstraction of a subset of real numbers ( with *upwards rounded* operations. if a is rounded to ao then |a-ao| <= getBaseMaxRounding ao "number of decimal digits to show whether to show granularity $whether to show internal structure -./0123456enabling Double's as interval endpoints non-portable (requires fenv.h) experimentalmik@konecny.aow.czSTUASet machine floating point unit to the upwards-directed rounding  mode. /This procedure has to be executed before using V O as a basis for interval and polynomial arithmetic defined in this package.  ,enabling MPFR dyadics as interval endpoints non-portable (requires fenv.h) experimentalmik@konecny.aow.cz!rational numbers with infinities portable experimentalmik@konecny.aow.czWXYsome elementary functions portable experimentalmik@konecny.aow.cz$Z[\]Ilog using a fast converging series, designed to be used with singletons ^_`api using Bellard' s formula Convergence properties:  shrinking sequence  rate at least 2^(-i). bpi using atan cpi using Bellard' s formula  (see  (http://en.wikipedia.org/wiki/Computing_) Convergence properties:  shrinking sequence  rate at least 2^(-i). <abstraction of exact reals capable of elementary operations portable experimentalmik@konecny.aow.cz7A class defining various common real number operations E in a approximation-aware fashion, ie introducing effort indices. :All operations here have default implementations based on  )Data.Number.ER.Real.Arithmetic.Elementary. 7A class defining various common real number operations E in a approximation-aware fashion, ie introducing effort indices. :All operations here have default implementations based on  )Data.Number.ER.Real.Arithmetic.Elementary.                            simple integration methods portable experimentalmik@konecny.aow.czdeInaive integration, using a partition of 2 * prec equally sized intervals ;integration using divide and conquer adaptive partitioning f;integration using divide and conquer adaptive partitioning < making use of the derivative of the integrated function safe interval arithmetic portable experimentalmik@konecny.aow.cz2Type for arbitrary precision interval arithmetic. convert to a normal form, ie:  no NaNs as endpoints RNote that inverted intervals are fully supported using Warmus-Kaucher arithmetic.  This version interprets NaN's as bottomApprox. convert to a normal form, ie:  no NaNs as endpoints RNote that inverted intervals are fully supported using Warmus-Kaucher arithmetic.  This version interprets NaN's as topApprox. gHerintvPrecision returns an approximation of the number of bits required D to represent the mantissa of a normalised size of the interval:  , - log_2 ((r - l) / (1 + abs(r) + abs(l))) GNotice that this is +Infty for singleton and anti-consistent intervals ( and -Infty for unbounded intervals. hia syntactic equality test ja syntactic linear order kECompare for equality two intervals interpreted as approximations for ? 2 single real numbers. When equality or inequality cannot 0 be established, return Nothing (ie bottom). lICompare in natural order two intervals interpreted as approximations for ? 2 single real numbers. When equality or inequality cannot 0 be established, return Nothing (ie bottom). mICompare in natural order two intervals interpreted as approximations for 9 2 single real numbers. When relaxed equality cannot > be established nor disproved, return Nothing (ie bottom). nDefault splitting:  , [-Infty,+Infty] |-> [-Infty,0] [0,+Infty]  3 [-Infty,x] |-> [-Infty,2*x-1] [2*x-1, x] (x <= 0)  * [-Infty,x] |-> [-Infty,0] [0, x] (x > 0)  3 [x,+Infty] |-> [x,2*x+1] [2*x+1,+Infty] (x => 0)  * [x,+Infty] |-> [x,0] [0,+Infty] (x < 0)  % [x,y] |-> [x, (x+y)/2] [(x+y)/2, y]  empty |-> empty empty o)(testing) generating real approximations portable experimentalmik@konecny.aow.cz ! p! !  !6(testing) properties to check for real approximations portable experimentalmik@konecny.aow.cz "#$%&'()*+,"#$%&'()*+,qrs "#$%&'()*+, "#$%&'()*+,?(testing) running all function enclosure base tests in a batch portable experimentalmik@konecny.aow.cz--tu--=arbitrary precision piece-wise something function enclosures portable experimentalmik@konecny.aow.cz.the equations; < each equation has coefficients of linear terms  + constant term the domain of the variables :an upper bound on the size of an acceptable solution box ;A box containing at least one solution within the domain; . Nothing if there is no solution. ...+arbitrary precision floating point numbers portable experimentalmik@konecny.aow.cz/PA floating point number with a given but arbitrary precision represented by its ..  base: 2. O granularity specifies the bit-size of both the significand and the exponent 6 special values: NaN, signed Infinity and signed Zero  no denormalised numbers C operations unify the granularity of their operands to the maximum . ) Rounding is always towards +Infinity. \ For field operations, the rounded result is as close as possible to the exact result. vwxyz{|}~normalisation 6 ensures that the components are within their regions 5 possibly turning the number into a zero or infinity see the documentation of ERRealBase.getBaseMaxRounding ///)auto-switching hardware-software floats non-portable (requires fenv.h) experimentalmik@konecny.aow.cz 0this has to be between 1 and 1 01010/concise names for default real representations non-portable (requires fenv.h) experimentalmik@konecny.aow.cz2the default instance of &Data.Number.ER.Real.Approx.ERIntApprox 3the default instance of #Data.Number.ER.Real.Approx.ERApprox 4the default base type 5very inefficient 6 Use machine V; while the granularity is up to its significant bit length 8 and when the granularity grows beyond that, use /. !!! to be safe, one has to run  75Limited granularity, but sometimes up to 100x faster  than ERFloat! !!! to be safe, one has to run  8234567847865322345678'(testing) generating base real numbers portable experimentalmik@konecny.aow.cz9:;<=>?9:;<=>?=>;<9:?9::;<<=>>?!overview of AERN-Real non-portable (requires fenv.h) experimentalmik@konecny.aow.czv-./0123456defghijklmnopqrstuvwxyz{|}~     2345678"&top level of the exactreals framework non-portable (requires fenv.h) experimentalmik@konecny.aow.czv-./0123456defghijklmnopqrstuvwxyz{|}~     2345678#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                   K      !"#$%&'()*++,-./0011223456789:;<=>?@ABCDEFGHIJKKLLMMNOPQRSTUVWXYZ[\ ] ^ _`abcdefghijklmnopqrstuvwxyz{|}~AAERN-Real-0.10.0.2Data.Number.ER.ShowHTML#Data.Number.ER.BasicTypes.PlusMinusData.Number.ER.Misc)Data.Number.ER.BasicTypes.ExtendedIntegerData.Number.ER.BasicTypes#Data.Number.ER.BasicTypes.DomainBoxData.Number.ER.Real.Approx*Data.Number.ER.BasicTypes.DomainBox.IntMapData.Number.ER.Real.Approx.OI*Data.Number.ER.Real.Approx.Tests.Reporting(Data.Number.ER.BasicTypes.Tests.Generate#Data.Number.ER.Real.Approx.Sequence%Data.Number.ER.Real.Arithmetic.Taylor%Data.Number.ER.Real.Arithmetic.NewtonData.Number.ER.Real.Base&Data.Number.ER.Real.Base.MachineDouble!Data.Number.ER.Real.Base.Rational)Data.Number.ER.Real.Arithmetic.Elementary%Data.Number.ER.Real.Approx.Elementary*Data.Number.ER.Real.Arithmetic.Integration#Data.Number.ER.Real.Approx.Interval)Data.Number.ER.Real.Approx.Tests.Generate+Data.Number.ER.Real.Approx.Tests.Properties$Data.Number.ER.Real.Approx.Tests.Run+Data.Number.ER.Real.Arithmetic.LinearSolverData.Number.ER.Real.Base.Float*Data.Number.ER.Real.Base.CombinedMachineAPData.Number.ER.Real.DefaultRepr'Data.Number.ER.Real.Base.Tests.GenerateData.Number.ER.Misc.STMData.Number.ER.Misc.TestsData.Number.ER.Real.Base.MPFRData.Number.ER.RealData.Number.ERshowHTMLrenderHtmlNoHeader toHtmlDefault PlusMinusPlusMinuscompareComposecompareComposeMany compareLexcompareListsWithmapFstmapSndmapPair mapPairHomogunpair bool2maybedropLast concatWithreplicateSeveralcountDuplicatesallCombinationsallPairsCombinationsallPairsCombinationsEvenOddintLogplusUpplusDownsumUpsumDowntimesUp timesDown productUp productDowndivideUp divideDown readMaybeshowFirstLastLines listUpdate listHasMatchExtendedInteger PlusInfinityFinite MinusInfinity isInfinite binaryLogtake EffortIndex Granularity Precision prec2gran effIx2gran effIx2prec effIx2int int2effIx prec2effIx gran2effIx DomainIntBox compatibleunify bestSplitsplitclassifyPositionDomainBoxMappablemap mapWithKeyintersectionWith difference DomainBoxnoinfoisNoinfosizeunary singletontoListfromList toAscList fromAscListcompareadjustinsert insertWithdeletemember notMemberunion unionWithkeyselemsfilterfold foldWithKeyzipWithzipWithDefaultzipWithDefaultSecondfindWithDefaultlookup VariableIDnewVarID defaultVarshowVargetNVarsERApproxApprox safeIncludessafeNotIncludesincludes ERIntApprox doubleBounds floatBounds integerBounds bisectDomaindefaultBisectPtbounds fromBounds\/ERInnerOuterApprox+:-:*:/:setGranularityInnersetMinGranularityInnerERApproxinitialiseBaseArithmetic getPrecisiongetGranularitysetGranularityOutersetMinGranularityOuterisBottom bottomApproxisExact isConsistentisAnticonsistenttoggleConsistencyisTop topApprox isDisjointisInteriorDisjoint isBounded plusInfinityrefines maybeRefines/\intersectMeasureImprovement equalReals compareRealsleqReals equalApprox compareApprox double2ra showApprox eqSingletons leqSingletons ltSingletonseffIx2raequalIntervalssplitIRA exactMiddlemaxExtensionR2RmaxExtensionInnerR2RBoxVarID ERApproxOI eroiOuter eroiInnerunsafeERTestReportgetOverestimationproduceSummary SmallRatioGran1000Gran100Ix20Ix10Nat100Nat10ConvergRealSeqconvergRealSeqElemconvertFuncRA2SeqconvertBinFuncRA2SeqmakeFastConvergRealSeqshowConvergRealSeqshowConvergRealSeqAuto erTaylor_RerTaylor_R_FullArgserExp_Tay_Opt_RerSine_Tay_Opt_RerCosine_Tay_Opt_RerNewton_FullArgserNewton_mdfd_FullArgs ERRealBasetypeNamedefaultGranularitygetApproxBinaryLogsetMinGranularitysetGranularitygetMaxRoundingisERNaNerNaNisPlusInfinityisMinusInfinity minusInfinity fromIntegerUpfromIntegerDown fromDoubletoDouble fromFloattoFloat showDiGrCmpinitMachineDoubleExtendedRationalInfinityNaNerSqr_IRerSqr_RerPow_IRerPow_RerSqrt_R erSqrt_IRerSqrt_IR_InnererRoot_R erRoot_IRerRoot_IR_InnererExp_RerExp_IRerExp_IR_InnererLog_RerLog_IRerLog_IR_InnererSine_R erCosine_R erSine_IR erCosine_IRerSine_IR_InnererCosine_IR_InnererATan_R erATan_IRerATan_IR_InnererPi_RERInnerOuterApproxElementaryabsInnerminInnermaxInner sqrtInnerexpInnerlogInner**:sinInnercosInnertanInner atanInnerERApproxElementaryabsminmaxsqrtexplog**pisincostanatan integrateContintegrateCont_RintegrateContAdapt_R ERInterval erintv_left erintv_rightnormaliseERIntervalOuternormaliseERIntervalInner RADirected RAConsistentRAThinconstructThinRARAPropTupleUnaryprops_ra_AMinusA_eq_oiprops_ra_ADivA_eq_oiprops_ra_AddCommut_eq_oiprops_ra_MultCommut_eq_oiprops_ra_AddAssoc_eq_oiprops_ra_MultAssoc_eq_oiprops_ra_Distr_eq_oiprops_ra_SinCos_eq_oiprops_ra_TanATan_eq_oiprops_ra_LogExp_eq_oi runRATests linearSolverERFloat ERMachineAP doubleDigitsIRARABBRBMAPBMBAP BGran1000BGran100BGran20 constructB abovesTable besidesTable modifyTVarmodifyTVarGetOldValmodifyTVarHasChangedsignNegsignMult signToNum unsafePrintunsafePrintReturn unsafeReport intLogDownintLogUp erRunTests stdRepLine binGeomSeries iterateRA_AmidPoint erNewton_mdfd fesetround fegetroundFP_RND_Tghc-prim GHC.TypesDoubleeratSignliftToERational1liftToERational2erSqrtContFr_RerSqrtNewton_RerRootNewton_RlogDivSeries_R erSine_Tay_R sine_coefSeq atanEuler_RerTan_RpiAtan_R piBellard_R testIntegr1 integrateDiffintegrateDiffAdapt_RAerintvPrecisionerintvGranularityerintvEqualApproxerintvCompareApproxerintvEqualRealserintvCompareRealserintvLeqRealserintvDefaultBisectPt erintvBisect inftyChanceprops_ra_eq_oi_unaryraConsistentWithPrecise raIncludedIn raTestOptionsraTests apfltMantapfltExp ERFloatZero ERFloatInfty apfltSign ERFloatNaN apfltGrannormaliseERFloatapFloatExponentsetERFloatGranularitysetERFloatMinGranularityapfltGetMaxRoundingapfloatFromRational ERMachineAPB machapfltBERMachineAPMachineDoublemachapfltDoubleGranularitymachapfltDoublelift1ERMachineAPop1ERMachineAPlift2ERMachineAPop2ERMachineAP