add method

void add(
  1. Object? id,
  2. Vector v
)

Add v under key id. Dim must match dim.

Implementation

void add(Object? id, Vector v) {
  if (v.dim != dim) {
    throw StateError(
      'FlatIndex.add: vector dim ${v.dim} != index dim $dim',
    );
  }
  final n = _ids.length;
  final needed = (n + 1) * dim;
  if (_data.length < needed) {
    // Grow geometrically, minimum 16 rows.
    final newRows = math.max(n * 2, 16);
    final grown = Float32List(newRows * dim);
    grown.setRange(0, n * dim, _data);
    _data = grown;
  }
  _data.setRange(n * dim, (n + 1) * dim, v.values);
  _ids.add(id);
}