# Installation

> USearch for Wolfram

The library is a subdirectory of the root project rather than a project of its own, so build it from the repository root:

```sh
cmake -B build_release -D USEARCH_BUILD_WOLFRAM=1 -D USEARCH_DENSE_DTYPES=11 \
    -D USEARCH_WOLFRAM_PATH=/usr/local/Wolfram/Mathematica
cmake --build build_release --config Release --target usearch_wolfram

# Resulting artifact will be named like:
#   build_release/usearch_wolfram.so     on Linux
#   build_release/usearch_wolfram.dylib  on macOS
#   build_release/usearch_wolfram.dll    on Windows
```

Set `USEARCH_WOLFRAM_PATH` to your installation when it is not `/usr/local/Wolfram/Mathematica`; the SDK contributes only the `LibraryLink` headers under it.
`USEARCH_DENSE_DTYPES=11` compiles every dense storage type; the default four, `bf16`, `u1x8`, `i8` and `e4m3`, build faster but refuse the other seven.
`usearch_wolfram` is the one library here without a `lib` prefix, because Wolfram finds a library dropped into `LibraryResources/$SystemID` by its bare name.

The checks load the package against a built library and exit non-zero at the first failure:

```sh
wolframscript -file wolfram/Test.wls [path/to/usearch_wolfram] # defaults to build_release/usearch_wolfram.so
```

