Skip to content

PointData Design Document

JulianThijssen edited this page Apr 13, 2026 · 19 revisions

Requirements

Functional

Non-functional

API Design

Basic API

Scalar access

Proposed signature

float valueAt(size_t row, size_t col) const;

Example usage

float x = dataset.valueAt(1, 3);

Row access

Proposed signature

std::vector<float> row(size_t row) const;

Column access

Proposed signature

std::vector<float> column(size_t col) const;

Subset creation

Proposed signature

View selectRows(std::vector<std::size_t> rows) const
View selectColumns(std::vector<std::size_t> cols) const
View select(std::vector<std::size_t> rows, std::vector<std::size_t> cols) const

Example usage

auto cells = dataset.selectRows(cellIndices);
auto genes = dataset.selectColumns(geneIndices);
auto subset = dataset.select(cellIndices, geneIndices);

Advanced API

Clone this wiki locally