multiplyBinaryFixedPoint function

BinaryFixedPoint multiplyBinaryFixedPoint(
  1. BinaryFixedPoint a,
  2. Object b, [
  3. FixedPointRoundingMode rounding = FixedPointRoundingMode.strict
])

Multiplies a by b and returns a value with a's shape.

When b is another BinaryFixedPoint, it must have the same signedness; its fractional bit count is used to rescale the product back to a's fractional bits.

Implementation

BinaryFixedPoint multiplyBinaryFixedPoint(
  BinaryFixedPoint a,
  Object b, [
  FixedPointRoundingMode rounding = FixedPointRoundingMode.strict,
]) {
  final raw = switch (b) {
    final BigInt scalar => a.raw * scalar,
    final BinaryFixedPoint value => _multiplyByFixedPoint(a, value, rounding),
    _ => throw ArgumentError.value(
      b,
      'b',
      'Expected BigInt or BinaryFixedPoint.',
    ),
  };
  return _withBinaryRaw(a, raw);
}