pub trait CircuitV2Builder<C: Config> {
Show 20 methods
// Required methods
fn bits2num_v2_f(
&mut self,
bits: impl IntoIterator<Item = Felt<<C as Config>::F>>,
) -> Felt<C::F>;
fn num2bits_v2_f(
&mut self,
num: Felt<C::F>,
num_bits: usize,
) -> Vec<Felt<C::F>>;
fn exp_reverse_bits_v2(
&mut self,
input: Felt<C::F>,
power_bits: Vec<Felt<C::F>>,
) -> Felt<C::F>;
fn batch_fri_v2(
&mut self,
alphas: Vec<Ext<C::F, C::EF>>,
p_at_zs: Vec<Ext<C::F, C::EF>>,
p_at_xs: Vec<Felt<C::F>>,
) -> Ext<C::F, C::EF>;
fn poseidon2_permute_v2(
&mut self,
state: [Felt<C::F>; 16],
) -> [Felt<C::F>; 16];
fn poseidon2_hash_v2(&mut self, array: &[Felt<C::F>]) -> [Felt<C::F>; 8];
fn poseidon2_compress_v2(
&mut self,
input: impl IntoIterator<Item = Felt<C::F>>,
) -> [Felt<C::F>; 8];
fn fri_fold_v2(
&mut self,
input: CircuitV2FriFoldInput<C>,
) -> CircuitV2FriFoldOutput<C>;
fn ext2felt_v2(&mut self, ext: Ext<C::F, C::EF>) -> [Felt<C::F>; 4];
fn add_curve_v2(
&mut self,
point1: SepticCurve<Felt<C::F>>,
point2: SepticCurve<Felt<C::F>>,
) -> SepticCurve<Felt<C::F>>;
fn assert_digest_zero_v2(
&mut self,
is_real: Felt<C::F>,
digest: SepticDigest<Felt<C::F>>,
);
fn sum_digest_v2(
&mut self,
digests: Vec<SepticDigest<Felt<C::F>>>,
) -> SepticDigest<Felt<C::F>>;
fn select_global_cumulative_sum(
&mut self,
is_first_shard: Felt<C::F>,
vk_digest: SepticDigest<Felt<C::F>>,
) -> SepticDigest<Felt<C::F>>;
fn commit_public_values_v2(
&mut self,
public_values: RecursionPublicValues<Felt<C::F>>,
);
fn cycle_tracker_v2_enter(&mut self, name: impl Into<Cow<'static, str>>);
fn cycle_tracker_v2_exit(&mut self);
fn hint_ext_v2(&mut self) -> Ext<C::F, C::EF>;
fn hint_felt_v2(&mut self) -> Felt<C::F>;
fn hint_exts_v2(&mut self, len: usize) -> Vec<Ext<C::F, C::EF>>;
fn hint_felts_v2(&mut self, len: usize) -> Vec<Felt<C::F>>;
}
Required Methods§
fn bits2num_v2_f( &mut self, bits: impl IntoIterator<Item = Felt<<C as Config>::F>>, ) -> Felt<C::F>
fn num2bits_v2_f(&mut self, num: Felt<C::F>, num_bits: usize) -> Vec<Felt<C::F>>
fn exp_reverse_bits_v2( &mut self, input: Felt<C::F>, power_bits: Vec<Felt<C::F>>, ) -> Felt<C::F>
fn batch_fri_v2( &mut self, alphas: Vec<Ext<C::F, C::EF>>, p_at_zs: Vec<Ext<C::F, C::EF>>, p_at_xs: Vec<Felt<C::F>>, ) -> Ext<C::F, C::EF>
fn poseidon2_permute_v2(&mut self, state: [Felt<C::F>; 16]) -> [Felt<C::F>; 16]
fn poseidon2_hash_v2(&mut self, array: &[Felt<C::F>]) -> [Felt<C::F>; 8]
fn poseidon2_compress_v2( &mut self, input: impl IntoIterator<Item = Felt<C::F>>, ) -> [Felt<C::F>; 8]
fn fri_fold_v2( &mut self, input: CircuitV2FriFoldInput<C>, ) -> CircuitV2FriFoldOutput<C>
fn ext2felt_v2(&mut self, ext: Ext<C::F, C::EF>) -> [Felt<C::F>; 4]
fn add_curve_v2( &mut self, point1: SepticCurve<Felt<C::F>>, point2: SepticCurve<Felt<C::F>>, ) -> SepticCurve<Felt<C::F>>
fn assert_digest_zero_v2( &mut self, is_real: Felt<C::F>, digest: SepticDigest<Felt<C::F>>, )
fn sum_digest_v2( &mut self, digests: Vec<SepticDigest<Felt<C::F>>>, ) -> SepticDigest<Felt<C::F>>
fn select_global_cumulative_sum( &mut self, is_first_shard: Felt<C::F>, vk_digest: SepticDigest<Felt<C::F>>, ) -> SepticDigest<Felt<C::F>>
fn commit_public_values_v2( &mut self, public_values: RecursionPublicValues<Felt<C::F>>, )
fn cycle_tracker_v2_enter(&mut self, name: impl Into<Cow<'static, str>>)
fn cycle_tracker_v2_exit(&mut self)
fn hint_ext_v2(&mut self) -> Ext<C::F, C::EF>
fn hint_felt_v2(&mut self) -> Felt<C::F>
fn hint_exts_v2(&mut self, len: usize) -> Vec<Ext<C::F, C::EF>>
fn hint_felts_v2(&mut self, len: usize) -> Vec<Felt<C::F>>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.