úÎs”oo<      !"#$%&'()*+,-./0123456789:;portable experimental-Aleksey Khudyakov <alexey.skladnoy@gmail.com>Result of numeric integration. Integraion result Best estimate of integral %Rough estimate of attained precision Number of iterations >Integration parameters for numerical routines. Note that each E additional iteration doubles number of function evaluation required  to compute integral. &Number of iterations is capped at 30. Relative precision of answer Maximum number of iterations < -Default parameters for integration functions # Maximum number of iterations = 20  Precision is 10 { y >Integration of using trapezoids. This is robust algorithm and A place and useful for not very smooth. But it is very slow. It  hundreds times slower then   if function is  sufficiently smooth.  Parameters Integration limits Function to integrate AIntegration using Simpson rule. It should be more efficient than   1 if function being integrated have finite fourth  derivative.  Parameters Integration limits Function to integrate BIntegration using Romberg rule. For sufficiently smooth functions  (e.g. analytic) it's a fastest of three.  Parameters Integration limits Function to integrate =>?@     portable experimental-Aleksey Khudyakov <alexey.skladnoy@gmail.com> Differentiation result Derivative value Rough error estimate A&Calculate derivative using Richaradson's deferred approach to A limit. This is a preferred method for numeric differentiation  since it'5s most precise. Function could be evaluated up to 20  times. BInitial step size should be chosen fairly big. Too small one will @ result reduced precision, too big one in nonsensical answer.  Function Delta %Point at which evaluate differential ;Simplest form of differentiation. Should be used only when > function evaluation is prohibitively expensive and already  computed value at point x should be reused.  f'(x) = f(x+h) - f(x) / h Function to differentiate Delta ,Coordinate and function value at this point ;Simple differentiation. It uses simmetric rule and provide  reasonable accuracy. It''s suitable when function evaluation is 6 expensive and precision could be traded for speed.  f'(x) = f(x-h) + f(x+h) / 2h Function to differentiate Delta %Point at which evaluate differential  For number x and small h return such h' that x+h' and x  differ by representable number x  small delta portable experimental-Aleksey Khudyakov <alexey.skladnoy@gmail.com>2Type class for array-like data type which support O(1) access ( by integer index starting from zero. Size of table. O(1)$ Index table without range cheking. O(1)6 Safe indexing. Calls error if index is out of range. Check that index is valid portable experimental-Aleksey Khudyakov <alexey.skladnoy@gmail.com>  Uniform mesh BCDistance between points D7Class for 1-dimensional meshes. Mesh is ordered set of ? points. Each instance must guarantee that every next point is ? greater that previous and there is at least 2 points in mesh. Low bound of mesh Upper bound of mesh !Find such index for value that  ! mesh ! i <= x && mesh ! i+1 > x 4Will return invalid index if value is out of range. "Create uniform mesh Lower and upper bound Number of points  !" !" ! !"portable experimental-Aleksey Khudyakov <alexey.skladnoy@gmail.com>#ARelative difference between two numbers are less than predefined D value. For example 1 is approximately equal to 1.0001 with 1e-4 0 precision. Same is true for 10000 and 10001. This method of camparison doesn't work for numbers which are  approximately 0. % should be used instead. Relative precision $'Relative equality for comlex numbers. Relative precision %<Difference between values is less than specified precision. Absolute precision & Compare two E( values for approximate equality, using  Dawson' s method. ;The required accuracy is specified in ULPs (units of least D precision). If the two numbers differ by the given number of ULPs  or less, this function returns True. "Algorithm is based on Bruce Dawson's "Comparing floating point  numbers":   Ihttp://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm $Number of ULPs of accuracy desired. #$%&#$%&#$%&portable experimental-Aleksey Khudyakov <alexey.skladnoy@gmail.com>'?The result of searching for a root of a mathematical function. (A root was successfully found. )2The search failed to converge to within the given 7 error tolerance after the given number of iterations. */The function does not have opposite signs when 8 evaluated at the lower and upper bounds of the search. +AReturns either the result of a search for a root, or the default  value if the search failed. Default value. Result of search for a root. ,2Use bisection method to compute root of function. BThe function must have opposite signs when evaluated at the lower C and upper bounds of the search (i.e. the root must be bracketed). Required absolute precision Range  Equation -;Use the method of Ridders to compute a root of a function. BThe function must have opposite signs when evaluated at the lower C and upper bounds of the search (i.e. the root must be bracketed). Absolute error tolerance. 'Lower and upper bounds for the search. Function to find the roots of. .9Solve equation using Newton-Raphson method. Root must be  bracketed. If Newton'*s step jumps outside of bracket or do not = converge sufficiently fast function reverts to bisection. Absolute error tolerance  Lower and upper bounds for root  Function Function' s derivative '()*+,-.'*)(+,-.'*)(()*+,-.portable experimental-Aleksey Khudyakov <alexey.skladnoy@gmail.com>/3For function which act much like for loop in the C Staring index value  Condition Function to modify index Action to perform 0Specialized for loop. Akin to:  for( i = 0; i < 10; i++) { ... Starting index  Maximal index value not reached Action to perfor, /0/0/0portable experimental-Aleksey Khudyakov <alexey.skladnoy@gmail.com>1Natural cubic splines FGHI2Data for linear interpolation JKL3#Interpolation for arbitraty meshes 48Interpolate function at some point. Function should not A fail outside of mesh however it may and most likely will give  nonsensical results 5Tabulate function 6@Use table of already evaluated function and mesh. Sizes of mesh ! and table must coincide but it's not checked. Do not use this  function use 9 instead. 7 Get mesh. 8Get table of function values 9@Use table of already evaluated function and mesh. Sizes of mesh  and table must coincide. :Function used to fix types M;Function used to fix types NOP !"123456789:; 34567892:1; 12345678456789:;Q       !"#$%&'()*+,--./0123456789:;<=>?@ABCDEF"GHIJK6LMN7OPQRSTUnumeric-tools-0.2.0.0Numeric.Tools.IntegrationNumeric.Tools.DifferentiationNumeric.Classes.IndexingNumeric.Tools.MeshNumeric.ApproxEqNumeric.Tools.EquationControl.Monad.NumericNumeric.Tools.InterpolationQuadResquadRes quadBestEst quadPrecEst quadNIter QuadParam quadPrecision quadMaxIterdefQuad quadTrapezoid quadSimpson quadRombergDiffResdiffRes diffPrecisiondiffRichardson diffSimple diffSimmetricrepresentableDelta IndexableIndexValsize unsafeIndex! validIndex UniformMeshuniformMeshStepMeshmeshLowerBoundmeshUpperBound meshFindIndex uniformMesh eqRelative eqRelCompl eqAbsolutewithinRoot SearchFailed NotBracketedfromRootsolveBisection solveRidders solveNewtonforGenfor CubicSpline LinearInterp Interpolationat tabulateFununsafeTabulateinterpolationMeshinterpolationTabletabulate linearInterp cubicSplinemaxIter trapGuess nextTrapezoid converged estimatePrecrepresentableDeltaFFIuniformMeshFromuniformMeshSizeghc-prim GHC.TypesDoublecubicSplineMeshcubicSplineTable cubicSplineY2linearInterpMeshlinearInterpTablelinearInterpolationmakeCubicSplinedelta safeFindIndex