toKey method

List<int> toKey(
  1. int index
)

Converts an offset to a key, that is a list of indices.

Implementation

List<int> toKey(int index) {
  var value = index - offset;
  final key = DataType.integer.newList(rank);
  for (var i = 0; i < rank; i++) {
    final div = value ~/ strides[i], rem = div % shape[i];
    value -= (key[i] = rem) * strides[i];
  }
  assert(value == 0, 'Invalid index $index');
  return key;
}