pub trait Dots: StorageElement + Sealed Given A ∈ ℝᵐˣᵏ and packed B ∈ ℝⁿˣᵏ, computes C ∈ ℝᵐˣⁿ where: Cᵢⱼ = aᵢ · bⱼ
B is pre-packed into a backend-specific layout for optimal access; strides are all in bytes.
When to use
Reach for this trait, or the matching Tensor::dots_packed* wrappers, whenever you multiply
many query rows against the same matrix of database rows: pre-packing B once amortises
layout-conversion cost across every subsequent query. The accumulator type is intentionally
widened to avoid precision loss — f32 × f32 → f64, f16 × f16 → f32, i8 × i8 → i32, u8 × u8 → u32, and so on; see each impl's Dots::Accumulator. On u1x8 the multiply degenerates
to a bitwise AND and the accumulator counts set bits into a u32.
Errors
Error::KernelFailed when the kernel refuses to run, like on a buffer packed under
other Capabilities than the current ones.