FloatingPointRounder constructor
- Logic inp,
- int lsb, {
- required FloatingPointRoundingMode roundingMode,
- Logic? sign,
- Logic? extraSticky,
Determines rounding for inp, retaining bits from lsb upward.
extraSticky includes discarded information no longer present in inp.
sign is required for the directed rounding modes.
Implementation
FloatingPointRounder(Logic inp, int lsb,
{required FloatingPointRoundingMode roundingMode,
Logic? sign,
Logic? extraSticky}) {
if (lsb < 0 || lsb >= inp.width) {
throw RangeError.range(lsb, 0, inp.width - 1, 'lsb');
}
_configure(
retainedLsb: inp[lsb],
guard: (lsb > 0) ? inp[lsb - 1] : Const(0),
roundBit: (lsb > 1) ? inp[lsb - 2] : Const(0),
sticky: (lsb > 2) ? inp.getRange(0, lsb - 2).or() : Const(0),
extraSticky: extraSticky,
roundingMode: roundingMode,
sign: sign);
}