Struct snarkvm_circuit_types_scalar::Scalar
source · pub struct Scalar<E: Environment> { /* private fields */ }
Implementations§
source§impl<E: Environment> Scalar<E>
impl<E: Environment> Scalar<E>
sourcepub fn from_field_lossy(field: Field<E>) -> Self
pub fn from_field_lossy(field: Field<E>) -> Self
Casts a scalar from a base field, with lossy truncation.
This method is commonly-used by hash-to-scalar algorithms, where the hash output does not need to preserve the full base field.
Trait Implementations§
source§impl<E: Environment> AddAssign<&Scalar<E>> for Scalar<E>
impl<E: Environment> AddAssign<&Scalar<E>> for Scalar<E>
source§fn add_assign(&mut self, other: &Scalar<E>)
fn add_assign(&mut self, other: &Scalar<E>)
Performs the
+=
operation. Read moresource§impl<E: Environment> AddAssign<Scalar<E>> for Scalar<E>
impl<E: Environment> AddAssign<Scalar<E>> for Scalar<E>
source§fn add_assign(&mut self, other: Scalar<E>)
fn add_assign(&mut self, other: Scalar<E>)
Performs the
+=
operation. Read moresource§impl<E: Environment> Compare<Scalar<E>> for Scalar<E>
impl<E: Environment> Compare<Scalar<E>> for Scalar<E>
source§fn is_less_than(&self, other: &Self) -> Self::Output
fn is_less_than(&self, other: &Self) -> Self::Output
Returns true
if self
is less than other
.
source§fn is_greater_than(&self, other: &Self) -> Self::Output
fn is_greater_than(&self, other: &Self) -> Self::Output
Returns true
if self
is greater than other
.
source§fn is_less_than_or_equal(&self, other: &Self) -> Self::Output
fn is_less_than_or_equal(&self, other: &Self) -> Self::Output
Returns true
if self
is less than or equal to other
.
source§fn is_greater_than_or_equal(&self, other: &Self) -> Self::Output
fn is_greater_than_or_equal(&self, other: &Self) -> Self::Output
Returns true
if self
is greater than or equal to other
.
type Output = Boolean<E>
source§impl<E: Environment> Debug for Scalar<E>
impl<E: Environment> Debug for Scalar<E>
source§impl<E: Environment> Display for Scalar<E>
impl<E: Environment> Display for Scalar<E>
source§impl<E: Environment> Eject for Scalar<E>
impl<E: Environment> Eject for Scalar<E>
source§fn eject_mode(&self) -> Mode
fn eject_mode(&self) -> Mode
Ejects the mode of the scalar.
source§fn eject_value(&self) -> Self::Primitive
fn eject_value(&self) -> Self::Primitive
Ejects the scalar circuit as a console scalar.
type Primitive = Scalar<<E as Environment>::Network>
source§fn eject(&self) -> (Mode, Self::Primitive)
fn eject(&self) -> (Mode, Self::Primitive)
Ejects the mode and primitive value of the circuit type.
source§fn is_constant(&self) -> bool
fn is_constant(&self) -> bool
Returns
true
if the circuit is a constant.source§fn is_private(&self) -> bool
fn is_private(&self) -> bool
Returns
true
if the circuit is a private.source§impl<E: Environment> Equal<Scalar<E>> for Scalar<E>
impl<E: Environment> Equal<Scalar<E>> for Scalar<E>
source§impl<E: Environment> From<&Scalar<E>> for LinearCombination<E::BaseField>
impl<E: Environment> From<&Scalar<E>> for LinearCombination<E::BaseField>
source§impl<E: Environment> From<Scalar<E>> for LinearCombination<E::BaseField>
impl<E: Environment> From<Scalar<E>> for LinearCombination<E::BaseField>
source§impl<E: Environment> FromBits for Scalar<E>
impl<E: Environment> FromBits for Scalar<E>
source§fn from_bits_le(bits_le: &[Self::Boolean]) -> Self
fn from_bits_le(bits_le: &[Self::Boolean]) -> Self
Initializes a new scalar field element from a list of little-endian bits.
- If
bits_le
is longer thanE::ScalarField::size_in_bits()
, the excess bits are enforced to be0
s. - If
bits_le
is shorter thanE::ScalarField::size_in_bits()
, it is padded with0
s up to scalar field size.
source§fn from_bits_be(bits_be: &[Self::Boolean]) -> Self
fn from_bits_be(bits_be: &[Self::Boolean]) -> Self
Initializes a new scalar field element from a list of big-endian bits without leading zeros.
type Boolean = Boolean<E>
source§impl<E: Environment> FromField for Scalar<E>
impl<E: Environment> FromField for Scalar<E>
source§fn from_field(field: Self::Field) -> Self
fn from_field(field: Self::Field) -> Self
Casts a scalar from a base field element.
This method guarantees the following:
- If the field element is larger than the scalar field modulus, then the operation will fail.
- If the field element is smaller than the scalar field modulus, then the operation will succeed.
- This is particularly useful for the case where a user called,
Scalar::from_field(scalar.to_field())
, and the scalar bit representation is betweensize_in_data_bits < bits.len() < size_in_bits
.
type Field = Field<E>
source§impl<E: Environment> FromStr for Scalar<E>
impl<E: Environment> FromStr for Scalar<E>
source§impl<E: Environment> Inject for Scalar<E>
impl<E: Environment> Inject for Scalar<E>
source§impl<E: Environment> One for Scalar<E>
impl<E: Environment> One for Scalar<E>
source§impl<E: Environment> OutputMode<dyn Add<Scalar<E>, Output = Scalar<E>>> for Scalar<E>
impl<E: Environment> OutputMode<dyn Add<Scalar<E>, Output = Scalar<E>>> for Scalar<E>
source§impl<E: Environment> Parser for Scalar<E>
impl<E: Environment> Parser for Scalar<E>
source§impl<E: Environment> Ternary for Scalar<E>
impl<E: Environment> Ternary for Scalar<E>
source§impl<E: Environment> ToBits for &Scalar<E>
impl<E: Environment> ToBits for &Scalar<E>
source§impl<E: Environment> ToBits for Scalar<E>
impl<E: Environment> ToBits for Scalar<E>
source§impl<E: Environment> ToField for Scalar<E>
impl<E: Environment> ToField for Scalar<E>
source§impl<E: Environment> ToFields for Scalar<E>
impl<E: Environment> ToFields for Scalar<E>
source§impl<E: Environment> TypeName for Scalar<E>
impl<E: Environment> TypeName for Scalar<E>
source§impl<E: Environment> Zero for Scalar<E>
impl<E: Environment> Zero for Scalar<E>
impl<E: Environment> ScalarTrait for Scalar<E>
Auto Trait Implementations§
impl<E> RefUnwindSafe for Scalar<E>where <E as Environment>::BaseField: UnwindSafe + RefUnwindSafe,
impl<E> !Send for Scalar<E>
impl<E> !Sync for Scalar<E>
impl<E> Unpin for Scalar<E>where <E as Environment>::BaseField: Unpin,
impl<E> UnwindSafe for Scalar<E>where <E as Environment>::BaseField: UnwindSafe + RefUnwindSafe,
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