Skip to main content

CircuitStat

Struct CircuitStat 

Source
pub struct CircuitStat {
Show 19 fields pub n_gates: usize, pub n_eval_insn: usize, pub n_zero_constraints: usize, pub n_and_constraints: usize, pub n_imul_constraints: usize, pub n_bmul_constraints: usize, pub distinct_shifted_value_indices: usize, pub distinct_unshifted_value_indices: usize, pub committed_allocated: usize, pub n_const: usize, pub n_inout: usize, pub n_witness: usize, pub n_internal: usize, pub n_scratch: usize, pub scratch_peak_live: usize, pub zero_allocated: usize, pub and_allocated: usize, pub imul_allocated: usize, pub bmul_allocated: usize,
}
Expand description

Various stats of a circuit that affect the prover performance.

Fields§

§n_gates: usize

Number of gates in the circuit.

§n_eval_insn: usize

Number of instructions in the evaluation form of circuit.

Directly proportional to performance of witness filling.

§n_zero_constraints: usize

Number of ZERO constraints in the circuit.

Affects performance of the shift reduction only: the Zero reduction itself carries no sumcheck.

§n_and_constraints: usize

Number of AND constraints in the circuit.

Affects performance of AND reduction.

§n_imul_constraints: usize

Number of IMUL constraints in the circuit.

Affects performance of intmul reduction phase.

§n_bmul_constraints: usize

Number of BMUL constraints in the circuit.

Affects performance of binmul reduction phase.

§distinct_shifted_value_indices: usize

Number of distinct value indices with non-zero shift in the circuit.

Every use of a value with a distinct type and amount is counted here.

Affects performance of shift reduction phase.

§distinct_unshifted_value_indices: usize

Number of distinct value indices with zero shift in the circuit.

Affects performance of shift reduction phase.

§committed_allocated: usize

Length of the committed trace in words, a power of two.

Affects performance of committing.

§n_const: usize

Number of constant values used by the circuit.

§n_inout: usize

Number of public input values in the circuit.

§n_witness: usize

Number of private input values in the circuit.

§n_internal: usize

Number of internal values in the circuit.

Internal values are values produced by gates.

§n_scratch: usize

Number of scratch values in the circuit.

Those values are not committed, those only exist during witness generation.

§scratch_peak_live: usize

Smallest scratch segment this circuit could run with.

This is the largest number of uncommitted values alive at the same time. It equals the segment length when slots are shared, and is a lower bound on it otherwise.

§zero_allocated: usize

Allocated size for ZERO constraints (power of 2, or zero when there are none)

§and_allocated: usize

Allocated size for AND constraints (power of 2)

§imul_allocated: usize

Allocated size for IMUL constraints (power of 2)

§bmul_allocated: usize

Allocated size for BMUL constraints (power of 2)

Implementations§

Source§

impl CircuitStat

Source

pub fn collect(circuit: &Circuit) -> Self

Creates a new CircuitStat instance by collecting statistics from the given circuit.

Trait Implementations§

Source§

impl Display for CircuitStat

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
§

impl<T> Pointable for T

§

const ALIGN: usize

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<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

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

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more