Repository : ssh://darcs.haskell.org//srv/darcs/packages/integer-simple On branch : master
http://hackage.haskell.org/trac/ghc/changeset/d5ee098c0e801fbd2590a526c0cb30d5935a36fd >--------------------------------------------------------------- commit d5ee098c0e801fbd2590a526c0cb30d5935a36fd Author: Ian Lynagh <[email protected]> Date: Sun Aug 5 15:56:00 2012 +0100 Define testBitInteger; part of #3489. Patch from [email protected] >--------------------------------------------------------------- GHC/Integer.hs | 2 +- GHC/Integer/Type.hs | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletions(-) diff --git a/GHC/Integer.hs b/GHC/Integer.hs index 4122d38..3bc8f16 100644 --- a/GHC/Integer.hs +++ b/GHC/Integer.hs @@ -33,7 +33,7 @@ module GHC.Integer ( encodeDoubleInteger, decodeDoubleInteger, doubleFromInteger, -- gcdInteger, lcmInteger, -- XXX andInteger, orInteger, xorInteger, complementInteger, - shiftLInteger, shiftRInteger, + shiftLInteger, shiftRInteger, testInteger, hashInteger, ) where diff --git a/GHC/Integer/Type.hs b/GHC/Integer/Type.hs index 67ed19c..ee2c08f 100644 --- a/GHC/Integer/Type.hs +++ b/GHC/Integer/Type.hs @@ -314,6 +314,13 @@ shiftRInteger j@(Negative _) i = complementInteger (shiftRInteger (complementInteger j) i) shiftRInteger Naught _ = Naught +-- XXX this could be a lot more efficient, but this is a quick +-- reimplementation of the default Data.Bits instance, so that we can +-- implement the Integer interface +testBitInteger :: Integer -> Int# -> Bool +testBitInteger x i = (x `andInteger` (smallInteger 1# `shiftLInteger` i)) + `neqInteger` smallInteger 0# + twosComplementPositive :: Positive -> DigitsOnes twosComplementPositive p = flipBits (p `minusPositive` onePositive) _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
