[−][src]Struct rustnomial::QuadraticTrinomial
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]
N: Copy + Zero + Mul<Output = N> + Neg<Output = N> + Sub<Output = N> + From<u8> + Div<Output = N> + AbsSqrt + IsPositive + One,
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]
&self
) -> (N, LinearBinomial<Complex<N>>, LinearBinomial<Complex<N>>)
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]
N: Add<Output = N> + Copy,
type Output = QuadraticTrinomial<N>
The resulting type after applying the +
operator.
pub fn add(self, _rhs: QuadraticTrinomial<N>) -> QuadraticTrinomial<N>
[src]
impl<N: Copy + AddAssign> AddAssign<QuadraticTrinomial<N>> for QuadraticTrinomial<N>
[src]
pub fn add_assign(&mut self, _rhs: QuadraticTrinomial<N>)
[src]
impl<N: Clone> Clone for QuadraticTrinomial<N>
[src]
pub fn clone(&self) -> QuadraticTrinomial<N>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[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]
N: Zero + One + Copy + Mul<Output = N> + TryFromUsizeExact,
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]
N: Zero + One + IsPositive + PartialEq + Abs + Copy + IsNegativeOne + Display,
impl<N: Div<Output = N> + Copy> Div<N> for QuadraticTrinomial<N>
[src]
type Output = QuadraticTrinomial<N>
The resulting type after applying the /
operator.
pub fn div(self, _rhs: N) -> QuadraticTrinomial<N>
[src]
impl<N: DivAssign + Copy> DivAssign<N> for QuadraticTrinomial<N>
[src]
pub fn div_assign(&mut self, _rhs: N)
[src]
impl<N> Evaluable<N> for QuadraticTrinomial<N> where
N: Add<Output = N> + Mul<Output = N> + Copy,
[src]
N: Add<Output = N> + Mul<Output = N> + Copy,
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]
pub fn from(item: QuadraticTrinomial<f32>) -> Self
[src]
impl From<QuadraticTrinomial<i16>> for QuadraticTrinomial<i32>
[src]
pub fn from(item: QuadraticTrinomial<i16>) -> Self
[src]
impl From<QuadraticTrinomial<i16>> for QuadraticTrinomial<i64>
[src]
pub fn from(item: QuadraticTrinomial<i16>) -> Self
[src]
impl From<QuadraticTrinomial<i16>> for QuadraticTrinomial<i128>
[src]
pub fn from(item: QuadraticTrinomial<i16>) -> Self
[src]
impl From<QuadraticTrinomial<i16>> for QuadraticTrinomial<f32>
[src]
pub fn from(item: QuadraticTrinomial<i16>) -> Self
[src]
impl From<QuadraticTrinomial<i16>> for QuadraticTrinomial<f64>
[src]
pub fn from(item: QuadraticTrinomial<i16>) -> Self
[src]
impl From<QuadraticTrinomial<i32>> for QuadraticTrinomial<i64>
[src]
pub fn from(item: QuadraticTrinomial<i32>) -> Self
[src]
impl From<QuadraticTrinomial<i32>> for QuadraticTrinomial<i128>
[src]
pub fn from(item: QuadraticTrinomial<i32>) -> Self
[src]
impl From<QuadraticTrinomial<i32>> for QuadraticTrinomial<f64>
[src]
pub fn from(item: QuadraticTrinomial<i32>) -> Self
[src]
impl From<QuadraticTrinomial<i64>> for QuadraticTrinomial<i128>
[src]
pub fn from(item: QuadraticTrinomial<i64>) -> Self
[src]
impl From<QuadraticTrinomial<i8>> for QuadraticTrinomial<i16>
[src]
pub fn from(item: QuadraticTrinomial<i8>) -> Self
[src]
impl From<QuadraticTrinomial<i8>> for QuadraticTrinomial<i32>
[src]
pub fn from(item: QuadraticTrinomial<i8>) -> Self
[src]
impl From<QuadraticTrinomial<i8>> for QuadraticTrinomial<i64>
[src]
pub fn from(item: QuadraticTrinomial<i8>) -> Self
[src]
impl From<QuadraticTrinomial<i8>> for QuadraticTrinomial<i128>
[src]
pub fn from(item: QuadraticTrinomial<i8>) -> Self
[src]
impl From<QuadraticTrinomial<i8>> for QuadraticTrinomial<f32>
[src]
pub fn from(item: QuadraticTrinomial<i8>) -> Self
[src]
impl From<QuadraticTrinomial<i8>> for QuadraticTrinomial<f64>
[src]
pub fn from(item: QuadraticTrinomial<i8>) -> Self
[src]
impl From<QuadraticTrinomial<u16>> for QuadraticTrinomial<u32>
[src]
pub fn from(item: QuadraticTrinomial<u16>) -> Self
[src]
impl From<QuadraticTrinomial<u16>> for QuadraticTrinomial<u64>
[src]
pub fn from(item: QuadraticTrinomial<u16>) -> Self
[src]
impl From<QuadraticTrinomial<u16>> for QuadraticTrinomial<u128>
[src]
pub fn from(item: QuadraticTrinomial<u16>) -> Self
[src]
impl From<QuadraticTrinomial<u16>> for QuadraticTrinomial<i32>
[src]
pub fn from(item: QuadraticTrinomial<u16>) -> Self
[src]
impl From<QuadraticTrinomial<u16>> for QuadraticTrinomial<i64>
[src]
pub fn from(item: QuadraticTrinomial<u16>) -> Self
[src]
impl From<QuadraticTrinomial<u16>> for QuadraticTrinomial<i128>
[src]
pub fn from(item: QuadraticTrinomial<u16>) -> Self
[src]
impl From<QuadraticTrinomial<u16>> for QuadraticTrinomial<f32>
[src]
pub fn from(item: QuadraticTrinomial<u16>) -> Self
[src]
impl From<QuadraticTrinomial<u16>> for QuadraticTrinomial<f64>
[src]
pub fn from(item: QuadraticTrinomial<u16>) -> Self
[src]
impl From<QuadraticTrinomial<u32>> for QuadraticTrinomial<u64>
[src]
pub fn from(item: QuadraticTrinomial<u32>) -> Self
[src]
impl From<QuadraticTrinomial<u32>> for QuadraticTrinomial<u128>
[src]
pub fn from(item: QuadraticTrinomial<u32>) -> Self
[src]
impl From<QuadraticTrinomial<u32>> for QuadraticTrinomial<i64>
[src]
pub fn from(item: QuadraticTrinomial<u32>) -> Self
[src]
impl From<QuadraticTrinomial<u32>> for QuadraticTrinomial<i128>
[src]
pub fn from(item: QuadraticTrinomial<u32>) -> Self
[src]
impl From<QuadraticTrinomial<u32>> for QuadraticTrinomial<f64>
[src]
pub fn from(item: QuadraticTrinomial<u32>) -> Self
[src]
impl From<QuadraticTrinomial<u64>> for QuadraticTrinomial<u128>
[src]
pub fn from(item: QuadraticTrinomial<u64>) -> Self
[src]
impl From<QuadraticTrinomial<u64>> for QuadraticTrinomial<i128>
[src]
pub fn from(item: QuadraticTrinomial<u64>) -> Self
[src]
impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<u16>
[src]
pub fn from(item: QuadraticTrinomial<u8>) -> Self
[src]
impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<u32>
[src]
pub fn from(item: QuadraticTrinomial<u8>) -> Self
[src]
impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<u64>
[src]
pub fn from(item: QuadraticTrinomial<u8>) -> Self
[src]
impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<u128>
[src]
pub fn from(item: QuadraticTrinomial<u8>) -> Self
[src]
impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<i16>
[src]
pub fn from(item: QuadraticTrinomial<u8>) -> Self
[src]
impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<i32>
[src]
pub fn from(item: QuadraticTrinomial<u8>) -> Self
[src]
impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<i64>
[src]
pub fn from(item: QuadraticTrinomial<u8>) -> Self
[src]
impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<i128>
[src]
pub fn from(item: QuadraticTrinomial<u8>) -> Self
[src]
impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<f32>
[src]
pub fn from(item: QuadraticTrinomial<u8>) -> Self
[src]
impl From<QuadraticTrinomial<u8>> for QuadraticTrinomial<f64>
[src]
pub fn from(item: QuadraticTrinomial<u8>) -> Self
[src]
impl<N> FromStr for QuadraticTrinomial<N> where
N: Zero + One + Copy + SubAssign + AddAssign + FromStr + CanNegate,
[src]
N: Zero + One + Copy + SubAssign + AddAssign + FromStr + CanNegate,
type Err = PolynomialFromStringError
The associated error which can be returned from parsing.
pub fn from_str(s: &str) -> Result<Self, Self::Err>
[src]
impl<N> Integrable<N, Polynomial<N>> for QuadraticTrinomial<N> where
N: Zero + TryFromUsizeExact + Copy + DivAssign + Mul<Output = N> + MulAssign + AddAssign + Div<Output = N>,
[src]
N: Zero + TryFromUsizeExact + Copy + DivAssign + Mul<Output = N> + MulAssign + AddAssign + Div<Output = N>,
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.
pub fn mul(self, _rhs: N) -> QuadraticTrinomial<N>
[src]
impl<N: MulAssign + Copy> MulAssign<N> for QuadraticTrinomial<N>
[src]
pub fn mul_assign(&mut self, _rhs: N)
[src]
impl<N> MutablePolynomial<N> for QuadraticTrinomial<N> where
N: Zero + SubAssign + AddAssign + Copy,
[src]
N: Zero + SubAssign + AddAssign + Copy,
pub fn try_add_term(
&mut self,
coeff: N,
degree: usize
) -> Result<(), TryAddError>
[src]
&mut self,
coeff: N,
degree: usize
) -> Result<(), TryAddError>
pub fn try_sub_term(
&mut self,
coeff: N,
degree: usize
) -> Result<(), TryAddError>
[src]
&mut self,
coeff: N,
degree: usize
) -> Result<(), TryAddError>
impl<N: Copy + Neg<Output = N>> Neg for QuadraticTrinomial<N>
[src]
type Output = QuadraticTrinomial<N>
The resulting type after applying the -
operator.
pub fn neg(self) -> QuadraticTrinomial<N>
[src]
impl<N> PartialEq<QuadraticTrinomial<N>> for QuadraticTrinomial<N> where
N: Zero + PartialEq + Copy,
[src]
N: Zero + PartialEq + Copy,
pub fn eq(&self, other: &Self) -> bool
[src]
Returns true if this QuadraticTrinomial
is equal to other.
#[must_use]pub fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
impl<N: Zero + Copy> Shr<u32> for QuadraticTrinomial<N>
[src]
type Output = QuadraticTrinomial<N>
The resulting type after applying the >>
operator.
pub fn shr(self, _rhs: u32) -> QuadraticTrinomial<N>
[src]
impl<N: Zero + Copy> ShrAssign<u32> for QuadraticTrinomial<N>
[src]
pub fn shr_assign(&mut self, _rhs: u32)
[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());
pub fn term_iter(&self) -> TermIterator<'_, N> where
Self: Sized,
[src]
Self: Sized,
pub fn is_zero(&self) -> bool
[src]
impl<N> Sub<QuadraticTrinomial<N>> for QuadraticTrinomial<N> where
N: Copy + Sub<Output = N>,
[src]
N: Copy + Sub<Output = N>,
type Output = QuadraticTrinomial<N>
The resulting type after applying the -
operator.
pub fn sub(self, _rhs: QuadraticTrinomial<N>) -> QuadraticTrinomial<N>
[src]
impl<N> SubAssign<QuadraticTrinomial<N>> for QuadraticTrinomial<N> where
N: SubAssign + Copy,
[src]
N: SubAssign + Copy,
pub fn sub_assign(&mut self, _rhs: QuadraticTrinomial<N>)
[src]
Auto Trait Implementations
impl<N> RefUnwindSafe for QuadraticTrinomial<N> where
N: RefUnwindSafe,
[src]
N: RefUnwindSafe,
impl<N> Send for QuadraticTrinomial<N> where
N: Send,
[src]
N: Send,
impl<N> Sync for QuadraticTrinomial<N> where
N: Sync,
[src]
N: Sync,
impl<N> Unpin for QuadraticTrinomial<N> where
N: Unpin,
[src]
N: Unpin,
impl<N> UnwindSafe for QuadraticTrinomial<N> where
N: UnwindSafe,
[src]
N: 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> 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.
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>,