Trait groupy::CurveProjective [−][src]
pub trait CurveProjective: PartialEq + Eq + Sized + Copy + Clone + Send + Sync + Debug + Display + 'static + Serialize + Deserialize<'static> { type Engine: ScalarEngine<Fr = Self::Scalar>; type Scalar: PrimeField + SqrtField; type Base: SqrtField; type Affine: CurveAffine<Projective = Self, Scalar = Self::Scalar>;}Show methods
fn random<R: RngCore>(rng: &mut R) -> Self; fn zero() -> Self; fn one() -> Self; fn is_zero(&self) -> bool; fn batch_normalization<S: BorrowMut<Self>>(v: &mut [S]); fn is_normalized(&self) -> bool; fn double(&mut self); fn add_assign(&mut self, other: &Self); fn add_assign_mixed(&mut self, other: &Self::Affine); fn negate(&mut self); fn mul_assign<S: Into<<Self::Scalar as PrimeField>::Repr>>(
&mut self,
other: S
); fn into_affine(&self) -> Self::Affine; fn recommended_wnaf_for_scalar(
scalar: <Self::Scalar as PrimeField>::Repr
) -> usize; fn recommended_wnaf_for_num_scalars(num_scalars: usize) -> usize; fn hash(msg: &[u8]) -> Self; fn sub_assign(&mut self, other: &Self) { ... }
Expand description
Projective representation of an elliptic curve point guaranteed to be in the correct prime order subgroup.
Associated Types
type Engine: ScalarEngine<Fr = Self::Scalar>
[src]
type Scalar: PrimeField + SqrtField
[src]
type Base: SqrtField
[src]
type Affine: CurveAffine<Projective = Self, Scalar = Self::Scalar>
[src]
Required methods
fn random<R: RngCore>(rng: &mut R) -> Self
[src]
fn random<R: RngCore>(rng: &mut R) -> Self
[src]Returns an element chosen uniformly at random using a user-provided RNG.
fn batch_normalization<S: BorrowMut<Self>>(v: &mut [S])
[src]
fn batch_normalization<S: BorrowMut<Self>>(v: &mut [S])
[src]Normalizes a slice of projective elements so that conversion to affine is cheap.
fn is_normalized(&self) -> bool
[src]
fn is_normalized(&self) -> bool
[src]Checks if the point is already “normalized” so that cheap affine conversion is possible.
fn add_assign(&mut self, other: &Self)
[src]
fn add_assign(&mut self, other: &Self)
[src]Adds another element to this element.
fn add_assign_mixed(&mut self, other: &Self::Affine)
[src]
fn add_assign_mixed(&mut self, other: &Self::Affine)
[src]Adds an affine element to this element.
fn mul_assign<S: Into<<Self::Scalar as PrimeField>::Repr>>(&mut self, other: S)
[src]
fn mul_assign<S: Into<<Self::Scalar as PrimeField>::Repr>>(&mut self, other: S)
[src]Performs scalar multiplication of this element.
fn into_affine(&self) -> Self::Affine
[src]
fn into_affine(&self) -> Self::Affine
[src]Converts this element into its affine representation.
fn recommended_wnaf_for_scalar(
scalar: <Self::Scalar as PrimeField>::Repr
) -> usize
[src]
fn recommended_wnaf_for_scalar(
scalar: <Self::Scalar as PrimeField>::Repr
) -> usize
[src]Recommends a wNAF window table size given a scalar. Always returns a number between 2 and 22, inclusive.
fn recommended_wnaf_for_num_scalars(num_scalars: usize) -> usize
[src]
fn recommended_wnaf_for_num_scalars(num_scalars: usize) -> usize
[src]Recommends a wNAF window size given the number of scalars you intend to multiply a base by. Always returns a number between 2 and 22, inclusive.
fn hash(msg: &[u8]) -> Self
[src]
Provided methods
fn sub_assign(&mut self, other: &Self)
[src]
fn sub_assign(&mut self, other: &Self)
[src]Subtracts another element from this element.