SparseVector.fromBinary constructor

SparseVector.fromBinary(
  1. Uint8List bytes
)

Creates a SparseVector from its binary representation.

Implementation

factory SparseVector.fromBinary(Uint8List bytes) {
  var buf = ByteData.view(bytes.buffer, bytes.offsetInBytes);
  var dimensions = buf.getInt32(0);
  var nnz = buf.getInt32(4);

  var unused = buf.getInt32(8);
  if (unused != 0) {
    throw const FormatException('Expected unused to be 0.');
  }

  var indices = <int>[];
  for (var i = 0; i < nnz; i++) {
    indices.add(buf.getInt32(12 + i * 4));
  }

  var values = <double>[];
  for (var i = 0; i < nnz; i++) {
    values.add(buf.getFloat32(12 + nnz * 4 + i * 4));
  }

  return SparseVector._(dimensions, indices, values);
}