crc

object crc

Provides support for calculating cyclic redundancy checks.

See also
class Object
trait Matchable
class Any

Type members

Classlikes

sealed
trait CrcBuilder[R]

An immutable "builder" to incrementally compute a CRC.

An immutable "builder" to incrementally compute a CRC.

Value members

Concrete methods

def apply(poly: BitVector, initial: BitVector, reflectInput: Boolean, reflectOutput: Boolean, finalXor: BitVector): BitVector => BitVector

Constructs a table-based CRC function using the specified polynomial.

Constructs a table-based CRC function using the specified polynomial.

Each of the input vectors must be the same size.

Returns

function that calculates a n-bit CRC where n = poly.size

def bitwise(poly: BitVector, initial: BitVector, reflectInput: Boolean, reflectOutput: Boolean, finalXor: BitVector, value: BitVector): BitVector

Calculates a bitwise CRC of the specified value.

Calculates a bitwise CRC of the specified value.

If calculating a lot of CRCs, prefer the apply method, which precomputes a lookup table and uses it in each CRC calculation.

Returns

function that calculates a n-bit CRC where n = poly.size

def builder(poly: BitVector, initial: BitVector, reflectInput: Boolean, reflectOutput: Boolean, finalXor: BitVector): CrcBuilder[BitVector]

Constructs a table-based CRC builder using the specified polynomial.

Constructs a table-based CRC builder using the specified polynomial.

def builder32(poly: Int, initial: Int, reflectInput: Boolean, reflectOutput: Boolean, finalXor: Int): CrcBuilder[Int]

Constructs a 32-bit, table-based CRC builder using the specified polynomial.

Constructs a 32-bit, table-based CRC builder using the specified polynomial.

def int32(poly: Int, initial: Int, reflectInput: Boolean, reflectOutput: Boolean, finalXor: Int): BitVector => Int

Constructs a 32-bit, table-based CRC function using the specified polynomial.

Constructs a 32-bit, table-based CRC function using the specified polynomial.

Returns

function that calculates a 32-bit CRC

Concrete fields

lazy
val crc32: BitVector => BitVector

32-bit CRC using poly 0x04c11db7, initial 0xffffffff, reflected input/output, and final xor 0xffffffff.

32-bit CRC using poly 0x04c11db7, initial 0xffffffff, reflected input/output, and final xor 0xffffffff.

lazy
val crc32Builder: CrcBuilder[BitVector]

Builder for 32-bit CRC using poly 0x04c11db7, initial 0xffffffff, reflected input/output, and final xor 0xffffffff.

Builder for 32-bit CRC using poly 0x04c11db7, initial 0xffffffff, reflected input/output, and final xor 0xffffffff.

lazy
val crc32c: BitVector => BitVector

32-bit CRC using poly 0x1edc6f41, initial 0xffffffff, reflected input/output, and final xor 0xffffffff.

32-bit CRC using poly 0x1edc6f41, initial 0xffffffff, reflected input/output, and final xor 0xffffffff.

lazy
val crc32cBuilder: CrcBuilder[BitVector]

Builder for 32-bit CRC using poly 0x1edc6f41, initial 0xffffffff, reflected input/output, and final xor 0xffffffff.

Builder for 32-bit CRC using poly 0x1edc6f41, initial 0xffffffff, reflected input/output, and final xor 0xffffffff.