Trait snarkvm_curves::traits::group::Group[][src]

pub trait Group: ToBytes + FromBytes + Copy + Clone + Debug + Display + Default + Send + Sync + 'static + Eq + Hash + Neg<Output = Self> + UniformRand + Zero + for<'a> Add<&'a Self, Output = Self> + for<'a> Sub<&'a Self, Output = Self> + for<'a> AddAssign<&'a Self> + for<'a> SubAssign<&'a Self> {
    type ScalarField: PrimeField + Into<<Self::ScalarField as PrimeField>::BigInteger>;
    #[must_use]
    fn double(&self) -> Self;
fn double_in_place(&mut self) -> &mut Self; #[must_use] fn mul(&self, other: &Self::ScalarField) -> Self { ... }
fn mul_assign(&mut self, other: &Self::ScalarField) { ... } }

Associated Types

Required methods

#[must_use]
fn double(&self) -> Self
[src]

Returns self + self.

fn double_in_place(&mut self) -> &mut Self[src]

Sets self := self + self.

Provided methods

#[must_use]
fn mul(&self, other: &Self::ScalarField) -> Self
[src]

fn mul_assign(&mut self, other: &Self::ScalarField)[src]

Implementors

impl<C: ProjectiveCurve> Group for C[src]

type ScalarField = C::ScalarField

#[must_use]
fn double(&self) -> Self
[src]

fn double_in_place(&mut self) -> &mut Self[src]

impl<P: Parameters> Group for GroupAffine<P>[src]

type ScalarField = P::ScalarField

#[must_use]
fn double(&self) -> Self
[src]

fn double_in_place(&mut self) -> &mut Self[src]