Struct triton_vm::table::master_table::MasterExtTable
source · pub struct MasterExtTable {
pub num_trace_randomizers: usize,
/* private fields */
}Expand description
See MasterTable.
Fields§
§num_trace_randomizers: usizeImplementations§
source§impl MasterExtTable
impl MasterExtTable
sourcepub fn table(&self, table_id: TableId) -> ArrayView2<'_, XFieldElement>
pub fn table(&self, table_id: TableId) -> ArrayView2<'_, XFieldElement>
A view of the specified table, without any randomizers.
sourcepub fn table_mut(
&mut self,
table_id: TableId
) -> ArrayViewMut2<'_, XFieldElement>
pub fn table_mut( &mut self, table_id: TableId ) -> ArrayViewMut2<'_, XFieldElement>
A mutable view of the specified table, without any randomizers.
Trait Implementations§
source§impl Evaluable<BFieldElement> for MasterExtTable
impl Evaluable<BFieldElement> for MasterExtTable
source§fn evaluate_initial_constraints(
base_row: ArrayView1<'_, BFieldElement>,
ext_row: ArrayView1<'_, XFieldElement>,
challenges: &Challenges
) -> Vec<XFieldElement>
fn evaluate_initial_constraints( base_row: ArrayView1<'_, BFieldElement>, ext_row: ArrayView1<'_, XFieldElement>, challenges: &Challenges ) -> Vec<XFieldElement>
The code for this method must be generated by running
cargo run --bin constraint-evaluation-generatorsource§fn evaluate_consistency_constraints(
base_row: ArrayView1<'_, BFieldElement>,
ext_row: ArrayView1<'_, XFieldElement>,
challenges: &Challenges
) -> Vec<XFieldElement>
fn evaluate_consistency_constraints( base_row: ArrayView1<'_, BFieldElement>, ext_row: ArrayView1<'_, XFieldElement>, challenges: &Challenges ) -> Vec<XFieldElement>
The code for this method must be generated by running
cargo run --bin constraint-evaluation-generatorsource§fn evaluate_transition_constraints(
current_base_row: ArrayView1<'_, BFieldElement>,
current_ext_row: ArrayView1<'_, XFieldElement>,
next_base_row: ArrayView1<'_, BFieldElement>,
next_ext_row: ArrayView1<'_, XFieldElement>,
challenges: &Challenges
) -> Vec<XFieldElement>
fn evaluate_transition_constraints( current_base_row: ArrayView1<'_, BFieldElement>, current_ext_row: ArrayView1<'_, XFieldElement>, next_base_row: ArrayView1<'_, BFieldElement>, next_ext_row: ArrayView1<'_, XFieldElement>, challenges: &Challenges ) -> Vec<XFieldElement>
The code for this method must be generated by running
cargo run --bin constraint-evaluation-generatorsource§fn evaluate_terminal_constraints(
base_row: ArrayView1<'_, BFieldElement>,
ext_row: ArrayView1<'_, XFieldElement>,
challenges: &Challenges
) -> Vec<XFieldElement>
fn evaluate_terminal_constraints( base_row: ArrayView1<'_, BFieldElement>, ext_row: ArrayView1<'_, XFieldElement>, challenges: &Challenges ) -> Vec<XFieldElement>
The code for this method must be generated by running
cargo run --bin constraint-evaluation-generatorsource§impl Evaluable<XFieldElement> for MasterExtTable
impl Evaluable<XFieldElement> for MasterExtTable
source§fn evaluate_initial_constraints(
base_row: ArrayView1<'_, XFieldElement>,
ext_row: ArrayView1<'_, XFieldElement>,
challenges: &Challenges
) -> Vec<XFieldElement>
fn evaluate_initial_constraints( base_row: ArrayView1<'_, XFieldElement>, ext_row: ArrayView1<'_, XFieldElement>, challenges: &Challenges ) -> Vec<XFieldElement>
The code for this method must be generated by running
cargo run --bin constraint-evaluation-generatorsource§fn evaluate_consistency_constraints(
base_row: ArrayView1<'_, XFieldElement>,
ext_row: ArrayView1<'_, XFieldElement>,
challenges: &Challenges
) -> Vec<XFieldElement>
fn evaluate_consistency_constraints( base_row: ArrayView1<'_, XFieldElement>, ext_row: ArrayView1<'_, XFieldElement>, challenges: &Challenges ) -> Vec<XFieldElement>
The code for this method must be generated by running
cargo run --bin constraint-evaluation-generatorsource§fn evaluate_transition_constraints(
current_base_row: ArrayView1<'_, XFieldElement>,
current_ext_row: ArrayView1<'_, XFieldElement>,
next_base_row: ArrayView1<'_, XFieldElement>,
next_ext_row: ArrayView1<'_, XFieldElement>,
challenges: &Challenges
) -> Vec<XFieldElement>
fn evaluate_transition_constraints( current_base_row: ArrayView1<'_, XFieldElement>, current_ext_row: ArrayView1<'_, XFieldElement>, next_base_row: ArrayView1<'_, XFieldElement>, next_ext_row: ArrayView1<'_, XFieldElement>, challenges: &Challenges ) -> Vec<XFieldElement>
The code for this method must be generated by running
cargo run --bin constraint-evaluation-generatorsource§fn evaluate_terminal_constraints(
base_row: ArrayView1<'_, XFieldElement>,
ext_row: ArrayView1<'_, XFieldElement>,
challenges: &Challenges
) -> Vec<XFieldElement>
fn evaluate_terminal_constraints( base_row: ArrayView1<'_, XFieldElement>, ext_row: ArrayView1<'_, XFieldElement>, challenges: &Challenges ) -> Vec<XFieldElement>
The code for this method must be generated by running
cargo run --bin constraint-evaluation-generatorsource§impl MasterTable<XFieldElement> for MasterExtTable
impl MasterTable<XFieldElement> for MasterExtTable
fn trace_domain(&self) -> ArithmeticDomain
fn randomized_trace_domain(&self) -> ArithmeticDomain
fn quotient_domain(&self) -> ArithmeticDomain
fn fri_domain(&self) -> ArithmeticDomain
source§fn trace_table(&self) -> ArrayView2<'_, XFieldElement>
fn trace_table(&self) -> ArrayView2<'_, XFieldElement>
Presents underlying trace data, excluding trace randomizers and randomizer polynomials.
source§fn trace_table_mut(&mut self) -> ArrayViewMut2<'_, XFieldElement>
fn trace_table_mut(&mut self) -> ArrayViewMut2<'_, XFieldElement>
Mutably presents underlying trace data, excluding trace randomizers and randomizer
polynomials.
fn randomized_trace_table(&self) -> ArrayView2<'_, XFieldElement>
fn randomized_trace_table_mut(&mut self) -> ArrayViewMut2<'_, XFieldElement>
source§fn quotient_domain_table(&self) -> ArrayView2<'_, XFieldElement>
fn quotient_domain_table(&self) -> ArrayView2<'_, XFieldElement>
The low-degree extended randomized trace data over the quotient domain. Includes randomizer
polynomials. Requires having called
low_degree_extend_all_columns first.source§fn fri_domain_table(&self) -> ArrayView2<'_, XFieldElement>
fn fri_domain_table(&self) -> ArrayView2<'_, XFieldElement>
The low-degree extended randomized trace data over the FRI domain. Includes randomizer
polynomials. Requires having called
low_degree_extend_all_columns first.source§fn memoize_low_degree_extended_table(
&mut self,
low_degree_extended_columns: Array2<XFieldElement>
)
fn memoize_low_degree_extended_table( &mut self, low_degree_extended_columns: Array2<XFieldElement> )
Not intended for direct use, but through
Self::low_degree_extend_all_columns.source§fn low_degree_extended_table(&self) -> ArrayView2<'_, XFieldElement>
fn low_degree_extended_table(&self) -> ArrayView2<'_, XFieldElement>
Requires having called
low_degree_extend_all_columns first.source§fn memoize_interpolation_polynomials(
&mut self,
interpolation_polynomials: Array1<Polynomial<XFieldElement>>
)
fn memoize_interpolation_polynomials( &mut self, interpolation_polynomials: Array1<Polynomial<XFieldElement>> )
Memoize the polynomials interpolating the columns.
Not intended for direct use, but through
Self::low_degree_extend_all_columns.source§fn interpolation_polynomials(&self) -> ArrayView1<'_, Polynomial<XFieldElement>>
fn interpolation_polynomials(&self) -> ArrayView1<'_, Polynomial<XFieldElement>>
Requires having called
low_degree_extend_all_columns first. source§fn row(&self, row_index: XFieldElement) -> Array1<XFieldElement>
fn row(&self, row_index: XFieldElement) -> Array1<XFieldElement>
Get one row of the table at an arbitrary index. Notably, the index does not have to be in
any of the domains. In other words, can be used to compute out-of-domain rows. Requires
having called
low_degree_extend_all_columns first.
Does not include randomizer polynomials.fn hash_one_row(row: ArrayView1<'_, XFieldElement>) -> Digest
source§fn randomize_trace(&mut self)
fn randomize_trace(&mut self)
Set all rows not part of the actual (padded) trace to random values.
source§fn low_degree_extend_all_columns(&mut self)
fn low_degree_extend_all_columns(&mut self)
Low-degree extend all columns of the randomized trace domain table. The resulting
low-degree extended columns can be accessed using
quotient_domain_table and
fri_domain_table.source§fn merkle_tree(
&self,
maybe_profiler: &mut Option<TritonProfiler>
) -> MerkleTree<Tip5>
fn merkle_tree( &self, maybe_profiler: &mut Option<TritonProfiler> ) -> MerkleTree<Tip5>
Compute a Merkle tree of the FRI domain table. Every row gives one leaf in the tree.
The function
hash_row is used to hash each row.fn hash_all_fri_domain_rows(&self) -> Vec<Digest>
source§impl Quotientable for MasterExtTable
impl Quotientable for MasterExtTable
const NUM_INITIAL_CONSTRAINTS: usize = 81usize
const NUM_CONSISTENCY_CONSTRAINTS: usize = 94usize
const NUM_TRANSITION_CONSTRAINTS: usize = 398usize
const NUM_TERMINAL_CONSTRAINTS: usize = 23usize
fn initial_quotient_degree_bounds(interpolant_degree: isize) -> Vec<isize>
fn consistency_quotient_degree_bounds( interpolant_degree: isize, padded_height: usize ) -> Vec<isize>
fn transition_quotient_degree_bounds( interpolant_degree: isize, padded_height: usize ) -> Vec<isize>
fn terminal_quotient_degree_bounds(interpolant_degree: isize) -> Vec<isize>
source§const NUM_CONSTRAINTS: usize = _
const NUM_CONSTRAINTS: usize = _
The total number of constraints. The number of quotients is identical.
Auto Trait Implementations§
impl Freeze for MasterExtTable
impl RefUnwindSafe for MasterExtTable
impl Send for MasterExtTable
impl Sync for MasterExtTable
impl Unpin for MasterExtTable
impl UnwindSafe for MasterExtTable
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