Skip to main content

VM API

Ternary Virtual Machine for Hyperdimensional Computing.

Module: src/vm.zig

Registers​

RegisterTypeDescription
v0-v3HybridBigIntVector registers
s0-s1i64Scalar results
f0-f1f64Float results
pcu32Program counter

Opcodes​

Vector Operations​

OpcodeDescription
v_loadLoad vector from memory
v_storeStore vector to memory
v_randomGenerate random vector

VSA Operations​

OpcodeDescription
v_bindBind two vectors
v_bundle2Bundle 2 vectors
v_bundle3Bundle 3 vectors

Similarity​

OpcodeDescription
v_dotDot product → s0
v_cosineCosine similarity → f0
v_hammingHamming distance → s0

Usage​

var machine = try vm.VSAVM.init(allocator);
defer machine.deinit();

try machine.loadProgram(&program);
try machine.run();