Changelog¶
All notable changes to Hyperbolix will be documented in this file.
Unreleased¶
Added¶
- MkDocs Material documentation system
- Complete API reference documentation
- Getting Started guide
- CI/CD workflow for documentation builds
- Positional encoding layers for hyperbolic Transformers:
lorentz_residual: Lorentzian midpoint-based residual connectionhope: Hyperbolic Rotary Positional Encoding (functional)HyperbolicRoPE: NNX module wrapper for HOPEHypformerPositionalEncoding: Learnable positional encoding with HTCLinear
- Class-based manifold API with automatic dtype casting (
Poincare,Hyperboloid,Euclidean) - Isometry mappings between Poincaré ball and hyperboloid models
Manifoldstructural protocol for type-safe manifold dispatch- Causal attention masking (
causal=True) for all three hyperbolic attention variants:HyperbolicSoftmaxAttention: lower-triangular-infmask before softmaxHyperbolicFullAttention: lower-triangular-infmask on Lorentzian similarity scoresHyperbolicLinearAttention: O(N) cumulative-sum recurrence viajax.lax.scan(Katharopoulos et al. 2020), keeping O(N) complexity in causal mode
- Tiny Shakespeare character-level benchmark (
benchmarks/bench_shakespeare_attention.py) comparing all four model variants (Euclidean + 3 hyperbolic) with causal attention
Changed¶
- Breaking: Manifold public functions renamed to private (
dist()→_dist()); use class methods instead - Replaced
with_precision()wrapper withPoincare(dtype=jnp.float64)pattern
[0.1.4] - 2026-02¶
Added¶
- Pure JAX implementation of hyperbolic manifolds (Euclidean, Poincaré, Hyperboloid)
- 13+ neural network layers (linear, convolutional, regression)
- Hypformer components: HTC/HRC with curvature-change support
- 4 hyperbolic activation functions (ReLU, Leaky ReLU, Tanh, Swish)
- Riemannian optimizers (RSGD, RAdam) with automatic manifold detection
- Wrapped normal distributions for VAEs
- Comprehensive test suite (1,400+ tests)
- CI/CD pipeline with benchmarking
- vmap-native API design
Changed¶
- Migrated from PyTorch to pure JAX/Flax NNX
- Unified package structure:
hyperbolix_jax→hyperbolix
References¶
- Based on research by Ganea et al. (2018), Bécigneul & Ganea (2019), Bdeir et al. (2023)