[−][src]Struct algebraics::polynomial::Polynomial
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]
&self,
exponent: E,
modulus: &Self
) -> Option<Self>
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]
&self,
rng: &mut R
) -> PolynomialFactors<BigInt>
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]
T: Zero,
impl<T: PolynomialCoefficient> Polynomial<T>
[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]
T: Zero,
pub fn nonzero_highest_power_coefficient(&self) -> Option<T>
[src]
pub fn highest_power_coefficient(&self) -> T where
T: Zero,
[src]
T: Zero,
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]
T: GCD<Output = T> + PartialOrd,
returns greatest common divisor of all coefficients
pub fn content(&self) -> T where
T: GCD<Output = T> + PartialOrd + Zero,
[src]
T: GCD<Output = T> + PartialOrd + Zero,
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]
T: GCD<Output = T> + PartialOrd + for<'a> ExactDiv<&'a T, Output = T>,
pub fn into_primitive_part(self) -> Self where
T: GCD<Output = T> + PartialOrd + for<'a> ExactDiv<&'a T, Output = T>,
[src]
T: GCD<Output = T> + PartialOrd + for<'a> ExactDiv<&'a T, Output = T>,
pub fn primitive_part(&self) -> Self where
T: GCD<Output = T> + PartialOrd + for<'a> ExactDiv<&'a T, Output = T>,
[src]
T: GCD<Output = T> + PartialOrd + for<'a> ExactDiv<&'a T, Output = T>,
pub fn monic_assign(&mut self) where
T: for<'a> ExactDiv<&'a T, Output = T>,
[src]
T: for<'a> ExactDiv<&'a T, Output = T>,
pub fn into_monic(self) -> Self where
T: for<'a> ExactDiv<&'a T, Output = T>,
[src]
T: for<'a> ExactDiv<&'a T, Output = T>,
pub fn nonzero_reducing_factor(&self) -> Option<T> where
T: PolynomialReducingFactorSupported,
[src]
T: PolynomialReducingFactorSupported,
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]
T: PolynomialReducingFactorSupported + Zero,
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]
T: PolynomialReducingFactorSupported + for<'a> ExactDiv<&'a T, Output = T>,
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]
T: PolynomialReducingFactorSupported + for<'a> ExactDiv<&'a T, Output = T>,
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]
T: PolynomialReducingFactorSupported + for<'a> ExactDiv<&'a T, Output = T>,
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]
T: PolynomialDivSupported,
pub fn into_sturm_sequence(self) -> Vec<Polynomial<T>> where
T: PolynomialDivSupported,
[src]
T: PolynomialDivSupported,
pub fn to_primitive_sturm_sequence(&self) -> Vec<Polynomial<T>> where
T: GCD<Output = T> + PartialOrd + for<'a> ExactDiv<&'a T, Output = T>,
[src]
T: GCD<Output = T> + PartialOrd + for<'a> ExactDiv<&'a T, Output = T>,
pub fn into_primitive_sturm_sequence(self) -> Vec<Polynomial<T>> where
T: GCD<Output = T> + PartialOrd + for<'a> ExactDiv<&'a T, Output = T>,
[src]
T: GCD<Output = T> + PartialOrd + for<'a> ExactDiv<&'a T, Output = T>,
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]
&self,
at: &V,
zero: V
) -> V
pub fn into_eval_generic<V: for<'a> Mul<&'a V, Output = V> + Add<T, Output = V>>(
self,
at: &V,
zero: V
) -> V
[src]
self,
at: &V,
zero: V
) -> V
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]
T: Ord + PolynomialCoefficientAbsSupported,
#[must_use]
pub fn max_norm(&self) -> T where
T: Ord + PolynomialCoefficientAbsSupported + Zero,
[src]
T: Ord + PolynomialCoefficientAbsSupported + Zero,
#[must_use]
pub fn nonzero_manhattan_norm(&self) -> Option<T> where
T: PolynomialCoefficientAbsSupported,
[src]
T: PolynomialCoefficientAbsSupported,
#[must_use]
pub fn manhattan_norm(&self) -> T where
T: PolynomialCoefficientAbsSupported + Zero,
[src]
T: PolynomialCoefficientAbsSupported + Zero,
impl<T> Polynomial<T> where
T: PolynomialDivSupported + RingCharacteristic<Type = CharacteristicZero> + PolynomialReducingFactorSupported + GCD<Output = T> + PartialOrd,
[src]
T: PolynomialDivSupported + RingCharacteristic<Type = CharacteristicZero> + PolynomialReducingFactorSupported + GCD<Output = T> + PartialOrd,
pub fn square_free_factorization_using_yuns_algorithm(
&self
) -> SquareFreePolynomialFactors<T>
[src]
&self
) -> SquareFreePolynomialFactors<T>
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]
T::Element: Zero + One,
type Element = Polynomial<T>
type Divisor = DivisorIsOne
const NESTING_DEPTH: usize
[src]
fn is_element_zero(element: &Self::Element) -> bool
[src]
fn is_element_one(element: &Self::Element) -> bool
[src]
fn is_coefficient_zero(coefficient: &Self) -> bool
[src]
fn is_coefficient_one(coefficient: &Self) -> bool
[src]
fn set_element_zero(element: &mut Self::Element)
[src]
fn set_element_one(element: &mut Self::Element)
[src]
fn set_coefficient_zero(coefficient: &mut Self)
[src]
fn set_coefficient_one(coefficient: &mut Self)
[src]
fn make_zero_element(_element: Cow<Self::Element>) -> Self::Element
[src]
fn make_one_element(element: Cow<Self::Element>) -> Self::Element
[src]
fn make_zero_coefficient_from_element(_element: Cow<Self::Element>) -> Self
[src]
fn make_one_coefficient_from_element(element: Cow<Self::Element>) -> Self
[src]
fn make_zero_coefficient_from_coefficient(_coefficient: Cow<Self>) -> Self
[src]
fn make_one_coefficient_from_coefficient(coefficient: Cow<Self>) -> Self
[src]
fn negate_element(element: &mut Self::Element)
[src]
fn mul_element_by_usize(
element: Cow<Self::Element>,
multiplier: usize
) -> Self::Element
[src]
element: Cow<Self::Element>,
multiplier: usize
) -> Self::Element
fn mul_assign_element_by_usize(element: &mut Self::Element, multiplier: usize)
[src]
fn divisor_to_element(
_v: Cow<Self::Divisor>,
other_element: Cow<Self::Element>
) -> Self::Element
[src]
_v: Cow<Self::Divisor>,
other_element: Cow<Self::Element>
) -> Self::Element
fn coefficients_to_elements(
coefficients: Cow<[Self]>
) -> (Vec<Self::Element>, Self::Divisor)
[src]
coefficients: Cow<[Self]>
) -> (Vec<Self::Element>, Self::Divisor)
fn make_coefficient(
element: Cow<Self::Element>,
_divisor: Cow<Self::Divisor>
) -> Self
[src]
element: Cow<Self::Element>,
_divisor: Cow<Self::Divisor>
) -> Self
fn reduce_divisor(_elements: &mut [Self::Element], _divisor: &mut Self::Divisor)
[src]
fn get_reduced_divisor(
elements: &[Self::Element],
_divisor: &Self::Divisor
) -> (Vec<Self::Element>, Self::Divisor)
[src]
elements: &[Self::Element],
_divisor: &Self::Divisor
) -> (Vec<Self::Element>, Self::Divisor)
fn coefficient_to_element(
coefficient: Cow<Self>
) -> (Self::Element, Self::Divisor)
[src]
coefficient: Cow<Self>
) -> (Self::Element, Self::Divisor)
fn divisor_pow_usize(_base: Self::Divisor, _exponent: usize) -> Self::Divisor
[src]
fn element_pow_usize(base: Self::Element, exponent: usize) -> Self::Element
[src]
fn coefficient_pow_usize(base: Self, exponent: usize) -> Self
[src]
fn from_iterator<I: Iterator<Item = Self>>(iter: I) -> Polynomial<Self>
[src]
impl<T> GCD<Polynomial<T>> for Polynomial<T> where
T: PolynomialCoefficient + PolynomialDivSupported + PolynomialReducingFactorSupported,
[src]
T: PolynomialCoefficient + PolynomialDivSupported + PolynomialReducingFactorSupported,
type Output = Self
fn gcd(&self, rhs: &Self) -> Self
[src]
fn gcd_lcm(&self, rhs: &Self) -> GCDAndLCM<Self>
[src]
#[must_use]
fn lcm(&self, rhs: &Rhs) -> Self::Output
[src]
impl<T> ExtendedGCD<Polynomial<T>> for Polynomial<T> where
T: PolynomialCoefficient + PolynomialDivSupported + PolynomialReducingFactorSupported,
[src]
T: PolynomialCoefficient + PolynomialDivSupported + PolynomialReducingFactorSupported,
fn extended_gcd(&self, rhs: &Self) -> ExtendedGCDResult<Self>
[src]
fn extended_gcd_lcm(&self, rhs: &Self) -> ExtendedGCDAndLCM<Self>
[src]
impl<T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> ExactDiv<Polynomial<T>> for Polynomial<T>
[src]
type Output = Polynomial<T>
fn exact_div(self, rhs: Polynomial<T>) -> Polynomial<T>
[src]
fn checked_exact_div(self, rhs: Polynomial<T>) -> Option<Polynomial<T>>
[src]
impl<'_, T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> ExactDiv<&'_ Polynomial<T>> for Polynomial<T>
[src]
type Output = Polynomial<T>
fn exact_div(self, rhs: &Polynomial<T>) -> Polynomial<T>
[src]
fn checked_exact_div(self, rhs: &Polynomial<T>) -> Option<Polynomial<T>>
[src]
impl<'_, T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> ExactDiv<Polynomial<T>> for &'_ Polynomial<T>
[src]
type Output = Polynomial<T>
fn exact_div(self, rhs: Polynomial<T>) -> Polynomial<T>
[src]
fn checked_exact_div(self, rhs: Polynomial<T>) -> Option<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>
fn exact_div(self, rhs: &Polynomial<T>) -> Polynomial<T>
[src]
fn checked_exact_div(self, rhs: &Polynomial<T>) -> Option<Polynomial<T>>
[src]
impl<'a, T: PolynomialCoefficient + for<'b> ExactDiv<&'b T, Output = T>> ExactDiv<&'a T> for &'a Polynomial<T>
[src]
type Output = Polynomial<T>
fn exact_div(self, rhs: &T) -> Polynomial<T>
[src]
fn checked_exact_div(self, rhs: &T) -> Option<Polynomial<T>>
[src]
impl<'a, T: PolynomialCoefficient + for<'b> ExactDiv<&'b T, Output = T>> ExactDiv<T> for &'a Polynomial<T>
[src]
type Output = Polynomial<T>
fn exact_div(self, rhs: T) -> Polynomial<T>
[src]
fn checked_exact_div(self, rhs: T) -> Option<Polynomial<T>>
[src]
impl<'a, T: PolynomialCoefficient + for<'b> ExactDiv<&'b T, Output = T>> ExactDiv<&'a T> for Polynomial<T>
[src]
type Output = Polynomial<T>
fn exact_div(self, rhs: &T) -> Polynomial<T>
[src]
fn checked_exact_div(self, rhs: &T) -> Option<Polynomial<T>>
[src]
impl<T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> ExactDiv<T> for Polynomial<T>
[src]
type Output = Polynomial<T>
fn exact_div(self, rhs: T) -> Polynomial<T>
[src]
fn checked_exact_div(self, rhs: T) -> Option<Polynomial<T>>
[src]
impl<T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> ExactDivAssign<Polynomial<T>> for Polynomial<T>
[src]
fn exact_div_assign(&mut self, rhs: Polynomial<T>)
[src]
fn checked_exact_div_assign(&mut self, rhs: Polynomial<T>) -> Result<(), ()>
[src]
impl<'_, T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> ExactDivAssign<&'_ Polynomial<T>> for Polynomial<T>
[src]
fn exact_div_assign(&mut self, rhs: &Polynomial<T>)
[src]
fn checked_exact_div_assign(&mut self, rhs: &Polynomial<T>) -> Result<(), ()>
[src]
impl<T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> ExactDivAssign<T> for Polynomial<T>
[src]
fn exact_div_assign(&mut self, rhs: T)
[src]
fn checked_exact_div_assign(&mut self, rhs: T) -> Result<(), ()>
[src]
impl<'a, T: PolynomialCoefficient + for<'b> ExactDiv<&'b T, Output = T>> ExactDivAssign<&'a T> for Polynomial<T>
[src]
fn exact_div_assign(&mut self, rhs: &T)
[src]
fn checked_exact_div_assign(&mut self, rhs: &T) -> Result<(), ()>
[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?
ⓘImportant traits for IntoIter<T>fn into_iter(self) -> IntoIter<T>
[src]
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?
fn into_iter(self) -> Self::IntoIter
[src]
impl<T: Clone + PolynomialCoefficient> Clone for Polynomial<T> where
T::Element: Clone,
T::Divisor: Clone,
[src]
T::Element: Clone,
T::Divisor: Clone,
fn clone(&self) -> Polynomial<T>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[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]
T::Element: Eq,
T::Divisor: Eq,
impl<T: PartialEq + PolynomialCoefficient> PartialEq<Polynomial<T>> for Polynomial<T> where
T::Element: PartialEq,
T::Divisor: PartialEq,
[src]
T::Element: PartialEq,
T::Divisor: PartialEq,
fn eq(&self, other: &Polynomial<T>) -> bool
[src]
fn ne(&self, other: &Polynomial<T>) -> bool
[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]
T::Element: Debug,
T::Divisor: Debug,
impl<T: PolynomialDivSupported> Div<Polynomial<T>> for Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the /
operator.
fn div(self, rhs: Polynomial<T>) -> Polynomial<T>
[src]
impl<'_, T: PolynomialDivSupported> Div<&'_ Polynomial<T>> for Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the /
operator.
fn div(self, rhs: &Polynomial<T>) -> Polynomial<T>
[src]
impl<'_, T: PolynomialDivSupported> Div<Polynomial<T>> for &'_ Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the /
operator.
fn div(self, rhs: Polynomial<T>) -> Polynomial<T>
[src]
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.
fn div(self, rhs: &Polynomial<T>) -> Polynomial<T>
[src]
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.
fn div(self, rhs: &T) -> Polynomial<T>
[src]
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.
fn div(self, rhs: T) -> Polynomial<T>
[src]
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.
fn div(self, rhs: &T) -> Polynomial<T>
[src]
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.
fn div(self, rhs: T) -> Polynomial<T>
[src]
impl<T: PolynomialDivSupported> Rem<Polynomial<T>> for Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the %
operator.
fn rem(self, rhs: Polynomial<T>) -> Polynomial<T>
[src]
impl<'_, T: PolynomialDivSupported> Rem<&'_ Polynomial<T>> for Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the %
operator.
fn rem(self, rhs: &Polynomial<T>) -> Polynomial<T>
[src]
impl<'_, T: PolynomialDivSupported> Rem<Polynomial<T>> for &'_ Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the %
operator.
fn rem(self, rhs: Polynomial<T>) -> Polynomial<T>
[src]
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.
fn rem(self, rhs: &Polynomial<T>) -> Polynomial<T>
[src]
impl<T: PolynomialCoefficient> Sub<Polynomial<T>> for Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the -
operator.
fn sub(self, rhs: Polynomial<T>) -> Self::Output
[src]
impl<'a, T: PolynomialCoefficient> Sub<&'a Polynomial<T>> for Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the -
operator.
fn sub(self, rhs: &Polynomial<T>) -> Self::Output
[src]
impl<'a, T: PolynomialCoefficient> Sub<Polynomial<T>> for &'a Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the -
operator.
fn sub(self, rhs: Polynomial<T>) -> Self::Output
[src]
impl<'a, T: PolynomialCoefficient> Sub<&'a Polynomial<T>> for &'a Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the -
operator.
fn sub(self, rhs: Self) -> Self::Output
[src]
impl<T: PolynomialCoefficient> Sub<T> for Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the -
operator.
fn sub(self, rhs: T) -> Self::Output
[src]
impl<'a, T: PolynomialCoefficient> Sub<&'a T> for Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the -
operator.
fn sub(self, rhs: &T) -> Self::Output
[src]
impl<'a, T: PolynomialCoefficient> Sub<T> for &'a Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the -
operator.
fn sub(self, rhs: T) -> Self::Output
[src]
impl<'a, T: PolynomialCoefficient> Sub<&'a T> for &'a Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the -
operator.
fn sub(self, rhs: &T) -> Self::Output
[src]
impl<T: PolynomialCoefficient> Add<Polynomial<T>> for Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the +
operator.
fn add(self, rhs: Polynomial<T>) -> Self::Output
[src]
impl<'a, T: PolynomialCoefficient> Add<&'a Polynomial<T>> for Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the +
operator.
fn add(self, rhs: &Polynomial<T>) -> Self::Output
[src]
impl<'a, T: PolynomialCoefficient> Add<Polynomial<T>> for &'a Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the +
operator.
fn add(self, rhs: Polynomial<T>) -> Self::Output
[src]
impl<'a, T: PolynomialCoefficient> Add<&'a Polynomial<T>> for &'a Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the +
operator.
fn add(self, rhs: Self) -> Self::Output
[src]
impl<T: PolynomialCoefficient> Add<T> for Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the +
operator.
fn add(self, rhs: T) -> Self::Output
[src]
impl<'a, T: PolynomialCoefficient> Add<&'a T> for Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the +
operator.
fn add(self, rhs: &T) -> Self::Output
[src]
impl<'a, T: PolynomialCoefficient> Add<T> for &'a Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the +
operator.
fn add(self, rhs: T) -> Self::Output
[src]
impl<'a, T: PolynomialCoefficient> Add<&'a T> for &'a Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the +
operator.
fn add(self, rhs: &T) -> Self::Output
[src]
impl<'a, T: PolynomialCoefficient> Mul<&'a Polynomial<T>> for &'a Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the *
operator.
fn mul(self, rhs: &Polynomial<T>) -> Polynomial<T>
[src]
impl<'a, T: PolynomialCoefficient> Mul<Polynomial<T>> for &'a Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the *
operator.
fn mul(self, rhs: Polynomial<T>) -> Polynomial<T>
[src]
impl<'a, T: PolynomialCoefficient> Mul<&'a Polynomial<T>> for Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the *
operator.
fn mul(self, rhs: &Polynomial<T>) -> Polynomial<T>
[src]
impl<T: PolynomialCoefficient> Mul<Polynomial<T>> for Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the *
operator.
fn mul(self, rhs: Polynomial<T>) -> Polynomial<T>
[src]
impl<'a, T: PolynomialCoefficient> Mul<&'a T> for &'a Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the *
operator.
fn mul(self, rhs: &T) -> Polynomial<T>
[src]
impl<'a, T: PolynomialCoefficient> Mul<T> for &'a Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the *
operator.
fn mul(self, rhs: T) -> Polynomial<T>
[src]
impl<'a, T: PolynomialCoefficient> Mul<&'a T> for Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the *
operator.
fn mul(self, rhs: &T) -> Polynomial<T>
[src]
impl<T: PolynomialCoefficient> Mul<T> for Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the *
operator.
fn mul(self, rhs: T) -> Polynomial<T>
[src]
impl<T: PolynomialCoefficient> Neg for Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the -
operator.
fn neg(self) -> Polynomial<T>
[src]
impl<'_, T: PolynomialCoefficient> Neg for &'_ Polynomial<T>
[src]
type Output = Polynomial<T>
The resulting type after applying the -
operator.
fn neg(self) -> Polynomial<T>
[src]
impl<T: PolynomialCoefficient> AddAssign<Polynomial<T>> for Polynomial<T>
[src]
fn add_assign(&mut self, rhs: Polynomial<T>)
[src]
impl<'a, T: PolynomialCoefficient> AddAssign<&'a Polynomial<T>> for Polynomial<T>
[src]
fn add_assign(&mut self, rhs: &Polynomial<T>)
[src]
impl<T: PolynomialCoefficient> AddAssign<T> for Polynomial<T>
[src]
fn add_assign(&mut self, rhs: T)
[src]
impl<'a, T: PolynomialCoefficient> AddAssign<&'a T> for Polynomial<T>
[src]
fn add_assign(&mut self, rhs: &T)
[src]
impl<T: PolynomialCoefficient> SubAssign<Polynomial<T>> for Polynomial<T>
[src]
fn sub_assign(&mut self, rhs: Polynomial<T>)
[src]
impl<'a, T: PolynomialCoefficient> SubAssign<&'a Polynomial<T>> for Polynomial<T>
[src]
fn sub_assign(&mut self, rhs: &Polynomial<T>)
[src]
impl<T: PolynomialCoefficient> SubAssign<T> for Polynomial<T>
[src]
fn sub_assign(&mut self, rhs: T)
[src]
impl<'a, T: PolynomialCoefficient> SubAssign<&'a T> for Polynomial<T>
[src]
fn sub_assign(&mut self, rhs: &T)
[src]
impl<T: PolynomialCoefficient> MulAssign<Polynomial<T>> for Polynomial<T>
[src]
fn mul_assign(&mut self, rhs: Polynomial<T>)
[src]
impl<'a, T: PolynomialCoefficient> MulAssign<&'a Polynomial<T>> for Polynomial<T>
[src]
fn mul_assign(&mut self, rhs: &Polynomial<T>)
[src]
impl<T: PolynomialCoefficient> MulAssign<T> for Polynomial<T>
[src]
fn mul_assign(&mut self, rhs: T)
[src]
impl<'a, T: PolynomialCoefficient> MulAssign<&'a T> for Polynomial<T>
[src]
fn mul_assign(&mut self, rhs: &T)
[src]
impl<T: PolynomialDivSupported> DivAssign<Polynomial<T>> for Polynomial<T>
[src]
fn div_assign(&mut self, rhs: Polynomial<T>)
[src]
impl<'_, T: PolynomialDivSupported> DivAssign<&'_ Polynomial<T>> for Polynomial<T>
[src]
fn div_assign(&mut self, rhs: &Polynomial<T>)
[src]
impl<T: PolynomialCoefficient + for<'a> ExactDiv<&'a T, Output = T>> DivAssign<T> for Polynomial<T>
[src]
fn div_assign(&mut self, rhs: T)
[src]
impl<'a, T: PolynomialCoefficient + for<'b> ExactDiv<&'b T, Output = T>> DivAssign<&'a T> for Polynomial<T>
[src]
fn div_assign(&mut self, rhs: &T)
[src]
impl<T: PolynomialDivSupported> RemAssign<Polynomial<T>> for Polynomial<T>
[src]
fn rem_assign(&mut self, rhs: Polynomial<T>)
[src]
impl<'_, T: PolynomialDivSupported> RemAssign<&'_ Polynomial<T>> for Polynomial<T>
[src]
fn rem_assign(&mut self, rhs: &Polynomial<T>)
[src]
impl<T: Hash + PolynomialCoefficient> Hash for Polynomial<T> where
T::Element: Hash,
T::Divisor: Hash,
[src]
T::Element: Hash,
T::Divisor: Hash,
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
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]
fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> Self
[src]
impl<T: PolynomialCoefficient> CheckedAdd for Polynomial<T>
[src]
fn checked_add(&self, rhs: &Self) -> Option<Self>
[src]
impl<T: PolynomialDivSupported> CheckedDiv for Polynomial<T>
[src]
fn checked_div(&self, rhs: &Self) -> Option<Self>
[src]
impl<T: PolynomialCoefficient> CheckedMul for Polynomial<T>
[src]
fn checked_mul(&self, rhs: &Self) -> Option<Self>
[src]
impl<T: PolynomialCoefficient> CheckedSub for Polynomial<T>
[src]
fn checked_sub(&self, rhs: &Self) -> Option<Self>
[src]
impl<T: PolynomialCoefficient + FromPrimitive> FromPrimitive for Polynomial<T>
[src]
fn from_i8(v: i8) -> Option<Self>
[src]
fn from_u8(v: u8) -> Option<Self>
[src]
fn from_i16(v: i16) -> Option<Self>
[src]
fn from_u16(v: u16) -> Option<Self>
[src]
fn from_i32(v: i32) -> Option<Self>
[src]
fn from_u32(v: u32) -> Option<Self>
[src]
fn from_i64(v: i64) -> Option<Self>
[src]
fn from_u64(v: u64) -> Option<Self>
[src]
fn from_i128(v: i128) -> Option<Self>
[src]
fn from_u128(v: u128) -> Option<Self>
[src]
fn from_isize(v: isize) -> Option<Self>
[src]
fn from_usize(v: usize) -> Option<Self>
[src]
fn from_f32(v: f32) -> Option<Self>
[src]
fn from_f64(v: f64) -> Option<Self>
[src]
impl<T: PolynomialCoefficient> One for Polynomial<T> where
T::Element: One,
[src]
T::Element: One,
impl<'_, T: PolynomialCoefficient, E: Integer + Clone> Pow<E> for &'_ Polynomial<T>
[src]
type Output = Polynomial<T>
The result after applying the operator.
fn pow(self, exponent: E) -> Polynomial<T>
[src]
impl<T: PolynomialCoefficient, E: Integer + Clone> Pow<E> for Polynomial<T>
[src]
type Output = Polynomial<T>
The result after applying the operator.
fn pow(self, exponent: E) -> Polynomial<T>
[src]
impl<T: PolynomialCoefficient + ToPrimitive> ToPrimitive for Polynomial<T>
[src]
fn to_i8(&self) -> Option<i8>
[src]
fn to_u8(&self) -> Option<u8>
[src]
fn to_i16(&self) -> Option<i16>
[src]
fn to_u16(&self) -> Option<u16>
[src]
fn to_i32(&self) -> Option<i32>
[src]
fn to_u32(&self) -> Option<u32>
[src]
fn to_i64(&self) -> Option<i64>
[src]
fn to_u64(&self) -> Option<u64>
[src]
fn to_i128(&self) -> Option<i128>
[src]
fn to_u128(&self) -> Option<u128>
[src]
fn to_isize(&self) -> Option<isize>
[src]
fn to_usize(&self) -> Option<usize>
[src]
fn to_f32(&self) -> Option<f32>
[src]
fn to_f64(&self) -> Option<f64>
[src]
impl<T: PolynomialCoefficient> Zero for Polynomial<T>
[src]
impl<T: PolynomialDivSupported> CheckedRem for Polynomial<T>
[src]
fn checked_rem(&self, rhs: &Self) -> Option<Self>
[src]
Auto Trait Implementations
impl<T> Send for Polynomial<T> where
<T as PolynomialCoefficient>::Divisor: Send,
<T as PolynomialCoefficient>::Element: Send,
<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,
<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,
<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,
<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,
<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]
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>,
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T> From<!> for T
[src]
impl<I> IntoIterator for I where
I: Iterator,
[src]
I: Iterator,
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?
fn into_iter(self) -> I
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
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]
T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>,
impl<T, Base> RefNum<Base> for T where
T: NumOps<Base, Base> + NumOps<&'r Base, Base>,
[src]
T: NumOps<Base, Base> + NumOps<&'r Base, Base>,
impl<T, Rhs> NumAssignOps<Rhs> for T where
T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>,
[src]
T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>,