ParametricCrc constructor
ParametricCrc(
- int width,
- Comparable _polynomial,
- dynamic _initialValue,
- dynamic _finalMask, {
- bool inputReflected = true,
- bool outputReflected = true,
Implementation
ParametricCrc(
int width, this._polynomial, this._initialValue, this._finalMask,
{bool inputReflected = true, bool outputReflected = true})
: _inputReflected = inputReflected,
_outputReflected = outputReflected,
assert((!shouldUseBigInt(width) &&
_polynomial is int &&
_initialValue is int &&
_finalMask is int) ||
(shouldUseBigInt(width) &&
_polynomial is BigInt &&
_initialValue is BigInt &&
_finalMask is BigInt)),
super(width) {
// TODO
assert(_inputReflected == _outputReflected,
'Different input and output reflection flag is not supported yet.');
assert((width % 8) == 0, 'Bit level checksums not supported yet.');
final key = Tuple2(_polynomial, _inputReflected);
_table = _generatedTables.putIfAbsent(
key, () => createByteLookupTable(width, _polynomial, _inputReflected));
}