vyre 0.4.0

GPU compute intermediate representation with a standard operation library
Documentation
//! Compile-time parameters for the rolling polynomial hash kernel.
//!
//! The rolling hash interprets each byte as a digit in base `ROLLING_BASE`
//! and treats the window as a polynomial. All scalar constants and the
//! spec-table witness values sit in one file so the relationship between
//! `ROLLING_BASE` and `DEFAULT_WINDOW_SIZE` stays visible at a glance.

use crate::ir::DataType;

/// Base for the rolling polynomial hash (one greater than the byte alphabet).
pub const ROLLING_BASE: u32 = 257;

/// Default baked window size used by [`super::spec::SPEC`].
pub const DEFAULT_WINDOW_SIZE: u32 = 4;

/// Spec-table invariant witness: a single-byte window hashes to the byte value.
pub const SINGLE_BYTE_WINDOW_IDENTITY: u32 = 1;

/// Input type declaration: a single `Bytes` buffer to roll a hash across.
pub const INPUTS: &[DataType] = &[DataType::Bytes];