hmpfr-0.4.4: Haskell binding to the MPFR library

Copyright(c) Aleš Bizjak
LicenseBSD3
Maintainermikkonecny@gmail.com
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell98

Data.Number.MPFR

Contents

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

Documentation

data MPFR #

Instances
Eq MPFR # 
Instance details

Defined in Data.Number.MPFR.Comparison

Methods

(==) :: MPFR -> MPFR -> Bool #

(/=) :: MPFR -> MPFR -> Bool #

Floating MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Zero

Methods

pi :: MPFR #

exp :: MPFR -> MPFR #

log :: MPFR -> MPFR #

sqrt :: MPFR -> MPFR #

(**) :: MPFR -> MPFR -> MPFR #

logBase :: MPFR -> MPFR -> MPFR #

sin :: MPFR -> MPFR #

cos :: MPFR -> MPFR #

tan :: MPFR -> MPFR #

asin :: MPFR -> MPFR #

acos :: MPFR -> MPFR #

atan :: MPFR -> MPFR #

sinh :: MPFR -> MPFR #

cosh :: MPFR -> MPFR #

tanh :: MPFR -> MPFR #

asinh :: MPFR -> MPFR #

acosh :: MPFR -> MPFR #

atanh :: MPFR -> MPFR #

log1p :: MPFR -> MPFR #

expm1 :: MPFR -> MPFR #

log1pexp :: MPFR -> MPFR #

log1mexp :: MPFR -> MPFR #

Floating MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Up

Methods

pi :: MPFR #

exp :: MPFR -> MPFR #

log :: MPFR -> MPFR #

sqrt :: MPFR -> MPFR #

(**) :: MPFR -> MPFR -> MPFR #

logBase :: MPFR -> MPFR -> MPFR #

sin :: MPFR -> MPFR #

cos :: MPFR -> MPFR #

tan :: MPFR -> MPFR #

asin :: MPFR -> MPFR #

acos :: MPFR -> MPFR #

atan :: MPFR -> MPFR #

sinh :: MPFR -> MPFR #

cosh :: MPFR -> MPFR #

tanh :: MPFR -> MPFR #

asinh :: MPFR -> MPFR #

acosh :: MPFR -> MPFR #

atanh :: MPFR -> MPFR #

log1p :: MPFR -> MPFR #

expm1 :: MPFR -> MPFR #

log1pexp :: MPFR -> MPFR #

log1mexp :: MPFR -> MPFR #

Floating MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Near

Methods

pi :: MPFR #

exp :: MPFR -> MPFR #

log :: MPFR -> MPFR #

sqrt :: MPFR -> MPFR #

(**) :: MPFR -> MPFR -> MPFR #

logBase :: MPFR -> MPFR -> MPFR #

sin :: MPFR -> MPFR #

cos :: MPFR -> MPFR #

tan :: MPFR -> MPFR #

asin :: MPFR -> MPFR #

acos :: MPFR -> MPFR #

atan :: MPFR -> MPFR #

sinh :: MPFR -> MPFR #

cosh :: MPFR -> MPFR #

tanh :: MPFR -> MPFR #

asinh :: MPFR -> MPFR #

acosh :: MPFR -> MPFR #

atanh :: MPFR -> MPFR #

log1p :: MPFR -> MPFR #

expm1 :: MPFR -> MPFR #

log1pexp :: MPFR -> MPFR #

log1mexp :: MPFR -> MPFR #

Floating MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Down

Methods

pi :: MPFR #

exp :: MPFR -> MPFR #

log :: MPFR -> MPFR #

sqrt :: MPFR -> MPFR #

(**) :: MPFR -> MPFR -> MPFR #

logBase :: MPFR -> MPFR -> MPFR #

sin :: MPFR -> MPFR #

cos :: MPFR -> MPFR #

tan :: MPFR -> MPFR #

asin :: MPFR -> MPFR #

acos :: MPFR -> MPFR #

atan :: MPFR -> MPFR #

sinh :: MPFR -> MPFR #

cosh :: MPFR -> MPFR #

tanh :: MPFR -> MPFR #

asinh :: MPFR -> MPFR #

acosh :: MPFR -> MPFR #

atanh :: MPFR -> MPFR #

log1p :: MPFR -> MPFR #

expm1 :: MPFR -> MPFR #

log1pexp :: MPFR -> MPFR #

log1mexp :: MPFR -> MPFR #

Fractional MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Zero

Methods

(/) :: MPFR -> MPFR -> MPFR #

recip :: MPFR -> MPFR #

fromRational :: Rational -> MPFR #

Fractional MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Up

Methods

(/) :: MPFR -> MPFR -> MPFR #

recip :: MPFR -> MPFR #

fromRational :: Rational -> MPFR #

Fractional MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Near

Methods

(/) :: MPFR -> MPFR -> MPFR #

recip :: MPFR -> MPFR #

fromRational :: Rational -> MPFR #

Fractional MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Down

Methods

(/) :: MPFR -> MPFR -> MPFR #

recip :: MPFR -> MPFR #

fromRational :: Rational -> MPFR #

Num MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Zero

Methods

(+) :: MPFR -> MPFR -> MPFR #

(-) :: MPFR -> MPFR -> MPFR #

(*) :: MPFR -> MPFR -> MPFR #

negate :: MPFR -> MPFR #

abs :: MPFR -> MPFR #

signum :: MPFR -> MPFR #

fromInteger :: Integer -> MPFR #

Num MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Up

Methods

(+) :: MPFR -> MPFR -> MPFR #

(-) :: MPFR -> MPFR -> MPFR #

(*) :: MPFR -> MPFR -> MPFR #

negate :: MPFR -> MPFR #

abs :: MPFR -> MPFR #

signum :: MPFR -> MPFR #

fromInteger :: Integer -> MPFR #

Num MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Near

Methods

(+) :: MPFR -> MPFR -> MPFR #

(-) :: MPFR -> MPFR -> MPFR #

(*) :: MPFR -> MPFR -> MPFR #

negate :: MPFR -> MPFR #

abs :: MPFR -> MPFR #

signum :: MPFR -> MPFR #

fromInteger :: Integer -> MPFR #

Num MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Down

Methods

(+) :: MPFR -> MPFR -> MPFR #

(-) :: MPFR -> MPFR -> MPFR #

(*) :: MPFR -> MPFR -> MPFR #

negate :: MPFR -> MPFR #

abs :: MPFR -> MPFR #

signum :: MPFR -> MPFR #

fromInteger :: Integer -> MPFR #

Ord MPFR # 
Instance details

Defined in Data.Number.MPFR.Comparison

Methods

compare :: MPFR -> MPFR -> Ordering #

(<) :: MPFR -> MPFR -> Bool #

(<=) :: MPFR -> MPFR -> Bool #

(>) :: MPFR -> MPFR -> Bool #

(>=) :: MPFR -> MPFR -> Bool #

max :: MPFR -> MPFR -> MPFR #

min :: MPFR -> MPFR -> MPFR #

Real MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Zero

Methods

toRational :: MPFR -> Rational #

Real MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Up

Methods

toRational :: MPFR -> Rational #

Real MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Near

Methods

toRational :: MPFR -> Rational #

Real MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Down

Methods

toRational :: MPFR -> Rational #

RealFloat MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Zero

RealFloat MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Up

RealFloat MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Near

RealFloat MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Down

RealFrac MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Zero

Methods

properFraction :: Integral b => MPFR -> (b, MPFR) #

truncate :: Integral b => MPFR -> b #

round :: Integral b => MPFR -> b #

ceiling :: Integral b => MPFR -> b #

floor :: Integral b => MPFR -> b #

RealFrac MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Up

Methods

properFraction :: Integral b => MPFR -> (b, MPFR) #

truncate :: Integral b => MPFR -> b #

round :: Integral b => MPFR -> b #

ceiling :: Integral b => MPFR -> b #

floor :: Integral b => MPFR -> b #

RealFrac MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Near

Methods

properFraction :: Integral b => MPFR -> (b, MPFR) #

truncate :: Integral b => MPFR -> b #

round :: Integral b => MPFR -> b #

ceiling :: Integral b => MPFR -> b #

floor :: Integral b => MPFR -> b #

RealFrac MPFR # 
Instance details

Defined in Data.Number.MPFR.Instances.Down

Methods

properFraction :: Integral b => MPFR -> (b, MPFR) #

truncate :: Integral b => MPFR -> b #

round :: Integral b => MPFR -> b #

ceiling :: Integral b => MPFR -> b #

floor :: Integral b => MPFR -> b #

Show MPFR # 
Instance details

Defined in Data.Number.MPFR.Conversion

Methods

showsPrec :: Int -> MPFR -> ShowS #

show :: MPFR -> String #

showList :: [MPFR] -> ShowS #

Generic MPFR # 
Instance details

Defined in Data.Number.MPFR.FFIhelper

Associated Types

type Rep MPFR :: * -> * #

Methods

from :: MPFR -> Rep MPFR x #

to :: Rep MPFR x -> MPFR #

Storable MPFR # 
Instance details

Defined in Data.Number.MPFR.FFIhelper

Methods

sizeOf :: MPFR -> Int #

alignment :: MPFR -> Int #

peekElemOff :: Ptr MPFR -> Int -> IO MPFR #

pokeElemOff :: Ptr MPFR -> Int -> MPFR -> IO () #

peekByteOff :: Ptr b -> Int -> IO MPFR #

pokeByteOff :: Ptr b -> Int -> MPFR -> IO () #

peek :: Ptr MPFR -> IO MPFR #

poke :: Ptr MPFR -> MPFR -> IO () #

type Rep MPFR # 
Instance details

Defined in Data.Number.MPFR.FFIhelper

type Rep MPFR = D1 (MetaData "MPFR" "Data.Number.MPFR.FFIhelper" "hmpfr-0.4.4-KfmVnLltHtMIge4kApZiX2" False) (C1 (MetaCons "MP" PrefixI True) ((S1 (MetaSel (Just "precision") SourceUnpack SourceStrict DecidedStrict) (Rec0 CPrecision) :*: S1 (MetaSel (Just "sign") SourceUnpack SourceStrict DecidedStrict) (Rec0 Sign)) :*: (S1 (MetaSel (Just "exponent") SourceUnpack SourceStrict DecidedStrict) (Rec0 Exp) :*: S1 (MetaSel (Just "limbs") SourceUnpack SourceStrict DecidedStrict) (Rec0 (ForeignPtr Limb)))))

data Precision #

Instances
Enum Precision # 
Instance details

Defined in Data.Number.MPFR.FFIhelper

Eq Precision # 
Instance details

Defined in Data.Number.MPFR.FFIhelper

Integral Precision # 
Instance details

Defined in Data.Number.MPFR.FFIhelper

Num Precision # 
Instance details

Defined in Data.Number.MPFR.FFIhelper

Ord Precision # 
Instance details

Defined in Data.Number.MPFR.FFIhelper

Real Precision # 
Instance details

Defined in Data.Number.MPFR.FFIhelper

Show Precision # 
Instance details

Defined in Data.Number.MPFR.FFIhelper

type Exp = Int64 #

type MpSize = Int64 #

Assignment functions

See http://www.mpfr.org/mpfr-current/mpfr.html#Assignment-Functions documentation on particular functions.

Conversion functions

See http://www.mpfr.org/mpfr-current/mpfr.html#Conversion-Functions documentation on particular functions.

Basic arithmetic functions

For documentation on particular functions see http://www.mpfr.org/mpfr-current/mpfr.html#Basic-Arithmetic-Functions.

Comparison functions

For documentation on particular functions see http://www.mpfr.org/mpfr-current/mpfr.html#Comparison-Functions

Special functions

For documentation on particular functions see http://www.mpfr.org/mpfr-current/mpfr.html#Special-Functions.

Integer related functions

Miscellaneous functions

For documentation on particular functions see http://www.mpfr.org/mpfr-current/mpfr.html#Miscellaneous-Functions.