Copyright | (c) 2013-2020 Galois Inc. |
---|---|
License | BSD3 |
Maintainer | cryptol@galois.com |
Stability | provisional |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Synopsis
- data BV = BV !Integer !Integer
- binBV :: Applicative m => (Integer -> Integer -> Integer) -> BV -> BV -> m BV
- unaryBV :: (Integer -> Integer) -> BV -> BV
- bvVal :: BV -> Integer
- ppBV :: PPOpts -> BV -> Doc
- mkBv :: Integer -> Integer -> BV
- mask :: Integer -> Integer -> Integer
- signedBV :: BV -> Integer
- signedValue :: Integer -> Integer -> Integer
- integerToChar :: Integer -> Char
- lg2 :: Integer -> Integer
- data Concrete = Concrete
- liftBinIntMod :: Monad m => (Integer -> Integer -> Integer) -> Integer -> Integer -> Integer -> m Integer
- fpBinArith :: (BFOpts -> BigFloat -> BigFloat -> (BigFloat, Status)) -> Concrete -> SWord Concrete -> SFloat Concrete -> SFloat Concrete -> SEval Concrete (SFloat Concrete)
- fpRoundMode :: Concrete -> SWord Concrete -> SEval Concrete RoundMode
Documentation
Concrete bitvector values: width, value Invariant: The value must be within the range 0 .. 2^width-1
binBV :: Applicative m => (Integer -> Integer -> Integer) -> BV -> BV -> m BV Source #
Apply an integer function to the values of bitvectors. This function assumes both bitvectors are the same width.
unaryBV :: (Integer -> Integer) -> BV -> BV Source #
Apply an integer function to the values of a bitvector. This function assumes the function will not require masking.
integerToChar :: Integer -> Char Source #
Instances
liftBinIntMod :: Monad m => (Integer -> Integer -> Integer) -> Integer -> Integer -> Integer -> m Integer Source #