Wolfram

USearch for Wolfram

cmake -B build_release -D USEARCH_BUILD_WOLFRAM=1 -D USEARCH_DENSE_DTYPES=11 3.0.0-rc.1 · 4c3e5023

It needs Mathematica or the Wolfram Engine 12 or newer, on Linux, macOS or Windows, since keys and monoliths cross as NumericArray and lists as DataStore. It exposes dense indexes; sequence, matrix and geospatial indexes follow as the C library ships them.

Topics

Installation
QuickstartPut the library's directory on $LibraryPath and load the package.
Executors7An executor owns the host threads or device streams; an index owns the entries.
KeysKeys are USearch's 128-bit identities, written as integers below 2¹²⁸ and crossing as sixteen bytes, most significant first.
Inputs and Outputs5Every output whose length only the call knows, such as matches, rows, products and monoliths, lands in an arena you pass.
Metrics1
Residency4Where the payload lives is the constructor's name, as in the C lifecycle verbs, so a residency an index lacks has no constructor to call.
Serialization10DenseSave[receiver, path] writes a checkpoint, and the path carries the SafeGraphs extension that picks the layout: .safegraphs for one monolith, .safegraphs.json for a manifest beside its shards.
Refinement1DenseRefine[receiver] re-links the graph and answers how many nodes had their neighbors changed, taking "ExpansionFactor" like the other walks.
Linear Algebra3DenseMultiply[receiver, left, arena] runs on the inner metric and answers <|"Offsets"->…, "Keys"->…, "Scores"->…, "Required"->…|>.
Retrieval and Streaming1DenseGet[receiver, key, arena] answers every row stored under a key as a rows × dimensions real matrix, empty for an absent key.
Introspection6
Errors
Platform Notes