module Data.Number.MPFR.Mutable.Misc where
import Data.Number.MPFR.Mutable.Internal
import Control.Monad.ST(ST)
nextAbove :: MMPFR s -> ST s ()
nextAbove = withMutableMPFRSNRNR mpfr_nextabove
nextbelow :: MMPFR s -> ST s ()
nextbelow = withMutableMPFRSNRNR mpfr_nextbelow
max :: MMPFR s -> MMPFR s -> MMPFR s -> RoundMode -> ST s Int
max = withMutableMPFRBA mpfr_max
min :: MMPFR s -> MMPFR s -> MMPFR s -> RoundMode -> ST s Int
min = withMutableMPFRBA mpfr_min
getExp :: MMPFR s -> ST s Exp
getExp m = unsafeFreeze m >>= return . \(MP _ _ e _) -> e
getPrec :: MMPFR s -> ST s Precision
getPrec m = unsafeFreeze m >>= return . \(MP p _ _ _) -> fromIntegral p