Skip to main content

Crate uor_matmul_codec

Crate uor_matmul_codec 

Source
Expand description

Codecs: the decode half of decode-accumulate-encode (§6).

A weight tier is a codec d : Code -> Alphabet(B). The codec is not an argument of the arithmetic, which is why the same result survives a change of tier, a change of reduction schedule, and a change of substrate. That is CL-MM01, cited from upstream and reproduced here as a some-true claim; CK-02 and CK-05 are the evidence that these types realize it.

Every tier in this crate is an instantiation of one trait, not a special case. Codec::MAX_BLOCK unifies the scalar and block cases exactly as the upstream scalar_eq_block does: a scalar codec is the block codec of its singletons, so no identity and no kernel is written twice.

Every table is borrowed, never owned: a codebook lives in the caller’s static, in flash, or in a &'static produced by include_bytes!. On an embedded target the E8 table is 2048 bytes of read-only memory and the codec is a pointer (R7, C1).

Re-exports§

pub use codecs::canonicalize;
pub use codecs::Arena;
pub use codecs::Book;
pub use codecs::Grid;
pub use codecs::Identity;
pub use codecs::Offset;
pub use codecs::Packed;
pub use codecs::Runs;
pub use codecs::Sign;
pub use codecs::SymbolCode;
pub use codecs::Ternary;
pub use codecs::Transcode;
pub use e8::e8_codec;
pub use e8::e8_codec_u8;
pub use e8::e8_table;
pub use e8::E8_I8;
pub use matrix::CodedMatrix;
pub use tier::Codec;
pub use tier::Enumerable;
pub use tier::IndexStream;
pub use tier::TierId;
pub use kappa::Addressing;
pub use kappa::KappaError;
pub use kappa::Manifest;

Modules§

codecs
The tiers (§6.2).
e8
The E8 lattice codebook (S4).
kappa
Content addressing (§6.4).
matrix
Coded matrices (§6.3).
tier
The one trait every tier instantiates (§6.1).