úÎ[7Vø      Safe-Inferred<HM9$The type of fixed-precision numbers.'Add 1000 digits to the given precision.&Add 100 digits to the given precision.%Add 10 digits to the given precision.$Add 3 digits to the given precision.#Add 1 digit to the given precision.Precision of 2000 digits.Precision of 1000 digits.Precision of 100 digits. Precision of 10 digits. Precision of 1 digit. Precision of 0 digits. pA type class for type-level integers, capturing a precision parameter. Precision is measured in decimal digits.%Get the precision, in decimal digits.Integer division with rounding to the closest. Note: rounding could be improved. Right now, we always round up in case of a tie.UShift the integer to the right by the given number of decimal digits, with rounding.hShift the integer to the right by the given number of decimal digits, without rounding (i.e., truncate)EShift the integer to the left by the given number of decimal digits.CReturn 1 + the position of the leftmost "1" bit of a non-negative . Do this in time O(n log n ), where n) is the size of the integer (in digits).For n- "e 0, return the floor of the square root of nJ. This is done using integer arithmetic, so there are no rounding errors.eFind the ceiling of the larger solution of a quadratic equation. Specifically, given the polynomial p(x) = x² + bx + c, where b and c* are integers, find the smallest integer x "e -b/2 satisfying p(x ) "e 0, if b^2 - 4c "e 0.XThis is done using integer arithmetic, so there are no rounding errors. It generalizes .Given positive b > 1 and x > 0, return (n, r ) such thatx = r b[sup n ] and 1 "d r < b#. In other words, let n = # log[sub b] x# and r = x b[sup "n#]. This can be more efficient than  (  b xJ) depending on the type; moreover, it also works for exact types such as ! and QRootTwo. 2A version of the natural logarithm that returns a "8. The logarithm of just about any value can fit into a "a; so if not a lot of precision is required in the mantissa, this function is often faster than #.AGet the precision of a fixed-precision number, in decimal digits.Cast from any  type to another.DCast to a fixed-point type with three additional digits of accuracy.?Cast to a fixed-point type with three fewer digits of accuracy. The function  d f x evaluates f(x ), adding d digits of accuracy to x during the computation.$‚Multiply an integer by a fixed-precision number. This is marginally more efficient than multiplying two fixed-precision numbers.%|Divide a fixed-precision number by an integer. This is marginally more efficient than dividing two fixed-precision numbers.†Return the positive fractional part of a fixed-precision number. The result is always in [0,1), regardless of the sign of the input.Solve the quadratic equation x^2 + bx + c\ = 0 with maximal possible precision, using a numerically stable method. Return the pair (x1, x2) of solutions with x1 <= x2, or & if no solution exists.aThis is far more precise, and probably more efficient, than naively using the quadratic formula.'gDefine a list of rational numbers (i.e., the coefficients of a power series) from a recursive formula.(‘The power series stops when the last term is smaller than the precision. This is accurate for alternating and decreasing series, and provided |x| "d 1.)The Taylor series for sin x1, centered at 0. This implementation works for |x| "d 1.*The Taylor series for cos x1, centered at 0. This implementation works for |x| "d 1.+The Taylor series for [exp x2], centered at 0. This implementation works for |x| "d 1.,The Taylor series for log x1, centered at 1. This implementation works for |x " 1| "d 1/4.-The Taylor series for atan x1, centered at 0. This implementation works for |x | "d 0.44..The Taylor series for atan x1, centered at 0. This implementation works for |x-| "d 0.2, and is faster, in that range, than -./The Taylor series for atan x1, centered at 0. This implementation works for |x/| "d 1/239, and is faster, in that range, than ..0(Raw implementation of the sine function.1*Raw implementation of the cosine function.2øRaw implementation of the exponential function. Note: the loss of precision is much more substantial than that of the other raw functions in this section. This is due to the multiplication of fixed-precision values by numbers much larger than 1.3,Raw implementation of the natural logarithm.4_Raw implementation of the power function. This is subject to similar loss of precision as the 2 function.5Raw implementation of the  @ function. This is subject to similar loss of precision as the 2 function.6&Raw implementation of the square root.7*Raw implementation of the inverse tangent.8Raw implementation of À.90Raw implementation of the inverse sine function.:2Raw implementation of the inverse cosine function.;*Raw implementation of the hyperbolic sine.<,Raw implementation of the hyperbolic cosine.=5Raw implementation of the inverse hyperbolic tangent.>2Raw implementation of the inverse hyperbolic sine.?4Raw implementation of the inverse hyperbolic cosine.L@  $%'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQR   J@  $%'()*+,-./0123456789:;<=>?ABCDEFGHIJKLMNOPQR$%S      !"#$%#&'#$()*+#&,-.#/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]fixedprec-0.2.2.1Data.Number.FixedPrec FixedPrec PPlus1000PPlus100PPlus10PPlus3PPlus1P2000P1000P100P10P1P0 Precision log_doublegetpreccastupcastdowncastwith_added_digits fractionalsolve_quadraticdigitsdivi decshiftR dectruncR decshiftLhibit integer-gmpGHC.Integer.TypeIntegerintsqrtintquadfloorlogbaseGHC.Realfloor GHC.FloatlogBaseRationalghc-prim GHC.TypesDoublelog..*/.. Data.MaybeNothingaccs powerseriessin_pcos_pexp_plog_patan_patan_p2atan_p3sin_rawcos_rawexp_rawlog_raw power_raw logBase_rawsqrt_rawatan_rawpi_rawasin_rawacos_rawsinh_rawcosh_raw atanh_raw asinh_raw acosh_rawF$fRandomFixedPrec$fFloatingFixedPrec$fRealFracFixedPrec$fRealFixedPrec$fFractionalFixedPrec$fNumFixedPrec$fShowFixedPrec$fPrecisionPPlus1000$fPrecisionPPlus100$fPrecisionPPlus10$fPrecisionPPlus3$fPrecisionPPlus1$fPrecisionP2000$fPrecisionP1000$fPrecisionP100$fPrecisionP10 $fPrecisionP1 $fPrecisionP0