[][src]Trait series::KaratsubaMul

pub trait KaratsubaMul<Rhs> {
    type Output;
    fn karatsuba_mul(self, rhs: Rhs, min_size: usize) -> Self::Output;
}

Karatsuba multiplication

Associated Types

type Output

Loading content...

Required methods

fn karatsuba_mul(self, rhs: Rhs, min_size: usize) -> Self::Output

Calculate self * rhs using Karatsuba multiplication.

min_size marks the threshold size below which naive multiplication should be used.

Loading content...

Implementors

impl<'a, 'b, Var: Clone, C: Coeff> KaratsubaMul<&'b Polynomial<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]

type Output = Polynomial<Var, C>

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]

type Output = Polynomial<Var, C>

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]

type Output = Polynomial<Var, C>

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]

type Output = Polynomial<Var, C>

Loading content...