pub struct BabyBearParameters;
Trait Implementations§
Source§impl BinomialExtensionData<4> for BabyBearParameters
impl BinomialExtensionData<4> for BabyBearParameters
Source§const EXT_GENERATOR: [BabyBear; 4] = _
const EXT_GENERATOR: [BabyBear; 4] = _
A generator of the extension fields multiplicative group.
const EXT_TWO_ADICITY: usize = 29usize
Source§const TWO_ADIC_EXTENSION_GENERATORS: Self::ArrayLike = _
const TWO_ADIC_EXTENSION_GENERATORS: Self::ArrayLike = _
A list of generators of 2-adic subgroups not contained in the base field.
Source§type ArrayLike = [[MontyField31<BabyBearParameters>; 4]; 2]
type ArrayLike = [[MontyField31<BabyBearParameters>; 4]; 2]
ArrayLike should usually be [MontyField31; EXT_TWO_ADICITY - TWO_ADICITY].
Source§impl BinomialExtensionData<5> for BabyBearParameters
impl BinomialExtensionData<5> for BabyBearParameters
Source§const EXT_GENERATOR: [BabyBear; 5] = _
const EXT_GENERATOR: [BabyBear; 5] = _
A generator of the extension fields multiplicative group.
const EXT_TWO_ADICITY: usize = 27usize
Source§const TWO_ADIC_EXTENSION_GENERATORS: Self::ArrayLike = _
const TWO_ADIC_EXTENSION_GENERATORS: Self::ArrayLike = _
A list of generators of 2-adic subgroups not contained in the base field.
Source§type ArrayLike = [[MontyField31<BabyBearParameters>; 5]; 0]
type ArrayLike = [[MontyField31<BabyBearParameters>; 5]; 0]
ArrayLike should usually be [MontyField31; EXT_TWO_ADICITY - TWO_ADICITY].
Source§impl Clone for BabyBearParameters
impl Clone for BabyBearParameters
Source§fn clone(&self) -> BabyBearParameters
fn clone(&self) -> BabyBearParameters
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for BabyBearParameters
impl Debug for BabyBearParameters
Source§impl Default for BabyBearParameters
impl Default for BabyBearParameters
Source§fn default() -> BabyBearParameters
fn default() -> BabyBearParameters
Returns the “default value” for a type. Read more
Source§impl FieldParameters for BabyBearParameters
impl FieldParameters for BabyBearParameters
const MONTY_GEN: BabyBear = _
fn exp_u64_generic<AF: AbstractField>(val: AF, power: u64) -> AF
fn try_inverse<F: Field>(p1: F) -> Option<F>
const MONTY_ZERO: MontyField31<Self> = _
const MONTY_ONE: MontyField31<Self> = _
const MONTY_TWO: MontyField31<Self> = _
const MONTY_NEG_ONE: MontyField31<Self> = _
const HALF_P_PLUS_1: u32 = _
Source§impl Hash for BabyBearParameters
impl Hash for BabyBearParameters
Source§impl InternalLayerBaseParameters<BabyBearParameters, 16> for BabyBearInternalLayerParameters
impl InternalLayerBaseParameters<BabyBearParameters, 16> for BabyBearInternalLayerParameters
Source§fn internal_layer_mat_mul(
state: &mut [MontyField31<BabyBearParameters>; 16],
sum: MontyField31<BabyBearParameters>,
)
fn internal_layer_mat_mul( state: &mut [MontyField31<BabyBearParameters>; 16], sum: MontyField31<BabyBearParameters>, )
Perform the internal matrix multiplication: s -> (1 + Diag(V))s.
We ignore state[0]
as it is handled separately.
const INTERNAL_DIAG_MONTY: [BabyBear; 16] = INTERNAL_DIAG_MONTY_16
type ArrayLike = [MontyField31<BabyBearParameters>; 15]
Source§fn generic_internal_linear_layer<AF>(state: &mut [AF; 16])
fn generic_internal_linear_layer<AF>(state: &mut [AF; 16])
Perform the internal matrix multiplication for any Abstract field
which implements multiplication by MontyField31 elements.
Source§impl InternalLayerBaseParameters<BabyBearParameters, 24> for BabyBearInternalLayerParameters
impl InternalLayerBaseParameters<BabyBearParameters, 24> for BabyBearInternalLayerParameters
Source§fn internal_layer_mat_mul(
state: &mut [MontyField31<BabyBearParameters>; 24],
sum: MontyField31<BabyBearParameters>,
)
fn internal_layer_mat_mul( state: &mut [MontyField31<BabyBearParameters>; 24], sum: MontyField31<BabyBearParameters>, )
Perform the internal matrix multiplication: s -> (1 + Diag(V))s.
We ignore state[0]
as it is handled separately.
const INTERNAL_DIAG_MONTY: [BabyBear; 24] = INTERNAL_DIAG_MONTY_24
type ArrayLike = [MontyField31<BabyBearParameters>; 23]
Source§fn generic_internal_linear_layer<AF>(state: &mut [AF; 24])
fn generic_internal_linear_layer<AF>(state: &mut [AF; 24])
Perform the internal matrix multiplication for any Abstract field
which implements multiplication by MontyField31 elements.
Source§impl MontyParameters for BabyBearParameters
impl MontyParameters for BabyBearParameters
Source§impl PartialEq for BabyBearParameters
impl PartialEq for BabyBearParameters
Source§impl TwoAdicData for BabyBearParameters
impl TwoAdicData for BabyBearParameters
Source§const TWO_ADICITY: usize = 27usize
const TWO_ADICITY: usize = 27usize
Largest n such that 2^n divides p - 1.
Source§const TWO_ADIC_GENERATORS: Self::ArrayLike = _
const TWO_ADIC_GENERATORS: Self::ArrayLike = _
A list of generators of 2-adic subgroups.
The i’th element must be a 2^i root of unity and the i’th element squared must be the i-1’th element.
Source§const ROOTS_8: Self::ArrayLike = _
const ROOTS_8: Self::ArrayLike = _
Precomputation of the first 3 8th-roots of unity. Read more
Source§const INV_ROOTS_8: Self::ArrayLike = _
const INV_ROOTS_8: Self::ArrayLike = _
Precomputation of the inverses of ROOTS_8.
Source§const ROOTS_16: Self::ArrayLike = _
const ROOTS_16: Self::ArrayLike = _
Precomputation of the first 7 16th-roots of unity. Read more
Source§const INV_ROOTS_16: Self::ArrayLike = _
const INV_ROOTS_16: Self::ArrayLike = _
Precomputation of the inverses of ROOTS_16.
Source§type ArrayLike = &'static [MontyField31<BabyBearParameters>]
type ArrayLike = &'static [MontyField31<BabyBearParameters>]
ArrayLike should usually be
&'static [MontyField31]
.Source§const ODD_FACTOR: i32 = _
const ODD_FACTOR: i32 = _
The odd constant r such that p = r * 2^n + 1
impl Copy for BabyBearParameters
impl Eq for BabyBearParameters
impl InternalLayerParameters<BabyBearParameters, 16> for BabyBearInternalLayerParameters
impl InternalLayerParameters<BabyBearParameters, 24> for BabyBearInternalLayerParameters
impl PackedMontyParameters for BabyBearParameters
impl StructuralPartialEq for BabyBearParameters
Auto Trait Implementations§
impl Freeze for BabyBearParameters
impl RefUnwindSafe for BabyBearParameters
impl Send for BabyBearParameters
impl Sync for BabyBearParameters
impl Unpin for BabyBearParameters
impl UnwindSafe for BabyBearParameters
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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