[−][src]Struct series::polyslice::PolynomialSlice
View into a Laurent polynomial
Implementations
impl<'a, Var, C: Coeff> PolynomialSlice<'a, Var, C>
[src]
pub fn min_pow(&self) -> Option<isize>
[src]
Get the leading power of the polynomial variable
For vanishing polynomials None
is returned
Example
use series::AsSlice; let p = series::Polynomial::new("x", -1, vec!(1,2,3)); assert_eq!(p.as_slice(..).min_pow(), Some(-1)); assert_eq!(p.as_slice(0..).min_pow(), Some(0)); let p = series::Polynomial::new("x", -1, vec![0]); assert_eq!(p.as_slice(..).min_pow(), None);
pub fn max_pow(&self) -> Option<isize>
[src]
Get the highest power of the polynomial variable
For vanishing polynomials None
is returned
Example
use series::AsSlice; let p = series::Polynomial::new("x", -1, vec!(1,2,3)); assert_eq!(p.as_slice(..).max_pow(), Some(1)); assert_eq!(p.as_slice(..1).max_pow(), Some(0)); let p = series::Polynomial::new("x", -1, vec![0]); assert_eq!(p.max_pow(), None);
pub fn len(&self) -> usize
[src]
Get the difference between the highest and the lowest power of the polynomial variable
Example
use series::AsSlice; let p = series::Polynomial::new("x", -1, vec!(1,2,3)); assert_eq!(p.as_slice(..).len(), 3); assert_eq!(p.as_slice(0..2).len(), 2);
pub fn is_empty(&self) -> bool
[src]
Check if the polynomial is zero
Example
use series::AsSlice; let p = series::Polynomial::new("x", -1, vec!(1,2,3)); assert!(!p.as_slice(..).is_empty()); let p = series::Polynomial::new("x", -1, vec!(0)); assert!(p.as_slice(..).is_empty());
pub fn coeff(&self, pow: isize) -> &C
[src]
pub fn iter(&self) -> Iter<C>
[src]
Iterator over the polynomial powers and coefficients.
Example
use series::AsSlice; let p = series::Polynomial::new("x", -1, vec!(1,2,3)); let slice = p.as_slice(..); let mut iter = slice.iter(); assert_eq!(iter.next(), Some((-1, &1))); assert_eq!(iter.next(), Some((0, &2))); assert_eq!(iter.next(), Some((1, &3))); assert_eq!(iter.next(), None);
pub fn split_at(&self, pos: isize) -> (Self, Self)
[src]
Split a polynomial slice into two at the given power of the polynomial variable.
Example
use series::AsSlice; let p = series::Polynomial::new("x", -1, vec!(1,2,3)); let (lower, upper) = p.as_slice(..).split_at(0); assert_eq!(lower.min_pow(), Some(-1)); assert_eq!(upper.min_pow(), Some(0));
Trait Implementations
impl<'a, Var: Clone, C: Coeff + Clone, Rhs> Add<Rhs> for PolynomialSlice<'a, Var, C> where
Polynomial<Var, C>: AddAssign<Rhs>,
[src]
Polynomial<Var, C>: AddAssign<Rhs>,
type Output = Polynomial<Var, C>
The resulting type after applying the +
operator.
fn add(self, other: Rhs) -> Self::Output
[src]
impl<'a, Var: PartialEq + Debug, C: Coeff + Clone> AddAssign<PolynomialSlice<'a, Var, C>> for Polynomial<Var, C> where
C: AddAssign<&'c C>,
[src]
C: AddAssign<&'c C>,
fn add_assign(&mut self, other: PolynomialSlice<'a, Var, C>)
[src]
impl<'a, Var, C: Coeff> Clone for PolynomialSlice<'a, Var, C>
[src]
fn clone(&self) -> Self
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<'a, Var, C: Coeff> Copy for PolynomialSlice<'a, Var, C>
[src]
impl<'a, Var: Debug, C: Debug + Coeff> Debug for PolynomialSlice<'a, Var, C>
[src]
impl<'a, Var: Display, C: Coeff + Display> Display for PolynomialSlice<'a, Var, C>
[src]
impl<'a, 'b, Var: Clone, C: Coeff> Div<&'b C> for PolynomialSlice<'a, Var, C> where
&'c C: Div<Output = C>,
[src]
&'c C: Div<Output = C>,
type Output = Polynomial<Var, C>
The resulting type after applying the /
operator.
fn div(self, scalar: &'b C) -> Self::Output
[src]
impl<'a, Var: Clone, C: Coeff> Div<C> for PolynomialSlice<'a, Var, C> where
&'c C: Div<Output = C>,
[src]
&'c C: Div<Output = C>,
type Output = Polynomial<Var, C>
The resulting type after applying the /
operator.
fn div(self, scalar: C) -> Self::Output
[src]
impl<'a, Var: Eq, C: Eq + Coeff> Eq for PolynomialSlice<'a, Var, C>
[src]
impl<'a, Var: Clone, C: Coeff + Clone> From<PolynomialSlice<'a, Var, C>> for Polynomial<Var, C>
[src]
fn from(s: PolynomialSlice<'a, Var, C>) -> Polynomial<Var, C>
[src]
impl<'a, Var: Hash, C: Hash + Coeff> Hash for PolynomialSlice<'a, Var, C>
[src]
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<'a, Var, C: Coeff> Index<isize> for PolynomialSlice<'a, Var, C>
[src]
type Output = C
The returned type after indexing.
fn index(&self, index: isize) -> &Self::Output
[src]
impl<'a, 'b, Var: Clone, C: Coeff> KaratsubaMul<&'b Polynomial<Var, C>> for PolynomialSlice<'a, Var, C> where
Var: Clone + PartialEq + Debug,
C: Clone,
C: AddAssign,
Polynomial<Var, C>: AddAssign<&'c Polynomial<Var, C>> + SubAssign<&'c Polynomial<Var, C>>,
Polynomial<Var, C>: AddAssign<Polynomial<Var, C>> + SubAssign<Polynomial<Var, C>>,
PolynomialSlice<'c, Var, C>: Add<Output = Polynomial<Var, C>>,
&'c C: Mul<Output = C>,
[src]
Var: Clone + PartialEq + Debug,
C: Clone,
C: AddAssign,
Polynomial<Var, C>: AddAssign<&'c Polynomial<Var, C>> + SubAssign<&'c Polynomial<Var, C>>,
Polynomial<Var, C>: AddAssign<Polynomial<Var, C>> + SubAssign<Polynomial<Var, C>>,
PolynomialSlice<'c, Var, C>: Add<Output = Polynomial<Var, C>>,
&'c C: Mul<Output = C>,
type Output = Polynomial<Var, C>
fn karatsuba_mul(
self,
rhs: &'b Polynomial<Var, C>,
min_size: usize
) -> Self::Output
[src]
self,
rhs: &'b Polynomial<Var, C>,
min_size: usize
) -> Self::Output
impl<'a, 'b, Var: Clone, C: Coeff> KaratsubaMul<PolynomialSlice<'b, Var, C>> for PolynomialSlice<'a, Var, C> where
Var: Clone + PartialEq + Debug,
C: Clone,
C: AddAssign,
Polynomial<Var, C>: AddAssign<&'c Polynomial<Var, C>> + SubAssign<&'c Polynomial<Var, C>>,
Polynomial<Var, C>: AddAssign<Polynomial<Var, C>> + SubAssign<Polynomial<Var, C>>,
PolynomialSlice<'c, Var, C>: Add<Output = Polynomial<Var, C>>,
&'c C: Mul<Output = C>,
[src]
Var: Clone + PartialEq + Debug,
C: Clone,
C: AddAssign,
Polynomial<Var, C>: AddAssign<&'c Polynomial<Var, C>> + SubAssign<&'c Polynomial<Var, C>>,
Polynomial<Var, C>: AddAssign<Polynomial<Var, C>> + SubAssign<Polynomial<Var, C>>,
PolynomialSlice<'c, Var, C>: Add<Output = Polynomial<Var, C>>,
&'c C: Mul<Output = C>,
type Output = Polynomial<Var, C>
fn karatsuba_mul(
self,
rhs: PolynomialSlice<'b, Var, C>,
min_size: usize
) -> Self::Output
[src]
self,
rhs: PolynomialSlice<'b, Var, C>,
min_size: usize
) -> Self::Output
impl<'a, 'b, Var: Clone, C: Coeff> KaratsubaMul<PolynomialSlice<'b, Var, C>> for &'a Polynomial<Var, C> where
Var: Clone + PartialEq + Debug,
C: Clone,
C: AddAssign,
Polynomial<Var, C>: AddAssign<&'c Polynomial<Var, C>> + SubAssign<&'c Polynomial<Var, C>>,
Polynomial<Var, C>: AddAssign<Polynomial<Var, C>> + SubAssign<Polynomial<Var, C>>,
PolynomialSlice<'c, Var, C>: Add<Output = Polynomial<Var, C>>,
&'c C: Mul<Output = C>,
[src]
Var: Clone + PartialEq + Debug,
C: Clone,
C: AddAssign,
Polynomial<Var, C>: AddAssign<&'c Polynomial<Var, C>> + SubAssign<&'c Polynomial<Var, C>>,
Polynomial<Var, C>: AddAssign<Polynomial<Var, C>> + SubAssign<Polynomial<Var, C>>,
PolynomialSlice<'c, Var, C>: Add<Output = Polynomial<Var, C>>,
&'c C: Mul<Output = C>,
type Output = Polynomial<Var, C>
fn karatsuba_mul(
self,
rhs: PolynomialSlice<'b, Var, C>,
min_size: usize
) -> Self::Output
[src]
self,
rhs: PolynomialSlice<'b, Var, C>,
min_size: usize
) -> Self::Output
impl<'a, 'b, Var: Clone, C: Coeff> Mul<&'b C> for PolynomialSlice<'a, Var, C> where
&'c C: Mul<Output = C>,
[src]
&'c C: Mul<Output = C>,
type Output = Polynomial<Var, C>
The resulting type after applying the *
operator.
fn mul(self, scalar: &'b C) -> Self::Output
[src]
impl<'a, 'b, Var, C: Coeff> Mul<&'b Polynomial<Var, C>> for PolynomialSlice<'a, Var, C> where
PolynomialSlice<'a, Var, C>: Mul<PolynomialSlice<'b, Var, C>, Output = Polynomial<Var, C>>,
[src]
PolynomialSlice<'a, Var, C>: Mul<PolynomialSlice<'b, Var, C>, Output = Polynomial<Var, C>>,
type Output = Polynomial<Var, C>
The resulting type after applying the *
operator.
fn mul(self, other: &'b Polynomial<Var, C>) -> Self::Output
[src]
impl<'a, Var: Clone, C: Coeff> Mul<C> for PolynomialSlice<'a, Var, C> where
&'b C: Mul<Output = C>,
[src]
&'b C: Mul<Output = C>,
type Output = Polynomial<Var, C>
The resulting type after applying the *
operator.
fn mul(self, scalar: C) -> Self::Output
[src]
impl<'a, Var, C: Coeff> Mul<Polynomial<Var, C>> for PolynomialSlice<'a, Var, C> where
PolynomialSlice<'a, Var, C>: Mul<PolynomialSlice<'b, Var, C>, Output = Polynomial<Var, C>>,
[src]
PolynomialSlice<'a, Var, C>: Mul<PolynomialSlice<'b, Var, C>, Output = Polynomial<Var, C>>,
type Output = Polynomial<Var, C>
The resulting type after applying the *
operator.
fn mul(self, other: Polynomial<Var, C>) -> Self::Output
[src]
impl<'a, Var, C: Coeff> Mul<PolynomialSlice<'a, Var, C>> for Polynomial<Var, C> where
Polynomial<Var, C>: MulAssign<PolynomialSlice<'a, Var, C>>,
[src]
Polynomial<Var, C>: MulAssign<PolynomialSlice<'a, Var, C>>,
type Output = Polynomial<Var, C>
The resulting type after applying the *
operator.
fn mul(self, other: PolynomialSlice<'a, Var, C>) -> Self::Output
[src]
impl<'a, 'b, Var, C: Coeff> Mul<PolynomialSlice<'b, Var, C>> for PolynomialSlice<'a, Var, C> where
Var: Clone + PartialEq + Debug,
C: Clone,
C: AddAssign,
Polynomial<Var, C>: AddAssign<&'c Polynomial<Var, C>> + SubAssign<&'c Polynomial<Var, C>>,
Polynomial<Var, C>: AddAssign<Polynomial<Var, C>> + SubAssign<Polynomial<Var, C>>,
PolynomialSlice<'c, Var, C>: Add<Output = Polynomial<Var, C>>,
&'c C: Mul<Output = C>,
[src]
Var: Clone + PartialEq + Debug,
C: Clone,
C: AddAssign,
Polynomial<Var, C>: AddAssign<&'c Polynomial<Var, C>> + SubAssign<&'c Polynomial<Var, C>>,
Polynomial<Var, C>: AddAssign<Polynomial<Var, C>> + SubAssign<Polynomial<Var, C>>,
PolynomialSlice<'c, Var, C>: Add<Output = Polynomial<Var, C>>,
&'c C: Mul<Output = C>,
type Output = Polynomial<Var, C>
The resulting type after applying the *
operator.
fn mul(self, other: PolynomialSlice<'b, Var, C>) -> Self::Output
[src]
impl<'a, Var, C: Coeff> MulAssign<PolynomialSlice<'a, Var, C>> for Polynomial<Var, C> where
PolynomialSlice<'b, Var, C>: Mul<PolynomialSlice<'a, Var, C>, Output = Polynomial<Var, C>>,
[src]
PolynomialSlice<'b, Var, C>: Mul<PolynomialSlice<'a, Var, C>, Output = Polynomial<Var, C>>,
fn mul_assign(&mut self, other: PolynomialSlice<'a, Var, C>)
[src]
impl<'a, Var: Clone, C: Coeff> Neg for PolynomialSlice<'a, Var, C> where
&'c C: Neg<Output = C>,
[src]
&'c C: Neg<Output = C>,
type Output = Polynomial<Var, C>
The resulting type after applying the -
operator.
fn neg(self) -> Self::Output
[src]
impl<'a, Var: Ord, C: Ord + Coeff> Ord for PolynomialSlice<'a, Var, C>
[src]
fn cmp(&self, other: &PolynomialSlice<'a, Var, C>) -> Ordering
[src]
#[must_use]fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn clamp(self, min: Self, max: Self) -> Self
[src]
impl<'a, Var: PartialEq, C: PartialEq + Coeff> PartialEq<PolynomialSlice<'a, Var, C>> for PolynomialSlice<'a, Var, C>
[src]
fn eq(&self, other: &PolynomialSlice<'a, Var, C>) -> bool
[src]
fn ne(&self, other: &PolynomialSlice<'a, Var, C>) -> bool
[src]
impl<'a, Var: PartialOrd, C: PartialOrd + Coeff> PartialOrd<PolynomialSlice<'a, Var, C>> for PolynomialSlice<'a, Var, C>
[src]
fn partial_cmp(&self, other: &PolynomialSlice<'a, Var, C>) -> Option<Ordering>
[src]
fn lt(&self, other: &PolynomialSlice<'a, Var, C>) -> bool
[src]
fn le(&self, other: &PolynomialSlice<'a, Var, C>) -> bool
[src]
fn gt(&self, other: &PolynomialSlice<'a, Var, C>) -> bool
[src]
fn ge(&self, other: &PolynomialSlice<'a, Var, C>) -> bool
[src]
impl<'a, Var, C: Coeff> StructuralEq for PolynomialSlice<'a, Var, C>
[src]
impl<'a, Var, C: Coeff> StructuralPartialEq for PolynomialSlice<'a, Var, C>
[src]
impl<'a, Var, C: Coeff, T> Sub<T> for PolynomialSlice<'a, Var, C> where
C: Clone,
Var: Clone,
Polynomial<Var, C>: SubAssign<T>,
[src]
C: Clone,
Var: Clone,
Polynomial<Var, C>: SubAssign<T>,
type Output = Polynomial<Var, C>
The resulting type after applying the -
operator.
fn sub(self, other: T) -> Self::Output
[src]
impl<'a, Var, C: Coeff> SubAssign<PolynomialSlice<'a, Var, C>> for Polynomial<Var, C> where
PolynomialSlice<'c, Var, C>: Neg<Output = Polynomial<Var, C>>,
Polynomial<Var, C>: AddAssign<Polynomial<Var, C>>,
[src]
PolynomialSlice<'c, Var, C>: Neg<Output = Polynomial<Var, C>>,
Polynomial<Var, C>: AddAssign<Polynomial<Var, C>>,
fn sub_assign(&mut self, other: PolynomialSlice<'a, Var, C>)
[src]
Auto Trait Implementations
impl<'a, Var, C> RefUnwindSafe for PolynomialSlice<'a, Var, C> where
C: RefUnwindSafe,
Var: RefUnwindSafe,
C: RefUnwindSafe,
Var: RefUnwindSafe,
impl<'a, Var, C> Send for PolynomialSlice<'a, Var, C> where
C: Sync,
Var: Sync,
C: Sync,
Var: Sync,
impl<'a, Var, C> Sync for PolynomialSlice<'a, Var, C> where
C: Sync,
Var: Sync,
C: Sync,
Var: Sync,
impl<'a, Var, C> Unpin for PolynomialSlice<'a, Var, C>
impl<'a, Var, C> UnwindSafe for PolynomialSlice<'a, Var, C> where
C: RefUnwindSafe,
Var: RefUnwindSafe,
C: RefUnwindSafe,
Var: RefUnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
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> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
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> + for<'r> NumOps<&'r Base, Base>,
[src]
T: NumOps<Base, Base> + for<'r> NumOps<&'r Base, Base>,
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>,