# Introspection

> USearch for Java

```java
long entries = index.count(Key.of(42));
boolean present = index.contains(Key.of(42));

DenseIndexDescription description = index.describe();
DenseReachability reachability = index.health();
System.out.println(reachability.reachable() + " of " + reachability.audited() + " entries reachable");
System.out.println(Types.version() + " built for " + Types.capabilitiesCompiled() + ", here " + Types.capabilitiesAvailable());
```

`describe` reports the frozen `DenseMetadata` with the size, capacity, memory usage and dispatched capabilities in one call.
`health` audits how much of the graph a search reaches from its landmarks; entries it misses stay unfound until a `refine` re-links them.
`Types.capabilitiesCompiled` lists the hardware capabilities the linked binary was compiled with, and `Types.capabilitiesAvailable` those the current machine offers.

`import cloud.unum.usearch.*;`

## Types

The vocabulary every modality shares: entry identities, failure reporting, scalar kinds, the executor every fanned-out verb runs on, deferred calls, and the strided descriptors batches travel in.

```java
class Types
```

The class itself is the library's introspection: its version, and the hardware it can and does use. Everything else it holds is a nested type.

## CPUClass

A CPU family USearch ships tuned variants for, which a RAM or NVMe placement or executor may pin.

```java
enum CPUClass
```

- `SERIAL` ``: The portable floor, with no SIMD assumptions.
- `INTEL_HASWELL` ``: Haswell-class x86: AVX2 and FMA.
- `INTEL_SIERRA` ``: Sierra Forest-class x86: AVX-VNNI without AVX-512.
- `INTEL_SKYLAKE` ``: Skylake-class x86: the AVX-512 foundation.
- `INTEL_ICELAKE` ``: Icelake-class x86: AVX-512 VNNI and VPOPCNT.
- `AMD_GENOA` ``: Genoa-class x86: native bf16 dot products over AVX-512.
- `INTEL_SAPPHIRE` ``: Sapphire Rapids-class x86: AVX-512 FP16 and the AMX tiles.
- `INTEL_GRANITE` ``: Granite Rapids-class x86: the AMX-FP16 tiles.
- `INTEL_DIAMOND` ``: Diamond Rapids-class x86: AVX10.2's FP8 conversions.
- `AWS_G2` ``: Graviton2-class Arm: the bare NEON floor.
- `APPLE_M2` ``: Armv8.6 NEON with dot products and bf16.
- `APPLE_M4` ``: Apple M4-class Arm: the SME outer-product tiles.
- `AWS_G5` ``: Graviton5-class Arm: Armv9.2.
- `NVIDIA_VERA` ``: Vera-class Arm: FP8 dot products.
- `ALIBABA_C930` ``: Alibaba C930-class RISC-V: RVA23 vectors.
- `WASM32_V128` ``: WebAssembly with fixed-width simd128.
- `WASM64_EXTENDED` ``: WebAssembly with relaxed SIMD, threads and 64-bit addressing.
- `MONOVERSIONED` ``: The one class of a monoversioned build.

## GPUClass

A GPU family USearch ships tuned variants for, which a VRAM placement or executor may pin.

```java
enum GPUClass
```

- `NVIDIA_AMPERE` ``: Ampere-class NVIDIA, and every NVIDIA GPU without a class of its own.
- `NVIDIA_ADA` ``: Ada-class NVIDIA: the fp8 conversions.
- `NVIDIA_HOPPER` ``: Hopper-class NVIDIA.
- `NVIDIA_BLACKWELL` ``: Blackwell-class NVIDIA.
- `NVIDIA_BLACKWELLRTX` ``: Consumer Blackwell NVIDIA.
- `NVIDIA_RUBIN` ``: Rubin-class NVIDIA.
- `AMD_CDNA3` ``: CDNA3 AMD: gfx942.
- `AMD_CDNA4` ``: CDNA4 AMD: gfx950.
- `AMD_CDNA5` ``: CDNA5 AMD: gfx1250.
- `APPLE_METAL7` ``: Apple7-family GPUs, and every Apple GPU without a class of its own.
- `APPLE_METAL9` ``: Apple9-family GPUs.
- `APPLE_METAL10` ``: Apple10-family GPUs.

## version

The version of the linked library.

```java
String version();
```

Calls usearch_version_name.

## capabilitiesCompiled

The hardware capabilities the linked binary was compiled with, comma separated.

```java
String capabilitiesCompiled();
```

Calls usearch_capabilities_compiled.

## capabilitiesAvailable

The hardware capabilities the current machine offers at runtime, comma separated.

```java
String capabilitiesAvailable();
```

Calls usearch_capabilities_available.

