[−][src]Struct rustnomial::Monomial
Fields
coefficient: N
deg: usize
Implementations
impl<N> Monomial<N>
[src]
pub fn new(coefficient: N, degree: usize) -> Monomial<N>
[src]
Create a Monomial
with coefficient and degree.
Example
use rustnomial::{Monomial, Degree, SizedPolynomial}; let monomial = Monomial::new(3.0, 2); assert_eq!(3.0, monomial.coefficient); assert_eq!(Degree::Num(2), monomial.degree());
impl<N: Copy + Zero> Monomial<N>
[src]
pub fn root(&self) -> Roots<N>
[src]
Return the root of Monomial
.
Example
use rustnomial::{Monomial, Roots, SizedPolynomial}; let monomial = Monomial::new(1, 2); assert_eq!(Roots::OneRealRoot(0), monomial.root()); let zero = Monomial::<i32>::zero(); assert_eq!(Roots::InfiniteRoots, zero.root()); let constant = Monomial::new(1, 0); assert_eq!(Roots::NoRoots, constant.root());
impl<N: PowUsize + Copy> Monomial<N>
[src]
pub fn pow(&self, exp: usize) -> Monomial<N>
[src]
Raises the Monomial
to the power of exp.
Example
use rustnomial::Monomial; let monomial = Monomial::new(2, 1); let monomial_sqr = monomial.pow(2); let monomial_cub = monomial.pow(3); assert_eq!(monomial.clone() * monomial.clone(), monomial_sqr); assert_eq!(monomial_sqr.clone() * monomial.clone(), monomial_cub);
Trait Implementations
impl<N: Clone> Clone for Monomial<N>
[src]
impl<N: Debug> Debug for Monomial<N>
[src]
impl<N> Derivable<N> for Monomial<N> where
N: Zero + Copy + Mul<Output = N> + TryFromUsizeExact,
[src]
N: Zero + Copy + Mul<Output = N> + TryFromUsizeExact,
pub fn derivative(&self) -> Monomial<N>
[src]
impl<N> Display for Monomial<N> where
N: Zero + One + PartialEq + Copy + IsNegativeOne + Display,
[src]
N: Zero + One + PartialEq + Copy + IsNegativeOne + Display,
impl<N: Div<Output = N>> Div<N> for Monomial<N>
[src]
type Output = Monomial<N>
The resulting type after applying the /
operator.
pub fn div(self, _rhs: N) -> Monomial<N>
[src]
impl<N: DivAssign> DivAssign<N> for Monomial<N>
[src]
pub fn div_assign(&mut self, _rhs: N)
[src]
impl<N> Evaluable<N> for Monomial<N> where
N: PowUsize + Mul<Output = N> + Copy,
[src]
N: PowUsize + Mul<Output = N> + Copy,
pub fn eval(&self, point: N) -> N
[src]
Returns the value of the Monomial
at the given point.
Example
use rustnomial::{Monomial, Evaluable}; let monomial = Monomial::new(5, 2); assert_eq!(125, monomial.eval(5)); assert_eq!(1, Monomial::new(1, 0).eval(0));
impl From<Monomial<f32>> for Monomial<f64>
[src]
impl From<Monomial<i16>> for Monomial<i32>
[src]
impl From<Monomial<i16>> for Monomial<i64>
[src]
impl From<Monomial<i16>> for Monomial<i128>
[src]
impl From<Monomial<i16>> for Monomial<f32>
[src]
impl From<Monomial<i16>> for Monomial<f64>
[src]
impl From<Monomial<i32>> for Monomial<i64>
[src]
impl From<Monomial<i32>> for Monomial<i128>
[src]
impl From<Monomial<i32>> for Monomial<f64>
[src]
impl From<Monomial<i64>> for Monomial<i128>
[src]
impl From<Monomial<i8>> for Monomial<i16>
[src]
impl From<Monomial<i8>> for Monomial<i32>
[src]
impl From<Monomial<i8>> for Monomial<i64>
[src]
impl From<Monomial<i8>> for Monomial<i128>
[src]
impl From<Monomial<i8>> for Monomial<f32>
[src]
impl From<Monomial<i8>> for Monomial<f64>
[src]
impl From<Monomial<u16>> for Monomial<u32>
[src]
impl From<Monomial<u16>> for Monomial<u64>
[src]
impl From<Monomial<u16>> for Monomial<u128>
[src]
impl From<Monomial<u16>> for Monomial<i32>
[src]
impl From<Monomial<u16>> for Monomial<i64>
[src]
impl From<Monomial<u16>> for Monomial<i128>
[src]
impl From<Monomial<u16>> for Monomial<f32>
[src]
impl From<Monomial<u16>> for Monomial<f64>
[src]
impl From<Monomial<u32>> for Monomial<u64>
[src]
impl From<Monomial<u32>> for Monomial<u128>
[src]
impl From<Monomial<u32>> for Monomial<i64>
[src]
impl From<Monomial<u32>> for Monomial<i128>
[src]
impl From<Monomial<u32>> for Monomial<f64>
[src]
impl From<Monomial<u64>> for Monomial<u128>
[src]
impl From<Monomial<u64>> for Monomial<i128>
[src]
impl From<Monomial<u8>> for Monomial<u16>
[src]
impl From<Monomial<u8>> for Monomial<u32>
[src]
impl From<Monomial<u8>> for Monomial<u64>
[src]
impl From<Monomial<u8>> for Monomial<u128>
[src]
impl From<Monomial<u8>> for Monomial<i16>
[src]
impl From<Monomial<u8>> for Monomial<i32>
[src]
impl From<Monomial<u8>> for Monomial<i64>
[src]
impl From<Monomial<u8>> for Monomial<i128>
[src]
impl From<Monomial<u8>> for Monomial<f32>
[src]
impl From<Monomial<u8>> for Monomial<f64>
[src]
impl<N> From<N> for Monomial<N>
[src]
impl<N> FromStr for Monomial<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, SparsePolynomial<N>> for Monomial<N> where
N: Zero + Copy + Mul<Output = N> + AddAssign + PowUsize + Div<Output = N> + TryFromUsizeExact,
[src]
N: Zero + Copy + Mul<Output = N> + AddAssign + PowUsize + Div<Output = N> + TryFromUsizeExact,
pub fn integral(&self) -> Integral<N, SparsePolynomial<N>>
[src]
Returns the integral of the Monomial
.
Example
use rustnomial::{Monomial, SparsePolynomial, Integrable, FreeSizePolynomial}; let monomial = Monomial::new(3.0, 2); let integral = monomial.integral(); assert_eq!(&SparsePolynomial::from_terms(&[(1.0, 3)]), integral.inner()); assert_eq!(1., integral.eval(0., 1.));
impl<N: Copy + Mul<Output = N>> Mul<&'_ Monomial<N>> for Monomial<N>
[src]
type Output = Monomial<N>
The resulting type after applying the *
operator.
pub fn mul(self, _rhs: &Monomial<N>) -> Monomial<N>
[src]
impl<N: Copy + Mul<Output = N>> Mul<Monomial<N>> for Monomial<N>
[src]
type Output = Monomial<N>
The resulting type after applying the *
operator.
pub fn mul(self, _rhs: Monomial<N>) -> Monomial<N>
[src]
impl<N: Mul<Output = N>> Mul<N> for Monomial<N>
[src]
type Output = Monomial<N>
The resulting type after applying the *
operator.
pub fn mul(self, _rhs: N) -> Monomial<N>
[src]
impl<N> MulAssign<&'_ Monomial<N>> for Monomial<N> where
N: MulAssign + AddAssign + Copy,
[src]
N: MulAssign + AddAssign + Copy,
pub fn mul_assign(&mut self, _rhs: &Monomial<N>)
[src]
impl<N: MulAssign> MulAssign<Monomial<N>> for Monomial<N>
[src]
pub fn mul_assign(&mut self, _rhs: Monomial<N>)
[src]
impl<N: MulAssign> MulAssign<N> for Monomial<N>
[src]
pub fn mul_assign(&mut self, _rhs: N)
[src]
impl<N> MutablePolynomial<N> for Monomial<N> where
N: SubAssign + AddAssign + Copy + Zero,
[src]
N: SubAssign + AddAssign + Copy + Zero,
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 Monomial<N>
[src]
type Output = Monomial<N>
The resulting type after applying the -
operator.
pub fn neg(self) -> Monomial<N>
[src]
impl<N> PartialEq<Monomial<N>> for Monomial<N> where
N: Zero + PartialEq + Copy,
[src]
N: Zero + PartialEq + Copy,
pub fn eq(&self, other: &Self) -> bool
[src]
Returns true if this Monomial
is equal to other.
Example
use rustnomial::Monomial; let a = Monomial::new(2, 2); let b = Monomial::new(2, 2); let c = Monomial::new(1, 2); assert_eq!(a, b); assert_ne!(a, c);
#[must_use]pub fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
impl<N: Zero + Copy> Shl<i32> for Monomial<N>
[src]
type Output = Monomial<N>
The resulting type after applying the <<
operator.
pub fn shl(self, _rhs: i32) -> Monomial<N>
[src]
impl<N: Zero + Copy> ShlAssign<i32> for Monomial<N>
[src]
pub fn shl_assign(&mut self, _rhs: i32)
[src]
impl<N: Zero + Copy> Shr<i32> for Monomial<N>
[src]
type Output = Monomial<N>
The resulting type after applying the >>
operator.
pub fn shr(self, _rhs: i32) -> Monomial<N>
[src]
impl<N: Zero + Copy> ShrAssign<i32> for Monomial<N>
[src]
pub fn shr_assign(&mut self, _rhs: i32)
[src]
impl<N: Copy + Zero> SizedPolynomial<N> for Monomial<N>
[src]
pub fn len(&self) -> usize
[src]
Return the number of terms in Monomial
.
Example
use rustnomial::{Monomial, SizedPolynomial}; let monomial = Monomial::new(3.0, 2); assert_eq!(1, monomial.len()); assert_eq!(0, Monomial::<i32>::zero().len());
pub fn term_with_degree(&self, degree: usize) -> Term<N>
[src]
Returns the term with the given degree
of the Monomial
.
Example
use rustnomial::{Monomial, SizedPolynomial, Term}; let monomial = Monomial::new(5, 2); assert_eq!(Term::Term(5, 2), monomial.term_with_degree(2)); assert_eq!(Term::ZeroTerm, monomial.term_with_degree(1));
pub fn degree(&self) -> Degree
[src]
Returns the degree of the Monomial
.
Example
use rustnomial::{SizedPolynomial, Monomial, Degree}; let monomial = Monomial::new(3.0, 2); assert_eq!(Degree::Num(2), monomial.degree()); let zero_with_nonzero_deg = Monomial::new(0.0, 2); assert_eq!(Degree::NegInf, zero_with_nonzero_deg.degree()); let nonzero_with_zero_degree = Monomial::new(1.0, 0); assert_eq!(Degree::Num(0), nonzero_with_zero_degree.degree());
pub fn zero() -> Self
[src]
Return a Monomial
which is equal to zero.
Example
use rustnomial::{SizedPolynomial, Monomial}; assert!(Monomial::<i32>::zero().is_zero());
pub fn set_to_zero(&mut self)
[src]
Sets self to zero.
Example
use rustnomial::{SizedPolynomial, Monomial}; let mut non_zero = Monomial::new(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]
Auto Trait Implementations
impl<N> RefUnwindSafe for Monomial<N> where
N: RefUnwindSafe,
[src]
N: RefUnwindSafe,
impl<N> Send for Monomial<N> where
N: Send,
[src]
N: Send,
impl<N> Sync for Monomial<N> where
N: Sync,
[src]
N: Sync,
impl<N> Unpin for Monomial<N> where
N: Unpin,
[src]
N: Unpin,
impl<N> UnwindSafe for Monomial<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<!> for 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>,