binius_prover/protocols/shift/segment_words.rs
1// Copyright 2025 Irreducible Inc.
2// Copyright 2026 The Binius Developers
3
4use binius_core::word::Word;
5
6/// The value vector's two committed segments, each at the width the protocol addresses it at.
7///
8/// A circuit declares fewer values than the reductions address: the public segment is padded
9/// to a power of two, and the hidden segment to at least that width.
10/// Both proving phases read the segments at those padded widths, so the top-level entry point
11/// fills them once and hands the pair down, instead of each phase re-deriving the split.
12#[derive(Clone, Copy)]
13pub struct SegmentWords<'a> {
14 /// The constants and inout values, zero-filled to the public segment width.
15 pub public: &'a [Word],
16 /// The private values, zero-filled to the hidden segment width.
17 pub hidden: &'a [Word],
18}