diff options
Diffstat (limited to 'libraries/integer-gmp')
-rw-r--r-- | libraries/integer-gmp/src/GHC/Integer/GMP/Internals.hs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/libraries/integer-gmp/src/GHC/Integer/GMP/Internals.hs b/libraries/integer-gmp/src/GHC/Integer/GMP/Internals.hs index cc1068ba10..2fcb0750ed 100644 --- a/libraries/integer-gmp/src/GHC/Integer/GMP/Internals.hs +++ b/libraries/integer-gmp/src/GHC/Integer/GMP/Internals.hs @@ -32,6 +32,7 @@ module GHC.Integer.GMP.Internals , gcdExtInteger , lcmInteger , sqrInteger + , powModInteger , recipModInteger -- ** Additional conversion operations to 'Integer' @@ -189,10 +190,16 @@ sqrInteger = I.integerSqr {-# DEPRECATED recipModInteger "Use integerRecipMod# instead" #-} recipModInteger :: Integer -> Integer -> Integer -recipModInteger x m = case I.integerRecipMod# x m of - (# y | #) -> y +recipModInteger x m = case I.integerRecipMod# x (I.integerToNatural m) of + (# y | #) -> I.integerFromNatural y (# | () #) -> 0 +{-# DEPRECATED powModInteger "Use integerPowMod# instead" #-} +powModInteger :: Integer -> Integer -> Integer -> Integer +powModInteger b e m = case I.integerPowMod# b e (I.integerToNatural m) of + (# r | #) -> I.integerFromNatural r + (# | () #) -> 0 + {-# DEPRECATED wordToNegInteger "Use integerFromWordNeg# instead" #-} wordToNegInteger :: Word# -> Integer wordToNegInteger = I.integerFromWordNeg# |