vyre 0.4.0

GPU compute intermediate representation with a standard operation library
Documentation
# Polynomial rolling hash reference vectors for base 257 and window size 4.
# Digest hex is the canonical big-endian presentation of the numeric U32.

base = 257
window_size = 4
invariant = "rolling(extend(s, c)) == rolling_update(rolling(s), c)"
rolling_update = "next = previous * 257 + c, wrapping in U32"

[[vectors]]
name = "zero_window"
input_hex = "00000000"
expected_digest_hex = "00000000"
prefix_digest_hex = "00000000"
extension_byte_hex = "00"

[[vectors]]
name = "single_increment"
input_hex = "00000001"
expected_digest_hex = "00000001"
prefix_digest_hex = "00000000"
extension_byte_hex = "01"

[[vectors]]
name = "binary_01020304"
input_hex = "01020304"
expected_digest_hex = "01050a0a"
prefix_digest_hex = "00010206"
extension_byte_hex = "04"

[[vectors]]
name = "ascii_abcd"
input_hex = "61626364"
expected_digest_hex = "62874b8a"
prefix_digest_hex = "0061c504"
extension_byte_hex = "64"