Struct sparse_interp::ClassicalTraits [−][src]
PolyTraits implementation for classical (slow) algorithms.
The underlying algorithms are neither fast nor numerically stable. They should be used only for very small sizes, or for debugging.
ClassicalTraits::slice_mul()
uses a classical quadratic-time algorithmClassicalTraits::mp_eval_slice()
simply evaluates each point one at a time, using Horner’s rule. O(num_points * poly_degree) time.ClassicalTraits::sparse_interp_slice()
uses unstructured linear algebra and classical root finding, with complexity O(sparsity^3).
Trait Implementations
impl<C: Clone> Clone for ClassicalTraits<C>
[src]
fn clone(&self) -> ClassicalTraits<C>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<C: Copy> Copy for ClassicalTraits<C>
[src]
impl<C: Debug> Debug for ClassicalTraits<C>
[src]
impl<C: Default> Default for ClassicalTraits<C>
[src]
fn default() -> ClassicalTraits<C>
[src]
impl<C: Eq> Eq for ClassicalTraits<C>
[src]
impl<C: PartialEq> PartialEq<ClassicalTraits<C>> for ClassicalTraits<C>
[src]
fn eq(&self, other: &ClassicalTraits<C>) -> bool
[src]
fn ne(&self, other: &ClassicalTraits<C>) -> bool
[src]
impl<C> PolyTraits for ClassicalTraits<C> where
C: Clone + Mul<Output = C> + AddAssign,
DefConv<C, Complex64>: TwoWay<Source = C, Dest = Complex64>,
[src]
C: Clone + Mul<Output = C> + AddAssign,
DefConv<C, Complex64>: TwoWay<Source = C, Dest = Complex64>,
type Coeff = C
The type of polynomial coefficients.
type SparseInterpEval = EvalTrait<Self, Complex64>
The evaluation needed for sparse interpolation.
type SparseInterpInfo = (usize, Vec<(usize, Complex64)>, RelativeParams<Complex64, f64>)
An opaque type returned by the pre-processing method Self::sparse_interp_prep()
.
fn slice_mul(out: &mut [Self::Coeff], lhs: &[Self::Coeff], rhs: &[Self::Coeff])
[src]
fn sparse_interp_prep(
sparsity: usize,
expons: impl Iterator<Item = usize>,
_max_coeff: &Self::Coeff
) -> (<Self::SparseInterpEval as EvalTypes>::EvalInfo, Self::SparseInterpInfo)
[src]
sparsity: usize,
expons: impl Iterator<Item = usize>,
_max_coeff: &Self::Coeff
) -> (<Self::SparseInterpEval as EvalTypes>::EvalInfo, Self::SparseInterpInfo)
fn sparse_interp_slice(
evals: &[Complex64],
info: &Self::SparseInterpInfo
) -> Result<Vec<(usize, Self::Coeff)>>
[src]
evals: &[Complex64],
info: &Self::SparseInterpInfo
) -> Result<Vec<(usize, Self::Coeff)>>
fn mp_eval_prep<U>(
pts: impl Iterator<Item = U>
) -> <EvalTrait<Self, U> as EvalTypes>::EvalInfo where
EvalTrait<Self, U>: EvalTypes<Coeff = Self::Coeff, Eval = U>,
[src]
pts: impl Iterator<Item = U>
) -> <EvalTrait<Self, U> as EvalTypes>::EvalInfo where
EvalTrait<Self, U>: EvalTypes<Coeff = Self::Coeff, Eval = U>,
fn mp_eval_slice<U>(
out: &mut impl Extend<U>,
coeffs: &[Self::Coeff],
info: &<EvalTrait<Self, U> as EvalTypes>::EvalInfo
) -> Result<()> where
EvalTrait<Self, U>: EvalTypes<Coeff = Self::Coeff, Eval = U>,
[src]
out: &mut impl Extend<U>,
coeffs: &[Self::Coeff],
info: &<EvalTrait<Self, U> as EvalTypes>::EvalInfo
) -> Result<()> where
EvalTrait<Self, U>: EvalTypes<Coeff = Self::Coeff, Eval = U>,
impl<C> StructuralEq for ClassicalTraits<C>
[src]
impl<C> StructuralPartialEq for ClassicalTraits<C>
[src]
Auto Trait Implementations
impl<C> RefUnwindSafe for ClassicalTraits<C> where
C: RefUnwindSafe,
C: RefUnwindSafe,
impl<C> Send for ClassicalTraits<C> where
C: Send,
C: Send,
impl<C> Sync for ClassicalTraits<C> where
C: Sync,
C: Sync,
impl<C> Unpin for ClassicalTraits<C> where
C: Unpin,
C: Unpin,
impl<C> UnwindSafe for ClassicalTraits<C> where
C: UnwindSafe,
C: UnwindSafe,
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,
pub 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> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
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.
pub 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>,