Enum miden_core::AdviceInjector
source · pub enum AdviceInjector {
MerkleNode,
MerkleMerge,
DivResultU64,
MapValue,
Memory(u32, u32),
Ext2Inv,
Ext2INTT,
}
Expand description
TODO: add docs
Variants§
MerkleNode
Pushes a node of the Merkle tree specified by the values on the top of the operand stack onto the advice stack. The operand 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
MerkleMerge
Creates a new Merkle tree in the advice provider by combining Merkle trees with the
specified roots. The root of the new tree is defined as Hash(left_root, right_root)
.
The operand stack is expected to be arranged as follows:
- root of the right tree, 4 elements.
- root of the left tree, 4 elements.
After the operation, both the original trees and the new tree remains in the advice provider (i.e., the input trees are not removed).
DivResultU64
Pushes the result of u64 division (both the quotient and the remainder) onto the advice stack. The operand 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 pushed onto the advice stack as follows: first the remainder is pushed, then the quotient.
MapValue
Pushes a list of field elements onto the advice stack. The list is looked up in the key-value map maintained by the advice provider using the top 4 elements of the operand stack as key.
Memory(u32, u32)
Inserts a list of words that are read from VM memory into the advice map under the key specified by the word at the top of the operand stack.
The first internal u32 specifies the starting address of the memory region, and the second specifies the number of words to be read.
Ext2Inv
Given an element of quadratic extension field, it computes multiplicative inverse and push the result into the advice stack.
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 pushes the result into the advice stack.
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 ==
.