|
|
|
|
|
|
Synopsis |
|
type Dyadic = MPFR_T | | type Precision = Word | | | | add :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic | | sub :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic | | mul :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic | | div :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic | | inverse :: Dyadic -> Dyadic | | add_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> (Dyadic, Int) | | sub_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> (Dyadic, Int) | | mul_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> (Dyadic, Int) | | div_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> (Dyadic, Int) | | addw :: RoundMode -> Precision -> Dyadic -> Word -> Dyadic | | addi :: RoundMode -> Precision -> Dyadic -> Int -> Dyadic | | mulw :: RoundMode -> Precision -> Dyadic -> Word -> Dyadic | | muli :: RoundMode -> Precision -> Dyadic -> Int -> Dyadic | | divw :: RoundMode -> Precision -> Dyadic -> Word -> Dyadic | | divi :: RoundMode -> Precision -> Dyadic -> Int -> Dyadic | | wdiv :: RoundMode -> Precision -> Word -> Dyadic -> Dyadic | | idiv :: RoundMode -> Precision -> Int -> Dyadic -> Dyadic | | subw :: RoundMode -> Precision -> Dyadic -> Word -> Dyadic | | subi :: RoundMode -> Precision -> Dyadic -> Int -> Dyadic | | wsub :: RoundMode -> Precision -> Word -> Dyadic -> Dyadic | | isub :: RoundMode -> Precision -> Int -> Dyadic -> Dyadic | | addw_ :: RoundMode -> Precision -> Dyadic -> Word -> (Dyadic, Int) | | addi_ :: RoundMode -> Precision -> Dyadic -> Int -> (Dyadic, Int) | | mulw_ :: RoundMode -> Precision -> Dyadic -> Word -> (Dyadic, Int) | | muli_ :: RoundMode -> Precision -> Dyadic -> Int -> (Dyadic, Int) | | divw_ :: RoundMode -> Precision -> Dyadic -> Word -> (Dyadic, Int) | | divi_ :: RoundMode -> Precision -> Dyadic -> Int -> (Dyadic, Int) | | wdiv_ :: RoundMode -> Precision -> Word -> Dyadic -> (Dyadic, Int) | | idiv_ :: RoundMode -> Precision -> Int -> Dyadic -> (Dyadic, Int) | | subw_ :: RoundMode -> Precision -> Dyadic -> Word -> (Dyadic, Int) | | subi_ :: RoundMode -> Precision -> Dyadic -> Int -> (Dyadic, Int) | | wsub_ :: RoundMode -> Precision -> Word -> Dyadic -> (Dyadic, Int) | | isub_ :: RoundMode -> Precision -> Int -> Dyadic -> (Dyadic, Int) | | mul2w :: RoundMode -> Precision -> Dyadic -> Word -> Dyadic | | mul2i :: RoundMode -> Precision -> Dyadic -> Int -> Dyadic | | div2w :: RoundMode -> Precision -> Dyadic -> Word -> Dyadic | | div2i :: RoundMode -> Precision -> Dyadic -> Int -> Dyadic | | mul2w_ :: RoundMode -> Precision -> Dyadic -> Word -> (Dyadic, Int) | | mul2i_ :: RoundMode -> Precision -> Dyadic -> Int -> (Dyadic, Int) | | div2w_ :: RoundMode -> Precision -> Dyadic -> Word -> (Dyadic, Int) | | div2i_ :: RoundMode -> Precision -> Dyadic -> Int -> (Dyadic, Int) | | int2i :: RoundMode -> Precision -> Int -> Int -> Dyadic | | int2w :: RoundMode -> Precision -> Word -> Int -> Dyadic | | int2i_ :: RoundMode -> Precision -> Int -> Int -> (Dyadic, Int) | | int2w_ :: RoundMode -> Precision -> Word -> Int -> (Dyadic, Int) | | fma :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic -> Dyadic | | fms :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic -> Dyadic | | fma_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic -> (Dyadic, Int) | | fms_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic -> (Dyadic, Int) | | nextBelow :: Dyadic -> Dyadic | | sqr :: RoundMode -> Precision -> Dyadic -> Dyadic | | sqrt :: RoundMode -> Precision -> Dyadic -> Dyadic | | root :: RoundMode -> Precision -> Dyadic -> Word -> Dyadic | | pow :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic | | poww :: RoundMode -> Precision -> Dyadic -> Word -> Dyadic | | powi :: RoundMode -> Precision -> Dyadic -> Int -> Dyadic | | wpoww :: RoundMode -> Precision -> Word -> Word -> Dyadic | | wpow :: RoundMode -> Precision -> Word -> Dyadic -> Dyadic | | sqr_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) | | sqrt_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) | | root_ :: RoundMode -> Precision -> Dyadic -> Word -> (Dyadic, Int) | | pow_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> (Dyadic, Int) | | poww_ :: RoundMode -> Precision -> Dyadic -> Word -> (Dyadic, Int) | | powi_ :: RoundMode -> Precision -> Dyadic -> Int -> (Dyadic, Int) | | wpoww_ :: RoundMode -> Precision -> Word -> Word -> (Dyadic, Int) | | wpow_ :: RoundMode -> Precision -> Word -> Dyadic -> (Dyadic, Int) | | exp :: RoundMode -> Precision -> Dyadic -> Dyadic | | exp2 :: RoundMode -> Precision -> Dyadic -> Dyadic | | exp10 :: RoundMode -> Precision -> Dyadic -> Dyadic | | log :: RoundMode -> Precision -> Dyadic -> Dyadic | | log2 :: RoundMode -> Precision -> Dyadic -> Dyadic | | log10 :: RoundMode -> Precision -> Dyadic -> Dyadic | | sinh :: RoundMode -> Precision -> Dyadic -> Dyadic | | cosh :: RoundMode -> Precision -> Dyadic -> Dyadic | | tanh :: RoundMode -> Precision -> Dyadic -> Dyadic | | exp_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) | | exp2_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) | | exp10_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) | | log_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) | | log2_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) | | log10_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) | | sinh_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) | | cosh_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) | | tanh_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) | | neg :: RoundMode -> Precision -> Dyadic -> Dyadic | | absD :: RoundMode -> Precision -> Dyadic -> Dyadic | | dim :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic | | neg_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) | | absD_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) | | dim_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> (Dyadic, Int) | | isNaN :: Dyadic -> Bool | | isInfinite :: Dyadic -> Bool | | isNumber :: Dyadic -> Bool | | isZero :: Dyadic -> Bool | | greater :: Dyadic -> Dyadic -> Bool | | greatereq :: Dyadic -> Dyadic -> Bool | | less :: Dyadic -> Dyadic -> Bool | | lesseq :: Dyadic -> Dyadic -> Bool | | equal :: Dyadic -> Dyadic -> Bool | | maxD :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic | | minD :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic | | maxD_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> (Dyadic, Int) | | minD_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> (Dyadic, Int) | | sgn :: Dyadic -> Int | | dyadicToDouble :: RoundMode -> Dyadic -> Double | | dyadicToWord :: RoundMode -> Dyadic -> Word | | dyadicToInt :: RoundMode -> Dyadic -> Int | | dyadicToString :: RoundMode -> Word -> Word -> Dyadic -> (String, Int) | | decompose :: Dyadic -> (Integer, Int) | | toStringExp :: Word -> Dyadic -> String | | toString :: Word -> Dyadic -> String | | pi :: RoundMode -> Precision -> Dyadic | | log2c :: RoundMode -> Precision -> Dyadic | | euler :: RoundMode -> Precision -> Dyadic | | catalan :: RoundMode -> Precision -> Dyadic | | pi_ :: RoundMode -> Precision -> (Dyadic, Int) | | log2c_ :: RoundMode -> Precision -> (Dyadic, Int) | | euler_ :: RoundMode -> Precision -> (Dyadic, Int) | | catalan_ :: RoundMode -> Precision -> (Dyadic, Int) | | set :: RoundMode -> Precision -> Dyadic -> Dyadic | | set_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) | | fromDouble :: RoundMode -> Precision -> Double -> Dyadic | | fromInt :: RoundMode -> Precision -> Int -> Dyadic | | fromWord :: RoundMode -> Precision -> Word -> Dyadic | | fromDouble_ :: RoundMode -> Precision -> Double -> (Dyadic, Int) | | fromInt_ :: RoundMode -> Precision -> Int -> (Dyadic, Int) | | fromWord_ :: RoundMode -> Precision -> Word -> (Dyadic, Int) | | fromIntegerA :: RoundMode -> Precision -> Integer -> Dyadic | | compose :: RoundMode -> Precision -> (Integer, Int) -> Dyadic | | fromString :: String -> Precision -> Word -> Dyadic | | getPrec :: Dyadic -> Precision | | getMantissa :: Dyadic -> Integer | | getExp :: Dyadic -> Int | | minPrec :: Precision | | one :: Dyadic | | zero :: Dyadic | | addPrec :: Dyadic -> Dyadic -> Precision |
|
|
Documentation |
|
This module should always be imported qualified.
|
|
Naming
|
|
- functions ending with _ return a pair (value, rounding indicator).
Rounding indicator indicates whether the result is rounded and in which
directon as described in the MPFR manual.
- the same functions without the _ return just the value.
- functions with added "w" correspond to MPFR _ui functions
- functions with added "i" correspond to MPFR _si functions
|
|
Equality testing
|
|
Equality works as follows:
- NaN /= Nan,
- Infinity = Infinity,
- -Infinity = -Infinity
- otherwise normal comparison
|
|
Ordering
|
|
Ordering works as follows:
- compare NaN _ = GT
- compare _ NaN = GT
- infinity < _ = False
- -infinity > _ = False
- NaN [<,>,>=,<=] _ = False
This mimics the behaviour of built in haskell Float and Double.
|
|
Num instance
|
|
Operations defined in Num will be computed so that no precision is lost.
|
|
type Dyadic = MPFR_T |
|
type Precision = Word |
|
data RoundMode |
Constructors | | Instances | |
|
|
add :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic |
|
sub :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic |
|
mul :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic |
|
div :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic |
|
inverse :: Dyadic -> Dyadic |
|
add_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> (Dyadic, Int) |
|
sub_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> (Dyadic, Int) |
|
mul_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> (Dyadic, Int) |
|
div_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> (Dyadic, Int) |
|
addw :: RoundMode -> Precision -> Dyadic -> Word -> Dyadic |
|
addi :: RoundMode -> Precision -> Dyadic -> Int -> Dyadic |
|
mulw :: RoundMode -> Precision -> Dyadic -> Word -> Dyadic |
|
muli :: RoundMode -> Precision -> Dyadic -> Int -> Dyadic |
|
divw :: RoundMode -> Precision -> Dyadic -> Word -> Dyadic |
|
divi :: RoundMode -> Precision -> Dyadic -> Int -> Dyadic |
|
wdiv :: RoundMode -> Precision -> Word -> Dyadic -> Dyadic |
|
idiv :: RoundMode -> Precision -> Int -> Dyadic -> Dyadic |
|
subw :: RoundMode -> Precision -> Dyadic -> Word -> Dyadic |
|
subi :: RoundMode -> Precision -> Dyadic -> Int -> Dyadic |
|
wsub :: RoundMode -> Precision -> Word -> Dyadic -> Dyadic |
|
isub :: RoundMode -> Precision -> Int -> Dyadic -> Dyadic |
|
addw_ :: RoundMode -> Precision -> Dyadic -> Word -> (Dyadic, Int) |
|
addi_ :: RoundMode -> Precision -> Dyadic -> Int -> (Dyadic, Int) |
|
mulw_ :: RoundMode -> Precision -> Dyadic -> Word -> (Dyadic, Int) |
|
muli_ :: RoundMode -> Precision -> Dyadic -> Int -> (Dyadic, Int) |
|
divw_ :: RoundMode -> Precision -> Dyadic -> Word -> (Dyadic, Int) |
|
divi_ :: RoundMode -> Precision -> Dyadic -> Int -> (Dyadic, Int) |
|
wdiv_ :: RoundMode -> Precision -> Word -> Dyadic -> (Dyadic, Int) |
|
idiv_ :: RoundMode -> Precision -> Int -> Dyadic -> (Dyadic, Int) |
|
subw_ :: RoundMode -> Precision -> Dyadic -> Word -> (Dyadic, Int) |
|
subi_ :: RoundMode -> Precision -> Dyadic -> Int -> (Dyadic, Int) |
|
wsub_ :: RoundMode -> Precision -> Word -> Dyadic -> (Dyadic, Int) |
|
isub_ :: RoundMode -> Precision -> Int -> Dyadic -> (Dyadic, Int) |
|
mul2w :: RoundMode -> Precision -> Dyadic -> Word -> Dyadic |
|
mul2i :: RoundMode -> Precision -> Dyadic -> Int -> Dyadic |
|
div2w :: RoundMode -> Precision -> Dyadic -> Word -> Dyadic |
|
div2i :: RoundMode -> Precision -> Dyadic -> Int -> Dyadic |
|
mul2w_ :: RoundMode -> Precision -> Dyadic -> Word -> (Dyadic, Int) |
|
mul2i_ :: RoundMode -> Precision -> Dyadic -> Int -> (Dyadic, Int) |
|
div2w_ :: RoundMode -> Precision -> Dyadic -> Word -> (Dyadic, Int) |
|
div2i_ :: RoundMode -> Precision -> Dyadic -> Int -> (Dyadic, Int) |
|
int2i :: RoundMode -> Precision -> Int -> Int -> Dyadic |
|
int2w :: RoundMode -> Precision -> Word -> Int -> Dyadic |
|
int2i_ :: RoundMode -> Precision -> Int -> Int -> (Dyadic, Int) |
|
int2w_ :: RoundMode -> Precision -> Word -> Int -> (Dyadic, Int) |
|
fma :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic -> Dyadic |
|
fms :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic -> Dyadic |
|
fma_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic -> (Dyadic, Int) |
|
fms_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic -> (Dyadic, Int) |
|
nextBelow :: Dyadic -> Dyadic |
|
sqr :: RoundMode -> Precision -> Dyadic -> Dyadic |
|
sqrt :: RoundMode -> Precision -> Dyadic -> Dyadic |
|
root :: RoundMode -> Precision -> Dyadic -> Word -> Dyadic |
|
pow :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic |
|
poww :: RoundMode -> Precision -> Dyadic -> Word -> Dyadic |
|
powi :: RoundMode -> Precision -> Dyadic -> Int -> Dyadic |
|
wpoww :: RoundMode -> Precision -> Word -> Word -> Dyadic |
|
wpow :: RoundMode -> Precision -> Word -> Dyadic -> Dyadic |
|
sqr_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) |
|
sqrt_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) |
|
root_ :: RoundMode -> Precision -> Dyadic -> Word -> (Dyadic, Int) |
|
pow_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> (Dyadic, Int) |
|
poww_ :: RoundMode -> Precision -> Dyadic -> Word -> (Dyadic, Int) |
|
powi_ :: RoundMode -> Precision -> Dyadic -> Int -> (Dyadic, Int) |
|
wpoww_ :: RoundMode -> Precision -> Word -> Word -> (Dyadic, Int) |
|
wpow_ :: RoundMode -> Precision -> Word -> Dyadic -> (Dyadic, Int) |
|
exp :: RoundMode -> Precision -> Dyadic -> Dyadic |
|
exp2 :: RoundMode -> Precision -> Dyadic -> Dyadic |
|
exp10 :: RoundMode -> Precision -> Dyadic -> Dyadic |
|
log :: RoundMode -> Precision -> Dyadic -> Dyadic |
|
log2 :: RoundMode -> Precision -> Dyadic -> Dyadic |
|
log10 :: RoundMode -> Precision -> Dyadic -> Dyadic |
|
sinh :: RoundMode -> Precision -> Dyadic -> Dyadic |
|
cosh :: RoundMode -> Precision -> Dyadic -> Dyadic |
|
tanh :: RoundMode -> Precision -> Dyadic -> Dyadic |
|
exp_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) |
|
exp2_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) |
|
exp10_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) |
|
log_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) |
|
log2_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) |
|
log10_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) |
|
sinh_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) |
|
cosh_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) |
|
tanh_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) |
|
neg :: RoundMode -> Precision -> Dyadic -> Dyadic |
|
absD :: RoundMode -> Precision -> Dyadic -> Dyadic |
|
dim :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic |
|
neg_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) |
|
absD_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) |
|
dim_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> (Dyadic, Int) |
|
isNaN :: Dyadic -> Bool |
|
isInfinite :: Dyadic -> Bool |
|
isNumber :: Dyadic -> Bool |
|
isZero :: Dyadic -> Bool |
|
greater :: Dyadic -> Dyadic -> Bool |
|
greatereq :: Dyadic -> Dyadic -> Bool |
|
less :: Dyadic -> Dyadic -> Bool |
|
lesseq :: Dyadic -> Dyadic -> Bool |
|
equal :: Dyadic -> Dyadic -> Bool |
|
maxD :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic |
|
minD :: RoundMode -> Precision -> Dyadic -> Dyadic -> Dyadic |
|
maxD_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> (Dyadic, Int) |
|
minD_ :: RoundMode -> Precision -> Dyadic -> Dyadic -> (Dyadic, Int) |
|
sgn :: Dyadic -> Int |
|
dyadicToDouble :: RoundMode -> Dyadic -> Double |
|
dyadicToWord :: RoundMode -> Dyadic -> Word |
|
dyadicToInt :: RoundMode -> Dyadic -> Int |
|
dyadicToString |
:: RoundMode | | -> Word | number of significant digits
| -> Word | base
| -> Dyadic | | -> (String, Int) | |
|
|
decompose :: Dyadic -> (Integer, Int) |
|
toStringExp :: Word -> Dyadic -> String |
|
toString :: Word -> Dyadic -> String |
|
pi :: RoundMode -> Precision -> Dyadic |
|
log2c :: RoundMode -> Precision -> Dyadic |
|
euler :: RoundMode -> Precision -> Dyadic |
|
catalan :: RoundMode -> Precision -> Dyadic |
|
pi_ :: RoundMode -> Precision -> (Dyadic, Int) |
|
log2c_ :: RoundMode -> Precision -> (Dyadic, Int) |
|
euler_ :: RoundMode -> Precision -> (Dyadic, Int) |
|
catalan_ :: RoundMode -> Precision -> (Dyadic, Int) |
|
set :: RoundMode -> Precision -> Dyadic -> Dyadic |
|
set_ :: RoundMode -> Precision -> Dyadic -> (Dyadic, Int) |
|
fromDouble :: RoundMode -> Precision -> Double -> Dyadic |
|
fromInt :: RoundMode -> Precision -> Int -> Dyadic |
|
fromWord :: RoundMode -> Precision -> Word -> Dyadic |
|
fromDouble_ :: RoundMode -> Precision -> Double -> (Dyadic, Int) |
|
fromInt_ :: RoundMode -> Precision -> Int -> (Dyadic, Int) |
|
fromWord_ :: RoundMode -> Precision -> Word -> (Dyadic, Int) |
|
fromIntegerA :: RoundMode -> Precision -> Integer -> Dyadic |
|
compose :: RoundMode -> Precision -> (Integer, Int) -> Dyadic |
|
fromString :: String -> Precision -> Word -> Dyadic |
|
getPrec :: Dyadic -> Precision |
|
getMantissa :: Dyadic -> Integer |
getMantissa and getExp return values such that
d = getMantissa d * 2^(getExp d - ceiling ((getPrec d) / bitsPerMPLimb)* bitsPerMPLimb )
|
|
getExp :: Dyadic -> Int |
|
minPrec :: Precision |
|
one :: Dyadic |
|
zero :: Dyadic |
|
addPrec :: Dyadic -> Dyadic -> Precision |
|
Produced by Haddock version 2.2.2 |