[][src]Struct algebraics::polynomial::Polynomial

pub struct Polynomial<T: PolynomialCoefficient> { /* fields omitted */ }

A single-variable polynomial.

the term at index n is self.coefficients()[n] * pow(x, n)

Invariants

self.coefficients().last() is either None or Some(v) where !v.is_zero()

Methods

impl<T: PolynomialCoefficient> Polynomial<T>[src]

pub fn checked_pseudo_div_rem(self, rhs: &Self) -> Option<PseudoDivRem<T>>[src]

pub fn pseudo_div_rem(self, rhs: &Self) -> PseudoDivRem<T>[src]

pub fn exact_pseudo_div(self, rhs: &Self) -> (Polynomial<T>, T)[src]

pub fn checked_exact_pseudo_div(self, rhs: &Self) -> Option<(Polynomial<T>, T)>[src]

impl<T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> Polynomial<T>[src]

pub fn checked_div_rem(self, rhs: &Self) -> Option<(Self, Self)>[src]

pub fn div_rem(self, rhs: &Self) -> (Self, Self)[src]

impl<T: PolynomialDivSupported> Polynomial<T>[src]

pub fn checked_powmod<E: Clone + Integer>(
    &self,
    exponent: E,
    modulus: &Self
) -> Option<Self>
[src]

pub fn powmod<E: Clone + Integer>(&self, exponent: E, modulus: &Self) -> Self[src]

impl Polynomial<BigInt>[src]

pub fn factor_with_rng<R: Rng + ?Sized>(
    &self,
    rng: &mut R
) -> PolynomialFactors<BigInt>
[src]

pub fn factor(&self) -> PolynomialFactors<BigInt>[src]

impl<T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> Polynomial<T>[src]

pub fn subresultant_gcd(self, rhs: Self) -> Polynomial<T>[src]

returns the non-reduced GCD computed from the subresultant remainder sequence.

The algorithm used is derived from the one given in http://web.archive.org/web/20190221040758/https://pdfs.semanticscholar.org/2e6b/95ba84e2160748ba8fc310cdc408fc9bbade.pdf

pub fn nonzero_resultant(self, rhs: Self) -> Option<T>[src]

pub fn resultant(self, rhs: Self) -> T where
    T: Zero
[src]

impl<T: PolynomialCoefficient> Polynomial<T>[src]

pub fn is_one(&self) -> bool[src]

impl<T: PolynomialCoefficient> Polynomial<T>[src]

pub fn make_monomial(coefficient: T, variable_exponent: usize) -> Self[src]

pub fn nonzero_coefficient(&self, index: usize) -> Option<T>[src]

pub fn coefficient(&self, index: usize) -> T where
    T: Zero
[src]

pub fn nonzero_highest_power_coefficient(&self) -> Option<T>[src]

pub fn highest_power_coefficient(&self) -> T where
    T: Zero
[src]

pub fn into_coefficients(self) -> Vec<T>[src]

pub fn split_out_divisor(self) -> (Vec<T::Element>, T::Divisor)[src]

Important traits for Iter<'_, T>
pub fn iter(&self) -> Iter<T>[src]

pub fn len(&self) -> usize[src]

pub fn is_empty(&self) -> bool[src]

pub fn degree(&self) -> Option<usize>[src]

pub fn negate(&mut self)[src]

pub fn nonzero_content(&self) -> Option<T> where
    T: GCD<Output = T> + PartialOrd
[src]

returns greatest common divisor of all coefficients

pub fn content(&self) -> T where
    T: GCD<Output = T> + PartialOrd + Zero
[src]

returns greatest common divisor of all coefficients

pub fn primitive_part_assign(&mut self) where
    T: GCD<Output = T> + PartialOrd + for<'a> ExactDiv<&'a T, Output = T>, 
[src]

pub fn into_primitive_part(self) -> Self where
    T: GCD<Output = T> + PartialOrd + for<'a> ExactDiv<&'a T, Output = T>, 
[src]

pub fn primitive_part(&self) -> Self where
    T: GCD<Output = T> + PartialOrd + for<'a> ExactDiv<&'a T, Output = T>, 
[src]

pub fn monic_assign(&mut self) where
    T: for<'a> ExactDiv<&'a T, Output = T>, 
[src]

pub fn into_monic(self) -> Self where
    T: for<'a> ExactDiv<&'a T, Output = T>, 
[src]

pub fn nonzero_reducing_factor(&self) -> Option<T> where
    T: PolynomialReducingFactorSupported
[src]

returns the factor f of the passed in polynomial p where p / f is content-free (for integer polynomials) or monic (for polynomials over fields).

pub fn reducing_factor(&self) -> T where
    T: PolynomialReducingFactorSupported + Zero
[src]

returns the factor f of the passed in polynomial p where p / f is content-free (for integer polynomials) or monic (for polynomials over fields). returns zero when p is zero.

pub fn reduce_assign(&mut self) where
    T: PolynomialReducingFactorSupported + for<'a> ExactDiv<&'a T, Output = T>, 
[src]

converts self to be content-free (for integer polynomials) or monic (for polynomials over fields).

pub fn into_reduced(self) -> Self where
    T: PolynomialReducingFactorSupported + for<'a> ExactDiv<&'a T, Output = T>, 
[src]

returns self converted to be content-free (for integer polynomials) or monic (for polynomials over fields).

pub fn to_reduced(&self) -> Self where
    T: PolynomialReducingFactorSupported + for<'a> ExactDiv<&'a T, Output = T>, 
[src]

returns self converted to be content-free (for integer polynomials) or monic (for polynomials over fields).

pub fn to_sturm_sequence(&self) -> Vec<Polynomial<T>> where
    T: PolynomialDivSupported
[src]

pub fn into_sturm_sequence(self) -> Vec<Polynomial<T>> where
    T: PolynomialDivSupported
[src]

pub fn to_primitive_sturm_sequence(&self) -> Vec<Polynomial<T>> where
    T: GCD<Output = T> + PartialOrd + for<'a> ExactDiv<&'a T, Output = T>, 
[src]

pub fn into_primitive_sturm_sequence(self) -> Vec<Polynomial<T>> where
    T: GCD<Output = T> + PartialOrd + for<'a> ExactDiv<&'a T, Output = T>, 
[src]

pub fn into_derivative(self) -> Self[src]

pub fn derivative(&self) -> Self[src]

pub fn eval_generic<V: for<'a> Mul<&'a V, Output = V> + Add<T, Output = V>>(
    &self,
    at: &V,
    zero: V
) -> V
[src]

pub fn into_eval_generic<V: for<'a> Mul<&'a V, Output = V> + Add<T, Output = V>>(
    self,
    at: &V,
    zero: V
) -> V
[src]

pub fn eval(&self, at: &T) -> T[src]

pub fn into_eval(self, at: &T) -> T[src]

pub fn set_one_if_nonzero(&mut self) -> Result<(), ()>[src]

pub fn into_one_if_nonzero(self) -> Result<Self, Self>[src]

#[must_use] pub fn to_one_if_nonzero(&self) -> Option<Self>[src]

#[must_use] pub fn nonzero_max_norm(&self) -> Option<T> where
    T: Ord + PolynomialCoefficientAbsSupported
[src]

#[must_use] pub fn max_norm(&self) -> T where
    T: Ord + PolynomialCoefficientAbsSupported + Zero
[src]

#[must_use] pub fn nonzero_manhattan_norm(&self) -> Option<T> where
    T: PolynomialCoefficientAbsSupported
[src]

#[must_use] pub fn manhattan_norm(&self) -> T where
    T: PolynomialCoefficientAbsSupported + Zero
[src]

impl<T> Polynomial<T> where
    T: PolynomialDivSupported + RingCharacteristic<Type = CharacteristicZero> + PolynomialReducingFactorSupported + GCD<Output = T> + PartialOrd
[src]

pub fn square_free_factorization_using_yuns_algorithm(
    &self
) -> SquareFreePolynomialFactors<T>
[src]

splits self into square-free factors using Yun's algorithm

Note that the returned factors are not necessarily irreducible.

impl<T: PolynomialDivSupported + PolynomialReducingFactorSupported> Polynomial<T>[src]

pub fn is_square_free(&self) -> bool[src]

Trait Implementations

impl<T: PolynomialCoefficient<Divisor = DivisorIsOne, Element = T> + One> PolynomialCoefficient for Polynomial<T> where
    T::Element: Zero + One
[src]

type Element = Polynomial<T>

type Divisor = DivisorIsOne

impl<T> GCD<Polynomial<T>> for Polynomial<T> where
    T: PolynomialCoefficient + PolynomialDivSupported + PolynomialReducingFactorSupported
[src]

type Output = Self

impl<T> ExtendedGCD<Polynomial<T>> for Polynomial<T> where
    T: PolynomialCoefficient + PolynomialDivSupported + PolynomialReducingFactorSupported
[src]

impl<T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> ExactDiv<Polynomial<T>> for Polynomial<T>[src]

impl<'_, T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> ExactDiv<&'_ Polynomial<T>> for Polynomial<T>[src]

type Output = Polynomial<T>

impl<'_, T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> ExactDiv<Polynomial<T>> for &'_ Polynomial<T>[src]

impl<'l, 'r, T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> ExactDiv<&'r Polynomial<T>> for &'l Polynomial<T>[src]

type Output = Polynomial<T>

impl<'a, T: PolynomialCoefficient + for<'b> ExactDiv<&'b T, Output = T>> ExactDiv<&'a T> for &'a Polynomial<T>[src]

type Output = Polynomial<T>

impl<'a, T: PolynomialCoefficient + for<'b> ExactDiv<&'b T, Output = T>> ExactDiv<T> for &'a Polynomial<T>[src]

type Output = Polynomial<T>

impl<'a, T: PolynomialCoefficient + for<'b> ExactDiv<&'b T, Output = T>> ExactDiv<&'a T> for Polynomial<T>[src]

type Output = Polynomial<T>

impl<T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> ExactDiv<T> for Polynomial<T>[src]

type Output = Polynomial<T>

impl<T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> ExactDivAssign<Polynomial<T>> for Polynomial<T>[src]

impl<'_, T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> ExactDivAssign<&'_ Polynomial<T>> for Polynomial<T>[src]

impl<T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> ExactDivAssign<T> for Polynomial<T>[src]

impl<'a, T: PolynomialCoefficient + for<'b> ExactDiv<&'b T, Output = T>> ExactDivAssign<&'a T> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> Into<(Vec<<T as PolynomialCoefficient>::Element>, <T as PolynomialCoefficient>::Divisor)> for Polynomial<T>[src]

impl<'a, T: PolynomialCoefficient> From<Cow<'a, [T]>> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<Vec<T>> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 0]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 1]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 2]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 3]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 4]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 5]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 6]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 7]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 8]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 9]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 10]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 11]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 12]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 13]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 14]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 15]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 16]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 17]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 18]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 19]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 20]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 21]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 22]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 23]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 24]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 25]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 26]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 27]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 28]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 29]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 30]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 31]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<[T; 32]> for Polynomial<T>[src]

impl<'_, T: PolynomialCoefficient> From<&'_ [T]> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<T> for Polynomial<T>[src]

impl<'_, T: PolynomialCoefficient> From<&'_ T> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> From<(Vec<<T as PolynomialCoefficient>::Element>, <T as PolynomialCoefficient>::Divisor)> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> IntoIterator for Polynomial<T>[src]

type Item = T

The type of the elements being iterated over.

type IntoIter = IntoIter<T>

Which kind of iterator are we turning this into?

impl<'a, T: PolynomialCoefficient> IntoIterator for &'a Polynomial<T>[src]

type Item = T

The type of the elements being iterated over.

type IntoIter = Iter<'a, T>

Which kind of iterator are we turning this into?

impl<T: Clone + PolynomialCoefficient> Clone for Polynomial<T> where
    T::Element: Clone,
    T::Divisor: Clone
[src]

impl<T: PolynomialCoefficient> Default for Polynomial<T>[src]

impl<T: Eq + PolynomialCoefficient> Eq for Polynomial<T> where
    T::Element: Eq,
    T::Divisor: Eq
[src]

impl<T: PartialEq + PolynomialCoefficient> PartialEq<Polynomial<T>> for Polynomial<T> where
    T::Element: PartialEq,
    T::Divisor: PartialEq
[src]

impl<T: Display + PolynomialCoefficient> Display for Polynomial<T>[src]

impl<T: Debug + PolynomialCoefficient> Debug for Polynomial<T> where
    T::Element: Debug,
    T::Divisor: Debug
[src]

impl<T: PolynomialDivSupported> Div<Polynomial<T>> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the / operator.

impl<'_, T: PolynomialDivSupported> Div<&'_ Polynomial<T>> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the / operator.

impl<'_, T: PolynomialDivSupported> Div<Polynomial<T>> for &'_ Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the / operator.

impl<'a, 'b, T: PolynomialDivSupported> Div<&'a Polynomial<T>> for &'b Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the / operator.

impl<'a, T: PolynomialCoefficient + for<'b> ExactDiv<&'b T, Output = T>> Div<&'a T> for &'a Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the / operator.

impl<'a, T: PolynomialCoefficient + for<'b> ExactDiv<&'b T, Output = T>> Div<T> for &'a Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the / operator.

impl<'a, T: PolynomialCoefficient + for<'b> ExactDiv<&'b T, Output = T>> Div<&'a T> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the / operator.

impl<T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> Div<T> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the / operator.

impl<T: PolynomialDivSupported> Rem<Polynomial<T>> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the % operator.

impl<'_, T: PolynomialDivSupported> Rem<&'_ Polynomial<T>> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the % operator.

impl<'_, T: PolynomialDivSupported> Rem<Polynomial<T>> for &'_ Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the % operator.

impl<'a, 'b, T: PolynomialDivSupported> Rem<&'a Polynomial<T>> for &'b Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the % operator.

impl<T: PolynomialCoefficient> Sub<Polynomial<T>> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the - operator.

impl<'a, T: PolynomialCoefficient> Sub<&'a Polynomial<T>> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the - operator.

impl<'a, T: PolynomialCoefficient> Sub<Polynomial<T>> for &'a Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the - operator.

impl<'a, T: PolynomialCoefficient> Sub<&'a Polynomial<T>> for &'a Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the - operator.

impl<T: PolynomialCoefficient> Sub<T> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the - operator.

impl<'a, T: PolynomialCoefficient> Sub<&'a T> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the - operator.

impl<'a, T: PolynomialCoefficient> Sub<T> for &'a Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the - operator.

impl<'a, T: PolynomialCoefficient> Sub<&'a T> for &'a Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the - operator.

impl<T: PolynomialCoefficient> Add<Polynomial<T>> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the + operator.

impl<'a, T: PolynomialCoefficient> Add<&'a Polynomial<T>> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the + operator.

impl<'a, T: PolynomialCoefficient> Add<Polynomial<T>> for &'a Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the + operator.

impl<'a, T: PolynomialCoefficient> Add<&'a Polynomial<T>> for &'a Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the + operator.

impl<T: PolynomialCoefficient> Add<T> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the + operator.

impl<'a, T: PolynomialCoefficient> Add<&'a T> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the + operator.

impl<'a, T: PolynomialCoefficient> Add<T> for &'a Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the + operator.

impl<'a, T: PolynomialCoefficient> Add<&'a T> for &'a Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the + operator.

impl<'a, T: PolynomialCoefficient> Mul<&'a Polynomial<T>> for &'a Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the * operator.

impl<'a, T: PolynomialCoefficient> Mul<Polynomial<T>> for &'a Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the * operator.

impl<'a, T: PolynomialCoefficient> Mul<&'a Polynomial<T>> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the * operator.

impl<T: PolynomialCoefficient> Mul<Polynomial<T>> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the * operator.

impl<'a, T: PolynomialCoefficient> Mul<&'a T> for &'a Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the * operator.

impl<'a, T: PolynomialCoefficient> Mul<T> for &'a Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the * operator.

impl<'a, T: PolynomialCoefficient> Mul<&'a T> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the * operator.

impl<T: PolynomialCoefficient> Mul<T> for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the * operator.

impl<T: PolynomialCoefficient> Neg for Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the - operator.

impl<'_, T: PolynomialCoefficient> Neg for &'_ Polynomial<T>[src]

type Output = Polynomial<T>

The resulting type after applying the - operator.

impl<T: PolynomialCoefficient> AddAssign<Polynomial<T>> for Polynomial<T>[src]

impl<'a, T: PolynomialCoefficient> AddAssign<&'a Polynomial<T>> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> AddAssign<T> for Polynomial<T>[src]

impl<'a, T: PolynomialCoefficient> AddAssign<&'a T> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> SubAssign<Polynomial<T>> for Polynomial<T>[src]

impl<'a, T: PolynomialCoefficient> SubAssign<&'a Polynomial<T>> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> SubAssign<T> for Polynomial<T>[src]

impl<'a, T: PolynomialCoefficient> SubAssign<&'a T> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> MulAssign<Polynomial<T>> for Polynomial<T>[src]

impl<'a, T: PolynomialCoefficient> MulAssign<&'a Polynomial<T>> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> MulAssign<T> for Polynomial<T>[src]

impl<'a, T: PolynomialCoefficient> MulAssign<&'a T> for Polynomial<T>[src]

impl<T: PolynomialDivSupported> DivAssign<Polynomial<T>> for Polynomial<T>[src]

impl<'_, T: PolynomialDivSupported> DivAssign<&'_ Polynomial<T>> for Polynomial<T>[src]

impl<T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> DivAssign<T> for Polynomial<T>[src]

impl<'a, T: PolynomialCoefficient + for<'b> ExactDiv<&'b T, Output = T>> DivAssign<&'a T> for Polynomial<T>[src]

impl<T: PolynomialDivSupported> RemAssign<Polynomial<T>> for Polynomial<T>[src]

impl<'_, T: PolynomialDivSupported> RemAssign<&'_ Polynomial<T>> for Polynomial<T>[src]

impl<T: Hash + PolynomialCoefficient> Hash for Polynomial<T> where
    T::Element: Hash,
    T::Divisor: Hash
[src]

impl<T: PolynomialCoefficient> StructuralPartialEq for Polynomial<T>[src]

impl<T: PolynomialCoefficient> StructuralEq for Polynomial<T>[src]

impl<T: PolynomialCoefficient> FromIterator<T> for Polynomial<T>[src]

impl<T: PolynomialCoefficient> CheckedAdd for Polynomial<T>[src]

impl<T: PolynomialDivSupported> CheckedDiv for Polynomial<T>[src]

impl<T: PolynomialCoefficient> CheckedMul for Polynomial<T>[src]

impl<T: PolynomialCoefficient> CheckedSub for Polynomial<T>[src]

impl<T: PolynomialCoefficient + FromPrimitive> FromPrimitive for Polynomial<T>[src]

impl<T: PolynomialCoefficient> One for Polynomial<T> where
    T::Element: One
[src]

impl<'_, T: PolynomialCoefficient, E: Integer + Clone> Pow<E> for &'_ Polynomial<T>[src]

type Output = Polynomial<T>

The result after applying the operator.

impl<T: PolynomialCoefficient, E: Integer + Clone> Pow<E> for Polynomial<T>[src]

type Output = Polynomial<T>

The result after applying the operator.

impl<T: PolynomialCoefficient + ToPrimitive> ToPrimitive for Polynomial<T>[src]

impl<T: PolynomialCoefficient> Zero for Polynomial<T>[src]

impl<T: PolynomialDivSupported> CheckedRem for Polynomial<T>[src]

Auto Trait Implementations

impl<T> Send for Polynomial<T> where
    <T as PolynomialCoefficient>::Divisor: Send,
    <T as PolynomialCoefficient>::Element: Send

impl<T> Sync for Polynomial<T> where
    <T as PolynomialCoefficient>::Divisor: Sync,
    <T as PolynomialCoefficient>::Element: Sync

impl<T> Unpin for Polynomial<T> where
    <T as PolynomialCoefficient>::Divisor: Unpin,
    <T as PolynomialCoefficient>::Element: Unpin

impl<T> UnwindSafe for Polynomial<T> where
    <T as PolynomialCoefficient>::Divisor: UnwindSafe,
    <T as PolynomialCoefficient>::Element: UnwindSafe

impl<T> RefUnwindSafe for Polynomial<T> where
    <T as PolynomialCoefficient>::Divisor: RefUnwindSafe,
    <T as PolynomialCoefficient>::Element: RefUnwindSafe

Blanket Implementations

impl<T> PolynomialCoefficientElement for T where
    T: Neg<Output = T> + AddAssign<T> + AddAssign<&'a T> + SubAssign<T> + SubAssign<&'a T> + MulAssign<T> + MulAssign<&'a T> + PolynomialCoefficient<Divisor = DivisorIsOne, Output = T, Output = T, Output = T, Output = T, Output = T, Output = T> + Add<T> + Add<&'a T> + Sub<T> + Sub<&'a T> + Mul<T> + Mul<&'a T>, 
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T> From<!> for T[src]

impl<I> IntoIterator for I where
    I: Iterator
[src]

type Item = <I as Iterator>::Item

The type of the elements being iterated over.

type IntoIter = I

Which kind of iterator are we turning this into?

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T, Rhs, Output> NumOps<Rhs, Output> for T where
    T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>, 
[src]

impl<T, Base> RefNum<Base> for T where
    T: NumOps<Base, Base> + NumOps<&'r Base, Base>, 
[src]

impl<T, Rhs> NumAssignOps<Rhs> for T where
    T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>, 
[src]