ktonon/elm-word

Unsigned 32 or 64 bit integers and related operations


License
MIT
Install
elm-package install ktonon/elm-word 2.1.1

Documentation

elm-word

elm-package CircleCI

Unsigned 32 or 64 bit integers and related operations.

Use the Word type to hold either 32 or 64 bit unsigned integers. Use the exposed type constructors W (for "word") and D (for "double word") to store values as words.

import Word exposing (Word(D, W))

Operations

The following operations are provided.

  • add - modulo addition
  • and - bitwise and
  • xor - bitwise xor
  • complement - bitwise inversion
  • rotateRightBy - rotate right
  • shiftRightZfBy - logical shift right

Note that the set of operations is the minimal required to implement SHA-2.

Examples

Addition of words is modulo 32 bits.

add (W 0x80000000)
    (W 0x80000003)
--> W 3

Addition of double words is modulo 64 bits.

add (D 0 0xFFFFFFFF)
    (D 0 1)
--> D 1 0

Large Values in Elm

Double words are stored as two 32 bit values because Elm makes arithmetic mistakes with larger values. For example, try typing this into the elm repl:

$ elm repl

---- elm-repl 0.18.0 -----------------------------------------------------------

> 2 ^ 60 + 55 == 2 ^ 60
True : Bool

Related Libraries