pub struct RingSwitchPlan {
pub num_units: usize,
pub units: Vec<(bool, usize)>,
pub phys_rs: Vec<ColumnType>,
pub blind_slots: usize,
pub h_cols: usize,
/* private fields */
}Expand description
Maps the claimed virtual evals and the committed columns
onto ring-switch binding units. eta^k runs once per
unit (in claim order); a bit-expanded physical column
is one Ring unit consuming its bits claims.
Fields§
§num_units: usize§units: Vec<(bool, usize)>§phys_rs: Vec<ColumnType>§blind_slots: usize§h_cols: usizeImplementations§
Source§impl RingSwitchPlan
impl RingSwitchPlan
pub fn new( layout: &[ColumnType], entries: Option<&[ExpansionEntry]>, num_blind: usize, num_h: usize, ) -> Result<Self, Error>
pub fn has_ring(&self) -> bool
pub fn has_ring_blind(&self) -> bool
pub fn total_claims(&self) -> usize
pub fn leaf_row_bytes(&self) -> usize
pub fn h_leaf_row_bytes(&self) -> usize
pub fn opened_row_bytes(&self) -> usize
Sourcepub fn split_vars(
&self,
num_vars: usize,
field_bits: usize,
config: &Config,
) -> usize
pub fn split_vars( &self, num_vars: usize, field_bits: usize, config: &Config, ) -> usize
log2(grid_cols) for this table: the proof-size optimum,
stepped down, narrowing the grid to buy proximity bits,
to the widest split that clears MIN_PRODUCTION_BITS.
Sourcepub fn column_coeffs<F>(
&self,
eta: Flat<F>,
) -> (Vec<Flat<F>>, Vec<Flat<F>>, Flat<F>)where
F: HardwareField,
pub fn column_coeffs<F>(
&self,
eta: Flat<F>,
) -> (Vec<Flat<F>>, Vec<Flat<F>>, Flat<F>)where
F: HardwareField,
Per committed column, trace leaf then h leaf:
its base eta coefficients in the ring and whole
masters, plus eta^U (the next-row shift multiplier).
Auto Trait Implementations§
impl Freeze for RingSwitchPlan
impl RefUnwindSafe for RingSwitchPlan
impl Send for RingSwitchPlan
impl Sync for RingSwitchPlan
impl Unpin for RingSwitchPlan
impl UnsafeUnpin for RingSwitchPlan
impl UnwindSafe for RingSwitchPlan
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more