Multiply static method

List<int> Multiply(
  1. LexoNumeralSystem sys,
  2. List<int> l,
  3. List<int> r
)

Implementation

static List<int> Multiply(LexoNumeralSystem sys, List<int> l, List<int> r) {
  final result = List<int>.filled(l.length + r.length, 0);
  for (var li = 0; li < l.length; ++li) {
    for (var ri = 0; ri < r.length; ++ri) {
      final resultIndex = li + ri;
      for (result[resultIndex] += l[li] * r[ri];
          result[resultIndex] >= sys.getBase();
          result[resultIndex] -= sys.getBase()) {
        ++result[resultIndex + 1];
      }
    }
  }
  return result;
}