n$      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdedefghijfghijlkklmnopqrstu vwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuBasic arithmetic functions  non-portable experimentalales.bizjak0@gmail.comP  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXP  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX"wrappers for assignment functions  non-portable experimentalales.bizjak0@gmail.coma x * 2 ^ y b x * 2 ^ y me with default rounding to Near. YZ[\]^_`abcdefghijklmYZ[\]^_`abcdefghijklmComparison functions  non-portable experimentalales.bizjak0@gmail.comnopqrstuvwxyz{|}~nopqrstuvwxyz{|}~Special functions  non-portable experimentalales.bizjak0@gmail.comkk Integer related functions  non-portable experimentalales.bizjak0@gmail.com Miscellaneous functions  non-portable experimentalales.bizjak0@gmail.com/getMantissa and getExp return values such that  Z d = getMantissa d * 2^(getExp d - ceiling ((getPrec d) / bitsPerMPLimb)* bitsPerMPLimb )  In case of 0, NaN or +-Inf getMantissa will return 0            "wrappers for conversion functions  non-portable experimentalales.bizjak0@gmail.com%@Output a string in base 10 rounded to Near in exponential form. &@Output a string in base 10 rounded to Near. The difference from  toStringExp is that  it won'9t output in exponential form if it is sensible to do so.  !"#$%& !"#$%& 'BA mutable MPFR. Currently this is just a newtype wrapped STRef to O a MPFR but this may change in the future for a more efficient implementation.  Type argument s( is the state variable argument for the ST type. (KReplace the state of the mutable MPFR with a new one. The actual limbs are N not copied, so any further modifications on the mutable MPFR will reflect on + the MPFR given in as the second argument. )IConvert a mutable MPFR to an immutable one. The unsafe prefix comes from M the fact that limbs of the MPFR are not copied so any further modifications ) on the mutable MPFR will reflect on the "frozen" one. If mutable MPFR will : not be modified afterwards, it is perfectly safe to use. *IConvert an immutable MPFR to a mutable one. The unsafe prefix comes from M the fact that limbs of the MPFR are not copied so any modifications done on O on the mutable MPFR will reflect on the original. If the original will not be D used or limbs of the mutable not modified, then it is safe to use. +6Replace the state of the mutable MPFR with a new one,  making a complete copy. ,DConvert a mutable MPFR to an immutable one, making a complete copy. -DConvert an immutable MPFR to a mutable one, making a complete copy.       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu'()*+,-'()*+,- Basic arithmetic functions  non-portable experimentalales.bizjak0@gmail.com'./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST'./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTSpecial functions  non-portable experimentalales.bizjak0@gmail.com0UVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0UVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Integer related functions  non-portable experimentalales.bizjak0@gmail.com  Miscellaneous functions  non-portable experimentalales.bizjak0@gmail.com Mutable MPFR's  non-portable experimentalales.bizjak0@gmail.comq'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~q'-+,*()./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~$Pure interface to the MPFR library.  non-portable experimentalales.bizjak0@gmail.com'  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'YZ[\]^_`abcdefghijklm !"#$%&  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXnopqrstuvwxyz{|}~     Instance declarations  non-portable experimentalales.bizjak0@gmail.comInstance declarations  non-portable experimentalales.bizjak0@gmail.comInstance declarations  non-portable experimentalales.bizjak0@gmail.comInstance declarations  non-portable experimentalales.bizjak0@gmail.com !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < > ? @ A B C D E     CDE$)FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%#&'#()#(*#+,#-.#/0#12#34#56#&7#89#:;#:<#:=#>?@ABCDEFGHIJKLMNOPQ R S T U V W X Y Z [ \ ] ^_ hmpfr-0.3Data.Number.MPFRData.Number.MPFR.MutableData.Number.MPFR.FFIhelperData.Number.MPFR.InternalData.Number.MPFR.ArithmeticData.Number.MPFR.AssignmentData.Number.MPFR.ComparisonData.Number.MPFR.SpecialData.Number.MPFR.IntegerData.Number.MPFR.MiscData.Number.MPFR.Conversion!Data.Number.MPFR.Mutable.Internal#Data.Number.MPFR.Mutable.Arithmetic Data.Number.MPFR.Mutable.Special Data.Number.MPFR.Mutable.IntegerData.Number.MPFR.Mutable.MiscData.Number.MPFR.Instances.ZeroData.Number.MPFR.Instances.DownData.Number.MPFR.Instances.UpData.Number.MPFR.Instances.NearMpSizeExp PrecisionMPFR RoundModeDownUpZeroNearaddaddwaddiadddsubsubwsubisubdwsubisubdsubmulmulwmulimuldsqrdivdivwdividivdwdividivddivsqrtsqrtwrecSqrtcbrtrootpowpowwpowiwpowwwpownegabsDdimmul2wmul2idiv2wdiv2iadd_addw_addi_addd_sub_subw_subi_subd_wsub_isub_dsub_mul_mulw_muli_muld_sqr_div_divw_divi_divd_wdiv_idiv_ddiv_sqrt_sqrtw_recSqrt_cbrt_root_pow_poww_powi_wpoww_wpow_neg_absD_dim_mul2w_mul2i_div2w_div2i_setset_fromWordfromInt fromDouble fromWord_fromInt_ fromDouble_int2wint2iint2w_int2i_ stringToMPFR stringToMPFR_strtofrstrtofr_setInfsetNaN fromIntegerAcompose fromStringcmpcmpwcmpicmpdcmp2wcmp2icmpabsisNaN isInfiniteisNumberisZerosgngreater greatereqlesslesseq lessgreaterequal unorderedloglog2log10expexp2exp10sincostanseccsccotsincosasinacosatanatan2sinhcoshtanhsinhcoshsechcschcothacoshasinhatanhfacwlog1pexpm1eintli2gammalngammalgammazetazetawerferfcj0j1jny0y1ynfmafmsagmhypotpilog2ceulercatalanlog_log2_log10_exp_exp2_exp10_sin_cos_tan_sec_csc_cot_sincos_asin_acos_atan_atan2_sinh_cosh_tanh_ sinhcosh_sech_csch_coth_acosh_asinh_atanh_facw_log1p_expm1_eint_li2_gamma_lngamma_lgamma_zeta_zetaw_erf_erfc_j0_j1_jn_y0_y1_yn_fma_fms_agm_hypot_pi_log2c_euler_catalan_ freeCacherintceilfloorroundtruncrintCeil rintFloor rintRound rintTruncmodffracfmod remainderremquorint_ceil_floor_round_trunc_ rintCeil_ rintFloor_ rintRound_ rintTrunc_modf_frac_fmod_ remainder_remquo_ isInteger nextToward nextAbove nextBelowmaxDminDrandom2getExpsetExpsignbitmaxD_minD_getPrec getMantissaonezeromaxPrectoDouble toDouble2exptoInttoWord mpfrToString fitsULong fitsSLongfitsUIntfitsSInt fitsUShort fitsSShort decompose toStringExptoStringMMPFRunsafeWriteMMPFR unsafeFreeze unsafeThaw writeMMPFRfreezethaw nextbelowmaxminmpfr_custom_movempfr_custom_get_expmpfr_custom_get_mantissampfr_custom_get_kindmpfr_custom_init_setmpfr_custom_initmpfr_custom_get_sizempfr_erangeflag_pmpfr_inexflag_pmpfr_nanflag_pmpfr_overflow_pmpfr_underflow_pmpfr_clear_flagsmpfr_set_erangeflagmpfr_set_inexflagmpfr_set_nanflagmpfr_set_overflowmpfr_set_underflowmpfr_clear_erangeflagmpfr_clear_inexflagmpfr_clear_nanflagmpfr_clear_overflowmpfr_clear_underflowmpfr_subnormalizempfr_check_rangempfr_get_emax_maxmpfr_get_emax_minmpfr_get_emin_maxmpfr_get_emin_min mpfr_set_emax mpfr_set_emin mpfr_get_emax mpfr_get_emin mpfr_copysign mpfr_setsign mpfr_signbit mpfr_set_exp mpfr_get_exp mpfr_random2mpfr_maxmpfr_minmpfr_nextbelowmpfr_nextabovempfr_nexttowardmpfr_integer_p mpfr_remquompfr_remainder mpfr_fmod mpfr_modf mpfr_fracmpfr_rint_truncmpfr_rint_roundmpfr_rint_floormpfr_rint_ceil mpfr_trunc mpfr_round mpfr_floor mpfr_ceil mpfr_rintmpfr_summpfr_free_cachempfr_const_catalanmpfr_const_euler mpfr_const_pimpfr_const_log2 mpfr_hypotmpfr_agmmpfr_fmsmpfr_fmampfr_ynmpfr_y1mpfr_y0mpfr_jnmpfr_j1mpfr_j0 mpfr_erfcmpfr_erf mpfr_zeta_ui mpfr_zeta mpfr_lgamma mpfr_lngamma mpfr_gamma mpfr_eintmpfr_li2 mpfr_expm1 mpfr_log1p mpfr_fac_ui mpfr_atanh mpfr_acosh mpfr_asinh mpfr_coth mpfr_csch mpfr_sechmpfr_sinh_cosh mpfr_tanh mpfr_sinh mpfr_cosh mpfr_atan2 mpfr_atan mpfr_acos mpfr_asin mpfr_sin_cosmpfr_cotmpfr_cscmpfr_secmpfr_tanmpfr_cosmpfr_sin mpfr_exp10 mpfr_exp2mpfr_exp mpfr_log10 mpfr_log2mpfr_logmpfr_unordered_p mpfr_equal_pmpfr_lessgreater_pmpfr_lessequal_p mpfr_less_pmpfr_greaterequal_pmpfr_greater_pmpfr_sgn mpfr_zero_p mpfr_number_p mpfr_inf_p mpfr_nan_p mpfr_cmpabsmpfr_cmp_si_2expmpfr_cmp_ui_2exp mpfr_cmp_d mpfr_cmp_si mpfr_cmp_uimpfr_cmp mpfr_div_2si mpfr_div_2ui mpfr_mul_2si mpfr_mul_2uimpfr_dimmpfr_absmpfr_neg mpfr_ui_powmpfr_ui_pow_ui mpfr_pow_si mpfr_pow_uimpfr_pow mpfr_root mpfr_cbrt mpfr_rec_sqrt mpfr_sqrt_ui mpfr_sqrt mpfr_d_div mpfr_div_d mpfr_div_si mpfr_si_div mpfr_div_ui mpfr_ui_divmpfr_divmpfr_sqr mpfr_mul_d mpfr_mul_si mpfr_mul_uimpfr_mul mpfr_d_sub mpfr_sub_d mpfr_sub_si mpfr_si_sub mpfr_sub_ui mpfr_ui_submpfr_sub mpfr_add_d mpfr_add_si mpfr_add_uimpfr_addmpfr_fits_uintmax_pmpfr_fits_intmax_pmpfr_fits_sshort_pmpfr_fits_ushort_pmpfr_fits_sint_pmpfr_fits_uint_pmpfr_fits_slong_pmpfr_fits_ulong_p mpfr_free_str mpfr_get_str mpfr_get_ui mpfr_get_simpfr_get_d_2exp mpfr_get_d mpfr_swap mpfr_set_nan mpfr_set_inf mpfr_strtofr mpfr_set_strmpfr_set_si_2expmpfr_set_ui_2exp mpfr_set_d mpfr_set_si mpfr_set_uimpfr_set mpfr_get_precinitS CPrecisionSignLimb CRoundModerunPrecMP precisionsignexponentlimbs GMP_RNDNA GMP_RND_MAXpeekNoLimbPrecpeekP withDummy pokeDummy bitsPerMPLimbbitsPerIntegerLimbexpZeroexpNaNexpInfbaseGHC.WordWordGHC.PtrPtrForeign.C.String withCString peekCStringForeign.Marshal.Array peekArrayForeign.Marshal.UtilswithForeign.Marshal.AllocallocaForeign.ForeignPtrwithForeignPtrGHC.ForeignPtrmallocForeignPtrBytesForeign.StorablepeeknullPtr GHC.IOBaseunsafePerformIOForeign.C.TypesCIntCLongCULong Data.BitsshiftL withMPFRsBA withMPFRBAui withMPFRBAsi withMPFRBAiu withMPFRBAis withMPFRBAd withMPFRBAd' withMPFRB withMPFRPwithMPFR withMPFRBB withMPFRC withMPFRF withMPFRUI withMPFRR checkPrec getMantissa'minPrecwithMutableMPFRBAwithMutableMPFR1withMutableMPFR2withMutableMPFRdwithMutableMPFRd'withMutableMPFRSwithMutableMPFRSNRwithMutableMPFRPwithMutableMPFRBwithMutableMPFRUIwithMutableMPFRBA3withMutableMPFRSCwithMutableMPFRSNRNR