hmpfr-0.3: Haskell binding to MPFR librarySource codeContentsIndex
Data.Number.MPFR
Portabilitynon-portable
Stabilityexperimental
Maintainerales.bizjak0@gmail.com
Contents
Assignment functions
Conversion functions
Basic arithmetic functions
Comparison functions
Special functions
Integer related functions
Miscellaneous functions
Description

This module exports a pure interface to the MPFR library functions. Functions return new MPFR structures instead of modifying existing ones and so all functions which produce a new MPFR structure take one more parameter than their original C counterparts. This parameter, Precision, is the precision of the resulting MPFR.

This is naturally slower than modifying in-place, especially when dealing with lower precisions, so a "mutable" interface is provided in Data.Number.MPFR.Mutable module.

Naming conventions

  • functions ending with _ (underscore) usually return a pair (MPFR, Int), where Int is a return value of a corresponding mpfr_ function. See the MPFR manual for a description of return values.
  • the same functions without the _ return just the MPFR.
  • mpfr_ prefix in functions is removed
  • _ui and ui_ in function becomes w (stands for Word). For example mpfr_sub_ui becomes subw and mpfr_ui_sub becomes wsub.
  • si_ and _si in functions becomes i (stands for Int). For example mpfr_sub_si becomes subi and mpfr_si_sub becomes isub.
  • comparison functions which have _p appended loose it. For example mpfr_less_p becomes less.

Instances

Eq
  • NaN /= NaN,
  • Infinity = Infinity,
  • -Infinity = -Infinity
  • otherwise normal comparison
Ord
  • compare NaN _ = GT
  • compare _ NaN = GT
  • infinity < _ = False
  • -infinity > _ = False
  • NaN [<,>,>=,<=] _ = False

This mimics the behaviour of built in Haskell Float and Double.

If you need instances of numeric typeclasses import one of the Data.Number.MPFR.Instances.* modules.

Synopsis
data RoundMode
= Near
| Zero
| Up
| Down
data MPFR
data Precision
type Exp = Int32
type MpSize = Int32
set :: RoundMode -> Precision -> MPFR -> MPFR
set_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
fromWord :: RoundMode -> Precision -> Word -> MPFR
fromInt :: RoundMode -> Precision -> Int -> MPFR
fromDouble :: RoundMode -> Precision -> Double -> MPFR
fromWord_ :: RoundMode -> Precision -> Word -> (MPFR, Int)
fromInt_ :: RoundMode -> Precision -> Int -> (MPFR, Int)
fromDouble_ :: RoundMode -> Precision -> Double -> (MPFR, Int)
int2w :: RoundMode -> Precision -> Word -> Int -> MPFR
int2i :: RoundMode -> Precision -> Int -> Int -> MPFR
int2w_ :: RoundMode -> Precision -> Word -> Int -> (MPFR, Int)
int2i_ :: RoundMode -> Precision -> Int -> Int -> (MPFR, Int)
stringToMPFR :: RoundMode -> Precision -> Word -> String -> MPFR
stringToMPFR_ :: RoundMode -> Precision -> Word -> String -> (MPFR, Int)
strtofr :: RoundMode -> Precision -> Word -> String -> (MPFR, String)
strtofr_ :: RoundMode -> Precision -> Word -> String -> (MPFR, String, Int)
setInf :: Precision -> Int -> MPFR
setNaN :: Precision -> MPFR
fromIntegerA :: RoundMode -> Precision -> Integer -> MPFR
compose :: RoundMode -> Precision -> (Integer, Int) -> MPFR
fromString :: String -> Precision -> Word -> MPFR
toDouble :: RoundMode -> MPFR -> Double
toDouble2exp :: RoundMode -> MPFR -> (Double, Int)
toInt :: RoundMode -> MPFR -> Int
toWord :: RoundMode -> MPFR -> Word
mpfrToString :: RoundMode -> Word -> Word -> MPFR -> (String, Exp)
fitsULong :: RoundMode -> MPFR -> Bool
fitsSLong :: RoundMode -> MPFR -> Bool
fitsUInt :: RoundMode -> MPFR -> Bool
fitsSInt :: RoundMode -> MPFR -> Bool
fitsUShort :: RoundMode -> MPFR -> Bool
fitsSShort :: RoundMode -> MPFR -> Bool
decompose :: MPFR -> (Integer, Exp)
toStringExp :: Word -> MPFR -> String
toString :: Word -> MPFR -> String
add :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR
addw :: RoundMode -> Precision -> MPFR -> Word -> MPFR
addi :: RoundMode -> Precision -> MPFR -> Int -> MPFR
addd :: RoundMode -> Precision -> MPFR -> Double -> MPFR
sub :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR
subw :: RoundMode -> Precision -> MPFR -> Word -> MPFR
subi :: RoundMode -> Precision -> MPFR -> Int -> MPFR
subd :: RoundMode -> Precision -> MPFR -> Double -> MPFR
wsub :: RoundMode -> Precision -> Word -> MPFR -> MPFR
isub :: RoundMode -> Precision -> Int -> MPFR -> MPFR
dsub :: RoundMode -> Precision -> Double -> MPFR -> MPFR
mul :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR
mulw :: RoundMode -> Precision -> MPFR -> Word -> MPFR
muli :: RoundMode -> Precision -> MPFR -> Int -> MPFR
muld :: RoundMode -> Precision -> MPFR -> Double -> MPFR
sqr :: RoundMode -> Precision -> MPFR -> MPFR
div :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR
divw :: RoundMode -> Precision -> MPFR -> Word -> MPFR
divi :: RoundMode -> Precision -> MPFR -> Int -> MPFR
divd :: RoundMode -> Precision -> MPFR -> Double -> MPFR
wdiv :: RoundMode -> Precision -> Word -> MPFR -> MPFR
idiv :: RoundMode -> Precision -> Int -> MPFR -> MPFR
ddiv :: RoundMode -> Precision -> Double -> MPFR -> MPFR
sqrt :: RoundMode -> Precision -> MPFR -> MPFR
sqrtw :: RoundMode -> Precision -> Word -> MPFR
recSqrt :: RoundMode -> Precision -> MPFR -> MPFR
cbrt :: RoundMode -> Precision -> MPFR -> MPFR
root :: RoundMode -> Precision -> MPFR -> Word -> MPFR
pow :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR
poww :: RoundMode -> Precision -> MPFR -> Word -> MPFR
powi :: RoundMode -> Precision -> MPFR -> Int -> MPFR
wpoww :: RoundMode -> Precision -> Word -> Word -> MPFR
wpow :: RoundMode -> Precision -> Word -> MPFR -> MPFR
neg :: RoundMode -> Precision -> MPFR -> MPFR
absD :: RoundMode -> Precision -> MPFR -> MPFR
dim :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR
mul2w :: RoundMode -> Precision -> MPFR -> Word -> MPFR
mul2i :: RoundMode -> Precision -> MPFR -> Int -> MPFR
div2w :: RoundMode -> Precision -> MPFR -> Word -> MPFR
div2i :: RoundMode -> Precision -> MPFR -> Int -> MPFR
add_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)
addw_ :: RoundMode -> Precision -> MPFR -> Word -> (MPFR, Int)
addi_ :: RoundMode -> Precision -> MPFR -> Int -> (MPFR, Int)
addd_ :: RoundMode -> Precision -> MPFR -> Double -> (MPFR, Int)
sub_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)
subw_ :: RoundMode -> Precision -> MPFR -> Word -> (MPFR, Int)
subi_ :: RoundMode -> Precision -> MPFR -> Int -> (MPFR, Int)
subd_ :: RoundMode -> Precision -> MPFR -> Double -> (MPFR, Int)
wsub_ :: RoundMode -> Precision -> Word -> MPFR -> (MPFR, Int)
isub_ :: RoundMode -> Precision -> Int -> MPFR -> (MPFR, Int)
dsub_ :: RoundMode -> Precision -> Double -> MPFR -> (MPFR, Int)
mul_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)
mulw_ :: RoundMode -> Precision -> MPFR -> Word -> (MPFR, Int)
muli_ :: RoundMode -> Precision -> MPFR -> Int -> (MPFR, Int)
muld_ :: RoundMode -> Precision -> MPFR -> Double -> (MPFR, Int)
sqr_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
div_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)
divw_ :: RoundMode -> Precision -> MPFR -> Word -> (MPFR, Int)
divi_ :: RoundMode -> Precision -> MPFR -> Int -> (MPFR, Int)
divd_ :: RoundMode -> Precision -> MPFR -> Double -> (MPFR, Int)
wdiv_ :: RoundMode -> Precision -> Word -> MPFR -> (MPFR, Int)
idiv_ :: RoundMode -> Precision -> Int -> MPFR -> (MPFR, Int)
ddiv_ :: RoundMode -> Precision -> Double -> MPFR -> (MPFR, Int)
sqrt_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
sqrtw_ :: RoundMode -> Precision -> Word -> (MPFR, Int)
recSqrt_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
cbrt_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
root_ :: RoundMode -> Precision -> MPFR -> Word -> (MPFR, Int)
pow_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)
poww_ :: RoundMode -> Precision -> MPFR -> Word -> (MPFR, Int)
powi_ :: RoundMode -> Precision -> MPFR -> Int -> (MPFR, Int)
wpoww_ :: RoundMode -> Precision -> Word -> Word -> (MPFR, Int)
wpow_ :: RoundMode -> Precision -> Word -> MPFR -> (MPFR, Int)
neg_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
absD_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
dim_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)
mul2w_ :: RoundMode -> Precision -> MPFR -> Word -> (MPFR, Int)
mul2i_ :: RoundMode -> Precision -> MPFR -> Int -> (MPFR, Int)
div2w_ :: RoundMode -> Precision -> MPFR -> Word -> (MPFR, Int)
div2i_ :: RoundMode -> Precision -> MPFR -> Int -> (MPFR, Int)
cmp :: MPFR -> MPFR -> Maybe Ordering
cmpw :: MPFR -> Word -> Maybe Ordering
cmpi :: MPFR -> Int -> Maybe Ordering
cmpd :: MPFR -> Double -> Maybe Ordering
cmp2w :: MPFR -> Word -> Exp -> Maybe Ordering
cmp2i :: MPFR -> Int -> Exp -> Maybe Ordering
cmpabs :: MPFR -> MPFR -> Maybe Ordering
isNaN :: MPFR -> Bool
isInfinite :: MPFR -> Bool
isNumber :: MPFR -> Bool
isZero :: MPFR -> Bool
sgn :: MPFR -> Maybe Int
greater :: MPFR -> MPFR -> Bool
greatereq :: MPFR -> MPFR -> Bool
less :: MPFR -> MPFR -> Bool
lesseq :: MPFR -> MPFR -> Bool
lessgreater :: MPFR -> MPFR -> Maybe Bool
equal :: MPFR -> MPFR -> Bool
unordered :: MPFR -> MPFR -> Maybe Bool
log :: RoundMode -> Precision -> MPFR -> MPFR
log2 :: RoundMode -> Precision -> MPFR -> MPFR
log10 :: RoundMode -> Precision -> MPFR -> MPFR
exp :: RoundMode -> Precision -> MPFR -> MPFR
exp2 :: RoundMode -> Precision -> MPFR -> MPFR
exp10 :: RoundMode -> Precision -> MPFR -> MPFR
sin :: RoundMode -> Precision -> MPFR -> MPFR
cos :: RoundMode -> Precision -> MPFR -> MPFR
tan :: RoundMode -> Precision -> MPFR -> MPFR
sec :: RoundMode -> Precision -> MPFR -> MPFR
csc :: RoundMode -> Precision -> MPFR -> MPFR
cot :: RoundMode -> Precision -> MPFR -> MPFR
sincos :: RoundMode -> Precision -> Precision -> MPFR -> (MPFR, MPFR)
asin :: RoundMode -> Precision -> MPFR -> MPFR
acos :: RoundMode -> Precision -> MPFR -> MPFR
atan :: RoundMode -> Precision -> MPFR -> MPFR
atan2 :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR
sinh :: RoundMode -> Precision -> MPFR -> MPFR
cosh :: RoundMode -> Precision -> MPFR -> MPFR
tanh :: RoundMode -> Precision -> MPFR -> MPFR
sinhcosh :: RoundMode -> Precision -> Precision -> MPFR -> (MPFR, MPFR)
sech :: RoundMode -> Precision -> MPFR -> MPFR
csch :: RoundMode -> Precision -> MPFR -> MPFR
coth :: RoundMode -> Precision -> MPFR -> MPFR
acosh :: RoundMode -> Precision -> MPFR -> MPFR
asinh :: RoundMode -> Precision -> MPFR -> MPFR
atanh :: RoundMode -> Precision -> MPFR -> MPFR
facw :: RoundMode -> Precision -> Word -> MPFR
log1p :: RoundMode -> Precision -> MPFR -> MPFR
expm1 :: RoundMode -> Precision -> MPFR -> MPFR
eint :: RoundMode -> Precision -> MPFR -> MPFR
li2 :: RoundMode -> Precision -> MPFR -> MPFR
gamma :: RoundMode -> Precision -> MPFR -> MPFR
lngamma :: RoundMode -> Precision -> MPFR -> MPFR
lgamma :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
zeta :: RoundMode -> Precision -> MPFR -> MPFR
zetaw :: RoundMode -> Precision -> Word -> MPFR
erf :: RoundMode -> Precision -> MPFR -> MPFR
erfc :: RoundMode -> Precision -> MPFR -> MPFR
j0 :: RoundMode -> Precision -> MPFR -> MPFR
j1 :: RoundMode -> Precision -> MPFR -> MPFR
jn :: RoundMode -> Precision -> Int -> MPFR -> MPFR
y0 :: RoundMode -> Precision -> MPFR -> MPFR
y1 :: RoundMode -> Precision -> MPFR -> MPFR
yn :: RoundMode -> Precision -> Int -> MPFR -> MPFR
fma :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR -> MPFR
fms :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR -> MPFR
agm :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR
hypot :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR
pi :: RoundMode -> Precision -> MPFR
log2c :: RoundMode -> Precision -> MPFR
euler :: RoundMode -> Precision -> MPFR
catalan :: RoundMode -> Precision -> MPFR
log_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
log2_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
log10_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
exp_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
exp2_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
exp10_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
sin_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
cos_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
tan_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
sec_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
csc_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
cot_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
sincos_ :: RoundMode -> Precision -> Precision -> MPFR -> (MPFR, MPFR, Int)
asin_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
acos_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
atan_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
atan2_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)
sinh_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
cosh_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
tanh_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
sinhcosh_ :: RoundMode -> Precision -> Precision -> MPFR -> (MPFR, MPFR, Int)
sech_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
csch_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
coth_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
acosh_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
asinh_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
atanh_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
facw_ :: RoundMode -> Precision -> Word -> (MPFR, Int)
log1p_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
expm1_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
eint_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
li2_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
gamma_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
lngamma_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
lgamma_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int, Int)
zeta_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
zetaw_ :: RoundMode -> Precision -> Word -> (MPFR, Int)
erf_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
erfc_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
j0_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
j1_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
jn_ :: RoundMode -> Precision -> Int -> MPFR -> (MPFR, Int)
y0_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
y1_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
yn_ :: RoundMode -> Precision -> Int -> MPFR -> (MPFR, Int)
fma_ :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR -> (MPFR, Int)
fms_ :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR -> (MPFR, Int)
agm_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)
hypot_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)
pi_ :: RoundMode -> Precision -> (MPFR, Int)
log2c_ :: RoundMode -> Precision -> (MPFR, Int)
euler_ :: RoundMode -> Precision -> (MPFR, Int)
catalan_ :: RoundMode -> Precision -> (MPFR, Int)
freeCache :: IO ()
rint :: RoundMode -> Precision -> MPFR -> MPFR
ceil :: Precision -> MPFR -> MPFR
floor :: Precision -> MPFR -> MPFR
round :: Precision -> MPFR -> MPFR
trunc :: Precision -> MPFR -> MPFR
rintCeil :: RoundMode -> Precision -> MPFR -> MPFR
rintFloor :: RoundMode -> Precision -> MPFR -> MPFR
rintRound :: RoundMode -> Precision -> MPFR -> MPFR
rintTrunc :: RoundMode -> Precision -> MPFR -> MPFR
modf :: RoundMode -> Precision -> Precision -> MPFR -> (MPFR, MPFR)
frac :: RoundMode -> Precision -> MPFR -> MPFR
fmod :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR
remainder :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR
remquo :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)
rint_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
ceil_ :: Precision -> MPFR -> (MPFR, Int)
floor_ :: Precision -> MPFR -> (MPFR, Int)
round_ :: Precision -> MPFR -> (MPFR, Int)
trunc_ :: Precision -> MPFR -> (MPFR, Int)
rintCeil_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
rintFloor_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
rintRound_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
rintTrunc_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
modf_ :: RoundMode -> Precision -> Precision -> MPFR -> (MPFR, MPFR, Int)
frac_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)
fmod_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)
remainder_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)
remquo_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int, Int)
isInteger :: MPFR -> Bool
nextToward :: MPFR -> MPFR -> MPFR
nextAbove :: MPFR -> MPFR
nextBelow :: MPFR -> MPFR
maxD :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR
minD :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR
random2 :: Precision -> MpSize -> Exp -> IO MPFR
getExp :: MPFR -> Exp
setExp :: MPFR -> Exp -> MPFR
signbit :: MPFR -> Bool
maxD_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)
minD_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)
getPrec :: MPFR -> Precision
getMantissa :: MPFR -> Integer
one :: MPFR
zero :: MPFR
maxPrec :: MPFR -> MPFR -> Precision
Documentation
data RoundMode Source
Constructors
Near
Zero
Up
Down
show/hide Instances
data MPFR Source
show/hide Instances
data Precision Source
show/hide Instances
type Exp = Int32Source
type MpSize = Int32Source
Assignment functions
See http://www.mpfr.org/mpfr-current/mpfr.html#Assignment-Functions documentation on particular functions.
set :: RoundMode -> Precision -> MPFR -> MPFRSource
set_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
fromWord :: RoundMode -> Precision -> Word -> MPFRSource
fromInt :: RoundMode -> Precision -> Int -> MPFRSource
fromDouble :: RoundMode -> Precision -> Double -> MPFRSource
fromWord_ :: RoundMode -> Precision -> Word -> (MPFR, Int)Source
fromInt_ :: RoundMode -> Precision -> Int -> (MPFR, Int)Source
fromDouble_ :: RoundMode -> Precision -> Double -> (MPFR, Int)Source
int2w :: RoundMode -> Precision -> Word -> Int -> MPFRSource
x * 2 ^ y
int2i :: RoundMode -> Precision -> Int -> Int -> MPFRSource
x * 2 ^ y
int2w_ :: RoundMode -> Precision -> Word -> Int -> (MPFR, Int)Source
int2i_ :: RoundMode -> Precision -> Int -> Int -> (MPFR, Int)Source
stringToMPFRSource
:: RoundMode
-> Precision
-> WordBase
-> String
-> MPFR
stringToMPFR_Source
:: RoundMode
-> Precision
-> WordBase
-> String
-> (MPFR, Int)
strtofrSource
:: RoundMode
-> Precision
-> Wordbase
-> String
-> (MPFR, String)
strtofr_Source
:: RoundMode
-> Precision
-> Wordbase
-> String
-> (MPFR, String, Int)
setInf :: Precision -> Int -> MPFRSource
setNaN :: Precision -> MPFRSource
fromIntegerA :: RoundMode -> Precision -> Integer -> MPFRSource
compose :: RoundMode -> Precision -> (Integer, Int) -> MPFRSource
fromString :: String -> Precision -> Word -> MPFRSource
stringToMPFR with default rounding to Near.
Conversion functions
See http://www.mpfr.org/mpfr-current/mpfr.html#Conversion-Functions documentation on particular functions.
toDouble :: RoundMode -> MPFR -> DoubleSource
toDouble2exp :: RoundMode -> MPFR -> (Double, Int)Source
toInt :: RoundMode -> MPFR -> IntSource
toWord :: RoundMode -> MPFR -> WordSource
mpfrToStringSource
:: RoundMode
-> Wordnumber of decimals
-> Wordbase
-> MPFR
-> (String, Exp)
fitsULong :: RoundMode -> MPFR -> BoolSource
fitsSLong :: RoundMode -> MPFR -> BoolSource
fitsUInt :: RoundMode -> MPFR -> BoolSource
fitsSInt :: RoundMode -> MPFR -> BoolSource
fitsUShort :: RoundMode -> MPFR -> BoolSource
fitsSShort :: RoundMode -> MPFR -> BoolSource
decompose :: MPFR -> (Integer, Exp)Source
toStringExpSource
:: Wordnumber of digits
-> MPFR
-> String
Output a string in base 10 rounded to Near in exponential form.
toString :: Word -> MPFR -> StringSource
Output a string in base 10 rounded to Near. The difference from toStringExp is that it won't output in exponential form if it is sensible to do so.
Basic arithmetic functions
For documentation on particular functions see http://www.mpfr.org/mpfr-current/mpfr.html#Basic-Arithmetic-Functions.
add :: RoundMode -> Precision -> MPFR -> MPFR -> MPFRSource
addw :: RoundMode -> Precision -> MPFR -> Word -> MPFRSource
addi :: RoundMode -> Precision -> MPFR -> Int -> MPFRSource
addd :: RoundMode -> Precision -> MPFR -> Double -> MPFRSource
sub :: RoundMode -> Precision -> MPFR -> MPFR -> MPFRSource
subw :: RoundMode -> Precision -> MPFR -> Word -> MPFRSource
subi :: RoundMode -> Precision -> MPFR -> Int -> MPFRSource
subd :: RoundMode -> Precision -> MPFR -> Double -> MPFRSource
wsub :: RoundMode -> Precision -> Word -> MPFR -> MPFRSource
isub :: RoundMode -> Precision -> Int -> MPFR -> MPFRSource
dsub :: RoundMode -> Precision -> Double -> MPFR -> MPFRSource
mul :: RoundMode -> Precision -> MPFR -> MPFR -> MPFRSource
mulw :: RoundMode -> Precision -> MPFR -> Word -> MPFRSource
muli :: RoundMode -> Precision -> MPFR -> Int -> MPFRSource
muld :: RoundMode -> Precision -> MPFR -> Double -> MPFRSource
sqr :: RoundMode -> Precision -> MPFR -> MPFRSource
div :: RoundMode -> Precision -> MPFR -> MPFR -> MPFRSource
divw :: RoundMode -> Precision -> MPFR -> Word -> MPFRSource
divi :: RoundMode -> Precision -> MPFR -> Int -> MPFRSource
divd :: RoundMode -> Precision -> MPFR -> Double -> MPFRSource
wdiv :: RoundMode -> Precision -> Word -> MPFR -> MPFRSource
idiv :: RoundMode -> Precision -> Int -> MPFR -> MPFRSource
ddiv :: RoundMode -> Precision -> Double -> MPFR -> MPFRSource
sqrt :: RoundMode -> Precision -> MPFR -> MPFRSource
sqrtw :: RoundMode -> Precision -> Word -> MPFRSource
recSqrt :: RoundMode -> Precision -> MPFR -> MPFRSource
cbrt :: RoundMode -> Precision -> MPFR -> MPFRSource
root :: RoundMode -> Precision -> MPFR -> Word -> MPFRSource
pow :: RoundMode -> Precision -> MPFR -> MPFR -> MPFRSource
poww :: RoundMode -> Precision -> MPFR -> Word -> MPFRSource
powi :: RoundMode -> Precision -> MPFR -> Int -> MPFRSource
wpoww :: RoundMode -> Precision -> Word -> Word -> MPFRSource
wpow :: RoundMode -> Precision -> Word -> MPFR -> MPFRSource
neg :: RoundMode -> Precision -> MPFR -> MPFRSource
absD :: RoundMode -> Precision -> MPFR -> MPFRSource
dim :: RoundMode -> Precision -> MPFR -> MPFR -> MPFRSource
mul2w :: RoundMode -> Precision -> MPFR -> Word -> MPFRSource
mul2i :: RoundMode -> Precision -> MPFR -> Int -> MPFRSource
div2w :: RoundMode -> Precision -> MPFR -> Word -> MPFRSource
div2i :: RoundMode -> Precision -> MPFR -> Int -> MPFRSource
add_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)Source
addw_ :: RoundMode -> Precision -> MPFR -> Word -> (MPFR, Int)Source
addi_ :: RoundMode -> Precision -> MPFR -> Int -> (MPFR, Int)Source
addd_ :: RoundMode -> Precision -> MPFR -> Double -> (MPFR, Int)Source
sub_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)Source
subw_ :: RoundMode -> Precision -> MPFR -> Word -> (MPFR, Int)Source
subi_ :: RoundMode -> Precision -> MPFR -> Int -> (MPFR, Int)Source
subd_ :: RoundMode -> Precision -> MPFR -> Double -> (MPFR, Int)Source
wsub_ :: RoundMode -> Precision -> Word -> MPFR -> (MPFR, Int)Source
isub_ :: RoundMode -> Precision -> Int -> MPFR -> (MPFR, Int)Source
dsub_ :: RoundMode -> Precision -> Double -> MPFR -> (MPFR, Int)Source
mul_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)Source
mulw_ :: RoundMode -> Precision -> MPFR -> Word -> (MPFR, Int)Source
muli_ :: RoundMode -> Precision -> MPFR -> Int -> (MPFR, Int)Source
muld_ :: RoundMode -> Precision -> MPFR -> Double -> (MPFR, Int)Source
sqr_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
div_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)Source
divw_ :: RoundMode -> Precision -> MPFR -> Word -> (MPFR, Int)Source
divi_ :: RoundMode -> Precision -> MPFR -> Int -> (MPFR, Int)Source
divd_ :: RoundMode -> Precision -> MPFR -> Double -> (MPFR, Int)Source
wdiv_ :: RoundMode -> Precision -> Word -> MPFR -> (MPFR, Int)Source
idiv_ :: RoundMode -> Precision -> Int -> MPFR -> (MPFR, Int)Source
ddiv_ :: RoundMode -> Precision -> Double -> MPFR -> (MPFR, Int)Source
sqrt_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
sqrtw_ :: RoundMode -> Precision -> Word -> (MPFR, Int)Source
recSqrt_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
cbrt_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
root_ :: RoundMode -> Precision -> MPFR -> Word -> (MPFR, Int)Source
pow_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)Source
poww_ :: RoundMode -> Precision -> MPFR -> Word -> (MPFR, Int)Source
powi_ :: RoundMode -> Precision -> MPFR -> Int -> (MPFR, Int)Source
wpoww_ :: RoundMode -> Precision -> Word -> Word -> (MPFR, Int)Source
wpow_ :: RoundMode -> Precision -> Word -> MPFR -> (MPFR, Int)Source
neg_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
absD_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
dim_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)Source
mul2w_ :: RoundMode -> Precision -> MPFR -> Word -> (MPFR, Int)Source
mul2i_ :: RoundMode -> Precision -> MPFR -> Int -> (MPFR, Int)Source
div2w_ :: RoundMode -> Precision -> MPFR -> Word -> (MPFR, Int)Source
div2i_ :: RoundMode -> Precision -> MPFR -> Int -> (MPFR, Int)Source
Comparison functions
For documentation on particular functions see http://www.mpfr.org/mpfr-current/mpfr.html#Comparison-Functions
cmp :: MPFR -> MPFR -> Maybe OrderingSource
cmpw :: MPFR -> Word -> Maybe OrderingSource
cmpi :: MPFR -> Int -> Maybe OrderingSource
cmpd :: MPFR -> Double -> Maybe OrderingSource
cmp2w :: MPFR -> Word -> Exp -> Maybe OrderingSource
cmp2i :: MPFR -> Int -> Exp -> Maybe OrderingSource
cmpabs :: MPFR -> MPFR -> Maybe OrderingSource
isNaN :: MPFR -> BoolSource
isInfinite :: MPFR -> BoolSource
isNumber :: MPFR -> BoolSource
isZero :: MPFR -> BoolSource
sgn :: MPFR -> Maybe IntSource
greater :: MPFR -> MPFR -> BoolSource
greatereq :: MPFR -> MPFR -> BoolSource
less :: MPFR -> MPFR -> BoolSource
lesseq :: MPFR -> MPFR -> BoolSource
lessgreater :: MPFR -> MPFR -> Maybe BoolSource
equal :: MPFR -> MPFR -> BoolSource
unordered :: MPFR -> MPFR -> Maybe BoolSource
Special functions
For documentation on particular functions see http://www.mpfr.org/mpfr-current/mpfr.html#Special-Functions.
log :: RoundMode -> Precision -> MPFR -> MPFRSource
log2 :: RoundMode -> Precision -> MPFR -> MPFRSource
log10 :: RoundMode -> Precision -> MPFR -> MPFRSource
exp :: RoundMode -> Precision -> MPFR -> MPFRSource
exp2 :: RoundMode -> Precision -> MPFR -> MPFRSource
exp10 :: RoundMode -> Precision -> MPFR -> MPFRSource
sin :: RoundMode -> Precision -> MPFR -> MPFRSource
cos :: RoundMode -> Precision -> MPFR -> MPFRSource
tan :: RoundMode -> Precision -> MPFR -> MPFRSource
sec :: RoundMode -> Precision -> MPFR -> MPFRSource
csc :: RoundMode -> Precision -> MPFR -> MPFRSource
cot :: RoundMode -> Precision -> MPFR -> MPFRSource
sincosSource
:: RoundMode
-> Precisionprecision to compute sin
-> Precisionprecision to compute cos
-> MPFR
-> (MPFR, MPFR)return (sin x, cos x)
asin :: RoundMode -> Precision -> MPFR -> MPFRSource
acos :: RoundMode -> Precision -> MPFR -> MPFRSource
atan :: RoundMode -> Precision -> MPFR -> MPFRSource
atan2 :: RoundMode -> Precision -> MPFR -> MPFR -> MPFRSource
sinh :: RoundMode -> Precision -> MPFR -> MPFRSource
cosh :: RoundMode -> Precision -> MPFR -> MPFRSource
tanh :: RoundMode -> Precision -> MPFR -> MPFRSource
sinhcoshSource
:: RoundMode
-> Precisionprecision to compute sin
-> Precisionprecision to compute cos
-> MPFR
-> (MPFR, MPFR)return (sin x, cos x)
sech :: RoundMode -> Precision -> MPFR -> MPFRSource
csch :: RoundMode -> Precision -> MPFR -> MPFRSource
coth :: RoundMode -> Precision -> MPFR -> MPFRSource
acosh :: RoundMode -> Precision -> MPFR -> MPFRSource
asinh :: RoundMode -> Precision -> MPFR -> MPFRSource
atanh :: RoundMode -> Precision -> MPFR -> MPFRSource
facw :: RoundMode -> Precision -> Word -> MPFRSource
log1p :: RoundMode -> Precision -> MPFR -> MPFRSource
expm1 :: RoundMode -> Precision -> MPFR -> MPFRSource
eint :: RoundMode -> Precision -> MPFR -> MPFRSource
li2 :: RoundMode -> Precision -> MPFR -> MPFRSource
gamma :: RoundMode -> Precision -> MPFR -> MPFRSource
lngamma :: RoundMode -> Precision -> MPFR -> MPFRSource
lgamma :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
zeta :: RoundMode -> Precision -> MPFR -> MPFRSource
zetaw :: RoundMode -> Precision -> Word -> MPFRSource
erf :: RoundMode -> Precision -> MPFR -> MPFRSource
erfc :: RoundMode -> Precision -> MPFR -> MPFRSource
j0 :: RoundMode -> Precision -> MPFR -> MPFRSource
j1 :: RoundMode -> Precision -> MPFR -> MPFRSource
jn :: RoundMode -> Precision -> Int -> MPFR -> MPFRSource
y0 :: RoundMode -> Precision -> MPFR -> MPFRSource
y1 :: RoundMode -> Precision -> MPFR -> MPFRSource
yn :: RoundMode -> Precision -> Int -> MPFR -> MPFRSource
fma :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR -> MPFRSource
fms :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR -> MPFRSource
agm :: RoundMode -> Precision -> MPFR -> MPFR -> MPFRSource
hypot :: RoundMode -> Precision -> MPFR -> MPFR -> MPFRSource
pi :: RoundMode -> Precision -> MPFRSource
log2c :: RoundMode -> Precision -> MPFRSource
euler :: RoundMode -> Precision -> MPFRSource
catalan :: RoundMode -> Precision -> MPFRSource
log_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
log2_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
log10_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
exp_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
exp2_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
exp10_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
sin_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
cos_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
tan_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
sec_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
csc_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
cot_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
sincos_Source
:: RoundMode
-> Precisionprecision to compute sin
-> Precisionprecision to compute cos
-> MPFR
-> (MPFR, MPFR, Int)
asin_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
acos_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
atan_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
atan2_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)Source
sinh_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
cosh_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
tanh_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
sinhcosh_Source
:: RoundMode
-> Precisionprecision to compute sinh
-> Precisionprecision to compute cosh
-> MPFR
-> (MPFR, MPFR, Int)
sech_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
csch_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
coth_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
acosh_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
asinh_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
atanh_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
facw_ :: RoundMode -> Precision -> Word -> (MPFR, Int)Source
log1p_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
expm1_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
eint_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
li2_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
gamma_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
lngamma_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
lgamma_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int, Int)Source
zeta_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
zetaw_ :: RoundMode -> Precision -> Word -> (MPFR, Int)Source
erf_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
erfc_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
j0_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
j1_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
jn_ :: RoundMode -> Precision -> Int -> MPFR -> (MPFR, Int)Source
y0_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
y1_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
yn_ :: RoundMode -> Precision -> Int -> MPFR -> (MPFR, Int)Source
fma_ :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR -> (MPFR, Int)Source
fms_ :: RoundMode -> Precision -> MPFR -> MPFR -> MPFR -> (MPFR, Int)Source
agm_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)Source
hypot_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)Source
pi_ :: RoundMode -> Precision -> (MPFR, Int)Source
log2c_ :: RoundMode -> Precision -> (MPFR, Int)Source
euler_ :: RoundMode -> Precision -> (MPFR, Int)Source
catalan_ :: RoundMode -> Precision -> (MPFR, Int)Source
freeCache :: IO ()Source
Integer related functions
For documentation on particular functions see http://www.mpfr.org/mpfr-chttp://www.mpfr.org/mpfr-current/mpfr.html#Integer-Related-Functions
rint :: RoundMode -> Precision -> MPFR -> MPFRSource
ceil :: Precision -> MPFR -> MPFRSource
floor :: Precision -> MPFR -> MPFRSource
round :: Precision -> MPFR -> MPFRSource
trunc :: Precision -> MPFR -> MPFRSource
rintCeil :: RoundMode -> Precision -> MPFR -> MPFRSource
rintFloor :: RoundMode -> Precision -> MPFR -> MPFRSource
rintRound :: RoundMode -> Precision -> MPFR -> MPFRSource
rintTrunc :: RoundMode -> Precision -> MPFR -> MPFRSource
modfSource
:: RoundMode
-> Precisionprecision to integral part
-> Precisionprecision to fractional part
-> MPFR
-> (MPFR, MPFR)return (integral part, fractional part)
frac :: RoundMode -> Precision -> MPFR -> MPFRSource
fmod :: RoundMode -> Precision -> MPFR -> MPFR -> MPFRSource
remainder :: RoundMode -> Precision -> MPFR -> MPFR -> MPFRSource
remquo :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)Source
rint_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
ceil_ :: Precision -> MPFR -> (MPFR, Int)Source
floor_ :: Precision -> MPFR -> (MPFR, Int)Source
round_ :: Precision -> MPFR -> (MPFR, Int)Source
trunc_ :: Precision -> MPFR -> (MPFR, Int)Source
rintCeil_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
rintFloor_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
rintRound_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
rintTrunc_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
modf_Source
:: RoundMode
-> Precisionprecision to compute integral part
-> Precisionprecision to compute fractional part
-> MPFR
-> (MPFR, MPFR, Int)
frac_ :: RoundMode -> Precision -> MPFR -> (MPFR, Int)Source
fmod_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)Source
remainder_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)Source
remquo_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int, Int)Source
isInteger :: MPFR -> BoolSource
Miscellaneous functions
For documentation on particular functions see http://www.mpfr.org/mpfr-current/mpfr.html#Miscellaneous-Functions.
nextToward :: MPFR -> MPFR -> MPFRSource
nextAbove :: MPFR -> MPFRSource
nextBelow :: MPFR -> MPFRSource
maxD :: RoundMode -> Precision -> MPFR -> MPFR -> MPFRSource
minD :: RoundMode -> Precision -> MPFR -> MPFR -> MPFRSource
random2 :: Precision -> MpSize -> Exp -> IO MPFRSource
getExp :: MPFR -> ExpSource
setExp :: MPFR -> Exp -> MPFRSource
signbit :: MPFR -> BoolSource
maxD_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)Source
minD_ :: RoundMode -> Precision -> MPFR -> MPFR -> (MPFR, Int)Source
getPrec :: MPFR -> PrecisionSource
getMantissa :: MPFR -> IntegerSource

getMantissa and getExp return values such that

 d = getMantissa d * 2^(getExp d - ceiling ((getPrec d) / bitsPerMPLimb)* bitsPerMPLimb )

In case of 0, NaN or +-Inf getMantissa will return 0

one :: MPFRSource
zero :: MPFRSource
maxPrec :: MPFR -> MPFR -> PrecisionSource
Produced by Haddock version 2.4.2