diff --git a/rustdoc/help.html b/rustdoc/help.html index f74e384bbd..20c79678f5 100644 --- a/rustdoc/help.html +++ b/rustdoc/help.html @@ -1 +1 @@ -Rustdoc help

Rustdoc help

Back
\ No newline at end of file +Rustdoc help

Rustdoc help

Back
\ No newline at end of file diff --git a/rustdoc/implementors/folding/expressions/trait.FoldingColumnTrait.js b/rustdoc/implementors/folding/expressions/trait.FoldingColumnTrait.js index 8ac8b940d5..bc2685a266 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 MIPSColumn"],["impl FoldingColumnTrait for KeccakColumn"]] };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 116a1b7624..094f7e6a7a 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 456a3bd816..11c667506e 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/index.html b/rustdoc/index.html index 5d5014a7dd..d22507a620 100644 --- a/rustdoc/index.html +++ b/rustdoc/index.html @@ -1 +1 @@ -Index of crates

List of all crates

\ No newline at end of file +Index of crates

List of all crates

\ 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 930f9b7db1..b6ee919653 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

§

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

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 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 d6a8787cfd..bca4c1075f 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
§

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
source§

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

§

fn relax( + W: Witness<G>,

source§

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/constraints/struct.Env.html b/rustdoc/o1vm/interpreters/riscv32im/constraints/struct.Env.html index b963c51202..36d6589a93 100644 --- a/rustdoc/o1vm/interpreters/riscv32im/constraints/struct.Env.html +++ b/rustdoc/o1vm/interpreters/riscv32im/constraints/struct.Env.html @@ -221,12 +221,12 @@ )
Access the memory address addr, adding constraints asserting that the old value was old_value and that the new value will be new_value. Read more
source§

fn read_memory(&mut self, addr: &Self::Variable) -> Self::Variable

source§

fn write_memory(&mut self, addr: &Self::Variable, new_value: Self::Variable)

source§

fn lookup_16bits(&mut self, value: &Self::Variable)

Adds a lookup to the RangeCheck16Lookup table
source§

fn range_check16(&mut self, value: &Self::Variable, bits: u32)

Range checks with 2 lookups to the RangeCheck16Lookup table that a value is at most 2^bits-1 (bits <= 16).
source§

fn lookup_8bits(&mut self, value: &Self::Variable)

Adds a lookup to the ByteLookup table
source§

fn range_check8(&mut self, value: &Self::Variable, bits: u32)

Range checks with 2 lookups to the ByteLookup table that a value -is at most 2^bits-1 (bits <= 8).
source§

fn lookup_2bits(&mut self, value: &Self::Variable)

Adds a lookup to the AtMost4Lookup table
source§

fn range_check64(&mut self, _value: &Self::Variable)

source§

fn set_instruction_pointer(&mut self, ip: Self::Variable)

source§

fn get_instruction_pointer(&mut self) -> Self::Variable

source§

fn set_next_instruction_pointer(&mut self, ip: Self::Variable)

source§

fn get_next_instruction_pointer(&mut self) -> Self::Variable

source§

fn increase_heap_pointer( +is at most 2^bits-1 (bits <= 8).

source§

fn lookup_2bits(&mut self, value: &Self::Variable)

Adds a lookup to the AtMost4Lookup table
source§

fn range_check64(&mut self, _value: &Self::Variable)

source§

fn set_instruction_pointer(&mut self, ip: Self::Variable)

source§

fn get_instruction_pointer(&mut self) -> Self::Variable

source§

fn set_next_instruction_pointer(&mut self, ip: Self::Variable)

source§

fn get_next_instruction_pointer(&mut self) -> Self::Variable

source§

fn increase_heap_pointer( &mut self, by_amount: &Self::Variable, if_is_true: &Self::Variable ) -> Self::Variable

Increases the heap pointer by by_amount if if_is_true is 1, and returns the previous -value of the heap pointer.
source§

fn sign_extend(&mut self, x: &Self::Variable, bitlength: u32) -> Self::Variable

Given a variable x, this function extends it to a signed integer of +value of the heap pointer.
source§

fn sign_extend(&mut self, x: &Self::Variable, bitlength: u32) -> Self::Variable

Given a variable x, this function extends it to a signed integer of bitlength bits.

Auto Trait Implementations§

§

impl<F> RefUnwindSafe for Env<F>where F: RefUnwindSafe,

§

impl<F> Send for Env<F>

§

impl<F> Sync for Env<F>

§

impl<F> Unpin for Env<F>where F: Unpin,

§

impl<F> UnwindSafe for Env<F>where diff --git a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_instruction.html b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_instruction.html index 04c0fd90f5..64ee0d492a 100644 --- a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_instruction.html +++ b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_instruction.html @@ -1,4 +1,4 @@ -interpret_instruction in o1vm::interpreters::riscv32im::interpreter - Rust
pub fn interpret_instruction<Env: InterpreterEnv>(
+interpret_instruction in o1vm::interpreters::riscv32im::interpreter - Rust
pub fn interpret_instruction<Env: InterpreterEnv>(
     env: &mut Env,
     instr: Instruction
 )
\ No newline at end of file diff --git a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_itype.html b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_itype.html index c3ffefa470..eb4e4eb147 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 8bfa8c8781..66963d4b7c 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_rtype.html b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_rtype.html
index d9aefbb2cf..530647e694 100644
--- a/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_rtype.html
+++ b/rustdoc/o1vm/interpreters/riscv32im/interpreter/fn.interpret_rtype.html
@@ -1,4 +1,4 @@
-interpret_rtype in o1vm::interpreters::riscv32im::interpreter - Rust
pub fn interpret_rtype<Env: InterpreterEnv>(env: &mut Env, instr: RInstruction)
Expand description

Interpret an R-type instruction. +interpret_rtype in o1vm::interpreters::riscv32im::interpreter - Rust

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

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

| 31               25 | 24      20 | 19     15 | 14        12 | 11    7 | 6      0 |
 | funct5 & funct 2    |     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 130ff44c44..aace3fed38 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 36fab47e02..8fdae80fab 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 a5420f8c15..86a4fe8de3 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 ac23a23dfa..bec61b0021 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 b22e751d9b..f4eb38adef 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 14cb6fa8e8..ff128da15b 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/o1vm/interpreters/riscv32im/interpreter/trait.InterpreterEnv.html b/rustdoc/o1vm/interpreters/riscv32im/interpreter/trait.InterpreterEnv.html index 7b5af0cfdc..6794b9bbfd 100644 --- a/rustdoc/o1vm/interpreters/riscv32im/interpreter/trait.InterpreterEnv.html +++ b/rustdoc/o1vm/interpreters/riscv32im/interpreter/trait.InterpreterEnv.html @@ -1,4 +1,4 @@ -InterpreterEnv in o1vm::interpreters::riscv32im::interpreter - Rust
pub trait InterpreterEnv {
+InterpreterEnv in o1vm::interpreters::riscv32im::interpreter - Rust
pub trait InterpreterEnv {
     type Position;
     type Variable: Clone + Add<Self::Variable, Output = Self::Variable> + Sub<Self::Variable, Output = Self::Variable> + Mul<Self::Variable, Output = Self::Variable> + Debug + Zero + One;
 
@@ -570,7 +570,7 @@ 
Safety

There are no constraints on the returned values; callers must manually add constraints to ensure that the pair of returned values correspond to the given values x and y, and that they fall within the desired range.

-
source

unsafe fn div_signed( +

source

unsafe fn div_signed( &mut self, x: &Self::Variable, y: &Self::Variable, @@ -580,10 +580,7 @@

Safety

There are no constraints on the returned values; callers must manually add constraints to ensure that the pair of returned values correspond to the given values x and y, and that they fall within the desired range.

-

Division by zero will create a panic! exception. The RISC-V -specification leaves the case unspecified, and therefore we prefer to -forbid this case while building the witness.

-
source

unsafe fn mod_signed( +

source

unsafe fn mod_signed( &mut self, x: &Self::Variable, y: &Self::Variable, @@ -593,7 +590,7 @@

Safety

There are no constraints on the returned values; callers must manually add constraints to ensure that the pair of returned values correspond to the given values x and y, and that they fall within the desired range.

-
source

unsafe fn div( +

source

unsafe fn div( &mut self, x: &Self::Variable, y: &Self::Variable, @@ -603,10 +600,7 @@

Safety

There are no constraints on the returned values; callers must manually add constraints to ensure that the pair of returned values correspond to the given values x and y, and that they fall within the desired range.

-

Division by zero will create a panic! exception. The RISC-V -specification leaves the case unspecified, and therefore we prefer to -forbid this case while building the witness.

-
source

unsafe fn mod_unsigned( +

source

unsafe fn mod_unsigned( &mut self, x: &Self::Variable, y: &Self::Variable, @@ -616,7 +610,7 @@

Safety

There are no constraints on the returned values; callers must manually add constraints to ensure that the pair of returned values correspond to the given values x and y, and that they fall within the desired range.

-
source

unsafe fn count_leading_zeros( +

source

unsafe fn count_leading_zeros( &mut self, x: &Self::Variable, position: Self::Position @@ -624,7 +618,7 @@

Safety
Safety

There are no constraints on the returned value; callers must manually add constraints to ensure that it is correctly constructed.

-
source

unsafe fn count_leading_ones( +

source

unsafe fn count_leading_ones( &mut self, x: &Self::Variable, position: Self::Position @@ -632,11 +626,11 @@

Safety
Safety

There are no constraints on the returned value; callers must manually add constraints to ensure that it is correctly constructed.

-
source

fn copy( +

source

fn copy( &mut self, x: &Self::Variable, position: Self::Position -) -> Self::Variable

source

fn set_halted(&mut self, flag: Self::Variable)

source

fn report_exit(&mut self, exit_code: &Self::Variable)

source

fn reset(&mut self)

Provided Methods§

source

fn assert_is_zero(&mut self, assert_equals_zero: Self::Variable)

Assert that the value assert_equals_zero is 0, and add a constraint in the proof system.

+) -> Self::Variable

source

fn set_halted(&mut self, flag: Self::Variable)

source

fn report_exit(&mut self, exit_code: &Self::Variable)

source

fn reset(&mut self)

Provided Methods§

source

fn assert_is_zero(&mut self, assert_equals_zero: Self::Variable)

Assert that the value assert_equals_zero is 0, and add a constraint in the proof system.

source

fn assert_equal(&mut self, x: Self::Variable, y: Self::Variable)

Assert that the values x and y are equal, and add a constraint in the proof system.

source

unsafe fn push_register(&mut self, idx: &Self::Variable, value: Self::Variable)

Set the general purpose register with index idx to value.

Safety
@@ -694,12 +688,12 @@
Safety
source

fn range_check8(&mut self, value: &Self::Variable, bits: u32)

Range checks with 2 lookups to the ByteLookup table that a value is at most 2^bits-1 (bits <= 8).

source

fn lookup_2bits(&mut self, value: &Self::Variable)

Adds a lookup to the AtMost4Lookup table

-
source

fn range_check64(&mut self, _value: &Self::Variable)

source

fn set_instruction_pointer(&mut self, ip: Self::Variable)

source

fn get_instruction_pointer(&mut self) -> Self::Variable

source

fn set_next_instruction_pointer(&mut self, ip: Self::Variable)

source

fn get_next_instruction_pointer(&mut self) -> Self::Variable

source

fn increase_heap_pointer( +

source

fn range_check64(&mut self, _value: &Self::Variable)

source

fn set_instruction_pointer(&mut self, ip: Self::Variable)

source

fn get_instruction_pointer(&mut self) -> Self::Variable

source

fn set_next_instruction_pointer(&mut self, ip: Self::Variable)

source

fn get_next_instruction_pointer(&mut self) -> Self::Variable

source

fn increase_heap_pointer( &mut self, by_amount: &Self::Variable, if_is_true: &Self::Variable ) -> Self::Variable

Increases the heap pointer by by_amount if if_is_true is 1, and returns the previous value of the heap pointer.

-
source

fn sign_extend(&mut self, x: &Self::Variable, bitlength: u32) -> Self::Variable

Given a variable x, this function extends it to a signed integer of +

source

fn sign_extend(&mut self, x: &Self::Variable, bitlength: u32) -> Self::Variable

Given a variable x, this function extends it to a signed integer of bitlength bits.

Implementors§

source§

impl<Fp: Field> InterpreterEnv for o1vm::interpreters::riscv32im::constraints::Env<Fp>

§

type Position = Column

§

type Variable = Operations<ExprInner<Operations<ConstantExprInner<Fp, BerkeleyChallengeTerm>>, Column>>

source§

impl<Fp: Field> InterpreterEnv for o1vm::interpreters::riscv32im::witness::Env<Fp>

\ No newline at end of file diff --git a/rustdoc/o1vm/interpreters/riscv32im/witness/struct.Env.html b/rustdoc/o1vm/interpreters/riscv32im/witness/struct.Env.html index 02cd693fae..693da7bfff 100644 --- a/rustdoc/o1vm/interpreters/riscv32im/witness/struct.Env.html +++ b/rustdoc/o1vm/interpreters/riscv32im/witness/struct.Env.html @@ -232,12 +232,12 @@ )
Access the memory address addr, adding constraints asserting that the old value was old_value and that the new value will be new_value. Read more
source§

fn read_memory(&mut self, addr: &Self::Variable) -> Self::Variable

source§

fn write_memory(&mut self, addr: &Self::Variable, new_value: Self::Variable)

source§

fn lookup_16bits(&mut self, value: &Self::Variable)

Adds a lookup to the RangeCheck16Lookup table
source§

fn range_check16(&mut self, value: &Self::Variable, bits: u32)

Range checks with 2 lookups to the RangeCheck16Lookup table that a value is at most 2^bits-1 (bits <= 16).
source§

fn lookup_8bits(&mut self, value: &Self::Variable)

Adds a lookup to the ByteLookup table
source§

fn range_check8(&mut self, value: &Self::Variable, bits: u32)

Range checks with 2 lookups to the ByteLookup table that a value -is at most 2^bits-1 (bits <= 8).
source§

fn lookup_2bits(&mut self, value: &Self::Variable)

Adds a lookup to the AtMost4Lookup table
source§

fn range_check64(&mut self, _value: &Self::Variable)

source§

fn set_instruction_pointer(&mut self, ip: Self::Variable)

source§

fn get_instruction_pointer(&mut self) -> Self::Variable

source§

fn set_next_instruction_pointer(&mut self, ip: Self::Variable)

source§

fn get_next_instruction_pointer(&mut self) -> Self::Variable

source§

fn increase_heap_pointer( +is at most 2^bits-1 (bits <= 8).

source§

fn lookup_2bits(&mut self, value: &Self::Variable)

Adds a lookup to the AtMost4Lookup table
source§

fn range_check64(&mut self, _value: &Self::Variable)

source§

fn set_instruction_pointer(&mut self, ip: Self::Variable)

source§

fn get_instruction_pointer(&mut self) -> Self::Variable

source§

fn set_next_instruction_pointer(&mut self, ip: Self::Variable)

source§

fn get_next_instruction_pointer(&mut self) -> Self::Variable

source§

fn increase_heap_pointer( &mut self, by_amount: &Self::Variable, if_is_true: &Self::Variable ) -> Self::Variable

Increases the heap pointer by by_amount if if_is_true is 1, and returns the previous -value of the heap pointer.
source§

fn sign_extend(&mut self, x: &Self::Variable, bitlength: u32) -> Self::Variable

Given a variable x, this function extends it to a signed integer of +value of the heap pointer.
source§

fn sign_extend(&mut self, x: &Self::Variable, bitlength: u32) -> Self::Variable

Given a variable x, this function extends it to a signed integer of bitlength bits.

Auto Trait Implementations§

§

impl<Fp> RefUnwindSafe for Env<Fp>where Fp: RefUnwindSafe,

§

impl<Fp> Send for Env<Fp>where Fp: Send,

§

impl<Fp> Sync for Env<Fp>where diff --git a/rustdoc/settings.html b/rustdoc/settings.html index 042ebee940..9f421508ce 100644 --- a/rustdoc/settings.html +++ b/rustdoc/settings.html @@ -1 +1 @@ -Rustdoc settings

Rustdoc settings

Back
\ No newline at end of file +Rustdoc settings

Rustdoc settings

Back
\ 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 185efa057a..d95015c5e0 100644 --- a/rustdoc/src/o1vm/interpreters/riscv32im/interpreter.rs.html +++ b/rustdoc/src/o1vm/interpreters/riscv32im/interpreter.rs.html @@ -2688,34 +2688,6 @@ 2688 2689 2690 -2691 -2692 -2693 -2694 -2695 -2696 -2697 -2698 -2699 -2700 -2701 -2702 -2703 -2704 -2705 -2706 -2707 -2708 -2709 -2710 -2711 -2712 -2713 -2714 -2715 -2716 -2717 -2718

//! This module implement an interpreter for the RISCV32 IM instruction set
 //! architecture.
 //!
@@ -3998,10 +3970,6 @@
     /// There are no constraints on the returned values; callers must manually add constraints to
     /// ensure that the pair of returned values correspond to the given values `x` and `y`, and
     /// that they fall within the desired range.
-    ///
-    /// Division by zero will create a panic! exception. The RISC-V
-    /// specification leaves the case unspecified, and therefore we prefer to
-    /// forbid this case while building the witness.
     unsafe fn div_signed(
         &mut self,
         x: &Self::Variable,
@@ -4030,10 +3998,6 @@
     /// There are no constraints on the returned values; callers must manually add constraints to
     /// ensure that the pair of returned values correspond to the given values `x` and `y`, and
     /// that they fall within the desired range.
-    ///
-    /// Division by zero will create a panic! exception. The RISC-V
-    /// specification leaves the case unspecified, and therefore we prefer to
-    /// forbid this case while building the witness.
     unsafe fn div(
         &mut self,
         x: &Self::Variable,
@@ -5078,27 +5042,7 @@
             env.set_next_instruction_pointer(addr);
         }
         SBInstruction::BranchGreaterThanEqualUnsigned => {
-            // bgeu: if (x[rs1] >=u x[rs2]) pc += sext(offset)
-            let local_rs1 = env.read_register(&rs1);
-            let local_rs2 = env.read_register(&rs2);
-
-            let rd_scratch = env.alloc_scratch();
-            let less_than = unsafe { env.test_less_than(&local_rs1, &local_rs2, rd_scratch) };
-            let offset =
-                less_than.clone() * Env::constant(4) + (Env::constant(1) - less_than) * imm0_12;
-
-            // greater than equal is the negation of less than
-            let addr = {
-                let res_scratch = env.alloc_scratch();
-                let overflow_scratch = env.alloc_scratch();
-                let (res, _overflow) = unsafe {
-                    env.add_witness(&instruction_pointer, &offset, res_scratch, overflow_scratch)
-                };
-                res
-            };
-
-            env.set_instruction_pointer(next_instruction_pointer);
-            env.set_next_instruction_pointer(addr);
+            unimplemented!("BranchGreaterThanEqualUnsigned")
         }
     };
 }