binius_field::arch

Type Alias OptimalUnderlier256b

Source
pub type OptimalUnderlier256b = ScaledUnderlier<OptimalUnderlier128b, 2>;

Aliased Type§

struct OptimalUnderlier256b(pub [M128; 2]);

Fields§

§0: [M128; 2]

Trait Implementations

Source§

impl<U: Clone, const N: usize> Clone for ScaledUnderlier<U, N>

Source§

fn clone(&self) -> ScaledUnderlier<U, N>

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<U: ConstantTimeEq, const N: usize> ConstantTimeEq for ScaledUnderlier<U, N>

Source§

fn ct_eq(&self, other: &Self) -> Choice

Determine if two items are equal. Read more
Source§

fn ct_ne(&self, other: &Self) -> Choice

Determine if two items are NOT equal. Read more
Source§

impl<U: Debug, const N: usize> Debug for ScaledUnderlier<U, N>

Source§

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

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

impl<U: Default, const N: usize> Default for ScaledUnderlier<U, N>

Source§

fn default() -> Self

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

impl<U, const N: usize> Divisible<U> for ScaledUnderlier<U, N>
where Self: UnderlierType, U: UnderlierType,

Source§

type Array = [U; N]

This is actually [U; Self::WIDTH] but we can’t use it as the default value in the trait definition without generic_const_exprs feature enabled.
Source§

fn split_val(self) -> Self::Array

Source§

fn split_ref(&self) -> &[U]

Source§

fn split_mut(&mut self) -> &mut [U]

Source§

const WIDTH: usize = _

Source§

fn split_slice(values: &[Self]) -> &[U]

Source§

fn split_slice_mut(values: &mut [Self]) -> &mut [U]

Source§

impl Divisible<u128> for ScaledUnderlier<M128, 2>

Source§

type Array = [u128; 2]

This is actually [U; Self::WIDTH] but we can’t use it as the default value in the trait definition without generic_const_exprs feature enabled.
Source§

fn split_val(self) -> Self::Array

Source§

fn split_ref(&self) -> &[u128]

Source§

fn split_mut(&mut self) -> &mut [u128]

Source§

const WIDTH: usize = _

Source§

fn split_slice(values: &[Self]) -> &[U]

Source§

fn split_slice_mut(values: &mut [Self]) -> &mut [U]

Source§

impl Divisible<u16> for ScaledUnderlier<M128, 2>

Source§

type Array = [u16; 16]

This is actually [U; Self::WIDTH] but we can’t use it as the default value in the trait definition without generic_const_exprs feature enabled.
Source§

fn split_val(self) -> Self::Array

Source§

fn split_ref(&self) -> &[u16]

Source§

fn split_mut(&mut self) -> &mut [u16]

Source§

const WIDTH: usize = _

Source§

fn split_slice(values: &[Self]) -> &[U]

Source§

fn split_slice_mut(values: &mut [Self]) -> &mut [U]

Source§

impl Divisible<u32> for ScaledUnderlier<M128, 2>

Source§

type Array = [u32; 8]

This is actually [U; Self::WIDTH] but we can’t use it as the default value in the trait definition without generic_const_exprs feature enabled.
Source§

fn split_val(self) -> Self::Array

Source§

fn split_ref(&self) -> &[u32]

Source§

fn split_mut(&mut self) -> &mut [u32]

Source§

const WIDTH: usize = _

Source§

fn split_slice(values: &[Self]) -> &[U]

Source§

fn split_slice_mut(values: &mut [Self]) -> &mut [U]

Source§

impl Divisible<u64> for ScaledUnderlier<M128, 2>

Source§

type Array = [u64; 4]

This is actually [U; Self::WIDTH] but we can’t use it as the default value in the trait definition without generic_const_exprs feature enabled.
Source§

fn split_val(self) -> Self::Array

Source§

fn split_ref(&self) -> &[u64]

Source§

fn split_mut(&mut self) -> &mut [u64]

Source§

const WIDTH: usize = _

Source§

fn split_slice(values: &[Self]) -> &[U]

Source§

fn split_slice_mut(values: &mut [Self]) -> &mut [U]

Source§

impl Divisible<u8> for ScaledUnderlier<M128, 2>

Source§

type Array = [u8; 32]

This is actually [U; Self::WIDTH] but we can’t use it as the default value in the trait definition without generic_const_exprs feature enabled.
Source§

fn split_val(self) -> Self::Array

Source§

fn split_ref(&self) -> &[u8]

Source§

fn split_mut(&mut self) -> &mut [u8]

Source§

const WIDTH: usize = _

Source§

fn split_slice(values: &[Self]) -> &[U]

Source§

fn split_slice_mut(values: &mut [Self]) -> &mut [U]

Source§

impl<T: Copy, U: From<[T; 2]>> From<[T; 4]> for ScaledUnderlier<U, 2>

Source§

fn from(value: [T; 4]) -> Self

Converts to this type from the input type.
Source§

impl<T, U: From<T>, const N: usize> From<[T; N]> for ScaledUnderlier<U, N>

Source§

fn from(value: [T; N]) -> Self

Converts to this type from the input type.
Source§

impl<U: Ord, const N: usize> Ord for ScaledUnderlier<U, N>

Source§

fn cmp(&self, other: &ScaledUnderlier<U, N>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl<U, F, const N: usize> PackScalar<F> for ScaledUnderlier<U, N>
where U: PackScalar<F> + UnderlierType + Pod, F: Field, ScaledPackedField<U::Packed, N>: PackedField<Scalar = F> + WithUnderlier<Underlier = Self>,

Source§

type Packed = ScaledPackedField<<U as PackScalar<F>>::Packed, N>

Source§

impl<U: PartialEq, const N: usize> PartialEq for ScaledUnderlier<U, N>

Source§

fn eq(&self, other: &ScaledUnderlier<U, N>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<U: PartialOrd, const N: usize> PartialOrd for ScaledUnderlier<U, N>

Source§

fn partial_cmp(&self, other: &ScaledUnderlier<U, N>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<U: Random, const N: usize> Random for ScaledUnderlier<U, N>

Source§

fn random(rng: impl RngCore) -> Self

Generate random value
Source§

impl<U: UnderlierType + Pod, const N: usize> UnderlierType for ScaledUnderlier<U, N>

Source§

const LOG_BITS: usize = _

Number of bits in value
Source§

const BITS: usize = _

Number of bits used to represent a value. This may not be equal to the number of bits in a type instance.
Source§

impl<U: Zeroable, const N: usize> Zeroable for ScaledUnderlier<U, N>

§

fn zeroed() -> Self

Source§

impl<U: Copy, const N: usize> Copy for ScaledUnderlier<U, N>

Source§

impl<U: Eq, const N: usize> Eq for ScaledUnderlier<U, N>

Source§

impl<U: Pod, const N: usize> Pod for ScaledUnderlier<U, N>

Source§

impl<U, const N: usize> StructuralPartialEq for ScaledUnderlier<U, N>