Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data Signed n
- resizeS_wrap :: KnownNat m => Signed n -> Signed m
Documentation
Arbitrary-width signed integer represented by n
bits, including the sign bit.
Uses standard 2-complements representation. Meaning that, given n
bits,
a Signed
n
number has a range of: [-(2^(n
-1)) .. 2^(n
-1)-1]
NB: The Num
operators perform wrap-around
on overflow. If you want saturation
on overflow, check out the satN2
function in CLaSH.Sized.Fixed.
Resize Signed | A sign-preserving resize operation Increasing the size of the number replicates the sign bit to the left. Truncating a number to length L keeps the sign bit and the rightmost L-1 bits. |
KnownNat n => Bounded (Signed n) | |
KnownNat n => Enum (Signed n) | |
Eq (Signed n) | |
KnownNat n => Integral (Signed n) | |
KnownNat n => Num (Signed n) | Operators do |
Ord (Signed n) | |
KnownNat n => Real (Signed n) | |
Show (Signed n) | |
KnownNat n => Bits (Signed n) | |
KnownNat n => FiniteBits (Signed n) | |
KnownNat n => Default (Signed n) | |
KnownNat n => Lift (Signed n) | |
BitVector (Signed n) | |
Pack (Signed n) | |
CPack (Signed n) | |
KnownNat ((+) m n) => Mult (Signed m) (Signed n) | |
KnownNat (Max m n) => Add (Signed m) (Signed n) | |
Typeable (Nat -> *) Signed | |
type CSignalP clk (Signed n) = CSignal clk (Signed n) | |
type BitSize (Signed n) = n | |
type SignalP (Signed n) = Signal (Signed n) | |
type MResult (Signed m) (Signed n) = Signed ((+) m n) | |
type AResult (Signed m) (Signed n) = Signed (Max m n) |
resizeS_wrap :: KnownNat m => Signed n -> Signed m Source
A resize operation that is sign-preserving on extension, but wraps on truncation.
Increasing the size of the number replicates the sign bit to the left. Truncating a number of length N to a length L just removes the leftmost N-L bits.