pub struct Polynomial<F: Field>(pub Array<Elem<F>, U256>);Expand description
A Polynomial is a member of the ring R_q = Z_q[X] / (X^256) of degree-256 polynomials
over the finite field with prime order q. Polynomials can be added, subtracted, negated,
and multiplied by field elements. We do not define multiplication of polynomials here.
Tuple Fields§
§0: Array<Elem<F>, U256>Implementations§
Trait Implementations§
Source§impl<F: Field> Add<&Polynomial<F>> for &Polynomial<F>
impl<F: Field> Add<&Polynomial<F>> for &Polynomial<F>
Source§type Output = Polynomial<F>
type Output = Polynomial<F>
The resulting type after applying the
+ operator.Source§fn add(self, rhs: &Polynomial<F>) -> Polynomial<F>
fn add(self, rhs: &Polynomial<F>) -> Polynomial<F>
Performs the
+ operation. Read moreSource§impl AlgebraExt for Polynomial<BaseField>
impl AlgebraExt for Polynomial<BaseField>
Source§impl<A, B> BitPack<A, B> for Polynomial<BaseField>where
(A, B): RangeEncodingSize,
impl<A, B> BitPack<A, B> for Polynomial<BaseField>where
(A, B): RangeEncodingSize,
type PackedSize = <<(A, B) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize
fn pack( &self, ) -> Array<u8, <<(A, B) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize>
fn unpack( enc: &Array<u8, <<(A, B) as RangeEncodingSize>::EncodingSize as EncodingSize>::EncodedPolynomialSize>, ) -> Self
Source§impl<F: Clone + Field> Clone for Polynomial<F>
impl<F: Clone + Field> Clone for Polynomial<F>
Source§fn clone(&self) -> Polynomial<F>
fn clone(&self) -> Polynomial<F>
Returns a duplicate 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<F: Default + Field> Default for Polynomial<F>
impl<F: Default + Field> Default for Polynomial<F>
Source§fn default() -> Polynomial<F>
fn default() -> Polynomial<F>
Returns the “default value” for a type. Read more
Source§impl<F: Field, D: EncodingSize> Encode<D> for Polynomial<F>
impl<F: Field, D: EncodingSize> Encode<D> for Polynomial<F>
type EncodedSize = <D as EncodingSize>::EncodedPolynomialSize
fn encode(&self) -> Array<u8, Self::EncodedSize>
fn decode(enc: &Array<u8, Self::EncodedSize>) -> Self
Source§impl<F: Field> Mul<&Polynomial<F>> for Elem<F>
impl<F: Field> Mul<&Polynomial<F>> for Elem<F>
Source§type Output = Polynomial<F>
type Output = Polynomial<F>
The resulting type after applying the
* operator.Source§fn mul(self, rhs: &Polynomial<F>) -> Polynomial<F>
fn mul(self, rhs: &Polynomial<F>) -> Polynomial<F>
Performs the
* operation. Read moreSource§impl<F: Field> Neg for &Polynomial<F>
impl<F: Field> Neg for &Polynomial<F>
Source§type Output = Polynomial<F>
type Output = Polynomial<F>
The resulting type after applying the
- operator.Source§fn neg(self) -> Polynomial<F>
fn neg(self) -> Polynomial<F>
Performs the unary
- operation. Read moreSource§impl Ntt for Polynomial<BaseField>
impl Ntt for Polynomial<BaseField>
Source§impl<F: Field> Sub<&Polynomial<F>> for &Polynomial<F>
impl<F: Field> Sub<&Polynomial<F>> for &Polynomial<F>
Source§type Output = Polynomial<F>
type Output = Polynomial<F>
The resulting type after applying the
- operator.Source§fn sub(self, rhs: &Polynomial<F>) -> Polynomial<F>
fn sub(self, rhs: &Polynomial<F>) -> Polynomial<F>
Performs the
- operation. Read moreimpl<F: Field> StructuralPartialEq for Polynomial<F>
Auto Trait Implementations§
impl<F> Freeze for Polynomial<F>
impl<F> RefUnwindSafe for Polynomial<F>
impl<F> Send for Polynomial<F>
impl<F> Sync for Polynomial<F>
impl<F> Unpin for Polynomial<F>
impl<F> UnwindSafe for Polynomial<F>
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