[][src]Struct rustnomial::QuadraticTrinomial

pub struct QuadraticTrinomial<N> {
    pub coefficients: [N; 3],
}

Fields

coefficients: [N; 3]

Implementations

impl<N: Sized> QuadraticTrinomial<N>[src]

pub fn new(coefficients: [N; 3]) -> QuadraticTrinomial<N>[src]

Create a QuadraticTrinomial with the given coefficients.

Example

use rustnomial::{SizedPolynomial, QuadraticTrinomial, Degree};
let trinomial = QuadraticTrinomial::new([3.0, 1.0, 0.5]);
assert_eq!([3.0, 1.0, 0.5], trinomial.coefficients);
assert_eq!(Degree::Num(2), trinomial.degree());

impl<N> QuadraticTrinomial<N> where
    N: Copy + Zero + Mul<Output = N> + Neg<Output = N> + Sub<Output = N> + From<u8> + Div<Output = N> + AbsSqrt + IsPositive + One
[src]

pub fn discriminant(&self) -> N[src]

pub fn roots(&self) -> Roots<N>[src]

Return the roots of QuadraticTrinomial with largest first, smallest second.

pub fn complex_factors(
    &self
) -> (N, LinearBinomial<Complex<N>>, LinearBinomial<Complex<N>>)
[src]

pub fn real_factors(&self) -> Option<(N, LinearBinomial<N>, LinearBinomial<N>)>[src]

Trait Implementations

impl<N> Add<QuadraticTrinomial<N>> for QuadraticTrinomial<N> where
    N: Add<Output = N> + Copy
[src]

type Output = QuadraticTrinomial<N>

The resulting type after applying the + operator.

impl<N: Copy + AddAssign> AddAssign<QuadraticTrinomial<N>> for QuadraticTrinomial<N>[src]

impl<N: Clone> Clone for QuadraticTrinomial<N>[src]

impl<N: Debug> Debug for QuadraticTrinomial<N>[src]

impl<N> Derivable<N> for QuadraticTrinomial<N> where
    N: Zero + One + Copy + Mul<Output = N> + TryFromUsizeExact, 
[src]

pub fn derivative(&self) -> QuadraticTrinomial<N>[src]

Returns the derivative of the QuadraticTrinomial.

Example

use rustnomial::{QuadraticTrinomial, Derivable};
let binomial = QuadraticTrinomial::new([3.0, 2.0, 1.0]);
assert_eq!(QuadraticTrinomial::new([0.0, 6.0, 2.0]), binomial.derivative());

impl<N> Display for QuadraticTrinomial<N> where
    N: Zero + One + IsPositive + PartialEq + Abs + Copy + IsNegativeOne + Display
[src]

impl<N: Div<Output = N> + Copy> Div<N> for QuadraticTrinomial<N>[src]

type Output = QuadraticTrinomial<N>

The resulting type after applying the / operator.

impl<N: DivAssign + Copy> DivAssign<N> for QuadraticTrinomial<N>[src]

impl<N> Evaluable<N> for QuadraticTrinomial<N> where
    N: Add<Output = N> + Mul<Output = N> + Copy
[src]

pub fn eval(&self, point: N) -> N[src]

Returns the value of the QuadraticTrinomial at the given point.

Example

use rustnomial::{QuadraticTrinomial, Evaluable};
let trinomial = QuadraticTrinomial::new([1, 2, 3]);
assert_eq!(6, trinomial.eval(1));
assert_eq!(3, trinomial.eval(0));

impl From<QuadraticTrinomial<f32>> for QuadraticTrinomial<f64>[src]

impl From<QuadraticTrinomial<i16>> for QuadraticTrinomial<i32>[src]

impl From<QuadraticTrinomial<i16>> for QuadraticTrinomial<i64>[src]

impl From<QuadraticTrinomial<i16>> for QuadraticTrinomial<i128>[src]

impl From<QuadraticTrinomial<i16>> for QuadraticTrinomial<f32>[src]

impl From<QuadraticTrinomial<i16>> for QuadraticTrinomial<f64>[src]

impl From<QuadraticTrinomial<i32>> for QuadraticTrinomial<i64>[src]

impl From<QuadraticTrinomial<i32>> for QuadraticTrinomial<i128>[src]

impl From<QuadraticTrinomial<i32>> for QuadraticTrinomial<f64>[src]

impl From<QuadraticTrinomial<i64>> for QuadraticTrinomial<i128>[src]

impl From<QuadraticTrinomial<i8>> for QuadraticTrinomial<i16>[src]

impl From<QuadraticTrinomial<i8>> for QuadraticTrinomial<i32>[src]

impl From<QuadraticTrinomial<i8>> for QuadraticTrinomial<i64>[src]

impl From<QuadraticTrinomial<i8>> for QuadraticTrinomial<i128>[src]

impl From<QuadraticTrinomial<i8>> for QuadraticTrinomial<f32>[src]

impl From<QuadraticTrinomial<i8>> for QuadraticTrinomial<f64>[src]

impl From<QuadraticTrinomial<u16>> for QuadraticTrinomial<u32>[src]

impl From<QuadraticTrinomial<u16>> for QuadraticTrinomial<u64>[src]

impl From<QuadraticTrinomial<u16>> for QuadraticTrinomial<u128>[src]

impl From<QuadraticTrinomial<u16>> for QuadraticTrinomial<i32>[src]

impl From<QuadraticTrinomial<u16>> for QuadraticTrinomial<i64>[src]

impl From<QuadraticTrinomial<u16>> for QuadraticTrinomial<i128>[src]

impl From<QuadraticTrinomial<u16>> for QuadraticTrinomial<f32>[src]

impl From<QuadraticTrinomial<u16>> for QuadraticTrinomial<f64>[src]

impl From<QuadraticTrinomial<u32>> for QuadraticTrinomial<u64>[src]

impl From<QuadraticTrinomial<u32>> for QuadraticTrinomial<u128>[src]

impl From<QuadraticTrinomial<u32>> for QuadraticTrinomial<i64>[src]

impl From<QuadraticTrinomial<u32>> for QuadraticTrinomial<i128>[src]

impl From<QuadraticTrinomial<u32>> for QuadraticTrinomial<f64>[src]

impl From<QuadraticTrinomial<u64>> for QuadraticTrinomial<u128>[src]

impl From<QuadraticTrinomial<u64>> for QuadraticTrinomial<i128>[src]

impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<u16>[src]

impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<u32>[src]

impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<u64>[src]

impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<u128>[src]

impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<i16>[src]

impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<i32>[src]

impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<i64>[src]

impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<i128>[src]

impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<f32>[src]

impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<f64>[src]

impl<N> FromStr for QuadraticTrinomial<N> where
    N: Zero + One + Copy + SubAssign + AddAssign + FromStr + CanNegate, 
[src]

type Err = PolynomialFromStringError

The associated error which can be returned from parsing.

impl<N> Integrable<N, Polynomial<N>> for QuadraticTrinomial<N> where
    N: Zero + TryFromUsizeExact + Copy + DivAssign + Mul<Output = N> + MulAssign + AddAssign + Div<Output = N>, 
[src]

pub fn integral(&self) -> Integral<N, Polynomial<N>>[src]

Returns the integral of the Monomial.

Example

use rustnomial::{QuadraticTrinomial, Integrable, Polynomial};
let trinomial = QuadraticTrinomial::new([3.0, 0., 0.]);
let integral = trinomial.integral();
assert_eq!(&Polynomial::new(vec![1.0, 0.0, 0.0, 0.0]), integral.inner());

Errors

Will panic if N can not losslessly represent 2usize or 3usize.

impl<N: Mul<Output = N> + Copy> Mul<N> for QuadraticTrinomial<N>[src]

type Output = QuadraticTrinomial<N>

The resulting type after applying the * operator.

impl<N: MulAssign + Copy> MulAssign<N> for QuadraticTrinomial<N>[src]

impl<N> MutablePolynomial<N> for QuadraticTrinomial<N> where
    N: Zero + SubAssign + AddAssign + Copy
[src]

impl<N: Copy + Neg<Output = N>> Neg for QuadraticTrinomial<N>[src]

type Output = QuadraticTrinomial<N>

The resulting type after applying the - operator.

impl<N> PartialEq<QuadraticTrinomial<N>> for QuadraticTrinomial<N> where
    N: Zero + PartialEq + Copy
[src]

pub fn eq(&self, other: &Self) -> bool[src]

Returns true if this QuadraticTrinomial is equal to other.

impl<N: Zero + Copy> Shr<u32> for QuadraticTrinomial<N>[src]

type Output = QuadraticTrinomial<N>

The resulting type after applying the >> operator.

impl<N: Zero + Copy> ShrAssign<u32> for QuadraticTrinomial<N>[src]

impl<N: Copy + Zero> SizedPolynomial<N> for QuadraticTrinomial<N>[src]

pub fn len(&self) -> usize[src]

Return the number of terms in QuadraticTrinomial.

Example

use rustnomial::{QuadraticTrinomial, SizedPolynomial};
let trinomial = QuadraticTrinomial::new([1, 2, 3]);
assert_eq!(3, trinomial.len());
assert_eq!(0, QuadraticTrinomial::<i32>::zero().len());

pub fn term_with_degree(&self, degree: usize) -> Term<N>[src]

Returns the term with the given degree of the QuadraticTrinomial.

Example

use rustnomial::{QuadraticTrinomial, SizedPolynomial, Term};
let trinomial = QuadraticTrinomial::new([1, 0, 3]);
assert_eq!(Term::Term(1, 2), trinomial.term_with_degree(2));
assert_eq!(Term::ZeroTerm, trinomial.term_with_degree(1));
assert_eq!(Term::Term(3, 0), trinomial.term_with_degree(0));

pub fn degree(&self) -> Degree[src]

Returns the degree of the QuadraticTrinomial.

Example

use rustnomial::{SizedPolynomial, QuadraticTrinomial, Degree};
let trinomial = QuadraticTrinomial::new([1, 2, 3]);
assert_eq!(Degree::Num(2), trinomial.degree());
let binomial = QuadraticTrinomial::new([0, 2, 3]);
assert_eq!(Degree::Num(1), binomial.degree());
let monomial = QuadraticTrinomial::new([0, 0, 3]);
assert_eq!(Degree::Num(0), monomial.degree());
let zero = QuadraticTrinomial::new([0, 0, 0]);
assert_eq!(Degree::NegInf, zero.degree());

pub fn zero() -> Self[src]

Return a QuadraticTrinomial which is equal to zero.

Example

use rustnomial::{QuadraticTrinomial, SizedPolynomial};
assert!(QuadraticTrinomial::<i32>::zero().is_zero());

pub fn set_to_zero(&mut self)[src]

Sets self to zero.

Example

use rustnomial::{QuadraticTrinomial, SizedPolynomial};
let mut non_zero = QuadraticTrinomial::new([1, 1, 1]);
assert!(!non_zero.is_zero());
non_zero.set_to_zero();
assert!(non_zero.is_zero());

impl<N> Sub<QuadraticTrinomial<N>> for QuadraticTrinomial<N> where
    N: Copy + Sub<Output = N>, 
[src]

type Output = QuadraticTrinomial<N>

The resulting type after applying the - operator.

impl<N> SubAssign<QuadraticTrinomial<N>> for QuadraticTrinomial<N> where
    N: SubAssign + Copy
[src]

Auto Trait Implementations

impl<N> RefUnwindSafe for QuadraticTrinomial<N> where
    N: RefUnwindSafe
[src]

impl<N> Send for QuadraticTrinomial<N> where
    N: Send
[src]

impl<N> Sync for QuadraticTrinomial<N> where
    N: Sync
[src]

impl<N> Unpin for QuadraticTrinomial<N> where
    N: Unpin
[src]

impl<N> UnwindSafe for QuadraticTrinomial<N> where
    N: UnwindSafe
[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.