Changelog
All notable changes to PyHDC are documented here. The project follows Semantic Versioning and Keep a Changelog conventions.
The source is CHANGELOG.md on GitHub.
v1.1.0: 2026-05-24
Added
BSDC_THINencoding: sparse binary with post-bundling random thinning to enforce a density constraint. UsesShifting/InverseShiftingfor binding.DisjunctionThinnedbundling function inpyhdc.components.bundling: bitwise OR followed by random thinning to a target density.similarity_remapparameter on all encoding classes: optional callable applied to every similarity result before returning.remap_to_unitinpyhdc.components.similarity: maps [-1, 1] → [0, 1]. Works on scalars, NumPy arrays, and PyTorch tensors.PyTorch support for all four similarity functions (
CosineSimilarity,HammingDistance,Overlap,AngleDistance).Batched similarity calling conventions:
(a, b)both 2-D returns per-row similarities;(arr,)single 2-D returns row 0 vs. rows 1+.
Changed (breaking)
HammingDistancenow returns [-1, 1] instead of [0, 1].Overlapnow returns [-1, 1] instead of [0, 1].
Migration guide: any code comparing HammingDistance or Overlap
output against thresholds in [0, 1] must be updated. The easiest fix:
from pyhdc.components.similarity import remap_to_unit
# Option A: remap manually
sim = hv1.similarity(hv2)
sim_01 = remap_to_unit(sim)
# Option B: remap automatically at the encoding level
enc = pyhdc.BSC(dimension=10_000, similarity_remap=remap_to_unit)
sim_01 = hv1.similarity(hv2) # always in [0, 1]
Fixed
MAP_I_Bitsinteger overflow on Python 3.9.All similarity functions now handle PyTorch tensors without falling back to NumPy.
v1.0.1: 2026-05-23
Changed
Added README.md with badges, installation instructions, and a quickstart example (omitted from the v1.0.0 tag; this patch ensures it appears on the PyPI release page).
v1.0.0: 2026-05-23
Added
Unit test suite covering all 14 encoding types, all 7 generator families, all components, and the hypervector API.
Performance benchmark suite (
pytest-benchmark).mypy static type checking configuration.
Pre-commit hooks: autoflake, isort, black, pylint, mypy.
CONTRIBUTING.mdwith developer setup and PR process.SECURITY.mdwith vulnerability reporting guidance.Codecov integration.
TestPyPI and PyPI publish workflows with OIDC Trusted Publishing.
Fixed
All internal imports changed from
hdc.topyhdc.namespace.DefaultGenerator._next_wordinteger overflow forword_size >= 32.MBAT.bindincorrectly storing tuple as hypervector data.MAP_I_Bitswrong keyword argument names inElementAdditionBits.FeistelCounterGeneratornon-deterministic round key generation.
v0.0.1: 2024-01-01
Initial template release to PyPI.
Added
Core encoding types: MAP_C, MAP_I, MAP_I_Bits, MAP_B, HRR, HRR_NoNorm, HRR_ConstNorm, FHRR, VTB, MBAT, BSC, BSDC_CDT, BSDC_S, BSDC_SEG
Random number generator families: LCG, DLFSR, LFSR, LCA, PCG, Xorshift, ShiftedCounter
Recovery algorithm framework (not yet public API)
NumPy backend; PyTorch optional
GitHub Actions CI: lint, test, PyPI publish workflows