struct CPUClass Conforms to
Hashable, Sendable, CustomStringConvertible, Equatablelet description = try index.describe()
print(description.metadata.dimensions, description.metadata.connectivity)
print(description.size, description.capacity, description.memoryUsage, description.cpuClass, description.shardsCount)
print(try index.count(key: 42), try index.contains(key: 42))
let reachability = try index.on(executor).health()
print(reachability.reachable, "of", reachability.audited, "entries reachable after", reachability.sweeps, "sweeps")
print(version(), capabilitiesCompiled(), capabilitiesAvailable())health audits how much of the graph a search reaches from its landmarks; entries it misses stay unfound until a refine re-links them.
CPUClassA CPU family USearch ships tuned variants for; dispatch reports its pick in this vocabulary, and a RAM or NVMe placement or executor may pin one.20struct CPUClass Hashable, Sendable, CustomStringConvertible, EquatableserialThe portable floor, with no SIMD assumptions.static let serial: CPUClass intelHaswellHaswell-class x86: AVX2 and FMA.static let intelHaswell: CPUClass intelSierraSierra Forest-class x86: AVX-VNNI without AVX-512.static let intelSierra: CPUClass intelSkylakeSkylake-class x86: the AVX-512 foundation.static let intelSkylake: CPUClass intelIcelakeIcelake-class x86: AVX-512 VNNI and VPOPCNT.static let intelIcelake: CPUClass amdGenoaGenoa-class x86: native bf16 dot products over AVX-512.static let amdGenoa: CPUClass intelSapphireSapphire Rapids-class x86: AVX-512 FP16 and the AMX tiles.static let intelSapphire: CPUClass intelGraniteGranite Rapids-class x86: the AMX-FP16 tiles.static let intelGranite: CPUClass intelDiamondDiamond Rapids-class x86: AVX10.2's FP8 conversions.static let intelDiamond: CPUClass awsG2Graviton2-class Arm: the bare NEON floor.static let awsG2: CPUClass appleM2Armv8.6 NEON with dot products and bf16.static let appleM2: CPUClass appleM4Apple M4-class Arm: the SME outer-product tiles.static let appleM4: CPUClass awsG5Graviton5-class Arm: Armv9.2.static let awsG5: CPUClass nvidiaVeraVera-class Arm: FP8 dot products.static let nvidiaVera: CPUClass alibabaC930Alibaba C930-class RISC-V: RVA23 vectors.static let alibabaC930: CPUClass wasm32V128WebAssembly with fixed-width simd128.static let wasm32V128: CPUClass wasm64ExtendedWebAssembly with relaxed SIMD, threads and 64-bit addressing.static let wasm64Extended: CPUClass monoversionedThe one class of a monoversioned build.static let monoversioned: CPUClass descriptionThe class as the library spells it.var description: String { get } initReads a spelling back, and nil for one no class carries.init?(name: String) GPUClassA GPU family USearch ships tuned variants for; a VRAM placement or executor may pin one.14struct GPUClass Hashable, Sendable, CustomStringConvertible, EquatablenvidiaAmpereAmpere-class NVIDIA, and every NVIDIA GPU without a class of its own.static let nvidiaAmpere: GPUClass nvidiaAdaAda-class NVIDIA: the fp8 conversions.static let nvidiaAda: GPUClass nvidiaHopperHopper-class NVIDIA.static let nvidiaHopper: GPUClass nvidiaBlackwellBlackwell-class NVIDIA.static let nvidiaBlackwell: GPUClass nvidiaBlackwellRTXConsumer Blackwell NVIDIA.static let nvidiaBlackwellRTX: GPUClass nvidiaRubinRubin-class NVIDIA.static let nvidiaRubin: GPUClass amdCDNA3CDNA3 AMD: gfx942.static let amdCDNA3: GPUClass amdCDNA4CDNA4 AMD: gfx950.static let amdCDNA4: GPUClass amdCDNA5CDNA5 AMD: gfx1250.static let amdCDNA5: GPUClass appleMetal7Apple7-family GPUs, and every Apple GPU without a class of its own.static let appleMetal7: GPUClass appleMetal9Apple9-family GPUs.static let appleMetal9: GPUClass appleMetal10Apple10-family GPUs.static let appleMetal10: GPUClass descriptionThe class as the library spells it.var description: String { get } initReads a spelling back, and nil for one no class carries.init?(name: String) DenseIndexDescriptionA live index's frozen metadata and current counters, each read once, so under concurrent insertions they may come from slightly different moments.7metadataThe frozen metric, quantization, dimensions and connectivity, as a checkpoint reports them.var metadata: DenseMetadata sizeThe stored entries.var size: Int capacityThe entries hosted without growing again.var capacity: Int memoryUsageThe bytes the handle holds; traversal scratch is the executor's.var memoryUsage: Int cpuClassThe CPU class whose kits the index dispatched to on RAM and NVMe; nil on VRAM.var cpuClass: CPUClass? gpuClassThe GPU class whose kernels the index dispatched to on VRAM; nil on RAM and NVMe.var gpuClass: GPUClass? shardsCountThe live shards, each a graph of its own.var shardsCount: Int DenseReachabilityOne reachability audit: the population it judged, and how much of it a search reaches.4auditedThe entries published when the audit started; compare reachable against this, never a later size.var audited: Int reachableOf those, the entries a search reaches from the landmarks; the rest no search finds until a refinement re-links them.var reachable: Int sweepsThe levels the sweep took to converge.var sweeps: Int backSweepsThe levels the sweep back toward the entry point took, where an audit sweeps both ways.var backSweeps: Int versionThe version of the linked library, like 3.0.0.func version() -> String capabilitiesCompiledThe hardware capabilities the linked binary was compiled with, comma separated.func capabilitiesCompiled() -> String capabilitiesAvailableThe hardware capabilities the current machine offers at runtime, comma separated.func capabilitiesAvailable() -> String