attend(
queries: RowsView | Vector,
values: RowsView | Vector,
rowOf: ValueRowOf,
arena: Arena,
config: DenseAttendConfig = {},
): DenseVectors
The index stores no values: every key a walk scores resolves through rowOf to a row of
values, borrowed for the call, so only the keys a walk scores are ever resolved. The values
must be as wide as the keys and stored in the index's own scalar kind, and a key resolving
outside them refuses the call with ShapeMismatch, since a missing row is a wrong softmax
rather than a smaller one. Row t * headCount + h of the queries, outputs and carry is head
h of token t, every head of a token sharing one walk.
rowOf runs on the calling thread, which no executor's thread is, so only the index itself
offers attend. The first exception it throws stops every later lookup and is rethrown once
the call returns. Being a host function, it serves RAM handles alone: a VRAM walk resolves rows
through a device function, which this binding does not build, so a Vram arena refuses with
Status.Device.
Parameters
Returns
One key-width row per query, viewed inside arena.