bv-sized: a BitVector datatype that is parameterized by the vector width

[ bit-vectors, bsd3, library ] [ Propose Tags ]

This module defines a width-parameterized BitVector type and various associated operations that assume a 2's complement representation.


[Skip to Readme]

Modules

[Last Documentation]

  • Data
    • BitVector
      • Data.BitVector.Sized
        • Data.BitVector.Sized.App
        • Data.BitVector.Sized.BitLayout

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.1.1.0, 0.1.1.1, 0.2.0, 0.2.1, 0.3.0, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5
Change log changelog.md
Dependencies base (>=4.7 && <5), containers (>=0.5.10 && <0.6), lens (>=4 && <5), mtl (>=2 && <3), parameterized-utils, pretty, QuickCheck (>=2.11 && <2.12), random (>=1.1 && <1.2) [details]
License BSD-3-Clause
Copyright Galois Inc., Ben Selfridge March 2018
Author Ben Selfridge
Maintainer benselfridge@galois.com
Category Bit Vectors
Home page https://github.com/GaloisInc/bv-sized
Uploaded by benselfridge at 2019-03-23T23:13:33Z
Distributions Arch:1.0.5, NixOS:1.0.5
Reverse Dependencies 11 direct, 7 indirect [details]
Downloads 11058 total (77 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2019-03-23 [all 2 reports]

Readme for bv-sized-0.6.0

[back to package description]

bv-sized - A Haskell library for manipulating width-parameterized bitvectors

copyright (c) Ben Selfridge, Galois Inc. 2018

This library defines a BitVector datatype that is parameterized by the vector width.

Requirements

The following are a list of mandatory and secondary requirements for bv-sized.

Mandatory Requirements

  • Must support integer arithmetic on bitvectors of arbitrary width, assuming a two's-complement representation.

  • Must support the construction of symbolic expressions involving bitvectors, and evaluating those expressions in such a way that the "pure" bitvector expression language can be embedded in a larger expression language. (See Data.BitVector.Sized.App)

  • Declarative descriptions of bit encodings within an instruction word for the purposes of ISA definitions and the like. (See Data.BitVector.Sized.BitLayout)

Secondary Requirements

None.

Current Status

The library is relatively stable and supports all the above requirements.

Other information