Pol

Struct Pol 

Source
pub struct Pol<T> { /* private fields */ }
Expand description

polynomial, coefficients are listed from lowest to highest power

Implementations§

Source§

impl<T> Pol<T>

Source

pub fn new(coef: Vec<Complex<T>>) -> Self

construct polynomial from vector of coefficients

Source

pub fn eval(&self, z: Complex<T>) -> Complex<T>
where T: Clone + Num,

evaluate the polynomial at point z

Source

pub fn diff(&self) -> Pol<T>
where T: From<u32>, Complex<T>: Clone + Mul<T, Output = Complex<T>>,

the general derivative of the polynomial, symbolic

Source

pub fn integrate(&self, c: Complex<T>) -> Pol<T>
where T: From<u32>, Complex<T>: Clone + Div<T, Output = Complex<T>>,

the general antiderivative of the polynomial, symbolic, with constant term c

Source

pub fn roots(&self, n: usize, m: usize, r_coef: T, eps: T) -> Vec<Complex<T>>
where T: Clone + Num + Neg + Float + Send + Sync + From<u32> + From<f64>, Complex<T>: Mul<Complex<T>, Output = Complex<T>> + Div<Complex<T>, Output = Complex<T>> + Mul<T, Output = Complex<T>> + Div<T, Output = Complex<T>> + From<T>,

attempt to find all the complex roots of the polynomial with radii n * its degree, maximum iterations of newton’s method m, coefficient of rounding for eliminating identical solutions r_coef, and eps, passed to sampling and newton’s method, and used for rounding a degree k polynomial will have k roots (although they may be the same) and is not trivially solved differentiating this a times will yield a polynomial with k - a roots if k - a = 1 or 2, this can be trivially solved for its zeros the zeros of the derivative of a polynomial lie inside the convex hull of its zeros by the Gauss-Lucas theorem therefore, we begin newton’s method at the points of the derivative’s zeros radiating out to attempt to land initial points in the basins of convergence of every root

Trait Implementations§

Source§

impl<T: Debug> Debug for Pol<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> Freeze for Pol<T>

§

impl<T> RefUnwindSafe for Pol<T>
where T: RefUnwindSafe,

§

impl<T> Send for Pol<T>
where T: Send,

§

impl<T> Sync for Pol<T>
where T: Sync,

§

impl<T> Unpin for Pol<T>
where T: Unpin,

§

impl<T> UnwindSafe for Pol<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.