From 318d9ac7b275dae0632b83075fcd812c97f4fcee Mon Sep 17 00:00:00 2001 From: dannywillems Date: Mon, 2 Dec 2024 13:02:34 +0000 Subject: [PATCH] deploy: d2ecd198c26a8a6febe46852845ef3bbbf4cf6e3 --- .../expressions/trait.FoldingColumnTrait.js | 2 +- .../instance_witness/trait.Foldable.js | 2 +- .../folding/instance_witness/trait.Witness.js | 2 +- rustdoc/kimchi_msm/columns/enum.Column.html | 2 +- .../kimchi_msm/witness/struct.Witness.html | 10 +++--- .../interpreter/fn.interpret_itype.html | 2 +- .../interpreter/fn.interpret_mtype.html | 2 +- .../interpreter/fn.interpret_sbtype.html | 2 +- .../interpreter/fn.interpret_stype.html | 2 +- .../interpreter/fn.interpret_syscall.html | 2 +- .../interpreter/fn.interpret_ujtype.html | 2 +- .../interpreter/fn.interpret_utype.html | 2 +- .../riscv32im/interpreter/index.html | 2 +- .../commitment/fn.absorb_commitment.html | 2 +- .../commitment/fn.squeeze_challenge.html | 2 +- .../commitment/fn.squeeze_prechallenge.html | 4 +-- .../struct.BatchEvaluationProof.html | 2 +- .../commitment/trait.EndoCurve.html | 6 ++-- .../ipa/struct.OpeningProof.html | 10 +++--- rustdoc/poly_commitment/ipa/struct.SRS.html | 4 +-- .../poly_commitment/kzg/struct.KZGProof.html | 4 +-- rustdoc/poly_commitment/trait.OpenProof.html | 8 ++--- .../riscv32im/interpreter.rs.html | 32 ++++++++++++++++++- 23 files changed, 69 insertions(+), 39 deletions(-) diff --git a/rustdoc/implementors/folding/expressions/trait.FoldingColumnTrait.js b/rustdoc/implementors/folding/expressions/trait.FoldingColumnTrait.js index 63df9c2b82..4abcd07a73 100644 --- a/rustdoc/implementors/folding/expressions/trait.FoldingColumnTrait.js +++ b/rustdoc/implementors/folding/expressions/trait.FoldingColumnTrait.js @@ -1,5 +1,5 @@ (function() {var implementors = { "folding":[], -"kimchi_msm":[["impl FoldingColumnTrait for Column"]], +"kimchi_msm":[["impl FoldingColumnTrait for Column"]], "o1vm":[["impl FoldingColumnTrait for KeccakColumn"],["impl FoldingColumnTrait for MIPSColumn"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/implementors/folding/instance_witness/trait.Foldable.js b/rustdoc/implementors/folding/instance_witness/trait.Foldable.js index 094f7e6a7a..116a1b7624 100644 --- a/rustdoc/implementors/folding/instance_witness/trait.Foldable.js +++ b/rustdoc/implementors/folding/instance_witness/trait.Foldable.js @@ -1,6 +1,6 @@ (function() {var implementors = { "folding":[], "ivc":[["impl<G: CommitmentCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Foldable<<G as AffineRepr>::ScalarField> for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>"],["impl<const N_COL: usize, const N_FSEL: usize, F: Field, Evals: CombinableEvals<F>> Foldable<F> for PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>"]], -"kimchi_msm":[["impl<const N: usize, F: FftField> Foldable<F> for Witness<N, Evaluations<F, Radix2EvaluationDomain<F>>>"]], +"kimchi_msm":[["impl<const N: usize, F: FftField> Foldable<F> for Witness<N, Evaluations<F, Radix2EvaluationDomain<F>>>"]], "o1vm":[["impl<const N: usize, G: CommitmentCurve> Foldable<<G as AffineRepr>::ScalarField> for FoldingInstance<N, G>"],["impl<const N: usize, F: FftField> Foldable<F> for FoldingWitness<N, F>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/implementors/folding/instance_witness/trait.Witness.js b/rustdoc/implementors/folding/instance_witness/trait.Witness.js index 11c667506e..456a3bd816 100644 --- a/rustdoc/implementors/folding/instance_witness/trait.Witness.js +++ b/rustdoc/implementors/folding/instance_witness/trait.Witness.js @@ -1,6 +1,6 @@ (function() {var implementors = { "folding":[], "ivc":[["impl<const N_COL: usize, const N_FSEL: usize, Curve: CommitmentCurve, Evals: CombinableEvals<Curve::ScalarField>> Witness<Curve> for PlonkishWitnessGeneric<N_COL, N_FSEL, Curve::ScalarField, Evals>"]], -"kimchi_msm":[["impl<const N: usize, G: CommitmentCurve> Witness<G> for Witness<N, Evaluations<G::ScalarField, Radix2EvaluationDomain<G::ScalarField>>>"]], +"kimchi_msm":[["impl<const N: usize, G: CommitmentCurve> Witness<G> for Witness<N, Evaluations<G::ScalarField, Radix2EvaluationDomain<G::ScalarField>>>"]], "o1vm":[["impl<const N: usize, G: CommitmentCurve> Witness<G> for FoldingWitness<N, G::ScalarField>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/kimchi_msm/columns/enum.Column.html b/rustdoc/kimchi_msm/columns/enum.Column.html index b6ee919653..930f9b7db1 100644 --- a/rustdoc/kimchi_msm/columns/enum.Column.html +++ b/rustdoc/kimchi_msm/columns/enum.Column.html @@ -17,7 +17,7 @@
§

LookupAggregation

The lookup aggregation, i.e. phi

§

LookupFixedTable(u32)

The fixed tables. The parameter is considered to the indexed table.

Implementations§

source§

impl Column

source

pub fn add_rel_offset(self, offset: usize) -> Column

Adds offset if the column is Relation. Fails otherwise.

-

Trait Implementations§

source§

impl Clone for Column

source§

fn clone(&self) -> Column

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Column

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FoldingColumnTrait for Column

source§

fn is_witness(&self) -> bool

source§

fn degree(&self) -> Degree

Return the degree of the column Read more
source§

impl FormattedOutput for Column

source§

fn latex(&self, _cache: &mut HashMap<CacheId, Self>) -> String

source§

fn text(&self, _cache: &mut HashMap<CacheId, Self>) -> String

source§

fn ocaml(&self, _cache: &mut HashMap<CacheId, Self>) -> String

source§

fn is_alpha(&self) -> bool

source§

impl Hash for Column

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where +

Trait Implementations§

source§

impl Clone for Column

source§

fn clone(&self) -> Column

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Column

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FoldingColumnTrait for Column

source§

fn is_witness(&self) -> bool

§

fn degree(&self) -> Degree

Return the degree of the column Read more
source§

impl FormattedOutput for Column

source§

fn latex(&self, _cache: &mut HashMap<CacheId, Self>) -> String

source§

fn text(&self, _cache: &mut HashMap<CacheId, Self>) -> String

source§

fn ocaml(&self, _cache: &mut HashMap<CacheId, Self>) -> String

source§

fn is_alpha(&self) -> bool

source§

impl Hash for Column

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<Column> for Column

source§

fn eq(&self, other: &Column) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always diff --git a/rustdoc/kimchi_msm/witness/struct.Witness.html b/rustdoc/kimchi_msm/witness/struct.Witness.html index bca4c1075f..d6a8787cfd 100644 --- a/rustdoc/kimchi_msm/witness/struct.Witness.html +++ b/rustdoc/kimchi_msm/witness/struct.Witness.html @@ -10,7 +10,7 @@

Fields§

§cols: Box<[T; N_WIT]>

A witness row is represented by an array of N witness columns When T is a vector, then the witness describes the rows of the circuit.

-

Implementations§

source§

impl<const N_WIT: usize, T> Witness<N_WIT, T>

source

pub fn len(&self) -> usize

source

pub fn is_empty(&self) -> bool

source§

impl<const N_WIT: usize, T: Zero + Clone> Witness<N_WIT, Vec<T>>

source

pub fn zero_vec(domain_size: usize) -> Self

source

pub fn to_pub_columns<const NPUB: usize>(&self) -> Witness<NPUB, Vec<T>>

Trait Implementations§

source§

impl<const N_WIT: usize, T: Clone> Clone for Witness<N_WIT, T>

source§

fn clone(&self) -> Witness<N_WIT, T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<const N_WIT: usize, T: Debug> Debug for Witness<N_WIT, T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<const N_WIT: usize, T: Zero + Clone> Default for Witness<N_WIT, T>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<const N: usize, F: FftField> Foldable<F> for Witness<N, Evaluations<F, Radix2EvaluationDomain<F>>>

source§

fn combine(a: Self, b: Self, challenge: F) -> Self

Combine two objects ‘a’ and ‘b’ into a new object using the challenge.
source§

impl<const N_WIT: usize, G: Send + Debug> FromParallelIterator<G> for Witness<N_WIT, G>

source§

fn from_par_iter<I>(par_iter: I) -> Selfwhere +

Implementations§

source§

impl<const N_WIT: usize, T> Witness<N_WIT, T>

source

pub fn len(&self) -> usize

source

pub fn is_empty(&self) -> bool

source§

impl<const N_WIT: usize, T: Zero + Clone> Witness<N_WIT, Vec<T>>

source

pub fn zero_vec(domain_size: usize) -> Self

source

pub fn to_pub_columns<const NPUB: usize>(&self) -> Witness<NPUB, Vec<T>>

Trait Implementations§

source§

impl<const N_WIT: usize, T: Clone> Clone for Witness<N_WIT, T>

source§

fn clone(&self) -> Witness<N_WIT, T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<const N_WIT: usize, T: Debug> Debug for Witness<N_WIT, T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<const N_WIT: usize, T: Zero + Clone> Default for Witness<N_WIT, T>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<const N: usize, F: FftField> Foldable<F> for Witness<N, Evaluations<F, Radix2EvaluationDomain<F>>>

source§

fn combine(a: Self, b: Self, challenge: F) -> Self

Combine two objects ‘a’ and ‘b’ into a new object using the challenge.
source§

impl<const N_WIT: usize, G: Send + Debug> FromParallelIterator<G> for Witness<N_WIT, G>

source§

fn from_par_iter<I>(par_iter: I) -> Selfwhere I: IntoParallelIterator<Item = G>,

Creates an instance of the collection from the parallel iterator par_iter. Read more
source§

impl<const N_WIT: usize, T: Hash> Hash for Witness<N_WIT, T>

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<const N_WIT: usize, T> Index<usize> for Witness<N_WIT, T>

§

type Output = T

The returned type after indexing.
source§

fn index(&self, index: usize) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl<'lt, const N_WIT: usize, G> IntoIterator for &'lt Witness<N_WIT, G>

§

type Item = &'lt G

The type of the elements being iterated over.
§

type IntoIter = IntoIter<&'lt G, Global>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<const N_WIT: usize, F: Clone> IntoIterator for Witness<N_WIT, F>

source§

fn into_iter(self) -> Self::IntoIter

Iterate over the columns in the circuit.

@@ -20,7 +20,7 @@ Vec<G>: IntoParallelIterator,
source§

fn into_par_iter(self) -> Self::Iter

Iterate over the columns in the circuit, in parallel.

§

type Iter = <Vec<G, Global> as IntoParallelIterator>::Iter

The parallel iterator type that will be created.
§

type Item = <Vec<G, Global> as IntoParallelIterator>::Item

The type of item that the parallel iterator will produce.
source§

impl<const N_WIT: usize, T: PartialEq> PartialEq<Witness<N_WIT, T>> for Witness<N_WIT, T>

source§

fn eq(&self, other: &Witness<N_WIT, T>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl<const N_WIT: usize, T> TryFrom<Vec<T, Global>> for Witness<N_WIT, T>

§

type Error = String

The type returned in the event of a conversion error.
source§

fn try_from(value: Vec<T>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<const N_WIT: usize, T: Eq> Eq for Witness<N_WIT, T>

source§

impl<const N_WIT: usize, T> StructuralEq for Witness<N_WIT, T>

source§

impl<const N_WIT: usize, T> StructuralPartialEq for Witness<N_WIT, T>

source§

impl<const N: usize, G: CommitmentCurve> Witness<G> for Witness<N, Evaluations<G::ScalarField, Radix2EvaluationDomain<G::ScalarField>>>

Auto Trait Implementations§

§

impl<const N_WIT: usize, T> RefUnwindSafe for Witness<N_WIT, T>where +sufficient, and should not be overridden without very good reason.

source§

impl<const N_WIT: usize, T> TryFrom<Vec<T, Global>> for Witness<N_WIT, T>

§

type Error = String

The type returned in the event of a conversion error.
source§

fn try_from(value: Vec<T>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<const N_WIT: usize, T: Eq> Eq for Witness<N_WIT, T>

source§

impl<const N_WIT: usize, T> StructuralEq for Witness<N_WIT, T>

source§

impl<const N_WIT: usize, T> StructuralPartialEq for Witness<N_WIT, T>

source§

impl<const N: usize, G: CommitmentCurve> Witness<G> for Witness<N, Evaluations<G::ScalarField, Radix2EvaluationDomain<G::ScalarField>>>

Auto Trait Implementations§

§

impl<const N_WIT: usize, T> RefUnwindSafe for Witness<N_WIT, T>where T: RefUnwindSafe,

§

impl<const N_WIT: usize, T> Send for Witness<N_WIT, T>where T: Send,

§

impl<const N_WIT: usize, T> Sync for Witness<N_WIT, T>where T: Sync,

§

impl<const N_WIT: usize, T> Unpin for Witness<N_WIT, T>

§

impl<const N_WIT: usize, T> UnwindSafe for Witness<N_WIT, T>where @@ -42,12 +42,12 @@ &'data mut I: IntoParallelIterator,

§

type Iter = <&'data mut I as IntoParallelIterator>::Iter

The type of iterator that will be created.
§

type Item = <&'data mut I as IntoParallelIterator>::Item

The type of item that will be produced; this is typically an &'data mut T reference.
§

fn par_iter_mut( &'data mut self -) -> <I as IntoParallelRefMutIterator<'data>>::Iter

Creates the parallel iterator from self. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<G, W> RelaxableWitness<G, W> for Wwhere +) -> <I as IntoParallelRefMutIterator<'data>>::Iter

Creates the parallel iterator from self. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<G, W> RelaxableWitness<G, W> for Wwhere G: CommitmentCurve, - W: Witness<G>,

source§

fn relax( + W: Witness<G>,

§

fn relax( self, zero_poly: &Evaluations<<G as AffineRepr>::ScalarField, Radix2EvaluationDomain<<G as AffineRepr>::ScalarField>> -) -> RelaxedWitness<G, W>

This method takes a witness and a vector of evaluations to the zero +) -> RelaxedWitness<G, W>

This method takes a witness and a vector of evaluations to the zero polynomial, returning a relaxed witness which is composed by the extended witness and the error vector that is set to the zero polynomial.

diff --git a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_itype.html b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_itype.html index 68d54ed5ad..3681ed1133 100644 --- a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_itype.html +++ b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_itype.html @@ -1,4 +1,4 @@ -interpret_itype in o1vm::interpreters::riscv32im::interpreter - Rust
pub fn interpret_itype<Env: InterpreterEnv>(env: &mut Env, instr: IInstruction)
Expand description

Interpret an I-type instruction. +interpret_itype in o1vm::interpreters::riscv32im::interpreter - Rust

pub fn interpret_itype<Env: InterpreterEnv>(env: &mut Env, instr: IInstruction)
Expand description

Interpret an I-type instruction. The encoding of an I-type instruction is as follows:

| 31     20 | 19     15 | 14    12 | 11    7 | 6      0 |
 | immediate |    rs1    |  funct3  |    rd   |  opcode  |
diff --git a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_mtype.html b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_mtype.html
index 670e720153..dfa27110cc 100644
--- a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_mtype.html
+++ b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_mtype.html
@@ -1,4 +1,4 @@
-interpret_mtype in o1vm::interpreters::riscv32im::interpreter - Rust
pub fn interpret_mtype<Env: InterpreterEnv>(env: &mut Env, instr: MInstruction)
Expand description

Interpret an M-type instruction. +interpret_mtype in o1vm::interpreters::riscv32im::interpreter - Rust

pub fn interpret_mtype<Env: InterpreterEnv>(env: &mut Env, instr: MInstruction)
Expand description

Interpret an M-type instruction. The encoding of an M-type instruction is as follows:

| 31     27 | 26    25 | 24     20 | 19     15 | 14        12 | 11    7 | 6      0 |
 |   00000   |    01    |    rs2    |    rs1    |    funct3    |    rd   |  opcode  |
diff --git a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_sbtype.html b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_sbtype.html
index 2e9067c5d1..bc643b8f0c 100644
--- a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_sbtype.html
+++ b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_sbtype.html
@@ -1,4 +1,4 @@
-interpret_sbtype in o1vm::interpreters::riscv32im::interpreter - Rust
pub fn interpret_sbtype<Env: InterpreterEnv>(
+interpret_sbtype in o1vm::interpreters::riscv32im::interpreter - Rust
pub fn interpret_sbtype<Env: InterpreterEnv>(
     env: &mut Env,
     instr: SBInstruction
 )
Expand description

Interpret an SB-type instruction. diff --git a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_stype.html b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_stype.html index 153ea61b32..91e5afc644 100644 --- a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_stype.html +++ b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_stype.html @@ -1,4 +1,4 @@ -interpret_stype in o1vm::interpreters::riscv32im::interpreter - Rust

pub fn interpret_stype<Env: InterpreterEnv>(env: &mut Env, instr: SInstruction)
Expand description

Interpret an S-type instruction. +interpret_stype in o1vm::interpreters::riscv32im::interpreter - Rust

pub fn interpret_stype<Env: InterpreterEnv>(env: &mut Env, instr: SInstruction)
Expand description

Interpret an S-type instruction. The encoding of an S-type instruction is as follows:

| 31     25 | 24      20 | 19     15 | 14        12 | 11    7 | 6      0 |
 | immediate |     rs2    |    rs1    |    funct3    |    imm  |  opcode  |
diff --git a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_syscall.html b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_syscall.html
index 05bcf8fab5..a54be52ec0 100644
--- a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_syscall.html
+++ b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_syscall.html
@@ -1,4 +1,4 @@
-interpret_syscall in o1vm::interpreters::riscv32im::interpreter - Rust
pub fn interpret_syscall<Env: InterpreterEnv>(
+interpret_syscall in o1vm::interpreters::riscv32im::interpreter - Rust
pub fn interpret_syscall<Env: InterpreterEnv>(
     env: &mut Env,
     _instr: SyscallInstruction
 )
\ No newline at end of file diff --git a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_ujtype.html b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_ujtype.html index 03ed3d3b2d..f28ee2c48d 100644 --- a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_ujtype.html +++ b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_ujtype.html @@ -1,4 +1,4 @@ -interpret_ujtype in o1vm::interpreters::riscv32im::interpreter - Rust
pub fn interpret_ujtype<Env: InterpreterEnv>(
+interpret_ujtype in o1vm::interpreters::riscv32im::interpreter - Rust
pub fn interpret_ujtype<Env: InterpreterEnv>(
     env: &mut Env,
     instr: UJInstruction
 )
Expand description

Interpret an UJ-type instruction. diff --git a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_utype.html b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_utype.html index 5728541b44..66563ba212 100644 --- a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_utype.html +++ b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_utype.html @@ -1,4 +1,4 @@ -interpret_utype in o1vm::interpreters::riscv32im::interpreter - Rust

pub fn interpret_utype<Env: InterpreterEnv>(env: &mut Env, instr: UInstruction)
Expand description

Interpret an U-type instruction. +interpret_utype in o1vm::interpreters::riscv32im::interpreter - Rust

pub fn interpret_utype<Env: InterpreterEnv>(env: &mut Env, instr: UInstruction)
Expand description

Interpret an U-type instruction. The encoding of an U-type instruction is as follows:

| 31     12 | 11    7 | 6      0 |
 | immediate |    rd   |  opcode  |
diff --git a/rustdoc/o1vm/interpreters/riscv32im/interpreter/index.html b/rustdoc/o1vm/interpreters/riscv32im/interpreter/index.html
index e0a79df07c..4cf11264a8 100644
--- a/rustdoc/o1vm/interpreters/riscv32im/interpreter/index.html
+++ b/rustdoc/o1vm/interpreters/riscv32im/interpreter/index.html
@@ -1,4 +1,4 @@
-o1vm::interpreters::riscv32im::interpreter - Rust
Expand description

This module implement an interpreter for the RISCV32 IM instruction set +o1vm::interpreters::riscv32im::interpreter - Rust

Expand description

This module implement an interpreter for the RISCV32 IM instruction set architecture.

The implementation mostly follows (and copy) code from the MIPS interpreter available here.

diff --git a/rustdoc/poly_commitment/commitment/fn.absorb_commitment.html b/rustdoc/poly_commitment/commitment/fn.absorb_commitment.html index 99c0c2dcd3..657f471ddd 100644 --- a/rustdoc/poly_commitment/commitment/fn.absorb_commitment.html +++ b/rustdoc/poly_commitment/commitment/fn.absorb_commitment.html @@ -1,4 +1,4 @@ -absorb_commitment in poly_commitment::commitment - Rust
pub fn absorb_commitment<Fq: Field, G: Clone, Fr: PrimeField, EFqSponge: FqSponge<Fq, G, Fr>>(
+absorb_commitment in poly_commitment::commitment - Rust
pub fn absorb_commitment<Fq: Field, G: Clone, Fr: PrimeField, EFqSponge: FqSponge<Fq, G, Fr>>(
     sponge: &mut EFqSponge,
     commitment: &PolyComm<G>
 )
\ No newline at end of file diff --git a/rustdoc/poly_commitment/commitment/fn.squeeze_challenge.html b/rustdoc/poly_commitment/commitment/fn.squeeze_challenge.html index 234138913e..d1d24fbe8c 100644 --- a/rustdoc/poly_commitment/commitment/fn.squeeze_challenge.html +++ b/rustdoc/poly_commitment/commitment/fn.squeeze_challenge.html @@ -1,4 +1,4 @@ -squeeze_challenge in poly_commitment::commitment - Rust
pub fn squeeze_challenge<Fq: Field, G, Fr: PrimeField, EFqSponge: FqSponge<Fq, G, Fr>>(
+squeeze_challenge in poly_commitment::commitment - Rust
pub fn squeeze_challenge<Fq: Field, G, Fr: PrimeField, EFqSponge: FqSponge<Fq, G, Fr>>(
     endo_r: &Fr,
     sponge: &mut EFqSponge
 ) -> Fr
\ No newline at end of file diff --git a/rustdoc/poly_commitment/commitment/fn.squeeze_prechallenge.html b/rustdoc/poly_commitment/commitment/fn.squeeze_prechallenge.html index 5aee728f7f..8f3d834806 100644 --- a/rustdoc/poly_commitment/commitment/fn.squeeze_prechallenge.html +++ b/rustdoc/poly_commitment/commitment/fn.squeeze_prechallenge.html @@ -1,3 +1,3 @@ -squeeze_prechallenge in poly_commitment::commitment - Rust
pub fn squeeze_prechallenge<Fq: Field, G, Fr: Field, EFqSponge: FqSponge<Fq, G, Fr>>(
+squeeze_prechallenge in poly_commitment::commitment - Rust
pub fn squeeze_prechallenge<Fq: Field, G, Fr: Field, EFqSponge: FqSponge<Fq, G, Fr>>(
     sponge: &mut EFqSponge
-) -> ScalarChallenge<Fr>
\ No newline at end of file +) -> ScalarChallenge<Fr>
\ No newline at end of file diff --git a/rustdoc/poly_commitment/commitment/struct.BatchEvaluationProof.html b/rustdoc/poly_commitment/commitment/struct.BatchEvaluationProof.html index 7a2ec0ccf3..27bc6c4ea8 100644 --- a/rustdoc/poly_commitment/commitment/struct.BatchEvaluationProof.html +++ b/rustdoc/poly_commitment/commitment/struct.BatchEvaluationProof.html @@ -1,6 +1,6 @@ BatchEvaluationProof in poly_commitment::commitment - Rust
pub struct BatchEvaluationProof<'a, G, EFqSponge, OpeningProof>where
     G: AffineRepr,
-    EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>,{
+    EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>,{
     pub sponge: EFqSponge,
     pub evaluations: Vec<Evaluation<G>>,
     pub evaluation_points: Vec<G::ScalarField>,
diff --git a/rustdoc/poly_commitment/commitment/trait.EndoCurve.html b/rustdoc/poly_commitment/commitment/trait.EndoCurve.html
index bd3cf988b9..2a252d2dfd 100644
--- a/rustdoc/poly_commitment/commitment/trait.EndoCurve.html
+++ b/rustdoc/poly_commitment/commitment/trait.EndoCurve.html
@@ -6,7 +6,7 @@
         _endo_q: Self::BaseField,
         g1: &[Self],
         g2: &[Self],
-        x2: ScalarChallenge<Self::ScalarField>
+        x2: ScalarChallenge<Self::ScalarField>
     ) -> Vec<Self> { ... }
     fn combine(
         g1: &[Self],
@@ -23,7 +23,7 @@
     _endo_q: Self::BaseField,
     g1: &[Self],
     g2: &[Self],
-    x2: ScalarChallenge<Self::ScalarField>
+    x2: ScalarChallenge<Self::ScalarField>
 ) -> Vec<Self>

Combine where x1 = one

source

fn combine( g1: &[Self], @@ -35,7 +35,7 @@ endo_q: Self::BaseField, g1: &[Self], g2: &[Self], - x2: ScalarChallenge<Self::ScalarField> + x2: ScalarChallenge<Self::ScalarField> ) -> Vec<Self>

source§

fn combine( g1: &[Self], g2: &[Self], diff --git a/rustdoc/poly_commitment/ipa/struct.OpeningProof.html b/rustdoc/poly_commitment/ipa/struct.OpeningProof.html index ba559bfe9e..a2fac8800c 100644 --- a/rustdoc/poly_commitment/ipa/struct.OpeningProof.html +++ b/rustdoc/poly_commitment/ipa/struct.OpeningProof.html @@ -6,12 +6,12 @@ pub sg: G, }

Fields§

§lr: Vec<(G, G)>

Vector of rounds of L & R commitments

§delta: G§z1: G::ScalarField§z2: G::ScalarField§sg: G

A final folded commitment base

-

Implementations§

source§

impl<G: AffineRepr> OpeningProof<G>

source

pub fn prechallenges<EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>>( +

Implementations§

source§

impl<G: AffineRepr> OpeningProof<G>

source

pub fn prechallenges<EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>>( &self, sponge: &mut EFqSponge -) -> Vec<ScalarChallenge<G::ScalarField>>

Computes a log-sized vector of scalar challenges for +) -> Vec<ScalarChallenge<G::ScalarField>>

Computes a log-sized vector of scalar challenges for recombining elements inside the IPA.

-
source

pub fn challenges<EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>>( +

source

pub fn challenges<EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>>( &self, endo_r: &G::ScalarField, sponge: &mut EFqSponge @@ -38,7 +38,7 @@ sponge: EFqSponge, rng: &mut RNG ) -> Selfwhere - EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>, + EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>, RNG: RngCore + CryptoRng,

Create an opening proof for a batch of polynomials. The parameters are the following: Read more
source§

fn verify<EFqSponge, RNG>( srs: &Self::SRS, @@ -46,7 +46,7 @@ batch: &mut [BatchEvaluationProof<'_, G, EFqSponge, Self>], rng: &mut RNG ) -> boolwhere - EFqSponge: FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>, + EFqSponge: FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>, RNG: RngCore + CryptoRng,

Verify the opening proof
source§

impl<G: PartialEq + AffineRepr> PartialEq<OpeningProof<G>> for OpeningProof<G>where G::ScalarField: PartialEq,

source§

fn eq(&self, other: &OpeningProof<G>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always diff --git a/rustdoc/poly_commitment/ipa/struct.SRS.html b/rustdoc/poly_commitment/ipa/struct.SRS.html index e00c6a644f..bc5827adaf 100644 --- a/rustdoc/poly_commitment/ipa/struct.SRS.html +++ b/rustdoc/poly_commitment/ipa/struct.SRS.html @@ -13,7 +13,7 @@ batch: &mut [BatchEvaluationProof<'_, G, EFqSponge, OpeningProof<G>>], rng: &mut RNG ) -> boolwhere - EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>, + EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>, RNG: RngCore + CryptoRng, G::BaseField: PrimeField,

This function verifies a batch of polynomial commitment opening proofs. Return true if the verification is successful, false otherwise.

@@ -36,7 +36,7 @@
Safety
sponge: EFqSponge, rng: &mut RNG ) -> OpeningProof<G>where - EFqSponge: Clone + FqSponge<G::BaseField, G, G::ScalarField>, + EFqSponge: Clone + FqSponge<G::BaseField, G, G::ScalarField>, RNG: RngCore + CryptoRng, G::BaseField: PrimeField, G: EndoCurve,

Trait Implementations§

source§

impl<G: Clone> Clone for SRS<G>

source§

fn clone(&self) -> SRS<G>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<G: Debug> Debug for SRS<G>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<G: Default> Default for SRS<G>

source§

fn default() -> SRS<G>

Returns the “default value” for a type. Read more
source§

impl<'de, G> Deserialize<'de> for SRS<G>where diff --git a/rustdoc/poly_commitment/kzg/struct.KZGProof.html b/rustdoc/poly_commitment/kzg/struct.KZGProof.html index 0dbf993f71..21f094baa5 100644 --- a/rustdoc/poly_commitment/kzg/struct.KZGProof.html +++ b/rustdoc/poly_commitment/kzg/struct.KZGProof.html @@ -41,7 +41,7 @@ _sponge: EFqSponge, _rng: &mut RNG ) -> Selfwhere - EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, F>, + EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, F>, RNG: RngCore + CryptoRng,

Parameters:

Verify the opening proof
source§

impl<Pair: Pairing> Serialize for KZGProof<Pair>where Pair::G1Affine: CanonicalDeserialize + CanonicalSerialize,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<Pair> RefUnwindSafe for KZGProof<Pair>where diff --git a/rustdoc/poly_commitment/trait.OpenProof.html b/rustdoc/poly_commitment/trait.OpenProof.html index 8ae4e57b9b..520742336b 100644 --- a/rustdoc/poly_commitment/trait.OpenProof.html +++ b/rustdoc/poly_commitment/trait.OpenProof.html @@ -12,7 +12,7 @@ sponge: EFqSponge, rng: &mut RNG ) -> Self - where EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>, + where EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>, RNG: RngCore + CryptoRng; fn verify<EFqSponge, RNG>( srs: &Self::SRS, @@ -20,7 +20,7 @@ batch: &mut [BatchEvaluationProof<'_, G, EFqSponge, Self>], rng: &mut RNG ) -> bool - where EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>, + where EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>, RNG: RngCore + CryptoRng; }

Required Associated Types§

source

type SRS: SRS<G> + Debug

Required Methods§

source

fn open<EFqSponge, RNG, D: EvaluationDomain<<G as AffineRepr>::ScalarField>>( srs: &Self::SRS, @@ -32,7 +32,7 @@ sponge: EFqSponge, rng: &mut RNG ) -> Selfwhere - EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>, + EFqSponge: Clone + FqSponge<<G as AffineRepr>::BaseField, G, <G as AffineRepr>::ScalarField>, RNG: RngCore + CryptoRng,

Create an opening proof for a batch of polynomials. The parameters are the following:

Verify the opening proof

Implementors§

source§

impl<BaseField: PrimeField, G: AffineRepr<BaseField = BaseField> + CommitmentCurve + EndoCurve> OpenProof<G> for OpeningProof<G>

§

type SRS = SRS<G>

source§

impl<F: PrimeField, G: CommitmentCurve<ScalarField = F>, G2: CommitmentCurve<ScalarField = F>, Pair: Pairing<G1Affine = G, G2Affine = G2>> OpenProof<G> for KZGProof<Pair>

§

type SRS = PairingSRS<Pair>

\ No newline at end of file diff --git a/rustdoc/src/o1vm/interpreters/riscv32im/interpreter.rs.html b/rustdoc/src/o1vm/interpreters/riscv32im/interpreter.rs.html index 2b2c72a2de..ac5952841a 100644 --- a/rustdoc/src/o1vm/interpreters/riscv32im/interpreter.rs.html +++ b/rustdoc/src/o1vm/interpreters/riscv32im/interpreter.rs.html @@ -2191,6 +2191,21 @@ 2191 2192 2193 +2194 +2195 +2196 +2197 +2198 +2199 +2200 +2201 +2202 +2203 +2204 +2205 +2206 +2207 +2208
//! This module implement an interpreter for the RISCV32 IM instruction set
 //! architecture.
 //!
@@ -3921,7 +3936,22 @@
             env.set_next_instruction_pointer(next_instruction_pointer + Env::constant(4u32));
         }
         IInstruction::LoadByteUnsigned => {
-            unimplemented!("LoadByteUnsigned")
+            //lbu: x[rd] = M[x[rs1] + sext(offset)][7:0]
+            let local_rs1 = env.read_register(&rs1);
+            let local_imm = env.sign_extend(&imm, 12);
+            let address = {
+                let address_scratch = env.alloc_scratch();
+                let overflow_scratch = env.alloc_scratch();
+                let (address, _overflow) = unsafe {
+                    env.add_witness(&local_rs1, &local_imm, address_scratch, overflow_scratch)
+                };
+                address
+            };
+            // lhu: Add a range check here for address
+            let value = env.read_memory(&address);
+            env.write_register(&rd, value);
+            env.set_instruction_pointer(next_instruction_pointer.clone());
+            env.set_next_instruction_pointer(next_instruction_pointer + Env::constant(4u32));
         }
         IInstruction::LoadHalfUnsigned => {
             unimplemented!("LoadHalfUnsigned")