Enum miden_core::AdviceInjector
source · pub enum AdviceInjector {
MerkleNode,
DivResultU64,
MapValue,
Memory(u32, u32),
Ext2Inv,
Ext2INTT,
}
Expand description
TODO: add docs
Variants§
MerkleNode
Injects a node of the Merkle tree specified by the values on the stack at the head of the advice tape. The stack is expected to be arranged as follows (from the top):
- depth of the node, 1 element
- index of the node, 1 element
- root of the tree, 4 elements
DivResultU64
Injects the result of u64 division (both the quotient and the remainder) at the head of the advice tape. The stack is expected to be arranged as follows (from the top):
- divisor split into two 32-bit elements
- dividend split into two 32-bit elements
The result is injected into the advice tape as follows: first the remainder is injected, then the quotient is injected.
MapValue
Injects a list of field elements at the front of the advice tape. The list is looked up in the key-value map maintained by the advice provider using the top 4 elements on the stack as the key.
Memory(u32, u32)
Injects a list of words from the memory starting from the specified start address.
Ext2Inv
Given an element of quadratic extension field, it computes multiplicative inverse and injects the result into advice tape.
Ext2INTT
Given ( power of 2 many ) evaluations of a polynomial over some specified domain, this routine interpolates ( using inverse NTT ) the evaluations into a polynomial in coefficient form and injects the result into the advice tape.
Trait Implementations§
source§impl Clone for AdviceInjector
impl Clone for AdviceInjector
source§fn clone(&self) -> AdviceInjector
fn clone(&self) -> AdviceInjector
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for AdviceInjector
impl Debug for AdviceInjector
source§impl Display for AdviceInjector
impl Display for AdviceInjector
source§impl PartialEq<AdviceInjector> for AdviceInjector
impl PartialEq<AdviceInjector> for AdviceInjector
source§fn eq(&self, other: &AdviceInjector) -> bool
fn eq(&self, other: &AdviceInjector) -> bool
self
and other
values to be equal, and is used
by ==
.